jagomart
digital resources
picture1_System Software Pdf 185615 | 2010 010 001 513810


 131x       Filetype PDF       File size 0.28 MB       Source: resources.sei.cmu.edu


File: System Software Pdf 185615 | 2010 010 001 513810
what is your definition of software architecture what is your definition of software emphasizes the plurality of structures present in every architecture software system these structures carefully chosen and the ...

icon picture PDF Filetype PDF | Posted on 01 Feb 2023 | 2 years ago
Partial capture of text on file.
              What is your definition of software 
              architecture?
              WHAT IS YOUR DEFINITION OF SOFTWARE                             emphasizes the plurality of structures present in every 
              ARCHITECTURE?                                                   software system. These structures, carefully chosen and 
              The SEI has compiled a list of modern, classic, and             designed by the architect, are the key to achieving and 
              bibliographic definitions of software architecture.             reasoning about the system’s design goals. And those 
                                                                              structures are the key to understanding the architecture. 
              Modern definitions are definitions from Software                Therefore, they are the focus of our approach to 
              Architecture in Practice and from ANSI/IEEE Std                 documenting a software architecture.
              1471-2000, Recommended Practice for Architectural               Structures consist of elements, relations among the 
              Description of Software-Intensive Systems.                      elements, and the important properties of both. So 
              Classic definitions appear in some of the more prominent        documenting a structure entails documenting  
              or influential books and papers on architecture.                those things.
              Bibliographic definitions are taken from papers and             2. From the book Software Architecture in Practice  
              articles in our software architecture bibliography.             (2nd edition), Bass, Clements, Kazman; Addison-
                        Modern Software Architecture                          Wesley 2003: 
                                                                              The software architecture of a program or computing 
                        Definitions                                           system is the structure or structures of the system, 
              Entries                                                         which comprise software elements, the externally visible 
                                                                              properties of those elements, and the relationships 
              1. From the book Documenting Software Architectures:            among them. 
              Views and Beyond (2nd Edition), Clements et al, Addison-        “Externally visible” properties refers to those assumptions 
              Wesley, 2010:
              The set of structures needed to reason about the system,        other elements can make of an element, such as its 
              which comprises software elements, relations among              provided services, performance characteristics, fault 
              them, and properties of both.                                   handling, shared resource usage, and so on. Let us look at 
              In this book, we use a definition based on the one              some of the implications of this definition in more detail. 
              from Software Architecture in Practice (2nd Edition)            First, architecture defines elements. The architecture 
              (see below). We chose it because it helps us know what          embodies information about how the elements relate 
              to document about an architecture. The definition               to each other. This means that architecture specifically 
              ©2017 Carnegie Mellon University | 3854 | 01.22.17                                                                         1
              omits certain information about elements that does                Fourth, the behavior of each element is part of the 
              not pertain to their interaction. Thus, an architecture           architecture insofar as that behavior can be observed or 
              is foremost an abstraction of a system that suppresses            discerned from the point of view of another element. This 
              details of elements that do not affect how they use, are          behavior is what allows elements to interact with each 
              used by, relate to, or interact with other elements. In           other, which is clearly part of the architecture. This does 
              nearly all modern systems, elements interact with each            not mean that the exact behavior and performance of 
              other by means of interfaces that partition details about         every element must be documented in all circumstances; 
              an element into public and private parts. Architecture is         but to the extent that an element’s behavior influences 
              concerned with the public side of this division; private          how another element must be written to interact with it 
              details of elements—details having to do solely with              or influences the acceptability of the system as a whole, 
              internal implementation—are not architectural.                    this behavior is part of the software architecture. 
              Second, the definition makes clear that systems can               Finally, the definition is indifferent as to whether the 
              and do comprise more than one structure and that no               architecture for a system is a good one or a bad one, 
              one structure holds the irrefutable claim to being the            meaning that the architecture will allow or prevent the 
              architecture. For example, all non-trivial projects are           system from meeting its behavioral, performance, and 
              partitioned into implementation units; these units                life-cycle requirements. Assuming that we do not accept 
              are given specific responsibilities, and are the basis            trial and error as the best way to choose an architecture 
              of work assignments for programming teams. This                   for a system—that is, picking an architecture at random, 
              kind of element will comprise programs and data                   building the system from it, and hoping for the best—this 
              that software in other implementation units can call              raises the importance of architecture evaluation.
              or access, and programs and data that are private. In 
              large projects, the elements will almost certainly be             3. ANSI/IEEE Std 1471-2000, Recommended  
              subdivided for assignment to subteams. This is one                Practice for Architectural Description of Software-
              kind of structure often used to describe a system. It             Intensive Systems 
              is a very static structure, in that it focuses on the way         Architecture is defined by the recommended practice 
              the system’s functionality is divided up and assigned to          as the fundamental organization of a system, embodied in 
              implementation teams.                                             its components, their relationships to each other and the 
                                                                                environment, and the principles governing its design and 
              Other structures are much more focused on the way the             evolution. This definition is intended to encompass a 
              elements interact with each other at runtime to carry             variety of uses of the term architecture by recognizing 
              out the system’s function. Suppose the system is to be            their underlying common elements. Principal among 
              built as a set of parallel processes. The set of processes        these is the need to understand and control those 
              that will exist at runtime, the programs in the various           elements of system design that capture the system’s 
              implementation units described previously that are                utility, cost, and risk. In some cases, these elements 
              strung together sequentially to form each process, and            are the physical components of the system and their 
              the synchronization relations among the processes form            relationships. In other cases, these elements are not 
              another kind of structure often used to describe a system.        physical, but instead, logical components. In still other 
              Third, the definition implies that every software system has      cases, these elements are enduring principles or patterns 
              an architecture because every system can be shown to be           that create enduring organizational structures. The 
              composed of elements and relations among them. In the             definition is intended to encompass these distinct, but 
              most trivial case, a system is itself a single element—an         related uses, while encouraging more rigorous definition 
              uninteresting and probably non-useful architecture, but           of what constitutes the fundamental organization of a 
              an architecture nevertheless. Even though every system            system within particular domains.
              has an architecture, it does not necessarily follow that 
              the architecture is known to anyone. Unfortunately, an 
              architecture can exist independently of its description or 
              specification, which raises the importance of architecture 
              documentation and architecture reconstruction.
              ©2017 Carnegie Mellon University | 3854 | 01.22.17                                                                             2
                         Classic Software Architecture                          HAYES-ROTH, 1994
                         Definitions                                            Writing for the ARPA Domain-Specific Software 
                                                                                Architecture (DSSA) program, Hayes-Roth says that 
              Rational Unified Process, 1999                                    software architecture is 
              An architecture is the set of significant decisions about         ...an abstract system specification consisting primarily 
              the organization of a software system, the selection of            of functional components described in terms of their 
              the structural elements and their interfaces by which              behaviors and interfaces and component-component 
              the system is composed, together with their behavior as            interconnections.
              specified in the collaborations among those elements,             GARLAN AND PERRY, 1995 
              the composition of these structural and behavioral                David Garlan and Dewayne Perry have adopted the 
              elements into progressively larger subsystems, and the            following definition for their guest editorial to the April 
              architectural style that guides this organization---these         1995 IEEE Transactions on Software Engineering devoted 
              elements and their interfaces, their collaborations,              to software architecture: 
              and their composition (Kruchten: The Rational Unified 
              Process. Also cited in Booch, Rumbaugh, and Jacobson:             The structure of the components of a program/system, 
              The Unified Modeling Language User Guide, Addison-                their interrelationships, and principles and guidelines 
              Wesley, 1999).                                                    governing their design and evolution over time.
              PERRY AND WOLF, 1992                                              (The source of this definition was a weekly discussion 
              An early one by Dewayne Perry and Alex Wolf is:                   group devoted to software architecture at the Software 
              A set of architectural (or, if you will, design) elements         Engineering Institute.)
              that have a particular form. Perry and Wolf distinguish           BOEHM, ET AL., 1995 
              between processing elements, data elements, and                   Barry Boehm and his students at the USC Center for 
              connecting elements, and this taxonomy by and large               Software Engineering write that: 
              persists through most other definitions and approaches.           A software system architecture comprises 
              GARLAN AND SHAW, 1993                                             •  A collection of software and system components, 
              In what has come to be regarded as a seminal paper                  connections, and constraints. 
              on software architecture , Mary Shaw and David Garlan             •  A collection of system stakeholders’ need statements. 
              suggest that software architecture is a level of design           •  A rationale which demonstrates that the components, 
              concerned with issues                                               connections, and constraints define a system that, if 
              ...beyond the algorithms and data structures of the                 implemented, would satisfy the collection of system 
                computation; designing and specifying the overall                 stakeholders’ need statements.
                system structure emerges as a new kind of problem.              SONI, NORD, AND HOFMEISTER, 1995 
                Structural issues include gross organization and                Soni, Nord, and Hofmeister of Siemens Corporate 
                global control structure; protocols for communication,          Research write that, based on structures found to be 
                synchronization, and data access; assignment                    prevalent and influential in the development environment 
                of functionality to design elements; physical                   of industrial projects they studied, software architecture 
                distribution; composition of design elements; scaling 
                and performance; and selection among design                     has at least four distinct incarnations: 
                alternatives.”                                                  Within each category, the structures describe the system 
              BASS, ET AL., 1994                                                from a different perspective: 
              Writing about a method to evaluate architectures with             •  The conceptual architecture describes the system 
              respect to the quality attributes they instill in a system ,        in terms of its major design elements and the 
              Bass and his colleagues write that                                  relationships among them. 
              ...the architectural design of a system can be described          •  The module interconnection architecture encompasses 
                from (at least) three perspectives -- functional                  two orthogonal structures: functional decomposition 
                                                                                  and layers.  
                partitioning of its domain of interest, its structure, and      •  The execution architecture describes the dynamic 
                the allocation of domain function to that structure.              structure of a system.  
              ©2017 Carnegie Mellon University | 3854 | 01.22.17                                                                            3
             •  The code architecture describes how the source              on architecture -- its constituent parts, the whole entity, 
               code, binaries,  and libraries are organized in the          the way it behaves once built, or the building of it. Taken 
               development environment.                                     together, they form a consensus view of  
             Shaw, 1995: At the First International Workshop on             software architecture.
             Architectures for Software Systems, Mary Shaw provided                   Bibliographic Software 
             a much-needed clarification of the terminological chaos.                 Architecture Definitions
             Distilling the definitions and viewpoints (implicit or 
             explicit) of the workshop’s position papers, Shaw classifies   [Lane 90]: Software architecture is the study of the large-
             the views of software architecture thus :                      scale structure and performance of software systems. 
             •  Structural models all hold that software architecture       Important aspects of a system’s architecture include 
               is  composed of components, connections among                the division of functions among system modules, the 
               those components, plus (usually) some  other aspect or       means of communication between modules, and the 
               aspects, including (grouping suggested by the authors):      representation of shared information. 
             •  configuration, style                                        [Rechtin 92]: Systems architecture: The underlying 
             •  constraints, semantics                                      structure of a system, such as a communication network, 
             •  analyses, properties                                        a neural network, a spacecraft, a computer, major 
             •  rationale, requirements, stakeholders’ needs                software or an organization.
             Work in this area is exemplified by the development            [Bhansali 92]: A generic architecture is defined as a 
             of architectural description languages (ADLs), which           topological organization of a set of parameterized 
             are formal languages that facilitate the description of        modules, together with the inter-modular relationships. 
             an architecture’s components and connections. The              Designing a software system using a generic architecture 
             languages are usually graphical, and provide some form         consists of instantiating the parameters of each 
             of “box and line” syntax for specifying components and         parameterized module by a concrete value while 
             hooking them together.                                         maintaining the inter-modular constraints.
             •  Framework models are similar to the structural view,        [Garlan 92]: As the size and complexity of software 
               but  their primary emphasis is on the (usually singular)     systems increases, the design problem goes beyond 
               coherent structure of the  whole system, as opposed to       the algorithms and data structures of the computation: 
               concentrating on its composition. Framework models           designing and specifying the overall system structure 
               often target specific domains or problem classes.            emerges as a new kind of problem. Structural issues 
               Work that exemplifies the  framework view includes           include gross organization and global control structure; 
               domain-specific software architectures, CORBA [55] or        protocols for communication, synchronization, and 
               CORBA-based architecture models, and domain-specific         data access; assignment of functionality to design 
               component repositories  (e.g., PRISM).                       elements; composition of design elements; scaling and 
             •  Dynamic models emphasize the behavioral quality of          performance; and selection among design alternatives. 
               systems. “Dynamic” may refer to changes in the overall       This is the software architecture level of design.
               system configuration,  setting up or disabling pre-
               enabled communication or interaction pathways, or  the       [Perry 92]: We distinguish three different classes of 
               dynamics involved in the progress of the computation,        architectural elements: processing elements; data 
               such as changing data  values.                               elements; and connection elements. The processing 
             •  Process models focus on construction of the                 elements are those components that supply the 
               architecture, and the steps or process involved in           transformation on the data elements; the data elements 
               that construction. In this  view, architecture is the        are those that contain the information that is used and 
               result of following a process script. This view is           transformed; the connecting elements (which at times 
               exemplified by work in process programming for               may be either processing or data elements, or both) are 
               deriving architectures.                                      the glue that holds the different pieces of the architecture 
             These views do not preclude each other, nor do                 together. For example, procedure calls, shared data, and 
             they really represent a fundamental conflict about             messages are different examples of connecting elements 
             what software architecture is. Instead, they represent         that serve to “glue” architectural elements together. 
             a spectrum in the software architecture research               Consider the example of water polo as a metaphor for 
             community about the emphasis that should be placed             the different classes of elements: the swimmers are the 
              ©2017 Carnegie Mellon University | 3854 | 01.22.17                                                                     4
The words contained in this file might help you see if this file matches what you are looking for:

...What is your definition of software architecture emphasizes the plurality structures present in every system these carefully chosen and sei has compiled a list modern classic designed by architect are key to achieving bibliographic definitions reasoning about s design goals those understanding from therefore they focus our approach practice ansi ieee std documenting recommended for architectural consist elements relations among description intensive systems important properties both so appear some more prominent structure entails or influential books papers on things taken book articles bibliography nd edition bass clements kazman addison wesley program computing entries which comprise externally visible relationships architectures them views beyond et al refers assumptions set needed reason other can make an element such as its comprises provided services performance characteristics fault handling shared resource usage let us look at this we use based one implications detail first def...

no reviews yet
Please Login to review.