mastering ooa/ood with uml. contents introduction requirements overview ooaood

30
Mastering OOA/OOD Mastering OOA/OOD with UML with UML

Upload: linda-melton

Post on 22-Dec-2015

229 views

Category:

Documents


0 download

TRANSCRIPT

Mastering OOA/OOD Mastering OOA/OOD with UMLwith UML

ContentsContents

IntroductionIntroduction

Requirements OverviewRequirements Overview

OOAOOA

OODOOD

IntroductionIntroduction

Software development problemsSoftware development problems

Six best practicesSix best practices

IntroductionIntroduction

ToolsTools Rational Object-oriented Software Rational Object-oriented Software

Engineering (ROSE)Engineering (ROSE)

Language Language Don’t careDon’t care

Basic RequirementBasic Requirement Coding in one or more OO LanguageCoding in one or more OO Language

Symptoms of Software Symptoms of Software Development ProblemsDevelopment Problems

User or business needs not metUser or business needs not metRequirements not addressedRequirements not addressedModules not integratingModules not integratingDifficulties with maintenanceDifficulties with maintenanceLate discovery of flawsLate discovery of flawsPoor quality of end-user experiencePoor quality of end-user experiencePoor performance under loadPoor performance under loadNo coordinated team effortNo coordinated team effortBuild-and-release issuesBuild-and-release issues

Trace Symptoms to Root CausesTrace Symptoms to Root Causes

SymptomsSymptoms

Needs not metNeeds not met

Requirement churnRequirement churn

Modules do not fitModules do not fit

Hard to maintainHard to maintain

Late discoveryLate discovery

Poor qualityPoor quality

Poor performancePoor performance

Colliding developersColliding developers

Build-and-releaseBuild-and-release

Root CausesRoot Causes

Insufficient requirementsInsufficient requirements

Ambiguous communicationsAmbiguous communications

Brittle architecturesBrittle architectures

Overwhelming complexityOverwhelming complexity

Undetected inconsistenciesUndetected inconsistencies

Poor testingPoor testing

Subjective assessmentSubjective assessment

Waterfall developmentWaterfall development

Uncontrolled changeUncontrolled change

Insufficient automationInsufficient automation

Best Practices

Develop Iteratively

Manage Requirement

Use Component Architectures

Model Visually

Continuously Verify Quality

Manage Change

Iterative DevelopmentIterative Development

BenefitsBenefits Resolve major risks earlyResolve major risks early Enable user feedbackEnable user feedback Make testing and integration continuousMake testing and integration continuous Focus on project short-term objective Focus on project short-term objective

milestonesmilestones Make possible deployment of partial Make possible deployment of partial

implementationsimplementations

Requirements ManagementRequirements Management

Making sure youMaking sure you Solve the right problemSolve the right problem Build the right systemBuild the right system

By taking a systematic approach toBy taking a systematic approach to ElicitingEliciting OrganizingOrganizing DocumentingDocumenting ManagingManaging

the changing requirements of a software the changing requirements of a software applicationapplication

Aspects of Requirement Aspects of Requirement ManagementManagement

Analyze the problemAnalyze the problem

Understand User NeedsUnderstand User Needs

Define the systemDefine the system

Manage scopeManage scope

Refine the system definitionRefine the system definition

Manage changing requirementManage changing requirement

Component-Based ArchitectureComponent-Based Architecture

ResilientResilient Meets current and future requirementsMeets current and future requirements Improves extensibilityImproves extensibility Enables reuseEnables reuse Encapsulates system dependenciesEncapsulates system dependencies

Component-basedComponent-based Reuse or customize componentsReuse or customize components Select from commercially available componentsSelect from commercially available components Evolve existing software incrementallyEvolve existing software incrementally

Use UMLUse UML

Captures structure and behaviorCaptures structure and behavior

Shows how system elements fit togetherShows how system elements fit together

Keeps design and implementation Keeps design and implementation consistentconsistent

Hides or exposes details as appropriateHides or exposes details as appropriate

Promotes unambiguous communicationPromotes unambiguous communication UML provides on language for all practitionersUML provides on language for all practitioners

Continuously Verify QualityContinuously Verify Quality

Testing dimensionsTesting dimensions UsabilityUsability ReliabilityReliability PerformancePerformance SupportabilitySupportability FunctionalityFunctionality

Test at each iteration of software Test at each iteration of software developmentdevelopment

Manage ChangeManage Change

Control how and when changes are Control how and when changes are introduced into the projectintroduced into the project

Lifecycle PhasesLifecycle Phases

Inception-define system scopeInception-define system scope

Elaboration-plan project, specify features Elaboration-plan project, specify features and baseline architectureand baseline architecture

Construction-build the productConstruction-build the product

Transition-transition the product into end-Transition-transition the product into end-user communityuser community

Requirements OverviewRequirements Overview

Use-Case ModelUse-Case Model

PurposePurpose

Establish and maintain agreement with the Establish and maintain agreement with the customers and other stakeholders on what customers and other stakeholders on what system should dosystem should doGive system developers a better understanding Give system developers a better understanding of the Requirement of the systemof the Requirement of the systemdefine the system boundarydefine the system boundaryProvide a basis for planning the technical Provide a basis for planning the technical contents of the iterationcontents of the iterationProvide a basis for estimating cost and time to Provide a basis for estimating cost and time to develop the systemdevelop the systemDefine a user interface of the systemDefine a user interface of the system

Use-Case ModelingUse-Case Modeling

Use-Case Model define all functional Use-Case Model define all functional requirements of a systemrequirements of a system What system doesWhat system does How system doesHow system does

Glossary defines common terminologyGlossary defines common terminology

Supplementary Specification defines non-Supplementary Specification defines non-functional requirements of a systemfunctional requirements of a system

Use-Case ModelingUse-Case Modeling

Actor represents anything (users, devices, Actor represents anything (users, devices, other systems) that interacts with the other systems) that interacts with the systemsystem Client actorClient actor Supplier actorSupplier actor

Use-case is a sequence of actions a Use-case is a sequence of actions a system performs that yields an observable system performs that yields an observable result of value to a particular actorresult of value to a particular actor

Use-Case SpecificationsUse-Case Specifications

NameName

Brief descriptionBrief description

Flow of eventsFlow of events Basic flow Basic flow Alternative flowAlternative flow

Special requirementsSpecial requirements

Use-Case diagramUse-Case diagram

Activity diagramsActivity diagrams

Supplementary SpecificationsSupplementary Specifications

FunctionalityFunctionality

UsabilityUsability

ReliabilityReliability

PerformancePerformance

SupportabilitySupportability

Design ConstraintsDesign Constraints

Use-Case ClassificationUse-Case Classification

Type A most difficultType A most difficult 20% of all use-case20% of all use-case

Type BType B 60% of all use-case60% of all use-case

Type CType C 20% of all use-case20% of all use-case

Works in Each IterationWorks in Each Iteration

It#1It#1 Requirements, Use-Case modelRequirements, Use-Case model Basic flow of all use-caseBasic flow of all use-case <A> Alternative flow<A> Alternative flow

It#2—Elaboration phaseIt#2—Elaboration phase <A> OOA->OOD->Prototype->Unit testing<A> OOA->OOD->Prototype->Unit testing <B> Alternative flow<B> Alternative flow

It#3It#3 <B> OOA->OOD->Prototype->Unit testing<B> OOA->OOD->Prototype->Unit testing <C> Alternative flow<C> Alternative flow

Works in Each IterationWorks in Each Iteration

It#4—Implementation phaseIt#4—Implementation phase <C> OOA->OOD->Prototype->Unit testing<C> OOA->OOD->Prototype->Unit testing Imp->Integration testing (I.T.)Imp->Integration testing (I.T.) Alpha (Biz Alpha (Biz

component)component)

It#5It#5 Imp->I.T.Imp->I.T. Gamma (Biz component) Gamma (Biz component)

It#6It#6 Beta (UI layout)Beta (UI layout)

It#7It#7 Version 1.00Version 1.00

Analysis & DesignAnalysis & Design

Analysis VS DesignAnalysis VS Design

AnalysisAnalysis Focus on Focus on

understanding the understanding the problemproblem

Idealized designIdealized design BehaviorBehavior System structureSystem structure Functional Functional

requirementsrequirements

DesignDesign Focus on Focus on

understanding the understanding the solutionsolution

Operations and Operations and attributesattributes

Performance Performance Close to real codeClose to real code Object lifecyclesObject lifecycles Nonfunctional Nonfunctional

requirementsrequirements