Software Architecture Viewpoint Models: a Short Survey
Total Page:16
File Type:pdf, Size:1020Kb
ACSIJ Advances in Computer Science: an International Journal, Vol. 2, Issue 5, No.6 , November 2013 ISSN : 2322-5157 www.ACSIJ.org Software Architecture Viewpoint Models: A Short Survey Valiallah Omrani1, Seyyed Ali Razavi Ebrahimi2 1 Computer Science & Information Technology, Payam Noor University (PNU), Tehran, Iran [email protected] 2 Computer Science & Information Technology, Payam Noor University (PNU), Tehran, Iran [email protected] A number of case studies and theories based on practical Abstract experience have been published, suggesting the need for A software architecture is a complex entity that cannot be multiple architectural views to capture different aspects of described in a simple one-dimensional fashion. The architecture a software architecture [4]. The effectiveness of having views used to describe software provide the architect with a multiple architectural views is that the multiple views means of explaining the architecture to stakeholders. Each view help developers manage complexity of software systems presents different aspects of the system that fulfill functional by separating their different aspects into separate views and non-functional requirements. A view of a system is a representation of the system from the perspective of a viewpoint. [5]. Architecture viewpoints in software products provide guidelines to describe uniformly the total system and its subsystems. It As part of researches on the evolvability of large software defines the stakeholders whose concerns are reflected in the intensive systems [6], we observed that suitable viewpoint and the guidelines, principles, and template models architectural views are indispensable assets to improve for constructing its views. The results of this study may serve as and sustain the evolvability of systems. Such views help a roadmap to the software developers and architects in helping practitioners to understand the existing system, to plan them select the appropriate viewpoint model based on the and evaluate intended changes, and to communicate them stakeholders and concerns that need to be covered by views. to others efficiently [7]. Keywords: software architecture, view, viewpoint, architectural description, stakeholder, viewpoint model. The architecture views used to describe software provide the architect with a means of explaining the architecture 1. Introduction to stakeholders [8]. Each view presents different aspects of the system that fulfill functional and non-functional With the growing complexity and size of software- requirements [9]. intensive systems, software architecture has become Architecture viewpoints in software products provide increasingly important [1]. Understanding all aspects of guidelines to describe uniformly the total system and its complex systems (people, building constructions, IT subsystems [5]. A viewpoint is a collection of patterns, systems, etc.) completely at all times is not possible at templates, and conventions for constructing one type of least for human perception. It would also be impractical to view. It defines the stakeholders whose concerns are attempt to do this, because not all aspects of a system are reflected in the viewpoint and the guidelines, principles, relevant all of the time. It therefore makes sense to be able and template models for constructing its views. In other to look at only those aspects of a system that are of words, a viewpoint defines the aims, intended audience, interest at a given time. For IT systems, the concept of and content of a class of views and defines the concerns architecture views and viewpoints exist for this purpose that views of this class will address [10]. [2]. In this paper, we discuss the various existing architectural Multiple software architecture views are essential because viewpoint models. The remainder of the article is of the diverse set of stakeholders (users, acquirers, structured as follows: Section 2 describes the key concepts developers, testers, maintainers, inter-operators, and used in the context of the architectural viewpoint models. others) needing to understand and use the architecture Section 3 discusses various existing viewpoint models. from their viewpoint. Achieving consistency among such Finally the paper is concluded in section 4. views is one of the most challenging and difficult problems in the software architecture field [3]. 55 Copyright (c) 2013 Advances in Computer Science: an International Journal. All Rights Reserved. ACSIJ Advances in Computer Science: an International Journal, Vol. 2, Issue 5, No.6 , November 2013 ISSN : 2322-5157 www.ACSIJ.org 2. Key Concepts the architecture that are relevant to the concerns the view intends to address—and, by implication, One of the problems encountered when we talk about the stakeholders for whom those concerns are architecture for software systems is that the terminology important. Viewpoint is a systems engineering has been loosely borrowed from other disciplines and is concept that describes a partitioning of concerns widely used, inconsistently, in a variety of situations. This in system restricted to a particular set of section defines and reviews some of the key concepts that concerns. A viewpoint is a collection of patterns, underpin the discussion in the remainder of the paper. templates, and conventions for constructing one type of view. It defines the stakeholders whose Software Architecture: Conscious architectural concerns are reflected in the viewpoint and the thinking in software development has only been guidelines, principles, and template models for around for a few decades. This is why there are constructing its views. Architectural viewpoints still contradictory opinions on what exactly provide a framework for capturing reusable architecture means. There are numerous architectural knowledge that can be used to guide definitions of the term “architecture” in IT [3]. the creation of a particular type of (partial) This shows that it is a challenge to find one architectural descriptions [10]. definition that is recognized universally. But it’s always worth getting the latest perspective from Architectural Description: ISO/IEC/IEEE has some of the leading thinkers in the field. It is the defined a standard for the architectural definition of software architecture according to description (AD) of software-intensive systems. Bass et al. [11]: “The software architecture of a It includes a conceptual framework to support the system is the set of structures needed to reason description of architectures, and the required about the system, which comprise software content of an architectural description: “Software elements, relations among them, and properties architecture description is a set of practices for of both”. expressing, communicating and analyzing software architectures (also called architectural Stakeholder: The people affected by a software rendering); AD is the result of applying such system are not limited to those who use it. practices: a work product expressing a software Software systems are not just used: They have to architecture” [13]. In addition to above be built and tested, they have to be operated, they definition, Rozanski and Woods [10] present the may have to be repaired, they are usually following definition of AD: “An architectural enhanced, and of course they have to be paid for. description (AD) is a set of products that Each of these activities involves a number— documents an architecture in a way its possibly a significant number—of people in stakeholders can understand and demonstrates addition to the users. We refer collectively to that the architecture has met their concerns”. these people as stakeholders. A commonly used “Products” in this context consists of a range of definition of stakeholder is: “A stakeholder in a things—particularly architectural models, but software architecture is a person, group, or entity also scope definition, constraints, and principles. with an interest in or concerns about the realization of the architecture” [12]. 2.1 Interrelationships between the Key Concepts Architectural View and Viewpoint: A software The important relationships between key concepts are architecture is a complex entity that cannot be illustrated in the UML diagram in fig. 1. The diagram described in a simple one-dimensional fashion brings out the following relationships between the [3]. A view of a system is a representation of the concepts we have discussed so far: system from the perspective of a viewpoint. Formally, a view is a representation of a whole A system is built to address the needs, concerns, system from the perspective of a set of concerns goals, and objectives of its stakeholders. [12]. This definition of a view clearly show the The architecture of a system is comprised of a most important property of architecture views: number of architectural elements and their they are motivated by stakeholders of a system interelement relationships. (“…a set of concerns… ”). An architectural view is a way to portray those aspects or elements of 56 Copyright (c) 2013 Advances in Computer Science: an International Journal. All Rights Reserved. ACSIJ Advances in Computer Science: an International Journal, Vol. 2, Issue 5, No.6 , November 2013 ISSN : 2322-5157 www.ACSIJ.org The architecture of a system can potentially be appropriate to the knowledge, expertise, and documented by an AD (fully, partly, or not at concerns of the intended readership. all). Management of complexity: By treating each significant An AD documents an architecture