58
James Nowotarski 13 April 2004 IS 553 Advanced Systems Development Practices

James Nowotarski 13 April 2004 IS 553 Advanced Systems Development Practices

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

James Nowotarski

13 April 2004

IS 553Advanced Systems

Development Practices

2

Course Map

Underpinnings. Introduction. Essentials

Content. Rational Unified Process. Agile

Implementation. Metrics. CMM. Distributed development. Tools & training

Briefings (Term Papers)

1 2 3 4 6 7 8 9 10 115

Assignments

Quizzes

Week

(RUP) (Agile) (CMM) (Distr. Dev.)

3

Understand the basics of the Rational Unified Process (RUP) Structure Content Guiding principles

In particular, understand how RUP enables iterative development

Discuss the term project

Today’s Objectives

4

Topic Duration

RUP Overview 75 minutes

*** Break 15 minutes

Current Event Recaps (Asgn #5)15 minutes

RUP and Iterative Development 45 minutes

Asgn #1, Quiz #1, Term Project 30 minutes

Today’s Agenda

5

Topic Duration

RUP Overview 75 minutes

*** Break 15 minutes

Current Event Recaps (Asgn #5)15 minutes

RUP and Iterative Development 45 minutes

Asgn #1, Quiz #1, Term Project 30 minutes

Today’s Agenda

6

Think to yourself how many of the projects you have worked were:

On Time? On Budget?

High Quality?

The Bottom Line: Our Customers are upset with us.The Bottom Line: Our Customers are upset with us.

7

Symptoms and Root CausesSome Symptoms: Requirements in flux

Some Root Causes:• Insufficient and misunderstood

requirement

8

RUP Guiding Principles

IterativeDevelopment

QualityCustomerValue

Attack riskAccommodatechange

Work togetherExecutablesoftware

Architecturebaseline

Component-baseddevelopment

Objectives

Strategies

Tactics

9

RUP Guiding Principles

IterativeDevelopment

QualityCustomerValue

Attack riskAccommodatechange

Work togetherExecutablesoftware

Architecturebaseline

Component-baseddevelopment

Objectives

Strategies

Tactics

10

Continuously Verify Quality

In the Rational Unified Process, quality is defined as:

“The characteristic identified by the following: • satisfies or exceeds an agreed upon set of requirements, and • assessed using agreed upon measures and criteria, and • produced using an agreed upon process."

More than simply "meeting requirements" or producing a product that meets user needs, or expectations, etc.

Quality also includes identifying the measures and criteria to demonstrate the achievement of quality, and the implementation of a process to ensure that the product created by the process, has achieved the desired degree of quality (and can be repeated and managed).

11

Test Each Iteration

Start testing early Continuously test Test each iteration for functionality

and performance Iterative development makes

regression testing necessary Use automated tests whenever

possible

12

RUP Guiding Principles

IterativeDevelopment

QualityCustomerValue

Attack riskAccommodatechange

Work togetherExecutablesoftware

Architecturebaseline

Component-baseddevelopment

Objectives

Strategies

Tactics

13

Why focus on change?

Life cycle phase

Co

st

of

ch

an

ge

Req Anal. Des. Impl. Test Prod

y = axp

14

Ways to Accommodate Change

15

Control Changes

You must control, track and monitor changes to enable iterative development

Control changes for all software artifacts: Models Documents Source code Project plans

Establish secure workspaces fore each developer

Automated integration and build management

16

Controlling Parallel Development

Multiple developers Multiple teams Multiple sites Multiple iterations Multiple releases Multiple projects Multiple platforms

17

Configuration Management

Configuration Management is the process which controls the changes made to a software system and manages the different versions and releases of the evolving software products Librarian like function Manages the version number for each software product Changes made are controlled by a Change Control Process Can be managed manually or through the use of a

configuration management tool (Difficult to do manually, but it can be done.)

• Check In• Check Out• Read only for others

18

Change Control Process

Create InitialSections

Create/ModifyDraft

Review Draft(V&V)

Create Changes to Incorporate

Changes Needed In Document

DocumentApproved

Create Review Revise ReviewReview Approved

Time

...

Document in Production and Under Formal Change Control

Document in Production and Under Formal Change Control

Document Under Development and User Change Control

Document Under Development and User Change Control

19

RUP Guiding Principles

IterativeDevelopment

QualityCustomerValue

Attack riskAccommodatechange

Work togetherExecutablesoftware

Architecturebaseline

Component-baseddevelopment

Objectives

Strategies

Tactics

20

Why emphasis on executable software?

“Without this first pass, the project manager is at the mercy of human judgment. With this first-pass ‘simulation,’ he can at least perform experimental tests of some key hypotheses and scope down what remains for human judgment, which in the case of computer program design . . . is invariably and seriously optimistic”

21

RUP Guiding Principles

IterativeDevelopment

QualityCustomerValue

Attack riskAccommodatechange

Work togetherExecutablesoftware

Architecturebaseline

Component-baseddevelopment

Objectives

Strategies

Tactics

22

Architecture: Compelling need to stay ahead

Think of the architecture as an “application” to be used by systems developers

Architecture development and application development are related but separate activities that are staggered and occur in parallel:

Architecture

Application

Analyze

Analyze

Design

Design

Implement

Implement

Support

Support

23

Benefits of Architecture

Intellectual control Manage complexity Maintain integrity

Basis for reuse Component reuse Architecture reuse (patterns)

Basis for project management Focus on early iterations Planning Staffing

24

RUP Guiding Principles

IterativeDevelopment

QualityCustomerValue

Attack riskAccommodatechange

Work togetherExecutablesoftware

Architecturebaseline

Component-baseddevelopment

Objectives

Strategies

Tactics

25

Software Components

Definition:

A software component can be defined as a nontrivial piece of software, a module, a package, or a subsystem, that fulfills a clear function, has a clear boundary and can be integrated in a well-defined architecture. It is the physical realization of an abstraction in your design.

Definition:

A software component can be defined as a nontrivial piece of software, a module, a package, or a subsystem, that fulfills a clear function, has a clear boundary and can be integrated in a well-defined architecture. It is the physical realization of an abstraction in your design.

26

Components

Airplane

Private Data

Object Operations

Airplane

Private Data

Object Operations

Engines

Private Data

Object Operations

Engines

Private Data

Object Operations

Wings

Private Data

Object Operations

Wings

Private Data

Object Operations

Fuselage

Private Data

Object Operations

Fuselage

Private Data

Object Operations

Tail

Private Data

Object Operations

Tail

Private Data

Object Operations

COMPONENTS - Are objects that are combined into new objects without the use of inheritance

27

Benefits of Component Architectures Resilient

Meets current and future requirements

Improves extensibility Enables reuse Encapsulates system

dependencies Reuse proven solution elements

Reuse or customize components Select from Commercially-available

components Evolve existing software

incrementally

28

RUP “Hump” Diagram

29

Vertical (Static) Dimension

Core Process Disciplines(sometimes referred to generically as Workflows)

30

Horizontal (Dynamic) Dimension

One Development Cycle

Milestones

31

Vertical dimension deals with 4 key modeling elements

Roles (who) Activities (how) Artifacts (what) Workflows (when)

32

Roles

A role is played by an individual or a team.

Examples: Stakeholder Systems Analyst Designer Test Designer Project Manager

33

Role - ExampleRole:  Requirements SpecifierThe requirements specifier role details the specification of a part of the system's functionality by describing the Requirements aspect of one or several use cases and other supporting software requirements

StaffingA person acting as the requirements specifier needs good communication skills, both person-to-person and written. A requirements specifier must be familiar with all tools used to capture the requirements.

34

A piece of information that is produced, modified or used by a process.

Artifacts include the intangible products of the project

Examples: A use-case model Model element, e.g., use case A document such as a

business case Source code Executable code

Artifacts

35

Artifacts - Examples

36

Activities

An Activity is a unit of work assigned to a single role.

Examples: Find use cases and

actors Review the design Execute a

performance test Activities may be broken

down into steps

37

Workflows/Disciplines

Workflow/Discipline:• A sequence of

activities (and related roles and artifacts) that produces some result of observable value

• These are the 9 “core process disciplines” in the RUP product

• “Workflow” is the generic term – may be very detailed

38

Example of detailed workflow

Workflows show all activities you may go through to produce a particular set of artifacts.

A typical sequence of events when conducting the flow of work.

39

Additional Process Elements

Guidelines - are rules, recommendations, or heuristics that support activities and steps.

Templates - are models or prototypes of artifacts Example: Word template for Vision

Document Tool mentors - are a means of providing

guidance by showing you how to use a specific software tool (Similar to wizards)

Concepts - Separate material that describe some of the reasons and background on a specific topic

40

RUP Process Elements

AnalysisGuideline

Rose ToolMentor

Use-CaseTemplate

41

Topic Duration

RUP Overview 75 minutes

*** Break 15 minutes

Current Event Recaps (Asgn #5)15 minutes

RUP and Iterative Development 45 minutes

Asgn #1, Quiz #1, Term Project 30 minutes

Today’s Agenda

42

Topic Duration

RUP Overview 75 minutes

*** Break 15 minutes

Current Event Recaps (Asgn #5)15 minutes

RUP and Iterative Development 45 minutes

Asgn #1, Quiz #1, Term Project 30 minutes

Today’s Agenda

43

Topic Duration

RUP Overview 75 minutes

*** Break 15 minutes

Current Event Recaps (Asgn #5)15 minutes

RUP and Iterative Development 45 minutes

Asgn #1, Quiz #1, Term Project 30 minutes

Today’s Agenda

44

Iterative Development

45

Iterative Development

Each iteration: includes some or most of the development disciplines has a set of well-defined objectives produces a partial working implementation of the final

system builds on work of previous iterations to evolve and

refine the system until the final product is complete Early iterations have greater emphasis on

requirements and analysis and design Later iterations have greater emphasis on

implementation and testing

46

Anatomy of TerminologyProduct

Development Cycle

Phase

Iteration

Activity

is the result of

consists of

consists of

consists of

47

Iterative Development

Iterative/Evolutionary/Spiral life cycle models advocate multiple “threads” through the SDLC phases

A D IVersion 1

A D IVersion 2

A D IVersion 3

48

Product is the result of development cycles

Version 1

Development CycleVersion 2

Development CycleVersion 3

Development Cycle

Product delivered to users

49

Development cycle consists of phases

Development Cycle

Inception Elaboration Construction Transition

50

Phase consists of IterationsDevelopment Cycle

Elaboration

Iterationn Iterationn+1

51

Iteration consists of ActivitiesDevelopment Cycle

Elaboration

Iterationn+1IterationnR

A&D

C

T

R

A&D

C

T

Each phase contains one or more iterations

52

Each Iteration is a mini-waterfall

R

A&D

C

T

R

A&D

C

T

R

A&D

C

T

53

Horizontal (Dynamic) Dimension

One Development Cycle

Milestones

54

Milestones

• Exit criteria• Decide to proceed, abort, or change course• Measure progress, e.g.,

– use cases completed– features completed– performance requirements satisfied– risks eliminated– test cases passed

55

Iterative Advantages/Disadvantages

Advantages

Disadvantages

56 Copyright © 1997 by Rational Software Corporation

Risk

Transition

Inception

Elaboration

Construction

PreliminaryIteration

Architect.Iteration

Architect.Iteration

Devel. Iteration

Devel. Iteration

Devel. Iteration

TransitionIteration

TransitionIteration

Post-deployment

Waterfall

Time

Risk Profile: Iterative vs. Waterfall

Iterative

57

Topic Duration

RUP Overview 75 minutes

*** Break 15 minutes

Current Event Recaps (Asgn #5)15 minutes

RUP and Iterative Development 45 minutes

Asgn #1, Quiz #1, Term Project 30 minutes

Today’s Agenda

58

Kroll/Kruchten, Chapters 5, 7Assignment 2Assignment 5

Thong-ngam Burton

Topics for April 20