Presentation is loading. Please wait.

Presentation is loading. Please wait.

Dr. Rogelio Dávila Pérez ITESM, Campus Cd. Juarez Software Architectures.

Similar presentations


Presentation on theme: "Dr. Rogelio Dávila Pérez ITESM, Campus Cd. Juarez Software Architectures."— Presentation transcript:

1 Dr. Rogelio Dávila Pérez ITESM, Campus Cd. Juarez Software Architectures

2 Authorship The notes we introduce for this course consist of my personal abstraction of the material presented in the book: Software Architecture in Practice, Second edition. Len Bass, Paul Clements and Rick Kazman, SEI Series in Software Engineering, Addison-Wesley Co Anything appart from the books material comes from my personal point of view on the topics presented.

3 If a project has not achieved a system architecture, including its rationale, the project should not proceed to full-scale system development. Specifying the architecture as a deliverable enables its use throughout the development and maintenance process. Barry Boehm [Boe95] Software Architecture

4 Architecture has emerged as a crucial part of the design process. Software architectures (SA) encompasses the structures of large software systems. The architectural view of a system is abstract, distilling away details of implementation, algorithm and data representation. A software architecture is developed as the first step toward designing a system that has a collection of desired properties. Software Architecture

5 A building architect must design a building that provides accessibility, aesthetics, light, maintainability, and so on. A software architect must design a system that provides concurrency, portability, modifiability, usability, security, and the like, and that reflects consideration of the tradeoffs among these needs. Software Architecture

6 The software architecture of a program or computing system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them. Software Architecture

7 Where: Externally visible are those assumptions other elements can make of an element, such as: - provided services, - performance characteristics, - fault handling, - shared resource usage and so on. Software Architecture

8 Important remarks 1. Architecture defines software elements. An architecture is an abstraction of a system that suppresses details of elements that do not affect how they use, are used by, relate to, or interact with other elements. 2. Systems normally comprise more than one structure. A structure may express the implementation relations among the elements of the system. Another structure can show the way in which different components interact at running time. And so on. Software Architecture

9 Important remarks (cont.) 3. Every computing system has a software architecture. Every system comprise elements and relations among them. 4. The behavior of each element is part of the architecture. To the extent that an elements behavior influences how another element must be written to interact with it or influences the acceptability of the system as a whole, this behavior is part of the software architecture. Software Architecture

10 Different stages in developing a software architecture 1. Architectural Pattern An architectural pattern is a description of element and relation types together with a set of constraints on how they may be used. 2. Reference Model A reference model is a division of functionality together with data flow between the pieces. 3. Reference Architecture A reference architecture is a reference model mapped onto software elements and the data flows between them. A reference architecture is the mapping of the functionality onto a system decomposition. Architectural Structures

11 Relationship among stages Architectural Structures Reference Model Architectural Pattern Reference Architecture Software Architecture

12 1. Communication among stakeholders. Stakeholders of the system – customer, user, project manager, coder, tester, and so on. SA represents a common abstraction of the system that can be used as a basis for understanding, negotiation, consensus, and communication. 2. Early design decision SA manifest the earliest design decisions about a system. It is also the earliest point at which design decisions governing the system to be built can be analyzed. 3. Transferable abstraction of a system. A SA constitutes model of the structure and functionalities of the system. This model is transferable across systems when they exhibit similar quality attribute an functional requirements and promote large-scale re-use. Importance of Software Architecture (SA)

13 What happen when I push this button? (presentar el caso pag , libro [Bass03]) Architecture manifest the earliest design decisions

14 The architecture defines constraints on implementation. The architecture defines organizational structure. The architecture inhibits or enables a systems quality attributes. Predicting system qualities by studying the architecture. The architecture makes it easier to reason about and manage change. The architecture helps in evolutionary prototyping. The architecture enables more accurate cost and schedule estimates. Architecture manifest the earliest design decisions

15 Systems can be built using large, externally developed elements. Less is More: It pays to restrict the vocabulary to design alternatives. An architecture permits template-based development. An architecture can be the basis for training. Architecture as a transferable, re-usable model

16 1. Communication among stakeholders. Stakeholders of the system – customer, user, project manager, coder, tester, and so on. SA represents a common abstraction of the system that can be used as a basis for understanding, negotiation, consensus, and communication. 2. Early design decision SA manifest the earliest design decisions about a system. It is also the earliest point at which design decisions governing the system to be built can be analyzed. 3. Transferable abstraction of a system. A SA constitutes model of the structure and functionalities of the system. This model is transferable across systems when they exhibit similar quality attribute an functional requirements and promote large-scale re-use. Architectural structures an views

17 A software architecture describes elements of a system and the relation among them. Every system has many kinds of elements. Different architectural structures are useful, even necessary, to present a complete picture of the architecture of a system. Each structure concentrates on one aspect of the architecture. Some remarks


Download ppt "Dr. Rogelio Dávila Pérez ITESM, Campus Cd. Juarez Software Architectures."

Similar presentations


Ads by Google