1 / 21

Software Architecture in Practice

Software Architecture in Practice. RiSE’s Seminars Bass’s book :: Chapters 1, 2 Eduardo Santana de Almeida. Summary. The Architecture Business Cycle (Chapter 1) Software architecture Architecture Business Cycle (ABC) Architectural activities Architectural principles

Download Presentation

Software Architecture in Practice

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Software Architecturein 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. What is Software Architecture? :: Chapter 2 Software Architecture - context “Software architecture is a growing but still youngdiscipline; 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. 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. 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 Architecture Business Cycle :: Chapter 1 The Swedish Ship Vasa • Sweden x Poland • Features • 70m • 300 soldiers • 64 heavy guns http://www.abc.se/~m10354/publ/vasa.htm

  7. 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. The Architecture Business Cycle :: Chapter 1 Architecture • Business and technical decisions • Games x Web • Influences • Stakeholders • Organization • Skills, schedule, budget • Background and Experience • Patterns, distributed objects, components • Environment

  9. 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. 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. What is Software Architecture? :: Chapter 2 Software Architecture “If a projecthas 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. What is Software Architecture? :: Chapter 2 Software Architecture – Some Issues • 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? RS Mining Search Management

  14. 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. What is Software Architecture? :: Chapter 2 Points of View • 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. 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 Software Architecture Reference Architectural Architectural Pattern

  17. 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. 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. 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 structurexmodule view

  20. Component-and- Connector Module Allocation Shared data Class Client- Server Decomposition Implementation Work assignment Uses Process Concurrency Deployment Layered What is Software Architecture? :: Chapter 2 Software structures

  21. References • L. Bass, P. C. Clements, R. Kazman. Software Architecture in Practice. Second Edition, Addison-Wesley, 2003.

More Related