implementation architecture lecture 20- 22 1. implementation view (1) “ how the system is built...
TRANSCRIPT
![Page 1: Implementation Architecture Lecture 20- 22 1. Implementation View (1) “ how the system is built ” Focuses on “ how the system is built ” technological](https://reader035.vdocuments.us/reader035/viewer/2022062511/551b4859550346ae7a8b4df7/html5/thumbnails/1.jpg)
1
Implementation Architecture
Lecture 20- 22
![Page 2: Implementation Architecture Lecture 20- 22 1. Implementation View (1) “ how the system is built ” Focuses on “ how the system is built ” technological](https://reader035.vdocuments.us/reader035/viewer/2022062511/551b4859550346ae7a8b4df7/html5/thumbnails/2.jpg)
2
Implementation View (1) Focuses on “how the system is built” Which technological elements are needed to
implement the system: Software packages (req. Development tools), Libraries (implementing behavior e.g. “Cout”), Frameworks (Generic functionality e.g. “JUnit”), Classes , ...
Addresses non-runtime quality attributes: Configurability (e.g. Platform), Testability (e.g. Mapping of FRs), Reusability
![Page 3: Implementation Architecture Lecture 20- 22 1. Implementation View (1) “ how the system is built ” Focuses on “ how the system is built ” technological](https://reader035.vdocuments.us/reader035/viewer/2022062511/551b4859550346ae7a8b4df7/html5/thumbnails/3.jpg)
3
Implementation View (2) Again, comprised of components and
connectors
Here, components and connectors reflect “Software entities and their relationships at
the level of source and binary code”
Typically a number of implementation models can be developed
Each model focuses on the concurrent subsystems/processes from the execution view.
![Page 4: Implementation Architecture Lecture 20- 22 1. Implementation View (1) “ how the system is built ” Focuses on “ how the system is built ” technological](https://reader035.vdocuments.us/reader035/viewer/2022062511/551b4859550346ae7a8b4df7/html5/thumbnails/4.jpg)
4
A view focussing on…
As, implementation architecture focuses on the “built-time” structure of the system.
Build-time structure: Implementation modules Off-the-shelf technology Build-time configuration
Detailed activity Call sequences i.e. Sequence Diagram
![Page 5: Implementation Architecture Lecture 20- 22 1. Implementation View (1) “ how the system is built ” Focuses on “ how the system is built ” technological](https://reader035.vdocuments.us/reader035/viewer/2022062511/551b4859550346ae7a8b4df7/html5/thumbnails/5.jpg)
5
Components in implementation architecture (1)
Two types of components:
Application components And infrastructure components
![Page 6: Implementation Architecture Lecture 20- 22 1. Implementation View (1) “ how the system is built ” Focuses on “ how the system is built ” technological](https://reader035.vdocuments.us/reader035/viewer/2022062511/551b4859550346ae7a8b4df7/html5/thumbnails/6.jpg)
6
Components in implementation architecture (2)
Application components: “Are responsible for implementing domain-
level responsibilities”
These are responsibilities found in a detailed conceptual architecture
Application components might be realized as: Source packages, And files
![Page 7: Implementation Architecture Lecture 20- 22 1. Implementation View (1) “ how the system is built ” Focuses on “ how the system is built ” technological](https://reader035.vdocuments.us/reader035/viewer/2022062511/551b4859550346ae7a8b4df7/html5/thumbnails/7.jpg)
7
Components in implementation architecture (3) Infrastructure components:
“Are needed to make the system run but are not related to the application functionality”
e.g. LAN Connection Handler in Distributive system is a typical infrastructure component (Just use to connect local systems, so they can
communicate when they require)
![Page 8: Implementation Architecture Lecture 20- 22 1. Implementation View (1) “ how the system is built ” Focuses on “ how the system is built ” technological](https://reader035.vdocuments.us/reader035/viewer/2022062511/551b4859550346ae7a8b4df7/html5/thumbnails/8.jpg)
8
Components in implementation architecture (4)
Often an infrastructure component acts as a "container" for application components A container component provides an execution
environment for the contained components (application components)
Typically, the container executes within a process and creates threads for application components
e.g. a Web application server which runs multiple applications from multiple users, each of them in their own threads.
![Page 9: Implementation Architecture Lecture 20- 22 1. Implementation View (1) “ how the system is built ” Focuses on “ how the system is built ” technological](https://reader035.vdocuments.us/reader035/viewer/2022062511/551b4859550346ae7a8b4df7/html5/thumbnails/9.jpg)
9
Component stereotypes in implementation view
Applicationcomponents
Containers
Infrastructurecomponent
![Page 10: Implementation Architecture Lecture 20- 22 1. Implementation View (1) “ how the system is built ” Focuses on “ how the system is built ” technological](https://reader035.vdocuments.us/reader035/viewer/2022062511/551b4859550346ae7a8b4df7/html5/thumbnails/10.jpg)
10
Connectors in implementation architecture (1)
In implementation architecture connectors represent: “a "uses" relation”
The arrow depicts the direction of this relation
The nature of communication is depicted through the connector styles
![Page 11: Implementation Architecture Lecture 20- 22 1. Implementation View (1) “ how the system is built ” Focuses on “ how the system is built ” technological](https://reader035.vdocuments.us/reader035/viewer/2022062511/551b4859550346ae7a8b4df7/html5/thumbnails/11.jpg)
11
Connectors in implementation architecture (2) API call:
A component calls a method in another component (possibly only if both components are in the same process)
Callback: The caller passes a reference of an object to the
“callee” (called component). The “callee” invokes a method (desired computation) on that object later and return the results to caller.
![Page 12: Implementation Architecture Lecture 20- 22 1. Implementation View (1) “ how the system is built ” Focuses on “ how the system is built ” technological](https://reader035.vdocuments.us/reader035/viewer/2022062511/551b4859550346ae7a8b4df7/html5/thumbnails/12.jpg)
12
Connectors in implementation architecture (3) Network protocol:
Needed when implementation components reside in different physical layer. Components need to agree on a common protocol or use a standardized protocol
OS signals: Communication between processes running on
the same machine
![Page 13: Implementation Architecture Lecture 20- 22 1. Implementation View (1) “ how the system is built ” Focuses on “ how the system is built ” technological](https://reader035.vdocuments.us/reader035/viewer/2022062511/551b4859550346ae7a8b4df7/html5/thumbnails/13.jpg)
13
Connectors in implementation architecture (4)
![Page 14: Implementation Architecture Lecture 20- 22 1. Implementation View (1) “ how the system is built ” Focuses on “ how the system is built ” technological](https://reader035.vdocuments.us/reader035/viewer/2022062511/551b4859550346ae7a8b4df7/html5/thumbnails/14.jpg)
14
Connectors in implementation architecture (5) In some cases, we represent ports as:
“endpoints of connectors between components”
Ports are used to identify a particular interface
For example: A component might be quite complex but it
provides a simple interface for communication e.g. the standard Java library provides an API
(Application Programming Interface).
![Page 15: Implementation Architecture Lecture 20- 22 1. Implementation View (1) “ how the system is built ” Focuses on “ how the system is built ” technological](https://reader035.vdocuments.us/reader035/viewer/2022062511/551b4859550346ae7a8b4df7/html5/thumbnails/15.jpg)
15
Simple “two-tier” web app
Apache
Apache module API
mod_php
Applicationcomponents
MySQL
DataModel/s
HTTP
Containers
Infrastructurecomponent
Ports
![Page 16: Implementation Architecture Lecture 20- 22 1. Implementation View (1) “ how the system is built ” Focuses on “ how the system is built ” technological](https://reader035.vdocuments.us/reader035/viewer/2022062511/551b4859550346ae7a8b4df7/html5/thumbnails/16.jpg)
16
Conceptual v/s implementation
ConceptualArchitecture
ImplementationArchitecture
Component
Connector
Domain-level responsibilities
Implementation module
Flow of information
“Uses” relationship
![Page 17: Implementation Architecture Lecture 20- 22 1. Implementation View (1) “ how the system is built ” Focuses on “ how the system is built ” technological](https://reader035.vdocuments.us/reader035/viewer/2022062511/551b4859550346ae7a8b4df7/html5/thumbnails/17.jpg)
17
Implementation architecture design Find application components
Find infrastructure components
Interface design
Behavior design and verification
![Page 18: Implementation Architecture Lecture 20- 22 1. Implementation View (1) “ how the system is built ” Focuses on “ how the system is built ” technological](https://reader035.vdocuments.us/reader035/viewer/2022062511/551b4859550346ae7a8b4df7/html5/thumbnails/18.jpg)
18
Application components (1) 1-to-1 mapping: of conceptual components onto
application components is typically not possible.
Some conceptual components will become infrastructure components. e.g. persistent storage (databases) are typically
infrastructure components
Some conceptual components are spread over a number of application components Conceptual components have complex responsibilities
e.g. Application layer (Request acceptor , Request Handler e.t.c)
![Page 19: Implementation Architecture Lecture 20- 22 1. Implementation View (1) “ how the system is built ” Focuses on “ how the system is built ” technological](https://reader035.vdocuments.us/reader035/viewer/2022062511/551b4859550346ae7a8b4df7/html5/thumbnails/19.jpg)
Application components (2)
A number of conceptual components can be mapped onto a single application component
E.g. small number and simple responsibilities
MPS system is such an example: All UI components map onto one application
component (i.e. HTML UI)
19
![Page 20: Implementation Architecture Lecture 20- 22 1. Implementation View (1) “ how the system is built ” Focuses on “ how the system is built ” technological](https://reader035.vdocuments.us/reader035/viewer/2022062511/551b4859550346ae7a8b4df7/html5/thumbnails/20.jpg)
20
Infrastructure components
Off-the-shelf components (e.g. Third party services)
Frameworks (e.g. application framework) Servers (web, application, database, file) Generic clients (browser)
In MPS system two infrastructure components: 1. Browser, 2. Application server
![Page 21: Implementation Architecture Lecture 20- 22 1. Implementation View (1) “ how the system is built ” Focuses on “ how the system is built ” technological](https://reader035.vdocuments.us/reader035/viewer/2022062511/551b4859550346ae7a8b4df7/html5/thumbnails/21.jpg)
21
Interface design For all application and infrastructure
components we need to define “interfaces” (ports)
Helps in clarifying the “way to connect” the components
Some interfaces are also standardized e.g. HTTP Connectivity, SQL Connectivity
UI: Combination of HTML/HTTP It is standardized!
![Page 22: Implementation Architecture Lecture 20- 22 1. Implementation View (1) “ how the system is built ” Focuses on “ how the system is built ” technological](https://reader035.vdocuments.us/reader035/viewer/2022062511/551b4859550346ae7a8b4df7/html5/thumbnails/22.jpg)
22
Behavior design Now we need to go into details Use-case maps are not enough anymore We need to investigate behavior at the
operation level Thus, we need a sequence diagram
![Page 23: Implementation Architecture Lecture 20- 22 1. Implementation View (1) “ how the system is built ” Focuses on “ how the system is built ” technological](https://reader035.vdocuments.us/reader035/viewer/2022062511/551b4859550346ae7a8b4df7/html5/thumbnails/23.jpg)
23
MPS: Implementation Architecture
![Page 24: Implementation Architecture Lecture 20- 22 1. Implementation View (1) “ how the system is built ” Focuses on “ how the system is built ” technological](https://reader035.vdocuments.us/reader035/viewer/2022062511/551b4859550346ae7a8b4df7/html5/thumbnails/24.jpg)
24
Non-runtime quality attributes Since implementation view addresses build
structure It is the right place to consider non-runtime quality
attributes, e.g. Maintainability, Extensibility, Reusability, ...
We can use a mechanism similar to use-case maps Impact-maps:
“try to investigate what parts of the system need to change if "something" happens”
![Page 25: Implementation Architecture Lecture 20- 22 1. Implementation View (1) “ how the system is built ” Focuses on “ how the system is built ” technological](https://reader035.vdocuments.us/reader035/viewer/2022062511/551b4859550346ae7a8b4df7/html5/thumbnails/25.jpg)
25
Impact-maps Map 1: new external system
interface to external system needs to be changed
Map 2: new application application component needs to be changed
Map 3: new UI UI component needs to be changed
![Page 26: Implementation Architecture Lecture 20- 22 1. Implementation View (1) “ how the system is built ” Focuses on “ how the system is built ” technological](https://reader035.vdocuments.us/reader035/viewer/2022062511/551b4859550346ae7a8b4df7/html5/thumbnails/26.jpg)
26
Implementation arch. summary
What you need to submit at end of Implementation Architecture:
Detailed implementation architecture with app, infrastructure and interfaces
Sequence diagram of application interfaces
![Page 27: Implementation Architecture Lecture 20- 22 1. Implementation View (1) “ how the system is built ” Focuses on “ how the system is built ” technological](https://reader035.vdocuments.us/reader035/viewer/2022062511/551b4859550346ae7a8b4df7/html5/thumbnails/27.jpg)
27
Prototype To show that the architectural solution is
feasible, we implement prototypes: For each identified application component we
provide implementation Deploy it within the infrastructure components
Test it and check: Correctness, Functionality, Quality-attributes
![Page 28: Implementation Architecture Lecture 20- 22 1. Implementation View (1) “ how the system is built ” Focuses on “ how the system is built ” technological](https://reader035.vdocuments.us/reader035/viewer/2022062511/551b4859550346ae7a8b4df7/html5/thumbnails/28.jpg)
28
Dimensions of prototypes (1) Horizontal Prototype:
A common term for a “user interface” prototype is the horizontal prototype.
It provides a broad view of an entire system or subsystem, focusing on user interaction more than low-level system functionality, such as database access.
Horizontal prototypes are useful for: Confirmation of user interface requirements and system
scope Develop preliminary estimates of development time,
cost and effort.
![Page 29: Implementation Architecture Lecture 20- 22 1. Implementation View (1) “ how the system is built ” Focuses on “ how the system is built ” technological](https://reader035.vdocuments.us/reader035/viewer/2022062511/551b4859550346ae7a8b4df7/html5/thumbnails/29.jpg)
29
Dimensions of prototypes (2) Vertical Prototype:
“A vertical prototype is a more complete elaboration of a single subsystem or function”
It is useful for obtaining detailed requirements for a given function, with the following benefits: Refinement database design Clarifies complex requirements by drilling down to
actual system functionality
![Page 30: Implementation Architecture Lecture 20- 22 1. Implementation View (1) “ how the system is built ” Focuses on “ how the system is built ” technological](https://reader035.vdocuments.us/reader035/viewer/2022062511/551b4859550346ae7a8b4df7/html5/thumbnails/30.jpg)
30
Technical prototypes (1) Throwaway or Rapid Prototyping refers to:
“creation of a model that will eventually be discarded rather than becoming part of the final delivered software”
A simple working model of the system is constructed to visually show the users what their requirements may look like when they are implemented into a finished system.
Also called close-ended prototyping.
![Page 31: Implementation Architecture Lecture 20- 22 1. Implementation View (1) “ how the system is built ” Focuses on “ how the system is built ” technological](https://reader035.vdocuments.us/reader035/viewer/2022062511/551b4859550346ae7a8b4df7/html5/thumbnails/31.jpg)
31
Technical prototypes (2)
A “throw-away” The prototype code is not part of the delivered
system No concern for irrelevant quality attributes
(performance, robustness)
Purely to gain knowledge (or confidence): Test a new version of a commercial
component Verify that a set of components work together Examine performance trade-offs Verify that a proposed architecture is sound
![Page 32: Implementation Architecture Lecture 20- 22 1. Implementation View (1) “ how the system is built ” Focuses on “ how the system is built ” technological](https://reader035.vdocuments.us/reader035/viewer/2022062511/551b4859550346ae7a8b4df7/html5/thumbnails/32.jpg)
32
Technical prototypes (3) Evolutionary Prototyping:
“the main goal is to build a very healthy prototype in a planned manner and constantly refine it.”
The reason for this is that the Evolutionary prototype, when built, forms the heart of the new system, and the improvements and further requirements will be built.
When developing a system using Evolutionary Prototyping, the system is continually refined and rebuilt.
![Page 33: Implementation Architecture Lecture 20- 22 1. Implementation View (1) “ how the system is built ” Focuses on “ how the system is built ” technological](https://reader035.vdocuments.us/reader035/viewer/2022062511/551b4859550346ae7a8b4df7/html5/thumbnails/33.jpg)
33
Technical prototypes (4) This technique allows the development team
to: Add features, Or make changes
Evolutionary Prototypes have an advantage that they are functional systems.
They may be used on temporary basis until the final system is delivered.