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

Slides:



Advertisements
Similar presentations
COMET Approach for UML Overview
Advertisements

Case Studies Elevator control system Elevator control system Comet case studies From task structuring to target system configuration.
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
Design Phase What’s design?
9/20/2004 Arch. Des. of Dist. Sys., ECEN5053, Univ of Colorado, Boulder1 Architectural Design of Distributed Systems ECEN 5053 Software Engineering of.
© 2005 Prentice Hall8-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
ECEN5053 SW Eng of Dist Systems, Arch Des Part 2, Univ of Colorado, Boulder1 Architectural Design of Distributed Systems, Part 2 ECEN5053 SW.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented design 2.
Software Engineering I Object-Oriented Design
9/20/2004 Arch. Des. of Dist. Sys., ECEN5053, Univ of Colorado, Boulder1 Architectural Design of Distributed Systems ECEN 5053 Software Engineering of.
Logical Architecture and UML Package Diagrams
System Design Decomposing the System. Sequence diagram changes UML 2.x specifications tells that Sequence diagrams now support if-conditions, loops and.
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?
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Objectives Design Class Diagrams Issues in system design Generalization Review UML papers.
System Design Chapter 8. Objectives  Understand the verification and validation of the analysis models.  Understand the transition from analysis to.
The Design Discipline.
Chapter 13 Starting Design: Logical Architecture and UML Package Diagrams.
Systems Analysis and Design in a Changing World, Fifth Edition
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
An Introduction to Software Architecture
Lecture 9: Chapter 9 Architectural Design
SWE © Solomon Seifu ELABORATION. SWE © Solomon Seifu Lesson 11 Subsystem Design.
Eng. Mohammed Timraz Electronics & Communication Engineer University of Palestine Faculty of Engineering and Urban planning Software Engineering Department.
UML Diagrams: Class Diagrams The Static Analysis Model Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
SOFTWARE DESIGN.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 8 Slide 1 Object-oriented and Structured System Models.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition, Prentice Hall, Hans Van Vliet, Software.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
GRASP: Designing Objects with Responsibilities
UML Diagrams: The Static Model Class Diagrams. The Static Model Define the static structure of the logical model Represent classes, class hierarchies.
CPSC 372 John D. McGregor Module 3 Session 1 Architecture.
Architectural Design of Distributed Applications Chapter 13 Part of Design Analysis Designing Concurrent, Distributed, and Real-Time Applications with.
Dr.Basem Alkazemi
1 CMPT 275 High Level Design Phase Modularization.
CPSC 871 John D. McGregor Module 3 Session 1 Architecture.
SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural.
Static Modeling Chapter 8 Part of Requirements Modeling Designing Concurrent, Distributed, and Real-Time Applications with UML Hassan Gomaa (2001)
OBJECT ORIENTED AND FUNCTION ORIENTED DESIGN 1 Chapter 6.
Introduction to OOAD and the UML
Lecture 18: Object-Oriented Design
Software Design Patterns Curtsy: Fahad Hassan (TxLabs)
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 Software Design Lecture What’s Design It’s a representation of something that is to be built. i.e. design  implementation.
Slide 1 What the business needs  How to build it Functional requirements  + Nonfunctional requirements Performance System environment issues Problem.
DESIGN OF SOFTWARE ARCHITECTURE
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
Object and Class Structuring Chapter 9 Part of Analysis Modeling Designing Concurrent, Distributed, and Real-Time Applications with UML Hassan Gomaa (2001)
Systems Analysis and Design in a Changing World, 6th Edition 1 Chapter 6 - Essentials of Design an the Design Activities.
Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition, Prentice Hall, Hans Van Vliet, Software.
Basic Characteristics of Object-Oriented Systems
11 Systems Analysis and Design in a Changing World, Fifth Edition.
Design Concepts ch-8
UML Diagrams: Class Diagrams The Static Analysis Model
Object-Oriented Analysis and Design
OO Methodology OO Architecture.
Part 3 Design What does design mean in different fields?
Chapter 13 Logical Architecture.
UML Diagrams: The Static Model Class Diagrams
What is an Architecture?
Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4th edition, Prentice Hall, Hans Van Vliet, Software Engineering:
Starting Design: Logical Architecture and UML Package Diagrams
Design and Implementation
Chapter 13 Logical Architecture.
An Introduction to Software Architecture
What is an Architecture?
Introduction to OOAD and the UML
Presentation transcript:

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

Software Architecture Design Software Architecture refers to the decomposition of a system into subsystems This is necessary for large-scale and complex software systems.

Software Architectural Styles Software Architectural styles are recurring architectures used in a variety of applications. – Client/Server Architecture – Layers of Abstraction Architecture – Communicating Tasks Architecture The styles may be blended as necessary. They are not mutually exclusive!

Client/Server Architecture Sever provides services Client consumes services Widely used in distributed applications.

Layers of Abstraction Architecture Each layer communicates only with the layers directly above and below itself. – Each layer solves only part of a given problem. E.g. Operating Systems, Database Management systems, and Network Systems

Communicating Tasks Architecture Network of Concurrent tasks with separate threads of control. With or without shared memory. May or may not be on the same computational node. Common in real-time systems.

System Decomposition Issues and Guidelines Subsystems should be externally lowly-coupled and internally highly-coupled. – This can help to determine which objects belong in which subsystem. Separation of Concerns is the fundamental principle guiding decomposition. Subsystems provide lower-resolution information hiding than objects. If no obvious decompositions appear, consider the Use Cases.

Subsystem Decomposition Issues and Guidelines (cont) Things to consider during separation of concern decomposing: – Aggregate/Composite objects – Geographical locations – Clients and servers – User interface – External object interfaces – Scope of control – Entity objects

Consolidated Collaboration Diagrams To begin the system decomposition process, and to transition from analysis to design, construct a consolidated collaboration diagram. The consolidated collaboration diagram synthesizes all the collaboration diagrams used to support the use cases – Message sequencing numbers are omitted to reduce clutter – If the diagram is still too cluttered, multiple messages can be aggregated into one name.

Consolidate Collaboration Diagram (example)

Subsystem Software Architecture Subsystems may also be shown on subsystem collaboration diagrams. This provides a high- level view of the collaborations within a system.

Subsystems in Concurrent, Real-time, and Distributed Applications Concurrent, real-time, and distributed applications frequently have the following types of subsystems: – Control – Coordinator – Data Collection – Data Analysis – Server – User Interface – I/O Subsystem – System Services

Subsystems in Concurrent, Real-time, and Distributed Applications (examples)

Design Analysis Static Modeling A more detailed model is developed as part of solution design. This static model may either refine the conceptual static model developed in the analysis modeling phase, or may be developed from the consolidated collaboration diagrams. Further refinement considers the directional nature of class relationships.

Summary Software Architectural Styles may be blended – Client/Server – Layered – Communicating Tasks Complex systems may be decomposed into subsystems with loose external coupling and high internal coupling. Multiple criteria exist for subsystem decomposition.