Implementation Workflow

Similar documents
Chap 1. Introduction to Software Architecture

Applying 4+1 View Architecture with UML 2. White Paper

Automated Modeling of Legacy Systems Using the UML

In this Lecture you will Learn: Systems Development Methodologies. Why Methodology? Why Methodology?

ISO 9001:2000 Its Impact on Software

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico

Development Methodologies

The Unified Software Development Process

Analysis and Design with UML

Meister Going Beyond Maven

General Problem Solving Model. Software Development Methodology. Chapter 2A

Modeling Web Applications Using Java And XML Related Technologies

Rational Unified Process for Systems Engineering RUP SE1.1. A Rational Software White Paper TP 165A, 5/02

RUP Design. Purpose of Analysis & Design. Analysis & Design Workflow. Define Candidate Architecture. Create Initial Architecture Sketch

UML-based Test Generation and Execution

In this Lecture you will Learn: Implementation. Software Implementation Tools. Software Implementation Tools

Plan-Driven Methodologies

SOFTWARE TESTING TRAINING COURSES CONTENTS

Rational Software White Paper

Embedded/Real-Time Software Development with PathMATE and IBM Rational Systems Developer

Manage Software Development in LabVIEW with Professional Tools

Software Engineering Reference Framework

Basic Unified Process: A Process for Small and Agile Projects

Tools for Testing Software Architectures. Learning Objectives. Context

Automation Guide for SAP Regression Testing. Author: Bhavana Pande

Modernized and Maintainable Code. Frank Weil, Ph.D. UniqueSoft, LLC

Lab Manual: Using Rational Rose

Classical Software Life Cycle Models

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

UML Diagram Types. Use Cases do the Following. Use Case Diagram

Course Registration Case Study

Continuous Delivery. Anatomy of the Deployment Pipeline (Free Chapter) by Jez Humble and David Farley

Agile QA Process. Anand Bagmar Version 1.

Appendix 2-A. Application and System Development Requirements

The Benefits of Component Object- Based SCADA and Supervisory System Application Development

VAIL-Plant Asset Integrity Management System. Software Development Process

Build Management. Context. Learning Objectives

Interface Definition Language

Improved Software Testing Using McCabe IQ Coverage Analysis

SE464/CS446/ECE452 Software Life-Cycle and Process Models. Instructor: Krzysztof Czarnecki

Project Management Planning

3C05: Unified Software Development Process

Aerospace Software Engineering

Information systems modelling UML and service description languages

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

Reaching CMM Levels 2 and 3 with the Rational Unified Process

E-vote 2011 Version: 1.0 Testing and Approval Date: 26/10/2009. E-vote SSA-U Appendix 5 Testing and Approval Project: E-vote 2011

Fourth generation techniques (4GT)

In this Lecture you will Learn: Development Process. Unified Software Development Process. Best Practice

The role of integrated requirements management in software delivery.

Verification of Good Design Style of UML Models

Karunya University Dept. of Information Technology

Software Process and Models

Quality Analysis with Metrics

Bridging Development and Operations: The Secret of Streamlining Release Management

LinuxWorld Conference & Expo Server Farms and XML Web Services

Planning a Project with the Rational Unified Process Author: David West

The Deployment Production Line

UNIFACE Component-based. Development Methodology UNIFACE V Revision 0 Dec 2000 UMET

The Role of the Software Architect

Software testing. Objectives

What is Enterprise Architect? Enterprise Architect is a visual platform for designing and constructing software systems, for business process

Software Engineering Question Bank

A Rational Development Process

Highly Available Mobile Services Infrastructure Using Oracle Berkeley DB

Laila TECHNICAL SKILLS

TIBCO Spotfire and S+ Product Family

Eclectic Computing. Time Tracking Tool Software Architecture Document. Version <1.3>

Smarter Balanced Assessment Consortium. Recommendation

Contact for all enquiries Phone: info@recordpoint.com.au. Page 2. RecordPoint Release Notes V3.8 for SharePoint 2013

Quantification and Traceability of Requirements

Principles of integrated software development environments. Learning Objectives. Context: Software Process (e.g. USDP or RUP)

Software Engineering talk

Quality Assurance - Karthik

Designing a Windows Server 2008 Applications Infrastructure

Introduction to OpenUP (Open Unified Process)

Software Engineering

zen Platform technical white paper

An Approach to Software Architecture Description Using UML

Solutions for Quality Management in a Agile and Mobile World

Building a SaaS Application. ReddyRaja Annareddy CTO and Founder

Software Architecture

SOMA, RUP and RMC: the right combination for Service Oriented Architecture

Business Architecture with ArchiMate symbols and TOGAF Artefacts

REMOTE DEVELOPMENT OPTION

Using Web-based Tools to Enhance Student Learning and Practice in Data Structures Course

Building Lab as a Service (LaaS) Clouds with TestShell

<Project Name> Solution Architecture Preliminary System Design

Cloud Computing for Architects

Supporting Workflow Overview. CSC532 Fall06

SAMPLE RESUME FORMAT

Towards Flexible Business Process Modeling and Implementation: Combining Domain Specific Modeling Languages and Pattern-based Transformations

The Benefits of Utilizing a Repository Manager

A UML Introduction Tutorial

Transcription:

Implementation Workflow Michael Fourman

Introduction Implement the design in terms of components source code, scripts, binaries, executables, etc. Flesh out the architecture Plan system integrations in each iteration incremental: small, manageable steps Distribute system: map components to nodes focus on active classes Implement design classes and subsystems Unit test components Integrate components (compile and link into one or more executables) for integration and system tests Focus of construction phase architecture baseline in elaboration phase; defects in transition phase

Implementation Focus Core Workflows Phases Inception Elaboration Construction Transition Requirements Analysis Design Implementation Test Preliminary 1 2 n n+1 n+2 m m+1 Iterations

Artifacts Implementation Model Component Implementation Subsystem Interface Architecture Description Implementation view of architecture Integration Build Plan Sequence of builds in an iteration Functionality in each build Note: keep design model current via round-trip engineering Design model provides a visualization of implementation model

Implementation Workflow Activities and Workers Architect Architectural Implementation System Integrator Integrate System Component Engineer Implement a Subsystem Implement a Class Perform a Unit Test

Implementation Model Describes how elements of design model are implemented in terms of components such as source code, executables, etc. Describe how components are organized using the structuring and modularization mechanisms of the implementation environment and programming languages Hierarchy of Implementation (sub)systems containing Components and Interfaces Describe how components depend on each other

Component Physical packaging of model elements Standard stereotypes <<executable>> -- a program that may run on a node <<file>> -- file containing source code or data <<library>> -- static or dynamic library <<table>> -- a database table <<document>> -- a document technology specific (<<ActiveX>>, <<Applet>>, <<DLL>>, <<CORBA Component>>, etc.)

Component Characteristics Components trace to the model elements they implement (hence all the way back to use cases) A component usually implements several elements Components provide the same interfaces as the model elements they implement Compilation dependencies denote which components are required to compile a specific component Implement component stubs to ease compilation, integration and test

Trace between implementation and design Design Model Implementation Model AccountTransfers <<trace>> <<file>> AccountTransfers.java Transfers Transfers

Implementation subsystem Organize implementation model artifacts into more manageable pieces Manifested by a packaging mechanism in implementation environment package in Java project in VB, VC++ directory in C++ CORBA server in CORBA Component View package in Rational Rose Trace one-to-one with design subsystems same dependencies to other subsystems, interfaces provides same interfaces maps one-to-one with which components or other implementation subsystems within the subsystem provide the interfaces of the subsystem may need to iterate design to change the structure

Interface As in design, interfaces define the operations implemented by components and implementation subsystems A component that realizes (and thus provides) an interface must implement all the operations defined by the interface A subsystem that realizes (and thus provides) an interface must also contain components that provide the interface or other subsystems (recursively) that provide the interface

Architecture description Architectural view of implementation model Decomposition of implementation model into subsystems, their interfaces, and dependencies between them redundant with architectural view of design model due to one-to-one mapping Key components trace to architecturally significant design classes executable components components that are general, central, or implement generic design mechanisms that many other components depend on

4+1 View of Architecture and the workflows that define the views Analysis Implementation Logical View Functionality Use Case View Implementation View Software management Process View Performance, scalability, throughput Design Understandability Usability Requirements Deployment View System topology, delivery, installation, communication Design

Integration Build Plan Incremental build in small, manageable steps limits scope of integration and test problems build is an executable version of system should put the build under version control so can roll back on test failure Build plan for each increment list of functionality: use cases and/or scenarios list of implementation subsystems and components Test each build, including regression tests Typically multiple builds per iteration Benefits early executable system reduces risk start integration tests early easier to locate defects integration tests are more thorough than system tests

Workers Architect Responsible for the integrity of the implementation model (correct, consistent and readable as a whole) Component engineer Defines and maintains source code of several file components Maintains integrity of one or more implementation subsystems Typically the designer of the corresponding subsystems System integrator Plan build sequence Integrating each build from implemented parts

Details and Guidelines Architectural implementation Identifying architecturally significant components Identifying executable components and deploying them to nodes Integrate system Planning a subsequent build Integrating a build Implement a subsystem Maintaining the subsystem contents Implement a class Outlining file components that will contain source code Generating code from a design class and its relationships Implementing operations in terms of methods Making the component provide the right interfaces Perform unit tests Perform specification testing (black box; external) Perform structure testing (white box; internal)

Summary Implementation Model Implementation (sub)systems and their dependencies, interfaces and contents Components File and executable components Dependencies Components unit tested Architecture view of implementation model Integration Build Plan Each build from implementation is integration tested and system tested in Test Workflow