Software Service Engineering

Similar documents
SOFTWARE DESIGN COSC 4353 / Dr. Raj Singh

Course "Softwaretechnik" Book Chapter 2 Modeling with UML

MSc programme (induction week) Department of Informatics INTRODUCTION TO UML

UML diagrams. Software artifacts include: SRS, SDS, test cases, source code, technical/user manual, software architecture, etc.

Introduction to Software Engineering. 5. Modeling Objects and Classes

UNIT 5 - UML STATE DIAGRAMS AND MODELING

SOFTWARE ENGINEERING UML FUNDAMENTALS. Saulius Ragaišis.

UML Fundamental. OutLine. NetFusion Tech. Co., Ltd. Jack Lee. Use-case diagram Class diagram Sequence diagram

Engineering Design w/embedded Systems

An Introduction To Object Modeling System Concept for Object Modeling The Overall View Components of UML Diagram

UML (Unified Modeling Language)

The Unified Modeling Language (UML)

CISC 322 Software Architecture

Lecture 33 April 4, Unied Modelling Language. ECE155: Engineering Design with Embedded Systems Winter Patrick Lam version 1

Software Engineering Lab Manual

UML & OO FUNDAMENTALS CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 3 08/30/2011

Object Oriented Modeling

UNIT-I Introduction of Object Oriented Modeling

Unified Modeling Language (UML)

Chapter 10. Object-Oriented Analysis and Modeling Using the UML. McGraw-Hill/Irwin

Meltem Özturan

Practical UML - A Hands-On Introduction for Developers

Topic 3 Unified Modeling Language UML. Objective: Student will use UML to represent relationshiops between objects, its structure and dynamics.

CS 451 Software Engineering

UML Modeling I. Instructor: Yongjie Zheng September 3, CS 490MT/5555 Software Methods and Tools

Introduction to Software Engineering. 5. Modeling Objects and Classes

Practical UML : A Hands-On Introduction for Developers

UML Tutorial. Unified Modeling Language UML Tutorial

Object Oriented Design. Program Design. Analysis Phase. Part 2. Analysis Design Implementation. Functional Specification

SEEM4570 System Design and Implementation. Lecture 10 UML

MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION (Autonomous) (ISO/IEC Certified)

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

16.1 Introduction... 2

UML big picture. Perdita Stevens. School of Informatics University of Edinburgh

Unified Modeling Language (UML)

2 UML for OOAD. 2.1 What is UML? 2.2 Classes in UML 2.3 Relations in UML 2.4 Static and Dynamic Design with UML. UML for OOAD Stefan Kluth 1

Today s Topic. Lecture 5. What is UML? Why Use UML. UML Diagrams. Introduction to UML. What is UML Why use UML? UML Diagrams

From Analysis to Design. LTOOD/OOAD Verified Software Systems

UML: Unified Modeling Language

History of object-oriented approaches

Software Development. Modular Design and Algorithm Analysis

Lab Manual. Object Oriented Analysis And Design. TE(Computer) VI semester

Interactions A link message

UNIT-4 Behavioral Diagrams

Introduction to Software Engineering. 6. Modeling Behaviour

Lesson 11. W.C.Udwela Department of Mathematics & Computer Science

What s Next. INF 117 Project in Software Engineering. Lecture Notes -Spring Quarter, Michele Rousseau Set 6 System Architecture, UML

MechEng SE3 Lecture 7 Domain Modelling

12 Tutorial on UML. TIMe TIMe Electronic Textbook

UML & OO Fundamentals. CSCI 4448/5448: Object-Oriented Analysis & Design Lecture 3 09/04/2012

Software Development Methodologies

INTERACTION ARCHITECTURAL MODELING. Lecture 9 Interaction Architectureal Modeling

Unit-1 INTRODUCTION 1.1 CATEGORIES OF INFORMATION SYSTEMS SYLLABUS:

SEEM4570 System Design and Implementation Lecture 11 UML

Class diagrams. Modeling with UML Chapter 2, part 2. Class Diagrams: details. Class diagram for a simple watch

Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page:

02291: System Integration

MAHARASHTRA STATE BOARD OF TECHNICAL EDUCATION (Autonomous) (ISO/IEC Certified)

02291: System Integration

Object-Oriented Design

What is a Class Diagram? A diagram that shows a set of classes, interfaces, and collaborations and their relationships

What is a Class Diagram? Class Diagram. Why do we need Class Diagram? Class - Notation. Class - Semantic 04/11/51

Use Case Model. Static Structure. Diagram. Collaboration. Collaboration. Diagram. Collaboration. Diagram. Diagram. Activity. Diagram.

CS 370 REVIEW: UML Diagrams D R. M I C H A E L J. R E A L E F A L L

Introducing the UML Eng. Mohammed T. Abo Alroos

What is a Model? Copyright hebley & Associates

UNIT V *********************************************************************************************

Exercise Unit 2: Modeling Paradigms - RT-UML. UML: The Unified Modeling Language. Statecharts. RT-UML in AnyLogic

administrivia today UML start design patterns Tuesday, September 28, 2010

APPENDIX M INTRODUCTION TO THE UML

LABORATORY 1 REVISION

Principles of Software Construction: Objects, Design and Concurrency. Just enough UML. toad

Introduction to UML. (Unified Modeling Language)

CIS 771: Software Specifications

UML Primer. -Elango Sundaram

Representing System Architecture

Basic Structural Modeling. Copyright Joey Paquet,

Unified Modeling Language (UML) Class Diagram

OO Analysis and Design with UML 2 and UP

Object-Oriented Software Engineering Practical Software Development using UML and Java

Software Engineering

How and Why to Use the Unified Modeling Language. among software components, architectural-based

UML- a Brief Look UML and the Process

UML 2.0 UML 2.0. Scott Uk-Jin Lee. Division of Computer Science, College of Computing Hanyang University ERICA Campus

Object-Oriented and Classical Software Engineering

Enterprise Architect Training Courses

Architecture and the UML

Object-Oriented Analysis and Design Using UML

UML Component Diagrams A.Y 2018/2019

Today s Agenda UML. CompSci 280 S Introduction to Software Development. 1.Introduction UML Diagrams. Topics: Reading:

i219 Software Design Methodology 1. Overview of software design methodology Kazuhiro Ogata (JAIST) Outline of lecture

A PROPOSAL FOR MODELING THE CONTROL SYSTEM FOR THE SPANISH LIGHT SOURCE IN UML

VISHNU INSTITUTE OF TECHNOLOGY Vishnupur, BHIMAVARAM

COSC 3351 Software Design. An Introduction to UML (I)

Object Orientated Analysis and Design. Benjamin Kenwright

Course 3 7 March

Object Oriented Analysis and Design - Part2(Design)

Dr.S.S.Riaz Ahamed Principal, Sathak Institute of Technology, Ramanathapuram,India.

Software Engineering from a

1. Introduction to Object Oriented Software Development

Transcription:

Software Service Engineering Lecture 4: Unified Modeling Language Doctor Guangyu Gao Some contents and notes selected from Fowler, M. UML Distilled, 3rd edition. Addison-Wesley

Unified Modeling Language 1. Introduction 2. Use case diagram 3. Activity diagram 4. Class diagram 5. State machine diagram 6. Other diagrams of interest 7. UML in the software process (Source: Fowler, M. UML Distilled, 3 rd edition. Addison-Wesley, 2004)

1. Introduction: Origins of UML

Origins of UML In the 1980s, object-oriented programming moved from research labs into the real world Smalltalk and C++ became popular languages and various people started thinking about object-oriented graphical design languages Between 1988 and 1992, the key authors were Booch, Coad, Jacobson, Odell, Rumbaugh, Shlaer, Mellor, and Wirfs-Brock Each author was informally leading a group of practitioners who liked those ideas The same basic OO concepts would reappear in very different notations, causing confusion with clients When Jim Rumbaugh left GE to join Grady Booch at Rational, an alliance was formed and a critical mass of market share occurred In 1997, Rational released UML 1.0 4

Origins of UML (continued) Consists of a family of graphical notations that help in describing and designing software systems Focuses particularly on software systems built using the objectoriented style Controlled by the Object Management Group, which is an open consortium of companies Comes from the unification of many OO graphical modeling languages that thrived in the 1980s and early 1990s 5

1. Introduction: Ways of using UML

As a Sketch Most common use of UML Used to help communicate some aspect of a system and to better understand it Used for both forward engineering (i.e., build diagrams before coding) and reverse engineering (i.e., build diagrams from existing code) Strives to be informal and dynamic Only emphasizes those classes, attributes, operations, and relationships that are of interest More concerned with selective communication than complete specification 7

As a Blueprint Goal is completeness Is more definitive, while the sketch approach is more explorative Used to describe a detailed design for a programmer to follow in writing source code Notation should be sufficiently complete so that a programmer can follow it in a straightforward manner Can be used by a designer to develop blueprint-level models that show interfaces of subsystems or classes Developers then work out the implementation details As a reversed engineered product, diagrams convey detailed information about the source code that is easier for developers to understand 8

As a Programming Language Specifies the complete system in UML so that code can be automatically generated Looks at UML from a software perspective rather than a conceptual perspective which concentrates on the domain of study Diagrams are compiled directly into executable code so that the UML becomes the source code Challenge is making it more productive to use UML rather than some another programming language Another concern is how to model behavioral logic Done with interaction diagrams, state diagrams, and activity diagrams 9

Comparing and Contrasting Ways of Using UML UML sketches are useful with both forward and reverse engineering and in both conceptual and software perspectives Detailed forward engineering blueprints are difficult to do well and slow down the development effort Actual implementation of interfaces will reveal the needs for changes The value of reversed engineered blueprints depends on the CASE tool A dynamic browser would be very helpful; a thick document wastes time and resources UML as a programming language will probably never see significant usage Graphical forms have not shown to be more productive in writing code than textual code for most programming tasks 10

UML Diagram What is UML? The Unified Modeling Language (UML) is a standard language for Specifying Visualizing Constructing Documenting Business Modeling Communications 11

Different Views Users Designers Analyzers 12

1. Introduction: UML Diagrams

Types of UML Diagrams Diagram Name Activity Class (*) Communication Component Composite Structure Deployment Interaction overview Purpose Models procedural and parallel behavior Models classes, attributes, operations and relationships Models interaction between objects Models structure and connection of components Models runtime decomposition of a class Models deployment of artifacts to nodes Mixes the sequence and activity diagram (more on next slide) 14

Types of UML Diagrams (continued) Diagram Name Object Package Sequence State Machine (*) Timing Use Case (*) Purpose Models example configurations of instances Models compile-time hierarchical structure Models sequence interaction between objects Models how events change an object over its life Models timing interaction between objects Models how users interact with a system (*) Denotes diagrams that we will use in this course 15

Classification of Diagram Types Diagram Structure Diagram Class Diagram Composite Structure Diagram Object Diagram Component Diagram Deployment Diagram Package Diagram Behavior Diagram Use Case Diagram Activity Diagram Interaction Diagram Sequence Diagram Communication Diagram Interaction Overview Diagram State Machine Diagram Timing Diagram 16

2. Use Case Diagram

Use case diagram System boundary Actor overview the usage requirements presentations project stakeholders "the meat" of the actual requirements System Use Actor: boundary: case: Use case An A use actor indicates case is a describes person, the scope organization, a sequence of your of or external actions system. system that Anything provide that plays within something a role the box in of one represents or measurable more interactions functionality value to with an that actor your is in and system scope is and drawn anything as a outside horizontal the box ellipse is not Online C2C shopping 18

Use Case Diagram Use cases serve as a technique for capturing the functional requirements of a system Describes the typical interactions between the users of a system and the system itself, providing a narrative of how a system is used A use case consists of a set of one or more scenarios tied together by a common user goal A scenario is a sequence of steps describing an interaction between a user and a system; some scenarios describe successful interaction; others describe failure or errors Users are referred to as actors; an actor is a role that carries out a use case An actor need not always be a person; it can also be an external system that is either automated or manual 19

Use Case Diagram (continued) A use case diagram is like a graphical table of contents of the use cases for a system It shows the use cases, the actors, and the relationships between them Use cases represent an external view of the system; consequently, they have no correlation to the classes in the system They can serve as a starting point for writing software validation test cases 20

Example Use Case Diagram Make automated menu selections Expert Menu System Order food and drink Customer Notify customer that food and drink are ready Cook Pay for food and drink Payment System 21

3. Activity Diagram

Activity Diagram Serves as a technique to describe procedural logic, business process logic, and work flow Is similar to a flowchart except that it can also show parallel behavior States the essential sequencing rules to follow, thereby allowing concurrent algorithms to be used Consequently, an activity diagram allows whoever is doing the process to choose the order in which to do certain things Can be used to describe the actions in a use case 23

Example Activity Diagram Set counter = positive n Set accumulator = initial value n > 1 F Set accumulator = accumulator * n Set n = n - 1 T F (n mod 5) == 0 T Display accumulator value Return accumulator value 24

4. Class Diagram

Class Diagram Name Class diagrams show the classes of the system, their interrelationships (including inheritance, aggregation, and association), and the operations and attributes of the classes. Attributes Relations Associations Aggregation Generalization Operations 26

Class Diagram Describes the types of objects in the system and the various kinds of static relationships that exist among them Also shows the properties and operations of a class and the constraints that apply to the way objects are connected A class box has three parts: Name of the class Attributes of the class Operations of the class Name Attributes Operations Properties represent structural features of a class and consist of attributes and associations 27

Attribute visibility name: type multiplicity = default {property-string} Example + criticalmsg: String [1] = "Error message" {readonly} Syntax Visibility marker: public (+) or private (-) Name: name of the attribute in the programming language Type: Type of the attribute in the programming language Multiplicity: how many objects fill the property Default: Default value of the attribute at instantiation {property-string}: additional properties of the attribute Describes a property as a line of text within the class box Used for representing value types 28

Association Represented by a solid line between two classes directed from the source class to the target class Used for representing (i.e., pointing to) object types The name of the association goes at the target end of the association together The target end of the association links to the class that is the type of the property Multiplicities can be shown at both ends but are usually at the target end Arrows may be bidirectional Source 1..n Name Target 29

Aggregation and Composition Aggregation and composition are sometimes viewed as special types of associations and have their own UML symbol of a diamond at the source end of a line Aggregation is a part-of relationship Composition is more restrictive than aggregation The diamond is filled in (i.e. shaded) The part pointed to does not continue to exist without the whole Source 1..n Name Target 30

Operation visibility name (parameter-list) : return-type {property-string} Example: + computetotal (account: Account) : float Syntax Visibility marker: public (+) or private (-) Name: name of the operation in the programming language Parameter-list: list of parameters passed to the operation Syntax: direction name : type = default-value Direction is (in), (out), or (inout); default is (in) Return-type: Type of the return value if there is one {property-string}: additional properties of the operation Portrays actions that a class knows to carry out Corresponds to the methods of a class Operations may be queries or modifiers; modifiers change the state of any object Set and get operations are implied and therefore not shown 31

Generalization Portrays inheritance between a super class and a subclass Is represented by a line with a triangle at the target end as shown below Super class Subclass Subclass 32

Dependency A dependency exists between two elements if changes to the definition of one element (i.e., the source or supplier) may cause changes to the other element (i.e., the client) Examples One class sends a message to another class One class mentions another as a parameter to an operation Once a dependency is created, if a class changes its interface, any message sent to that class may no longer be valid A general rule is to minimize dependencies and be wary of cycles Class Class 33

Example Class Diagram Accountant Auditor Record Keeper Input Verifier Production Manager Transaction Processor Error Log Input Handler Report Generator Account Account List 1..n Local File Handler Remote File Handler Accounts Receivable Accounts Payable 34

When to Use Class Diagrams Class diagrams are the backbone of UML and are the most used diagrams Normally use only a subset of the notations available: class box, attributes, operations, association, aggregation, and generalization Class diagrams only model software structure; consequently, it is easy to get too focused on class diagrams and ignore behavior Use a state diagram to model the behavior of a class Use a sequence diagram to model interactions (i.e., behavior) among objects of various classes 35

5. State Machine Diagram

State Machine Diagram A State Machine diagram shows the possible states of the object and the transitions that cause a change in state.? What is different between activities and Statemachine diagram Activity diagrams describe activities and state charts describe states. So those models are orthogonal - you might imagine there is an activity between two states (something that occurs during the transition) and you might say there is a state between two activities. 37

State Machine Diagram Commonly called a state diagram A state diagram describes the behavior of a system In object-oriented technology, a state diagram shows the lifetime behavior of a single object A state diagram captures the behavior of a state across several use cases A state diagram consists of states and transitions Note that a state diagram is NOT a set of processes connected by lines representing data input and output A state is characterized by the current values of an object's attributes and its name reflects some ongoing activity or state A transition indicates a movement from one state to another because an event has occurred; this transition changes one or more attribute values of the class 38

Transition trigger-signature [guard]/activity Syntax Trigger-signature: a single event that triggers a potential change of state Guard: a Boolean condition that must be true for the transition to be taken Activity: some behavior that is executed during the transition All three parts of the transition label are optional A missing guard means the transition is taken every time the event occurs A missing activity indicates that nothing extra is done during the transition A missing trigger-signature is rare; this means the transition is immediately taken and usually occurs in activity states When an event occurs in a state, each corresponding transition out of the state must be unique Multiple transitions with the same event must have guards on them that are mutually exclusive; otherwise its non-deterministic If an event occurs for which there is no transition labeled, then the event is ignored in that state 39

Activity State In some states, an object is inactive as it waits for the next event before it does something In an activity state, the object is doing some ongoing work The work may take a finite amount of time A transition from the state cannot occur until the work is done This is represented by "do/ activity" notation in the state box 40

Example State Diagram pop / return error push [n 2 < max] Empty Stack push pop [n == 1] Partially Filled Stack pop [n > 1] pop [n == max] push [n - 1 == max] Full Stack push [n >= max] / set n to max; return error 41

Three Ways to Implement a State Diagram in Source Code A double-nested switch statement Each case label in a switch has its own internal switch statement The case labels of the external switch are various states The case labels of each internal switch are events Guards are implemented as Boolean conditions A state table with columns for source state, target state, event, guard, and activity The state pattern, which creates a hierarchy of state classes to handle behavior of the states 42

6. Other Diagrams of Interest

Sequence Diagram Object: Class A sequence diagram is An interaction diagram that details how operations are carried out. What messages are sent and when. Sequence diagrams are organized according to time Message Operations Lifeline 44

Sequence Diagram Captures the behavior of a single scenario in a use case Shows a number of example objects and messages that are passed between those objects within the use case The columns of the diagram represent each object involved in the use case The life time of an object progresses from the top of the diagram to the bottom Clearly illustrates the calls between participants and the sequence of those calls Gives a good picture about which participants are doing which processing 45

Sequence Diagram (continued) Can exhibit centralized control or distributed control In centralized control, one participant does all of the processing In distributed control, processing is split among many participants Distributed control gives more opportunities for using polymorphism rather than using conditional logic Use a sequence diagram when you want to look at the behavior of several objects within a single use case When not to use a sequence diagram If you want to look at the behavior of a single object across many use cases, use a state diagram If you want to look at the behavior of several objects across many scenarios, use an activity diagram 46

Object Diagram Represents a snapshot of the objects in a system at a point in time Shows instances rather than classes, therefore it is sometimes called an instance diagram When to use object diagrams To show examples of objects connected together based on a specific multiplicity number To show instances with values for their attributes 47

Package Diagram Used to take any construct in UML and group its elements together into higher-level units Used most often to group classes Corresponds to the package concept in Java Represented by a tabbed folder, where the tab contains the package name Can show dependencies between packages The more dependencies coming into a package, the more stable its interface needs to be 48

Deployment Diagram Shows a system's physical layout, revealing which pieces of software run on which computer platforms Uses rectangles to represent nodes and lines to represent communication paths between nodes Nodes contain artifacts, which are the physical manifestations of software (i.e., executable and data files) Listing an artifact in a node shows that the artifact is deployed to that node in the running system Artifacts can be shown either as class boxes or by just listing the name in the node Communication paths can be labeled based on the protocols that they use Can be used as a configuration management tool to show an "as is" system architecture and a proposed "to be" system architecture for an organization 49

Activities Diagram Start Fork Activity diagrams describe the workflow behaviour of a system Branch Merge Joint End 50

7. UML in the Software Process

Fitting UML into Software Requirements Analysis A use case diagram helps describe how people interact with the system An activity diagram shows the context for use cases and also the details of how a complicated use case works A class diagram drawn from the conceptual perspective is a good way of building up a rigorous vocabulary of the domain It also shows the attributes and operations of interest in domain classes and the relationships among the classes A state diagram shows the various states of a domain class and events that change that state 52

Fitting UML into Software Design A class diagram drawn from the software perspective can show design classes, their attributes and operations, and their relationships with the domain classes A sequence diagram helps to combine use cases in order to see what happens in the software A package diagram shows the large-scale organization of the software A state diagram shows the various states of a design object and events that change that state A deployment diagram shows the physical layout of the software 53

Fitting UML into Software Documentation Complements the written documentation and in some instances can replace it Captures the outcome of the requirements analysis and design activities in a graphical format Supplies a software maintainer with an overall understanding of a system Provides a good logical roadmap of the system layout Describes the various states in which a system may exist Details complex algorithms in a more understandable form Shows how multiple objects collaborate in the system 54