Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns.

Similar presentations


Presentation on theme: "1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns."— Presentation transcript:

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

2 2 2 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. Software Architecture & Design Pattern

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

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

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

6 66 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 Software Architecture & Design Pattern

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

8 88 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 Software Architecture & Design Pattern

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

10 10 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 Software Architecture & Design Pattern

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

12 12 Interface between Components Software Architecture & Design Pattern

13 13 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 Software Architecture & Design Pattern

14 14 Internet Protocol Design - use layered architectural model to show the design Win2KLinuxLynxOS Solaris VxWorks Middleware Services Middleware Applications MIDDLEWARE ARCH 21 st Century RTP DNS HTTP UDPTCP IP NET EthernetATMFDDI Fibre Channel FTP INTERNETWORKING ARCH TFTP 20 th Century Software Architecture & Design Pattern

15 15 Decomposition of System - Decoupling an avionics system ContextProblemsSolution I/O driven DRE application Complex dependencies Real-time constraints Tightly coupled components Hard to schedule Expensive to evolve Apply the Publisher- Subscriber architectural pattern to distribute periodic, I/O-driven data from a single point of source to a collection of consumers Software Architecture & Design Pattern

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

17 17 ContextProblemsSolution Mission computing requires remote IPC Stringent DRE requireme nts Applications need capabilities to: Support remote communication Provide location transparency Handle faults Manage end-to-end QoS Encapsulate low-level system details Apply the Broker architectural pattern to provide platform-neutral communication between mission computing boards Use architectural model to improve communication system design Software Architecture & Design Pattern

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

19 19 Software Architecture & Design Pattern

20 20 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 Software Architecture & Design Pattern

21 21 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 Software Architecture & Design Pattern

22 22 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. Software Architecture & Design Pattern

23 23 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 Software Architecture & Design Pattern

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

25 25 Interaction between Components Software Architecture & Design Pattern

26 26 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) Software Architecture & Design Pattern

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

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

29 29 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 Software Architecture & Design Pattern

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

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

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

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

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

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

36 36 Process View example Software Architecture & Design Pattern

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

38 38 Physical View example Software Architecture & Design Pattern

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

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

41 41 Questions? Software Architecture & Design Pattern


Download ppt "1 1 Lecture 2 Concepts of Software Architecture Purposes/Objectives Major Elements of S/W Architecture Architecture Framework Architectural Models/Patterns."

Similar presentations


Ads by Google