15
Object Oriented Analysis and Object Oriented Programming Session 5 LBSC 790 / INFM 718B Building the Human-Computer Interface

Object Oriented Analysis and Object Oriented Programming

Embed Size (px)

DESCRIPTION

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. - PowerPoint PPT Presentation

Citation preview

Page 1: Object Oriented Analysis and Object Oriented Programming

Object Oriented Analysisand

Object Oriented Programming

Session 5

LBSC 790 / INFM 718B

Building the Human-Computer Interface

Page 2: Object Oriented Analysis and Object Oriented Programming

Agenda

• Collaboration and sequence diagrams

• Getting from diagrams to Java code

• Making sense of the API

• What’s in a GUI?

Page 3: Object Oriented Analysis and Object Oriented Programming

Flight Finder Exercise

http://www.glue.umd.edu/~oard/spacea/ff/

Page 4: Object Oriented Analysis and Object Oriented Programming

FlightFinder Use Case Diagram

JOSAC

Traveler

Select

Search

ParseSched

<<include>>

<<include>>

Page 5: Object Oriented Analysis and Object Oriented Programming

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

Page 6: Object Oriented Analysis and Object Oriented Programming

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

Page 7: Object Oriented Analysis and Object Oriented Programming

Flies between Contains

Simple Class DiagramRoute

GUI

Map

Timeline

Location

Airfield

Leg

AircraftType

Schedule

Flight*

1

1

*

2

1..9 11..**

*

0..1

1

1

1

1

*Sequence ofSequence of

Displayed in

Displayed in

Displayed in

2

1

Travelbetween Uses

Page 8: Object Oriented Analysis and Object Oriented Programming

Fli

es b

etw

een

*

0..11

1

Full Class DiagramRoute

GUI

Map

Timeline

Location

Airfield

Leg

AircraftType

Schedule

Flight

1

*

1..9 11..**

Sequence ofSequence of

2

1

Travelbetween

+addLeg(l:Leg)+summary():String

+search(p:Param)+display(r:Route)

+draw(r:Route)

+draw(r:Route)

-seats: integer-departureTime: Time-arrivalTime:Time+parse(s:String)+summary():String

-name:String-icaoIdentifier:String{4}

-latitude:double-longitude:double-timeZone:TimeZone+distanceTo(l:Location)

-flightNumber:String

+parse(s:String)

-updated:Time-source:URL

+parse(f:File)

-name:String-speed:int

+flightTime(o:Location, d:Location)

Con

tain

s

Use

s

Dis

play

ed in

Dis

play

ed in

1

1

Displayedin

1

*

2

*

Page 9: Object Oriented Analysis and Object Oriented Programming

D

Object Diagram1:Route

:GUI

:Map

:Timeline

DC:Location

Andrews:Airfield

:Leg

C-9B:AircraftType

Sep26:Schedule

AF302:Flight

-seats=3-departureTime=1200Z-arrivalTime:1400Z

-name=Andrews AFB-icaoIdentifier=KADW

-latitude:38-48N-longitude:076-51W-timeZone=EASTERN

-flightNumber:AF302

-updated:Sep 26/1200Z-source:http://www…

-name=C-9B-speed=450 knots

LA:Location

-latitude=33-57N-longitude=118-24W-timeZone=PACIFIC

Scott:Airfield

-name=Scott AFB-icaoIdentifier=KBLV

Lambert:Airfield

:Leg

-seats=34-departureTime=1600Z-arrivalTime=1900Z

-name=Lambert Field-icaoIdentifier=KSTL

LAX:Airfield

-name=LA Intl Airport-icaoIdentifier=KBLV

NV514:Flight

-flightNumber:NV514

O

D

O

O

D

1st

2nd

Key: O = Origin D = Destination

Page 10: Object Oriented Analysis and Object Oriented Programming

Collaboration Diagram1:Route

:GUI

:Map

:Timeline

DC:Location

Andrews:Airfield

second:Leg

C-9B:AircraftType

Sep26:Schedule

AF302:Flight

LA:Location

Scott:Airfield

Lambert:Airfield

first:Leg

LAX:Airfield

NV514:Flight

1:ge

tTex

t() 7:getText()

2:getText()

5:ge

tTex

t()

6:ge

tTex

t()

3:getText()

4:ge

tTex

t()

10:g

etT

ext(

)

11:g

etT

ext(

)

8:getText()

9:ge

tTex

t()

13:g

etL

atL

ong(

)

12:g

etL

atL

ong(

)

15:p

lot(

r:R

oute

)

14:p

lot(

r:R

oute

)

Scenario: First route selected

Page 11: Object Oriented Analysis and Object Oriented Programming

Sequence Diagram

:GUIall:Airfieldsnear:Airfields andrews:Airfield first:Leg

findNear(dept):Airfields

return near

nextAirfield():Airfield

return andrews

nextLeg():Leg

return first

getDestination():Airfield

return scott

return near

findNear(scott):Airfields

Continue depth-first search, pruning unsuccessful routes after 9 legs

Page 12: Object Oriented Analysis and Object Oriented Programming

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

Page 13: Object Oriented Analysis and Object Oriented Programming

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);

Page 14: Object Oriented Analysis and Object Oriented Programming

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

Page 15: Object Oriented Analysis and Object Oriented Programming

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.