Feature modeling is widely used for software product line analysis to capture commonality and variability of a product line. As product line variations are mainly captured in a feature model, the mapping between features and architectural components is essential to enable the derivation of product architectures from the feature model. However, current SPL architecture design approaches that map features to architectural components do not model crosscutting concerns explicitly either at a feature model or at product line architecture design. We propose a feature-oriented solution with aspects for product line architecture design aiming at improving product line architecture evolvability by adopting aspect-oriented techniques, which provide a promising support for modeling crosscutting concerns. Our approach includes guidelines for developing and refining SPL requirements into component-based product line architecture with aspects. We evaluated our approach through a preliminary evaluation which has shown promising results.
{"title":"An Aspect-Based Feature Model for Architecting Component Product Lines","authors":"Leonardo P. Tizzei, C. M. F. Rubira, Jaejoon Lee","doi":"10.1109/SEAA.2012.64","DOIUrl":"https://doi.org/10.1109/SEAA.2012.64","url":null,"abstract":"Feature modeling is widely used for software product line analysis to capture commonality and variability of a product line. As product line variations are mainly captured in a feature model, the mapping between features and architectural components is essential to enable the derivation of product architectures from the feature model. However, current SPL architecture design approaches that map features to architectural components do not model crosscutting concerns explicitly either at a feature model or at product line architecture design. We propose a feature-oriented solution with aspects for product line architecture design aiming at improving product line architecture evolvability by adopting aspect-oriented techniques, which provide a promising support for modeling crosscutting concerns. Our approach includes guidelines for developing and refining SPL requirements into component-based product line architecture with aspects. We evaluated our approach through a preliminary evaluation which has shown promising results.","PeriodicalId":298734,"journal":{"name":"2012 38th Euromicro Conference on Software Engineering and Advanced Applications","volume":"259 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123082711","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}
A motivated individual is one of the cornerstones of agile software development. Although motivation has been recognized and studied in the software development field, little research has examined motivation in agile teams. Our study aims to provide a better understanding of what motivates software developers in agile environments. We conducted a systematic review of motivators in the agile context, classifying the results using the MOCC model of software engineers' motivation. Additionally, we performed three case studies in agile companies to both confirm our findings and gather new motivators. Our results suggest that motivation in the agile context is slightly different from the overall view of motivation in software development in general.
{"title":"Developers Motivation in Agile Teams","authors":"C. Melo, Célio Santana, Fabio Kon","doi":"10.1109/SEAA.2012.45","DOIUrl":"https://doi.org/10.1109/SEAA.2012.45","url":null,"abstract":"A motivated individual is one of the cornerstones of agile software development. Although motivation has been recognized and studied in the software development field, little research has examined motivation in agile teams. Our study aims to provide a better understanding of what motivates software developers in agile environments. We conducted a systematic review of motivators in the agile context, classifying the results using the MOCC model of software engineers' motivation. Additionally, we performed three case studies in agile companies to both confirm our findings and gather new motivators. Our results suggest that motivation in the agile context is slightly different from the overall view of motivation in software development in general.","PeriodicalId":298734,"journal":{"name":"2012 38th Euromicro Conference on Software Engineering and Advanced Applications","volume":"9 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115161116","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}
Ricardo Garibay-Martínez, L. Ferreira, L. M. Pinho
Embedded real-time applications increasingly present high computation requirements, which need to be completed within specific deadlines. But, those applications present highly variable patterns, depending on the data set in a determined instant. The current trend to provide parallel processing in the embedded domain allows providing higher processing power, however, it does not address the variability in the processing pattern. Dimensioning each device for its worst-case scenario implies lower average utilization, and increased available, but unusable, processing in the overall system. A solution for this problem is to extend the parallel execution of the applications, allowing networked nodes to distribute the workload, on peak situations, to neighbour nodes. In this context, this paper proposes a framework to develop parallel and distributed real-time embedded applications, transparently using OpenMP and Message Passing Interface (MPI), within a programming model based on OpenMP. The paper also devises an integrated timing model, which enables the structured reasoning on the timing behaviour of these hybrid architectures.
{"title":"A Framework for the Development of Parallel and Distributed Real-Time Embedded Systems","authors":"Ricardo Garibay-Martínez, L. Ferreira, L. M. Pinho","doi":"10.1109/SEAA.2012.60","DOIUrl":"https://doi.org/10.1109/SEAA.2012.60","url":null,"abstract":"Embedded real-time applications increasingly present high computation requirements, which need to be completed within specific deadlines. But, those applications present highly variable patterns, depending on the data set in a determined instant. The current trend to provide parallel processing in the embedded domain allows providing higher processing power, however, it does not address the variability in the processing pattern. Dimensioning each device for its worst-case scenario implies lower average utilization, and increased available, but unusable, processing in the overall system. A solution for this problem is to extend the parallel execution of the applications, allowing networked nodes to distribute the workload, on peak situations, to neighbour nodes. In this context, this paper proposes a framework to develop parallel and distributed real-time embedded applications, transparently using OpenMP and Message Passing Interface (MPI), within a programming model based on OpenMP. The paper also devises an integrated timing model, which enables the structured reasoning on the timing behaviour of these hybrid architectures.","PeriodicalId":298734,"journal":{"name":"2012 38th Euromicro Conference on Software Engineering and Advanced Applications","volume":"27 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126040242","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 service-oriented computing, software applications are dynamically built by assembling existing, loosely-coupled, distributed, and heterogeneous services. Predicting their reliability is important to appropriately drive the selection and assembly of services. This paper presents an approach to predict the reliability of a service component architecture. We adopt a lightweight formal component model, SCA-ASM, as core modeling technique for both architecture and behavior, supported by a run-time platform. This component model is based on the OASIS standard Service Component Architecture for heterogeneous service assembly and on the formal method Abstract State Machines for modeling service behavior, interactions, and orchestration in an abstract but executable way. The proposed reliability prediction method exploits ideas from architecture-based and path-based reliability models.
{"title":"Reliability Prediction for Service Component Architectures with the SCA-ASM Component Model","authors":"E. Riccobene, P. Potena, P. Scandurra","doi":"10.1109/SEAA.2012.53","DOIUrl":"https://doi.org/10.1109/SEAA.2012.53","url":null,"abstract":"In service-oriented computing, software applications are dynamically built by assembling existing, loosely-coupled, distributed, and heterogeneous services. Predicting their reliability is important to appropriately drive the selection and assembly of services. This paper presents an approach to predict the reliability of a service component architecture. We adopt a lightweight formal component model, SCA-ASM, as core modeling technique for both architecture and behavior, supported by a run-time platform. This component model is based on the OASIS standard Service Component Architecture for heterogeneous service assembly and on the formal method Abstract State Machines for modeling service behavior, interactions, and orchestration in an abstract but executable way. The proposed reliability prediction method exploits ideas from architecture-based and path-based reliability models.","PeriodicalId":298734,"journal":{"name":"2012 38th Euromicro Conference on Software Engineering and Advanced Applications","volume":"69 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126993706","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 embedded systems, non-functional and functional aspects are closely related and cannot be considered independently. However, the high complexity of systems requires a large domain of competencies and experts in various domains have to work concurrently on different aspects of the same systems. This is why we propose a multi-view model where each view represents a specific domain. The different views are connected to each other by explicit associations that maintain consistency. The whole system is the sum of all the aspects of elements in all the views. This multi-view approach is implemented in a dedicated UML profile based on MARTE and SysML. This article specifically focuses on the power view and its relationship to other functional or non-functional, structural or behavioral aspects.
{"title":"Multi-view Power Modeling Based on UML, MARTE and SysML","authors":"Carlos Gomez, Julien Deantoni, F. Mallet","doi":"10.1109/SEAA.2012.66","DOIUrl":"https://doi.org/10.1109/SEAA.2012.66","url":null,"abstract":"In embedded systems, non-functional and functional aspects are closely related and cannot be considered independently. However, the high complexity of systems requires a large domain of competencies and experts in various domains have to work concurrently on different aspects of the same systems. This is why we propose a multi-view model where each view represents a specific domain. The different views are connected to each other by explicit associations that maintain consistency. The whole system is the sum of all the aspects of elements in all the views. This multi-view approach is implemented in a dedicated UML profile based on MARTE and SysML. This article specifically focuses on the power view and its relationship to other functional or non-functional, structural or behavioral aspects.","PeriodicalId":298734,"journal":{"name":"2012 38th Euromicro Conference on Software Engineering and Advanced Applications","volume":"82 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132965146","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}
Requiring solid engineering disciplines and best practices rather than human talents for developing complex software systems results an increasing interest in software processes. The quality of software processes has considerable influence over the success of an organization. Process quality measurement addresses an essential and largely overlooked aspect of processes. We performed a case study on the application of a process quality measurement method with the main objective of examining the extent of the support it offers for software process improvement in practice. We discuss the challenges and lessons learned as well as the limitations of the measurement method applied.
{"title":"A Case Study on Measuring Process Quality: Lessons Learned","authors":"Ahmet Dikici, O. Türetken, Onur Demirörs","doi":"10.1109/SEAA.2012.26","DOIUrl":"https://doi.org/10.1109/SEAA.2012.26","url":null,"abstract":"Requiring solid engineering disciplines and best practices rather than human talents for developing complex software systems results an increasing interest in software processes. The quality of software processes has considerable influence over the success of an organization. Process quality measurement addresses an essential and largely overlooked aspect of processes. We performed a case study on the application of a process quality measurement method with the main objective of examining the extent of the support it offers for software process improvement in practice. We discuss the challenges and lessons learned as well as the limitations of the measurement method applied.","PeriodicalId":298734,"journal":{"name":"2012 38th Euromicro Conference on Software Engineering and Advanced Applications","volume":"64 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114576389","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}
Unit testing of legacy code is often characterized by the goal to find a maximum number of defects with minimal effort. In context of restrictive time frames and limited resources, approaches for generating test cases promise increased defect detection effectiveness. This paper presents the results of an empirical study investigating the effectiveness of (a) manual unit testing conducted by 48 master students within a time limit of 60 minutes and (b) tool-supported random test case generation with Randoop. Both approaches have been applied on a Java collection class library containing 35 seeded defects. With the specific settings, where time and resource restrictions limit the performance of manual unit testing, we found that (1) the number of defects detected by random test case generation is in the range of manual unit testing and, furthermore, (2) the randomly generated test cases detect different defects than manual unit testing. Therefore, random test case generation seems a useful aid to jump start manual unit testing of legacy code.
{"title":"Random Test Case Generation and Manual Unit Testing: Substitute or Complement in Retrofitting Tests for Legacy Code?","authors":"R. Ramler, D. Winkler, Martina Schmidt","doi":"10.1109/SEAA.2012.42","DOIUrl":"https://doi.org/10.1109/SEAA.2012.42","url":null,"abstract":"Unit testing of legacy code is often characterized by the goal to find a maximum number of defects with minimal effort. In context of restrictive time frames and limited resources, approaches for generating test cases promise increased defect detection effectiveness. This paper presents the results of an empirical study investigating the effectiveness of (a) manual unit testing conducted by 48 master students within a time limit of 60 minutes and (b) tool-supported random test case generation with Randoop. Both approaches have been applied on a Java collection class library containing 35 seeded defects. With the specific settings, where time and resource restrictions limit the performance of manual unit testing, we found that (1) the number of defects detected by random test case generation is in the range of manual unit testing and, furthermore, (2) the randomly generated test cases detect different defects than manual unit testing. Therefore, random test case generation seems a useful aid to jump start manual unit testing of legacy code.","PeriodicalId":298734,"journal":{"name":"2012 38th Euromicro Conference on Software Engineering and Advanced Applications","volume":"109 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124693971","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}
Gilbert Regan, F. McCaffery, Kevin McDaid, Derek Flood
Traceability of software artifacts, from requirements to design and through implementation and quality assurance, has long been promoted by the research and expert practitioner communities. However, evidence indicates that, with the exception of those operating in the safety critical domain, few software companies choose to implement traceability processes, often due to associated cost and complexity issues. This paper presents a review of traceability literature including the implementation of traceability in real organizations. Through both analyzing case studies and research published by leading traceability researchers, this paper synthesizes the barriers faced by organizations while implementing traceability, along with proposed solutions to the barriers. Additionally, given the importance of traceability in the regulated domain of safety critical software, the paper compares the barriers for organizations operating inside and outside of this domain.
{"title":"The Barriers to Traceability and their Potential Solutions: Towards a Reference Framework","authors":"Gilbert Regan, F. McCaffery, Kevin McDaid, Derek Flood","doi":"10.1109/SEAA.2012.80","DOIUrl":"https://doi.org/10.1109/SEAA.2012.80","url":null,"abstract":"Traceability of software artifacts, from requirements to design and through implementation and quality assurance, has long been promoted by the research and expert practitioner communities. However, evidence indicates that, with the exception of those operating in the safety critical domain, few software companies choose to implement traceability processes, often due to associated cost and complexity issues. This paper presents a review of traceability literature including the implementation of traceability in real organizations. Through both analyzing case studies and research published by leading traceability researchers, this paper synthesizes the barriers faced by organizations while implementing traceability, along with proposed solutions to the barriers. Additionally, given the importance of traceability in the regulated domain of safety critical software, the paper compares the barriers for organizations operating inside and outside of this domain.","PeriodicalId":298734,"journal":{"name":"2012 38th Euromicro Conference on Software Engineering and Advanced Applications","volume":"129 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123901231","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. Criado, L. Iribarne, Nicolás Padilla, J. Troya, Antonio Vallecillo
In certain systems, software must be adapted at runtime to the requirements and changes occurring in the context. A strategy to achieve this goal is to model such systems as software architectures making use of the Component-based Software Engineering (CBSE). Thus, the system can be adapted through the reconfiguration of the software architectures. In this paper we present a schema for the adaptation of software architectures at runtime based on the system context observation. The software system is defined by means of architectural models at two levels: abstract and concrete. We use a trading process to regenerate concrete architectural models from their abstract definitions and a component repository. We also use Model-Driven Engineering (MDE) techniques to transform at runtime such models in order to achieve the system adaptation to the monitored context by using observers. This article describes a case study of component-based user interfaces to illustrate our approach.
{"title":"An MDE Approach for Runtime Monitoring and Adapting Component-Based Systems: Application to WIMP User Interface Architectures","authors":"J. Criado, L. Iribarne, Nicolás Padilla, J. Troya, Antonio Vallecillo","doi":"10.1109/SEAA.2012.27","DOIUrl":"https://doi.org/10.1109/SEAA.2012.27","url":null,"abstract":"In certain systems, software must be adapted at runtime to the requirements and changes occurring in the context. A strategy to achieve this goal is to model such systems as software architectures making use of the Component-based Software Engineering (CBSE). Thus, the system can be adapted through the reconfiguration of the software architectures. In this paper we present a schema for the adaptation of software architectures at runtime based on the system context observation. The software system is defined by means of architectural models at two levels: abstract and concrete. We use a trading process to regenerate concrete architectural models from their abstract definitions and a component repository. We also use Model-Driven Engineering (MDE) techniques to transform at runtime such models in order to achieve the system adaptation to the monitored context by using observers. This article describes a case study of component-based user interfaces to illustrate our approach.","PeriodicalId":298734,"journal":{"name":"2012 38th Euromicro Conference on Software Engineering and Advanced Applications","volume":"38 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128830208","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}
R. Mader, G. Grießnig, E. Armengaud, A. Leitner, Christian Kreiner, Quentin Bourrouilh, C. Steger, R. Weiss
In this paper, we present a tool enhancement that allows an effective transition from the system level development phase to the software level development phase of a tool-supported safety engineering workflow aligned with the automotive functional safety standard ISO 26262. The tool enhancement has capabilities for model generation and code generation. Whereas the generation of Simulink models supports the development of application software, the configuration and generation of safety drivers supports the development of the basic software required for initialization, runtime fault detection and error handling. We describe the safety engineering workflow and its supporting tool chain including the tool enhancement. Moreover we demonstrate that the enhancement supports the transition from the system level development phase to the software level development phase using the case study of a hybrid electric vehicle development.
{"title":"A Bridge from System to Software Development for Safety-Critical Automotive Embedded Systems","authors":"R. Mader, G. Grießnig, E. Armengaud, A. Leitner, Christian Kreiner, Quentin Bourrouilh, C. Steger, R. Weiss","doi":"10.1109/SEAA.2012.61","DOIUrl":"https://doi.org/10.1109/SEAA.2012.61","url":null,"abstract":"In this paper, we present a tool enhancement that allows an effective transition from the system level development phase to the software level development phase of a tool-supported safety engineering workflow aligned with the automotive functional safety standard ISO 26262. The tool enhancement has capabilities for model generation and code generation. Whereas the generation of Simulink models supports the development of application software, the configuration and generation of safety drivers supports the development of the basic software required for initialization, runtime fault detection and error handling. We describe the safety engineering workflow and its supporting tool chain including the tool enhancement. Moreover we demonstrate that the enhancement supports the transition from the system level development phase to the software level development phase using the case study of a hybrid electric vehicle development.","PeriodicalId":298734,"journal":{"name":"2012 38th Euromicro Conference on Software Engineering and Advanced Applications","volume":"36 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115868795","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}