1 / 169

DESIGN OF SOFTWARE ARCHITECTURE

DESIGN OF SOFTWARE ARCHITECTURE. Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU. Outline. UML Development – Overview The Requirements, Analysis, and Design Models What is Software Architecture? Software Architecture Elements Examples

liam
Download Presentation

DESIGN OF SOFTWARE ARCHITECTURE

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Outline • UML Development – Overview • The Requirements, Analysis, and Design Models • What is Software Architecture? • Software Architecture Elements • Examples • The Process of Designing Software Architectures • Defining Subsystems • Defining Subsystem Interfaces • Design Using Architectural Styles • Software Architecture Styles • The Attribute Driven Design (ADD)

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

  4. The Requirements, Analysis, and Design Models Use Case Diagrams/ Sequence Diagrams (the system level) Requirements Elicitation Process 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/ • Collaboration Diagrams The Design Process Static Architectural Design Dynamic Design

  5. Outline • UML Development – Overview • The Requirements, Analysis, and Design Models • What is Software Architecture? • Software Architecture Elements • Examples • The Process of Designing Software Architectures • Defining Subsystems • Defining Subsystem Interfaces • Design Using Architectural Styles

  6. 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.

  7. 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.

  8. 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. • Software Architecture views: Architectures are described using multiple views such as the static view, the dynamic view, and deployment view. • 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.

  9. Thestatic view

  10. Thedynamic view, a high level diagram

  11. Thedynamic view of the ATMClient for a certain Use Case Scenario

  12. Thedynamic view: another model

  13. Thedeployment view

  14. Introducing Architecture StylesMore details on architecture styles to be discussed later • The Layered Architecture e.g Network Services Architecture

  15. Network Services Architecture Deployment view

  16. Layered Software Architectural stylesExample of Web Applications Architecture Style

  17. Service Oriented Architecture (SOA): Makes use of an Enterprise Service Bus ESBUsed in web-based systems and distributed computing nodes on a network make resources available to other participants in the network as independent services that the participants access in a standardized way using the ESB

  18. Examples of Architecture Styles • Embedded Systems architecture style <<Interface>> Input_devices or actors Monitors Controllers Schedulers <<Interface>> Output_devices or actors

  19. Outline • UML Development – Overview • The Requirements, Analysis, and Design Models • What is Software Architecture? • Software Architecture Elements • Examples • The Process of Designing Software Architectures • Defining Subsystems • Defining Subsystem Interfaces • Design Using Architectural Styles

  20. Data Services Business Services User Services Example: Interactive Electronic Technical Manual (IETM) System • Web Services 3-tier architecture

  21. Recall Analysis diagram for EMS, Context Diag.

  22. EMS Architecture

  23. EMS Deployment Architecture view

  24. Example of Hierarchical Architecture:Cruise Control and Monitoring System

  25. Example: ConsolidatedCollaboration Diagram of the Elevator Control System

  26. Online Shopping System: Structured Classes with Ports

  27. Outline • UML Development – Overview • The Requirements, Analysis, and Design Models • What is Software Architecture? • Software Architecture Elements • Examples • The Process of Designing Software Architectures • Step1: Defining Subsystems • Step 2: Defining Subsystem Interfaces • Design Using Architectural Styles

  28. 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

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

  30. The Process of Designing Software Architectures • Software Architecture Step1: Define overall structure of the system into components or subsystems, or classes Step 2: 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

  31. 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)

  32. Control, Coordinator, Data CollectionSubsystems

  33. Coordinator, Service, and User InterfaceSubsystems

  34. Service subsystems, Input & User Interface

  35. Coordinator, Control, and Interface

  36. User Interface, Coordinator, Service

  37. 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)

  38. User Interface Subsystem

  39. Architecture

  40. Aggregate Control, input, and output of each distributed controller

  41. RouteAssistant PlanningService Trip Location Direction Destination Crossing Segment 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

  42. PlanningSubsystem RoutingSubsystem RouteAssistant PlanningService Trip Location Direction Destination Crossing Segment Design Class DiagramMyTrip Subsystems

  43. :OnBoardComputer :WebServer :PlanningSubsystem :RoutingSubsystem MyTrip Deployment Diagram Components must be associated with a processor node in the deployment diagram

  44. PlanningSubsystem RoutingSubsystem RouteAssistant PlanningService Trip Location Destination TripProxy Direction Crossing SegmentProxy Segment CommunicationSubsystem Message Connection New Classes and Subsystems

  45. RoutingSubsystem PlanningSubsystem CommunicationSubsystem TripFileStoreSubsystem MapDBStoreSubsystem MyTrip Data Storage

  46. Example: Cruise Control and Monitoring System

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

  48. Example: Cruise Control System; The Monitoring Subsystem

  49. Example: Aggregating classes into a subsystem using temporal cohesion

  50. Example: aggregating classes Using functional cohesion

More Related