What is an Architecture?

Slides:



Advertisements
Similar presentations
Software Architecture Design Chapter 12 Part of Design Analysis Designing Concurrent, Distributed, and Real-Time Applications with UML Hassan Gomaa (2001)
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
UML Diagrams Jung Woo. What is UML? Standard language for specifying, visualizing, constructing, and documenting the artifacts of software systems, business.
® IBM Software Group © 2006 IBM Corporation Rational Software France Object-Oriented Analysis and Design with UML2 and Rational Software Modeler 04. Other.
Ch 12: Object-Oriented Analysis
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.
Liang,Introduction to Java Programming,revised by Dai-kaiyu 1 Chapter 10 Object-Oriented Modeling.
An Introduction to Software Architecture Pejman Salehi
Component and Deployment Diagrams
Essential Software Architecture Ian Gorton CS590 – Winter 2008.
Software Architecture in Practice
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
Additional SugarCRM details for complete, functional, and portable deployment.
What is an Architecture?. An Example? Invoice OrderDelivery Customer.
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.
CST203-2 Database Management Systems Lecture 2. One Tier Architecture Eg: In this scenario, a workgroup database is stored in a shared location on a single.
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,
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.
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.
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.
Logical view –show classes and objects Process view –models the executables Implementation view –Files, configuration and versions Deployment view –Physical.
CPSC 871 John D. McGregor Module 3 Session 1 Architecture.
Midterm Study Guide COP 4331 and EEL4884 OO Processes for Software Development © Dr. David A. Workman School of EE and Computer Science University of Central.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
1 Unified Modeling Language, Version 2.0 Chapter 2.
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 (
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..
The Movement To Objects
COMPONENT & DEPLOYMENT DIAGRAMS
Object-Oriented Analysis and Design
Architecture Concept Documents
Systems Analysis and Design With UML 2
Unified Modeling Language
Week 10: Object Modeling (1)Use Case Model
OO Methodology OO Architecture.
Systems Analysis and Design With UML 2
CSC 480 Software Engineering
University of Central Florida COP 3330 Object Oriented Programming
UML Diagrams Jung Woo.
UML dynamic Modeling (Behavior Diagram)
Object-Oriented Analysis
What is an Architecture?
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Documenting an Architecture
More Model Elements.
Analysis models and design models
An Introduction to Software Architecture
CS 8532: Advanced Software Engineering
Chapter 5 Architectural Design.
Software Development Process Using UML Recap
Presentation transcript:

What is an Architecture?

An Example? Customer Invoice Order Delivery

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) Notice that the UML class diagram shows additional detail beyond the “uses” relation, including information about how one class uses another, the distinction between an interface and a concrete class, and operations of the classes. Most of this belongs more to system design than system architecture. In this case, the uses structure has a single relation, which is called “requires the correct presence of”. I have called that relation simply “uses”; the subtleties of “requires the correct presence of” are best covered in the semantics section.

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 36-40 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 Used for: Submodule-of Shares-secret-with Resource Allocation / Project Structure Planning Information Hiding Encapsulation Configuration Control

Module Views (cont.) Uses Used for: Requires-the-presence-of Subsets Extensions “A calls B” is a common scenario in which module A requires module B. But there are other “requires” scenarios. For example, A might read a file written by B.

Module Views (cont.) Layered Used for: Requires-the-correct-presence-of Uses-the-services-of Provides-abstraction-to Used for: Incremental Development Portability This is one of the most important and widely-used views currently

Module Views (cont.) Class Used for: 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 Used for: Allocated-to Migrates-to Performance Analysis Availability Analysis Security Analysis

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

Allocation (cont.) Work assignment Used for: Assigned-to 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 218-228