1COMP5028 Object Oriented Analysis & Design Week 1: Overview of UML and the Modelling Process Course Outline • Analysis and Design activities in software development – Some requirements – Some implementation and test • Unified Modelling Language (UML) – Some Unified Process (UP) – Some Java • Not about depth in programming Core Outcomes • Identify how a system interacts with its environment • Identify appropriate objects, attributes, methods • Identify relationships between objects • Write object interfaces, exception handling • Implement and test objects • Read and write UML diagrams Assumptions • 1 semester OO programming course or equivalent experience • Java experience equivalent to a 1 semester course • Some elementary design experience (e.g. student group project) • You have read and understood the Academic Dishonesty rules Schedule • Lectures Fridays 6-8pm • Tutorial/Lab Friday 8-9pm (not week 1) • 1st half of semester deals with analysis – Some requirements • 2nd half of semester deals with design – Some implementation and test • See Unit of Study Outline for details Assessments • Assignment 1 – analysis – 20%, due beginning of week 7 lab • Assignment 2 – design and implementation – 20%, due beginning of week 12 lab – Demo implementation in lab • Written exam, 60% • Late work not accepted unless special consideration 2Resources • Textbook: Arlow & Neustadt • Secondary book: Wirfs-Brock & McKean • Web: www.it.usyd.edu.au/~comp5028 • Software: Rational Rose • Lots of other UML resources on web, in bookstores Administration • Lecturer/Coordinator: Raj Nagappan, nagappan@it.usyd.edu.au Madsen G82A Hours: Fri 5-6pm or by appt, please make an appt • Tutors (you will meet in lab next week) • Postgrad coursework coordinator: Jon Gray, Madsen G74B • Problems: tutor Æ Raj Æ Jon COMP5028 Object Oriented Analysis & Design Overview of UML About Objects • Classes • Objects • Members • Superclass and subclass • Interface and implementation • Method invocation • States UML • Unified Modelling Language • Designed primarily for OO software – Can be used for other purposes • Language, not a Process or Methodology – Set of building blocks – Unified Process (UP) is a corresponding process – Any other process ok too History of UML • Pre 1994: Booch, Rumbaugh, Jacobson, others • 1994: Fusion (Coleman) of earlier work • 1995: UML work begins • 1997: UML becomes a standard • Post 1997: UML becomes dominant standard 3Purpose of UML • Unify previous modelling work • Become an open industry standard • Model object oriented systems – Static structure, e.g. class diagram – Dynamic behaviour, e.g. use case diagram • Works with variety of languages – Java, C++, C#, Smalltalk, etc Benefits of UML • Standard notation • Systems level design • Abstractions, e.g. design patterns • Design across different systems, languages • Systems level documentation UML Structure • Building blocks – elements, relationships, diagrams • Common mechanisms – ways of doing things • Architecture – the system architecture • A system is one model, many views Building Blocks (1) • Things – Structural e.g. class, interface, component, node – Behavioural e.g. interactions, state machines – Grouping e.g. packages – Annotational e.g. notes • Relationships e.g. association, generalisation Building Blocks (2) • Diagrams (9) – Static – class diagram, component diagram, deployment diagram – Dynamic – object diagram, use case diagram, sequence diagram, collaboration diagram, statechart diagram, activity diagram Common Mechanisms • Specifications: “meat of the model” = text model behind the diagrams • Adornments: rendering of properties • Common divisions – Classifier e.g. classes vs. Instance e.g. objects – Interface vs. Implementation • Extensibility – Constraints, stereotypes, tagged values 4Example: Swing JList MyHTMLList DefaultListModel Views – diagrams Model – common mechanisms Each diagram shows different aspects, for different purposes Architecture • Use case view – Use case diagram, interaction diagram • Logical view – Class diagram, statechart diagram, object diagram • Process view – Class diagram, object diagram • Implementation view – Component diagram • Deployment view – Deployment diagram COMP5028 Object Oriented Analysis & Design Unified Process UP • Unified Process • A Process model to accompany the UML language • Iterative and incremental • Not at all like the waterfall approach • Other processes available, e.g. extreme programming, agile software development • Not as standard as UML • We won’t dwell on it much History of UP • 1967: Jacobson begins work on process • 1987: Jacobson founds Objectory AB • 1995: Rational acquires Objectory, fuses together their own process work with it • (1997: UML becomes standard) • 1998: Rational creates RUP • 1999: Unified Software Development Process (UP) launched UP Structure • Project has several phases – Inception – Elaboration – Construction – Transition • Each phase has one or more iterations • Each iteration has five workflows • We only cover the iteration (workflows) in this course 5UP Iteration • Requirements • Analysis • Design • Implementation • Test Hence we arrive at Object Oriented Analysis and Design! Final Comments • Next week we start on the first workflow – requirements • No labs this week • Refresh your knowledge of OO programming concepts • Refresh your knowledge of Java syntax (for later in the semester) • Take care going home, Redfern is not safe at night