Download
tips and tricks for teaching with n.
Skip this Video
Loading SlideShow in 5 Seconds..
Tips and Tricks for Teaching with PowerPoint Presentation
Download Presentation
Tips and Tricks for Teaching with

Tips and Tricks for Teaching with

382 Views Download Presentation
Download Presentation

Tips and Tricks for Teaching with

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

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

  2. TRICK TIP 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 I’d be scared to try again • Fortunately, not too many of these • Things to think about • Lots of areas where I don’t know the answer (in some I’m still looking for the right questions)

  3. What’s 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 doesn’t 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. TIP 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?

  6. Example of Simplified UML Process Begin Interview Client Model Use Cases Draw SequenceDiagrams Draw ClassDiagrams Develop System End TIP 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

  7. Using the Simplified UML Process for Systems Analysis and Design

  8. Begin Interview Client Model Use Cases Draw SequenceDiagrams Draw ClassDiagrams Develop System End TRICK 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

  9. Begin Interview Client Model Use Cases Draw SequenceDiagrams Draw ClassDiagrams Develop System End TRICK Interview Clients • Magically turn students into clients • Example: Data-driven website • Client groups develop requirements for their organization’s 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

  10. Begin Ordering System Interview Client Create New Customer Model Use Cases ModifyCustomer Draw SequenceDiagrams Create New Order Sales Representative Draw ClassDiagrams Modify Order Develop System End TIP Model Use Cases • Draw Use Case Diagrams (UCDs)* • Analysis-levelfrom client’sperspective* Can be mastered in 5 minutes by clients

  11. Begin Interview Client Model Use Cases Draw SequenceDiagrams Draw ClassDiagrams Develop System End TIP Model Use Cases • Document with Use Case templates

  12. Begin Interview Client Model Use Cases Draw SequenceDiagrams Draw ClassDiagrams Develop System End TIP 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

  13. Begin Interview Client Model Use Cases Actor Object_1 Object_2 Object_3 Draw SequenceDiagrams Draw ClassDiagrams Develop System End TIP Draw Sequence Diagrams • Focus on timing among objects • Analysis-level shows human actors modeling a single use case • Design-level shows object actors

  14. Log-in Sequence Diagram Customer Login : clsLogin Welcome : clsWelcome Customer : clsCust DB1 : clsDatabase Request Login Authorize UID, Password AuthQuery UID, Password Show AuthQuery Results [Authorized] Hide [Not Authorized] AuthFailure Developing Class Diagram clsWelcome <standard> Show ( ) clsDatabase <standard> AuthQuery (UID, Password) clsLogin <standard> AuthFailure ( ) Hide ( ) clsCust UID Authorize (UID, Password) TRICK Admit Synchronize Authorize From sequence to class diagrams

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

  16. Using the Simplified UML Process for Programming Courses

  17. TIP 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 • Doesn’t have to be OO language Begin Interview Client Model Use Cases Draw SequenceDiagrams Draw ClassDiagrams Develop System End

  18. clsCust UID Authorize (UID, Password) Authorizes Synchronizes 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 <standard> AuthFailure ( ) Hide ( ) clsDatabase <standard> AuthQuery (UID, Password) TRICK From class diagrams to code

  19. Leftover Tips and Tricks

  20. TIP The wonders of pair-mates • What’s “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. Interview User DevelopUse Cases Draw ActivityDiagram AnalysisLevel Draw SequenceDiagrams Draw ClassDiagrams Refine SequenceDiagrams Refine ClassDiagrams DesignLevel * E.g., Window Layout, Window Navigation, Component, and/orDeployment Diagrams Draw AuxiliaryDiagrams* Develop System TIP Alternative UML Processes • Analysis vs. Design • Sequence Diagrams • Class Diagrams • Additional Models • Activity • State • Collaboration • Component • Deployment • User Interface Layout and Navigation