Download presentation
Presentation is loading. Please wait.
1
Objectives The key roles an architecture description plays in a software project. The key roles an architecture description plays in a software project. The multiple architectural views that can be used to specify different structural aspects of the system being built. The multiple architectural views that can be used to specify different structural aspects of the system being built. The component and connector architecture of a system, and how it can be expressed. The component and connector architecture of a system, and how it can be expressed. Different styles that have been proposed for component and connector view that can be used to design the architecture of the proposed system. Different styles that have been proposed for component and connector view that can be used to design the architecture of the proposed system. How architecture of a system can be evaluated. How architecture of a system can be evaluated.
2
Software Architecture What is it? What is it? It is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them “It is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them” [L. Bass, P. Clements, and Rick Kazman] Concept is borrowed from civil engineering. Concept is borrowed from civil engineering.
3
Software Architecture Architectural description : identify the different structures of a system. Architectural description : identify the different structures of a system. Architectural description is important as it facilitates: Architectural description is important as it facilitates: Understanding & communicationUnderstanding & communication ReuseReuse Construction & evolutionConstruction & evolution AnalysisAnalysis
4
Architectural Views Architectural description is dependant on the viewer of the system. Architectural description is dependant on the viewer of the system. Different views can be used to describe different characteristics of the same system. Different views can be used to describe different characteristics of the same system. Architectural view describes the structure of a system that addresses certain concern. Architectural view describes the structure of a system that addresses certain concern.
5
Architectural Views Types: Types: ModuleModule Component & ConnectorComponent & Connector AllocationAllocation Different views can be interrelated to each other. Different views can be interrelated to each other. E.g. a component uses multiple modules. E.g. a component uses multiple modules. Although different views might be present, only one of them will be the basis for other views. Although different views might be present, only one of them will be the basis for other views.
6
C&C View The C&C structure is simply a graph, with components as nodes and connectors as edges. The C&C structure is simply a graph, with components as nodes and connectors as edges. Components: perform functionality, store data. Components: perform functionality, store data. Component has: Component has: Type: describe the nature of component.Type: describe the nature of component. Name: reflects its role in a system and represent the identity of the component.Name: reflects its role in a system and represent the identity of the component.
7
C&C View Component Examples
8
C&C View Connectors: define the interaction between components. Connectors: define the interaction between components. E.g. Procedure call, messages, broadcasting bus … etc.E.g. Procedure call, messages, broadcasting bus … etc. Connector has: Connector has: Name: reflects the nature of interaction supported.Name: reflects the nature of interaction supported. Type: specify the mechanism of interactionType: specify the mechanism of interaction E.g. binary, n-way.E.g. binary, n-way.
9
Connectors Example C&C View
10
Example Suppose we have to design and build a simple system for taking an on-line survey of students on a campus. There is a set of multiple-choice questions, and the proposed system will provide the survey form to the student, who can fill and submit it on-line. We also want that when the user submits the form, he is also shown the current result of the survey, that is, what percentage of students so far have filled which options for the different questions. Describe the architecture of this system.
11
Example Architecture of the survey system Web
12
Example Web client: implies that student’s machine must have compatible IE installed. Web client: implies that student’s machine must have compatible IE installed. HTTP connector: implies that the client interacts with a server over the internet. HTTP connector: implies that the client interacts with a server over the internet.
13
Arch. Styles for C&C View Software system have one or more architectures. Software system have one or more architectures. Common architectures of software systems are referred to as styles. Common architectures of software systems are referred to as styles. Architectural style: defines a family of architectures that satisfy the constraints of a style. Architectural style: defines a family of architectures that satisfy the constraints of a style.
14
Architectural Styles Pipe & Filter: Pipe & Filter: Component: filterComponent: filter Connector: pipeConnector: pipe flow: unidirectional flow: unidirectional Functionality: manipulate transfer data.Functionality: manipulate transfer data. Constraints:Constraints: Filters are not aware of each others. Filters are not aware of each others. Filters have independent threads.Filters have independent threads. Pipe connect an output of one filter to an input of another filter. Pipe connect an output of one filter to an input of another filter. Useful in text processing applicationsUseful in text processing applications
15
Architectural Styles Shared-Data: Shared-Data: Components:Components: data repository: database or file data repository: database or file data acquire: obtain data, perform computation, return results back. data acquire: obtain data, perform computation, return results back. Connector:Connector: Active and passive data acquisition protocols. Active and passive data acquisition protocols. Read/write protocols. Read/write protocols. Constraints:Constraints: no direct interaction between data acquiring components. no direct interaction between data acquiring components. Useful in database applicationsUseful in database applications
16
Architectural Styles
17
Client-Server: Client-Server: Components:Components: Client: initiates requests. Client: initiates requests. Server: handle and process requests and send reply. Server: handle and process requests and send reply. Connector:Connector: Synchronous Request/reply protocol. Synchronous Request/reply protocol. Constraints:Constraints: Clients can only communicate with server not other clients. Clients can only communicate with server not other clients. Communication between C and S is initiated by client. Communication between C and S is initiated by client. Useful in an n-tiers structuresUseful in an n-tiers structures E.g. 3-tiers system is composed of client-business- database components. E.g. 3-tiers system is composed of client-business- database components.
18
Architectural Styles Publisher-Subscriber: Publisher-Subscriber: Components:Components: Publisher: notifies registered components about an event. Publisher: notifies registered components about an event. Subscriber: register their details to receive updates. Subscriber: register their details to receive updates. Connector:Connector: Active data acquisition protocols. Active data acquisition protocols. Constraints:Constraints: Only subscriber components will receive notification. Only subscriber components will receive notification. Subscribers cannot interact with each others. Subscribers cannot interact with each others. Useful in user interface-based applicationsUseful in user interface-based applications
19
Architectural Styles Peer-to-peer: Peer-to-peer: Components:Components: Objects or modules. Objects or modules. Connectors:Connectors: Method invocation protocols. Method invocation protocols. Constraints:Constraints: None None
20
Documenting Architectures Every description of system architecture must contain: Every description of system architecture must contain: System and architecture contextSystem and architecture context Context diagram, DFD, STD … etc. Context diagram, DFD, STD … etc. Description of architecture viewsDescription of architecture views Across views documentationAcross views documentation Element: interface (syntactic/semantic) Element: interface (syntactic/semantic) Architecture rational: tells why an architecture was done this way. Architecture rational: tells why an architecture was done this way. Behavior: describes the functionality of an element. Behavior: describes the functionality of an element.
21
Summary Architecture of a software system provides a very high- level view of the system in terms of parts of the system and how they are related to form the whole system. Architecture of a software system provides a very high- level view of the system in terms of parts of the system and how they are related to form the whole system. Depending on how the system is partitioned, we get a different architectural view of the system. Depending on how the system is partitioned, we get a different architectural view of the system. Architecture facilitates development of a high-quality system. Architecture facilitates development of a high-quality system. There are three main architectural views of a system— module, component and connector, and allocation. There are three main architectural views of a system— module, component and connector, and allocation. C&C view is most common, and is often the centerpiece of the architecture C&C view is most common, and is often the centerpiece of the architecture description. description. There are some common styles for a C&C view which have been found useful for creating this architecture view for a system. There are some common styles for a C&C view which have been found useful for creating this architecture view for a system.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.