Presentation is loading. Please wait.

Presentation is loading. Please wait.

Tips and Tricks for Teaching with Prof. Vance Wilson Arizona State University.

Similar presentations


Presentation on theme: "Tips and Tricks for Teaching with Prof. Vance Wilson Arizona State University."— Presentation transcript:

1 Tips and Tricks for Teaching with Prof. Vance Wilson Arizona State University

2 Tips and Tricks Guarantee Presentation is guaranteed to contain Things that seem to work These are from my experience incorporating UML into undergraduate courses over the last two years Systems Analysis and Design Software Engineering/Advanced Programming Web Development Things Id be scared to try again Fortunately, not too many of these Things to think about Lots of areas where I dont know the answer (in some Im still looking for the right questions) TIP TRICK

3 Whats so Great about UML? UML has Great Size Lots of models and background documentation UML has Great Scope Designed to be jack-of-all-trades UML has capacity to cause Great pain Can be hard for instructors, daunting for students UML is applied in a Great number of ways Conflicting interpretations and uses of models Many different processes UML offers Great opportunities Software industry = $300,000,000,000+ per year

4 Software Tower of Babel UML is a toolkit to improve Communication Coordination Understanding But UML doesnt replace Requirements analysis Design feasibility User testing and training Programming, Database, Data Comm, etc. The Building of the Tower of Babel from the Bedford Book of Hours (1424)

5 Rule #1 If you dont HAVE to do it, and you dont WANT to do it, then DONT 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

6 Choose your own poison process UML initially came without any assembly instructions Process tells you when to use each model Wide variety of processes now exist (including RUP) Promoters tend to focus on their own part of development A simplified process can make effective use of just 3 models Client-driven process Fits business IS orientation TIP Interview Client Model Use Cases Draw Sequence Diagrams Draw Class Diagrams Begin Develop System End Example of Simplified UML Process

7 Using the Simplified UML Process for Systems Analysis and Design

8 Begin by finding the right project Question: How can you find a project where students are already the domain experts Answer: Think like a student Students know plenty about … Games of all kinds On-line dating services Automated Teller Machines Cash registers (POS systems) Textbook rental systems … as clients, that is Interview Client Model Use Cases Draw Sequence Diagrams Draw Class Diagrams Begin Develop System End TRICK

9 Interview Clients Magically turn students into clients Example: Data-driven website Client groups develop requirements for their organizations site, e.g., Mesa Youth Sports Leagues Gila Volunteer Fire Department Tempe Paintball Enthusiasts Each student analyst interviews a client from a different group, then trades roles and is interviewed Clients bond to their requirements Analysts are motivated to improve interviewing and listening skills Interview Client Model Use Cases Draw Sequence Diagrams Draw Class Diagrams Begin Develop System End TRICK

10 Model Use Cases TIP Interview Client Model Use Cases Draw Sequence Diagrams Draw Class Diagrams Begin Develop System End Sales Representative Ordering System Create New Customer Modify Customer Create New Order Modify Order Draw Use Case Diagrams (UCDs)* Analysis-level from clients perspective * Can be mastered in 5 minutes by clients

11 Model Use Cases Document with Use Case templates TIP Interview Client Model Use Cases Draw Sequence Diagrams Draw Class Diagrams Begin Develop System End

12 Model Use Cases Identify objects by reviewing Use Case documentation; objects are things that are inside the system relevant to what the system does capable of actions & have properties TIP Interview Client Model Use Cases Draw Sequence Diagrams Draw Class Diagrams Begin Develop System End

13 Draw Sequence Diagrams Focus 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 Sequence Diagrams Draw Class Diagrams Begin Develop System End Object_3Object_1Object_2Actor

14 From sequence to class diagrams TRICK clsLogin AuthFailure ( ) Hide ( ) clsWelcome Show ( ) clsCust UID Authorize (UID, Password) clsDatabase AuthQuery (UID, Password) Authorize AdmitSynchronize Developing Class Diagram Log-in Sequence Diagram DB1 : clsDatabaseLogin : clsLoginCustomer : clsCust Request Login [Authorized] Authorize UID, PasswordAuthQuery UID, Password Welcome : clsWelcome AuthQuery ResultsShow AuthFailure [Not Authorized] Hide Customer

15 Draw Class Diagrams Critical model to guide OO coding Analysis-level focus is to identify Design-level focus is to refine TIP Interview Client Model Use Cases Draw Sequence Diagrams Draw Class Diagrams Begin Develop System End Class_1 Property1 Property2 Method1 ( ) Method2 ( ) 1..* 0..* 1 Class_2 Attribute1 Attribute2 Attribute3 Method1 ( ) Class_3 Attribute1 Attribute2 Attribute3

16 Using the Simplified UML Process for Programming Courses

17 Process in Programming Classes UML is a language that can describe system views of Clients (system users) Analysts Designers That makes it appropriate to guide programming Use UML initially to augment written program descriptions Later, you can replace written descriptions with UML models Doesnt have to be OO language TIP Interview Client Model Use Cases Draw Sequence Diagrams Draw Class Diagrams Begin Develop System End

18 From class diagrams to code TRICK ClsCust Private mstrUID As String Private 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 AuthFailure ( ) Hide ( ) clsCust UID Authorize (UID, Password) clsDatabase AuthQuery (UID, Password) AuthorizesSynchronizes

19 Leftover Tips and Tricks

20 The wonders of pair-mates TIP Whats Pair Programming all about? Pairs in industry improve communication and morale substantially reduce bugs increase overall productivity Pairs in the classroom increase motivation improve self-reliance (to pair vs. teacher) speed learning Issues When to start, odd numbers, and social loafing

21 TRICK Students review cycles Typical 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 Outcomes Strong student motivation due to peer pressure Critical attention to client requirements Client priorities remarkably constant across groups

22 Alternative UML Processes TIP Analysis vs. Design Sequence Diagrams Class Diagrams Additional Models Activity State Collaboration Component Deployment User Interface Layout and Navigation Interview User Develop Use Cases Draw Sequence Diagrams Draw Class Diagrams Draw Auxiliary Diagrams* Draw Activity Diagram Refine Sequence Diagrams Refine Class Diagrams Develop System E.g., Window Layout, Window Navigation, Component, and/or Deployment Diagrams * Analysis Level Design Level


Download ppt "Tips and Tricks for Teaching with Prof. Vance Wilson Arizona State University."

Similar presentations


Ads by Google