Presentation is loading. Please wait.

Presentation is loading. Please wait.

Implementation Architecture Lecture 20- 22 1. Implementation View (1) “ how the system is built ”  Focuses on “ how the system is built ” technological.

Similar presentations

Presentation on theme: "Implementation Architecture Lecture 20- 22 1. Implementation View (1) “ how the system is built ”  Focuses on “ how the system is built ” technological."— Presentation transcript:

1 Implementation Architecture Lecture

2 Implementation View (1) “ how the system is built ”  Focuses on “ how the system is built ” technological elements  Which technological elements are needed to implement the system:  Software  Software packages (req. Development tools),  Libraries  Libraries (implementing behavior e.g. “Cout”),  Frameworks  Frameworks (Generic functionality e.g. “JUnit”),  Classes  Classes,...  Addresses non-runtime quality attributes:  Configurability  Configurability (e.g. Platform),  Testability  Testability (e.g. Mapping of FRs),  Reusability 2

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 focuses on the concurrent  Each model focuses on the concurrent subsystems/processes from the execution view. 3

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 4

5 Components in implementation architecture (1)  Two types of components:  Application components  And infrastructure components 5

6 Components in implementation architecture (2) 6  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

7 Components in implementation architecture (3)  Infrastructure components  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) 7

8 Components in implementation architecture (4) "container"  Often an infrastructure component acts as a "container" for application components  A container component provides an execution environment for the contained components (application components) creates threads  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. 8

9 Component stereotypes in implementation view 9 Application components Containers Infrastructure component

10 Connectors in implementation architecture (1)  In implementation architecture connectors represent: “ a "uses" relation”  “ a "uses" relation” direction  The arrow depicts the direction of this relation nature  The nature of communication is depicted through the connector styles 10

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. 11

12 Connectors in implementation architecture (3) 12  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

13 Connectors in implementation architecture (4) 13

14 Connectors in implementation architecture (5) ports  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). 14

15 Simple “two-tier” web app Apache Apache module API mod_php Application components MySQL Data Model/s HTTP Containers Infrastructure component 15 Ports

16 Conceptual v/s implementation Conceptual Architecture Implementation Architecture Component Connector Domain-level responsibilities Implementation module Flow of information “Uses” relationship 16

17 Implementation architecture design application  Find application components infrastructure  Find infrastructure components  Interface  Interface design  Behavior  Behavior design and verification 17

18 Application components (1)  1-to-1 mapping:  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) 18

19 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

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 20

21 Interface design “interfaces”  For all application and infrastructure components we need to define “interfaces” (ports) “way to connect  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! 21

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 22

23 MPS: Implementation Architecture 23

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” 24

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 25

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 26

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 27

28 Dimensions of prototypes (1) 28  Horizontal Prototype : user interface  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.

29 Dimensions of prototypes (2) 29  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

30 Technical prototypes (1) 30  Throwaway or Rapid Prototyping refers to:  “creation of a model that will eventually be discarded rather than becoming part of the final delivered software” visually show the users  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.

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 31

32 Technical prototypes (3) 32  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.

33 Technical prototypes (4) 33  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.

Download ppt "Implementation Architecture Lecture 20- 22 1. Implementation View (1) “ how the system is built ”  Focuses on “ how the system is built ” technological."

Similar presentations

Ads by Google