A survey on design and usage of software reference architectures (original) (raw)
Related papers
A classification of software reference architectures: Analyzing their success and effectiveness
2009
Abstract A software reference architecture is a generic architecture for a class of information systems that is used as a foundation for the design of concrete architectures from this class. We observe that certain reference architectures have become more successful than others. One of the reasons for this is the level of congruence between their goals, context, and design. In this paper, we provide a framework for the classification of reference architectures.
A framework for analysis and design of software reference architectures
Information and Software Technology, 2011
CONTEXT: A software reference architecture is a generic architecture for a class of systems that is used as a foundation for the design of concrete architectures from this class. The generic nature of reference architectures leads to a less defined architecture design and application contexts, which makes the architecture goal definition and architecture design non-trivial steps, rooted in uncertainty. OBJECTIVE: The paper presents a structured and comprehensive study on the congruence between context, goals, and design of software ...
Aggregating Empirical Evidence about the Benefits and Drawbacks of Software Reference Architectures
2015 ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM), 2015
Context: Several empirical studies investigated the benefits and drawbacks of acquiring a Software Reference Architecture (SRA) to construct a family of software systems with similar architectural needs. However, these empirical results have not been synthesized by any study yet. Such synthesized evidence is essential to make informed decisions whether or not to adopt an SRA in an organization. Goal: To aggregate existing empirically-grounded evidence about the benefits and drawbacks of SRAs, aiming at supporting organizations' decision making on their adoption. Method: To identify primary studies in the technical literature through a systematic literature review, and then, use the Structured Synthesis Method (SSM) to aggregate qualitative and quantitative evidence through the use of diagrammatic models. Results: From the five identified primary studies, five SRA benefits have considerably increased their belief value after aggregation: interoperability of software systems, reduced development costs, improved communication among stakeholders, reduced risk, and reduced time-to-market. Also, one drawback of SRAs has increased its belief value: the required learning curve for developers. Conclusions: The aggregated results consolidate knowledge and confidence on some of the studied SRA effects. The commonly reported effects showed a clear increment of their belief and pointed out to broader generalization. The effects that did not show any belief increment are important to detect areas requiring further evidence to reach a higher degree of consolidation. Practitioners might benefit from these results to support the decision of adopting an SRA in practice.
Artifacts of software reference architectures
Proceedings of the 18th International Conference on Evaluation and Assessment in Software Engineering, 2014
Context: Software reference architectures (SRA) have emerged as an approach to systematically reuse architectural knowledge and software elements in the development of software systems. Over the last years, research has been conducted to uncover the artifacts that SRAs provide in order to build software systems. However, empirical studies have not focused on providing industrial evidence about such artifacts. Aim: This paper investigates which artifacts constitute an SRA, how SRAs are designed, the potential reuse of SRA's artifacts, and how they are used in practice. Method: The study consists of a case study made in collaboration with a multinational consulting company that designs SRAs for diverse client organizations. A total of nine European client organizations that use an SRA participated in the study. We analyzed available documentation and contacted 28 practitioners. Results: In the nine analyzed projects, we observed that the artifacts that constitute an SRA are mainly software elements, guidelines and documentation. The design and implementation of SRAs are influenced by the reuse of artifacts from previous software system development and experiences, and the reuse of an SRA across different business domains may be possible when they are platform-oriented. Regarding SRAs usage, we observed that conformance checking is seldom performed. Conclusions: This study reports artifacts of SRAs as stated by practitioners in order to help software architects and scientists in the inception, design, and application of SRAs.
The Concept of Reference Architectures
Systems …, 2010
The concept of Reference Architectures is novel in the business world. However, many architects active in the creation of complex systems frequently use the term Reference Architecture. Yet, these experienced architects do not collectively have a consistent notion of what constitutes a Reference Architecture, what is the value of maintaining the Reference Architecture, what is the best approach to visualizing a Reference Architecture, what is the most appropriate level of abstraction, and how should an architect make use of the Reference Architecture in their work? This paper examines current Reference Architectures and the driving forces behind development of them to come to a collective conclusion on what a Reference Architecture should truly be. It will be shown that a Reference Architecture captures the accumulated architectural knowledge of thousands man-years of work. This knowledge ranges from why (market segmentation, value chain, customer key drivers, application), what (systems, key performance parameters, system interfaces, functionality, variability), to how (design views and diagrams, essential design patterns, main concepts). The purpose of the Reference Architecture is to provide guidance for future developments. The Reference Architecture incorporates the vision and strategy for the future. The Reference Architecture is a reference for the hundreds of teams related to ongoing developments. By providing this reference all these teams have a shared baseline of why, what and how. It is the authors' goal that this paper will facilitate further research in the concepts and ideas presented herein.
Reference Architecture Design: A Practical Approach
Proceedings of the 13th International Conference on Software Technologies
Reference Architectures (RA) in a Software Product Line (SPL) context are generic schemas that can be instantiated to configure concrete architectures for particular software systems or products of the SPL family. SPLs claim to be reusable industrial solutions to reduce development cost and time to market; however their development requires a huge effort, since the RA must be evolutionary. The goal of this work in progress is to present a practical RA domain engineering method for the Human Resources domain based on a bottomup strategy applied to the early Scope phase of SPL Engineering. A usual industrial practice in this development is to start from a single existing product built by the enterprise and incrementally derive the RA by adding new elements. Four architectural configurations are developed and quality properties are considered early as major responsible of the SPL variability. Our approach is applied to a real industrial case study.
A knowledge-based framework for reference architectures
Proceedings of the 27th Annual ACM Symposium on Applied Computing - SAC '12, 2012
Software architectures play a major role in determining system quality, since they form the backbone of any successful software-intensive system. In this context, reference architectures refer to a special type of software architecture that capture the essence of the system architectures of a given domain, encompassing the knowledge about how to develop, standardize, and evolve systems of that domain. However, in spite of the considerable number of reference architectures available, no good understanding exists regarding knowledge contained in reference architectures. The main contribution of this work is to provide a better understanding of such knowledge and to propose a framework which presents a comprehensive panorama of this knowledge. An analysis of this framework is presented based on a relevant, well-known reference architecture widely used in industry. As its main result, this framework could provide a better understanding of the contents of such architectures, enabling the development of more complete, efficient reference architectures.
Using Systematic Review to Elicit Requirements of Reference Architectures
wer.inf.puc-rio.br
Abstract. Software architectures have played a significant role in de-termining the success of software systems. In this context, reference ar-chitectures have emerged as a special type of architecture that contains knowledge of a specific domain, aiming at improving reuse and ...
Towards a method for the evaluation of reference architectures: Experiences from a case
2008
Reference architectures provide major guidelines for the structure of a class of information systems. Because of their fundamental role, reference architectures have to be of high quality. Before accepting a reference architecture, it has to go through a rigorous evaluation process. A number of methods exist for the evaluation of software architectures. In this paper, we analyze the main differences between concrete software architectures and reference architectures.
Journal of Software Engineering Research and Development, 2014
Background: Software reference architectures are becoming widely adopted by organizations that need to support the design and maintenance of software applications of a shared domain. For organizations that plan to adopt this architecture-centric approach, it becomes fundamental to know the return on investment and to understand how software reference architectures are designed, maintained, and used. Unfortunately, there is little evidence-based support to help organizations with these challenges. Methods: We have conducted action research in an industry-academia collaboration between the GESSI research group and everis, a multinational IT consulting firm based in Spain. Results: The results from such collaboration are being packaged in order to create guidelines that could be used in similar contexts as the one of everis. The main result of this paper is the construction of empirically-grounded guidelines that support organizations to decide on the adoption of software reference architectures and to gather evidence to improve RA-related practices. Conclusions: The created guidelines could be used by other organizations outside of our industry-academia collaboration. With this goal in mind, we describe the guidelines in detail for their use.