1 / 40

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

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

paul2
Télécharger la présentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

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?

More Related