Unformatted text preview:

Putting It All TogetherKenneth M. AndersonUniversity of Colorado, BoulderCSCI 4448/6448 — Lecture 15 — 10/16/2007© University of Colorado, 20071Wednesday, October 17, 2007Lecture Goals• Review material from Chapter 10 of the OO A&D textbook• The OO A&D project life cycle• The Objectville Subway Map Example (in python)• Dijkstra’s Algorithm• Discuss the example application of Chapter 10• Emphasize the OO concepts and techniques encountered in Chapter 102Wednesday, October 17, 2007The OO A&D Project Life Cycle• All software development projects require a software development life cycle to organize the work performed by their developers• Even when there is only one developer and the life cycle being used is “code and fix”• After nine chapters and ten lectures, we have established a fairly complete look at the various stages of an OO A&D project life cycle• The over life cycle consists of three stages• Make sure your software does what the customer wants it to do• Apply basic OO principles to add flexibility• Strive for a maintainable, reusable design• But there are many activities associated with these stages• plus iteration and testing!3Wednesday, October 17, 2007The Activities1. Feature List (1)2. Use Case Diagrams (1)3. Break Up the Problem (1)4. Requirements (1)5. Domain Analysis (1)6. Preliminary Design (2)7. Implementation (2/3)Repeat steps 4-7 until done8. DeliveryHigh-level view of app’s functionsTypes of Users and TasksDivide and ConquerGather requirements for moduleFill in use-case detailsClass diagram, apply OO principlesWrite code, test itYou’re Done4Wednesday, October 17, 2007Example: Objectville Subway• To emphasize how much we have learned, the book performs this life cycle on a project that models a subway system and can find the shortest route between any two subway stops• We’ll review portions of this process• And code the solution in Python for comparison• Vision Statement from Objectville Travel• They need a RouteFinder for the Objectville Subway System• First step?• Feature List5Wednesday, October 17, 2007Phase One: Feature ListObjectville RouteFinder Feature List1. Represent subway line and stations along that line.2. Load subway lines into program, including lines that intersect3. Calculate path between any two stations in the subway system4. Print a route between two stations as a set of directionsFeature lists are all about understanding what your software is supposed to do……even (relatively) simple programs like thisNext Up? Use Case Diagram6Wednesday, October 17, 2007Phase Two: Use Case DiagramObjectville RouteFinderAdmin Travel AgentRepresent subway lines and their stationsLoad Subway LinesCalculate PathPrint DirectionsManageSubwayLinesGet DirectionsYour use case diagrams let you start thinking about how your software will be used, without requiring a lot of detail; features can be assigned to use casesNote: book calls this use case“Load Subway”7Wednesday, October 17, 2007Features vs. Use Cases• Use cases reflect usage; Features reflect functionality• When we match a feature to use cases we are indicating that a particular use case depends on the feature having been implemented•Features and use cases work together, but they are not the same thing• Not all features will match to use cases directly• instead indirect relationships may exist• The book uses the example of not being able to load subway lines until you have a representation (data structure) for subway lines• The use case for loading subway lines will only use the “representation feature” indirectly8Wednesday, October 17, 2007Phase Three: The Big Break UpObjectville RouteFinderSubwayLoaderPrinterTestFor this small problem, we could have used just a single package, but the book applied the single-responsibility principle and encapsulation to create the modules above9Wednesday, October 17, 2007New Step! Understand the Problem• The next step in the original life cycle is “Requirements”• We would focus on generating lists of requirements and filling out the details of our use cases• But, if you find that you don’t understand the problem well enough to supply the details of a use case, you need to start the requirements process with activities that will help you analyze the problem and gain a deeper understanding• In the example, we start iteration 1 by focusing on the “Load Subway Lines” use case• And then first do some domain analysis to understand the problem domain a bit better and get us the details we need to write the use case10Wednesday, October 17, 2007Understanding Our Domain (I)Grand Central StationStationBoulder Buff LaneStationConnectionSubwayLineA subway line is a series of stations, each connected to each other11Wednesday, October 17, 2007Understanding Our Domain (II)Ajax Rapids1Algebra Avenue2Boards 'R' Us3Break Neck Pizza4Choc-O-Holic, Inc.5CSS Center6Design Patterns Plaza7DRY Drive8EJB Estates9GoF Gardens10Head First Labs11Head First Lounge12Head First Theater13HTML Heights14Infinite Circle15JavaBeans Boulevard16JavaRanch17JSP Junction18LSP Lane19Mighty Gumball, Inc.20Objectville Diner21Objectville Pizza Store22OCP Orchard23OOA&D Oval24PMP Place25Servlet Springs26SimUDuck Lake27SRP Square28The Tikibean Lounge29UML Walk30Weather-O-Rama, Inc.31Web Design Way32XHTML Expressway3334Booch Line35Ajax Rapids36UML Walk37Objectville Pizza Store38Head First Labs39LSP Lane40JavaBeans Boulevard41HTML Heights42Ajax Rapids4344Wirfs-Brock Line45UML Walk46The Tikibean Lounge47Head First Lounge48Objectville Diner49Servlet Springs50SRP Square51Break Neck Pizza52EJB Estates53Boards 'R' Us54Web Design Way55PMP Place56DRY Drive57Algebra Avenue58LSP Lane59XHTML Expressway60The client supplied this input file.It starts by listing all stationsThen defines subway lines12Wednesday, October 17, 2007Use Case DetailsLoad Subway Network1. The admin supplies a file of stations and lines.2. The system reads in the name of a station.3. The system validates that the station doesn’t already exist.4. The system adds the new station to the subway.5. The system repeats steps 2-4 until all stations are added.6. The system reads in the name of a line.7. The system reads in two stations that are connected.8. The system validates that the stations exist.9. The system creates a new connection between the two stations, going in both directions, on the current line.10. The system repeats steps 7-9 until the line is


View Full Document

CU-Boulder CSCI 6448 - Putting It All Together

Documents in this Course
Struts

Struts

12 pages

Adapter

Adapter

23 pages

Prototype

Prototype

16 pages

Weka

Weka

15 pages

qooxdoo

qooxdoo

16 pages

Django

Django

12 pages

Overview

Overview

22 pages

XNA

XNA

5 pages

Load more
Download Putting It All Together
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Putting It All Together and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Putting It All Together 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?