1 / 48

DESIGN OF SOFTWARE ARCHITECTURE

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

amil
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. Ouline • 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

  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 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 Diagrams The Design Process Static Architectural Design Dynamic Design

  5. Ouline • 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

  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. • 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 SegmentReference Architecture

  9. Ouline • 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

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

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

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

  13. Layered Architectural stylesExample of a Layered Application Architecture

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

  15. Ouline • 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

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

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

  18. The Process of Designing Software Architectures • Software Architecture • 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

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

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

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

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

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

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

  25. RoutingSubsystem PlanningSubsystem CommunicationSubsystem TripFileStoreSubsystem MapDBStoreSubsystem MyTrip Data Storage

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

  27. Example: Cruise Control System; The Monitoring Subsystem

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

  29. Example: aggregating classes Using functional cohesion

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

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

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

  33. A Simple Example of Software Architecture • EXAMPLE: SATELLITE CONTROL SYSTEM

  34. A Simple Example of Software Architecture Using UML2 • SATELLITE CONTROL SYSTEM Architecture

  35. A Simple Example of Software Architecture Using UML2 • SATELLITE CONTROL SYSTEM Architecture

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

  37. A complete Example: A Digital Sound RecorderFrom 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.

  38. Digital Sound Recorder:A Complete ExampleFrom Requirements-to-Analysis-to-Design

  39. Digital Sound Recorder:A Complete Example

  40. Digital Sound Recorder:A Complete Example System Sequence Diagram

  41. Digital Sound Recorder:A Complete Example

  42. Digital Sound Recorder:A Complete Example

  43. Digital Sound Recorder:A Complete Example Analysis Class Diagram

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

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

  46. Digital Sound Recorder:A Complete Example

  47. Digital Sound Recorder:A Complete Example

  48. Digital Sound Recorder:A Complete Example

More Related