Implementation Architecture

Slides:



Advertisements
Similar presentations
Entity Relationship (E-R) Modeling
Advertisements

1 Senn, Information Technology, 3 rd Edition © 2004 Pearson Prentice Hall James A. Senns Information Technology, 3 rd Edition Chapter 7 Enterprise Databases.
J0 1 Marco Ronchetti - Basi di Dati Web e Distribuite – Laurea Specialistica in Informatica – Università di Trento.
© 2005 by Prentice Hall Appendix 3 Object-Oriented Analysis and Design Modern Systems Analysis and Design Fourth Edition Jeffrey A. Hoffer Joey F. George.
Distributed Systems Architectures
Chapter 7 System Models.
Requirements Engineering Process
Chapter 8 Software Prototyping.
Processes and Operating Systems
1 Copyright © 2013 Elsevier Inc. All rights reserved. Chapter 1 Embedded Computing.
System Development MIS Chapter 6 Jack G. Zheng May 28 th 2008.
Document #07-2I RXQ Customer Enrollment Using a Registration Agent (RA) Process Flow Diagram (Move-In) (mod 7/25 & clean-up 8/20) Customer Supplier.
By Rick Clements Software Testing 101 By Rick Clements
Business Transaction Management Software for Application Coordination 1 Business Processes and Coordination. Introduction to the Business.
18 Copyright © 2005, Oracle. All rights reserved. Distributing Modular Applications: Introduction to Web Services.
4 Copyright © 2005, Oracle. All rights reserved. Creating the Web Tier: Servlets.
11 Copyright © 2005, Oracle. All rights reserved. Creating the Business Tier: Enterprise JavaBeans.
1 Copyright © 2005, Oracle. All rights reserved. Introducing the Java and Oracle Platforms.
17 Copyright © 2005, Oracle. All rights reserved. Deploying Applications by Using Java Web Start.
Modern Systems Analyst and as a Project Manager
1 9 Moving to Design Lecture Analysis Objectives to Design Objectives Figure 9-2.
Chapter 7 – Design and Implementation
REVIEW: Arthropod ID. 1. Name the subphylum. 2. Name the subphylum. 3. Name the order.
Week 2 The Object-Oriented Approach to Requirements
Electric Bus Management System
Configuration management
Software change management
Chapter 5 – Enterprise Analysis
Testing Workflow Purpose
Service Level Agreement
By Waqas Over the many years the people have studied software-development approaches to figure out which approaches are quickest, cheapest, most.
Use Case Diagrams.
IP Multicast Information management 2 Groep T Leuven – Information department 2/14 Agenda •Why IP Multicast ? •Multicast fundamentals •Intradomain.
VOORBLAD.
IONA Technologies Position Paper Constraints and Capabilities for Web Services
Factor P 16 8(8-5ab) 4(d² + 4) 3rs(2r – s) 15cd(1 + 2cd) 8(4a² + 3b²)
Database System Concepts and Architecture
31242/32549 Advanced Internet Programming Advanced Java Programming
© 2012 National Heart Foundation of Australia. Slide 2.
Requirements Analysis Moving to Design b521.ppt © Copyright De Montfort University 2000 All Rights Reserved INFO2005 Requirements Analysis.
Chapter 10 Software Testing
Executional Architecture
Global Analysis and Distributed Systems Software Architecture Lecture # 5-6.
Macromedia Dreamweaver MX 2004 – Design Professional Dreamweaver GETTING STARTED WITH.
Requirements Analysis 1. 1 Introduction b501.ppt © Copyright De Montfort University 2000 All Rights Reserved INFO2005 Requirements Analysis Introduction.
25 seconds left…...
Copyright © 2003 by Prentice Hall Computers: Tools for an Information Age Chapter 15 Programming and Languages: Telling the Computer What to Do.
© Paradigm Publishing Inc Chapter 10 Information Systems.
Chapter 10: The Traditional Approach to Design
Systems Analysis and Design in a Changing World, Fifth Edition
©Brooks/Cole, 2001 Chapter 12 Derived Types-- Enumerated, Structure and Union.
Chapter 12 Working with Forms Principles of Web Design, 4 th Edition.
James A. Senn’s Information Technology, 3rd Edition
PSSA Preparation.
Chapter 11 Component-Level Design
Modeling Main issues: What do we want to build How do we write this down.
From Model-based to Model-driven Design of User Interfaces.
Technical Architectures
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
Course Instructor: Aisha Azeem
UNIT-V The MVC architecture and Struts Framework.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
Secure Systems Research Group - FAU SW Development methodology using patterns and model checking 8/13/2009 Maha B Abbey PhD Candidate.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
CS223: Software Engineering Lecture 13: Software Architecture.
Distribution and components
Design and Implementation
Logical Architecture & UML Package Diagrams
Presentation transcript:

Implementation Architecture Lecture 20- 22

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

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.

A view focussing on… Build-time structure: Detailed activity 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

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

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

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)

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.

Component stereotypes in implementation view Infrastructure component Containers Application components

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

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.

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

Connectors in implementation architecture (4)

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

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

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

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

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)

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)

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: Browser, Application server

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!

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

MPS: Implementation Architecture

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”

Impact-maps Map 1: new external system Map 2: new application 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

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

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

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.

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

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.

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

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.

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.