Download presentation
1
Software Architecture in Practice
RiSE’s Seminars Bass’s book :: Chapters 1, 2 Eduardo Santana de Almeida
2
Summary The Architecture Business Cycle (Chapter 1)
Software architecture Architecture Business Cycle (ABC) Architectural activities Architectural principles What is software architecture? (Chapter 2) Software architecture issues Points of view Well defined architecture Structures and views
3
Software Architecture - context
What is Software Architecture? :: Chapter 2 Software Architecture - context “Software architecture is a growing but still young discipline; hence, it has no single, accepted definition”. “The study of software architecture has evolved by observation of the design principles that designers follow and the actions that they take when working on real systems”. Bass et al., 2003, pp. 23
4
Software Architecture
The Architecture Business Cycle :: Chapter 1 Software Architecture Behavior, interaction implementation, algorithm, data representation “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.” pp. 03
5
Software architecture (cont.)
The Architecture Business Cycle :: Chapter 1 Software architecture (cont.) If you know the requirements for a system, you can build the architecture for it {try it}
6
The Swedish Ship Vasa The Architecture Business Cycle :: Chapter 1
Sweden x Poland Features 70m 300 soldiers 64 heavy guns
7
Architecture Business Cycle (ABC)
The Architecture Business Cycle :: Chapter 1 Architecture Business Cycle (ABC) What is the relationship of a system’s software architecture to the environment in which the system will be constructed and exist? technical Architecture Environment social business
8
Architecture The Architecture Business Cycle :: Chapter 1
Business and technical decisions Games x Web Influences Stakeholders Organization Skills, schedule, budget Background and Experience Patterns, distributed objects, components Environment
9
Architecture activities
The Architecture Business Cycle :: Chapter 1 Architecture activities Creating the Business Case for the System Costs, market, development time Understanding the requirements Previous systems, prototypes Creating or selecting the architecture Communicating the architecture Key: Documentation Analyzing or Evaluating the Architecure Implementing Based on the Architecture Ensuring Conformance to an Architecture
10
Architecture - Principles
The Architecture Business Cycle :: Chapter 1 Architecture - Principles Process recommendations Single architect x small group Functional requirements x quality attributes Documentation Stakeholder participation Analysis Rules of thumb Information hiding Separation of concerns Quality attributes Non commercial tools
11
What is Software Architecture?
12
Software Architecture
What is Software Architecture? :: Chapter 2 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 [1995]
13
Software Architecture – Some Issues
What is Software Architecture? :: Chapter 2 Software Architecture – Some Issues RS Mining Search Management But, according to Figure... What is the nature of the elements? What are the responsabilities of the elements? What is the significance of the connections? What is the significance of the layout?
14
Software Architecture
What is Software Architecture? :: Chapter 2 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. Implementation units Public aspects Observed by elements
15
Points of View What is Software Architecture? :: Chapter 2
Architecture is high-level design Evaluation, documentation, principles Architecture is the overall structure of the system Architecture is the structure of the components of a program or system, their interrelationships, and the principles and guidelines governing their design and evolution over time Process-centered vision Architecure is components and connectors
16
Well defined architecture....intermediate stages
What is Software Architecture? :: Chapter 2 Well defined architecture....intermediate stages Architectural pattern Architect’s first design choice Architectural style Reference model {division of funcionality together with data flow between the pieces} Standard decomposition Reference model mapped onto software elements Reference Model Reference Architectural Software Architecture Architectural Pattern
17
Why Software architecture is important?
What is Software Architecture? :: Chapter 2 Why Software architecture is important? Communication among stakeholders Customer, user, project manager, coder, tester Early design decisions :: architecture: defines constraints on implementation dictates Organizational structure inhibits or enables a system’s quality atributes makes it easier to reason about and manage change helps in prototyping, cost and schedule estimates
18
Why Software architecture is important? (cont.)
What is Software Architecture? :: Chapter 2 Why Software architecture is important? (cont.) Transferable abstraction of a system {reusable model} Software product lines Systems can be built using large, externally developed elements Design pattens :: templates :: training {knowledge transfer}
19
Architecture structures and views
What is Software Architecture? :: Chapter 2 Architecture structures and views View :: representation of a coherent set of architectural elements, as written by and read by system stakeholders Composed of: Elements and relation among them Structure :: set of elements itself Module {code} Component-and-connector Allocation Ex: module structure x module view
20
Software structures What is Software Architecture? :: Chapter 2
Client- Server Process Shared data Concurrency Component-and- Connector Module Decomposition Uses Class Layered Work assignment Deployment Implementation Allocation
21
References L. Bass, P. C. Clements, R. Kazman. Software Architecture in Practice. Second Edition, Addison-Wesley, 2003.
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.