A UML Introduction Tutorial



Similar documents
Chap 1. Introduction to Software Architecture

Object Oriented Programming. Risk Management

UML basics: An introduction to the Unified Modeling Language

Menouer Boubekeur, Gregory Provan

Applying 4+1 View Architecture with UML 2. White Paper

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

To introduce software process models To describe three generic process models and when they may be used

Introduction. UML = Unified Modeling Language It is a standardized visual modeling language.

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

Using UML Part Two Behavioral Modeling Diagrams

Information Systems Analysis and Design CSC John Mylopoulos. Software Architectures Information Systems Analysis and Design CSC340

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

Object-oriented design methodologies

Chapter 3. Technology review Introduction

How To Design An Information System

Aspect Oriented Strategy to model the Examination Management Systems

Sequence Diagrams. Massimo Felici. Massimo Felici Sequence Diagrams c

COSC 3351 Software Design. Recap for the first quiz. Edgar Gabriel. Spring For the 1 st Quiz

User experience storyboards: Building better UIs with RUP, UML, and use cases

Syllabus M.C.A. Object Oriented Modeling and Design usung UML

How To Develop Software

CS 487. Week 8. Reference: 1. Software engineering, roger s. pressman. Reading: 1. Ian Sommerville, Chapter 3. Objective:

In this Lecture you will Learn: Systems Development Methodologies. Why Methodology? Why Methodology?

Introduction to Systems Analysis and Design

Masters of Science in Software & Information Systems

Rational Unified Process for Systems Engineering RUP SE1.1. A Rational Software White Paper TP 165A, 5/02

Chapter 19. Activity Diagrams

Universiti Teknologi MARA. Requirement Analysis Using UML Approach for Research Management System (RMS)

3C05: Unified Software Development Process

Information systems modelling UML and service description languages

IRA 423/08. Designing the SRT control software: Notes to the UML schemes. Andrea Orlati 1 Simona Righini 2

Requirements engineering

Section C. Requirements Elicitation

Case studies: Outline. Requirement Engineering. Case Study: Automated Banking System. UML and Case Studies ITNP090 - Object Oriented Software Design

SysML Modelling Language explained

PROJECT MANAGEMENT METHODOLOGY OF OBJECT- ORIENTED SOFTWARE DEVELOPMENT

Using Use Cases for requirements capture. Pete McBreen McBreen.Consulting

Announcements. SE 1: Software Requirements Specification and Analysis. Review: Use Case Descriptions

Software Development: An Introduction

An Introduction to the UML and the Unified Process

How To Design Software

Chapter 4 Software Lifecycle and Performance Analysis

How To Draw A Cell Phone Into A Cellphone In Unminimal Diagram (Uml)

The Unified Software Development Process

Classical Software Life Cycle Models

Unit I Page No. 1 System Development Object Basics Development Life Cycle Methodologies Patterns Frameworks Unified Approach UML

Development models. 1 Introduction. 2 Analyzing development models. R. Kuiper and E.J. Luit

Chapter 10 Practical Database Design Methodology and Use of UML Diagrams

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements

Software Engineering. System Models. Based on Software Engineering, 7 th Edition by Ian Sommerville

Designing Real-Time and Embedded Systems with the COMET/UML method

Tutorial - Building a Use Case Diagram

Using UML Part One Structural Modeling Diagrams

Using Rational Rose to Create Object-Oriented Diagrams

2 SYSTEM DESCRIPTION TECHNIQUES

I219 Software Design Methodology

What CMMI Cannot Give You: Good Software

Compliance and Requirement Traceability for SysML v.1.0a

Software development life cycle. Software Engineering - II ITNP92 - Object Oriented Software Design. Requirements. Requirements. Dr Andrea Bracciali

The Software Process. The Unified Process (Cont.) The Unified Process (Cont.)

Assuming the Role of Systems Analyst & Analysis Alternatives

Interaction Diagrams. Use Cases and Actors INTERACTION MODELING

Enterprise Architecture Modeling PowerDesigner 16.1

Component Based Development in Software Engineering

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

Umbrello UML Modeller Handbook

SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems

Model Simulation in Rational Software Architect: Business Process Simulation

2. Analysis, Design and Implementation

Karunya University Dept. of Information Technology

Towards an Integration of Business Process Modeling and Object-Oriented Software Development

Chapter 13: Program Development and Programming Languages

Application of UML in Real-Time Embedded Systems

SOFTWARE PROCESS MODELS

Object Oriented Design

BPMN Business Process Modeling Notation

Quick Guide Business Process Modeling Notation (BPMN)

Business Modeling with UML

IV. Software Lifecycles

Structure of Presentation. The Role of Programming in Informatics Curricula. Concepts of Informatics 2. Concepts of Informatics 1

Requirements Management

Software Development Life Cycle

IEC The Fast Guide to Open Control Software

Chapter 8 Approaches to System Development

TOGAF usage in outsourcing of software development

ISSUES OF STRUCTURED VS. OBJECT-ORIENTED METHODOLOGY OF SYSTEMS ANALYSIS AND DESIGN

Use-Case Analysis. ! What is it? ! From where did it come? ! Now part of UML

CS4507 Advanced Software Engineering

Comparison between Traditional Approach and Object-Oriented Approach in Software Engineering Development

Tool Support for Software Variability Management and Product Derivation in Software Product Lines

11.1 What is Project Management? Object-Oriented Software Engineering Practical Software Development using UML and Java. What is Project Management?

CPS122 Lecture: State and Activity Diagrams in UML

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico

UML SUPPORTED SOFTWARE DESIGN

UML other structural. diagrams. (Implementation Diagrams UML 1.5) Università di Padova. Facoltà di Scienze MM.FF.NN. Informatica - anno

i. Node Y Represented by a block or part. SysML::Block,

Digital Industries Trailblazer Apprenticeship. Software Developer - Occupational Brief

SECTION 2 PROGRAMMING & DEVELOPMENT

Object-Oriented Design Guidelines

Transcription:

A UML Introduction Tutorial 1/27/08 9:55 PM A UML Introduction Tutorial In this tutorial you will learn about the fundamentals of object oriented modelling, the Unified Modelling Language and the software development process Click to continue. A UML Introduction Tutorial Copyright 1997-2004 by CRaG Systems All rights reserved Test SDLC Template Free Use System Development Templates For Effective Software Management. SmartSheet.com/DevLifeCycleSoftware Business Process Modeling Busines Process Modeling with UML Training and Consulting services www.iconatg.com Object Oriented Get the Job You Want from Dice.com Post Your Resume Now & Get Noticed. www.dice.com http://www.cragsystems.com/itmuml/main.htm

Course Map/Table of Contents 1/27/08 9:54 PM Course Map/Table of Contents 1. Fundamentals of Object Oriented Modelling 1.1 Abstraction 1.2 Modelling 1.3 Model Organisation 1.4 Structured Analysis 1.5 Object Orientation 1.6 Encapsulation of Hardware 1.7 Encapsulation of Software 1.8 Summary and Test 2. The Unified Modelling Language - Part 1 2.1 UML - What It Is 2.2 UML What It Is - 2 2.3 How UML Started 2.4 UML Diagram Types 2.5 UML Diagram Types - 2 2.6 Business Modelling and Web Applications and extending UML 2.7 Use Case Diagram 2.8 Class Diagrams 2.9 Summary and Test 2.10 3. The Unified Modelling Language - Part 2 3.1 Sequence Diagram 3.2 Collaboration Diagram 3.3 Statechart Diagram 3.4 Activity Diagram 3.5 Component Diagram 3.6 Deployment Diagram 3.7 Modelling Architecture 3.8 Summary and Test 4. The Software Development Process 4.1 Business Process Modelling 4.2 System Requirements Definition 4.3 The System Analysis Model 4.4 System Model Information Flow 4.5 Screen Prototyping 4.6 The System Design Model 4.7 Overall Process Flow 4.8 Incremental Development 4.9 Summary and Test 4.10 Course Feedback http://www.cragsystems.com/itmuml/map.htm

Fundamentals of Object Oriented Modelling 1/27/08 9:32 PM 1.Fundamentals of Object Oriented Modelling This chapter explains the principles behind modelling and abstraction and shows how they can be applied to object oriented models and systems 1. Abstraction 2. Modelling 3. Model Organisation 4. Structured Analysis 5. Object Orientation 6. Encapsulation of Hardware 7. Encapsulation of Software 8. Summary and Test http://www.cragsystems.com/itmuml/fun01/00fun01.htm

Abstraction 1/27/08 9:33 PM 1.1 Abstraction Abstraction is a fundamental principle of modelling. A system model is created at different levels, starting at the higher levels and adding more levels with more detail as more is understood about the system. When complete, the model can be viewed at several levels. So abstraction is about: Looking only at the information that is relevant at the time Hiding details so as not to confuse the bigger picture http://www.cragsystems.com/itmuml/fun01/01fun01.htm

Modelling 1/27/08 9:34 PM 1.2 Modelling When we model, we create a number of views of the system being described, usually 2 or 3. For a complete description 3 are normally needed. Each view is an 'orthogonal' view. Each view is needed for a full understanding of the system. Views are orthogonal when: Each view has information that is unique to that view Each view has information that appears in other views The information that is common between views is consistent http://www.cragsystems.com/itmuml/fun01/02fun01.htm

Model Organisation 1/27/08 9:34 PM 1.3 Model Organisation All model syntaxes provide a number of model elements which can appear on one or more diagram types. The model elements are contained with a central model, together with all their properties and connections to other model elements. The diagrams are independent views of the model just as a number of computer screens looking into different records or parts of a database shows different views. http://www.cragsystems.com/itmuml/fun01/03fun01.htm

How a case tool works 1/27/08 9:46 PM 1.3.1 How a case tool works In a proper case tool, even though the diagrams are used to create and display the elements in the model, the model element information is not stored in the diagrams, but in a model file, or repository. Model elements can appear on more than one diagram. When the properties of an element are changed in one diagram, the changes are reflected in all other diagrams that use it. This would be difficult if each diagram had it's own copy of a model element. The only information contained within the diagram is: References to the elements on the diagram Where the elements appear on the diagram Diagram specific text http://www.cragsystems.com/itmuml/fun01/03fun01a.htm

Abstraction and Modelling 1/27/08 9:46 PM 1.3.2 Abstraction and Modelling 1 Abstraction is about 1. Looking at things in detail 2. Looking at relevant information only 3. Focusing on one detailed point 2 Hiding details is a good idea because 1. There is no need to worry about them as they are unnecessary 2. Details are not important 3. It stops you worrying about them when they are not important 3 In a model made up of multiple views 1. Each view is a transformation of another view 2. Views contain unique information 3. Common information must be consistent 4. 2 and 3 are true 5. None of the above http://www.cragsystems.com/itmuml/fun01/03fun01q.htm Page 1 of 2

Abstraction and Modelling 1/27/08 9:46 PM 4 Model elements 1. appear on one diagram only 2. are distributed amongst the diagrams of the model 3. can appear on multiple diagrams of the same or different types 4. can appear on multiple diagrams of different types only 5. 1 and 2 are true http://www.cragsystems.com/itmuml/fun01/03fun01q.htm Page 2 of 2

Structured Analysis 1/27/08 9:34 PM 1.4 Structured Analysis In structured analysis there are three orthogonal views: The functional view, made up of data flow diagrams, is the primary view of the system. It defines what is done, the flow of data between things that are done and provides the primary structure of the solution. Changes in functionality result in changes in the software structure. The data view, made up of entity relationship diagrams, is a record of what is in the system, or what is outside the system that is being monitored. It is the static structural view. The dynamic view, made up of state transition diagrams, defines when things happen and the conditions under which they happen http://www.cragsystems.com/itmuml/fun01/04fun01.htm

Structured Analysis and Design is fine if the system requirements never change 1/27/08 9:47 PM 1.4.1 Structured Analysis and Design is fine if the system requirements never change Traditional Structured Analysis and Design methods tend to fall short of the goal of producing software that is easy to maintain and extend over a long period. They are able to produce a hierarchically structured model of the both the requirement and the solution that satisfies a static requirement. The model is, to a trained analyst, clear and easy to understand and, to a large degree, reasonable traceable. What structured analysis is not good at is adapting models to the continuously changing requirements that are the characteristic of modern businesses. http://www.cragsystems.com/itmuml/fun01/04fun01a.htm

Object Orientation 1/27/08 9:34 PM 1.5 Object Orientation Object Oriented software is based on the static, or object model - the things in the system, or, the things outside the system about which we need to record information, and their relationships. This is the most stable view in the system. It is why an object oriented model produces more stable software over a long period. Functionality from the interaction model is mapped onto the object model. The interaction model is, in turn, derived from the Use Case model which defines the functionality of the system from a user's perspective. The dynamic model defines the order and conditions under which things are done and is also mapped onto the object model. http://www.cragsystems.com/itmuml/fun01/05fun01.htm

An Object Oriented model produces more stable software 1/27/08 9:47 PM 1.5.1 An Object Oriented model produces more stable software The object model is usually less affected by the changes to functional requirements that characterise most of the evolutionary process of the software. The things that are part of the problem and the way in which they are related tend to remain the same. It is what we want to do with them - the functional model - that changes the most. If, therefore, we model the structure of the problem and the structure of the resulting software solution around the object model instead of around the functional model, then we will produce systems that are more resilient to change over a period of time. This is what object orientation does and is the primary reason why object oriented software is more maintainable, re-useable and extensible that traditional structured software, especially over a long period. In addition, the flexibility and resultant inherently portability of an object-oriented solution, tends to result in software that is inherently scaleable. The encapsulation of objects lends itself to redistribution across distributed platforms once the functionality of the application has been proved as a single machine solution. http://www.cragsystems.com/itmuml/fun01/05fun01a.htm

Encapsulation of Hardware 1/27/08 9:34 PM 1.6 Encapsulation of Hardware The concept of encapsulation of data and functionality that belongs together is something which the hardware industry has been doing for a long time. Hardware engineers have been creating re-useable, re-configurable hardware at each level of abstraction since the early sixties. Elementary boolean functions are encapsulated together with bits and bytes of data in registers on chips. Chips are encapsulated together on circuit boards. Circuit boards are made to work together in various system boxes that make up the computer. Computer are made to work together across networks. Hardware design, therefore is totally object oriented at every level and is, as a result, maximally re-useable, extensible and maintainable. In a single word: flexible. Applying object-orientation to software, therefore, could be seen as putting the engineering into software design that has existed in hardware design for many years. Hardware encapsulates data and function at every level of abstraction Maximises maintainability, reuse and extension http://www.cragsystems.com/itmuml/fun01/06fun01.htm

Encapsulation of Software 1/27/08 9:35 PM 1.7 Encapsulation of Software In well developed object oriented software, functionality and data is encapsulated in objects. Objects are encapsulated in components. Components are encapsulated into systems. If this is done well the result is: Maximal coherence Minimal interconnection Solid interface definitions Maximum maintainability, reuse and extensibility http://www.cragsystems.com/itmuml/fun01/07fun01.htm

Getting the right encapsulation 1/27/08 9:35 PM 1.7.1 Getting the right encapsulation Encapsulation of primitive functions, together with the data upon which they act and to which they belong, is fundamental to object orientation. The trick is to get the right functionality encapsulated with the right data. If this is achieved then the network of objects, which collaborate to provide the required functionality of the software, will have the minimum possible essential connections between objects and maximum functional cohesion of the objects. From this maximal functional cohesion can be derived maximal maintainability, reuse and extension. To achieve this we need two things. Firstly, the right objects. Secondly, to set the interface to the objects in concrete. If a change to an object requires a change to the interface to the object, then the effect of that change will escape beyond the boundaries of the object and propagate around the network. This is to allow the whole reason for encapsulation to be negated in one go. Proper Analysis and Design defines the right objects for the system and their interfaces to the point where each object can be given to a programmer and coded independently of any other object in the system. If this is done well then the resulting objects will still be around in future versions of the software, and, furthermore, their interfaces will not have changed except for additions. We aim for maximum maintainability, re-use and extension. http://www.cragsystems.com/itmuml/fun01/07fun01a.htm

More Fundamentals 1/27/08 9:36 PM 1.7.2 More Fundamentals 1 In structured analysis 1. The functional view is the primary view 2. The data view records what is in the system 3. The dynamic view describes the flow of data 4. 1 and 2 are true 5. 1, 2 and 3 are true 2 In object orientation 1. The functionality of the object model is derived directly from the use case model 2. The interaction model is mapped onto the dynamic model 3. The object model is the most stable view of the system 4. 1 and 3 are true 5. None is true 3 Encapsulation of hardware 1. Is little used in modern electronics http://www.cragsystems.com/itmuml/fun01/07fun01q.htm Page 1 of 2

More Fundamentals 1/27/08 9:36 PM 2. Makes software development easier 3. Is inherent in the way most hardware engineers work 4 Object orientation 1. Encapsulates software at object, component, and system level 2. Maximises maintainability, reuse and extension 3. Helps give applications a longer life 4. All of the above http://www.cragsystems.com/itmuml/fun01/07fun01q.htm Page 2 of 2

Summary and Test 1/27/08 9:36 PM 1.8 Summary and Test Abstraction is about looking only at the information that is relevant at the time. When modelling 2 or 3 orthogonal views of the system are created. Diagrams are independent views of the model and may be of different types. In structured analysis the functional view is the primary view of the system. In object oriented analysis, the object model, or data view, is the primary, and most stable view of the system. Hardware engineering produces well encapsulated hardware designs Applying encapsulation techniques to software encourages maintainable, re-useable and extensible code. http://www.cragsystems.com/itmuml/fun01/08fun01.htm

Fundamentals of Object Oriented Modelling 1/27/08 9:47 PM 1.8.1 Fundamentals of Object Oriented Modelling When you are done, click the button to submit your answers and find out your score. 1. In structured analysis what word describes the view that defines the conditions under which things happen? 2. Abstraction is about making all the information available in one succinct picture False True 3. What is the first requirement for maximal maintainability, re-use and extension? A The right objects B Well-defined interfaces C Maximum functional cohesion 4. What most destroys encapsulation? A Choosing the wrong objects B A lack of functional cohesion C Changes to an interface 5. How many views of a system are normally needed for the description to be complete? (type numeric integer) 6. Which of the following is true? A Connections between model elements are contained in diagrams Grade the Test Your score will appear here B Model elements are contained in diagrams C Model elements appear on diagrams D Diagram text is held in a repository http://www.cragsystems.com/itmuml/fun01/08fun01z.htm

The Unified Modelling Language - Part 1 1/27/08 9:57 PM 2.The Unified Modelling Language - Part 1 This chapter explains the origins of UML and some of the different kinds of diagrams available within it. 1. UML - What It Is 2. UML What It Is - 2 3. How UML Started 4. UML Diagram Types 5. UML Diagram Types - 2 6. Business Modelling and Web Applications and extending UML 7. Use Case Diagram 8. Class Diagrams 9. Summary and Test 10. http://www.cragsystems.com/itmuml/the02/00the02.htm

UML - What It Is 1/27/08 9:36 PM 2.1 UML - What It Is The Unified Modeling Language was originally developed at Rational Software but is now administered by the Object Management Group (see link). It is a modelling syntax aimed primarily at creating models of software-based systems, but can be used in a number of areas. It is: Syntax only - UML is just a language, it tells you what model elements and diagrams are available and the rules associated with them. It doesn't tell you what diagrams to create. Comprehensive - it can be used to model anything. It is designed to be user extended to fill any modelling requirement. Language independent - it doesn't matter what hi-level language is to be used in the code. Mapping into code is a matter for the case tool you use. Visit the OMG's website http://www.cragsystems.com/itmuml/the02/01the02.htm

UML What It Is - 2 1/27/08 9:37 PM 2.2 UML What It Is - 2 Process independent - the process by which the models are created is separate from the definition of the language. You will need a process in addition to the use of UML itself. Tool independent - UML leaves plenty of space for tool vendors to be creative and add value to visual modelling with UML. However, some tools will be better than others for particular applications. Well documented - the UML notation guide is available as a reference to all the syntax available in the language. Its application is not well understood - the UML notation guide is not sufficient to teach you how to use the language. It is a generic modelling language and needs to be adapted by the user to particular applications. Originally just for system modelling - some user defined extensions are becoming more widely used now, for example for business modelling and modelling the design of web-based applications. Why Use UML? http://www.cragsystems.com/itmuml/the02/02the02.htm

How UML Started 1/27/08 9:37 PM 2.3 How UML Started UML came about when James Rumbaugh joined Grady Booch at Rational Software. They both had object oriented syntaxes and needed to combine them. Semantically they were very similar, it was mainly the symbols that needed to be unified. The result was UML 1.0 Then Ivar Jaconson joined them. He brought with him the syntax for use cases which was added in UML 1.1. The Object Management Group adopted the UML1.1 specification in November 1997 making it an independent industry standard. Some small changes were made in in versions 1.3 and 1.4. Version 2.0 is currently being researched. Investigate the UML Document Set Download the UML v1.4 Document Set Adobe Acrobat Reader (you may need this to read the UML Document Set) http://www.cragsystems.com/itmuml/the02/03the02.htm

UML Diagram Types 1/27/08 9:37 PM 2.4 UML Diagram Types UML provides a number of diagram types as a mechanism for entering model elements into the model and showing overlapping sets of models elements and their relationships. UML does not specify what diagrams should be created or what they should contain, only what they can contain and the rules for connecting the elements. the diagram types include: Use Case Diagrams - shows an outside-in view of the procedures available in the use of the system. These are summary diagrams and between them should contain all use cases available in the system and so all the available functionality of the system, represented at a high level. Static Structure Diagram - includes object and class diagrams. Most methods use class diagrams to describe the properties of the objects in the system and their relationships. Object diagrams are rarely used, except for examples of the way in which object interact, and these are normally shown on sequence or collaboration diagrams Interaction Diagrams - these include collaboration and sequence diagrams, both of which show the way in which objects interact in order to fulfil the functionality of the use case http://www.cragsystems.com/itmuml/the02/04the02.htm

UML Diagram Types - 2 1/27/08 9:37 PM 2.5 UML Diagram Types - 2 Further diagram types include: Activity Diagrams - a generic flow chart used much in business modelling and sometimes in use case modelling to indicate the overall flow of the uses case. This diagram type replaces the need for dataflow diagrams but is not a main diagram type for the purposes of analysis and design. Component Diagrams - shows the types of components, their interfaces and dependencies in the software architecture that is the solution to the application being developed Deployment Diagrams - shows actual computing nodes, their communication relationships and the processes or components that run on them http://www.cragsystems.com/itmuml/the02/05the02.htm

The Origins and Diagram Types of UML 1/27/08 9:48 PM 2.5.1 The Origins and Diagram Types of UML 1 Interaction diagrams include 1. Collaboration and class diagrams 2. Statecharts and sequence diagrams 3. Sequence and class diagrams 4. Collaboration and Sequence diagrams 5. Class and object diagrams 2 UML is 1. Language independent 2. Process independent 3. Easy to apply 4. 2 and 3 5. 1 and 2 3 The UML is currently controlled by 1. Rational Software http://www.cragsystems.com/itmuml/the02/05the02q.htm Page 1 of 2

The Origins and Diagram Types of UML 1/27/08 9:48 PM 2. The Object Management Group 3. James Rumbaugh 4. Grady Booch 5. Ivar Jacobson 4 Which of the following statements is true? 1. Object diagrams are the most important diagram type 2. Collaboration diagrams show the relationship between states for a given object 3. Flowcharts are used to show the order in which objects interact 4. Activity diagrams can be used to show the overall flow of a use case 5. Deployment diagrams show the order in which functionality will be made available to users http://www.cragsystems.com/itmuml/the02/05the02q.htm Page 2 of 2

Business Modelling and Web Applications and extending UML 1/27/08 9:38 PM 2.6 Business Modelling and Web Applications and extending UML UML can be used to model a business, prior to automating it with computers. The same basic UML syntax is used, however, a number of new symbols are added, in order to make the diagrams more relevant to the business process world. A commonly used set of these symbols is available in current versions of Rational Rose. The most commonly used UML extensions for web applications were developed by JIm Conallen. You can access his own website to learn more about them by following the link. These symbols are also available in current versions of Rational Rose. UML is designed to be extended in this way. Extensions to the syntax are created by adding 'stereotypes' to a model element. The stereotype creates a new model element from an existing one with an extended, user-defined, meaning. User defined symbols, which replace the original UML symbol for the model element, can then be assigned to the stereotype. UML itself uses this mechanism, so it is important to know what stereotypes are predefined in UML in order not to clash with them when creating new one. Stereotypes allow the UML syntax to be used to model anything. http://www.cragsystems.com/itmuml/the02/06the02.htm

Use Case Diagram 1/27/08 9:38 PM 2.7 Use Case Diagram The use case diagram show the functionality of the system from an outside-in viewpoint. Actors (stick men) are anything outside the system that interacts with the system. Use Cases (ovals) are the procedures by which the actors interact with the system Solid lines indicate which actors interact with the system as part of which procedures Dotted lines show dependencies between use cases, where one use case is 'included' in or 'extends' another. Why Use Use Cases? http://www.cragsystems.com/itmuml/the02/07the02.htm

Class Diagrams 1/27/08 9:38 PM 2.8 Class Diagrams Class diagrams show the static structure of the systems. Classes define the properties of the objects which belong to them. These include: Attributes - (second container) the data properties of the classes including type, default value and constraints Operations - (third container) the signature of the functionality that can be applied to the objects of the classes including parameters, parameter types, parameter constraints, return types and the semantics. Associations - (solid lines between classes) the references contained within the objects of the classes to other objects enabling interaction with those objects. http://www.cragsystems.com/itmuml/the02/08the02.htm

http://www.cragsystems.com/itmuml/the02/08the02q.htm 1/27/08 9:48 PM 2.8.1 1 UML can be extended using stereotypes and used for 1. Business modelling 2. Web Applications 3. 1 and 2 4. Any problem domain 5. None of the above 2 A use case is 1. A sequence of interactions between actors and the system 2. A procedure by which actors interact with the system 3. The way an actor to achieves the goal that is the name of the use case 4. A way of grouping together functional requirements 5. All of the above 3 An association between two classes on a class diagram 1. Allows interaction between the two classes http://www.cragsystems.com/itmuml/the02/08the02q.htm Page 1 of 2

http://www.cragsystems.com/itmuml/the02/08the02q.htm 1/27/08 9:48 PM 2. Allows interaction between the objects of the two classes 3. Shows inheritance between the two classes 4. 1 and 2 5. 2 and 3 http://www.cragsystems.com/itmuml/the02/08the02q.htm Page 2 of 2

Summary and Test 1/27/08 9:38 PM 2.9 Summary and Test UML is just a syntax. It says nothing about how too create a model UMl is well documented but little understood It was developed by Grady Booch, Jim Rumbaugh and Ivar Jacobon at Rational Software UML specifies 8 different diagram. Not all are used in practice. UML can be extended through the use of stereotypes A use case diagram show the functionality of the system from the outside in Class diagrams show the static structure of the systems http://www.cragsystems.com/itmuml/the02/09the02.htm

The Unified Modelling Language - Part 1 1/27/08 9:49 PM 2.9.1 The Unified Modelling Language - Part 1 When you are done, click the button to submit your answers and find out your score. 1. The Unified Modelling Language: A Is easy to use B Is designed just to model software C Is process independent D Is well documented E Defines the order in which to create the diagrams F C and D G B, C and D H C, D and E 2. Before UML, James Rumbaugh and Grady Boochs' original A Language semantics were similar B Graphical symbols were similar C A and B D Neither 3. Which of the following are true? A In most object modelling methods, the object diagram is the most used view of the system B Collaboration and sequence diagrams show similar information C A sequence diagram is a kind of interaction diagram D Deployment diagrams show the types of components, their interfaces and dependencies E B and C F B, C and D G All of the above 4. UML stereotypes: A Can be used to change the original meaning of a model element B Are user definable C Can be used to customise the UML for any modelling purpose D Extend the semantic of a model element E B and C F B, C and D G All of the above 5. On a Use case diagram, interaction between the things outside the system and the system is shown by A Solid lines between actors and use cases B Dotted lines between actors and use cases C Dotted lines between use cases D A and B E B and C F All of the above http://www.cragsystems.com/itmuml/the02/09the02z.htm Page 1 of 2

The Unified Modelling Language - Part 1 1/27/08 9:49 PM 6. On class diagrams, communication between objects is enabled by A Attributes on the classes Grade the Test B Associations between classes C Solid lines between classes D A and B E B and C F All of the above Your score will appear here http://www.cragsystems.com/itmuml/the02/09the02z.htm Page 2 of 2

The Unified Modelling Language - Part 2 1/27/08 9:39 PM 3.The Unified Modelling Language - Part 2 This chapter explains the rest of the different kinds of diagrams available within UML. 1. Sequence Diagram 2. Collaboration Diagram 3. Statechart Diagram 4. Activity Diagram 5. Component Diagram 6. Deployment Diagram 7. Modelling Architecture 8. Summary and Test http://www.cragsystems.com/itmuml/the03/00the03.htm

Sequence Diagram 1/27/08 9:39 PM 3.1 Sequence Diagram Sequence diagrams show potential interactions between objects in the system being defined. Normally these are specified as part of a use case or use case flow and show how the use case will be implemented in the system. They include: Objects - oblong boxes at the top or actors, named or just shown as belonging to a class from or to which messages are sent to other objects. Messages - solid lines for calls and dotted lines to data returns, showing the messages that are send between objects. This includes the order of the messages which is from top of the diagram to the bottom. Object lifelines - dotted vertical lines showing the lifetime of the objects. Activation - the vertical oblong boxes on the object lifelines showing the thread of control in a synchronous system. http://www.cragsystems.com/itmuml/the03/01the03.htm

Collaboration Diagram 1/27/08 9:40 PM 3.2 Collaboration Diagram Collaboration Diagrams show similar information to sequence diagrams, except that the vertical sequence is missing. In its place are: Object Links - solid lines between the objects. These represent the references between objects that are needed for them to interact and so show the static structure at object level. On the links are: Messages - arrows with one or more message name that show the direction and names of the messages sent between objects http://www.cragsystems.com/itmuml/the03/02the03.htm

Statechart Diagram 1/27/08 9:40 PM 3.3 Statechart Diagram Statecharts, often used more in realtiesembedded systems than in information systems, show, for a class, the order in which incoming calls to operations normally occur, the conditions under which the operations respond and the response. They are a class-centric view of system functionality as opposed to sequence and collaboration diagrams which are a use case-centric view of functionality. They include: States - oblong boxes which indicate the stable states of the object between events. Transitions - the solid arrows which show possible changes of state. Events - the text on the transitions before the '/' showing the incoming call to the object interface which causes the change of state. Conditions - a boolean statement in square brackets which qualifies the event. Actions - the text after the '/' which defines the objects response to the transition between states. Extra syntax which defines state centric functionality http://www.cragsystems.com/itmuml/the03/03the03.htm

http://www.cragsystems.com/itmuml/the03/03the03q.htm 1/27/08 9:42 PM 3.3.1 1 The activation on a sequence diagram shows 1. The messages between objects 2. The objects involved in a use case 3. The thread of control in the sequence 4. The condition under which an operation is executed 5. None of the above 2 A collaboration diagram shows 1. The thread of control between objects 2. References between objects 3. Similar information to sequence diagrams 4. 1 and 2 5. 2 and 3 3 An event on a statechart shows 1. What caused the transition http://www.cragsystems.com/itmuml/the03/03the03q.htm Page 1 of 2

http://www.cragsystems.com/itmuml/the03/03the03q.htm 1/27/08 9:42 PM 2. What caused the change of state 3. The action performed on the transition 4. 1 and 2 5. 2 and 3 http://www.cragsystems.com/itmuml/the03/03the03q.htm Page 2 of 2

Activity Diagram 1/27/08 9:41 PM 3.4 Activity Diagram A UML Activity Diagram is as general purpose flowchart with a few extras. It can be used to detail a business process or to help define complex iteration and selection in a use case description. It includes: Active states - oblongs with rounded corners which describe what is done. Transitions - which show the order in which the active states occur and represent a thread of activity. Conditions - (in square brackets) which qualify the transitions. Decisions - (nodes in the transitions) which cause the thread to select one of multiple paths. Swimlanes - (vertical lines the length of the diagram) which allow activities to be assigned to objects. Synch States - horizontal or vertical solid lines which split or merge threads (transitions) http://www.cragsystems.com/itmuml/the03/04the03.htm

Component Diagram 1/27/08 9:41 PM 3.5 Component Diagram Component Diagrams show the types of software components in the system, their interfaces and dependencies. http://www.cragsystems.com/itmuml/the03/05the03.htm

Deployment Diagram 1/27/08 9:41 PM 3.6 Deployment Diagram Deployment diagrams show the computing nodes in the system, their communication links, the components that run on them and their dependencies. http://www.cragsystems.com/itmuml/the03/06the03.htm

Modelling Architecture 1/27/08 9:41 PM 3.7 Modelling Architecture Class diagrams can be used to model hi-level architecture with packages, interfaces and dependencies. Packages are used to group together a set of model elements for various purposes. The results may show: Subsystems - the design view of a software component or re-useable part of a component. Libraries of re-useable elements, usually classes. The hierarchic structure and layering of the system Client-server relationships between components and other model elements Logical dependencies of sub-systems and libraries on one another http://www.cragsystems.com/itmuml/the03/07the03.htm

http://www.cragsystems.com/itmuml/the03/07the03q.htm 1/27/08 9:42 PM 3.7.1 1 In an activity diagram, which of the following is true? 1. A synch state defines a stable state of the system 2. A swim lane can be used to show object interaction 3. A condition qualifies a transition 4. A decision splits the thread into concurrent threads 5. A transition shows a stable state of the system 2 A component diagram shows: 1. Classes and their relationships 2. The types of components in the system 3. Dependencies between components 4. 1 and 2 5. 2 and 3 3 Which of the following is true? 1. Packages appear on sequence diagrams http://www.cragsystems.com/itmuml/the03/07the03q.htm Page 1 of 2

http://www.cragsystems.com/itmuml/the03/07the03q.htm 1/27/08 9:42 PM 2. Dependencies appear on class diagrams 3. Packages show client-server relationships between components 4. 1 and 2 5. 2 and 3 4 Computing nodes on a deployment diagram 1. Show connections between components 2. The components that run on computers 3. What communication links are available between subsystems 4. What processors are available 5. What communication links are available between computers http://www.cragsystems.com/itmuml/the03/07the03q.htm Page 2 of 2

Summary and Test 1/27/08 9:42 PM 3.8 Summary and Test Sequence diagrams show potential interactions between objects in the system in the order in which they normally occur Collaboration diagrams also show interaction between objects, but emphasise the structure required to support them Statecharts are a class-centric view of system functionality An activity diagram is as general purpose flowchart Component diagrams show the types of software components in the system, their interfaces and dependencies Deployment diagrams show the computing nodes in the system, their communication links, the components that run on them and their dependencies Class diagrams can be used to model hi-level architecture with packages, interfaces and dependencies http://www.cragsystems.com/itmuml/the03/08the03.htm

The Unified Modelling Language - Part 2 1/27/08 9:43 PM 3.8.1 The Unified Modelling Language - Part 2 When you are done, click the button to submit your answers and find out your score. 1. The vertical dotted lines on a sequence diagram show A The thread of control in a synchronous system B The messages sent between objects C The lifetime of the object D A and C E A and B F B and C G All of the above 2. On a collaboration diagram, messages: A Are shown as solid lines between objects B Are shown as arrows on the links between objects C Are shown as arrows between objects D May be numbered E Have message names F C, D and E G C and E H B, D and E I All of the above 3. A condition on a statechart A Qualifies an action B Appears in curly brackets C Resolves to true or false D Qualifies a transition E Appears in square brackets F A, B & C G C, D & E 4. On an activity diagram, which of the following is true A An activity diagram is the same as state chart, only with different symbols B A decision steers the thread C A swimlane can represent an activity D A sync state splits or combines the thread E B & C F B & D G C & D 5. A component diagram A Shows the decomposition of the system into subsystems B Shows the decomposition of the systems into software elements C Shows relationships between computing nodes D Shows dependencies between software elements E B & D F C & D http://www.cragsystems.com/itmuml/the03/08the03z.htm Page 1 of 2

The Unified Modelling Language - Part 2 1/27/08 9:43 PM F C & D G B & C H None of the above 6. A deployment diagram A Shows the decomposition of the system into subsystems B Shows the decomposition of the systems into software elements C Shows relationships between computing nodes D Shows dependencies between software elements Shows dependencies between software elements E B & D F C & D G B & C H None of the above 7. A sub-system can represent A Libraries of classes Grade the Test B The design of a component C The design of part of a component D A layer in the architecture E B & C F B & D G B, C & D Your score will appear here http://www.cragsystems.com/itmuml/the03/08the03z.htm Page 2 of 2

The Software Development Process 1/27/08 9:43 PM 4.The Software Development Process In order to make the development of software predictable and repeatable, a process is needed which defines what is done by whom and in what order. When using UML this revolves around the creation of models at different levels of abstraction and increasing levels of detail. This chapter takes you through each step of the process, shows what models are created, and how information flows between them. 1. Business Process Modelling 2. System Requirements Definition 3. The System Analysis Model 4. System Model Information Flow 5. Screen Prototyping 6. The System Design Model 7. Overall Process Flow 8. Incremental Development 9. Summary and Test 10. Course Feedback http://www.cragsystems.com/itmuml/the04/00the04.htm

Business Process Modelling 1/27/08 9:43 PM 4.1 Business Process Modelling A Business Model may be created to better understand the business, either for the purpose of improving the business itself, or as a way of discovering requirements for a computer system. Business processes can be modelled at various levels within the organisation. The model uses all the standard rules of UML and includes some user defined extensions. The differences include: Slightly different symbols for business actors and business use cases (also known as business processes) Some of Jacobson's stereotypes with additions to represent business entities and business workers The system boundary is now the business or the part of the business being modelled http://www.cragsystems.com/itmuml/the04/01the04.htm

System Requirements Definition 1/27/08 9:43 PM 4.2 System Requirements Definition Implementation constraints are modelled separately from the use case model. The logical functional requirements of a systems are modelled using use cases and use case descriptions - documents associated with the use case giving a detailed textual description of the use case flow and other logical constraints. Using use cases for the logical requirements has a number of advantages: It is an outside-in view and easily understood by non-technical people. It is more likely to be complete than a classical functionally decomposed specification. It directly maps into and is traceable to acceptance tests, user documentation and the analysis and design models http://www.cragsystems.com/itmuml/the04/02the04.htm

The System Analysis Model 1/27/08 9:43 PM 4.3 The System Analysis Model The System Analysis Model is made up of class diagrams, sequence or collaboration diagrams and statechart diagrams. Between them they constitute a logical, implementation-free view of the computer system that includes a detailed definitions of every aspect of functionality. This model: Defines what the system does not how it does it. Defines logical requirements in more detail than the use case model, rather than a physical solution to the requirements. Leaves out all technology detail, including system topology http://www.cragsystems.com/itmuml/the04/03the04.htm

System Model Information Flow 1/27/08 9:44 PM 4.4 System Model Information Flow The diagram illustrates the way in which the 3-dimensional system model is developed iteratively from the uses case model in terms of the information which flows between each view. Note that it is not possible fully to develop any one of the three views without the other two. They are interdependent. This is the reason why incremental and iterative development is the most efficient way of developing computer software. http://www.cragsystems.com/itmuml/the04/04the04.htm

http://www.cragsystems.com/itmuml/the04/04the04q.htm 1/27/08 9:44 PM 4.4.1 1 Business process modelling of use cases uses 1. The same symbols as used in analysis 2. Similar symbols with additions 3. Different symbols entirely 4. Doesn't use symbols 2 System requirements defined with use cases map directly into 1. User documentation 2. System acceptance tests 3. The analysis model 4. The design model 5. All of the above 3 The system analysis model leaves out 1. Topology 2. Technology http://www.cragsystems.com/itmuml/the04/04the04q.htm Page 1 of 2

http://www.cragsystems.com/itmuml/the04/04the04q.htm 1/27/08 9:44 PM 3. Functionality 4. 1 and 2 5. 2 and 3 4 Information flows from the interaction model to the 1. state model 2. object model 3. use case model 4. 1 and 2 5. 2 and 3 http://www.cragsystems.com/itmuml/the04/04the04q.htm Page 2 of 2

Screen Prototyping 1/27/08 9:44 PM 4.5 Screen Prototyping Screen prototyping can be used as another useful way of getting information from the users. When integrated into a UML model, The flow of the screen is made consistent with the flow of the use case and the interaction model. The data entered and displayed on the screen is made consistent with the object model. The functionality in the screen is made consistent with the interaction and object models. http://www.cragsystems.com/itmuml/the04/05the04.htm

The System Design Model 1/27/08 9:44 PM 4.6 The System Design Model This model is the detailed model of everything that is going to be needed to write all the code for the system components. It is the analysis model plus all the implementation detail. Preferable it should be possible automatically to generate at least frame code from this model. Then if any structural changes to the code are made in the design model first and then forward re-generated, this ensures that the design model accurately reflects the code in the components. The design model includes: Class, sequence or collaboration and state diagrams, as in the analysis model, but now fully defined ready for code generation Component diagrams defining all the software components, their interfaces and dependencies Deployment diagrams defining the topology of the target environment including which components will run on which computing nodes http://www.cragsystems.com/itmuml/the04/06the04.htm

Overall Process Flow 1/27/08 9:44 PM 4.7 Overall Process Flow The overall process flow must allow for both rework and incremental development. Rework - where changes need to be made, the earliest model that the change affects is changed first and the results flowed forward through all the other models to keep them up to date. Incrementation - increments can restart at any point, dependent on whether the work needed for this increment has already been completed in higher level models. http://www.cragsystems.com/itmuml/the04/07the04.htm

Incremental Development 1/27/08 9:45 PM 4.8 Incremental Development Incremental Development is based on use cases or use case flows which define working pieces of functionality at the user level. In an increment, the models required to develop a working software increment are each incremented until a working, tested executing piece of software is produced with incremental functionality. This approach: Improves estimation, planning and assessment. Use cases provide better baselines for estimation than traditionally written specifications. The estimates are continuously updated and improved throughout the project. Allows risks to the project to be addressed incrementally and reduced early in the lifecycle. Early increments can be scheduled to cover the most risky parts of the architecture. When the architecture is stable, development can be speeded up. Benefits users, managers and developers who see working functionality early in the lifecycle. Each increment is, effectively, a prototype for the next increment. http://www.cragsystems.com/itmuml/the04/08the04.htm

http://www.cragsystems.com/itmuml/the04/08the04q.htm 1/27/08 9:45 PM 4.8.1 1 Screen prototyping can be integrated with 1. the use case model 2. the interaction model 3. the object model 4. 1 and 2 5. 1, 2 and 3 2 The UML system design model may include 1. 1 diagram type 2. 2 diagram types 3. 3 diagram types 4. 4 diagram types 5. 5 diagram types 3 An increment starts at 1. requirements http://www.cragsystems.com/itmuml/the04/08the04q.htm Page 1 of 2

http://www.cragsystems.com/itmuml/the04/08the04q.htm 1/27/08 9:45 PM 2. analysis 3. design 4. coding 5. any point in the waterfall 4 A increment produces 1. increased system functionality 2. a working executable 3. a tested executable 4. implemented use cases 5. all of the above http://www.cragsystems.com/itmuml/the04/08the04q.htm Page 2 of 2

Summary and Test 1/27/08 9:45 PM 4.9 Summary and Test After taking the test, please complete the Course Feedback on the next page. A software process is needed to make a software development predictable and repeatable UML can be used to model business processes and structure Functional requirements are defined with use cases and use case descriptions A system analysis model is a technology-free model of the detail of what the system will do The system design model is a detailed model of the software structure of the system down to class property level The use case model feeds the object, interaction and state models which are interdependent Screen prototyping can be integrated with the other views of the system The classic waterfall process should be augmented by both rework (iterative) and incremental loops Incremental development improves estimation, planning, assessment and software quality http://www.cragsystems.com/itmuml/the04/09the04.htm

http://www.cragsystems.com/itmuml/the04/09the04z.htm 1/27/08 9:45 PM 4.9.1 When you are done, click the button to submit your answers and find out your score. 1. The boundary of the business model is A The aspects of the system model needed to define the system B The business itself C The part of the business being modelled D A or B E A or C F B or C 2. The use case model includes A Physical requirements B Logical requirements C Functional requirements D Business requirements to be automated E Business requirements that are not automated F A, B & C G B, C and D H C, D & E I All of them 3. The system analysis model A Includes statecharts B Defines what the system does C Is a detailed set of logical requirements D Does not contain implementation detail E A, B & C F All of the above 4. Which of the following statements best describes the approach to system model development? A Elements of a system model are created in a particular order B The object model is the only essential part of the model C Each of the three orthogonal views depends on the other two D The use case view is one of the three orthogonal views E Any two of the three orthogonal views is a sufficient definition of the system 5. Which of the following is true A Prototype screens are a useful way of eliciting information from users B The screen flow must be consistent with the object model C The data entered on the screen should be consistent with the object model D A & B E A & C F B & C G None of the above 6. In UML, how many diagrams types are needed for a full definition of the design model? http://www.cragsystems.com/itmuml/the04/09the04z.htm Page 1 of 2

http://www.cragsystems.com/itmuml/the04/09the04z.htm 1/27/08 9:45 PM 7. If a change is made to a model, then the models that need to be updated are A Only the model that has been changed B All models prior to the one that has been changed C All models subsequent to the one that has been changed D The earliest model affected and all subsequent models E All the models 8. Risk-based scheduling of increments A Uses use cases or use case flows as units of functionality Grade the Test B Improves estimation C Produces a stable architecture early in the lifecycle D Reduces risk early in the lifecycle E A, B & C F B, C & D G A, C & D Your score will appear here http://www.cragsystems.com/itmuml/the04/09the04z.htm Page 2 of 2