Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 1...

62
Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level SE470 - Rational Unified Process Overview Excellence in Software Engineering Repeatable Level Defined Level Managed Level Initial Level Optimized Level Larry Dribin, Ph.D. - DePaul University Phone: (847)807-7390 - Fax: (847)459-1650 Email: [email protected] Copyright 2001 - Larry Dribin, Ph.D. - v1.1 4-21-02
  • date post

    21-Dec-2015
  • Category

    Documents

  • view

    214
  • download

    0

Transcript of Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt Software Engineering SE470 - RUP - 1...

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 1

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

SE470 - Rational Unified Process Overview

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Larry Dribin, Ph.D. - DePaul University

Phone: (847)807-7390 - Fax: (847)459-1650

Email: [email protected]

Copyright 2001 - Larry Dribin, Ph.D. - v1.1 4-21-02

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 2

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Our Goal is to fix the Root Causes through the use of Good Software Engineering Practices

Definition of Software Engineering:

“The establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines.”

Fritz Bauer -1969

Sound Engineering principles consist of: Processes - Procedures and Life Cycles Techniques - or Methods Practices - Repeated performances of activities Tools - to support Processes, Techniques and Practices

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 3

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Software Product

The Software Engineering Process

Requirements

User Team (Suppliers)Expectations• Features• Cost• Benefit• Delivery Dates• Quality

Users Team(Customer)Perceptions• Features• Cost• Benefit• Delivery Dates• Quality

SoftwareEngineering

Process

Software Development Team

Processes, Techniques & Tools

PerformanceMeasures

Software is developed in Teams:

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 4

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Why have a Software Development Process?

Provides a guideline for software development Reduces risk and increases predictability Basis for improvement Captures and institutionalizes best practices

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 5

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Best Practices

“An organized and documented set of principles, methods and processes that increase quality and productivity of software development.”

“An organized and documented set of principles, methods and processes that increase quality and productivity of software development.”

Source: Rational - “Principles of Managing Iterative Development v2.0”

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 6

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Rational’s View of Best Practices

The Best Practices Reinforce Each Other and tools are used to guide and support the best practices.

The Best Practices Reinforce Each Other and tools are used to guide and support the best practices.

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 7

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

The Rational Unified Process

Developed through the combined efforts of: Grady Booch Ivar Jacobson James Rumbaugh

Features Based on the Unified Modeling Language Iterative Architecture-centric Use-case driven Risk driven

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 8

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Rational Unified Process

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 9

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Rational Objectory Process 4.1

Rational Approach

Rational Unified Process 5.5

Rational Unified Process 5.0

Rational Objectory Process 4.1

Rational Unified Process 2000

Objectory Process 3.8

The History of the Rational Unified Process

2000

1999

1998

1997

1996

1995

UML v1.0

UML v1.1

UML v1.3

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 10

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

RUP Model Notation

A role played by an individual or a

team.

A unit of work that a worker may

perform.

A piece of information that

is produced, modified or used

by a process.

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 11

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Workers

A Worker is a role played by an individual or a team.

Example: Stakeholder Systems Analyst Designer Test Designer Project Manager

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 12

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Artifacts (Work Products)

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

Artifacts are the intangible products of the project Examples:

A use-case model A document such as a business case Source Code Executable code

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 13

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

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

Artifacts are the intangible products of the project

Examples: A use-case model A document such as a

business case Source Code Executable code

Artifacts

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 14

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Artifacts - Examples

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 15

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Activities

An Activity is a unit of work that a worker may perform.

Examples: Plan an interaction performed by

Project Manager Find use cases and actors Review the design Execute a performance test

Activities are typically broken into steps of which there are three main Categories:

Thinking steps Performing steps Reviewing steps

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 16

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Activities

Example decomposition for Activity: “Find use cases and actors” Find actors Find use cases Describe how actors and use cases interact Package use cases and actors Present the use-case model in use-case diagram Develop a survey of the use-case model Evaluate your results

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 17

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Additional Process Elements

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

Templates - are models or prototypes of artifacts Ex. Word template for Vision Document

Tool mentors - are a means of providing guidance by showing you how tuo use a specific software tool (Similary to wizards

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

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 18

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Software Product

Rational’s Nomenclature of the Software Engineering Process

Requirements

User Team (Suppliers)Expectations• Features• Cost• Benefit• Delivery Dates• Quality

Users Team(Customer)Perceptions• Features• Cost• Benefit• Delivery Dates• Quality

SoftwareEngineering

Process(Workflows)

Software Development Team

Processes, Techniques & Tools

PerformanceMeasures(Activities)

Software is developed in Teams:

Workers

Workers

Workers

ArtifactsArtifacts

Artifacts

Activities

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 19

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

The Rational Unified Process

Basic phases Inception Elaboration Construction Transition

Core Workflows Engineering Workflows

– Business Modeling– Requirements Definition– Analysis and Design– Implementation– Test– Deployment

Supporting– Project Management– Configuration and change management– Environment

Iterations

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 20

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Rational Unified Process Lifecycle Phases

Inception - defines the scope of the project

Elaboration - plans the project, develops a baseline architecture and specifies features

Construction - builds the project

Transition - transitions the project into the end user community

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 21

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Workflows

A Workflow is a sequential description of the activities that produces a result of value

The Nine Core Workflows

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 22

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Workflow Details for Requirements Overview

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 23

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Rational Unified Process

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 24

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Rational’s View of Best Practices

The Best Practices Reinforce Each Other and tools are used to guide and support the best practices.

The Best Practices Reinforce Each Other and tools are used to guide and support the best practices.

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 25

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Rational’s View of Best Practices

Use Iterative Development Manage Requirements Use Component Architectures Model Visually Continuously Verify Quality Control Change

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 26

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Software Lifecycles

Fundamental process - the Development Lifecycle Waterfall Iterative

– Spiral– Evolutionary– Rational Unified Process (RUP) - Unified Development Process– Extreme Programming

Define the software development process in detail Often described at as a Methodology

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 27

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Waterfall model

Requirementsdefinition

System andsoftware design

Implementationand unit testing

Integration andsystem testing

Operation andmaintenance

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 28

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Issues with the Waterfall Life Cycle

Real projects do not appear to follow the Waterfall life cycle - they appear to iterate.

Requirements must be defined up front which causes problems due to: Users often do not know what they want. Most Analysis and Design Techniques do not provide a good clear

representation of the solution for the user.

The customer must wait a long time for the first deliverable. The “Large Specifications” produced are hard to use and hard to

validate.

The biggest drawback of the waterfall model is the difficulty of accommodating change after the process is underway

The biggest drawback of the waterfall model is the difficulty of accommodating change after the process is underway

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 29

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Waterfall Advantages/Disadvantages

Advantages Well defined Can easily review & revise Easy to see status Logical Understandable Easy to estimate Used as a component of iterative life

cycles

Disadvantages You can’t know everything initially

and late discovery increase costs and risks

Rigid / Brittle for large projects Difficult to handle changes in

requirements Lot of overhead Must define complete problem at the

start

Waterfall life cycle best used for well defined problems and as a component of iterative life cycles.

Waterfall life cycle best used for well defined problems and as a component of iterative life cycles.

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 30

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Iterative Models – the Spiral Life Cycle

Riskanalysis

Riskanalysis

Riskanalysis

Riskanalysis Proto-

type 1

Prototype 2Prototype 3

Opera-tionalprotoype

Concept ofOperation

Simulations, models, benchmarks

S/Wrequirements

Requirementvalidation

DesignV&V

Productdesign Detailed

design

CodeUnit test

IntegrationtestAcceptance

testService Develop, verifynext-level product

Evaluate alternativesidentify, resolve risks

Determine objectivesalternatives and

constraints

Plan next phase

Integrationand test plan

Developmentplan

Requirements planLife-cycle plan

REVIEW

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 31

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Phases of the Spiral Model

Objective setting Specific objectives for the project phase are identified

Risk assessment and reduction Key risks are identified, analyzed and information is sought to reduce these

risks Development and validation

An appropriate model is chosen for the next phase of development. Planning

The project is reviewed and plans drawn up for the next round of the spiral

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 32

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Iterative - Evolutionary Life Cycle

Iterative life cycle best used for problems that are not well understood. Iterative life cycle best used for problems that are not well understood.

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 33

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

The Rational Unified Process

Iterations and Releases

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 34

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Iterations and Phases

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 35

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Iterative Development

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 36

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Each Iteration, follows a mini-Waterfall

Selected Scenarios

ProductRelease

The Iteration Life Cycle is a mini-waterfall.The Iteration Life Cycle is a mini-waterfall.

AD - Analysis & Design

RD - Requirements Definition

IM - Implementation

DE - Deployment

BM - Business Modeling

TE - Testing

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 37

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Iterative Advantages/Disadvantages

Advantages Resolves risks before making large

investiments Enables early user feedback Makes testing and integration

continuous Focuses project on short-term

objectives Makes partial deployments possible

Disadvantages Waterfall life cycle is more familiar

since it is similar to hardware life cycle

Iterative Life Cycles difficult to estimate and manage.

Only recently used on real projects - therefore little track record

Iterative life cycle best used for problems that are not well understood. Iterative life cycle best used for problems that are not well understood.

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 38

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Rational’s View of Best Practices

Use Iterative Development Manage Requirements Use Component Architectures Model Visually Continuously Verify Quality Control Change

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 39

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Manage Requirements

A systematic approach to eliciting organizing documenting and managing

the changing requirements of the software application

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 40

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

The System is a Model of the Real World

Real World

System

Inputs Outputs

Computer

System Model of

Real World

Inputs Outputs

Requirements Definition Goal:

Discover, define and document the goals of the system model so that we can quickly develop computer software which accurately models the real world system.

Requirements Definition Goal:

Discover, define and document the goals of the system model so that we can quickly develop computer software which accurately models the real world system.

However, real world systems are constantly changing and adapting to changes in other real world systems with which they interact.

Therefore, systems which model the real world must constantly change, to accurately represent the real world system in real time.

However, real world systems are constantly changing and adapting to changes in other real world systems with which they interact.

Therefore, systems which model the real world must constantly change, to accurately represent the real world system in real time.

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 41

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Requirements Management (Engineering) Activities

Requirements Analysis Discover System Requirements Outline Requirements

Requirements Definition Describe the system from the user’s point of view

Requirements Specification Develop a detailed and precise description of the system requirements from

the software developer and users point of view This document often acts as a basis for a contract between the the software

developer and the client Describe the Acceptance Testing requirements for the system

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 42

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Requirements Management Engineering Activities

Develop As Is Model:

1. Study Current System & its Functions

2. Develop Model of Current System

3. Document Current System - As Is Model

Develop (Design) To Be Model:

4. Determine Problems to be Corrected and any New Requirements

5. Develop Model of Future System =

Current System Function + Problems + New Features

6. Document Future System - To Be Model

7. Validate that “To Be” model solves problems identifiedin “As Is” Analysis

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 43

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Requirements Analysis Techniques

Variety of Techniques can be used to determine (capture) the requirements:

Individual Interviews Group Interviews Facilitated Workshops Review Current System DILO Use Cases Task and Work Flow Analysis Observation Storyboards Brainstorming Sessions JAD - Joint Applications Development (Formal Joint User / Developer

Analysis & Design) No Magic Solutions No Magic Questions

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 44

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Managing Changing Requirements

Establish a Baseline Evaluate changes and determine their impact Track and document tradeoffs and decisions

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 45

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Rational’s View of Best Practices

Use Iterative Development Manage Requirements Use Component Architectures Model Visually Continuously Verify Quality Control Change

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 46

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

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.

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 47

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

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

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 48

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Features of Component Architectures

Resilient Meets current and future requirements Improves extensibility Enables reuse Encapsulates system dependencies

Component based Reuse or customize components Select form Commercially-available components Evolve existing software incrementally

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 49

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

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

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 50

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Rational’s View of Best Practices

Use Iterative Development Manage Requirements Use Component Architectures Model Visually Continuously Verify Quality Control Change

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 51

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Model Visually - Use the UML

Capture the structure and behavior of architectures and components

Show how the elements of the system fit together

Maintain consistency between a design and its implementation

Promote unambiguous communication

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 52

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

The Unified Modeling Language

Developed through the combined efforts of: Grady Booch Ivar Jacobson James Rumbaugh

Is a language for: Visualizing Specifying Constructing Documenting

The artifacts of a software-intensive system.

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 53

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

History of the UML

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 54

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

UML Components

Multiple Views Precise Syntax and semantics Include

Use-Case Diagrams Class Diagrams Object Diagrams Component Diagrams Deployment Diagrams Activity Diagrams State Chart Diagrams Collaboration Diagrams Sequence Diagrams

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 55

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Rational’s View of Best Practices

Use Iterative Development Manage Requirements Use Component Architectures Model Visually Continuously Verify Quality Control Change

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 56

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

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

Therefore, achieving quality is not 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).

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 57

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

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

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 58

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Rational’s View of Best Practices

Use Iterative Development Manage Requirements Use Component Architectures Model Visually Continuously Verify Quality Control Change

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 59

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

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

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 60

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

Controlling Parallel Development

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

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 61

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

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

Copyright 2002 - Larry Dribin, Ph.D. SE470_RUP_v1_1.ppt

Software Engineering

SE470 - RUP - 62

Excellence in Software Engineering

Repeatable Level

Defined Level

Managed Level

Initial Level

Optimized Level

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