Architectural Musings Rethinking Computer Systems Architecture
Software Architecture in Practice Architectural description (The reduced version)
-
Upload
elfrieda-bradford -
Category
Documents
-
view
245 -
download
1
Transcript of Software Architecture in Practice Architectural description (The reduced version)
![Page 1: Software Architecture in Practice Architectural description (The reduced version)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56649ebc5503460f94bc4eaa/html5/thumbnails/1.jpg)
Software Architecture in Practice
Architectural description
(The reduced version)
![Page 2: Software Architecture in Practice Architectural description (The reduced version)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56649ebc5503460f94bc4eaa/html5/thumbnails/2.jpg)
2
Overview
Introduction to the POS case Motivation Architectural description
– Using 3+1 UML technique by Christensen et al.
![Page 3: Software Architecture in Practice Architectural description (The reduced version)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56649ebc5503460f94bc4eaa/html5/thumbnails/3.jpg)
3
A Simple Case
NextGen Point-Of-Sales (POS) System– Record sales and handle payments
• Typically used in retail stores– Hardware
• Terminal• Barcode scanner
– Interfaces with external systems• Inventory• Accounting• …
From [Larman, 2001]– See also note on architecture description
using UML, [Christensen et al., 2004]
![Page 4: Software Architecture in Practice Architectural description (The reduced version)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56649ebc5503460f94bc4eaa/html5/thumbnails/4.jpg)
4
Elements of an Architectural Description
Architectural views (N)– What is the software architecture?
• Multiple viewpoints, here– Module viewpoint– Component & Connector viewpoint– Allocation viewpoint
Architectural requirements (+1)– Why is the software architecture the way it is?
• Scenario-based requirements– E.g., paths through significant use cases
• Quality-attribute-based requirements– Primary concerns (e.g., critical quality requirements)– Quality attribute specifications
• Design decisions
![Page 5: Software Architecture in Practice Architectural description (The reduced version)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56649ebc5503460f94bc4eaa/html5/thumbnails/5.jpg)
5
Architectural Requirements: POS Scenarios
Process Sale: A customer arrives at a checkout with items to purchase. The cashier uses the POS system to record each purchased item. The system presents a running total and line-item details. The customer enters payment information, which the system validates and records. The system updates inventory. The customer receives a receipt from the system and then leaves with the item
![Page 6: Software Architecture in Practice Architectural description (The reduced version)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56649ebc5503460f94bc4eaa/html5/thumbnails/6.jpg)
6
Architectural Requirements: POS Qualities
Architectural drivers– Availability
• The system shall be highly available since the effectiveness of sales depends on its availability
– Portability• The system shall be portable to a range of different platforms
to support a product line of POS systems
– Usability• The system shall be usable by clerks with a minimum of
training and with a high degree of efficiency
This is not operational!– More later on quality attribute scenarios…
![Page 7: Software Architecture in Practice Architectural description (The reduced version)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56649ebc5503460f94bc4eaa/html5/thumbnails/7.jpg)
7
Architectural Views
How is the functionality of the system mapped to runtime components and their interaction?– Component & connector viewpoint/structure
How is the functionality of the system to be mapped into implementation?– Module viewpoint/structure
How are software elements mapped onto environmental structures?– Allocation viewpoint/structure
![Page 8: Software Architecture in Practice Architectural description (The reduced version)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56649ebc5503460f94bc4eaa/html5/thumbnails/8.jpg)
8
Component & Connector Viewpoint
Elements– Components
• Functional behaviour• What part of the system is doing what?
Relations– Connectors
• Control and communication aspects• Define protocols for control and data exchange
– Incoming and outgoing operations– Mandates ordering of operations– Define roles for attached components
Mapping to UML– Object diagrams, interaction diagrams– Components = active objects– Connectors = links + annotations, messages
+ textual description of responsibilities
The software architecture of a computing system is the structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them [Bass et al., 2003]
![Page 9: Software Architecture in Practice Architectural description (The reduced version)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56649ebc5503460f94bc4eaa/html5/thumbnails/9.jpg)
9
Basic C&C Elements
[Fowler, 2000]
Sequence Diagrams
component: Type
new componentcreate
message
self delegation
delete
Active Objects
component 1:Type 1
component 2
connector name
role name 1
role name 2
![Page 10: Software Architecture in Practice Architectural description (The reduced version)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56649ebc5503460f94bc4eaa/html5/thumbnails/10.jpg)
10
POS Example: C&C View
![Page 11: Software Architecture in Practice Architectural description (The reduced version)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56649ebc5503460f94bc4eaa/html5/thumbnails/11.jpg)
11
POS Example: C&C View (2)
![Page 12: Software Architecture in Practice Architectural description (The reduced version)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56649ebc5503460f94bc4eaa/html5/thumbnails/12.jpg)
12
Module Viewpoint
Elements– Classes, packages, interfaces
Relations– Associations, generalizations, realizations,
dependencies
Mapping to UML– Class diagrams…
The software architecture of a computing system is the structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them [Bass et al., 2003]
![Page 13: Software Architecture in Practice Architectural description (The reduced version)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56649ebc5503460f94bc4eaa/html5/thumbnails/13.jpg)
13
Basic Module Elements (1)
[Fowler, 2000]
Packages
Package 1dependency
Package 2
ContainedClass 1
ContainedPackage 1
ContainedPackage 2
ContainedClass 2
Interfaces
Abstract Class
ImplementingClass
<<interface>>Interface
realization
Client Classdependency
ImplementingClass
InterfaceClient Classdependency
![Page 14: Software Architecture in Practice Architectural description (The reduced version)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56649ebc5503460f94bc4eaa/html5/thumbnails/14.jpg)
14
Basic Module Elements (2)
[Fowler, 2000]
Associations
Class A Class Brole A
role B
Class A Class Bnavigable
Class1
Class*
Class0..1
Classm..n
Class A Aggregation
Class A Composition
![Page 15: Software Architecture in Practice Architectural description (The reduced version)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56649ebc5503460f94bc4eaa/html5/thumbnails/15.jpg)
15
POS Example: Module View (1)
![Page 16: Software Architecture in Practice Architectural description (The reduced version)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56649ebc5503460f94bc4eaa/html5/thumbnails/16.jpg)
16
POS Example: Module View (2)
![Page 17: Software Architecture in Practice Architectural description (The reduced version)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56649ebc5503460f94bc4eaa/html5/thumbnails/17.jpg)
17
POS Example: Module View (3)
![Page 18: Software Architecture in Practice Architectural description (The reduced version)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56649ebc5503460f94bc4eaa/html5/thumbnails/18.jpg)
18
Allocation Viewpoint
Elements– Software elements: Components, objects
– Environmental elements: Nodes
Relations– Allocated-to
– Dependencies
– Connections (communication paths)
Mapping to UML– Here: focus on deployment
• Deployment and component diagrams
The software architecture of a computing system is the structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them [Bass et al., 2003]
![Page 19: Software Architecture in Practice Architectural description (The reduced version)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56649ebc5503460f94bc4eaa/html5/thumbnails/19.jpg)
19
Basic Allocation Elements
(Note: UML components are used here) [Ambler: Agile modelling]
![Page 20: Software Architecture in Practice Architectural description (The reduced version)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56649ebc5503460f94bc4eaa/html5/thumbnails/20.jpg)
20
POS Example: Allocation View
![Page 21: Software Architecture in Practice Architectural description (The reduced version)](https://reader036.fdocuments.net/reader036/viewer/2022062315/56649ebc5503460f94bc4eaa/html5/thumbnails/21.jpg)
21
Discussion
Component & Connector viewpoint does not map well to implementation?– Few languages have interaction as first-class construct
– Neither to the UML – bound tightly to OO implementation
– On the other hand central in many approaches to architectural design
UML is not designed specifically for software architecture description?– Many (irrelevant) modeling constructs
– But very widely used and supported
Not precise enough for formal analysis (?)