What is an Architecture?. An Example? Invoice OrderDelivery Customer.

Slides:



Advertisements
Similar presentations
Documenting Software Architectures
Advertisements

Software Architecture Design Chapter 12 Part of Design Analysis Designing Concurrent, Distributed, and Real-Time Applications with UML Hassan Gomaa (2001)
By Philippe Kruchten Rational Software
UML Diagrams Jung Woo. What is UML? Standard language for specifying, visualizing, constructing, and documenting the artifacts of software systems, business.
UML Static diagrams. Static View: UML Component Diagram Component diagrams show the organization and dependencies among software components. Component:
Software Architecture for DSD DSD Team. Overview What is software architecture and why is it so important? The role of architecture in determining system.
1 © Wolfgang Pelz UML3 UML 3 Notations describe how to use reusable software. Package Component Deployment Node.
An Introduction to Software Architecture Pejman Salehi
DAIMI(c) Henrik Bærbak Christensen1 Software Architecture Views.
CSolutions (Creative Solutions)
© Copyright Eliyahu Brutman Programming Techniques Course.
Software Architecture in Practice
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 for DSD The “Uses” Relation.
What is Software Architecture?
Software Architecture in Practice (3rd Ed) Introduction
Design and Architecture of Complex Software Systems Conf.dr.ing. Ioana Şora
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Chapter 12 Object-Oriented.
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.
1 Designing the Architecture CSSE 477 Software Architecture Steve Chenoweth, Rose-Hulman Institute Week 3, Day 1, Monday, September 19, 2011.
Unified Modeling Language, Version 2.0
Smith’s Aerospace © P. Bailey & K. Vander Linden, 2005 Architecture: Component and Deployment Diagrams Patrick Bailey Keith Vander Linden Calvin College.
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 Architecture in Practice Architectural description (The reduced version)
SOFTWARE SYSTEMS DEVELOPMENT 4: System Design. Simplified view on software product development process 2 Product Planning System Design Project Planning.
MACIASZEK, L.A. (2001): Requirements Analysis and System Design. Developing Information Systems with UML, Addison Wesley Chapter 6 - Tutorial Guided Tutorial.
Information System Development Courses Figure: ISD Course Structure.
10 Software Architecture CSCU 411 Software Engineering.
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
An Introduction to Software Architecture Software Engineering Lab.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
UML diagrams What is UML UML diagrams –Static modeoing –Dynamic modeling 1.
Documenting Software Architectures 1.Uses and Audiences for Architecture Documentation Architecture documentation serves as a means of education Architecture.
CPSC 372 John D. McGregor Module 3 Session 1 Architecture.
TAL7011 – Lecture 4 UML for Architecture Modeling.
Implementation Diagrams
John D. McGregor Class 4 – Initial decomposition
CPSC 871 John D. McGregor Module 3 Session 1 Architecture.
CS 501: Software Engineering Fall 1999 Lecture 12 System Architecture III Distributed Objects.
Chapter 1: What is Software Architecture? © Len Bass, Paul Clements, Rick Kazman, distributed under Creative Commons Attribution License.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Overview of SAIP and LSSA. Software Architecture in Practice Provides a set of techniques, not a prescriptive method for architectural design. Based on.
1 Unified Modeling Language, Version 2.0 Chapter 2.
Identifying classes, Packages and drawing class Diagrams, Object Diagrams and composite structure diagrams Week 07 1.
Basic Concepts and Definitions
CSIS 4850: CS Senior Project – Spring 2009 CSIS 4850: Senior Project Spring 2009 Object-Oriented Design.
Documenting an Architecture 10 pages, half pictures.
1 Architectural Blueprints—The “4+1” View Model of Software Architecture (
Basic Characteristics of Object-Oriented Systems
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 15 System Architecture III.
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.
Slide 1 Unified Modeling Language, Version 2.0 Object-Oriented SAD.
Designing software applications
CHAPTER
UML Diagrams By Daniel Damaris Novarianto S..
Designing software applications
Systems Analysis and Design With UML 2
OO Methodology OO Architecture.
UML Diagrams Jung Woo.
What is an Architecture?
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Documenting an Architecture
An Introduction to Software Architecture
What is an Architecture?
Software Architecture
Presentation transcript:

What is an Architecture?

An Example? Invoice OrderDelivery Customer

Author’s Definition The software architecture of a system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationship among them. If you remember ONE thing, This is the most important letter tonight

Structures and Views For BCK, a structure is a set of elements AND one or more relationship among the elements AND defined semantics for the relationship(s) a view is a presentation of a structure One structure can have many views …

Example – two views of the “uses” structure (uses Client Server) (uses Client Naming) (uses Client Message) (uses Server Message) (uses ServerImpl Naming) (uses ServerImpl Server) (uses ServerImpl Message)

Three main types of views Module Static structure of code elements at build time Component and Connector Dynamics (interactions) of processes and threads at runtime Allocation Relationships of software elements to other resources (file systems, development teams, etc) Bookmark Figure 2-3 on page 37 Read pages every Monday this month

Some commonly-viewed structures The next 11 viewgraphs present the leaf nodes of Figure 2-3 (see Table 2.1, pp 39-40) These are commonly-viewed structures When documenting an architecture, you are free to define New views of well-known structures, and/or New structures Just be sure to explain the elements and the semantics of the relationship(s) involved

Module Views Decomposition Submodule-of Shares-secret-with Used for: Resource Allocation / Project Structure Planning Information Hiding Encapsulation Configuration Control

Module Views (cont.) Uses Requires-the-presence-of Used for: Subsets Extensions

Module Views (cont.) Layered Requires-the-correct-presence-of Uses-the-services-of Provides-abstraction-to Used for: Incremental Development Portability

Module Views (cont.) Class Instance-of Shares-access-methods-of Used for: OO design

Component and Connector Client-Server Communicates-with Depends-upon Used for: Distributed Operation Separation of Concerns Performance Analysis Load Balancing

Component and Connector (cont.) Process Runs-concurrently-with May-run-concurrently-with Excludes Precedes Used for: Scheduling Analysis Performance Analysis

Component and Connector (cont.) Concurrency Runs-on-same-logical-thread Used for: Analyzing Resource Contention Where threads may fork, join, be created or killed

Component and Connector (cont.) Shared Data Produces-data Consumes-data Used for: Performance Analysis Data Integrity Modifiability

Allocation Deployment Allocated-to Migrates-to Used for: Performance Analysis Availability Analysis Security Analysis

Allocation (cont.) Implementation Stored-in Used for: Configuration Control Integration Testing

Allocation (cont.) Work assignment Assigned-to Used for: Project Management Best use of expertise Management of commonality

How to describe an architecture? Many of the views can be drawn in UML Appropriate text accompanies the diagrams Or else you get architecture “cartoons” An “ideal” architecture document: 5-10 pages, half pictures Much more about UML next week (also in the book, Chapter 9.6, pp