tk2023 object-oriented software engineering

21
TK2023 Object- Oriented Software Engineering CHAPTER 2 INTRODUCTION TO THE UNIFIED PROCESS

Upload: keith-lester

Post on 30-Dec-2015

28 views

Category:

Documents


0 download

DESCRIPTION

TK2023 Object-Oriented Software Engineering. CHAPTER 2 INTRODUCTION TO THE UNIFIED PROCESS. INTRODUCTION. A software development process describes an approach to building, deploying and possibly maintaining software. Requirements. Design. Implementation. Testing. Maintenance. - PowerPoint PPT Presentation

TRANSCRIPT

TK2023 Object-Oriented Software Engineering

CHAPTER 2

INTRODUCTION TO THE UNIFIED PROCESS

INTRODUCTION

A software development process describes an approach to building, deploying and possibly maintaining software.

RequirementsRequirements

DesignDesign

ImplementationImplementation

TestingTesting

MaintenanceMaintenance

This course is about object-oriented software development. In particular, it focuses on the Unified Process (UP).

UP is a software development process framework which combines commonly accepted best practices into a cohesive and well-documented description.

The Rational Unified Process (RUP) is a detailed refinement of the UP. It is a process product developed and maintained by IBM.

This chapter is an introduction to the UP which covers the following: Iterative Development Embracing Change Phases Disciplines

ITERATIVE DEVELOPMENT

A very important "best practice" promoted by the UP is the iterative and incremental development approach to software development.

In this approach, development is organized into a series of short, fixed-length iterations.

The outcome of each iteration is a tested, integrated, and executable system.

Each iteration is a "mini-project"; it includes its own requirement analysis, design, implementation and testing activities.

The iterative lifecycle is based on the successive enlargement and refinement of a system through multiple iterations, with cyclic feedback and adaptation as core drivers to converge upon a suitable system.

The system grows incrementally over time, iteration by iteration.

Requirements

Design

Implementation &Test & Integration & More Design

Final Integration & System Test

Requirements

Design

3 weeks (for example)The system grows incrementally.

Feedback from iteration N leads to refinement and adaptation of the requirements and

design in iteration N+1.

Iterations are fixed in length, or timeboxed.

Time

Implementation &Test & Integration & More Design

Final Integration & System Test

Each iteration tackles a small subset of requirements. The output of an iteration is an executable but incomplete system. It is not an experimental or throw-away prototype. It is also not ready to deliver into production but it is a production-grade subset of the final system.

Note that it is also possible for an iteration to improve existing software instead of handling new requirements. For example, an iteration may focus on the performance of a subsystem.

EMBRACING CHANGE

Reality: Change is inevitable in software development. Normally, clients are not clear about what they really want.

UP balances the need to agree upon and stabilize a set of requirements with the reality of changing requirements.

In the UP, each iteration results in an executable release developed based on a small subset of requirements.

Using that release, early feedback can be obtained through users, stakeholders, developers and tests. From the feedback, requirements can be clarified, corrected or even added. Risky and critical design decisions can be resolved early rather than late.

Early iterations are farther from the "true path" of the system. Via feedback and adaptation, the system converges towards the most appropriate requirements and design.

In late iterations, a significant change in requirements is rare, but can occur. Such late changes may give an organization a competitive business advantage.

one iteration of design, implement, integrate, and test

ITERATION LENGTH

The length of an iteration is important. The UP recommends an iteration length of between two and six weeks.

Iteration length too short => can be difficult to obtain meaningful throughput and feedback.

Iteration length too long => increases complexity and feedback is delayed which defeats the purpose of iterative development.

The length for each iteration is fixed. Date slippage is discouraged.

ADVANTAGES OF ITERATIVE DEVELOPMENT Early rather than late mitigation of high risks

(technical, requirements, objectives, usability, etc) Early visible progress Early feedback, user engagement, and adaptation,

leading to a refined system that more closely meets the real needs of the stakeholders.

Managed complexity The learning within an iteration can be methodically

used to improve the development process itself, iteration by iteration.

PHASES IN UNIFIED PROCESS

Inception Approximate vision, business case, scope, vague

estimates This phase is like a feasibility phase. Adequate

investigation is done to support a decision to continue or stop

Elaboration Refined vision, iterative implementation of the core

architecture, resolution of high risks, identification of most requirements and scope, more realistic estimates.

In this phase, the core architecture is iteratively implemented, and high risk issues are mitigated.

Construction Iterative implementation of the remaining lower

risk and easier elements, and preparation for deployment.

Transition Beta tests, deployment.

inc. elaboration construction transition

iteration phase

development cycle

release

A stable executablesubset of the finalproduct. The end ofeach iteration is aminor release.

increment

The difference(delta) between thereleases of 2subsequent

iterations.

final productionrelease

At this point, thesystem is releasedfor production use.

milestone

An iteration end-point when some

significant decisionor evaluation occurs.

DISCIPLINES IN UNIFIED PROCESS In the UP, an artifact is the general term for

any work product: code, Web graphics, database schema, text documents, diagrams, models, etc.

In the UP, a discipline is a set of activities (and related artifacts) in one subject area. For example, the Requirements discipline refers to the set of activities and artifacts within requirements analysis.

DISCIPLINES AND PHASES

During one iteration, work goes on in most or all disciplines. However, the relative effort across these disciplines changes over time.

Sample

UP Disciplines

Business Modeling

Requirements

Design

Implementation

...

The relative effort in

disciplines shifts

across the phases.

This example is

suggestive, not literal.

incep-

tionelaboration construction

transi-

tion

...

Iterations

SampleUP Disciplines

Business Modeling

Requirements

Design

Implementation

Test

Deployment

Configuration & ChangeManagement

Project Management

Environment

Focusof thisbook

Note thatalthough an

iteration includeswork in most

disciplines, therelative effort and

emphasis changeover time.

This example issuggestive, notliteral.

A four-week iteration (for example).A mini-project that includes work in mostdisciplines, ending in a stable executable.

DISCIPLINES AND PHASES