Download presentation
Presentation is loading. Please wait.
1
Dr. Rogelio Dávila Pérez
Software Architectures Dr. Rogelio Dávila Pérez ITESM, Campus Cd. Juarez
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 book’s material comes from my personal point of view on the topics presented.
3
Software Architecture
“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]
4
Software Architecture
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.
5
Software Architecture
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.
6
Software Architecture
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.
7
Software Architecture
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.
8
Software Architecture
Important remarks 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. 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.
9
Software Architecture
Important remarks (cont.) Every computing system has a software architecture. Every system comprise elements and relations among them. The behavior of each element is part of the architecture. To the extent that an element’s 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.
10
Architectural Structures
Different stages in developing a software architecture 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. Reference Model A reference model is a division of functionality together with data flow between the pieces. 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.
11
Architectural Structures
Relationship among stages Reference Model Reference Architecture Software Architecture Architectural Pattern
12
Importance of Software Architecture (SA)
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. 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. 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.
13
Architecture manifest the earliest design decisions
What happen when I push this button? (presentar el caso pag , libro [Bass03])
14
Architecture manifest the earliest design decisions
The architecture defines constraints on implementation. The architecture defines organizational structure. The architecture inhibits or enables a system’s 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.
15
Architecture as a transferable, re-usable model
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.
16
Architectural structures an views
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. 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. 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.
17
Some remarks 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.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.