Software Architecture in Practice

Slides:



Advertisements
Similar presentations
Dr. Rogelio Dávila Pérez
Advertisements

Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Software Systems.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
1 What is Software Architecture? CSSE 477 Software Architecture Steve Chenoweth, Rose-Hulman Institute Tuesday, September 6, 2011 Right – In building trades.
Sixth Hour Lecture 10:30 – 11:20 am, September 9 Framework for a Software Management Process – Artifacts of the Process (Part II, Chapter 6 of Royce’ book)
Software Architecture for DSD DSD Team. Overview What is software architecture and why is it so important? The role of architecture in determining system.
Architecture is More Than Just Meeting Requirements Ron Olaski SE510 Fall 2003.
Site Skin Structure Services Space plan Stuff Software Architecture and Software Architecture Patterns (1)
21-February-2003cse Architecture © 2003 University of Washington1 Architecture CSE 403, Winter 2003 Software Engineering
Software Architecture in Perspective SENG 480/580 (H. Muller) Today: Margaret-Anne Storey
Software Architecture Alan Kelon Oliveira de Moraes Feb 12, 2006 – Recife.
Essential Software Architecture Ian Gorton CS590 – Winter 2008.
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Software Architecture in Practice RiSE’s Seminars Bass’s book :: Chapters 07 Eduardo Santana de Almeida.
Software Architecture in Practice
Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Software Systems.
1 Computer Systems & Architecture Lesson 1 1. The Architecture Business Cycle.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Chapter 10: Architectural Design
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?
Software Architecture premaster course 1.  Israa Mosatafa Islam  Neveen Adel Mohamed  Omnia Ibrahim Ahmed  Dr Hany Ammar 2.
Software Architecture for DSD The “Uses” Relation.
Architectural Design.
What is Software Architecture?
Software Architecture in Practice (3rd Ed) Introduction
Documenting Software Architectures
What is an Architecture?. An Example? Invoice OrderDelivery Customer.
Design and Architecture of Complex Software Systems Conf.dr.ing. Ioana Şora
An Introduction to Software Architecture
The Architecture Business Cycle. Software Architecture Definition The software architecture of a program or computing system is the structure or structures.
Architecture Business Cycle
Lecture 9: Chapter 9 Architectural Design
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
What is Software Architecture? | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS Chapter 2, Authors: Len Bass, Paul,
1 Introduction to Software Architectures Lecture - 3.
SOFTWARE DESIGN.
SOFTWARE SYSTEMS DEVELOPMENT 4: System Design. Simplified view on software product development process 2 Product Planning System Design Project Planning.
Chapter 13 Architectural Design
10 Software Architecture CSCU 411 Software Engineering.
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
Why is Software Architecture Important? © Len Bass, Paul Clements, Rick Kazman, distributed under Creative Commons Attribution License.
Lecture 11 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor.
Information Systems Engineering. Lecture Outline Information Systems Architecture Information System Architecture components Information Engineering Phases.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.
CPSC 871 John D. McGregor Module 3 Session 1 Architecture.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Introduction to Software Architecture.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a: Architectural Design Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a:
Overview of SAIP and LSSA. Software Architecture in Practice Provides a set of techniques, not a prescriptive method for architectural design. Based on.
Enterprise Architectures Course Code : CPIS-352 King Abdul Aziz University, Jeddah Saudi Arabia.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Wrap up. Structures and views Quality attribute scenarios Achieving quality attributes via tactics Architectural pattern and styles.
Chapter 9 Architectural Design. Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a software.
TAL Lecture 1 Introduction to Software Architecture
Unit-1 INTRODUCTION Presented by Sushma Narasimhan Asst. Professor,
Chapter 24: Architecture Competence
Lecture 17 ATAM Team Expertise
SOFTWARE ARCHITECTURE AND DESIGN
Design and Architecture of Complex Software Systems
What is an Architecture?
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Design Model Like a Pyramid Component Level Design i n t e r f a c d s
Project Management Process Groups
An Introduction to Software Architecture
Chapter 9 Architectural Design.
What is an Architecture?
Software Architecture
Presentation transcript:

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 What is software architecture? (Chapter 2) Software architecture issues Points of view Well defined architecture Structures and views

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

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

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}

The Swedish Ship Vasa The Architecture Business Cycle :: Chapter 1 Sweden x Poland Features 70m 300 soldiers 64 heavy guns http://www.abc.se/~m10354/publ/vasa.htm

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

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

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

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

What is Software Architecture?

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]

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?

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

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

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

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

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}

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

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

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