This paper presents an approach to semi-automatically detect pattern instances and their implementations in a software system. Design patterns are currently best practice in software development; they provide solutions for nearly all granularities of software design, and this makes them suitable for representing design knowledge. The proposed approach overcomes a number of scalability problems as they exist in other approaches by using fuzzy logic, user interaction and a learning component.
{"title":"Fuzzy logic based interactive recovery of software design","authors":"Jörg Niere","doi":"10.1145/581339.581473","DOIUrl":"https://doi.org/10.1145/581339.581473","url":null,"abstract":"This paper presents an approach to semi-automatically detect pattern instances and their implementations in a software system. Design patterns are currently best practice in software development; they provide solutions for nearly all granularities of software design, and this makes them suitable for representing design knowledge. The proposed approach overcomes a number of scalability problems as they exist in other approaches by using fuzzy logic, user interaction and a learning component.","PeriodicalId":186061,"journal":{"name":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","volume":"37 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-05-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121774043","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}
Summary form only given. Tools that feature MSC do not have the ability to check model or implementation executions against the specified behavior. We present a method for observing the behavior of timed systems specified using Message Sequence Chart Graphs (MSC-Graphs) (a simplified version of ITU Z.120 notation). We believe that a log-analyzer and a run-time monitor based on MSC-Graphs are practical and powerful tools to improve the quality of real-time systems. On one hand, the log analyzer can play the role of an Oracle while testing non-functional requirements. On the other hand, the run-time monitor can help in the verification of protocol assertions given in terms of message interchange annotated with time constraints. The work is built over a formal definition of the syntax and semantics of MSC-Graphs, which is similar to (Alur and Yannakakis, 1999) (i.e. based on partial orders). Those MSC-Graphs are enriched with timers and delay intervals in a similar way to (Ben-Abdallah and Leue, 1997) and (Li and Lilius, 1999).
只提供摘要形式。具有MSC特性的工具不能根据指定的行为检查模型或实现的执行情况。我们提出了一种观察使用消息序列图(MSC-Graphs) (ITU Z.120表示法的简化版本)指定的定时系统行为的方法。我们相信基于MSC-Graphs的日志分析器和运行时监视器是提高实时系统质量的实用而强大的工具。一方面,日志分析器可以在测试非功能需求时扮演Oracle的角色。另一方面,运行时监视器可以帮助验证根据带有时间约束注释的消息交换给出的协议断言。这项工作是建立在MSC-Graphs的语法和语义的正式定义之上的,类似于(Alur和Yannakakis, 1999)(即基于偏序)。这些msc - graph以类似于(Ben-Abdallah and Leue, 1997)和(Li and Lilius, 1999)的方式丰富了计时器和延迟间隔。
{"title":"Observing timed systems by means of Message Sequence Chart Graphs","authors":"S. Blaustein, F. Oliveto, V. Braberman","doi":"10.1145/581457.581458","DOIUrl":"https://doi.org/10.1145/581457.581458","url":null,"abstract":"Summary form only given. Tools that feature MSC do not have the ability to check model or implementation executions against the specified behavior. We present a method for observing the behavior of timed systems specified using Message Sequence Chart Graphs (MSC-Graphs) (a simplified version of ITU Z.120 notation). We believe that a log-analyzer and a run-time monitor based on MSC-Graphs are practical and powerful tools to improve the quality of real-time systems. On one hand, the log analyzer can play the role of an Oracle while testing non-functional requirements. On the other hand, the run-time monitor can help in the verification of protocol assertions given in terms of message interchange annotated with time constraints. The work is built over a formal definition of the syntax and semantics of MSC-Graphs, which is similar to (Alur and Yannakakis, 1999) (i.e. based on partial orders). Those MSC-Graphs are enriched with timers and delay intervals in a similar way to (Ben-Abdallah and Leue, 1997) and (Li and Lilius, 1999).","PeriodicalId":186061,"journal":{"name":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","volume":"135-136 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-05-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131725645","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}
E. D. Ves, Ana M. C. Ruedin, D. Acevedo, X. Benavent, L. Seijas
Summary form only given, as follows. Research in model checking is focused on increasing the size of the problems that tools can deal with. The ultimate wave has been the use of distributed computing, where a cluster of computers work together to solve the problem. In our work, we present a distributed model checker that is evolved from the Kronos tool and that can handle backwards computation of TCTL (timed computation tree logic) reachability formulae over timed automata. Our proposal, including the arguments of its correctness, is based on software architectures, using a notation adapted from C. Hofmeister et al. (1999). We find such an approach to be a natural and general way to address the development of complex tools that need to incorporate new features and optimizations as they evolve. We introduce some interesting features, such as a-priori graph partitioning (using METIS, a standard library for graph partitioning), sophisticated machinery to reach optimum performance (communication piggybacking and delayed messaging) and dead-time utilization, where every processor uses time intervals of inactivity to perform auxiliary, time-consuming tasks that will later speed up the rest of the computation. The correctness proof strategy combines an architecture evolution with the theoretical results about fix-point calculation developed by P. Cousot (1978).
{"title":"An architecture-centric approach to the development of a distributed model-checker for timed automata","authors":"E. D. Ves, Ana M. C. Ruedin, D. Acevedo, X. Benavent, L. Seijas","doi":"10.1145/581457.581461","DOIUrl":"https://doi.org/10.1145/581457.581461","url":null,"abstract":"Summary form only given, as follows. Research in model checking is focused on increasing the size of the problems that tools can deal with. The ultimate wave has been the use of distributed computing, where a cluster of computers work together to solve the problem. In our work, we present a distributed model checker that is evolved from the Kronos tool and that can handle backwards computation of TCTL (timed computation tree logic) reachability formulae over timed automata. Our proposal, including the arguments of its correctness, is based on software architectures, using a notation adapted from C. Hofmeister et al. (1999). We find such an approach to be a natural and general way to address the development of complex tools that need to incorporate new features and optimizations as they evolve. We introduce some interesting features, such as a-priori graph partitioning (using METIS, a standard library for graph partitioning), sophisticated machinery to reach optimum performance (communication piggybacking and delayed messaging) and dead-time utilization, where every processor uses time intervals of inactivity to perform auxiliary, time-consuming tasks that will later speed up the rest of the computation. The correctness proof strategy combines an architecture evolution with the theoretical results about fix-point calculation developed by P. Cousot (1978).","PeriodicalId":186061,"journal":{"name":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","volume":"73 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-05-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132895870","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}
To evaluate a software specification for its performance potential, it is necessary to supply additional information, not required for functional specification. Examples range from the execution cost of operations and details of deployment, up to missing subsystems and layers. The term "completions" is used here to include all such additions, including annotations, component insertions, environment infrastructure, deployment, communication patterns, design refinements and scenario or design transformations which correspond to a given deployment style. Completions are related to the purpose of evaluation, so they are tailored to describing the performance at a suitable level of detail. Completions for evaluating other attributes such as reliability or security are also possible. The paper describes how completions are added to a specification regardless of the language used (provided that it describes the system behaviour as well as its structure), and experience with completions in Use Case Maps.
{"title":"Performance-related completions for software specifications","authors":"Murray Woodside, D. Petriu, K. Siddiqui","doi":"10.1145/581339.581346","DOIUrl":"https://doi.org/10.1145/581339.581346","url":null,"abstract":"To evaluate a software specification for its performance potential, it is necessary to supply additional information, not required for functional specification. Examples range from the execution cost of operations and details of deployment, up to missing subsystems and layers. The term \"completions\" is used here to include all such additions, including annotations, component insertions, environment infrastructure, deployment, communication patterns, design refinements and scenario or design transformations which correspond to a given deployment style. Completions are related to the purpose of evaluation, so they are tailored to describing the performance at a suitable level of detail. Completions for evaluating other attributes such as reliability or security are also possible. The paper describes how completions are added to a specification regardless of the language used (provided that it describes the system behaviour as well as its structure), and experience with completions in Use Case Maps.","PeriodicalId":186061,"journal":{"name":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-05-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130759541","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 : 2002-05-19DOI: 10.1109/ICSE.2002.1007967
Jonathan Aldrich, C. Chambers, D. Notkin
Software architecture describes the structure of a system, enabling more effective design, program understanding, and formal analysis. However, existing approaches decouple implementation code from architecture, allowing inconsistencies, causing confusion, violating architectural properties, and inhibiting software evolution. ArchJava is an extension to Java that seamlessly unifies software architecture with implementation, ensuring that the implementation conforms to architectural constraints. A case study applying ArchJava to a circuit-design application suggests that ArchJava can express architectural structure effectively within an implementation, and that it can aid in program understanding and software evolution.
{"title":"ArchJava: connecting software architecture to implementation","authors":"Jonathan Aldrich, C. Chambers, D. Notkin","doi":"10.1109/ICSE.2002.1007967","DOIUrl":"https://doi.org/10.1109/ICSE.2002.1007967","url":null,"abstract":"Software architecture describes the structure of a system, enabling more effective design, program understanding, and formal analysis. However, existing approaches decouple implementation code from architecture, allowing inconsistencies, causing confusion, violating architectural properties, and inhibiting software evolution. ArchJava is an extension to Java that seamlessly unifies software architecture with implementation, ensuring that the implementation conforms to architectural constraints. A case study applying ArchJava to a circuit-design application suggests that ArchJava can express architectural structure effectively within an implementation, and that it can aid in program understanding and software evolution.","PeriodicalId":186061,"journal":{"name":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","volume":"7 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-05-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134171943","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}
This research is an initial investigation into the development of the Holistic Framework for Software Engineering (HFSE), which establishes mechanisms by which existing software development tools and models can interoperate. The HFSE captures and uses dependency relationships among heterogeneous software development artifacts, the results of which can be used by software engineers to improve software processes and product integrity.
{"title":"Holistic framework for establishing interoperability of heterogeneous software development tools and models","authors":"J. Puett","doi":"10.1145/581339.581474","DOIUrl":"https://doi.org/10.1145/581339.581474","url":null,"abstract":"This research is an initial investigation into the development of the Holistic Framework for Software Engineering (HFSE), which establishes mechanisms by which existing software development tools and models can interoperate. The HFSE captures and uses dependency relationships among heterogeneous software development artifacts, the results of which can be used by software engineers to improve software processes and product integrity.","PeriodicalId":186061,"journal":{"name":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","volume":"34 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-05-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130505541","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}
Brazil aims to achieve international standards on quality and productivity in the software sector. From 1993 onwards there are strategies and projects to reach the Brazilian objective on software quality. Since 1995 there have been nationwide surveys on software quality every 2 years. This paper highlights the main trends on software quality in Brazil based both on the results of four surveys (1995, 1997, 1999, and 2001) and on other pieces of evidence. The paper concludes that the software quality in Brazil is continuously improving.
{"title":"Brazilian software quality in 2002","authors":"K. C. Weber, Célia Joseli do Nascimento","doi":"10.1145/581339.581420","DOIUrl":"https://doi.org/10.1145/581339.581420","url":null,"abstract":"Brazil aims to achieve international standards on quality and productivity in the software sector. From 1993 onwards there are strategies and projects to reach the Brazilian objective on software quality. Since 1995 there have been nationwide surveys on software quality every 2 years. This paper highlights the main trends on software quality in Brazil based both on the results of four surveys (1995, 1997, 1999, and 2001) and on other pieces of evidence. The paper concludes that the software quality in Brazil is continuously improving.","PeriodicalId":186061,"journal":{"name":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","volume":"167 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-05-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133580599","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}
Remote operations such as maintenance, diagnoses, and command executions are more and more needed in industrial automation domains. Remote operation software that flexibly responds to changes in requirements from factory, chemical plants, or remote-side operators is desired. We developed a dynamic program-sending and automatic starting architecture for this purpose. In the architecture, a pair of programs appears in one remote operation context at a time. One program called a "Worker" is dynamically sent to a plant side and another called a "WorkerGUI" is dynamically sent to a remote operator side. Both programs are simultaneously started and communicate each other using Java/RMI. The remote-side operator's commands via the "WorkerGUI" are sent and executed in the plant side "Worker" program and the execution results are sent back to the operator side "WorkerGUI". By using this architecture, a remote-side operator is able to select best match programs whenever he or she needs, and dynamically send and start them. Thus, the architecture establishes flexible remote operation environments. We explain our architecture first, and then, report the evaluation results through experiences of architecture development, three prototype application developments, and using the applications in a real remote plant operation environment.
{"title":"A dynamic pair-program sending architecture for industrial remote operations","authors":"Takeshi Inoue, Y. Hino, K. Hayashi, M. Narukawa","doi":"10.1145/581384.581387","DOIUrl":"https://doi.org/10.1145/581384.581387","url":null,"abstract":"Remote operations such as maintenance, diagnoses, and command executions are more and more needed in industrial automation domains. Remote operation software that flexibly responds to changes in requirements from factory, chemical plants, or remote-side operators is desired. We developed a dynamic program-sending and automatic starting architecture for this purpose. In the architecture, a pair of programs appears in one remote operation context at a time. One program called a \"Worker\" is dynamically sent to a plant side and another called a \"WorkerGUI\" is dynamically sent to a remote operator side. Both programs are simultaneously started and communicate each other using Java/RMI. The remote-side operator's commands via the \"WorkerGUI\" are sent and executed in the plant side \"Worker\" program and the execution results are sent back to the operator side \"WorkerGUI\". By using this architecture, a remote-side operator is able to select best match programs whenever he or she needs, and dynamically send and start them. Thus, the architecture establishes flexible remote operation environments. We explain our architecture first, and then, report the evaluation results through experiences of architecture development, three prototype application developments, and using the applications in a real remote plant operation environment.","PeriodicalId":186061,"journal":{"name":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","volume":"95 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-05-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114817214","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}
We present a new technique for helping developers understand heap properties of object-oriented programs and how the actions of the program affect these properties. Our dynamic analysis uses the aliasing properties of objects to synthesize a set of roles; each role represents an abstract object state intended to be of interest to the developer. We allow the developer to customize the analysis to explore the object states and behavior of the program at multiple different and potentially complementary levels of abstraction. The analysis uses roles as the basis for three abstractions: role transition diagrams, which present the observed transitions between roles and the methods responsible for the transitions; role relationship diagrams, which present the observed referencing relationships between objects playing different roles; and enhanced method interfaces, which present the observed roles of method parameters. Together, these abstractions provide useful information about important object and data structure properties and how the actions of the program affect these properties. We have used our implemented role analysis to explore the behavior of several Java programs. Our experience indicates that, when combined with a powerful graphical user interface, roles are a useful abstraction for helping developers explore and understand the behavior of object-oriented programs.
{"title":"Role-based exploration of object-oriented programs","authors":"Brian Demsky, M. Rinard","doi":"10.1145/581376.581379","DOIUrl":"https://doi.org/10.1145/581376.581379","url":null,"abstract":"We present a new technique for helping developers understand heap properties of object-oriented programs and how the actions of the program affect these properties. Our dynamic analysis uses the aliasing properties of objects to synthesize a set of roles; each role represents an abstract object state intended to be of interest to the developer. We allow the developer to customize the analysis to explore the object states and behavior of the program at multiple different and potentially complementary levels of abstraction. The analysis uses roles as the basis for three abstractions: role transition diagrams, which present the observed transitions between roles and the methods responsible for the transitions; role relationship diagrams, which present the observed referencing relationships between objects playing different roles; and enhanced method interfaces, which present the observed roles of method parameters. Together, these abstractions provide useful information about important object and data structure properties and how the actions of the program affect these properties. We have used our implemented role analysis to explore the behavior of several Java programs. Our experience indicates that, when combined with a powerful graphical user interface, roles are a useful abstraction for helping developers explore and understand the behavior of object-oriented programs.","PeriodicalId":186061,"journal":{"name":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","volume":"19 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-05-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121932833","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}
M. Aoyama, S. Weerawarana, H. Maruyama, C. Szyperski, K. Sullivan, D. Lea
Web services are emerging technologies to reuse software as services over the Internet by wrapping underlying computing models with XML. Web services are rapidly evolving and are expected to change the paradigms of both software development and use. This panel will discuss the current status and challenges of Web services technologies.
{"title":"Web services engineering: promises and challenges","authors":"M. Aoyama, S. Weerawarana, H. Maruyama, C. Szyperski, K. Sullivan, D. Lea","doi":"10.1145/581339.581425","DOIUrl":"https://doi.org/10.1145/581339.581425","url":null,"abstract":"Web services are emerging technologies to reuse software as services over the Internet by wrapping underlying computing models with XML. Web services are rapidly evolving and are expected to change the paradigms of both software development and use. This panel will discuss the current status and challenges of Web services technologies.","PeriodicalId":186061,"journal":{"name":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","volume":"23 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-05-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122900624","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}