Software-related problems have an incredible impact on society, organizations, and users that increasingly rely on information technology. Specification, verification and testing techniques aim to avoid such problems. However, the growing complexity, scale, and diversity of software complicate matters. Since software is evolving and operates in a changing environment, one cannot anticipate all problems at design-time. Hence, we propose to analyze software "in vivo", i.e., we study systems in their natural habitat rather than through testing or software design. We propose to observe running systems, collect and analyze data on them, generate descriptive models, and use these to respond to failures. We focus on process mining as a tool for in vivo software analytics. Process discovery techniques can be used to capture the real behavior of software. Conformance checking techniques can be used to spot deviations. The alignment of models and real software behavior can be used to predict problems related to performance or conformance. Recent developments in process mining and instrumentation of software make this possible. This keynote paper provides pointers to process mining literature and introduces the "Big Software on the Run" (BSR) research program that just started.
{"title":"Big software on the run: in vivo software analytics based on process mining (keynote)","authors":"Wil M.P. van der Aalst","doi":"10.1145/2785592.2785593","DOIUrl":"https://doi.org/10.1145/2785592.2785593","url":null,"abstract":"Software-related problems have an incredible impact on society, organizations, and users that increasingly rely on information technology. Specification, verification and testing techniques aim to avoid such problems. However, the growing complexity, scale, and diversity of software complicate matters. Since software is evolving and operates in a changing environment, one cannot anticipate all problems at design-time. Hence, we propose to analyze software \"in vivo\", i.e., we study systems in their natural habitat rather than through testing or software design. We propose to observe running systems, collect and analyze data on them, generate descriptive models, and use these to respond to failures. We focus on process mining as a tool for in vivo software analytics. Process discovery techniques can be used to capture the real behavior of software. Conformance checking techniques can be used to spot deviations. The alignment of models and real software behavior can be used to predict problems related to performance or conformance. Recent developments in process mining and instrumentation of software make this possible. This keynote paper provides pointers to process mining literature and introduces the \"Big Software on the Run\" (BSR) research program that just started.","PeriodicalId":415950,"journal":{"name":"Proceedings of the 2015 International Conference on Software and System Process","volume":"126 3 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-08-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129774233","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}
Mojtaba Hajmoosaei, H. Tran, C. Percebois, A. Front, C. Roncancio
Managing changes for knowledge-intensive processes like System and Software Engineering is a critical issue but far from being mastered due to the lack of supporting methods and practical tools. To manage changes systematically, a process environment is needed to control processes and to handle changes at run-time. However, such an effective environment satisfying these requirements is still missing. The reason is two-folds: first, operational process environments for system and software engineering is scarce; second, there is a lack of efficient change management mechanism integrated in such process environments. In order to address these concerns, we aimed at developing a change-aware process environment for system and software engineering. To this aim, we proposed a change management mechanism based on (1) the Process Dependency Graph (PDG) representing the dependencies among running process instances managed by a process environment ; (2) a Change Observer process to catch change events and update the PDG with run-time information; (3) a Change Analyzer component to extract the impacts of change by reasoning the PDG. In terms of implementation, to gain the benefits from the Business Process Community, where many mature Business Process Management Systems have been developed, we chose jBPM to enact and monitor processes. The key strengths of this study are: first, the PDG makes hidden dependencies among process instances emerge at run-time; second, the process observer inside the BPMS allows to handle the change events in a timely manner. Finally, the Neo4j graph database, used to store the PDG, enables efficient traversal and queries.
{"title":"Towards a change-aware process environment for system and software process","authors":"Mojtaba Hajmoosaei, H. Tran, C. Percebois, A. Front, C. Roncancio","doi":"10.1145/2785592.2785596","DOIUrl":"https://doi.org/10.1145/2785592.2785596","url":null,"abstract":"Managing changes for knowledge-intensive processes like System and Software Engineering is a critical issue but far from being mastered due to the lack of supporting methods and practical tools. To manage changes systematically, a process environment is needed to control processes and to handle changes at run-time. However, such an effective environment satisfying these requirements is still missing. The reason is two-folds: first, operational process environments for system and software engineering is scarce; second, there is a lack of efficient change management mechanism integrated in such process environments. In order to address these concerns, we aimed at developing a change-aware process environment for system and software engineering. To this aim, we proposed a change management mechanism based on (1) the Process Dependency Graph (PDG) representing the dependencies among running process instances managed by a process environment ; (2) a Change Observer process to catch change events and update the PDG with run-time information; (3) a Change Analyzer component to extract the impacts of change by reasoning the PDG. In terms of implementation, to gain the benefits from the Business Process Community, where many mature Business Process Management Systems have been developed, we chose jBPM to enact and monitor processes. The key strengths of this study are: first, the PDG makes hidden dependencies among process instances emerge at run-time; second, the process observer inside the BPMS allows to handle the change events in a timely manner. Finally, the Neo4j graph database, used to store the PDG, enables efficient traversal and queries.","PeriodicalId":415950,"journal":{"name":"Proceedings of the 2015 International Conference on Software and System Process","volume":"12 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-08-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129699919","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}
Jörg Holtmann, Ruslan Bernijazov, Matthias Meyer, D. Schmelter, Christian Tschirner
The development of software-intensive technical systems (e.g., within the automotive industry) involves several engineering disciplines like mechanical, electrical, control, and software engineering. Model-based Systems Engineering (MBSE) coordinates these disciplines throughout the development by means of discipline-spanning processes and system models. Such a system model provides a common understanding of the system under development and serves as a starting point for the discipline-specific development. An integral part of MBSE is the requirements engineering on the system level. However, for the discipline-specific development to start, these requirements need to be refined, e.g., into specific requirements for the embedded software. Since existing MBSE approaches lack support for this refinement step, we conceived a systematic transition from MBSE to model-based software requirements engineering, which we present in this paper. We automated the steps of the transition where possible, in order to avoid error-prone and time-consuming manual tasks. We illustrate the approach with an example of an automotive embedded system.
{"title":"Integrated systems engineering and software requirements engineering for technical systems","authors":"Jörg Holtmann, Ruslan Bernijazov, Matthias Meyer, D. Schmelter, Christian Tschirner","doi":"10.1145/2785592.2785597","DOIUrl":"https://doi.org/10.1145/2785592.2785597","url":null,"abstract":"The development of software-intensive technical systems (e.g., within the automotive industry) involves several engineering disciplines like mechanical, electrical, control, and software engineering. Model-based Systems Engineering (MBSE) coordinates these disciplines throughout the development by means of discipline-spanning processes and system models. Such a system model provides a common understanding of the system under development and serves as a starting point for the discipline-specific development. An integral part of MBSE is the requirements engineering on the system level. However, for the discipline-specific development to start, these requirements need to be refined, e.g., into specific requirements for the embedded software. Since existing MBSE approaches lack support for this refinement step, we conceived a systematic transition from MBSE to model-based software requirements engineering, which we present in this paper. We automated the steps of the transition where possible, in order to avoid error-prone and time-consuming manual tasks. We illustrate the approach with an example of an automotive embedded system.","PeriodicalId":415950,"journal":{"name":"Proceedings of the 2015 International Conference on Software and System Process","volume":"57 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-08-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126533136","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}
In recent years Open Innovation (OI) has gained much attention and made firms aware that they need to consider the open environment surrounding them. To facilitate this shift Requirements Engineering (RE) needs to be adapted in order to manage the increase and complexity of new requirements sources as well as networks of stakeholders. In response we build on and advance an earlier proposed software engineering framework for fostering OI, focusing on stakeholder management, when to open up, and prioritization and release planning. Literature in open source RE is contrasted against recent findings of OI in software engineering to establish a current view of the area. Based on the synthesized findings we propose a research agenda within the areas under focus, along with a framing-model to help researchers frame and break down their research questions to consider the different angles implied by the OI model.
{"title":"Requirements engineering in open innovation: a research agenda","authors":"J. Linåker, B. Regnell, Hussan Munir","doi":"10.1145/2785592.2795370","DOIUrl":"https://doi.org/10.1145/2785592.2795370","url":null,"abstract":"In recent years Open Innovation (OI) has gained much attention and made firms aware that they need to consider the open environment surrounding them. To facilitate this shift Requirements Engineering (RE) needs to be adapted in order to manage the increase and complexity of new requirements sources as well as networks of stakeholders. In response we build on and advance an earlier proposed software engineering framework for fostering OI, focusing on stakeholder management, when to open up, and prioritization and release planning. Literature in open source RE is contrasted against recent findings of OI in software engineering to establish a current view of the area. Based on the synthesized findings we propose a research agenda within the areas under focus, along with a framing-model to help researchers frame and break down their research questions to consider the different angles implied by the OI model.","PeriodicalId":415950,"journal":{"name":"Proceedings of the 2015 International Conference on Software and System Process","volume":"18 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-08-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126116995","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}
Shu Jiang, He Zhang, Chao Gao, Dong Shao, Guoping Rong
Training and learning are one important purpose of Software Process Simulation (SPS). Some previous reviews showed a noticeable number of studies that combine SPS and Soft- ware Engineering Education (SEE). The objective of this research is to present the latest state-of-the-art of this area, and more importantly provide practical support for the effective adoption of SPS in educational context. We conducted an extended Systematic Literature Review (SLR) based on our previous reviews. The review identified 42 primary studies from 1992 to 2013. This paper presents the preliminary results by answering the research questions. The overall findings confirmed the positive impact of SPS on education. The detailed discussions and recommendations may offer reference value to the community.
{"title":"Process simulation for software engineering education","authors":"Shu Jiang, He Zhang, Chao Gao, Dong Shao, Guoping Rong","doi":"10.1145/2785592.2785606","DOIUrl":"https://doi.org/10.1145/2785592.2785606","url":null,"abstract":"Training and learning are one important purpose of Software Process Simulation (SPS). Some previous reviews showed a noticeable number of studies that combine SPS and Soft- ware Engineering Education (SEE). The objective of this research is to present the latest state-of-the-art of this area, and more importantly provide practical support for the effective adoption of SPS in educational context. We conducted an extended Systematic Literature Review (SLR) based on our previous reviews. The review identified 42 primary studies from 1992 to 2013. This paper presents the preliminary results by answering the research questions. The overall findings confirmed the positive impact of SPS on education. The detailed discussions and recommendations may offer reference value to the community.","PeriodicalId":415950,"journal":{"name":"Proceedings of the 2015 International Conference on Software and System Process","volume":"45 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-08-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126231979","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}
Modern mobile application development is a fast reacting business. One success factor is the ability to be able to add new features rapidly into a product. This can be enabled by a process model designed to support it, and the use of a flexible architecture. Plug-in architecture is one approach to create a flexible architecture, because it enables adding new software components. We have refactored an existing application to a plug-in architecture, and implemented a process model to support rapid adding of features. In our approach new features are implemented as plug-ins, which are added to the application. In this paper we describe the process model, discuss of adding new plug-in using it, and describe our experiences of using the process model.
{"title":"Process model for rapid implementation of features using flexible architecture","authors":"Juha-Matti Vanhatupa","doi":"10.1145/2785592.2785614","DOIUrl":"https://doi.org/10.1145/2785592.2785614","url":null,"abstract":"Modern mobile application development is a fast reacting business. One success factor is the ability to be able to add new features rapidly into a product. This can be enabled by a process model designed to support it, and the use of a flexible architecture. Plug-in architecture is one approach to create a flexible architecture, because it enables adding new software components. We have refactored an existing application to a plug-in architecture, and implemented a process model to support rapid adding of features. In our approach new features are implemented as plug-ins, which are added to the application. In this paper we describe the process model, discuss of adding new plug-in using it, and describe our experiences of using the process model.","PeriodicalId":415950,"journal":{"name":"Proceedings of the 2015 International Conference on Software and System Process","volume":"19 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-08-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125752353","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}
The paper introduces an architecture to support system engineering on the cloud. It employs the main benefits of the cloud: scalability, parallelism, cost-effectiveness, multi-user access and flexibility. The architecture includes an open toolbox which provides tools as a service to support various phases of system engineering. The architecture uses the Open Services for Life-cycle Collaboration (OSLC) technology to create a reactive middleware that informs all stakeholders about any changes in the development artefacts. It facilitates the interoperability of tools and enables the workflow of tools to support complex engineering steps. Another component of the architecture is a shared repository of artefacts. All the artefacts generated during a system engineering process are stored in the repository, and can be accessed by relevant stakeholders. The shared repository also serves as a platform to support a protocol for formal model decomposition and group work on the decomposed models. Finally, the architecture includes components for ensuring the dependability of the system engineering process.
本文介绍了一种支持云上系统工程的体系结构。它利用了云的主要优势:可伸缩性、并行性、成本效益、多用户访问和灵活性。该体系结构包括一个开放工具箱,它提供工具作为服务来支持系统工程的各个阶段。该体系结构使用生命周期协作的开放服务(Open Services for Life-cycle Collaboration, OSLC)技术来创建响应式中间件,该中间件通知所有涉众开发工件中的任何更改。它促进了工具的互操作性,并使工具工作流能够支持复杂的工程步骤。该体系结构的另一个组件是工件的共享存储库。在系统工程过程中生成的所有工件都存储在存储库中,相关涉众可以访问它们。共享存储库还可以作为平台来支持正式模型分解和对分解模型进行分组工作的协议。最后,体系结构包括确保系统工程过程可靠性的组件。
{"title":"A reactive architecture for cloud-based system engineering","authors":"D. Adjepon-Yamoah, A. Romanovsky, A. Iliasov","doi":"10.1145/2785592.2785611","DOIUrl":"https://doi.org/10.1145/2785592.2785611","url":null,"abstract":"The paper introduces an architecture to support system engineering on the cloud. It employs the main benefits of the cloud: scalability, parallelism, cost-effectiveness, multi-user access and flexibility. The architecture includes an open toolbox which provides tools as a service to support various phases of system engineering. The architecture uses the Open Services for Life-cycle Collaboration (OSLC) technology to create a reactive middleware that informs all stakeholders about any changes in the development artefacts. It facilitates the interoperability of tools and enables the workflow of tools to support complex engineering steps. Another component of the architecture is a shared repository of artefacts. All the artefacts generated during a system engineering process are stored in the repository, and can be accessed by relevant stakeholders. The shared repository also serves as a platform to support a protocol for formal model decomposition and group work on the decomposed models. Finally, the architecture includes components for ensuring the dependability of the system engineering process.","PeriodicalId":415950,"journal":{"name":"Proceedings of the 2015 International Conference on Software and System Process","volume":"104 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-08-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121905548","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}
Today, it is practically impossible to provide a complete undergraduate education within software engineering, not only because of its breath and depth but also due to its complexity, intricate nature and huge competition from other curriculum subjects. In this paper, we suggest a half-day tutorial providing one angle of teaching software engineering and tackling the incompleteness problem. The tutorial is based on the ESSENCE Kernel, a recently accepted OMG standard. The Kernel covers the domain of software engineering in a minimalistic way. It includes specifications of the essential things that must be considered for assuring the progress and health of every software engineering endeavor. Hence, it provides a good basis for embracing the whole software engineering domain in a simple yet fully covering manner.
{"title":"Tackling the incompleteness of software engineering education with the ESSENCE kernel","authors":"M. Kajko-Mattsson","doi":"10.1145/2785592.2785621","DOIUrl":"https://doi.org/10.1145/2785592.2785621","url":null,"abstract":"Today, it is practically impossible to provide a complete undergraduate education within software engineering, not only because of its breath and depth but also due to its complexity, intricate nature and huge competition from other curriculum subjects. In this paper, we suggest a half-day tutorial providing one angle of teaching software engineering and tackling the incompleteness problem. The tutorial is based on the ESSENCE Kernel, a recently accepted OMG standard. The Kernel covers the domain of software engineering in a minimalistic way. It includes specifications of the essential things that must be considered for assuring the progress and health of every software engineering endeavor. Hence, it provides a good basis for embracing the whole software engineering domain in a simple yet fully covering manner.","PeriodicalId":415950,"journal":{"name":"Proceedings of the 2015 International Conference on Software and System Process","volume":"53 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-08-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130690201","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}
Software startups are increasingly important in generating innovative products and services that widely impact global economy. However, there is an insufficient research support for their innovation and engineering activities, from both theoretical and empirical perspectives. This study aims at proposing a conceptual model to understand how these activities occur and evolve in software startups. The model is constructed using a complexity theory and system design thinking. The model usage is illustrated by describing three software startup stories. The results show that our model can capture innovation generation activities and the non-linear evolution of engineering activities in software startups, which is not presentable in current software life cycle models.
{"title":"Hunter-gatherer cycle: a conceptual model of the evolution of software startups","authors":"Anh Nguyen-Duc, P. Seppänen, P. Abrahamsson","doi":"10.1145/2785592.2795368","DOIUrl":"https://doi.org/10.1145/2785592.2795368","url":null,"abstract":"Software startups are increasingly important in generating innovative products and services that widely impact global economy. However, there is an insufficient research support for their innovation and engineering activities, from both theoretical and empirical perspectives. This study aims at proposing a conceptual model to understand how these activities occur and evolve in software startups. The model is constructed using a complexity theory and system design thinking. The model usage is illustrated by describing three software startup stories. The results show that our model can capture innovation generation activities and the non-linear evolution of engineering activities in software startups, which is not presentable in current software life cycle models.","PeriodicalId":415950,"journal":{"name":"Proceedings of the 2015 International Conference on Software and System Process","volume":"43 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-08-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131482942","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 position paper presents some useful metaphors to think about new conceptual model for open innovation process.
本文提供了一些有用的隐喻来思考开放式创新过程的新概念模型。
{"title":"Process model for open innovation","authors":"K. Kishida","doi":"10.1145/2785592.2795364","DOIUrl":"https://doi.org/10.1145/2785592.2795364","url":null,"abstract":"This position paper presents some useful metaphors to think about new conceptual model for open innovation process.","PeriodicalId":415950,"journal":{"name":"Proceedings of the 2015 International Conference on Software and System Process","volume":"36 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-08-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127789008","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}