Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.

Slides:



Advertisements
Similar presentations
Test Yaodong Bi.
Advertisements

Deliverable #8: Detailed Design - Overview due: Wednesday, 7 March All Deliverable materials are to be posted into Team Concert. Your to.
1 Software Testing and Quality Assurance Lecture 13 - Planning for Testing (Chapter 3, A Practical Guide to Testing Object- Oriented Software)
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
® IBM Software Group © 2006 IBM Corporation Rational Software France Object-Oriented Analysis and Design with UML2 and Rational Software Modeler 04. Other.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Architectural Modeling Notations.
UML Static diagrams. Static View: UML Component Diagram Component diagrams show the organization and dependencies among software components. Component:
1 © Wolfgang Pelz UML3 UML 3 Notations describe how to use reusable software. Package Component Deployment Node.
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
The Unified Software Development Process - Workflows Ivar Jacobson, Grady Booch, James Rumbaugh Addison Wesley, 1999.
Requirements Specification
Recall The Team Skills 1. Analyzing the Problem (with 5 steps) 2. Understanding User and Stakeholder Needs 3. Defining the System 4. Managing Scope 5.
C++ Training Datascope Lawrence D’Antonio Lecture 11 UML.
© Copyright Eliyahu Brutman Programming Techniques Course.
SE 555 Software Requirements & Specification Requirements Analysis.
1 A Student Guide to Object- Orientated Development Chapter 9 Design.
Object Oriented Analysis and Design Using the UML
Test Design Techniques
UML Sequence Diagrams Michael L. Collard, Ph.D. Department of Computer Science Kent State University.
UML - Development Process 1 Software Development Process Using UML (2)
Smith’s Aerospace © P. Bailey & K. Vander Linden, 2005 Architecture: Component and Deployment Diagrams Patrick Bailey Keith Vander Linden Calvin College.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
RUP Implementation and Testing
An Introduction to Software Architecture
Software Engineering Chapter 8 Fall Analysis Extension of use cases, use cases are converted into a more formal description of the system.Extension.
Overview of Software Testing 07/12/2013 WISTPC 2013 Peter Clarke.
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
Systems Analysis and Design in a Changing World, 3rd Edition
Requirements as Usecases Capturing the REQUIREMENT ANALYSIS DESIGN IMPLEMENTATION TEST.
Source: Peter Eeles, Kelli Houston, and Wojtek Kozaczynsky, Building J2EE Applicationa with the Rational Unified Process, Addison Wesley, 2003 Prepared.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
Object Oriented Analysis and Design using the UML CIS 520 Advanced Object-Oriented Design.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
A Use Case Primer 1. The Benefits of Use Cases  Compared to traditional methods, use cases are easy to write and to read.  Use cases force the developers.
TAL7011 – Lecture 4 UML for Architecture Modeling.
Implementation Diagrams
R R R CSE870: UML Component Diagrams Implementation Diagrams.
1 Capturing Requirements As Use Cases To be discussed –Artifacts created in the requirements workflow –Workers participating in the requirements workflow.
Logical view –show classes and objects Process view –models the executables Implementation view –Files, configuration and versions Deployment view –Physical.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
Karolina Muszyńska Based on: S. Wrycza, B. Marcinkowski, K. Wyrzykowski „Język UML 2.0 w modelowaniu SI”
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki The Rational.
1 Unified Modeling Language, Version 2.0 Chapter 2.
Rational Unified Process Fundamentals Module 4: Core Workflows II - Concepts Rational Unified Process Fundamentals Module 4: Core Workflows II - Concepts.
Analysis Yaodong Bi. Introduction to Analysis Purposes of Analysis – Resolve issues related to interference, concurrency, and conflicts among use cases.
310414IMPLEMENTATION1 IMPLEMENTATIONIMPLEMENTATION SOFTWARE ENGINEERING SOFTWARE ENGINEERING.
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
Object Oriented Programming and Data Abstraction Earl Huff Rowan University.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
R R R CSE870: UML Component Diagrams Implementation Diagrams.
UML Diagrams By Daniel Damaris Novarianto S..
Course Outcomes of Object Oriented Modeling Design (17630,C604)
Systems Analysis and Design With UML 2
Unified Modeling Language
System Design.
UML Diagrams Jung Woo.
Recall The Team Skills Analyzing the Problem (with 5 steps)
Unified Modeling Language
IMPORTANT NOTICE TO STUDENTS:
Analysis models and design models
Design Yaodong Bi.
Software Development Process Using UML Recap
From Use Cases to Implementation
Implementation Plan system integration required for each iteration
Presentation transcript:

Implementation Yaodong Bi

Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute the system by mapping executable components onto nodes in the deployment model – Implement the design classes and subsystems found during design as file components – Unit test the components, then integrate then by compiling them linking them together into one or more executables.

Artifacts of Implement. - Overview Implementation model Components Implementation subsystems Interfaces Architecture description Integration build plan

Artifacts – Implementation Model Implementation model – Describe how elements in the design model are implemented in terms of components such as source code files, executables, and so on. – Describe how the components are organized according to the structuring and modularization mechanisms available in the implementation environment and programming languages

Artifacts – Components Components – A component is the physical packaging of model elements, such as design classes in the design model – Standard stereotypes of components: > is a program that may run on a node > is a file containing source code or data > is a static or dynamic library > is a database table > is a document

Artifacts – Components Components – Components have trace relationships to the model element they implement such as design classes – It is common for a component to implement several elements. (p. 270, Fig 10.4) – Components provide the same interfaces as the model elements they implement (p 271, Fig 10.5) – There can be compilation dependencies between components (p. 271, Fig 10.6)

Artifacts – Components Stubs – A stub is a component with a skeletal or special- purpose implementation that can be used to develop and test other components – Stubs can be used to minimize the number of new components required in each new (intermediate) version of the system.

Artifacts – Implement. Subsystems Implementation subsystems – Provide a means of organizing the artifacts of the implementation model into more manageable pieces – A subsystem may consists of components, interfaces, and other subsystems – An implementation subsystem is manifested by an actual “packaging mechanism” in the implementation environment such as a package in Java, a project in VB, etc.

Artifacts – Implement. Subsystems – An implementation system should be traced one- to-one to a corresponding design subsystem – The implementation subsystem should define analog dependencies toward other implementation subsystems – The implementation subsystem should provide the same interface – The implementation subsystem should define which contained components provide each of the interfaces (p273 Fig 10.8)

Artifacts – Interfaces Interfaces – Specify the operations implemented by components and implementation subsystems – A component that realizes an interface must implement all operations defined by the interface – An implementation subsystem that provides an interface must also contain components that provide the interface (p.275, Fig 10.10)

Artifacts – Architecture (Implem.) Architecture description (view of the implementation model) – Subsystems, their interfaces, and dependencies between them. They have a one-to-one mapping to design subsystems – Key components mapping to significant design classes, executable components, general components

Artifacts – Integration Build Plan Integration build plan – Build: an executable version of the system – Built incrementally in manageable steps – Integration build plan: the sequence of builds in an iteration. It describes: The functionality to be implemented, as a list of use-cases Which parts of the implementation model are affected by the build, as a list of subsystems and components

Activities of Implement. - Overview Architectural Implementation – Outline the implementation model and its architecture. Integrate system – Create an integration plan and integrate each build Implement subsystems – Ensure each subsystem fulfill its role in each build

Activities of Implement. - Overview Implement classes – Implement each design class in a file component Perform unit test – Test the implemented components as individual units

Architectural Implementation Identify and implement architecturally significant components, such as executable components – Consider each active class as an executable component (p. 282, Fig 10.18) Mapping components to nodes in the deployment model – Map each component to the node its corresponding design active class assigned to. (p. 282, Fig )

Integrate System Create an integration build plan describing each build and its requirements – Each build should add functionality to the previous build by implementing complete use-cases – Each build should include too many new or refined component. Stubs may be used for components Integrate each build before it is subject to integration test. – Collect the right versions of subsystems and components, compiling them, and linking them into a build

Implement Subsystems Maintain the subsystem contents – A subsystem should fulfill its purpose for the current build by components – Each class (and subsystem) required for the current build should be implemented by components (and implementation subsystem) of the implementation subsystem (p. 286, Fig 10.22) – Each interface required by the build must be implemented by components (p Fig 10.23, Fig 10.24)

Implement Classes Outline the file components for source code – The source code for each class resides in a file component – The chosen file components should support the compilation, installation, and maintenance of the system Generating code from a design class – Many details of a design class are described during design – Code for association and aggregation depends the language Associations  reference attribute in the referring object The name of the attribute is the role name of the association at the opposite end Multiplicity determines the type of the reference: a simple pointer or a collection of pointers

Implement Classes Implementing operations – Methods: implementations of an operation – Methods may be described in natural language in design – Choose a suitable algorithm and data structures for each operation – The states of the design class may impact on the implementation Making the component provide the right interface – The resulting component should provide the same interfaces as the design class(es) it implements

Perform Unit Test Specification testing or black-box testing – Verify the unit’s externally observable behavior – The range of inputs, outputs, and states are divided into equivalence classes – An equivalence class: a set of inputs, outputs, or states for which an object is supposed to behavior similarly – Test components for each combination of the equivalence classes. (p290, example)

Perform Unit Test Structure testing or white-box testing – Verify the unit’s internal implementation – Every statement is executed at least once. – Test the most interesting paths through the code Most commonly followed paths Most critical paths The least-known paths High risk paths. (p292, Fig 10.27)

Summary of Implementation Implement subsystems including their contents, interfaces, and their dependencies Implement components: file and executable components, and their dependencies on each other Unit test components Define the architectural view of the implementation model. Implementation model is the primary input to subsequent testing activities