Object Oriented Analysis
and
Object Oriented Programming
Session 5
LBSC 790 / INFM 718B
Building the Human-Computer Interface
Agenda
•	Collaboration and sequence diagrams

•	Getting from diagrams to Java code

•	Making sense of the API

•	What’s in a GUI?
Flight Finder Exercise
FlightFinder Use Case Diagram
Search Use Case Narrative
•	Assumptions
–	Current JOSAC schedule parsed
•	Pre-conditions
–	None
•	Initiation
–	Search function selected
•	Dialog
–	Search parameters selected, search initiated, unknown locations resolved, route list displayed
•	Termination 
–	Route search complete (normal), unknown location (error)
•	Post-conditions
–	Route list displayed (if available) or blank
Select Use Case Narrative
•	Assumptions
–	Route list displayed
•	Pre-conditions
–	At least one available route
•	Initiation
–	Route selected from list
•	Dialog
–	Select route, display details in map+timeline+text
•	Termination 
–	Display completed
•	Post-conditions
–	Details displayed
Simple Class Diagram
Full Class Diagram
Object Diagram
Collaboration Diagram
Sequence Diagram
Practice Exercise
•	Create a Class Diagram for an academic transcript
–	Include a method to add courses
–	Include a method to compute grade point average
–	Include a method to print the transcript

•	Code (only) the transcript class in java
–	Include a main method that tests the class
–	Create stubs for any other needed classes

•	Run your main method
Working with the Java API
•	Instantiate an object:
–	String s = new String(“test”);
–	int i = s.indexOf(“s”);

•	Directly use a static method:
–	int z = Math.min(x,42);

•	Use a static method to get an object:
–	NumberFormatter f = NumberFormat.getCurrencyInstance();
–	String d = f.format(327);
Classes to Explore in the API
•	String
–	Manipulate strings (e.g., to extract substrings)
•	StringTokenizer
–	Pick apart strings (e.g., into words)
•	GregorianCalendar
–	Dates and times
•	Hashtable
–	Like arrays, but with any object as the index
Muddiest Point
On a blank sheet of paper, write a
single sentence that will convey
to me what you found to be the
most confusing thing that was
discussed during today’s class.