Download presentation
Presentation is loading. Please wait.
Published byGrace Hood Modified over 9 years ago
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.