DESIGN OF SOFTWARE 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,
Analysis Modeling.
COMPONENT DIAGRAM in UML 2.0 Veronica Carrega
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
ECEN5053 SW Eng of Dist Systems, Arch Des Part 2, Univ of Colorado, Boulder1 Architectural Design of Distributed Systems, Part 2 ECEN5053 SW.
1 System Design: Addressing Design Goals We are starting from an initial design, along with a set of design goals. What is the next step?
Software Engineering I Object-Oriented Design
Conquering Complex and Changing Systems Object-Oriented Software Engineering System Design:Hardware/ software mapping, example Päivi Ovaska.
UML Sequence Diagrams Eileen Kraemer CSE 335 Michigan State University.
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.
UML Diagrams: Sequence Diagrams The Requirements Model, and The Dynamic Analysis Model Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical.
UML Sequence Diagrams Michael L. Collard, Ph.D. Department of Computer Science Kent State University.
Architectural Design.
Chapter 10 Architectural Design
The Design Discipline.
DESIGN OF SOFTWARE ARCHITECTURE
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
UML - Development Process 1 Software Development Process Using UML (2)
An Introduction to Software Architecture
POAD Distributed System Case Study: A Medical Informatics System Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Addressing design Goals  We decompose the system to address complexity  Assigning each subsystem to team to work on  But we also need to address system.
UML Development - Overview PROGRAM ACTORS ANALYSIS Domain Objects DESIGN IMPLEMENTATION D A T A D I C T I O N A R Y Time USE CASES ANALYSIS CLASS DIAGRAM(S)
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.
Software Design The Dynamic Model Design Sequence Diagrams and Communication Diagrams Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical.
UML Diagrams: Class Diagrams The Static Analysis Model Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
1 Software Design Reference: Software Engineering, by Ian Sommerville, Ch. 12 & 13, 5 th edition and Ch. 10, 6 th edition.
UML Diagrams: Sequence Diagrams The Requirements Model, and The Dynamic Analysis Model Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical.
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
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.
Using UML, Patterns, and Java Object-Oriented Software Engineering Art for Chapter 7 System Design: Addressing Design Goals.
UML diagrams What is UML UML diagrams –Static modeoing –Dynamic modeling 1.
The Static Analysis Model Class Diagrams Prof. Hany H. Ammar, CSEE, WVU, and Dept. of Computer Science, Faculty of Computers and Information, Cairo University.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
CPSC 372 John D. McGregor Module 3 Session 1 Architecture.
TAL7011 – Lecture 4 UML for Architecture Modeling.
What to remember from Chap 13 (Logical architecture)
Logical view –show classes and objects Process view –models the executables Implementation view –Files, configuration and versions Deployment view –Physical.
1 CMPT 275 High Level Design Phase Modularization.
Software Design: Principles, Process, and Concepts Getting Started with Design.
Introduction to OOAD and the UML
Lecture 18: Object-Oriented Design
UML / UML 2.0 Diagrams (Part I) 1. Overview of the 13 diagrams of UML Structure diagrams 1.Class diagram 2.Composite structure diagram (*) 3.Component.
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 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Prof. Hany H. Ammar, CSEE, WVU, and
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 15. Review Interaction-Oriented Software Architectures – MVC.
Chapter : 9 Architectural Design
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
Software Design Refinement Using Design Patterns
Instructor: Dr. Hany H. Ammar
UML Diagrams: Class Diagrams The Static Analysis Model
Instructor: Dr. Hany H. Ammar
UML Diagrams By Daniel Damaris Novarianto S..
Analyzing UML Descriptions of Architectures Using Information Theory
COMPONENT & DEPLOYMENT DIAGRAMS
OO Methodology OO Architecture.
UML Diagrams Jung Woo.
CHAPTER 2 CREATING AN ARCHITECTURAL DESIGN.
Unified Modeling Language
An Introduction to Software Architecture
Addressing Design Goals
Design Yaodong Bi.
UML Diagrams: StateCharts The Dynamic Analysis Model
Introduction to OOAD and the UML
Software Development Process Using UML Recap
Presentation transcript:

DESIGN OF SOFTWARE ARCHITECTURE Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU

Ouline What is Software Architecture? Software Architecture Styles UML Development – Overview The Requirements, Analysis, and Design Models What is Software Architecture? Software Architecture Elements Software Architecture Styles A Simple Example of Software Architecture Design of Software Architecture Examples

UML Development - Overview ACTORS USE CASES REQUIREMENTS ELICITATION Time SCENARIOS D SEQUENCE DIAGRAMS A T A ANALYSIS CLASS DIAGRAM(S) ANALYSIS Specify Domain Objects StateChart DIAGRAMs D I OPERATION CONTRACTS C T Architectural Design Include Design Objects I SUBSYSTEM CLASS/ OR COMPONENT DIAGRAMS DESIGN SEQUENCE DIAG. DEPLOYMENT DIAGRAM O N DESIGN DIAGRAMS A Detailed DESIGN R Y Object Design IMPLEMENTATION CHOICES IMPLEMENTATION Activity DIAGRAMS IMPLEMENTATION PROGRAM

The Requirements, Analysis, and Design Models Elicitation Process Use Case Diagrams/ Sequence Diagrams (the system level) Functional/ Nonfunctional Requirements - Analysis Class Diagrams - State Diagrams/ Refined Sequence Diagrams (The object level) Static Analysis Dynamic Analysis The Analysis Process Design Class Diagrams and Components Diagrams Design Sequence Diagrams The Design Process Static Architectural Design Dynamic Design

Ouline What is Software Architecture? Software Architecture Styles UML Development – Overview The Requirements, Analysis, and Design Models What is Software Architecture? Software Architecture Elements Software Architecture Styles A Simple Example of Software Architecture Design of Software Architecture Examples

What is Software Architecture? A simplified Definition A software architecture is defined by a configuration of architectural elements--components, connectors, and data--constrained in their relationships in order to achieve a desired set of architectural properties.

Software Architecture Elements A component is an abstract unit of software instructions and internal state that provides a transformation of data via its interface A connector is an abstract mechanism that mediates communication, coordination, or cooperation among components.

Standard Satellite Control Segment Reference Architecture Software Architecture Elements A datum is an element of information that is transferred from a component, or received by a component, via a connector. A configuration is the structure of architectural relationships among components, connectors, and data during a period of system run-time. An architectural style is a coordinated set of architectural constraints that restricts the roles/features of architectural elements and the allowed relationships among those elements within any architecture that conforms to that style. Detailed example: http://sunset.usc.edu/SSCS/toc.html Standard Satellite Control Segment Reference Architecture

Ouline What is Software Architecture? Software Architecture Styles UML Development – Overview The Requirements, Analysis, and Design Models What is Software Architecture? Software Architecture Elements Software Architecture Styles A Simple Example of Software Architecture Design of Software Architecture Examples

Software Architectural Styles An architectural style is a class of architectures characterized by: Components types: are component classes characterized by either SW packaging properties or functional or computational roles within an application. Communication patterns between the components: the communication protocols between the component types. Semantic constraints, indicating the behavioral properties of the components individually, and in the context of their interactions. A set of connectors, SW artifacts that enable us to implement the communication between the components in a way that satisfies the semantic constraints. Software Architectures Course Overview

Example of an Architecture Style Embedded Systems example architecture <<Interface>> Input_devices or actors Monitors Monitor sensors Controllers Generate controls Schedulers Schedule controllers <<Interface>> Output_devices or actors

Example of an Architecture Style The Layered Architecture e.g computer network Services architecture Application Layer Presentation Layer Session Layer

Layered Architectural styles Example of a Layered Application Architecture

Example of an Architecture Style: The Layered Architecture Interactive Electronic Technical Manuals (IETMs) for Technicians to use for repairing complex systems Business Services User Services Data Services

Ouline What is Software Architecture? Software Architecture Styles UML Development – Overview The Requirements, Analysis, and Design Models What is Software Architecture? Software Architecture Elements Software Architecture Styles A Simple Example of Software Architecture Design of Software Architecture Examples

Information Available At Architectural Design The Requirements model Use cases, Use case Diagram, system sequence diagrams The Analysis model Analysis class diagram, stateCharts for multi-modal classes, and Domain Object sequence diagrams

Artifacts Developed at Architectural Design Subsystems + their public interfaces (APIs) Subsystem dependencies Subsystems class diagrams. A class diagram for each subsystem Requirements And Analysis models Design Class Diagrams Architecture design

The Process of Designing Software Architectures Define overall structure of the system into components or subsystems, or classes Define Component interfaces and interconnections separately from component internals (defined during details design) Each subsystem performs major service Contains highly coupled objects Relatively independent of other subsystems May be decomposed further into smaller subsystems Subsystem can be an aggregate or a composite object

Step 1 - Subsystem/Components Structuring Criteria Decompose the system into subsystems or classes such that each performs a specific function or task to maximize cohesion and minimize coupling, the following are typical examples of subsystems or classes Controllers Subsystem controls a given aspect of the system (e.g., Cruise cont. Fig. 20.45) Coordinators/Schedulers Coordinates several control subsystems (e.g., Cruise cont Fig 20.45,20.46) Data Collectors/Monitors Collects data from external environment (e.g., Cruise cont Fig. 20.45)• Data analyzers Provides reports and/or displays (e.g., Cruise cont Fig. 20.26) Servers Provides service for client subsystems (e.g., MyTrip example) User/Device Interface Collection of objects supporting needs of user (e.g., Cruise cont Fig. 20.26)

Another way of forming subsystems Aggregate into the same subsystem Objects that participate in the same use case (functional cohesion) Objects that have a large volume of interactions (e,g, Control object & objects it controls) or share common data or file structures (communicational cohesion) Object that execute in the same time (temporal cohesion)

Example: MyTrip System, uses a Global Positioning System to locate and coordinate a trip for a driver in an automobile software system The Analysis Class Diagram Location Segment Crossing Direction Destination Trip RouteAssistant PlanningService We can imagine that in reality there would be more details in the class diagram but it is not relevant here PlanningService is an boundary class interfacing with another external system, a web server, that can supply a trip linking a number of destinations in the form of a sequence of crossings and segments

Design Class Diagram MyTrip Subsystems Location Segment Crossing Direction Destination RoutingSubsystem PlanningSubsystem Trip RouteAssistant PlanningService Only one association crossing subsystem boundaries The Trip object group is shared and used for communicating information from one subsystem to another. We can either create a new subsystem to accommodate them or assign them to the subsystem that creates these objects (we retained the latter solution above).

MyTrip Deployment Diagram Components must be associated with a processor node in the deployment diagram :RoutingSubsystem :PlanningSubsystem :OnBoardComputer :WebServer We select here, for the myTrip system, a hardware configuration and a platform RoutingSubsystem runs on the OnBoardComputer while PlanningSubsystem runs on a WebServer. Let’s assume we select a UNIX machine as the virtual machine for the :webserver and the web browsers Netscape and Internet Explorer as the virtual machines for the :OnBoardComputer

New Classes and Subsystems Trip Location PlanningService Segment Crossing RouteAssistant Direction Destination TripProxy SegmentProxy PlanningSubsystem Message Connection CommunicationSubsystem RoutingSubsystem The assignment of objects and subsystems to nodes often triggers the identification of new objects and subsystems, e.g., for transporting data among nodes In the myTRIP system, subsystems need to communicate via a wireless modem using some communication protocol New subsystem to support communication: CommunicationSubsystem – responsible for transporting objects from the PlanningSubsystem to the RoutingSubsystem Connection: A Connection represents an active link between the PlanningSubsystem and the RoutingSubsystem. A Connection object handles exceptional cases associated with loss of network services Message: A Message represents a Trip and its related Destinations, Segments, Crossings, and Directions, encoded for transport.

MyTrip Data Storage RoutingSubsystem PlanningSubsystem MapDBStoreSubsystem TripFileStoreSubsystem RoutingSubsystem CommunicationSubsystem Subsystem decomposition of MyTrip after deciding on the issue of data stores (UML class diagram, packages collapsed for clarity). Current trip is saved on a small removable disk in order to allow the recovery of the Trip in case the driver shuts off the car before reaching the final Destination. Using a file is the simplest and most efficient solution in this case, given that the RoutingSubsystem will only store complete trips to the file before shutdown and load the file at start-up. In the PlanningSubsystem all trips will be stored in a Database. All trips will be managed by this subsystem, for many drivers, as well as the maps needed to generate trips. It will allow us to perform complex queries using, for example, a Relational Database Management system and a language like SQL.

Example: Cruise Control And Monitoring System Class Diagram of the Cruise Control Subsystem

Example: Cruise Control System; The Monitoring Subsystem

Example: Aggregating classes into a subsystem using temporal cohesion

Example: aggregating classes Using functional cohesion

Step 2 - Define Subsystem Interfaces The set of public operations forms the subsystem interface or Application Programming Interface (API) Includes operations and also their parameters, types, and return values Operation contracts are also defined (pre- and post-conditions) and accounted for by client subsystems – they can be considered part of the API

Subsystem Interfaces Interfaces can be methods such as Notify, update, Or can be classes such context.

Ouline What is Software Architecture? Software Architecture Styles UML Development – Overview The Requirements, Analysis, and Design Models What is Software Architecture? Software Architecture Elements Software Architecture Styles Design of Software Architecture Examples

A Simple Example of Software Architecture EXAMPLE: SATELLITE CONTROL SYSTEM

A Simple Example of Software Architecture Using UML2 SATELLITE CONTROL SYSTEM Architecture

A Simple Example of Software Architecture Using UML2 SATELLITE CONTROL SYSTEM Architecture

A Simple Example of Software Architecture SATELLITE CONTROL SYSTEM Architectural behavior Interactions between components of the architecture for a given scanrio

A complete Example: A Digital Sound Recorder From Requirements-to-Analysis-to-Design The main function of the DSR is to record and playback speech. The messages are recorded using a built-in microphone and they are stored in a digital memory. The DSR contains an alarm clock with a calendar. The user can set a daily alarm. The alarm beeps until the user presses a key, or after 60 seconds.

Digital Sound Recorder:A Complete Example From Requirements-to-Analysis-to-Design

Digital Sound Recorder: A Complete Example

Digital Sound Recorder: A Complete Example System Sequence Diagram

Digital Sound Recorder: A Complete Example

Digital Sound Recorder: A Complete Example

Digital Sound Recorder: A Complete Example Analysis Class Diagram

Digital Sound Recorder: A Complete Example Design Class Diagram: Designing The Subsystems, The names of subsystems Should be improved

Digital Sound Recorder: A Complete Example Operation Details Are defined Using Design Sequence diagrams

Digital Sound Recorder: A Complete Example

Digital Sound Recorder: A Complete Example

Digital Sound Recorder: A Complete Example