design of software architecture
play

DESIGN OF SOFTWARE ARCHITECTURE Instructor: Dr. Hany H. Ammar - PowerPoint PPT Presentation

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


  1. Example: Cruise Control System; The Monitoring Subsystem 48

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

  3. Example: aggregating classes Using functional cohesion 50

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

  5. Step 2 - Define Subsystem Interfaces  The set of public operations forms the subsystem interface or A pplication 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 52

  6. Subsystem Interfaces Interfaces can be methods such as Notify, update, Or can be classes such context. <<Observer>> Notify <<Strategy>> FeedbackObserver FeedforwardStrategy (from POAD1-Feedback) (from POAD1-Feedback) Context Update <<Strategy>> <<Observer>> FeedbackStrategy ErrorObserver (from POAD1-Feedback) (from POAD1-Feedback) Notify Context Update <<Blackboard>> Blackboard (from POAD1-Feedback) setData getData 53

  7. Internal and External Interfaces (Informal Notation) 54

  8. Client-Server Interfaces (Informal Notation) 55

  9. Client-Server Interfaces (Informal Notation) 56

  10. Interfaces in UML Notation) Provided Required Service (server) Service (Client) (a) And (b) are equivalent 57

  11. Client Servers (Implement the methods open(),etc.) 58

  12. 59

  13. implements the methods in both Interfaces 60

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

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

  16. Digital Sound Recorder: A Complete Example 63

  17. Digital Sound Recorder: A Complete Example System Sequence Diagram 64

  18. Digital Sound Recorder: A Complete Example 65

  19. Digital Sound Recorder: A Complete Example 66

  20. Digital Sound Recorder: A Complete Example Analysis Class Diagram 67

  21. Analysis Sequence Diagram Help find operations of classes during design 68

  22. Digital Sound Recorder: A Complete Example Design <<Interface>> Class Diagram: Designing The Subsystems, The names of subsystems Should be <<Interface>> <<Control>> improved 69

  23. Digital Sound Recorder: A Complete Example Interactions between Objects are defined Using Design Sequence diagrams 70

  24. Digital Sound Recorder: A Complete Example 71

  25. Digital Sound Recorder: A Complete Example 72

  26. Digital Sound Recorder: A Complete Example 73

  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 – Defining Subsystems – Defining Subsystem Interfaces  Design Using Architectural Styles – Software Architecture Styles – The Attribute Driven Design (ADD) 74

  28. OUTLINE of SW Architecture Styles  Introduction  Software Architecture Styles  Independent Components  Virtual Machines  Data Flow  Data-Centered  Call-and return  Other Important Styles  Model-View-Controller  Broker Architecture Style  Service Oriented Architecture (SOA)  Peer-to-Peer Architecture  SW Systems Mix of Architecture Styles 75

  29. Design Using 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: kinds of communications between the component types. 76

  30. Families of Architecture Styles  There is a number of families of styles that has been defined and used in many software systems Notable examples are: 1. Independent Components: Event-based Architectures 2. Virtual Machines 3. Data Flow: Pipes and Filters 4. Data-Centered Systems 5. Call-and Return Architectures 77

  31. Architectural Styles Grouped Into Five Families Independent Components. SW system is 1. viewed a set of independent processes or objects or components that communicate through messages. Two subfamilies: - Event based systems (implicit and direct invocation style), and - Communicating processes family (client-server style). 78

  32. Architectural styles: Event-based Architecture Some processes post events, others express an interest in events 79

  33. Event-based Architecture Implicit Invocation: The Observer Pattern (to be discussed later) 80

  34. 81

  35. 82

  36. OUTLINE of SW Architecture Styles • Introduction • Software Architecture Styles • Independent Components • Virtual Machines • Data Flow • Data-Centered • Call-and return • Other Important Styles • Buffered Massage-Based • Model-View-Controller • Presentation-Abstraction-Control • Broker Architecture Style • Service Oriented Architecture (SOA) • Peer-to-Peer Architecture • SW Systems Mix of Architecture Styles 83

  37. Architectural Styles: Virtual Machines 2. Virtual Machines. Originated from the concept that programs are treated as data by a virtual machine, which is an abstract machine implemented entirely in software, that runs on top of the actual hardware machine. 84

  38. Architectural Styles Java Virtual Machines Java Virtual Machine. Java code translated to platform independent bytecodes. JVM is platform specific and interprets the bytecodes. 85

  39. Virtual Machines: The primary benefits are the separation between instruction and implementation, (Used when inputs are defined by a scrip or Commands, and data) 86

  40. OUTLINE of SW Architecture Styles • Introduction • Software Architecture Styles • Independent Components • Virtual Machines • Data Flow • Data-Centered • Call-and return • Other Important Styles • Buffered Massage-Based • Model-View-Controller • Presentation-Abstraction-Control • Broker Architecture Style • Service Oriented Architecture (SOA) • Peer-to-Peer Architecture • SW Systems Mix of Architecture Styles 87

  41. Architectural Styles: Data Flow 3. Data Flow. Include batch sequential systems (BSS) and pipes and filters (PF). - BSS: different components take turns at – processing a batch of data, each saving the result of their processing in a shared repository that the next component can access. Ex. Dynamic control of physical processes based on a feedback loop. - PF: A stream of data processed by a complex structure of processes (filters). Ex, UNIX. 88

  42. Architectural Styles: Data Flow Control Loop BSS 89

  43. 90

  44. PF Another Architecture Example: Watch for the Two Views 91

  45. OUTLINE of SW Architecture Styles • Introduction • Software Architecture Styles • Independent Components • Virtual Machines • Data Flow • Data-Centered • Call-and return • Other Important Styles • Buffered Massage-Based • Model-View-Controller • Presentation-Abstraction-Control • Broker Architecture Style • Service Oriented Architecture (SOA) • Peer-to-Peer Architecture • SW Systems Mix of Architecture Styles 92

  46. Architectural Styles 4. Data-Centered Systems. Consist of having different components communicate through shared data repositories. When data repository is an active repository that notifies registered components of changes in it then-blackboard style. 93

  47. Data-Centered Architectural Styles Repository Architecture Style 94

  48. Data-Centered Architectural Styles Repository Architecture Example: CASE Tools Example 95

  49. Data-Centered Architectural Styles Repository Architecture Example: Compiler Architecture 96

  50. Data-Centered Systems: Central data repository Components perusing shared data, and communicating through it. Used in Database intensive systems 97

  51. Data-Centered Architectural Styles Blackboard Architecture Style Example Compare with the PFs Style 98

  52. Data-Centered Architectural Styles Blackboard Architecture Style: Intelligent Agent Systems Example 99

  53. Data-Centered Architectural Styles Blackboard Architecture Style : Travel Counseling System Example 100

Recommend


More recommend