Ist.psu.edu School of Information Sciences and Technology IST 311 – Object-Oriented Design &...

Post on 05-Jan-2016

216 views 0 download

transcript

ist.psu.eduist.psu.edu

School of Information SciencesSchool of Information Sciencesandand TechnologyTechnology

IST 311 – Object-Oriented Design & Software

Steven Haynes

IST 311 – Class 7

17 January 2006

shaynes@ist.psu.edu

ist.psu.eduist.psu.edu

School of Information SciencesSchool of Information Sciencesandand TechnologyTechnology

Mid-Term Deliverables

Use Case diagrams– Derived from scenarios

• Class diagram– Conceptual

• Sequence diagrams TBD– Need use cases first

• User Interface Design– Need use cases first

• Due Thursday, March 3rd (Thursday before break)

ist.psu.eduist.psu.edu

School of Information SciencesSchool of Information Sciencesandand TechnologyTechnology

Design Representations

• Why learn the UML?

• What is the purpose of design representation languages and techniques?

ist.psu.eduist.psu.edu

School of Information SciencesSchool of Information Sciencesandand TechnologyTechnology

Design Representations

• An aid to design cognition

• A common language for communicating about a design (specifications)

• A record of the design process and its outcomes (documentation)

ist.psu.eduist.psu.edu

School of Information SciencesSchool of Information Sciencesandand TechnologyTechnology

UML Diagrams, Part 1.

• Use Case diagram

ist.psu.eduist.psu.edu

School of Information SciencesSchool of Information Sciencesandand TechnologyTechnology

UML Diagrams

• Use Case diagram– Identify major services provided by a system to

external actors (users and other systems)• Establish the boundaries of the system

• Identify common functionality

• Identify high-level alternate use scenarios

– Capture requirements– Development project planning tasks– Communicate with the customer/user.

ist.psu.eduist.psu.edu

School of Information SciencesSchool of Information Sciencesandand TechnologyTechnology

Use Case Diagram

Customer

Purchase Gas

Initialize Pump

«uses»

Card Purchase

«extends»

Bank System

Print Receipt

«extends»

ist.psu.eduist.psu.edu

School of Information SciencesSchool of Information Sciencesandand TechnologyTechnology

Use Cases

• Actors• Use Cases• Include (Uses) Use Cases• Extend Use Cases• Annotations

– Pre-conditions

– Post-conditions

– Constraints

• Don’t use actor or use case generalization

ist.psu.eduist.psu.edu

School of Information SciencesSchool of Information Sciencesandand TechnologyTechnology

Guidelines for Use Cases

• Actors – specific user roles• Human actors on left• Non-human actors (systems) on right• Use Cases – verb-noun phrase• e.g., Verify Credit Card• Include (uses) link – included use case MUST be

completed for the including use case to complete• Extend link – extending use case represents a

variant of the extended use case

ist.psu.eduist.psu.edu

School of Information SciencesSchool of Information Sciencesandand TechnologyTechnology

Guidelines for Use Cases

• Use cases model system interactions.

• Use case granularity THE big problem

• Use annotations (notes) freely to document your assumptions.

• Use cases are not data stores

• Use cases are not data flow diagrams

ist.psu.eduist.psu.edu

School of Information SciencesSchool of Information Sciencesandand TechnologyTechnology

UML Diagrams

• Class diagram

ist.psu.eduist.psu.edu

School of Information SciencesSchool of Information Sciencesandand TechnologyTechnology

UML Diagrams

• Class diagram– Identify classes

• Attributes

• Operations

– Identify class relationships– Identify packages– Describe a system’s static structure

ist.psu.eduist.psu.edu

School of Information SciencesSchool of Information Sciencesandand TechnologyTechnology

Class Diagram

+Pump_Controller_UI()+createTransaction()+monitorCardReader()+sendAttendantMsg(in message : String)+initializePump()+getSelectedFuelProduct()+promptSwipeCard()+startDispenser()+transTypeButton2_actionPerformed()+setCustomerMsg(in msg : String)+setFuelProductLabel()

-startButton-cancelButton-transTypeButton1-transTypeButton2-transTypeButton3-gradeSelectButton1-gradeSelectButton2-gradeSelectButton3-customerMessage : JTextArea-unitsDispensed : JTextField-totalSaleAmount : JTextField-pricePerUnit : JTextField-pumpNumberField : JTextField

Pump_Controller_UI

+createDispenser()+calcTotalSale()+printReceipt()+Transaction()

-totalSaleAmount : double-unitsSold : double-date : String

Transaction

+verifyCard() : boolean+chargeCard()

-cardCompany : String

Credit_Card

+printReceipt()+Card_Transaction()+cardReaderReady() : boolean

Card_Transaction

+verifyCard() : boolean+chargeCard()+Payment_Card()

-cardNumber : String-nameOnCard : String-expirationDate : String-cardVerifiedIndicator : boolean-amountAvailable : double

Payment_Card

+verifyCard() : boolean+chargeCard()

-cardBank : String-pinNumber

Debit_Card

1

1

1

*

ist.psu.eduist.psu.edu

School of Information SciencesSchool of Information Sciencesandand TechnologyTechnology

UML Diagrams

• Sequence diagram

ist.psu.eduist.psu.edu

School of Information SciencesSchool of Information Sciencesandand TechnologyTechnology

UML Diagrams

• Sequence diagram– Describe the sequence of steps required to

realize a use case or use case scenario, which represent requirements

– Describe interactions between objects/classes– Perspective is time oriented

ist.psu.eduist.psu.edu

School of Information SciencesSchool of Information Sciencesandand TechnologyTechnology

Sequence Diagram

aCustomer

aPump_Controller_UI

Pump_Controller_UI()createTransaction()

aTransaction

Transaction()

ist.psu.eduist.psu.edu

School of Information SciencesSchool of Information Sciencesandand TechnologyTechnology

UML Diagrams

• Collaboration diagram

ist.psu.eduist.psu.edu

School of Information SciencesSchool of Information Sciencesandand TechnologyTechnology

UML Diagrams

• Collaboration diagram– Same as Sequence diagram except…– Perspective is structural or spatial

ist.psu.eduist.psu.edu

School of Information SciencesSchool of Information Sciencesandand TechnologyTechnology

Collaboration Diagram

Customer

: PC::Pump_Controller_UI

1: transTypeB

utton2_actionPerform

ed()

: PC::Card_Transaction

2: C

ard_

Trans

actio

n()

: PC::Card_Reader

3: Card_R

eader()

4: card

ReaderReady:=

cardReaderR

eady()

5: setCustom

erMsg(m

sg:String)

: PC::Payment_Card

6: Paym

ent_Card()

7: v

erify

Car

d:=

verif

yCar

d()

mon

itorC

ard

Rea

der(

)

ist.psu.eduist.psu.edu

School of Information SciencesSchool of Information Sciencesandand TechnologyTechnology

Degree Audit Use Cases & Classes

ist.psu.eduist.psu.edu

School of Information SciencesSchool of Information Sciencesandand TechnologyTechnology

Eclipse Tutorial

ist.psu.eduist.psu.edu

School of Information SciencesSchool of Information Sciencesandand TechnologyTechnology

Assignment for Thursday

• This is an individual assignment.

• If you have not had Java it will take some time so don’t wait too late to start working.

• Read Raposa Chapters 1 through 3.

• Do problems on the next two slides.• For this assignment you can use the Java SDK for the labs,

as described in the book, or Eclipse.

• Due at the start of class Thursday, 1/19.

ist.psu.eduist.psu.edu

School of Information SciencesSchool of Information Sciencesandand TechnologyTechnology

Assignment Lab 1

• Write a public class called CreditCalculator and declare the main() method within the class.

• The value for currentCredits will be input from the command line. Command-line arguments are strings so you’ll need to convert the value of currentCredits to an integer within main():int currentCredits = Integer.parseInteger(args[0]);* Hint Run menu:Run, then the Arguments tab

• Write a method to calculate creditsNeeded given the value of currentCredits. Display the result.

• Save, compile, and run your program. You’ll need to enter the command-line argumentjava CreditCalculator 62

ist.psu.eduist.psu.edu

School of Information SciencesSchool of Information Sciencesandand TechnologyTechnology

Assignment Lab 2

• Extend the main() method in your CreditCalculator class to calculate the number of semesters remaining given 15 credits per semester.

• Also, if the number of currentCredits is >= 120, output the string “You can graduate!”