tips and tricks for teaching with prof. vance wilson arizona state university
TRANSCRIPT
Tips and Tricks for Teaching with
Prof. Vance WilsonArizona State University
Tips and Tricks GuaranteePresentation is guaranteed to containThings that seem to work
These are from my experience incorporating UML into undergraduate courses over the last two yearsSystems Analysis and DesignSoftware Engineering/Advanced ProgrammingWeb Development
Things I’d be scared to try againFortunately, not too many of these
Things to think aboutLots of areas where I don’t know the answer
(in some I’m still looking for the right questions)
TIPTRICK
What’s so Great about UML?UML has Great Size
Lots of models and background documentationUML has Great Scope
Designed to be jack-of-all-tradesUML has capacity to cause Great pain
Can be hard for instructors, daunting for studentsUML is applied in a Great number of ways
Conflicting interpretations and uses of modelsMany different processes
UML offers Great opportunities Software industry = $300,000,000,000+ per year
Software Tower of BabelUML is a toolkit to improve
CommunicationCoordinationUnderstanding
But UML doesn’t replaceRequirements analysisDesign feasibilityUser testing and trainingProgramming, Database,
Data Comm, etc.
The Building of the Tower of Babel
from the Bedford Book of Hours (1424)
Rule #1
If you don’t HAVE to do it,and you don’t WANT to do it,
then DON’T do it!
In which courses should you teach UML? Should UML replace other modeling methods?What software tools should you teach?Which UML diagrams should you teach?What process should you use?
TIP
Choose your own poison processUML initially came without any
“assembly instructions”Process tells you when to use
each modelWide variety of processes now
exist (including RUP)Promoters tend to focus on
their own part of developmentA simplified process can make
effective use of just 3 modelsClient-driven processFits business IS orientation
TIP
Interview Client
Model Use Cases
Draw SequenceDiagrams
Draw ClassDiagrams
Begin
Develop System
End
Example of Simplified UML Process
Using the Simplified UML Process for Systems
Analysis and Design
Begin by finding the right projectQuestion: How can you find a
project where students are already the “domain experts”
Answer: Think like a studentStudents know plenty about …
Games of all kindsOn-line dating servicesAutomated Teller MachinesCash registers (POS systems)Textbook rental systems
… as clients, that is
Interview Client
Model Use Cases
Draw SequenceDiagrams
Draw ClassDiagrams
Begin
Develop System
EndTRICK
Interview ClientsMagically turn students into clients Example: Data-driven website
Client groups develop requirements for their organization’s site, e.g.,Mesa Youth Sports LeaguesGila Volunteer Fire DepartmentTempe Paintball Enthusiasts
Each student analyst interviews a client from a different group, then trades roles and is interviewed
Clients “bond” to their requirementsAnalysts are motivated to improve
interviewing and listening skills
Interview Client
Model Use Cases
Draw SequenceDiagrams
Draw ClassDiagrams
Begin
Develop System
EndTRICK
Model Use Cases
TIP
Interview Client
Model Use Cases
Draw SequenceDiagrams
Draw ClassDiagrams
Begin
Develop System
End
Sales Representative
Ordering System
Create New Customer
ModifyCustomer
Create New Order
Modify Order
Draw Use Case Diagrams (UCDs)*Analysis-level
from client’sperspective
* Can be mastered in 5 minutes by clients
Model Use CasesDocument with Use Case templates
TIP
Interview Client
Model Use Cases
Draw SequenceDiagrams
Draw ClassDiagrams
Begin
Develop System
End
Model Use CasesIdentify objects by reviewing Use
Case documentation; objects arethings that are inside the systemrelevant to what the system doescapable of actions & have properties
TIP
Interview Client
Model Use Cases
Draw SequenceDiagrams
Draw ClassDiagrams
Begin
Develop System
End
Draw Sequence DiagramsFocus on timing among objects
Analysis-level shows human actors modeling a single use case
Design-level shows object actors
TIP
Interview Client
Model Use Cases
Draw SequenceDiagrams
Draw ClassDiagrams
Begin
Develop System
End
Object_3Object_1 Object_2Actor
From sequence to class diagrams
TRICK
clsLogin
<standard>
AuthFailure ( )Hide ( )
clsWelcome
<standard>
Show ( )
clsCust
UID
Authorize (UID, Password)
clsDatabase
<standard>
AuthQuery (UID, Password)
Authorize
Admit Synchronize
Developing Class Diagram
Log-in Sequence Diagram
DB1 : clsDatabaseLogin : clsLogin Customer : clsCust
Request Login
[Authorized]
Authorize UID, Password AuthQuery UID, Password
Welcome : clsWelcome
AuthQuery ResultsShow
AuthFailure
[Not Authorized]
Hide
Customer
Draw Class DiagramsCritical model to guide OO coding
Analysis-level focus is to identifyDesign-level focus is to refine
TIP
Interview Client
Model Use Cases
Draw SequenceDiagrams
Draw ClassDiagrams
Begin
Develop System
End
Class_1
Property1
Property2
Method1 ( )
Method2 ( )
1..*0..*
1
Class_2
Attribute1
Attribute2
Attribute3
Method1 ( )
Class_3
Attribute1
Attribute2
Attribute3
Using the Simplified UML Process for Programming
Courses
Process in Programming ClassesUML is a language that can
describe system views of Clients (system users)AnalystsDesigners
That makes it appropriate to guide programmingUse UML initially to augment
written program descriptionsLater, you can replace written
descriptions with UML modelsDoesn’t have to be OO language
TIP
Interview Client
Model Use Cases
Draw SequenceDiagrams
Draw ClassDiagrams
Begin
Develop System
End
From class diagrams to code
TRICK
ClsCustPrivate mstrUID As StringPrivate mstrPassword As String
Public Function Authorize(ByVal strUID As String, ByVal strPassword As String) As Boolean Dim objDB As Database Dim objRS As Recordset
Set objDB = OpenDatabase("DB1.mdb") Set objRS = objDB.OpenRecordset("SELECT * FROM Customer WHERE UID = '" _ & strUID & "' AND Password = '" & strPassword & "';", dbOpenSnapshot) If objRS.BOF And objRS.EOF Then Authorize = False ...
clsLogin
<standard>
AuthFailure ( )Hide ( )
clsCust
UID
Authorize (UID, Password)
clsDatabase
<standard>
AuthQuery (UID, Password)
Authorizes Synchronizes
Leftover Tips and Tricks
The wonders of pair-mates
TIP
What’s “Pair Programming” all about?Pairs in industry
improve communication and moralesubstantially reduce bugsincrease overall productivity
Pairs in the classroomincrease motivationimprove self-reliance (to pair vs. teacher)speed learning
IssuesWhen to start, odd numbers, and social loafing
TRICK
Students review cyclesTypical review cycle of in-class exercise
Day 1: Client groups develop requirements and individual clients meet with analysts
Day 2 and 3: Clients and analysts meet individually to review analysts’ work (Milestones 1 and 2)
Day 4: Analysts give completed documentation to clients who review and rank all analysts’ work on criteria arrived at by the client group
OutcomesStrong student motivation due to peer pressureCritical attention to client requirementsClient priorities remarkably constant across groups
Alternative UML Processes
TIP
Analysis vs. DesignSequence DiagramsClass Diagrams
Additional ModelsActivityStateCollaborationComponentDeploymentUser Interface
Layout and Navigation
Interview User
DevelopUse Cases
Draw SequenceDiagrams
Draw ClassDiagrams
Draw AuxiliaryDiagrams*
Draw ActivityDiagram
Refine SequenceDiagrams
Refine ClassDiagrams
Develop SystemE.g., Window Layout, Window Navigation, Component, and/orDeployment Diagrams
*
AnalysisLevel
DesignLevel