Introduction to UML (slides adapted from Michael Mateas)

Slides:



Advertisements
Similar presentations
Stereotypes Stereotypes provide the capability to create a new kind of modeling element. –They can be used to classify or mark modeling elements. –A type.
Advertisements

Edsger W. Dijkstra Simplicity is prerequisite for reliability.
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
UML Class and Sequence Diagrams Violet Slides adapted from Marty Stepp, CSE 403, Winter 2012 CSE 403 Spring 2012 Anton Osobov.
Use Case Diagram © copyright 2001 SNU OOPSLA Lab..
CS 106 Introduction to Computer Science I 11 / 26 / 2007 Instructor: Michael Eckmann.
Computer Science – Game DesignUC Santa Cruz Game Jam Two teams from CMPS 20 – Less Than Royal – Colon Trey.
2-1 © Prentice Hall, 2007 Chapter 2: Introduction to Object Orientation Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph.
Learning from Postmortems (slides adapted from Michael Mateas) UC Santa Cruz CMPS 171 – Game Design Studio II
1 © Wolfgang Pelz UML3 UML 3 Notations describe how to use reusable software. Package Component Deployment Node.
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. slide 1 CS 125 Introduction to Computers and Object- Oriented Programming.
CS 106 Introduction to Computer Science I 04 / 16 / 2010 Instructor: Michael Eckmann.
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.
Equivalence Class Testing, Decision Table Testing
UML Sequence Diagrams (Slides adapted from Michael Mateas) UC Santa Cruz CMPS 171 – Game Design Studio II
Scrum Methodology. Sprints. Sprint Planning.
Introduction to Testing UC Santa Cruz CMPS 171 – Game Design Studio II 8 February 2011.
ACM/JETT Workshop - August 4-5, 2005 UML Modeling using MagicDraw UML for Java Programmers.
Unified Modeling Language
Unified Modeling Language
The Unified Modeling Language (UML) Class Diagrams.
Copyright © 2002, Systems and Computer Engineering, Carleton University Intro.ppt * Object-Oriented Software Development Unit 1 Course.
程建群 博士(Dr. Jason Cheng) 年03月
CS 3610: Software Engineering – Spring 2009 Dr. Hisham Haddad – CSIS Dept. Class Project OO Design Document Here is what you need to do for your class.
ITEC 370 Lecture 10 Design. Review Design –Why is it part of the process? –Who is the audience for design?
CSC 213 – Large Scale Programming Lecture 3: Object-Oriented Analysis.
Presented by: CHAN LAI SAN ( ) REBAH DAW SARREB ( ) FIDA AL-OBAISI ( ) 08 April 2008 (Tuesday 6pm – 7:30pm)
1 UML Basic Training. UML Basic training2 Agenda  Definitions: requirements, design  Basics of Unified Modeling Language 1.4  SysML.
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 43 Introduction to Software Engineering.
Unified Modeling Language © 2002 by Dietrich and Urban1 ADVANCED DATABASE CONCEPTS Unified Modeling Language Susan D. Urban and Suzanne W. Dietrich Department.
1 Class Diagrams: Advanced Concepts. 2 Overview Class diagrams are the most commonly used diagrams in UML. Class diagrams are the most commonly used diagrams.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Advanced UML Class Diagrams.
An Introduction to the Unified Modeling Language
Lecture 6: Structural Modeling
UML The Unified Modeling Language A Practical Introduction Al-Ayham Saleh Aleppo University
Design Model Lecture p6 T120B pavasario sem.
CSE 403, Spring 2008, Alverson Using UML to express Software Architecture.
CSE 403, Spring 2007, Alverson Using UML to express Software Architecture.
Class diagrams Terézia Mézešová.
Generalizable Element Namespace Model Element name visibility isSpecification Classifier isRoot Constraint Body Coming up: Unified Modeling Language Introduction.
Chapter 2: Introduction to Object Orientation Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey A.
Chapter 3: Introducing the UML
ITEC0724 Modern Related Technology on Mobile Devices Lecture Notes #2 1.
Object Oriented Programming and Data Abstraction Earl Huff Rowan University.
Unified Modeling Language (UML)
UML Fundamental Elements. Structural Elements Represent abstractions in our system. Elements that encapsulate the system's set of behaviors. Structural.
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
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 Sequence Diagrams (Slides adapted from Michael Mateas) UC Santa Cruz CMPS 171 – Game Design Studio II courses.soe.ucsc.edu/courses/cmps171/Winter12/01.
Software Modelling Class Diagram. Class Diagrams The main building block in object oriented modeling They are used both for general conceptual modeling.
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.
COP 3330 Notes 4/13. Today’s Topics UML Class Diagrams.
Structural Modeling.
Unified Modeling Language
Learning from Postmortems (slides adapted from Michael Mateas)
Object-Oriented Analysis and Design
Game user research in industry Jim Whitehead
Unified Modeling Language
UML Sequence Diagrams (Slides adapted from Michael Mateas)
Object Oriented Analysis and Design
Basic know how ???.
CIS 375 Bruce R. Maxim UM-Dearborn
Copyright 2007 Oxford Consulting, Ltd
Chapter 22 Object-Oriented Systems Analysis and Design and UML
CIS 375 Bruce R. Maxim UM-Dearborn
UML  UML stands for Unified Modeling Language. It is a standard which is mainly used for creating object- oriented, meaningful documentation models for.
From Class Diagram to Contract Diagram
Presentation transcript:

Introduction to UML (slides adapted from Michael Mateas) UC Santa Cruz CMPS 171 – Game Design Studio II www.soe.ucsc.edu/classes/cmps171/Winter11 ejw@cs.ucsc.edu 11 January 2011

Lab Update Alienware machines still need OS update Working on getting update on when task will be performed Have not received list of email/usernames for Mac teams As a result, am assuming these teams do not yet have access to the Max boxes in the lab

Microsoft Visit Will have visitors from Microsoft Game Studios in class next Tuesday Jason Major (Halo series game engine programmer) Recruiters (MGS and Microsoft Entertainment) Presentation open to all Also, recruiting focused presentation at 4pm, E2 180 (Simularium) More detail on recruiting, internships, permanent positions Bring a resume Schwag

Upcoming deadlines Short, in-class quiz Thursday (on today’s material) Geared for 25 minutes in length Short answer questions Class notes, Wikipedia article Tuesday (Jan. 11): release plan due A big effort Sprint 1 begins this day Thursday (Jan. 13): sprint 1 plan due Ideally want to have this done by the 11th, so your team doesn’t lose two days during the Sprint Remember to set up one scrum meeting per week so Ken Hullett (TA) can also attend (only about half of the teams have done this so far) Friday (Jan. 14): scrum board up, updated burndown charts Many teams already have scrum boards up – good job!! Friday (Jan. 14): team status reporting Due by midnight Report on team activities this week Be sure to use new team status reporting template

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

Class diagrams A class diagram describes your object oriented design Classes are drawn as boxes. Members are listed inside the box. Fields appear in the top sub-box, methods in the bottom sub-box Access indicated by + (public), - (private), # (protected) and ~ (package) Classes are connected together with lines indicating class relationships

Generalization links Generalization links indicate subclass relationships Parent/child relationships An open arrow points to the parent

Aggregation links Aggregation indicates that instances of one class will contain instances of another class In aggregation, the lifespan of the enclosed instances is independent of the lifespan of the enclosing instance Container classes (lists, hashtables, etc.) will always have aggregation links to what they contain, though many classes will contain member instances of other classes

Composition links Composition links indicate that one class contains instances of another class, but the contained class is created and destroyed with the instance class The contained instances will be destroyed when the containing instance is destroyed In C++, this is the difference between a member variable of type MyClass* and MyClass

Realization Realization links relates a class that implements (realizes) a behavior specified by another model element, to the model element that specifies this behavior In Java, classes that implement an interface realize the interface In C++, classes that are children of a pure abstract class realize behavior specified by the pure abstract class

Dependency links Dependency links represent arbitrary relationship between classes, where a change made to one class may require a change to another class The arrow points from the dependent towards the independent class You’ll want to use link labels for dependency links On the class diagram, only indicate important dependency relationships (ones that help communicate in the team)

Demo of StarUML

Creating class diagrams for games When creating a game architecture, you’ll want to make sure you’ve covered at least the following game elements in your class (structure) diagram: Input handling Representation of game levels, if present Player class Enemy classes, including container holding active enemies Physical object classes, including a container to hold them Collision detection Classes for drawing player, enemies and other game objects Classes for handling audio Classes for game interface (menu system) and HUD

Discovering your object taxonomy The golden rule: Nouns are classes, verbs are methods Once you’ve done a preliminary analysis of the nouns (objects) in your architecture, organize them into an inheritance hierarchy Inheritance organizes objects that share functionality Once you have a preliminary understanding of your inheritance hierarchy, then work on composition and aggregation (which objects contain which other objects) Many of you will be building your code within an engine or library, typically subclassing library classes to create game-specific functionality. So you’ll be including some engine (library) classes in your structure diagram

Study questions What does UML stand for? What is a class diagram? How is a class represented in a class diagram? What information goes in the three parts of a class box? How do you represent parent/child relationships? What are the two ways to represent containment/aggregation relationships? How is realization represented? How is visibility represented? Given a description of a class, draw its representation using UML Given a description of two classes, and a relationship between them, draw the classes and their relationship