Tanager: a case study of iterative development in object-oriented analysis and design - PowerPoint PPT Presentation

paul2
tanager a case study of iterative development in object oriented analysis and design n.
Skip this Video
Loading SlideShow in 5 Seconds..
Tanager: a case study of iterative development in object-oriented analysis and design PowerPoint Presentation
Download Presentation
Tanager: a case study of iterative development in object-oriented analysis and design

play fullscreen
1 / 40
Download Presentation
Tanager: a case study of iterative development in object-oriented analysis and design
303 Views
Download Presentation

Tanager: a case study of iterative development in object-oriented analysis and design

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Tanager: a case study of iterative development in object-oriented analysis and design Robert J. Lavey

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

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

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

  5. Waterfall Methodology • Complete each phase before moving to next

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

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

  8. Iterative Methodology • Advantages • Misunderstandings are caught early • Focus on subset of the problem • Disadvantages • Simple early designs may be inadequate

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

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

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

  12. Tanager ProjectInception Phase • Wrote Brief Format for all use cases

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

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

  15. Tanager ProjectInception Phase • Refine use cases

  16. Tanager ProjectInception Phase

  17. Tanager ProjectInception Phase

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

  19. Tanager ProjectElaboration Phase 1-Analysis • Determine domain objects and associations

  20. Tanager ProjectElaboration Phase 1-Analysis • Domain Model

  21. Tanager ProjectElaboration Phase 1-Analysis • System Sequence Diagrams

  22. Tanager ProjectElaboration Phase 1–Analysis/Design • Operation Contracts

  23. Tanager ProjectElaboration Phase 1-Design

  24. Tanager ProjectElaboration Phase 1-Design

  25. Tanager ProjectElaboration Phase 1 • Implementation • Unit Tests • power-on • download a single song • download multiple songs • System Tests Exploratory tests • Demonstrate results

  26. Tanager ProjectElaboration Phase 1 Demonstration TanagerJava.jar • Power On • Download a Song • Power Off

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

  28. Tanager ProjectElaboration Phase 2 • Analysis • Determine domain objects and associations • Update Domain Model • System Sequence Diagrams • Operation Contracts • Design • Sequence Diagrams • Class Model

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

  30. Tanager ProjectElaboration Phase 3 • Goals • Stop Music • View Playlist • Delete a Song • Volume Adjustments • Fully-dressed format for elaboration phase 4 use cases

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

  32. Tanager ProjectElaboration Phase 3 • Implementation • Unit Tests • Delete downloaded songs • Regression unit tests • System Tests • Exploratory tests • Demonstrated results for stakeholders

  33. Tanager ProjectElaboration Phase 4 • Goals • Select Playlist Order • Restart Current Song • Skip to Next Song • Skip to Previous Song

  34. Tanager ProjectElaboration Phase 4 • Analysis/design • Lots of reuse • Implementation • Unit Tests • Regression unit tests • System Tests • Exploratory tests • Demonstrated results for stakeholders

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

  36. Advantages and Disadvantages of an Iterative OOAD Process • Disadvantages • Training • Documentation • Switching from waterfall methodology

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

  38. Conclusions • Meets user requirements • Robust design • Design and implementation reuse • Easily-learned process

  39. Conclusions • Analysis, design, implementation, and testing artifacts for each phase available online athttp://www.cs.iastate.edu/~rjlavey/Tanager/

  40. Questions?