Pub Date : 1994-05-21DOI: 10.1109/ICSE.1994.296775
E. Yu, J. Mylopoulos
In trying to understand and redesign software processes, it is often necessary to have an understanding of the "whys" that underlie the "whats" - the motivations, intents, and rationales behind the activities and input-output flows. This paper presents a model which captures the intentional structure of a software process and its embedding organization, in terms of dependency relationships among actors. Actors depend on each other for goals to be achieved, tasks to be performed, and resources to be furnished. The model is embedded in the conceptual modeling language Telos. We outline some analytical tools to be developed for the model, and illustrate how the model can help in the systematic design of software processes. The examples used are adaptations of the ISPW-6/7 benchmark example.<>
{"title":"Understanding \"why\" in software process modelling, analysis, and design","authors":"E. Yu, J. Mylopoulos","doi":"10.1109/ICSE.1994.296775","DOIUrl":"https://doi.org/10.1109/ICSE.1994.296775","url":null,"abstract":"In trying to understand and redesign software processes, it is often necessary to have an understanding of the \"whys\" that underlie the \"whats\" - the motivations, intents, and rationales behind the activities and input-output flows. This paper presents a model which captures the intentional structure of a software process and its embedding organization, in terms of dependency relationships among actors. Actors depend on each other for goals to be achieved, tasks to be performed, and resources to be furnished. The model is embedded in the conceptual modeling language Telos. We outline some analytical tools to be developed for the model, and illustrate how the model can help in the systematic design of software processes. The examples used are adaptations of the ISPW-6/7 benchmark example.<<ETX>>","PeriodicalId":432962,"journal":{"name":"Proceedings of 16th International Conference on Software Engineering","volume":"834 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1994-05-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116150751","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 1994-05-21DOI: 10.1109/ICSE.1994.296801
B. Boehm
Some useful perspectives on the potential and the pitfalls of software architecture investments can be gained via analysis of software architecture critical success factors and their associated cost and benefit drivers. Basically, the potential of software architecture investments comes from appropriately identifying and exploiting positive cost-benefit relationships. The pitfalls come from neglecting critical success factors or from making unrealistic assumptions about their associated cost drivers. Examples from practice of both potential and pitfalls are given in the context of a table which summarizes a framework of software architecture critical success factors and cost drivers being developed at USC.<>
{"title":"Software architectures: critical success factors and cost drivers","authors":"B. Boehm","doi":"10.1109/ICSE.1994.296801","DOIUrl":"https://doi.org/10.1109/ICSE.1994.296801","url":null,"abstract":"Some useful perspectives on the potential and the pitfalls of software architecture investments can be gained via analysis of software architecture critical success factors and their associated cost and benefit drivers. Basically, the potential of software architecture investments comes from appropriately identifying and exploiting positive cost-benefit relationships. The pitfalls come from neglecting critical success factors or from making unrealistic assumptions about their associated cost drivers. Examples from practice of both potential and pitfalls are given in the context of a table which summarizes a framework of software architecture critical success factors and cost drivers being developed at USC.<<ETX>>","PeriodicalId":432962,"journal":{"name":"Proceedings of 16th International Conference on Software Engineering","volume":"325 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1994-05-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121469206","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 1994-05-21DOI: 10.1109/ICSE.1994.296764
A. Andrews, A. M. Vans
We present results of observing professional maintenance engineers working with industrial code at actual maintenance tasks. Protocol analysis is used to explore how code understanding might differ for small versus large scale code. The experiment confirms that cognition processes work at all levels of abstraction simultaneously as programmers build a mental model of the code. Cognition processes emerged at three levels of aggregation representing lower and higher level strategies of understanding. They show differences in what triggers them and how they achieve their goals. Results are useful for defining core competencies which maintenance engineers need for their work and for documentation and development standards.<>
{"title":"Comprehension processes during large scale maintenance","authors":"A. Andrews, A. M. Vans","doi":"10.1109/ICSE.1994.296764","DOIUrl":"https://doi.org/10.1109/ICSE.1994.296764","url":null,"abstract":"We present results of observing professional maintenance engineers working with industrial code at actual maintenance tasks. Protocol analysis is used to explore how code understanding might differ for small versus large scale code. The experiment confirms that cognition processes work at all levels of abstraction simultaneously as programmers build a mental model of the code. Cognition processes emerged at three levels of aggregation representing lower and higher level strategies of understanding. They show differences in what triggers them and how they achieve their goals. Results are useful for defining core competencies which maintenance engineers need for their work and for documentation and development standards.<<ETX>>","PeriodicalId":432962,"journal":{"name":"Proceedings of 16th International Conference on Software Engineering","volume":"12 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1994-05-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127747649","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 1994-05-21DOI: 10.1109/ICSE.1994.296765
M. Krone, G. Snelting
We apply mathematical concept analysis to the problem of inferring configuration structures from existing source code. Concept analysis has been developed by German mathematicians over the last years; it can be seen as a discrete analogon to Fourier analysis. Based on this theory, our tool will accept source code, where configuration-specific statements are controlled by the preprocessor. The algorithm will compute a so-called concept lattice, which - when visually displayed - allows remarkable insight into the structure and properties of possible configurations. The lattice not only displays fine-grained dependencies between configuration threads, but also visualizes the overall quality of configuration structures according to software engineering principles. The paper presents a short introduction to concept analysis, as well as experimental results on various programs.<>
{"title":"On the inference of configuration structures from source code","authors":"M. Krone, G. Snelting","doi":"10.1109/ICSE.1994.296765","DOIUrl":"https://doi.org/10.1109/ICSE.1994.296765","url":null,"abstract":"We apply mathematical concept analysis to the problem of inferring configuration structures from existing source code. Concept analysis has been developed by German mathematicians over the last years; it can be seen as a discrete analogon to Fourier analysis. Based on this theory, our tool will accept source code, where configuration-specific statements are controlled by the preprocessor. The algorithm will compute a so-called concept lattice, which - when visually displayed - allows remarkable insight into the structure and properties of possible configurations. The lattice not only displays fine-grained dependencies between configuration threads, but also visualizes the overall quality of configuration structures according to software engineering principles. The paper presents a short introduction to concept analysis, as well as experimental results on various programs.<<ETX>>","PeriodicalId":432962,"journal":{"name":"Proceedings of 16th International Conference on Software Engineering","volume":"7 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1994-05-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128614381","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 1994-05-21DOI: 10.1109/ICSE.1994.296791
Jean-Philippe Babau, J. Sourrouille
Time-sensitive objects (TSO), a data-oriented model for real-time systems, impose timing constraints on object values using validity intervals and object histories. Periodic objects, a class of objects within the TSO model, are described in detail and compared with more traditional periodic processes. Advantages of periodic objects are identified, including greater scheduling independence of processing related through data dependencies, more opportunity for concurrency, and improved structure for timing fault tolerance.<>
{"title":"A periodic object model for real-time systems","authors":"Jean-Philippe Babau, J. Sourrouille","doi":"10.1109/ICSE.1994.296791","DOIUrl":"https://doi.org/10.1109/ICSE.1994.296791","url":null,"abstract":"Time-sensitive objects (TSO), a data-oriented model for real-time systems, impose timing constraints on object values using validity intervals and object histories. Periodic objects, a class of objects within the TSO model, are described in detail and compared with more traditional periodic processes. Advantages of periodic objects are identified, including greater scheduling independence of processing related through data dependencies, more opportunity for concurrency, and improved structure for timing fault tolerance.<<ETX>>","PeriodicalId":432962,"journal":{"name":"Proceedings of 16th International Conference on Software Engineering","volume":"46 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1994-05-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127095267","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 1994-05-21DOI: 10.1109/ICSE.1994.296761
M. Ardis
We describe three case studies in the use of Basic LOTOS for electronic switching systems software. The studies cover design recovery, requirements specification, and design activities. We also report lessons learned from the studies. Early lessons suggested changes to the syntax of the language used, and the need for some specific analysis tools. The last case study reports some of the results of these changes.<>
{"title":"Lessons from using Basic LOTOS","authors":"M. Ardis","doi":"10.1109/ICSE.1994.296761","DOIUrl":"https://doi.org/10.1109/ICSE.1994.296761","url":null,"abstract":"We describe three case studies in the use of Basic LOTOS for electronic switching systems software. The studies cover design recovery, requirements specification, and design activities. We also report lessons learned from the studies. Early lessons suggested changes to the syntax of the language used, and the need for some specific analysis tools. The last case study reports some of the results of these changes.<<ETX>>","PeriodicalId":432962,"journal":{"name":"Proceedings of 16th International Conference on Software Engineering","volume":"56 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1994-05-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129086834","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 1994-05-21DOI: 10.1109/ICSE.1994.296778
Monica Hutchins, Herbert Foster, Tarak Goradia, T. Ostrand
This paper reports an experimental study investigating the effectiveness of two code-based test adequacy criteria for identifying sets of test cases that detect faults. The all-edges and all-DUs (modified all-uses) coverage criteria were applied to 130 faulty program versions derived from seven moderate size base programs by seeding realistic faults. We generated several thousand test sets for each faulty program and examined the relationship between fault detection and coverage. Within the limited domain of our experiments, test sets achieving coverage levels over 90% usually showed significantly better fault detection than randomly chosen test sets of the same size. In addition, significant improvements in the effectiveness of coverage-based tests usually occurred as coverage increased from 90% to 100%. However the results also indicate that 100% code coverage alone is not a reliable indicator of the effectiveness of a test set. We also found that tests based respectively on control-flow and dataflow criteria are frequency complementary in their effectiveness.<>
{"title":"Experiments on the effectiveness of dataflow- and control-flow-based test adequacy criteria","authors":"Monica Hutchins, Herbert Foster, Tarak Goradia, T. Ostrand","doi":"10.1109/ICSE.1994.296778","DOIUrl":"https://doi.org/10.1109/ICSE.1994.296778","url":null,"abstract":"This paper reports an experimental study investigating the effectiveness of two code-based test adequacy criteria for identifying sets of test cases that detect faults. The all-edges and all-DUs (modified all-uses) coverage criteria were applied to 130 faulty program versions derived from seven moderate size base programs by seeding realistic faults. We generated several thousand test sets for each faulty program and examined the relationship between fault detection and coverage. Within the limited domain of our experiments, test sets achieving coverage levels over 90% usually showed significantly better fault detection than randomly chosen test sets of the same size. In addition, significant improvements in the effectiveness of coverage-based tests usually occurred as coverage increased from 90% to 100%. However the results also indicate that 100% code coverage alone is not a reliable indicator of the effectiveness of a test set. We also found that tests based respectively on control-flow and dataflow criteria are frequency complementary in their effectiveness.<<ETX>>","PeriodicalId":432962,"journal":{"name":"Proceedings of 16th International Conference on Software Engineering","volume":"13 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1994-05-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132072128","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 1994-05-21DOI: 10.1109/ICSE.1994.296796
P. Garg, Peiwei Mi, T. Pham, W. Scacchi, Gary Thunquest
Describes a methodology for software process engineering and an environment, SMART, that supports it. SMART supports a process life-cycle that includes the modeling, analysis, and execution of software processes. SMART's process monitoring capabilities can be used to provide feedback from the process execution to the process model. SMART represents the integration of three separately developed process mechanisms, and it uses two modeling formalisms (object-oriented data representation and imperative-style programming language) to bridge the gap between process modeling, analysis, and execution. SMART demonstrates the meta-environment concept, using a process modeling formalism as input specification to a generator that produces process-centered software engineering environments (PSEEs). Furthermore, SMART supports a team-oriented approach for process modeling, analysis, and execution.<>
{"title":"The SMART approach for software process engineering","authors":"P. Garg, Peiwei Mi, T. Pham, W. Scacchi, Gary Thunquest","doi":"10.1109/ICSE.1994.296796","DOIUrl":"https://doi.org/10.1109/ICSE.1994.296796","url":null,"abstract":"Describes a methodology for software process engineering and an environment, SMART, that supports it. SMART supports a process life-cycle that includes the modeling, analysis, and execution of software processes. SMART's process monitoring capabilities can be used to provide feedback from the process execution to the process model. SMART represents the integration of three separately developed process mechanisms, and it uses two modeling formalisms (object-oriented data representation and imperative-style programming language) to bridge the gap between process modeling, analysis, and execution. SMART demonstrates the meta-environment concept, using a process modeling formalism as input specification to a generator that produces process-centered software engineering environments (PSEEs). Furthermore, SMART supports a team-oriented approach for process modeling, analysis, and execution.<<ETX>>","PeriodicalId":432962,"journal":{"name":"Proceedings of 16th International Conference on Software Engineering","volume":"54 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1994-05-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125021645","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 1994-05-21DOI: 10.1109/ICSE.1994.296799
R. Taylor, J. Coutaz
Software engineering and computer-human interaction have much to do with each other, but their respective research communities typically have little interaction. The purpose of the article is to explore the intersections of these areas, determining what each community has to offer the other as well as to identify and address open problems of mutual interest. Topics of discussion were drawn from the following: cost drivers, current products, prototyping, requirements, formal methods and specifications, testing and evaluation, design and development, architectures, user interfaces and software environments, CHI and CSCW concerns and toolkits.<>
{"title":"Workshop on software engineering and computer-human interaction: joint research issues","authors":"R. Taylor, J. Coutaz","doi":"10.1109/ICSE.1994.296799","DOIUrl":"https://doi.org/10.1109/ICSE.1994.296799","url":null,"abstract":"Software engineering and computer-human interaction have much to do with each other, but their respective research communities typically have little interaction. The purpose of the article is to explore the intersections of these areas, determining what each community has to offer the other as well as to identify and address open problems of mutual interest. Topics of discussion were drawn from the following: cost drivers, current products, prototyping, requirements, formal methods and specifications, testing and evaluation, design and development, architectures, user interfaces and software environments, CHI and CSCW concerns and toolkits.<<ETX>>","PeriodicalId":432962,"journal":{"name":"Proceedings of 16th International Conference on Software Engineering","volume":"11 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1994-05-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126151980","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 1994-05-21DOI: 10.1109/ICSE.1994.296766
M. J. Baker, S. Eick
There are many graphical techniques for visualizing software. Unfortunately, the current techniques do not scale to display large software systems and are largely unused. We present a method for visualizing statistics associated with code that is divided hierarchically into subsystems, directories, and files. Using this technique, we can display the relative sizes of the components in the system, which components are stable and which are changing, where the new functionality is being added, and identify error-prone code with many bug fixes. Using animation, we can display the historical evolution of the code.<>
{"title":"Visualizing software systems","authors":"M. J. Baker, S. Eick","doi":"10.1109/ICSE.1994.296766","DOIUrl":"https://doi.org/10.1109/ICSE.1994.296766","url":null,"abstract":"There are many graphical techniques for visualizing software. Unfortunately, the current techniques do not scale to display large software systems and are largely unused. We present a method for visualizing statistics associated with code that is divided hierarchically into subsystems, directories, and files. Using this technique, we can display the relative sizes of the components in the system, which components are stable and which are changing, where the new functionality is being added, and identify error-prone code with many bug fixes. Using animation, we can display the historical evolution of the code.<<ETX>>","PeriodicalId":432962,"journal":{"name":"Proceedings of 16th International Conference on Software Engineering","volume":"17 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1994-05-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125882093","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}