Deepak Dhungana, Herwig Schreiner, Martin Lehofer, Michael Vierhauser, Rick Rabiser, P. Grünbacher
{"title":"Modeling multiplicity and hierarchy in product line architectures: extending a decision-oriented approach","authors":"Deepak Dhungana, Herwig Schreiner, Martin Lehofer, Michael Vierhauser, Rick Rabiser, P. Grünbacher","doi":"10.1145/2578128.2578236","DOIUrl":"https://doi.org/10.1145/2578128.2578236","url":null,"abstract":"Engineers developing large-scale industrial software systems need to instantiate, configure, and deploy many different types of reusable components. The number of component instances required is typically unknown when defining the systems' architecture and variability but depends on customer requirements only known during configuration. The hierarchy of dynamically created component instances further results in complex dependencies between configuration decisions. To deal with the multiplicity and hierarchy of components product line engineers thus need a modeling approach capable of expressing the dependencies among dynamically instantiated components and related configuration decisions. Decision-oriented variability modeling approaches are highly useful in product line engineering to support product derivation and to guide users through the configuration process. However, current approaches do not sufficiently support multiplicity and hierarchy. In this paper we report on extending an existing decision-oriented approach to support modeling component variability, multiplicity, and hierarchy in product line architectures.","PeriodicalId":405927,"journal":{"name":"WICSA '14 Companion","volume":"51 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-04-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121338170","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}
{"title":"Towards flexible automated software architecture erosion diagnosis and treatment","authors":"M. Mair, Sebastian Herold, A. Rausch","doi":"10.1145/2578128.2578231","DOIUrl":"https://doi.org/10.1145/2578128.2578231","url":null,"abstract":"Uncontrolled software architecture erosion can lead to a degradation of the quality of a software system. It is hence of great importance to repair erosion efficiently. Refactorings can help to systematically reverse software architecture erosion through applying them in the system where architectural violations have been detected. However, existing refactoring approaches do not address architecture erosion holistically.\u0000 In this paper, we describe and formalize the theoretical problem of repairing eroded software systems by finding optimal repair sequences. Furthermore, we investigate the applicability and limitations of existing refactoring approaches. We argue, true to the motto \"more knowledge means less search\" that using formalized and explicit knowledge of software engineers---modeled as fault patterns and repair strategies---combined with heuristic search techniques could overcome those limitations.\u0000 This paper outlines a new approach---analog to a patient history in medicine---we have been starting to investigate in our recent research and also aims at stimulating a discussion about further research challenges in repairing eroded software systems.","PeriodicalId":405927,"journal":{"name":"WICSA '14 Companion","volume":"91 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-04-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124419086","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}
{"title":"Towards a pattern language for self-adaptation of cloud-based architectures","authors":"Aakash Ahmad, M. Babar","doi":"10.1145/2578128.2578227","DOIUrl":"https://doi.org/10.1145/2578128.2578227","url":null,"abstract":"Cloud computing enables organisations to deploy their software systems over a pool of available services -- exploiting pay-per-use models -- rather than upfront purchase of an overprovisioned infrastructure. In an architectural context for cloud systems that demand elasticity in terms of service availability, reliability, and efficiency, there is a need to capitalise on the 'build-once, use-often' solutions that support reuse-driven self-adaptations of cloud-based architectures. We support the composition and application of a pattern language that exploits adaptation patterns and their relations to support 'adaptation-off-the-shelf' for cloud-based software architectures. We unify the concepts of software repository mining and software evolution to support the composition and application of an adaptation pattern language. First, we exploit the software repository mining concepts by investigating adaptation logs to empirically discover architecture adaptation patterns and their relations. Second, we utilise the software evolution techniques for self-adaptation of cloud architectures guided by a systematic selection and application of adaptation patterns. In the context of the IBM'S MAPE-K model for self-adaptation, we propose reusable policies for self-adaptive cloud architectures. Architectural adaptation knowledge in the proposed pattern language is expressed as a formalised collection of interconnected-patterns. Individual patterns in the language build on each other to provide a generic and reusable solution to address the recurring adaptation problems. In future, we focus on an incremental evolution of pattern language by discovering new patterns from adaptation logs over time.","PeriodicalId":405927,"journal":{"name":"WICSA '14 Companion","volume":"27 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-04-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130421030","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}
{"title":"On improving the dependability of cloud applications with fault-tolerance","authors":"Foutse Khomh","doi":"10.1145/2578128.2578228","DOIUrl":"https://doi.org/10.1145/2578128.2578228","url":null,"abstract":"Cloud computing is an increasingly popular paradigm that allows individuals and enterprises to provision and deploy software applications over the Internet. Customers can lease services provided by these \"cloud\" applications (a.k.a cloud apps), ramping up or down the capacity as they need and paying only for what they use. Cloud apps are used in about every industry today; from financial, retail, education, and communications, to manufacturing, utilities and transportation. Forrester Research predicts that cloud apps sales will account for more than 16% of the total software market by 2016. However, cloud apps dependability is still a major issue for both providers and users. Failures of cloud apps generally result in big economic losses as core business activities now rely on them. In this position paper we discuss the current state of the dependability of cloud apps and advocate for the use of fault-tolerance mechanisms to improve the dependability of cloud apps.","PeriodicalId":405927,"journal":{"name":"WICSA '14 Companion","volume":"39 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-04-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115073994","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}
{"title":"Composition of applications based on software product lines using architecture fragments and component sets","authors":"Marco Körner, Sebastian Herold, A. Rausch","doi":"10.1145/2578128.2578239","DOIUrl":"https://doi.org/10.1145/2578128.2578239","url":null,"abstract":"Software product lines (SPL) are a popular concept to represent commonalities and variability among a family of software systems. In many approaches to SPL engineering, feature modelling is used to specify which common and different features instances of an SPL can have. By mapping features to components realising that feature, the software architecture of the SPL instance can be derived from the features it requires.\u0000 However, many approaches to feature modelling and mapping to implementation ignore the fact that features are often not implemented by a single component alone but by a set of components combined in a specific way. Moreover, they are often unable to capture implementation alternatives for features.\u0000 In this paper, we motivate the need for a more extensive way of mapping features to alternatives of architecture fragments by an illustrative example. We discuss the challenges of composing a software architecture out of architecture fragments and outline a solution approach.","PeriodicalId":405927,"journal":{"name":"WICSA '14 Companion","volume":"41 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-04-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125160595","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}
{"title":"A reference architecture for providing tools as a service to support global software development","authors":"Muhammad Aufeef Chauhan","doi":"10.1145/2578128.2588485","DOIUrl":"https://doi.org/10.1145/2578128.2588485","url":null,"abstract":"Global Software Development (GSD) teams encounter challenges that are associated with distribution of software development activities across multiple geographic regions. The limited support for performing collaborative development and engineering activities and lack of sufficient support for maintaining and resolving dependencies and traceability across heterogeneous tools are major challenges for GSD teams. The lack of insufficient support for cross platform tools integration also makes it hard to address the stated challenges using existing paradigms that are based upon desktop and web-based solutions. The restricted ability of the organizations to have desired alignment of tools with software engineering and development processes results in administrative and managerial overhead that incur increased development cost and poor product quality. Moreover, stakeholders involved in the projects have specific constraints regarding availability and deployments of the tools. The artifacts and data produced or consumed by the tools need to be governed according to the constraints and corresponding quality of service (QoS) parameters. In this paper, we present the research agenda to leverage cloud-computing paradigm for addressing above-mentioned issues by providing a framework to select appropriate tools as well as associated services and reference architecture of the cloud-enabled middleware platform that allows on demand provisioning of software engineering Tools as a Service (TaaS) with focus on integration of tools.","PeriodicalId":405927,"journal":{"name":"WICSA '14 Companion","volume":"6 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-04-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129543794","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}
{"title":"Variability viewpoint to describe reference architectures","authors":"Milena Guessi, F. Oquendo, E. Nakagawa","doi":"10.1145/2578128.2578238","DOIUrl":"https://doi.org/10.1145/2578128.2578238","url":null,"abstract":"Reference architectures have emerged as a special type of software architecture that achieves well-recognized understanding of specific domains. Their purpose is therefore to be a guidance for the development, standardization, and evolution of systems of such domains or neighbor domains. Adequate representation of such architectures is essential to promote their effective use and dissemination, using, for instance, different architectural viewpoints. A comprehensive description of reference architectures should not only record common features and functionalities, but also variations that could be present in the instances of these architectures. In this scenario, the main contribution of our work is to propose an architecture viewpoint to represent variability in reference architectures. We also describe the steps for creating such viewpoint and present an example of a technique that could be used to represent it. A case study is also presented, demonstrating the feasibility of our approach. Based on initial results, we have observed that the variability viewpoint could contribute to a more adequate, complete description of reference architectures and, as a consequence, it could promote a more effective dissemination and use of such architectures.","PeriodicalId":405927,"journal":{"name":"WICSA '14 Companion","volume":"8 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-04-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122157031","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}
{"title":"A metamodel for the support of semantically rich modular architectures in the context of static architecture compliance checking","authors":"Leo Pruijt, S. Brinkkemper","doi":"10.1145/2578128.2578233","DOIUrl":"https://doi.org/10.1145/2578128.2578233","url":null,"abstract":"Architecture Compliance Checking (ACC) is an approach to verify the conformance of implemented program code to high-level models of architectural design. Static ACC is focused on the module views of architecture and especially on rules constraining the modular elements. This paper proposes an approach for support of semantically rich modular architectures (SRMAs) in the context of static ACC. An SRMA contains modules of semantically different types, like layers and components, constrained by rules of different types. Our approach is grounded in a metamodel, which enables support of rich sets of module and rule types and which enables extensive support of the semantics of these types. To validate the feasibility of the metamodel, an open source prototype implementation was developed, tested and applied in practice.","PeriodicalId":405927,"journal":{"name":"WICSA '14 Companion","volume":"63 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-04-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121634529","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}
{"title":"On bridging the gap between practice and vision for software architecture reconstruction and evolution: a toolbox perspective","authors":"Ana Dragomir, M. F. Harun, H. Lichter","doi":"10.1145/2578128.2578235","DOIUrl":"https://doi.org/10.1145/2578128.2578235","url":null,"abstract":"Up-to-date architecture views help to better understand and meaningfully evolve software systems. Despite their importance, the views are typically either not defined or not monitored and updated when changes to the actual systems are performed. They thus become subject of continuous degradation. To reconstruct the views, architecture monitoring and reconstruction tools have been developed and proposed. However, according to our analysis of the state of the art and state of the practice, we have identified that existing tools still lack some important ingredients needed to meaningfully monitor and reconstruct the architecture description of software systems. This paper gives an insight of these improvement potentials and proposes a vision for the development of a stronger industry-oriented software architecture monitoring, reconstruction and evolution tool.","PeriodicalId":405927,"journal":{"name":"WICSA '14 Companion","volume":"25 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-04-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114267235","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}
{"title":"Empirical evaluation of the understandability of architectural component diagrams","authors":"S. Stevanetic, M. Javed, Uwe Zdun","doi":"10.1145/2578128.2578230","DOIUrl":"https://doi.org/10.1145/2578128.2578230","url":null,"abstract":"The architecture of a software system plays a crucial role during evolution and maintenance, as it provides the means to cope with the inherent system complexity by abstracting from implementation and design details. Architectural component models represent high level designs and are frequently used as a central view of architectural descriptions of software systems. Hence, understandability of those models is crucial as they play a key role in supporting the architectural understanding of a software system. In this paper we present the results from a study we carried out to examine to which extent the software architecture could be conveyed through architectural component diagrams. The statistical evaluation of the results shows that metrics such as the number of components, number of connectors, number of elements, and number of symbols used in the diagrams can significantly decrease architectural understandability when they are above and below a certain, roughly predicted threshold. Also, our results indicate that architectural understandability is linearly correlated with the perceived precision and general understandability of the diagrams.","PeriodicalId":405927,"journal":{"name":"WICSA '14 Companion","volume":"70 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-04-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125380684","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}