CommUnity is a parallel program design language and framework that has been extended to provide a formal platform for the architectural design of open, reactive, reconfigurable systems. CommUnity programs are in the style of Unity programs, but they also combine elements from interacting processes. CommUnity also has a richer coordination model and it requires interactions between components to be made explicit. The CommUnity Workbench is being developed as a proof of concept of the framework, hiding the underlying "mathematical machinery" from the user. Currently, the tool provides a graphical integrated development environment to write CommUnity programs, draw a configuration, automatically calculate its co-limit and run it. The workbench prevents the creation of ill-formed configurations and gives great flexibility in testing CommUnity programs.
{"title":"The CommUnity Workbench","authors":"M. Wermelinger, C. Oliveira","doi":"10.1145/581457.581464","DOIUrl":"https://doi.org/10.1145/581457.581464","url":null,"abstract":"CommUnity is a parallel program design language and framework that has been extended to provide a formal platform for the architectural design of open, reactive, reconfigurable systems. CommUnity programs are in the style of Unity programs, but they also combine elements from interacting processes. CommUnity also has a richer coordination model and it requires interactions between components to be made explicit. The CommUnity Workbench is being developed as a proof of concept of the framework, hiding the underlying \"mathematical machinery\" from the user. Currently, the tool provides a graphical integrated development environment to write CommUnity programs, draw a configuration, automatically calculate its co-limit and run it. The workbench prevents the creation of ill-formed configurations and gives great flexibility in testing CommUnity programs.","PeriodicalId":186061,"journal":{"name":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","volume":"31 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127599119","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-25DOI: 10.1109/ICSE.2002.1008031
P. Tarr, H. Ossher, S. Sutton
This paper describes how to accomplish multi-dimensional separation of concerns (MDSOC) with Hyper/J/sup TM/, a tool available for free download, in the context of standard Java/sup TM/ development. Hyper/J does not require any special languages or language variants, compilers, development environments, or processes - it works with standard Java, using any compiler, development environment, methodology and process. It can be used at any stage of the software lifecycle - from design and initial development of code, to the evolution of pre-existing code (whether or not it was developed using Hyper/J), to the adaptation and integration of separately developed components.
{"title":"Hyper/J/spl trade/: multi-dimensional separation of concerns for Java/spl trade/","authors":"P. Tarr, H. Ossher, S. Sutton","doi":"10.1109/ICSE.2002.1008031","DOIUrl":"https://doi.org/10.1109/ICSE.2002.1008031","url":null,"abstract":"This paper describes how to accomplish multi-dimensional separation of concerns (MDSOC) with Hyper/J/sup TM/, a tool available for free download, in the context of standard Java/sup TM/ development. Hyper/J does not require any special languages or language variants, compilers, development environments, or processes - it works with standard Java, using any compiler, development environment, methodology and process. It can be used at any stage of the software lifecycle - from design and initial development of code, to the evolution of pre-existing code (whether or not it was developed using Hyper/J), to the adaptation and integration of separately developed components.","PeriodicalId":186061,"journal":{"name":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","volume":"64 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128270115","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-25DOI: 10.1109/ICSE.2002.1008039
Philippe B Kruchten
Summary form only given. The Rational Unified Process/sup /spl reg// (RUP/sup /spl reg//) is a software engineering process framework. It captures many of the best practices in modern software development in a form that is suitable for a wide range of projects and organizations. It embeds object-oriented techniques and uses UML as the principal notation for the several models that are built during the development. The RUP is also an open process framework that allows software organizations to tailor the process to their specific need, and to capture their own specific process know-how in the form of process components. Many process components are now developed by various organizations to cover different domains, technologies, tools, or type of development, and these components can be assembled to rapidly compose a suitable process. This tutorial introduces the basic concepts and principles, which lie under the RUP framework, and show concrete examples of its usage.
{"title":"Tutorial: introduction to the Rational Unified Process/sup /spl reg//","authors":"Philippe B Kruchten","doi":"10.1109/ICSE.2002.1008039","DOIUrl":"https://doi.org/10.1109/ICSE.2002.1008039","url":null,"abstract":"Summary form only given. The Rational Unified Process/sup /spl reg// (RUP/sup /spl reg//) is a software engineering process framework. It captures many of the best practices in modern software development in a form that is suitable for a wide range of projects and organizations. It embeds object-oriented techniques and uses UML as the principal notation for the several models that are built during the development. The RUP is also an open process framework that allows software organizations to tailor the process to their specific need, and to capture their own specific process know-how in the form of process components. Many process components are now developed by various organizations to cover different domains, technologies, tools, or type of development, and these components can be assembled to rapidly compose a suitable process. This tutorial introduces the basic concepts and principles, which lie under the RUP framework, and show concrete examples of its usage.","PeriodicalId":186061,"journal":{"name":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","volume":"33 4 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123617932","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}
Jan Hendrik Hausmann, R. Heckel, Gabriele Taentzer
In object-oriented software development, requirements of different stakeholders are often manifested in use case models which complement the static domain model by dynamic and functional requirements. In the course of development, these requirements are analyzed and integrated to produce a consistent overall requirements specification. Iterations of the model may be triggered by conflicts between requirements of different parties. However, due to the diversity, incompleteness, and informal nature, in particular of functional and dynamic requirements, such conflicts are difficult to find. Formal approaches to requirements engineering, often based on logic ' attack these problems, but require highly specialized experts to write and reason about such specifications. We propose a formal interpretation of use case models consisting of UML use case, activity, and collaboration diagrams. The formalization, which is based on concepts from the theory of graph transformation, allows to make precise the notions of conflict and dependency between functional requirements expressed by different use cases. Then, use case models can be statically analyzed, and conflicts or dependencies detected by the analysis can be communicated to the modeler by annotating the model. An implementation of the static analysis within a graph transformation tool is presented.
{"title":"Detection of conflicting functional requirements in a use case-driven approach","authors":"Jan Hendrik Hausmann, R. Heckel, Gabriele Taentzer","doi":"10.1145/581352.581355","DOIUrl":"https://doi.org/10.1145/581352.581355","url":null,"abstract":"In object-oriented software development, requirements of different stakeholders are often manifested in use case models which complement the static domain model by dynamic and functional requirements. In the course of development, these requirements are analyzed and integrated to produce a consistent overall requirements specification. Iterations of the model may be triggered by conflicts between requirements of different parties. However, due to the diversity, incompleteness, and informal nature, in particular of functional and dynamic requirements, such conflicts are difficult to find. Formal approaches to requirements engineering, often based on logic ' attack these problems, but require highly specialized experts to write and reason about such specifications. We propose a formal interpretation of use case models consisting of UML use case, activity, and collaboration diagrams. The formalization, which is based on concepts from the theory of graph transformation, allows to make precise the notions of conflict and dependency between functional requirements expressed by different use cases. Then, use case models can be statically analyzed, and conflicts or dependencies detected by the analysis can be communicated to the modeler by annotating the model. An implementation of the static analysis within a graph transformation tool is presented.","PeriodicalId":186061,"journal":{"name":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","volume":"51 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129954298","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}
Existing approaches that are available to help software developers locate and manage the scattered implementation of concerns use a representation based on lines of source code. Because they do not explicitly express program structure, concern representations based on source code have inherent limitations when finding, describing and analyzing concerns. To address these problems, we are trying to find a concern representation that captures as close as possible the amount and precision level of information that software developers need to efficiently plan a change, and that supports queries that can provide this information. As a proposed solution, we introduced the Concern Graph representation that abstracts the implementation details of a concern and makes explicit the relationships between different parts of the concern. The Concern Graph abstraction has also been designed to allow an obvious and expensive mapping back to the corresponding source code. To investigate the practical tradeoffs related to this approach, we have built the Feature Exploration and Analysis Tool (FEAT) that allows a developer to navigate over an extracted model of a Java program, to build up the subset of the model that corresponds to a concern of interest, and to analyze the relationships of that concern to the code base.
可用来帮助软件开发人员定位和管理分散的关注点实现的现有方法使用基于源代码行的表示。因为它们没有显式地表达程序结构,所以基于源代码的关注表示在查找、描述和分析关注时具有固有的局限性。为了解决这些问题,我们试图找到一种关注表示,它尽可能地捕获软件开发人员有效地计划变更所需的信息的数量和精确级别,并支持可以提供这些信息的查询。作为建议的解决方案,我们引入了关注图表示,它抽象了关注的实现细节,并明确了关注的不同部分之间的关系。关注图抽象也被设计成允许明显且昂贵的映射回相应的源代码。为了研究与此方法相关的实际权衡,我们已经构建了Feature Exploration and Analysis Tool (FEAT),它允许开发人员浏览Java程序的提取模型,构建与感兴趣的关注点相对应的模型子集,并分析该关注点与代码库的关系。
{"title":"A representation for describing and analyzing concerns in source code","authors":"M. Robillard","doi":"10.1145/581469.581470","DOIUrl":"https://doi.org/10.1145/581469.581470","url":null,"abstract":"Existing approaches that are available to help software developers locate and manage the scattered implementation of concerns use a representation based on lines of source code. Because they do not explicitly express program structure, concern representations based on source code have inherent limitations when finding, describing and analyzing concerns. To address these problems, we are trying to find a concern representation that captures as close as possible the amount and precision level of information that software developers need to efficiently plan a change, and that supports queries that can provide this information. As a proposed solution, we introduced the Concern Graph representation that abstracts the implementation details of a concern and makes explicit the relationships between different parts of the concern. The Concern Graph abstraction has also been designed to allow an obvious and expensive mapping back to the corresponding source code. To investigate the practical tradeoffs related to this approach, we have built the Feature Exploration and Analysis Tool (FEAT) that allows a developer to navigate over an extracted model of a Java program, to build up the subset of the model that corresponds to a concern of interest, and to analyze the relationships of that concern to the code base.","PeriodicalId":186061,"journal":{"name":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","volume":"79 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":"115487131","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 an overview of the 5th International Workshop on Principles of Software Evolution (IWPSE 2002).
我们对第五届软件进化原理国际研讨会(IWPSE 2002)进行了概述。
{"title":"Principles of software evolution: 5th international workshop on principles of software evolution (IWPSE 2002)","authors":"M. Aoyama, Katsuro Inoue, V. Rajlich","doi":"10.1145/581339.581430","DOIUrl":"https://doi.org/10.1145/581339.581430","url":null,"abstract":"We present an overview of the 5th International Workshop on Principles of Software Evolution (IWPSE 2002).","PeriodicalId":186061,"journal":{"name":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","volume":"49 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":"117179527","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}
With the adoption of UML by the OMG and industry as the lingua-franca of visual systems modelling, one begins to ponder what will come next in this field? This tutorial brings a vision for visual modelling beyond UML. We present and consolidate radical new notations, proposed in a series of research papers and with quickly increasing adoption by industry, for the specification of complex systems in an intuitive visual, yet precise manner. The recurring theme of these notations is the upgrading of familiar diagrams into a powerful visual language. Spider diagrams considerably extend Venn diagrams to the specification of object-oriented (OO) systems. Most familiar OO concepts are translated into set-theoretical terms: classes into sets of objects, inheritance corresponding to subsets, and even statecharts are interpreted as the set of objects in that state. Constraint diagrams enhance the arrow notation to describe static system invariants which cannot be described by UML class-object diagrams. Reasoning rules are developed for the notation and strong completeness results are given. Finally, 3D diagrams show how the third dimension and VRML modelling can be used for a conceptual modelling of dynamic system behaviour. Much of the tutorial is based on a case study developed in industry, illustrating how the new notations are combined with those of UML, including OCL.
{"title":"Advanced visual modelling: beyond UML","authors":"J. Gil, J. Howse, S. Kent","doi":"10.1145/581339.581451","DOIUrl":"https://doi.org/10.1145/581339.581451","url":null,"abstract":"With the adoption of UML by the OMG and industry as the lingua-franca of visual systems modelling, one begins to ponder what will come next in this field? This tutorial brings a vision for visual modelling beyond UML. We present and consolidate radical new notations, proposed in a series of research papers and with quickly increasing adoption by industry, for the specification of complex systems in an intuitive visual, yet precise manner. The recurring theme of these notations is the upgrading of familiar diagrams into a powerful visual language. Spider diagrams considerably extend Venn diagrams to the specification of object-oriented (OO) systems. Most familiar OO concepts are translated into set-theoretical terms: classes into sets of objects, inheritance corresponding to subsets, and even statecharts are interpreted as the set of objects in that state. Constraint diagrams enhance the arrow notation to describe static system invariants which cannot be described by UML class-object diagrams. Reasoning rules are developed for the notation and strong completeness results are given. Finally, 3D diagrams show how the third dimension and VRML modelling can be used for a conceptual modelling of dynamic system behaviour. Much of the tutorial is based on a case study developed in industry, illustrating how the new notations are combined with those of UML, including OCL.","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":"123760424","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}
Much of the work published to date focuses on the past and present of OSS. For The 2 "a Workshop on Open Source Software Engineering, we are seeking a more future oriented approach. The goal of this year's workshop is to bring together researchers and practitioners to discuss both the short and long term sustainability of OSS. The workshop will seek to address the quality and maintainability of OSS products and tools, the replicability and portability of the OSS software engineering process, the stability and sustainability of OSS developer and user communities, and the viability and profitability of OSS business models.
{"title":"Meeting challenges and surviving success: the 2nd workshop on open source software engineering","authors":"J. Feller","doi":"10.1145/581339.581436","DOIUrl":"https://doi.org/10.1145/581339.581436","url":null,"abstract":"Much of the work published to date focuses on the past and present of OSS. For The 2 \"a Workshop on Open Source Software Engineering, we are seeking a more future oriented approach. The goal of this year's workshop is to bring together researchers and practitioners to discuss both the short and long term sustainability of OSS. The workshop will seek to address the quality and maintainability of OSS products and tools, the replicability and portability of the OSS software engineering process, the stability and sustainability of OSS developer and user communities, and the viability and profitability of OSS business models.","PeriodicalId":186061,"journal":{"name":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","volume":"9 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":"126607654","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}
Nowadays, applications are typically written using an object-oriented GUI framework. We explore the possibility of using the GUI of such applications to guide browsing and search of their source code. Such a tool would be helpful for software maintenance and reuse, particularly when the application source is unfamiliar. Generally, the GUI framework is in control and makes calls into the application code to handle various events, thus providing fundamental entry points into the application code, namely the callbacks. Of course, this is a property of frameworks in general but GUI frameworks have one additional advantage: the GUI is visible to the end-user and contains text messages describing what the application can do. Thus, we have an explicit connection between an informal specification fragment visible in the GUI and its precise entry point to the implementation in the source. We demonstrate our approach, which takes advantage of this connection, on KDE applications written using the KDE GUI framework.
{"title":"Browsing and searching source code of applications written using a GUI framework","authors":"Amir Michail","doi":"10.1145/581380.581381","DOIUrl":"https://doi.org/10.1145/581380.581381","url":null,"abstract":"Nowadays, applications are typically written using an object-oriented GUI framework. We explore the possibility of using the GUI of such applications to guide browsing and search of their source code. Such a tool would be helpful for software maintenance and reuse, particularly when the application source is unfamiliar. Generally, the GUI framework is in control and makes calls into the application code to handle various events, thus providing fundamental entry points into the application code, namely the callbacks. Of course, this is a property of frameworks in general but GUI frameworks have one additional advantage: the GUI is visible to the end-user and contains text messages describing what the application can do. Thus, we have an explicit connection between an informal specification fragment visible in the GUI and its precise entry point to the implementation in the source. We demonstrate our approach, which takes advantage of this connection, on KDE applications written using the KDE GUI framework.","PeriodicalId":186061,"journal":{"name":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","volume":"85 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":"124672850","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}
For 25 years the NASA/GSFC Software Engineering Laboratory (SEL) has been a major resource in software process improvement activities. But due to a changing climate at NASA, agency reorganization, and budget cuts, the SEL has lost much of its impact. In this paper we describe the history of the SEL and give some lessons learned on what we did right, what we did wrong, and what others can learn from our experiences. We briefly describe the research that was conducted by the SEL, describe how we evolved our understanding of software process improvement, and provide a set of lessons learned and hypotheses that should enable future groups to learn from and improve on our quarter century of experiences.
{"title":"Lessons learned from 25 years of process improvement: the rise and fall of the NASA software engineering laboratory","authors":"V. Basili, F. McGarry, R. Pajerski, M. Zelkowitz","doi":"10.1145/581339.581351","DOIUrl":"https://doi.org/10.1145/581339.581351","url":null,"abstract":"For 25 years the NASA/GSFC Software Engineering Laboratory (SEL) has been a major resource in software process improvement activities. But due to a changing climate at NASA, agency reorganization, and budget cuts, the SEL has lost much of its impact. In this paper we describe the history of the SEL and give some lessons learned on what we did right, what we did wrong, and what others can learn from our experiences. We briefly describe the research that was conducted by the SEL, describe how we evolved our understanding of software process improvement, and provide a set of lessons learned and hypotheses that should enable future groups to learn from and improve on our quarter century of experiences.","PeriodicalId":186061,"journal":{"name":"Proceedings of the 24th International Conference on Software Engineering. ICSE 2002","volume":"3 1-3 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":"129095722","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}