1 / 41

Lecture 2 Concepts of Software Architecture Purposes/Objectives

Software Architecture & Design Pattern. Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns Architecture Case Study. 1. Software Architecture & Design Pattern.

acostah
Download Presentation

Lecture 2 Concepts of Software Architecture Purposes/Objectives

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. Software Architecture & Design Pattern • Lecture 2 Concepts of Software Architecture • Purposes/Objectives • Major Elements of S/W Architecture • Architecture Framework • Architectural Models/Patterns • Architecture Case Study 1

  2. Software Architecture & Design Pattern Software Architecture A high level abstraction and description to the structure and organization of software system, also a blueprint for software development and evolution. Software Architectural Model An expression of the viewpoint of software architecture, which is a rich, rigorous, and structural description on the software system’s elements, functions and interface. 2

  3. Software Architecture & Design Pattern Why need software architectural model? 3

  4. Software Architecture & Design Pattern Better? en ... not quite yet 4

  5. Software Architecture & Design Pattern Much better --- your boss would like to see  Cluster Applications RTCS Application Framework API RTCS Classifier RTCS Dispatcher RTCS Scheduler RTCS Monitor RTCS Forwarder RTCS Event RTCS Queue Linux System Call performance-differentiated kernel scheduler Linux kernel Hardware Abstraction Layer

  6. Software Architecture & Design Pattern • Purposes/Objectives • Identify critical components/subsystems • of software system • Describe relationship/interaction/interface • of the components • Guide software design and bridge design • and implementation • Identify key techniques/tools to implement • software system 6

  7. Software Architecture & Design Pattern • Software Design Principles • Decomposition and decoupling • Architectural model • Component interface/relationship • Data/object abstraction • Communication/network interface • Concurrency: multiprocess vs. multithread • Scalability 7

  8. Software Architecture & Design Pattern • Identify Major Components/Subsystems • Component/Subsystem: a group of software units collectively providing certain function or service (module in C++ or package in Java) • Organize or lay out functional units of a software system --- various architectural models • Identify core modules/components or common features 8

  9. Software Architecture & Design Pattern • Major Components • upper application • RTCS Framework • - storage class • - service class • - utility class • O/S system call API Cluster Applications RTCS Application Framework API RTCS Classifier RTCS Dispatcher RTCS Scheduler RTCS Monitor RTCS Forwarder RTCS Event RTCS Queue Linux System Call performance-differentiated kernel scheduler Linux kernel • Major Functions • cluster resource management • real-time scheduling • responsive service Hardware Abstraction Layer RTCS Architectural Model

  10. Software Architecture & Design Pattern • Relationship/Interface among Components • Structural relationship • Functional relationship • Abstract class vs. Interface class • Communication interface • - TCP/IP sockets • - RPC (Remote Procedure Call), • RMI (Remote Method Innovation) • - message passing 10

  11. Software Architecture & Design Pattern CORBA Architecture for Distributed System 11

  12. Software Architecture & Design Pattern Interface between Components 12

  13. Software Architecture & Design Pattern • Guidance of Software Design • Deposition of System • - decoupling of data and presentation • - spread functions among components • - multiprocess or multithread • Interface Design • - external interface vs. internal interface • - interface definition language/schema • Interaction in Components/Subsystems • - service consumer vs. service provider • - synchronous call vs. asynchronous call • - interaction protocols 13

  14. INTERNETWORKINGARCH MIDDLEWARE ARCH RTP TFTP FTP HTTP Middleware Applications DNS NET Middleware Services UDP TCP IP Middleware Fibre Channel Solaris VxWorks Ethernet ATM FDDI Win2K Linux LynxOS 20th Century 21st Century Software Architecture & Design Pattern Internet Protocol Design - use layered architectural model to show the design 14

  15. Software Architecture & Design Pattern Decomposition of System - Decoupling an avionics system 15

  16. Subscriber Filter consume filterEvent Event Structure Dynamics consume Publisher Event Channel : Publisher : Event Channel : Subscriber attachPublisher detachPublisher attachSubscriber detachSubscriber pushEvent produce attachSubscriber produce : Event pushEvent event pushEvent creates receives event * detachSubscriber Software Architecture & Design Pattern How to decouple functional units 16

  17. Software Architecture & Design Pattern Use architectural model to improve communication system design 17

  18. Software Architecture & Design Pattern Platform-neutral and network-transparent communication architecture : Client : Server : Object Adapter : Client Proxy : Broker register_service start_up connect operation (params) marshal assigned port send_request Dynamics unmarshal dispatch operation (params) result receive_reply 18 result marshal unmarshal

  19. Software Architecture & Design Pattern 19

  20. Software Architecture & Design Pattern Identify key techniques and development tools • OOAD / CASE tool • Distributed System / Communication Protocols • Component-based / Interface • Concurrency / Multithreading • SOA / J2EE • 3-D / Graphics Toolkit • Real-Time / RTOS 20

  21. Software Architecture & Design Pattern Major Elements of Architectural Model • Elements/Connectors/Data • - components (simple vs. composite) • - subsystems • - layers • Architectural Topology (diagrams) • - configuration/layout • Interaction/Association • - component interface • - communication interface • - relationship 21

  22. Software Architecture & Design Pattern Major elements – Component A software component is an architectural building block that encapsulates a subset of functions and data, and restricts access to them via an explicitly defined interface. 22

  23. Software Architecture & Design Pattern • Major elements – Connector • A software connector is an architectural building block tasked with regulating interactions among components. connector examples • - Procedure call connectors • - Shared memory connectors • - Message passing connectors • - Streaming connectors • - Distribution connectors • - Wrapper/adaptor connectors 23

  24. Software Architecture & Design Pattern Major elements – Topology The architectural topology captures architectural structure via graphs whose nodes representing components and connectors and edges representing interconnectivity. 24

  25. Software Architecture & Design Pattern Interaction between Components 25

  26. Software Architecture & Design Pattern • Architecture Framework • A set of architectural views, design patterns, and methodology based on a certain type of architectural model • 4+1 Views • Zachman Framework • DODAF (Dept. of Defense Architectural Framework) • TOGAF (The Open Group Architecture Framework) • RM-ODP (Reference Model of Open Distributed Processing) 26

  27. Software Architecture & Design Pattern • 4+1 View Model/Framework • Logic View • Process View • Deployment View • Physical View • Scenarios (Use Case) 27

  28. Software Architecture & Design Pattern End user Logical View Development View Programmers & software managers Scenarios Process View Physical View System Engineer Integrator 28

  29. Software Architecture & Design Pattern Logical View Viewer: End-user Considers: Functional requirements- What the system should provide in terms of services to its users. Notation: Class diagram Tool: CASE tool 29

  30. Software Architecture & Design Pattern Logical View – class view 30

  31. Software Architecture & Design Pattern Logical View – sequence diagram 31

  32. Software Architecture & Design Pattern Logical View – communication diagram 32

  33. Software Architecture & Design Pattern Logical View – state diagram 33

  34. Software Architecture & Design Pattern Development View Viewer: programmers and managers Considers: software module organization Style: layered style Notation: UML 34

  35. Software Architecture & Design Pattern Process View Viewer: integrator Considers: Non - functional requirements (concurrency, performance, scalability) Style: several styles 35

  36. Software Architecture & Design Pattern Process View example 36

  37. Software Architecture & Design Pattern Physical View Viewer: system engineer Considers: non-functional requirements regarding hardware (computing node, network) Notation: costumed 37

  38. Software Architecture & Design Pattern Physical View example 38

  39. Software Architecture & Design Pattern Scenarios Viewer: all users of other views and evaluators. Considers: system consistency, validity Notation: UML/Use Case Tool: CASE tool 39

  40. Software Architecture & Design Pattern Scenarios – Use Case diagram 40

  41. Software Architecture & Design Pattern Questions? 41

More Related