UML Sequence Diagrams (Slides adapted from Michael Mateas) UC Santa Cruz CMPS 171 – Game Design Studio II courses.soe.ucsc.edu/courses/cmps171/Winter12/01.

Slides:



Advertisements
Similar presentations
Object-Oriented Analysis and Design CHAPTERS 15: UML INTERACTION DIAGRAMS 1.
Advertisements

UML Class and Sequence Diagrams Violet Slides adapted from Marty Stepp, CSE 403, Winter 2012 CSE 403 Spring 2012 Anton Osobov.
Computer Monitoring System for EE Faculty By Yaroslav Ross And Denis Zakrevsky Supervisor: Viktor Kulikov.
Object-Oriented Analysis and Design
Computer Science – Game DesignUC Santa Cruz Today Publish/Subscribe Design Pattern Delegates Sprite movement Particles.
Software Engineering COMP 201
Learning from Postmortems (slides adapted from Michael Mateas) UC Santa Cruz CMPS 171 – Game Design Studio II
Procedural vs Object Oriented Design Bad code smells Game Design Experience Professor Jim Whitehead January 23, 2009 Creative Commons Attribution 3.0 creativecommons.org/licenses/by/3.0.
Delegates & Events Observer and Strategy Patterns Game Design Experience Professor Jim Whitehead January 30, 2009 Creative Commons Attribution 3.0 creativecommons.org/licenses/by/3.0.
Lecture 3 CS171: Game Design Studio 1I UC Santa Cruz School of Engineering 11 January.
1 © Wolfgang Pelz UML2 UML Part Two. 2 © Wolfgang Pelz UML2 Chapters Four & Twelve Interaction Diagrams.
Essentials of interaction diagrams Lecture Outline Collaborations Interaction on collaboration diagrams Sequence diagrams Messages from an object.
Lecture 1 CS171: Game Design Studio 1I UC Santa Cruz School of Engineering 5 January 2010.
© 2005 Prentice Hall4-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
Introduction to UML (slides adapted from Michael Mateas)
Equivalence Class Testing, Decision Table Testing
UML Sequence Diagrams (Slides adapted from Michael Mateas) UC Santa Cruz CMPS 171 – Game Design Studio II
Exam Questions Chain of Responsibility & Singleton Patterns Game Design Experience Professor Jim Whitehead February 4, 2009 Creative Commons Attribution.
SE-565 Software System Requirements More UML Diagrams.
State and Sequence Diagrams Modelling dynamic information So far we have seen: Use Case Diagrams – requirements capture, interface.
Sequence Diagram Tutorial
Creative Commons Attribution 3.0 creativecommons.org/licenses/by/3.0 Key Abstractions in Game Maker Foundations of Interactive Game Design Prof. Jim Whitehead.
1 Object Oriented Analysis and Design. 2 Object-Oriented Analysis  Statement of what our client wants Object-Oriented Design  How to provide it using.
BPMN By Hosein Bitaraf Software Engineering. Business Process Model and Notation (BPMN) is a graphical representation for specifying business processes.
Description, Classes, Interfaces, Hierarchy, Specifics George Georgiev Telerik Software Academy academy.telerik.com Technical Trainer itgeorge.net.
How to start Milestone 1 CSSE 371 Project Info There are only 8 easy steps…
1 UML Basic Training. UML Basic training2 Agenda  Definitions: requirements, design  Basics of Unified Modeling Language 1.4  SysML.
7 Systems Analysis and Design in a Changing World, Fifth Edition.
A Use Case Primer 1. The Benefits of Use Cases  Compared to traditional methods, use cases are easy to write and to read.  Use cases force the developers.
Discovering object interaction. Use case realisation The USE CASE diagram presents an outside view of the system. The functionality of the use case is.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 8: Modelling Interactions and Behaviour UML Sequence Diagram.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Design Patterns VIII Chain of Responsibility, Strategy, State.
Games Development Game Architecture: Entities CO2301 Games Development 1 Week 22.
Karolina Muszyńska Based on: S. Wrycza, B. Marcinkowski, K. Wyrzykowski „Język UML 2.0 w modelowaniu SI”
Systems Analysis and Design in a Changing World, Fourth Edition
Office Management Tool - II Institute of Management Sciences Muhammad Shahzad Ali Lec 8: Introduction to MS - PROJECT L E C T U R E 8 INTRODUCTION TO MS.
INFO 620Lecture #71 Information Systems Analysis and Design Design Class Diagrams and others INFO 620 Glenn Booker.
Chapter 3: Introducing the UML
Dr. Kivanc DincerCS319 Week 6 - Oct.17,20051 Chapter 14 Onto Object Design Objectives Understand dynamic and static object design modeling. Try agile modeling,
Bad Apple Behavior (slides adapted from Michael Mateas) UC Santa Cruz CMPS 171 – Game Design Studio II courses.soe.ucsc.edu/courses/cmps171/Winter13/01.
Game playtesting, Gameplay metrics (Based on slides by Michael Mateas, and Chapter 9 (Playtesting) of Game Design Workshop, Tracy Fullerton) UC Santa Cruz.
IP Issues. UC Santa Cruz CMPS 171 – Game Design Studio II courses.soe.ucsc.edu/courses/cmps171/Winter13/01 27 February 2013.
Course Overview Review of Scrum. Introduction to UML. UC Santa Cruz CMPS 171 – Game Design Studio II courses.soe.ucsc.edu/courses/cmps171/Winter12/01
UML Diagrams (Slides adapted from Michael Mateas) UC Santa Cruz CMPS 171 – Game Design Studio II courses.soe.ucsc.edu/courses/cmps171/Winter13/01
Independent Game Festival. IndieCade. UC Santa Cruz CMPS 171 – Game Design Studio II courses.soe.ucsc.edu/courses/cmps171/Winter13/01 15.
UML Activity and Sequence Diagrams David Millard
Course Overview Review of Scrum. Introduction to UML. UC Santa Cruz CMPS 171 – Game Design Studio II courses.soe.ucsc.edu/courses/cmps171/Winter12/01
Introduction to Typography. UC Santa Cruz CMPS 171 – Game Design Studio II courses.soe.ucsc.edu/courses/cmps171/Winter13/01 25 February.
Forming Effective Teams UC Santa Cruz CMPS 171 – Game Design Studio II courses.soe.ucsc.edu/courses/cmps171/Winter12/01 17 January 2012.
Structures, Strategies and Compositions Data Gathering Attacking Strategy – Fast Break.
Fine-Tuning Game Controls UC Santa Cruz CMPS 171 – Game Design Studio II courses.soe.ucsc.edu/courses/cmps171/Winter13/01 8 February 2013.
Taxonomy of Video Game Bugs Based on slides and research originally by Chris Lewis, published at the Foundations of Digital Games 2010 conference UC Santa.
Decision Tables. UC Santa Cruz CMPS 171 – Game Design Studio II courses.soe.ucsc.edu/courses/cmps171/Winter13/01 1 February 2013.
UC Santa Cruz CMPS 172 – Game Design Studio III
Where are we ? Setup Sprites Input Collision Drawing Sprites
Learning from Postmortems (slides adapted from Michael Mateas)
Reflecting on Sprint 1 Reports
Game user research in industry Jim Whitehead
Unified Modeling Language
Behavioral Design Patterns
UML Sequence Diagrams (Slides adapted from Michael Mateas)
Journey Postmortem. UC Santa Cruz CMPS 171 – Game Design Studio II
Personal branding. UC Santa Cruz CMPS 171 – Game Design Studio II
Game user research in industry Jim Whitehead
System Sequence Diagrams
Chapter 9: Sequence Diagrams Chapter 5 in Software Engineering Book
UML Interaction diagrams
Review CSE116 2/21/2019 B.Ramamurthy.
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Games Development Game Architecture: Entities
Presentation transcript:

UML Sequence Diagrams (Slides adapted from Michael Mateas) UC Santa Cruz CMPS 171 – Game Design Studio II courses.soe.ucsc.edu/courses/cmps171/Winter12/01 12 January 2012

UC SANTA CRUZ Upcoming deadlines  Thursday (Jan. 12): Sprint 1 plan due  Due today, by midnight  Includes getting scrum board set up in game lab  Posted burndown chart next to scrum board  I will walk through lab tomorrow morning  Submit document via eCommons  Friday (Jan. 13): Sprint 1 begins  Friday (Jan. 13): team status reporting  Due by midnight  Report on team activities this week  Be sure to use team status reporting template  courses.soe.ucsc.edu/courses/cmps171/Winter12/01/pages/teamstatus- template  Wednesday (Jan. 18): Technical design document due

UC SANTA CRUZ Business Plan Competition Meeting  E2 180, Tuesday, 6pm  Dan Heller  More info:

UC SANTA CRUZ Upcoming events  Cecil Brown: Games Blacks Love to Play  Wednesday, January 18, 2012, 11:00 AM to 12:00 PM  The Simularium (Engineering 2, Room 180)  Rich Hilleman: Game Telemetry and Crowd Sourcing New Game Services: How you take over the game business.  Thursday, January 19, 2012, 6:30 PM to 8:00 PM  The Dark Lab (Digital Arts Research Center, Room 108)  Winter Job & Internship Fair  Tuesday, January 31, starts 11am  Resume workshop: Jan. 24, 12pm  Resumania: Jan. 25 (drop-in resume help)  See for more informationhttp://careers.ucsc.edu/

UC SANTA CRUZ Upcoming events  Cecil Brown: Games Blacks Love to Play  Wednesday, January 18, 2012, 11:00 AM to 12:00 PM  The Simularium (Engineering 2, Room 180)  Rich Hilleman: Game Telemetry and Crowd Sourcing New Game Services: How you take over the game business.  Thursday, January 19, 2012, 6:30 PM to 8:00 PM  The Dark Lab (Digital Arts Research Center, Room 108)  Winter Job & Internship Fair  Tuesday, January 31, starts 11am  Resume workshop: Jan. 24, 12pm  Resumania: Jan. 25 (drop-in resume help)  See for more informationhttp://careers.ucsc.edu/

UC SANTA CRUZ Technical Design Document  Details also on web  Required elements  Title section  UML structure diagram for your design  Printout of 1 or more pages  UML sequence diagrams for your design  If creating your own game engine, must include sequences for:  Initialization, menu system, main game loop, player collision, enemy collision, and end of level  If using an existing game engine, must include sequences that show how your code is called from the game engine  Less clear to me which sequences are most important here, depends on the game engine. In general want to represent interesting and/or complex sequences  Also: need to be prepared to give a presentation on this on Thursday, January 19 or Tuesday, January 24 (in-class or another time outside of class (section?))  Chris will handle scheduling

UC SANTA CRUZ Lab cleanup  Need teams to sign up for week-long duty to tidy the lab  19 weeks left in Winter/Spring  Teams on cleanup in first week and last week of Spring only needs to do cleanup duty twice, others three times  Signup sheet up front  Every individual is responsible for cleaning up after themselves  Especially food containers, napkins, bottles, etc.  Team should make a task for cleaning, put it on scrum board, assign to a person  But, sometimes people forget  Team on lab cleanup needs to:  Ensure overflowing trash cans are emptied to bin outside in 3 rd floor courtyard (anytime during week)  By 5pm Monday and 5pm Friday (unless things get out of control, the more often):  Pick up food containers, bottles, etc.  Pick up stray craft materials, pens, etc and return to drawers  Clean off tables in conference rooms and big circular table  Report any major soda/food spills to me, so we can call cleanup crews  Put controllers/game boxes/etc. away (tidy up game area)  Report any cleaning materials needed

UC SANTA CRUZ Chris Lewis  Use of team reporting tool   How to log in

UC SANTA CRUZ Team Status Reporting  Stars:  A number of stars indicating your perception of that person's total individual contribution over the week  Like:  This is a list of things that person did during the past week that you liked.  Improve:  This is a list of things that person did during the past that could use improvement.  ScrumMaster (ONLY):  Stars: As above, relative effort for each team member.  Performance assessment:  A subjective assessment of the performance of the team member over the past week. This should include an overall assessment, such as, "exceptional performance", "performance meets expectations (this is normal)", "performance does not meet expectations". For very good and very poor performance, a description of why the performance was good/bad need to be provided ("did twice as much work as any other team member," "personally saved the sprint with their fast coding," "missed all project meetings this week and did not perform any tasks".)

UC SANTA CRUZ Introduction to UML  The Unified Modeling Language (UML) consists of a collection of diagrams for describing a software design  Creating a UML description forces a team to develop a software design before diving into the nitty-gritty of writing code

UC SANTA CRUZ UML Sequence diagrams  Sequence diagrams capture the temporal order of interactions between system objects (might be literal code objects or subsystems)  You should capture a sequence diagram for each of the important chains of events that happens in your game  Collision detection  Controller event (player pressing a button)  Main loop  NPC action selection (if there are significant inter-object interactions)  Interface interactions

UC SANTA CRUZ Lifelines  Lifelines represent object instances or roles  The box at the top of the lifeline names the object instance or role  A dotted line under the box indicates how long the object lives Object name Class

UC SANTA CRUZ Messages  Messages indicate method invocations between objects  Bars on the lifeline indicate the period of time during which execution/handling of the message takes place  Dotted lines indicate return  Returns are optional, though it’s recommended to use them if you are returning a value

UC SANTA CRUZ Instances may create new instances  If you need to show one instance creating another, use the > message stereotype

UC SANTA CRUZ Self messages and call stacks  Objects/roles can send messages to themselves  If working with object instances, this represents a method on an instance invoking other methods on the same instance  Bars are nested to indicate the call stack

UC SANTA CRUZ Indicating if-then semantics on individual messages  Guards are used to indicate if-then semantics on individual messages  The message is sent only if the test in square braces is true guard Multi-instance

UC SANTA CRUZ Combined fragments  Combined fragments frame a subset of object interactions  They are used to show that a subsequence has alternatives (if then blocks) or loops  Here’s a loop example Loop control (use name field) Annotation label used for comment

UC SANTA CRUZ Alt fragments  Alt fragments indicate if-then blocks  Use interaction operands to indicate alternative sequences [foreach character]loop Test Invinciblealt c : CollisionManager char : Character hero : Character 8 [collision] : isAttacking() 9 : doDamage() 10 : kill() 11 : damage() [invincible] [!invincible]

UC SANTA CRUZ Miscellaneous features  All the message types used in the example are blocking message types (normal method invocations)  Non-blocking messages (e.g. sending a request via an IPC mechanism like sockets) are indicated with open arrowhead  May need to use annotation if UML tool doesn’t support this  Parallel processes can be indicated with a par combined fragment

UC SANTA CRUZ Refresher: Strategy Pattern

UC SANTA CRUZ Problem: Changing AI Behavior  Consider:  AI behavior of an opponent often changes while the game is running  If it gets close to the player, or some other game event occurs  How can this be accomplished in code?  Do not want to destroy opponent object, and create new one with changed AI behavior  I.e., creating a separate subtype of Opponent for each separate opponent behavior isn’t dynamic enough  However, also do not want to encode all possible behaviors inside each type of opponent  Ideally want to re-use AI behaviors across many types of opponent  I.e., putting a big switch/case statement inside each Opponent type won’t work either  “Switch statement” and “duplicate code” bad code smells

UC SANTA CRUZ Strategy Pattern  Client creates instance of IStrategy subclass  myStrategy = new IStrategySubclass();  Or, can be given subclass instance in constructor  Inside the client, write code that relates only to IStrategy  myStrategy.Algorithm();  Will call the Algorithm method on subclass currently assigned to myStrategy Show example of Strategy pattern in Visual C# Client > IStrategy + Algorithm() StrategyAStrategyB IStrategy myStrategy;

UC SANTA CRUZ Design Principles  Two design principles at play here  Favor composition over inheritance  More flexible to compose IStrategy subclass with Client than to make lots of Client subclasses  Program to Interfaces, not implementations  If you program to an interface, are not tied to a specific class that implements the interface  Can easily create another implementation of the interface, and use that instead  If you program to an interface, substituting a new subclass of that interface is a small change

UC SANTA CRUZ Modeling Issues

UC SANTA CRUZ Modeling issues  A major UML modeling divergence is whether your game:  Creates its own game engine  I.e., using some game library like XNA that handles only a small part of game needs (scene graph, collision, pathing, NPC AI, etc.)  Uses an existing game engine  Create own game engine  Relatively few connections to underlying game framework  Majority of code running the game is created by the team  Will have classes for gathering input, managing scenes (object lists), collision, AI, animation, scrolling, etc.  Team has large degree of control over the structure of software

UC SANTA CRUZ Modeling issues (cont’d)  Using existing game engine  Varies by engine  Typically takes the form of creating subclasses of existing classes of game engine framework  Can also involve creating code using scripting language inside game engine  UML diagram tends to look like a series of mostly disconnected classes (since connections occur inside game engine)  Important to show which game engine classes are subclasses off of  Need to understand clearly responsibilities handled by engine, and by code your team writes