mastering ooa/ood with uml. contents introduction requirements overview ooaood
TRANSCRIPT
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
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 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