object-oriented analysis and design using the uml module 1: best practices of software engineering

42
Object-Oriented Analysis and Design Using the UML Module 1: Best Practices of Software Engineering

Post on 22-Dec-2015

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Object-Oriented Analysis and Design Using the UML Module 1: Best Practices of Software Engineering

Object-Oriented Analysis and Design Using the UML

Module 1: Best Practices of Software Engineering

Object-Oriented Analysis and Design Using the UML

Module 1: Best Practices of Software Engineering

Page 2: Object-Oriented Analysis and Design Using the UML Module 1: Best Practices of Software Engineering

Unified Software Practices v2001.03.00Copyright © 2000 Rational Software, all rights reserved 2

Objectives

Identify Steps for Understanding and Solving Software Engineering Problems

Explain the Six Best Practices Present the Rational Unified Process within

the context of the Six Best Practices

Page 3: Object-Oriented Analysis and Design Using the UML Module 1: Best Practices of Software Engineering

Unified Software Practices v2001.03.00Copyright © 2000 Rational Software, all rights reserved 3

Symptoms of Software Development Problems

User or business needs not metRequirements churnModules don’t integrateHard to maintainLate discovery of flawsPoor quality or end-user experiencePoor performance under loadNo coordinated team effortBuild-and-release issues

Page 4: Object-Oriented Analysis and Design Using the UML Module 1: Best Practices of Software Engineering

Unified Software Practices v2001.03.00Copyright © 2000 Rational Software, all rights reserved 4

Trace Symptoms to Root Causes

Needs not met

Requirements churn

Modules don’t fit

Hard to maintain

Late discovery

Poor quality

Poor performance

Colliding developers

Build-and-release

Insufficient requirements

Ambiguous communications

Brittle architectures

Overwhelming complexity

Undetected inconsistencies

Poor testing

Subjective assessment

Waterfall development

Uncontrolled change

Insufficient automation

Symptoms Root Causes Best Practices

Ambiguous communications

Undetected inconsistencies

Ambiguous communications

Undetected inconsistencies

Develop Iteratively

Manage Requirements

Use Component Architectures

Model Visually (UML)

Continuously Verify Quality

Manage Change

Model Visually (UML)

Continuously Verify Quality

Model Visually (UML)

Continuously Verify Quality

Modules don’t fit

Modules don’t fit

Page 5: Object-Oriented Analysis and Design Using the UML Module 1: Best Practices of Software Engineering

Unified Software Practices v2001.03.00Copyright © 2000 Rational Software, all rights reserved 5

Best PracticesProcess Made Practical

Best PracticesProcess Made Practical

Develop IterativelyManage Requirements

Use Component Architectures

Model Visually (UML)Continuously Verify Quality

Manage Change

Develop IterativelyManage Requirements

Use Component Architectures

Model Visually (UML)Continuously Verify Quality

Manage Change

Practice 1: Develop Iteratively

Page 6: Object-Oriented Analysis and Design Using the UML Module 1: Best Practices of Software Engineering

Unified Software Practices v2001.03.00Copyright © 2000 Rational Software, all rights reserved 6

Waterfall Development Characteristics

Delays confirmation of critical risk resolution

Measures progress by assessing work-products that are poor predictors of time-to-completion

Delays and aggregates integration and testing

Precludes early deployment

Frequently results in major unplanned iterations

Code and unit test

Design

Subsystem integration

System test

Waterfall Process

Requirements analysis

Page 7: Object-Oriented Analysis and Design Using the UML Module 1: Best Practices of Software Engineering

Unified Software Practices v2001.03.00Copyright © 2000 Rational Software, all rights reserved 7

Iterative Development Produces an Executable

InitialPlanning

Planning

Requirements

Analysis & Design

Implementation

Deployment

Test

Evaluation

ManagementEnvironment

Each iteration results in an executable release

Page 8: Object-Oriented Analysis and Design Using the UML Module 1: Best Practices of Software Engineering

Unified Software Practices v2001.03.00Copyright © 2000 Rational Software, all rights reserved 8

Risk Profiles

Risk ReductionRisk ReductionRisk ReductionRisk Reduction

TimeTime

Iterative RiskIterative RiskWaterfall RiskWaterfall Risk

Ris

kR

isk

Page 9: Object-Oriented Analysis and Design Using the UML Module 1: Best Practices of Software Engineering

Unified Software Practices v2001.03.00Copyright © 2000 Rational Software, all rights reserved 9

Practice 2: Manage Requirements

Best PracticesProcess Made Practical

Best PracticesProcess Made Practical

Develop IterativelyManage Requirements

Use Component Architectures

Model Visually (UML)Continuously Verify Quality

Manage Change

Develop IterativelyManage Requirements

Use Component Architectures

Model Visually (UML)Continuously Verify Quality

Manage Change

Page 10: Object-Oriented Analysis and Design Using the UML Module 1: Best Practices of Software Engineering

Unified Software Practices v2001.03.00Copyright © 2000 Rational Software, all rights reserved 10

Requirements Management

Making sure youSolve the right problemBuild the right system

By taking a systematic approach toeliciting organizing documenting and managing

the changing requirements of a software application.

Page 11: Object-Oriented Analysis and Design Using the UML Module 1: Best Practices of Software Engineering

Unified Software Practices v2001.03.00Copyright © 2000 Rational Software, all rights reserved 11

Aspects of Requirements Management

Analyze the Problem Understand User Needs Define the System Manage Scope Refine the System Definition Build the Right System

Page 12: Object-Oriented Analysis and Design Using the UML Module 1: Best Practices of Software Engineering

Unified Software Practices v2001.03.00Copyright © 2000 Rational Software, all rights reserved 12

Problem

Solution Space

Problem Space

Needs

Features

Use Cases and Software

Requirements

Test Procedures Design User

Docs

The The Product Product To Be To Be BuiltBuilt

Traceability

Map of the Territory

Page 13: Object-Oriented Analysis and Design Using the UML Module 1: Best Practices of Software Engineering

Unified Software Practices v2001.03.00Copyright © 2000 Rational Software, all rights reserved 13

Practice 3: Use Component Architectures

Best PracticesProcess Made Practical

Best PracticesProcess Made Practical

Develop IterativelyManage Requirements

Use Component ArchitecturesModel Visually (UML)

Continuously Verify QualityManage Change

Develop IterativelyManage Requirements

Use Component ArchitecturesModel Visually (UML)

Continuously Verify QualityManage Change

Page 14: Object-Oriented Analysis and Design Using the UML Module 1: Best Practices of Software Engineering

Unified Software Practices v2001.03.00Copyright © 2000 Rational Software, all rights reserved 14

Resilient, Component-Based Architectures

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

Component-based Reuse or customize components Select from commercially-available components

Evolve existing software incrementally

Page 15: Object-Oriented Analysis and Design Using the UML Module 1: Best Practices of Software Engineering

Unified Software Practices v2001.03.00Copyright © 2000 Rational Software, all rights reserved 15

Purpose of a Component-Based Architecture

Basis for reuse Component reuse Architecture reuse

Basis for project management Planning Staffing Delivery

Intellectual control Manage complexity Maintain integrity

System-System-softwaresoftware

MiddlewareMiddleware

Business-Business-specificspecific

Application-Application-specificspecific

Component-based Architecture with layers

Page 16: Object-Oriented Analysis and Design Using the UML Module 1: Best Practices of Software Engineering

Unified Software Practices v2001.03.00Copyright © 2000 Rational Software, all rights reserved 16

Practice 4: Model Visually (UML)

Best PracticesProcess Made Practical

Best PracticesProcess Made Practical

Develop IterativelyManage Requirements

Use Component Architectures

Model Visually (UML)Continuously Verify Quality

Manage Change

Develop IterativelyManage Requirements

Use Component Architectures

Model Visually (UML)Continuously Verify Quality

Manage Change

Page 17: Object-Oriented Analysis and Design Using the UML Module 1: Best Practices of Software Engineering

Unified Software Practices v2001.03.00Copyright © 2000 Rational Software, all rights reserved 17

Why Model Visually?

Capture structure and behavior Show how system elements fit together Keep design and implementation consistent Hide or expose details as appropriate Promote unambiguous communication

UML: one language for all practitioners

Page 18: Object-Oriented Analysis and Design Using the UML Module 1: Best Practices of Software Engineering

Unified Software Practices v2001.03.00Copyright © 2000 Rational Software, all rights reserved 18

Visual Modeling with Unified Modeling Language

ActivityDiagrams

Models

Dynamic Diagrams

Static Diagrams

Multiple views Precise syntax and

semantics

SequenceDiagrams

CollaborationDiagrams

StatechartDiagrams

DeploymentDiagrams

ComponentDiagrams

ObjectDiagrams

ClassDiagrams

Use-CaseDiagrams

Page 19: Object-Oriented Analysis and Design Using the UML Module 1: Best Practices of Software Engineering

Unified Software Practices v2001.03.00Copyright © 2000 Rational Software, all rights reserved 19

Visual Modeling Using UML Diagrams

Actor A

Use Case 1

Use Case 2

Actor B

user : Clerk

mainWnd : MainWnd

fileMgr : FileMgr

repository : Repositorydocument : Document

gFile : GrpFile

9: sortByName ( )

L1: Doc view request ( )

2: fetchDoc( )

5: readDoc ( )

7: readFile ( )

3: create ( )

6: fillDocument ( )

4: create ( )

8: fillFile ( )

Window95

¹®¼ °ü¸®

Ŭ¶óÀ̾ðÆ®.EXE

Windows

NT

¹®¼ °ü¸® ¿£Áø.EXE

WindowsNT

Windows95

Solaris

ÀÀ¿ë¼ ¹ö.EXE

AlphaUNIX

IBM

Mainframe

µ¥ÀÌŸº£À̽º¼ ¹ö

Windows95

¹®¼ °ü¸® ¾ÖÇø´Document

FileManager

GraphicFile

File

Repository DocumentList

FileList

user

mainWnd fileMgr : FileMgr

repositorydocument : Document

gFile

1: Doc view request ( )

2: fetchDoc( )

3: create ( )

4: create ( )

5: readDoc ( )

6: fillDocument ( )

7: readFile ( )

8: fillFile ( )

9: sortByName ( )

ƯÁ¤¹®¼ ¿¡ ́ ëÇÑ º¸±â¸¦ »ç¿ëÀÚ°¡ ¿äûÇÑ´Ù.

È ÀÏ°ü̧ ®ÀÚ´Â Àоî¿Â ¹®¼ ÀÇ Á¤º¸¸¦ ÇØ´ç ¹®¼

°´Ã¼¿¡ ¼³Á¤À» ¿äûÇÑ´Ù.

È ̧é °´Ã¼´Â ÀоîµéÀÎ °´Ã¼µé¿¡ ´ëÇØ ÀÌ̧ §º°·Î

Á¤·ÄÀ» ½ÃÄÑ È ̧é¿¡ º¸¿©ÁØ´Ù.

Forward and Reverse Engineering

TargetSystem

Openning

Writing

ReadingClosing

add file [ numberOffile==MAX ] / flag OFF

add file

close file

close fileUse Case 3

Use-casediagram Class diagram

Collaboration diagram

Sequence diagram

Component diagram

Statechartdiagram

GrpFile

read( )open( )create( )fillFile( )

rep

Repository

name : char * = 0

readDoc( )readFile( )

(from Persistence)

FileMgr

fetchDoc( )sortByName( )

DocumentList

add( )delete( )

Document

name : intdocid : intnumField : int

get( )open( )close( )read( )sortFileList( )create( )fillDocument( )

fList

1

FileList

add( )delete( )

1

File

read( )

read() fill the code..

Deployment diagram

Page 20: Object-Oriented Analysis and Design Using the UML Module 1: Best Practices of Software Engineering

Unified Software Practices v2001.03.00Copyright © 2000 Rational Software, all rights reserved 20

Practice 5: Continuously Verify Quality

Best PracticesProcess Made Practical

Best PracticesProcess Made Practical

Develop IterativelyManage Requirements

Use Component Architectures

Model Visually (UML)ContinuouslyVerify Quality

Manage Change

Develop IterativelyManage Requirements

Use Component Architectures

Model Visually (UML)ContinuouslyVerify Quality

Manage Change

Page 21: Object-Oriented Analysis and Design Using the UML Module 1: Best Practices of Software Engineering

Unified Software Practices v2001.03.00Copyright © 2000 Rational Software, all rights reserved 21

Continuously Verify Your Software’s Quality

CostCost

TransitionConstructionElaborationInception

Software problems are100 to 1000 times more costly

to find and repair after deployment

Software problems are100 to 1000 times more costly

to find and repair after deployment

Cost to Repair Software

Cost of Lost Opportunities

Cost of Lost Customers

Cost to Repair Software

Cost of Lost Opportunities

Cost of Lost Customers

Page 22: Object-Oriented Analysis and Design Using the UML Module 1: Best Practices of Software Engineering

Unified Software Practices v2001.03.00Copyright © 2000 Rational Software, all rights reserved 22

Test All Dimensions of Software Quality

FunctionalityFunctionality

ReliabilityReliability

PerformancePerformance

Does my applicationdo what’s required?Does my applicationdo what’s required?

Does the systemperform under production load?

Does the systemperform under production load?

Verification of eachusage scenario

Verification of eachusage scenario

Verification of sustained application operation

Verification of sustained application operation

Test performance under expected and worst-case load

Test performance under expected and worst-case load

Does my applicationrespond acceptably?Does my applicationrespond acceptably?

Page 23: Object-Oriented Analysis and Design Using the UML Module 1: Best Practices of Software Engineering

Unified Software Practices v2001.03.00Copyright © 2000 Rational Software, all rights reserved 23

UML Model and

Implementation

Tests

Iteration 1Iteration 1

Test Suite 1Test Suite 1

Iteration 2Iteration 2

Test Suite 2Test Suite 2

Iteration 4Iteration 4

Test Suite 4Test Suite 4

Iteration 3Iteration 3

Test Suite 3Test Suite 3

Test Each Iteration

Page 24: Object-Oriented Analysis and Design Using the UML Module 1: Best Practices of Software Engineering

Unified Software Practices v2001.03.00Copyright © 2000 Rational Software, all rights reserved 24

Practice 6: Manage Change

Best PracticesProcess Made Practical

Best PracticesProcess Made Practical

Develop IterativelyManage Requirements

Use Component Architectures

Model Visually (UML)Continuously Verify Quality

Manage Change

Develop IterativelyManage Requirements

Use Component Architectures

Model Visually (UML)Continuously Verify Quality

Manage Change

Page 25: Object-Oriented Analysis and Design Using the UML Module 1: Best Practices of Software Engineering

Unified Software Practices v2001.03.00Copyright © 2000 Rational Software, all rights reserved 25

ALERTREPORT

WorkspaceManagement

Process Integration

Parallel Development

Build Management

CM is more than just check-in and check-out

What Do You Want to Control?

Changes to enable iterative development Secure workspaces for each developer Automated integration/build management Parallel development

Page 26: Object-Oriented Analysis and Design Using the UML Module 1: Best Practices of Software Engineering

Unified Software Practices v2001.03.00Copyright © 2000 Rational Software, all rights reserved 26

Aspects of a CM System

Change Request Management Configuration Status Reporting Configuration Management (CM) Change Tracking Version Selection Software Manufacture

Page 27: Object-Oriented Analysis and Design Using the UML Module 1: Best Practices of Software Engineering

Unified Software Practices v2001.03.00Copyright © 2000 Rational Software, all rights reserved 27

Unified Change Management

Management across the lifecycle System Project Management

Activity-Based Management Tasks Defects Enhancements

Progress Tracking Charts Reports

Page 28: Object-Oriented Analysis and Design Using the UML Module 1: Best Practices of Software Engineering

Unified Software Practices v2001.03.00Copyright © 2000 Rational Software, all rights reserved 28

Best Practices Reinforce Each Other

Validates architectural decisions early on

Addresses complexity of design/implementation incrementally

Measures quality early and often

Evolves baselines incrementally

Ensures users involved as requirements evolve

Best PracticesBest Practices

Develop Iteratively

Manage Requirements

Use Component Architectures

Model Visually (UML)

Continuously Verify Quality

Manage Change

Develop Iteratively

Manage Requirements

Use Component Architectures

Model Visually (UML)

Continuously Verify Quality

Manage Change

Page 29: Object-Oriented Analysis and Design Using the UML Module 1: Best Practices of Software Engineering

Unified Software Practices v2001.03.00Copyright © 2000 Rational Software, all rights reserved 29

Rational Unified Process Implements Best Practices

Best PracticesProcess Made Practical Best Practices

Process Made Practical

Develop Iteratively

Manage Requirements

Use Component Architectures

Model Visually (UML)

Continuously Verify Quality

Manage Change

Develop Iteratively

Manage Requirements

Use Component Architectures

Model Visually (UML)

Continuously Verify Quality

Manage Change

Page 30: Object-Oriented Analysis and Design Using the UML Module 1: Best Practices of Software Engineering

Unified Software Practices v2001.03.00Copyright © 2000 Rational Software, all rights reserved 30

Achieving Best Practices

Iterative Approach Guidance for activities

and work products (artifacts)

Process focus on architecture

Use cases which drive design and implementation

Models which abstract the system

Implementation

Test

Analysis & Design

Requirements

Configuration &Change Management

Page 31: Object-Oriented Analysis and Design Using the UML Module 1: Best Practices of Software Engineering

Unified Software Practices v2001.03.00Copyright © 2000 Rational Software, all rights reserved 31

A Team-Based Definition of Process

A process defines Who is doing What, When and How to reach a certain goal.

New or changed

requirements

New or changed

system

Software EngineeringProcess

Page 32: Object-Oriented Analysis and Design Using the UML Module 1: Best Practices of Software Engineering

Unified Software Practices v2001.03.00Copyright © 2000 Rational Software, all rights reserved 32

InceptionInception ElaborationElaboration ConstructionConstruction TransitionTransition

Process Structure - Lifecycle Phases

The Rational Unified Process has four phases: Inception - Define the scope of project Elaboration - Plan project, specify features, baseline

architecture Construction - Build the product Transition - Transition the product into end user

community

time

Page 33: Object-Oriented Analysis and Design Using the UML Module 1: Best Practices of Software Engineering

Unified Software Practices v2001.03.00Copyright © 2000 Rational Software, all rights reserved 33

InceptionInception ElaborationElaboration ConstructionConstruction TransitionTransition

Phase Boundaries Mark Major Milestones

Lifecycle Objective Milestone

Lifecycle Architecture

Milestone

Initial Operational Capability Milestone

Product Release

time

Page 34: Object-Oriented Analysis and Design Using the UML Module 1: Best Practices of Software Engineering

Unified Software Practices v2001.03.00Copyright © 2000 Rational Software, all rights reserved 34

Iterations and Phases

An iteration is a distinct sequence of activities based on an established plan and evaluation criteria, resulting in an executable release (internal or external).

PreliminaryPreliminaryIterationIteration

Architect.Architect.IterationIteration

Architect.Architect.IterationIteration

Devel. Devel. IterationIteration

Devel. Devel. IterationIteration

Devel. Devel. IterationIteration

TransitionTransitionIterationIteration

TransitionTransitionIterationIteration

InceptionInception ElaborationElaboration ConstructionConstruction TransitionTransition

Minor Milestones: Releases

Page 35: Object-Oriented Analysis and Design Using the UML Module 1: Best Practices of Software Engineering

Unified Software Practices v2001.03.00Copyright © 2000 Rational Software, all rights reserved 35

Workflows Produce Models

OK

OK

Fail

R ealized By

Im plem entedBy

Verified By

Im plem entationM odel

Test M odelD esign M odel

U se-C ase M odel

Models

Core Process Workflows Test

Im plem en-tation

Analysis &D esign

R equirem ents

Business U se-C ase M odel

Business M odeling

Business O bject M odel

BBB

B

R ealized By

Autom atedBy

Page 36: Object-Oriented Analysis and Design Using the UML Module 1: Best Practices of Software Engineering

Unified Software Practices v2001.03.00Copyright © 2000 Rational Software, all rights reserved 36

Bringing It All Together: The Iterative Approach

Workflows group activities logically

In an iteration, you walk through all workflows

Page 37: Object-Oriented Analysis and Design Using the UML Module 1: Best Practices of Software Engineering

Unified Software Practices v2001.03.00Copyright © 2000 Rational Software, all rights reserved 37

Workflows Guide Iterative Development Business Modeling:

Workflow Details

Requirements:

Workflow Details

Page 38: Object-Oriented Analysis and Design Using the UML Module 1: Best Practices of Software Engineering

Unified Software Practices v2001.03.00Copyright © 2000 Rational Software, all rights reserved 38

Notation

Role

Activity

Artifact

Detail a Use Case

Use-Case Package

Use Case

responsible for

Requirements Specifier

A unit of work a role may be asked to perform

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

A role that may be played by an individual or a team in the development organization

Page 39: Object-Oriented Analysis and Design Using the UML Module 1: Best Practices of Software Engineering

Unified Software Practices v2001.03.00Copyright © 2000 Rational Software, all rights reserved 39

Resource

Paul

Mary

Joe

Sylvia

Stefan

Roles Are Used for Resource Planning

Each individual in the project is assigned to one or several roles

Role

Designer

Requirements Specifier

System Analyst

Implementer

Architect

Activities

Define Operations

Detail a Use Case

Find Actors and Use Cases

Perform Unit Tests

Identify Design Mechanisms

Page 40: Object-Oriented Analysis and Design Using the UML Module 1: Best Practices of Software Engineering

Unified Software Practices v2001.03.00Copyright © 2000 Rational Software, all rights reserved 40

Roles Perform Activities and Produce Artifacts

Example-

Requirements:

Workflow Detail:

Define the System

C apture a C om m on

Vocabulary

SystemAnalyst

F ind Actors and Use Cases

Use-Case Model(re fined)

Use-CaseModeling

Guidelines

SupplementarySpecifications

Glossary(refined)

Glossary

StakeholderRequests

Use-Case Model

M anage D ependencies

RequirementsManagement

Plan

Vision

Business Use-Case Model

Business Object Model

RequirementsAttributes

RequirementsAttributes

(refined)

D evelopVision

BusinessRules

Vision(refined)

Use Case(outlined)

Page 41: Object-Oriented Analysis and Design Using the UML Module 1: Best Practices of Software Engineering

Unified Software Practices v2001.03.00Copyright © 2000 Rational Software, all rights reserved 41

Overview of Rational Unified Process Concepts

Page 42: Object-Oriented Analysis and Design Using the UML Module 1: Best Practices of Software Engineering

Unified Software Practices v2001.03.00Copyright © 2000 Rational Software, all rights reserved 42

Summary: Best Practices of Software Engineering

Best Practices guide software engineering by addressing root causes

Best Practices reinforce each other Process guides a team on what to do, how

to do it, and when to do it The Rational Unified Process is a means of

achieving Best Practices