410 likes | 680 Views
Tanager: a case study of iterative development in object-oriented analysis and design. Robert J. Lavey. Overview. Goals Motivation for Tanager project Waterfall Methodology Iterative Methodology Tanager Project Overview Tanager Inception Phase Tanager Elaboration Phases
E N D
Tanager: a case study of iterative development in object-oriented analysis and design Robert J. Lavey
Overview • Goals • Motivation for Tanager project • Waterfall Methodology • Iterative Methodology • Tanager Project Overview • Tanager Inception Phase • Tanager Elaboration Phases • Tanager Demonstration • Iterative Process Advantages and Disadvantages • Conclusions • Questions
Goals • Example iterative OOAD process • Business case • User requirements • Break down requirements • Schedule • Iteratively design, implement, and test • Use familiar domain • Aids understanding • Provide artifacts from each phase
Motivation • Additional example aids learning • ComS 362 students have examples • NextGen Point-of-Sale system • Monopoly simulation • Curtis Clifton’s StickSync project • Example from familiar domain will be helpful
Waterfall Methodology • Complete each phase before moving to next
Waterfall Methodology • Advantages • Understand all user requirements and how they interact • Results of each phase satisfy entire set of requirements • Disadvantages • Difficult for users to verify progress • Changes to requirements restart process
Iterative Methodology • Analyze at high level during inception phase • Break down problem • Perform analysis, design, implementation, and test in elaboration phases • Implement risky use cases early
Iterative Methodology • Advantages • Misunderstandings are caught early • Focus on subset of the problem • Disadvantages • Simple early designs may be inadequate
Tanager Project • Digital music player • Open source software-based player • Build user base • Build on existing design • Project definition • Download songs • View downloaded songs • Play songs • Manipulate playing songs
Tanager ProjectInception Phase • Studied competitive products • Apple iPod/iTunes • Creative Muvo/MediaSource • Microsoft Zune/Windows Media Player • Product differentiators • Common look-and-feel • Play variety of formats • Define stakeholders • Music Player • Playlist Administrator
Tanager ProjectInception Phase • Defined use cases • Power On • Power Off • Download a Song • View Playlist • Delete a Song • Select Playlist Order • Play Music • Pause Music • Volume Adjustments • Skip to the Next Song • Restart the Current Song • Skip to the Previous Song
Tanager ProjectInception Phase • Wrote Brief Format for all use cases
Tanager ProjectInception Phase • Generated rough schedule • Four elaboration phases of 4 weeks in length • Elaboration Phase 1: Power On, Power Off, and Download a Song • Elaboration Phase 2: Download a Song, Play Music, and Pause Music • Elaboration Phase 3: View Playlist, Delete a Song, and Volume Adjustments • Elaboration Phase 4: Select Playlist Order, Skip to Next Song, Restart Current Song, and Skip to Previous Song
Tanager ProjectInception Phase • Determine “go” or “no-go” for project • Functional and non-functional requirements • User requirements are well-understood • Schedule shows a reasonable time • Decision was made to proceed • Prepare for elaboration phases • Refine elaboration phase 1 & 2 use cases • Prepare development environment • Obtain required training
Tanager ProjectInception Phase • Refine use cases
Tanager ProjectElaboration Phase 1 • Goals • Power On • Power Off • Download a Song • Fully-dressed format for elaboration phase 2 use cases • Casual format for elaboration phase 3 use cases
Tanager ProjectElaboration Phase 1-Analysis • Determine domain objects and associations
Tanager ProjectElaboration Phase 1-Analysis • Domain Model
Tanager ProjectElaboration Phase 1-Analysis • System Sequence Diagrams
Tanager ProjectElaboration Phase 1–Analysis/Design • Operation Contracts
Tanager ProjectElaboration Phase 1 • Implementation • Unit Tests • power-on • download a single song • download multiple songs • System Tests Exploratory tests • Demonstrate results
Tanager ProjectElaboration Phase 1 Demonstration TanagerJava.jar • Power On • Download a Song • Power Off
Tanager ProjectElaboration Phase 2 • Goals • Download a Song • Play Music • Pause Music • Fully-dressed format for elaboration phase 3 use cases • Casual format for elaboration phase 4 use cases
Tanager ProjectElaboration Phase 2 • Analysis • Determine domain objects and associations • Update Domain Model • System Sequence Diagrams • Operation Contracts • Design • Sequence Diagrams • Class Model
Tanager ProjectElaboration Phase 2 • Implementation • Unit Tests • Play downloaded song • Regression unit tests • System Tests • Exploratory tests • Demonstrate results for stakeholders • Discovered missing use case: Stop Playing Music • Wrote brief, casual, and fully-dressed use case formats • Implement in elaboration phase 3
Tanager ProjectElaboration Phase 3 • Goals • Stop Music • View Playlist • Delete a Song • Volume Adjustments • Fully-dressed format for elaboration phase 4 use cases
Tanager ProjectElaboration Phase 3 • Analysis/design • Refactor menu system • User feedback showed menu should be in main display rather than popup • Refactor state machine • Addition of Stop Music use case • Implemented as switch/case statements • Re-implemented as State Pattern
Tanager ProjectElaboration Phase 3 • Implementation • Unit Tests • Delete downloaded songs • Regression unit tests • System Tests • Exploratory tests • Demonstrated results for stakeholders
Tanager ProjectElaboration Phase 4 • Goals • Select Playlist Order • Restart Current Song • Skip to Next Song • Skip to Previous Song
Tanager ProjectElaboration Phase 4 • Analysis/design • Lots of reuse • Implementation • Unit Tests • Regression unit tests • System Tests • Exploratory tests • Demonstrated results for stakeholders
TanagerJava.jar Power On Download Songs View Playlist Delete a Song Select Playlist Order Play Music Pause/Restart Music Volume Adjustments Skip to Next Song Restart Current Song Skip to Previous Song Power Off Tanager Demonstration
Advantages and Disadvantages of an Iterative OOAD Process • Disadvantages • Training • Documentation • Switching from waterfall methodology
Advantages and Disadvantages of an Iterative OOAD Process • Advantages • Production-ready code implemented early • Stakeholders involved early • Concentrate on subset of problem • Less likely to miss details
Conclusions • Meets user requirements • Robust design • Design and implementation reuse • Easily-learned process
Conclusions • Analysis, design, implementation, and testing artifacts for each phase available online athttp://www.cs.iastate.edu/~rjlavey/Tanager/