OODA Notes
OODA Notes
Table of Contents 1. 2. 3. 4. 5. Overview...............................................................................................................1 Objectives .............................................................................................................1 Prerequisites..........................................................................................................2 Methodology ..........................................................................................................2 Content .................................................................................................................2 5.1. Introduction.....................................................................................................2 5.2. Object-Orientation............................................................................................2 5.3. UML Basics ......................................................................................................3 5.4. UML Modelling..................................................................................................3 5.4.1. Requirements ............................................................................................3 5.4.2. Architecture...............................................................................................3 5.4.3. Design ......................................................................................................3 5.4.4. Implementation .........................................................................................4 5.4.5. Deployment...............................................................................................4 5.5. Unified Process ................................................................................................4 5.6. Tools ..............................................................................................................4 5.7. Summary ........................................................................................................4 6. Assessment ...........................................................................................................4 7. Organization ..........................................................................................................4 References ................................................................................................................6 Appendix...................................................................................................................7 A. Slides ...................................................................................................................7 A.1. Introduction ....................................................................................................7 A.2. Object Orientation .......................................................................................... 12 A.2.1. Background ............................................................................................. 12 A.2.3. Concepts................................................................................................. 17 A.2.4. Object Oriented Analysis ........................................................................... 28 A.2.5. Object Oriented Design ............................................................................. 30 A.3. UML Basics .................................................................................................... 33 A.3.1. UML Background ...................................................................................... 33 A.3.2. UML Building Blocks ................................................................................. 36 A.3.3. Modelling Views ....................................................................................... 49 A.4. Requirements ................................................................................................ 53 A.4.1. Software Requirements............................................................................. 53 A.4.2. Use Case Modelling .................................................................................. 58 A.4.3. Conceptual Modelling................................................................................ 66 A.4.4. Behavioural Modelling............................................................................... 76 A.5. Architecture................................................................................................... 94 A.5.1. Software Architecture ............................................................................... 94 A.5.2. Collaboration Diagrams........................................................................... 100 A.5.3. Component Diagrams ............................................................................. 106 A.5.4. Packages .............................................................................................. 111 A.5.5. Frameworks and Patterns........................................................................ 115 A.6. Design ........................................................................................................ 123 A.6.1. Software Design..................................................................................... 123 A.6.2. Design Class Diagrams ........................................................................... 127 A.6.3. Activity Diagrams................................................................................... 134 A.6.4. Sequence Diagrams................................................................................ 141 A.6.5. Statechart Diagrams............................................................................... 146 A.6.6. Design Patterns ..................................................................................... 153
w .k
in
in
di a
.c
om
Table of Contents
ii
A.7. Implementation ........................................................................................... 159 A.8. Deployment................................................................................................. 163 A.9. Unified Process ............................................................................................ 167 A.10. UML Tools.................................................................................................. 174 A.11. Summary .................................................................................................. 178 B. Assessment ....................................................................................................... 186 B.1. Set 1 .......................................................................................................... 186 B.2. Set 2 .......................................................................................................... 189
w .k
in
in
di a
.c
om
Introduction
1. Overview The Unified Modelling Language (UML) is a graphical language for visualising, specifying, constructing, and documenting artefacts of software intensive systems [6]. UML represents the unification of a number of efforts to build notations for expressing models of Object Oriented Analysis and Design (OOAD) under the auspices of the Object Management Group (OMG). At present, UML is the de-facto standard for Object Oriented modelling. This document describes the course Object Oriented Analysis and Design with UML taught to the Core and Extended Teams in the context of the e-Macao Project. The course presents the method of Object Oriented Analysis and Design (OOAD) using the UML notation. Following the introduction of basic concepts and principles of object orientation, the course shows how informal requirements can be described in details. Considering four views of a typical system - user, static, dynamic and implementation, each of the nine UML diagrams are discussed extensively for modelling these views. For instance, the course describes: (i) use cases for modelling requirements, (ii) class and object diagrams for obtaining good understanding of an application domain and (iii) sequence, collaboration and statechart diagrams for analyzing requirements and specifying architectural and design decisions. In addition, the course teaches the best practices in OOAD based on architectural and design patterns and how UML can be used in the context of the Unified Process (UP). It concludes with a comparative analysis of some popular UML tools. The rest of this document is as follows. Sections 2, 3 and 4 explain respectively the objectives, prerequisites and methodology for teaching the course. The content of the course is introduced in Section 5. The assessment and organization of the course are explained in Sections 6 and 7. Following references, Appendix A includes the complete set of slides and Appendix B contains two sets of assessment questions with answers.
The objectives of the course are as follows: 1) Teaching the basic concepts and principles of Object Orientation including Object Oriented Analysis and Design. 2) Introducing the Syntax, Semantics and Pragmatics of the Unified Modeling Language. 3) Showing how requirements can be described informally and how they are modeled using Use Case Diagrams. 4) Teaching how the structural and behavioral aspects of a system can be analyzed, specified and designed using Class, Interaction and Statechart Diagrams. 5) Showing how implementation and deployment details of a system can be modeled using the Implementation and Deployment Diagrams respectively. 6) Teaching best practices in OOAD based on Architecture and Design patterns. 7) Introducing the Unified Process and showing how UML can be used within the process. 8) Presenting a comparison of the major UML tools for industrial-strength development.
w .k
2. Objectives
in
in
di a
.c
om
Introduction
3. Prerequisites This course assumes that the learner possesses the basic knowledge of application development. No prior knowledge of Object Orientation is required.
4. Methodology The course has been designed based on the following didactic principles: Depth versus Breadth - As a foundation, an attempt has been made to cover the various aspects of UML as required in practical applications, without much loss of depth. Academic Orientation A body of concepts is defined rigorously and incrementally to establish a foundation for proper understanding and use of technology. From Definitions to Demonstrations All major concepts introduced during the course are illustrated with small-size examples which are also demonstrated on the computer, whenever possible. From Demonstrations to Assignments On the basis of demonstrations, students are asked to perform different tasks with increasing level of difficulty and independence. Generally, instructors are expected to administer the course material in a tutorial style. Unlike most courses or materials available on UML, this course teaches UML from an application perspective rather than the usual notation perspective.
5. Content
5.1. Introduction
The Introduction section provides information on the aims of the course, the outline of each section, and the schedule for the course as delivered within the context of the e-Macao Project. This part is covered in the slides 1 through 16.
5.2. Object-Orientation This section is covered in the slides 17 through 83. It presents the background, principles and fundamental concepts of Object Orientation: Object, Class, Abstraction, Interface, Implementation, Aggregation, Composition, Generalization, Sub-Class and Polymorphism. The section concludes with the presentation of Object Oriented Analysis and Design.
w .k
The course is organized into six major sections: Object-Orientation, UML Basics, UML Modelling, Unified Process, UML Tools and Summary. The synopses for these sections are presented below. The course starts with an Introduction section, which describes the contents presented in subsequent sections, including the organizational aspect of the course. The course consists of 618 slides divided into six major sections: Introduction, Object Orientation, UML Basics, UML Modelling, Unified Process and UML Tools.
in
in
di a
.c
om
Introduction
5.3. UML Basics The section provides a brief presentation of UML. It starts by explaining what modelling entails and why it is important for software and system engineering. Next, it outlines the basic building blocks of UML: Elements, Relationships and Diagrams. Finally, the section presents five basic modelling views supported by UML: Use Case, Design, Process, Implementation and Deployment. This section is covered in the slides 84 through 151.
5.4. UML Modelling The section constitutes the major part of the course. It presents the nine UML diagrams and how they are applied through the five modelling activities: Requirements, Architecture, Design, Implementation and Deployment. The following sections are devoted to each of these modelling activities.
5.4.1. Requirements
5.4.2. Architecture
5.4.3. Design The section, covered in the slides 404 through 526, starts with an introduction to System and Object Design activities. Next, it presents Design Classes as foundation of the whole development. The steps involved in building Design Class Diagrams are described, from reviewing conceptual classes, to decorating design class attributes with data types, to providing default values and constraints. Furthermore, Activity Diagrams are presented for describing business processes, procedures or algorithms. Sequence and Statechart Diagrams are revisited in the discussion of detailed design of both internal and external behaviours of system objects. The section is concluded with a discussion on Design Patterns.
The section starts by introducing the various concepts related to Architectural Design: SubSystems, Services, Coupling, Cohesion and Layering. Next, it presents Collaborations and how they can be used to model the functional units of a system. Static and dynamic aspects of collaborations are covered as well. Collaboration Diagrams are presented as the major diagram for architecture modelling. Packages are introduced for organizing or modularizing the functional units of a system. The section ends with a discussion of the set of major architectural patterns: Repository, Model-View-Controller, Client-Server, Peer-to-Peer and Pipe-and-Filter. This section is presented in the slides 300 through 403.
w .k
in
in
di a
This section teaches about requirements in general. It shows how requirements can be described informally and how they can be modelled as Use Cases. In addition, the section presents how the basic concepts and entities of an application domain can be described using Class and Object Diagrams. Furthermore it teaches how Interaction and Statechart Diagrams can be used to specify class and object interactions and their internal behaviours respectively. This Section is covered in the slides 152 through 299.
.c
om
Introduction
5.4.4. Implementation This section presents Components Diagrams and how they can be used to specify implementation artefacts: Source Code, Executable Releases and Physical Databases. Implementation modelling is covered in the slides 527 through 540.
5.4.5. Deployment This section teaches how Component Diagrams and Nodes can be used to describe the deployment environment of a system. Slides 541 to 554 contain this Section.
5.5. Unified Process The Unified Process (UP) is taught in this section as a process supporting Object Oriented Analysis and Design with UML. The section explains the details of the Unified Process: Core Workflows and Life Cycle Phases. Finally, it shows which UML models are relevant to specific Workflows and Phases of the UP. Slides 555 through 579 contain this Section.
5.6. Tools
This section presents some of the tools for UML modelling: Enterprise Architect, Magic Draw, Poseidon and Rational Rose. The basic features of each tool are presented, as is the comparative analysis of the tools. This Section is presented in the slides 580 through 591.
Assessment comprises 15 multiple-choice questions provided at the end of the course to test the students understanding of the various topics taught. Two sets of assessment questions are given in Appendices B.1 and B.2, with only slight differences between them. The assessment compliments the 55 tasks or assignments provided in the various sections.
7. Organization The course consists of lectures, demonstrations and assignments: lectures The lectures aim to incrementally build a body of concepts to establish the foundation for proper understanding and use of technology. demonstrations - Demonstrations illustrate the concepts introduced during the lectures with running code and small-size examples.
6. Assessment
w .k
This section provides a summary of the entire course highlighting the major points in each of the sections. The summary section is given from the slide 592 to 618.
in
5.7. Summary
in
di a
.c
om
Introduction
assignments - During assignments, students are asked to perform a range of tasks with increasing level of difficulty and independence. They are encouraged to reuse the demonstrated code and examples in their assignments. The course is designed to be taught for about 42 hours. In the context of the e-Macao Core Team Training, the course was taught over seven days, as follows: (1) Introduction and Object Orientation and UML Basics (2) UML Basics and Requirements, (3) Requirements, (4) Architecture, (5) Design, (6) Implementation and Deployment, and (7) Unified Process, Tools and Summary. For e-Macao Extended Team Training, a shorter version of the same course was taught over four days: (1) Introduction, Object Orientation and UML Basics, (2) Requirements, (3) Architecture and Design, and (4) Design, Implementation, Deployment, Unified Process, UML Tools and Summary.
w .k
in
in
di a
.c
om
References
References 1) OMG Unified Modeling Language Specification, Object Management Group. 2) UML Bible, Tom Pender, John Wiley and Sons, 2003. 3) Object-Oriented Analysis and Design using UML, Simon Bennet, Steve McRobb and Ray Farmer, McGraw-Hill, 2002. 4) Guide to Applying the UML, Sinan Si Alhir, Springer, 2002. 5) Object-Oriented Software Engineering, Bernd Bruegge, Allen H Dutoit, Prentice Hall, 2000. 6) The Unified Modeling Language User Guide, Grady Booch, James Rumbaugh, Ivar Jacobson, Addison Wesley, 1999. 7) OO Software Development Using UML, UNU-IIST Tech Report 229.
w .k
in
in
di a
.c
om
Slides Introduction
m in
UNU-IIST
w w
.k
in
di
a. co
e-Macao-18-1-2
The Course
objectives - what do we intend to achieve? outline - what content will be taught? resources - what teaching resources will be available?
Slides Introduction
e-Macao-18-1-3 e-Macao-18-1-4
Course Objectives
1) present the concepts of Object Orientation, as well as Object Oriented Analysis (OOA) and Design (OOD) 2) introduce the syntax, semantics and pragmatics of UML, and how to integrate it with the Unified Process 3) show how to articulate requirements using use cases 4) present the development of structural and behavioural diagrams for different views supported by UML 5) introduce patterns and frameworks and their applications in architecture and design tasks 6) present a comparative analysis of the major UML tools suitable for industrial-strength development
Course Outline
1) Object Orientation 2) UML Basics 3) UML Modelling: a) Requirements b) Architecture c) Design d) Implementation e) Deployment 4) Unified Process 5) UML Tools
e-Macao-18-1-5
in
di
UML Diagrams: 1. use case 2. class 3. object 4. sequence 5. state 6. component 7. collaboration 8. activity 9. deployment
e-Macao-18-1-6
w w w
1) Background
.k
in
a. co
1) UML outline 2) UML building blocks a) elements b) relationships c) diagrams 3) modelling views
Slides Introduction
e-Macao-18-1-7 e-Macao-18-1-8
Overview: Requirements
1. software requirements 2. use case modelling a) use case diagrams b) templates 3. conceptual modelling a) class diagrams b) object diagrams 4. behavioural modelling a) sequence diagrams b) statechart diagrams
e-Macao-18-1-9
Overview: Architecture
1) software architecture 2) models a) collaboration diagrams b) component diagrams
in
di
a. co in .k w
1) packages 2) components
e-Macao-18-1-10
Overview: Design
1) software design 2) design models a) class diagrams b) sequence diagrams c) activity diagrams d) statechart diagrams 3) design patterns
Overview: Implementation
w w
3) component diagrams
Slides Introduction
e-Macao-18-1-11 e-Macao-18-1-12
10
Overview: Deployment
1) nodes and components 2) deployment diagrams 3) use of deployment diagrams
e-Macao-18-1-13
in
di
a. co .k
Overview: UML Tools
1) CASE tools 2) Selected UML tools: a) b) c) d) Magic Draw Enterprise Architect Poseidon Rational Rose
m
e-Macao-18-1-14
in
Course Resources
1) OMG Unified Modeling Language Specification, Object Management Group. 2) UML Bible, Tom Pender, John Wiley and Sons, 2003. 3) Object-Oriented Analysis and Design using UML, Simon Bennet, Steve McRobb and Ray Farmer, McGraw-Hill, 2002. 4) Guide to Applying the UML, Sinan Si Alhir, Springer, 2002. 5) Object-Oriented Software Engineering, Bernd Bruegge, Allen H Dutoit, Prentice Hall, 2000. 6) The Unified Modeling Language User Guide, Grady Booch, James Rumbaugh, Ivar Jacobson, Addison Wesley, 1999. 7) OO Software Development Using UML, UNU-IIST Tech Report 229. 8) Course materials
w w
Slides Introduction
e-Macao-18-1-15 e-Macao-18-1-16
11
Course Organization
Monday to Thursday: 09:00 10:20 10:30 11:20 11:30 10:20 10:30 11:20 11:30 13:00 lecture/lab break lecture/lab break lecture/lab
Course Assessment
Thursday, 16:45 17:45 15 multiple-choice questions 30 minutes allowed
13:00 14:30 lunch time 14:30 15:30 15:40 16:30 16:40 15:30 15:40 16:30 16:40 17:45 lecture/lab break lecture/lab break lecture/lab (except Thursday)
w w
.k
in
in
di
a. co
grades A B C D E points 26-30 21-25 16-20 11-15 00-10
12
di
Object Orientation
a. co
1) Object Orientation 2) UML Basics
Course Outline
in
3) UML Modelling: a) Requirements b) Architecture c) Design d) Implementation e) Deployment 4) Unified Process 5) UML Tools
e-Macao-18-1-18
w w
UML Diagrams: 1. use case 2. class 3. object 4. sequence 5. state 6. component 7. collaboration 8. activity 9. deployment
.k
in
13
e-Macao-18-1-19
e-Macao-18-1-20
w w
.k
in
in
di
a. co
Modular Paradigm
Features of the OO approach: 1) the universe consists of interacting objects 2) describes and builds systems consisting of objects
Definition Object Orientation is about viewing and modelling the world/system as a set of interacting and interrelated objects.
14
A.2.2. Principles
e-Macao-18-1-21
e-Macao-18-1-22
in
di
Salesman Customer Product
in w w w .k
a. co
A process allowing to focus on most important aspects while ignoring less important details.
Abstraction allows us to manage complexity by concentrating on essential aspects making an entity different from others.
OO Principles
Principle 1: Abstraction
15
Principle 2: Encapsulation
Encapsulation separates implementation from users/clients. A client depends on the interface.
Principle 3: Modularity
Modularity breaks up complex systems into small, selfcontained pieces that can be managed independently.
m a. co
Courtesy Rational Software
e-Macao-18-1-25
in
di
e-Macao-18-1-26
Principle 4: Hierarchy
Ordering of abstractions into a tree-like structure.
in .k
Task 1
Which of the following models A and B is more abstract? Justify your answer. Model A:
Citizen 1) 2) 3) 4)
Asset
w w
Increasing abstraction
Model B:
Citizen id number name address works for company X
Savings
Checking Stock
Bond
16
Task 2
Provide an example of encapsulation: a) identify the interface b) identify the implementation Tip: interface: computer case implementation: computer mother board
Task 3
Suppose A and B are models of the same system. Which of them is more modular? Model A:
Model B:
e-Macao-18-1-29
w w
.k
Task 4
in
in
di
a. co
17
A.2.3. Concepts
e-Macao-18-1-30
e-Macao-18-1-31
w w
.k
in
in
1. 2. 3. 4. 5. 6. 7. 8. 9.
di
10.Generalization 11.Super-Class 12.Sub-Class 13.Abstract Class 14.Concrete Class 15.Discriminator 16.Polymorphism 17.Realization
a. co
What is an object?
2) a representation of a specific entity in the real world 3) may be tangible (physical entity) or intangible Examples: specific citizen, agency, job, location, order, etc.
OO Concepts
Concept 1: Objects
18
Examples of Objects
Object Definition
Two aspects: Information: 1) has a unique identity 2) has a description of its structure 3) has a state representing its current condition
persons chairs
e-Macao-18-1-34
in
computer devices
di
a. co in
What is a class?
e-Macao-18-1-35
Concept 2: Class
1) any uniquely identified abstraction of a set of logically related instances that share similar characteristics 2) rules that define objects 3) a definition or template that describes how to build an accurate representation of a specific type of objects Examples: agency, citizen, car, etc.
d) memory e) status
2) behaviour: a) print file b) stop printing c) empty the queue Objects are created using class definitions as templates.
w w
.k
19
Class Example
Printers information behaviour
Concept 3: Attribute
Definition Attribute is a named property of a class describing a range of values that instances of the class may hold for that property.
e-Macao-18-1-38
in
di
a. co
object class attribute
Printer
serialNumber memory status
An attribute has a type and defines the type of its instances. Only the object is able to change the values of its own attributes. The set of attribute values defines the state of the object.
e-Macao-18-1-39
.k w
:Printer :Printer
serialNumber=067l memory=256Mb status=busy
Attribute Examples
attribute value
in
Concept 4: Operation
Definition Operation is the implementation of a service that can be requested from any object of a given class. An operation could be: 1. a question - does not change the values of the attributes 2. a command may change the values of the attributes
w w
memory=128Mb status=idle
serialNumber=125t
20
Operation Example
class operation
Printer
printFile stopPrinting removeFileInQueue
Task 5
Which of the following statements are true? For those that are false, explain why. 1) Trainee is an example of a class.
e-Macao-18-1-42
in
di
a. co in .k w
2) Dora Cheong is an example of a class. 3) createJob is an example of an object. 4) deleteFile is an example of an operation 5) name is an attribute
e-Macao-18-1-43
Task 6
Applying Abstraction
Abstraction in Object Orientation: 1) use of objects and classes to represent reality 2) software manages abstractions based on the changes occurring to the real-world objects
Suppose we wish to model an application for issuing business registration licenses. Identify: 1) three classes for the model
w w
21
Concept 5: Interface
1) minimum information required to use an object 2) allows users to access the objects knowledge 3) must be exposed 4) provides no direct access to object internals
Interface Example
e-Macao-18-1-46
in
di
a. co
e-Macao-18-1-47
2) a combination of the behaviour and the resources required to satisfy the goal of the behaviour 3) ensures the integrity of the information upon which the behaviour depends
w w
.k
Concept 6: Implementation
in
Implementation Example
22
Concept 7: Association
1. the simplest form of relation between classes 2. peer-to-peer relations
e-Macao-18-1-51
in
di
a. co in .k w
e-Macao-18-1-52
Association Examples
Associations between classes A and B: 1) A is a physical or logical part of B 2) A is a kind of B 3) A is contained in B 4) A is a description of B 5) A is a member of B 6) A is an organization subunit of B 7) A uses or manages B 8) A communicates with B 9) A follows B 10)A is owned by B
Concept 8: Aggregation
1. a restrictive form of part-of association 2. objects are assembled to create a more complex object 3. assembly may be physical or logical 4. defines a single point of control for participating objects 5. the aggregate object coordinates its parts
w w
23
Aggregation Example
Concept 9: Composition
1. a stricter form of aggregation 2. lifespan of individual objects depend on the on lifespan of the aggregate object
A CPU is part of a computer. CPU, devices, monitor and keyboard are assembled to create a computer.
e-Macao-18-1-55
in
di
a. co in .k
Task 7
3. parts cannot exist on their own 4. there is a create-delete dependency of the parts to the whole
e-Macao-18-1-56
Composition Example
w w w
A word cannot exist if it is not part of a line. If a paragraph is removed, all lines of the paragraph are removed, and all words belonging to that lines are removed.
Identify which of the following statements are true. For those that are false, explain why. 1) there is an association between Trainee and Course 2) there is a composition between Course and Professor 3) there is an aggregation between Course and Venue
24
Generalization Example
e-Macao-18-1-60
in
di
a. co in .k w w w
Common features are defined in User. FrontOfficeEmployee and BackOfficeEmployee inherit them.
m
e-Macao-18-1-61
Definition Super-Class is a class that contains the features common to two or more classes. A super-class is similar to a superset, e.g. agency-staff.
25
Super/Sub-Class Example
Person
super-class
Teacher
Student
Doctor
sub-classes
e-Macao-18-1-64
in
di
a. co
e-Macao-18-1-65
2. can be instantiated 3. methods may be: a) defined in the class or b) inherited from a super-class
w w w
.k
in
26
Task 9
Suppose we wish to model an e-service application for a government agency. Does this diagram reasonably model the relationship between the entities User, Employee, FrontOffice Employee, Back-Office Employee and Applicant? If not, provide a more appropriate model.
Task 10
Add a generalization for the classes defined in Task 6. Identify the super-class and one sub-class. Do you have any abstract class? Justify.
e-Macao-18-1-68
in
di
a. co in .k w
e-Macao-18-1-69
Polymorphism Example
Many ways of doing the same thing! Example: management-staff and agency-staff can apply for leave, but possibly in different ways.
a) generalization organizing information such that the shared features reside in one class and unique features in another 3. Operations could be defined and implemented in the superclass, but re-implemented methods are in unique sub-classes.
w w
27
Task 11
Consider the generalization hierarchy provided in Task 10. Introduce an operation for the super-class which could be implemented in different ways by its sub-classes. Provide an example of polymorphism. Explain.
e-Macao-18-1-72
w w
Using realization model the fact that vehicles and aircrafts must be to accelerate, decelerate, brake and park.
.k
Task 12
in
in
di
a. co
28
e-Macao-18-1-73
e-Macao-18-1-74
w w
.k
in
in
di
a. co
1) a discovery process
2) clarifies and documents the requirements of a system 3) focuses on understanding the problem domain 4) discovers and documents the key problem domain classes 5) concerned with developing an object-oriented model of the problem domain 6) identified objects reflect the entities that are associated with the problem to be solved
29
OOA Definition
Definition Object Oriented Analysis (OOA) is concerned with developing requirements and specifications expressed as an object model (population of interacting objects) of a system, as opposed to the traditional data or functional views. [Software Engineering Institute]
Benefits
1) maintainability: simplified mapping to the real world a) less analysis effort b) less complexity in system design c) easier verification by the user
w w
.k
in
in
di
a. co
2) reusability: reuse of the artifacts that are independent of the analysis method or programming language 3) productivity: direct mapping to the features implemented in Object Oriented Programming Languages
30
e-Macao-18-1-77
e-Macao-18-1-78
process of invention and adaptation creates abstractions and mechanisms necessary to meet behavioural requirements determined during analysis language-independent provides an object-oriented model of a software system to implement the identified requirements
w w
.k
in
in
di
a. co
Definition [SEI] Object Oriented Design (OOD) is concerned with developing object-oriented models of a software/system to implement the requirements identified during OOA.
OOD Design
31
OOD Process
Stages in OOD: 1) 2) 3) 4) 5) define the context and modes of use of the system design the system architecture identify the principal objects in the system develop design models specify object interfaces
Task 13
List two basic differences between traditional systems analysis and object-oriented analysis.
Notes on the OOD activities: 1) activities are not strictly linear but interleaved 2) back-tracking may be done a number of times due to refinement or availability of more information
e-Macao-18-1-81
in
di
a. co
e-Macao-18-1-82
Summary 1
Object is any abstraction that models a single thing in a universe with some defined properties and behaviour.
in .k w w w
Summary 2
Object Orientation is characterized by: 1) encapsulation combination of data and behaviour, separation of an interface from implementation 2) inheritance generalization and specialization of classes, forms of hierarchy 3) polymorphism different implementations for the shared operations depending on the position of the involving object in the inheritance hierarchy.
A class is any uniquely identified abstraction of a set of logically related objects that share similar characteristics. Classes may be related by three types of relations: 1) association 2) aggregation 3) composition
32
Summary 3
Object Oriented Analysis is concerned with specifying system requirements and analysing the application domain.
w w
.k
in
in
di
a. co
Object Oriented Design is concerned with implementing the requirements identified during OOA in the application domain.
33
di
UML Basics
a. co
1) Object Orientation 2) UML Basics
Course Outline
in
3) UML Modelling: a) Requirements b) Architecture c) Design d) Implementation e) Deployment 4) Unified Process 5) UML Tools
e-Macao-18-1-85
w w
UML Diagrams: 1. use case 2. class 3. object 4. sequence 5. state 6. component 7. collaboration 8. activity 9. deployment
.k
in
34
What Is Modelling?
Modelling involves: 1) representation or simplification of reality 2) providing a blueprint of a system
Why Model?
1) better understand the system we are developing 2) describe the structure or behaviour of the system 3) experiment by exploring multiple solutions
e-Macao-18-1-88
in
di
a. co
Modelling Principles
1) the choice of models affects how a problem is tackled 2) every model may be expressed at different levels of abstraction 3) effective models are connected to reality
4) furnish abstraction for managing complexity 5) document the design decisions 6) visualize the system as-is and to-be 7) provide a template for constructing a system
e-Macao-18-1-89
in .k w
What is UML?
UML = Unified Modelling Language A language for visualizing, specifying, constructing and documenting artifacts of software-intensive systems. Examples of artifacts: requirements, architecture, design, source code, test cases, prototypes, etc. UML is suitable for modelling various kinds of systems: 1. enterprise information systems, 2. distributed web-based, 3. real-time embedded system, etc.
w w
35
e-Macao-18-1-91
in
di
a. co
1) 2) 3) 4) use-case driven architecture-centric iterative incremental
e-Macao-18-1-92
w w
1) provide modelers with an expressive, visual modelling language to develop and exchange meaningful models
.k
Goals of UML
in
History of UML
1) started as a unification of the Booch and Rumbaugh methods - Unified Method v. 0.8 (1995) 2) Jacobson contributes to produce UML 0.9, 1996 3) UML Partners work with three Amigos to propose UML as a standard modelling language to OMG in 1996. 4) UML partners tender their proposal (UML 1.0) to OMG in 1997, and 9 months later submit final UML 1.1. 5) Minor revision is UML 1.4 adopted in May 2001, and the most recent revision is UML 1.5, March 2003. 6) UML 2.0 released by the end 2004.
3) support specifications that are independent of particular programming languages and development processes 4) provide a basis for understanding specification languages 5) encourage the growth of the object tools market 6) supports higher level of development with concepts such as components frameworks or patterns
36
e-Macao-18-1-93
e-Macao-18-1-94
Three basic building blocks: 1) elements: main citizens of the model 2) relationships: relationships that tie elements together 3) diagrams: mechanisms to group interesting collections of elements and relationships They will be used to represent complex structures.
w w
.k
in
in
di
a. co
1) 2) 3) 4) structural behavioural grouping annotation
Elements
37
Structural Elements
a) static part of the model to represent conceptual elements b) nouns of the model c) seven kinds of structural elements: 1) 2) 3) 4) 5) 6) 7) class interface collaboration use case active class component node
Element 1: Class
1) description of a set of objects that share the same attributes, operations, relationships and semantics
e-Macao-18-1-97
in
di
a. co in .k w w w
3) graphically rendered as a rectangle usually including a name, attributes and operations 4) can be also used to represent actors, signals and utilities
e-Macao-18-1-98
Element 2: Interface
2) describes the externally visible behaviour, partial or complete, of a class 3) defines a set of operation signatures but not their implementations 4) rendered as a circle with a name
Element 3: Collaboration
1) defines an interaction between elements 2) several elements cooperating to deliver a behaviour, rather than individual behaviour 3) includes structural and behavioural dimensions 4) represents implementations of patterns of cooperation that make up a system 5) represented as a named ellipse drawn with a dashed line
38
e-Macao-18-1-101
in
di
a. co in .k w w w
3) it also can be used to represent processes and threads 4) graphically, an active class is rendered just like a class drawn with a thick line
e-Macao-18-1-102
Element 6: Component
Element 7: Node
1) a physical element, exists at run time 2) represents a computational resource with memory and processing capacity 3) a set of components may reside in a node 4) components may also migrate from one node to another 5) graphically modelled as a cube
1) physical, replaceable part of a system that conforms to and provides the realization of a set of interfaces 2) represents deployment components such as COM+ or Java Beans components 3) represents a physical packaging of logical elements such as classes, interfaces and collaborations
4) it can also be used to represent applications, files, libraries, pages and tables
39
Behavioural Elements
a) represent behaviour over time and space b) verbs of the model c) two kinds of behavioural elements: 8) interaction 9) state machine
Element 8: Interaction
1) a set of messages exchanged among a set of objects within a particular context to accomplish a specific goal 2) specifies the behaviour of a set of objects
di
a. co
e-Macao-18-1-105
3) involves a number of other elements: messages action sequences (behaviour invoked by a message) links (connection between objects) 4) graphically rendered as an arrow
saveapplication()
in
e-Macao-18-1-106
1) a sequence of states an object or interaction goes through during its lifetime, and its response to external events
.k
in
3) includes a number of elements: states, transition, events and activities 4) presented as a rounded rectangle with a name and sub-states
Interactions and state machines are associated with structural elements such as classes, collaborations and objects.
w w
40
Task 14
Identify the UML element which best models each of the following entities: 1) Jackie Chan 2) a set of operations for validating dates 3) a module capable of validating dates based on the operations in 2 4) a set of trainees 5) withdraw money request from an ATM system 6) a computer server that hosts the payroll system
e-Macao-18-1-109
in
di
a. co
dependent element
e-Macao-18-1-110
w w
1) 2) 3) 4)
.k
Relationships
in
Relationship 1: Dependency
A semantic relationship between two elements in which a change to one element (independent element) may affect the meaning of another (dependent element). Given as a directed dashed line possibly with a label:
Meanings are consistent with the basic Object Oriented relationship types described earlier.
independent element
41
Relationship 2: Association
1) a structural relationship describing a set of links 2) links are connections between objects 3) aggregation is a special type of association depicting the whole-part relationship 4) association is presented as a solid line, possibly directed, labelled and with adornments (multiplicity and role names)
Relationship 3: Generalization
1) a relationship in which objects of a specialized element (child) are substitutable for objects of a generalized element (parent) 2) child elements share the structure/behaviour of the parent
a. co in di
1) refinement 2) trace 3) include 4) extend
3) rendered graphically as a solid line with hollow arrowhead pointing to the parent
generalized
specialized
e-Macao-18-1-113
e-Macao-18-1-114
2) relevant in two basic scenarios: a) interfaces versus realizing classes/components b) uses cases versus realizing collaborations 3) graphically depicted as a dashed arrow with hollow head, a cross between dependency and generalization
w w
contract implementation
1) a semantic relationship between elements, wherein one element specifies a contract and another guarantees to carry out this contract
.k
Relationship 4: Realization
in
Variants of Relationships
Variations of these four relationship types include:
42
Task 15
Define the relationship type which best relates the following classes: 1) 2) 3) 4) Employee Administrative officers Employee Office Application Software Operating system PC - Device
Diagrams
A diagram is a graph presentation of a set of elements and relationships where: a) nodes are elements b) edges are relationships
e-Macao-18-1-117
in
di
a. co in .k w
Class Diagrams:
m
e-Macao-18-1-118
Diagram Types
UML is characterized by nine major diagrams: 1) 2) 3) 4) 5) 6) 7) 8) 9) class object use case sequence collaboration statechart activity component deployment
Diagram 1: Class
1) show a set of classes, interfaces and collaborations, and their relationships 2) address static design view of a system
w w
43
Diagram 2: Object
Object Diagrams: 1) show a set of objects and their relationships 2) static snapshots of element instances found in class diagrams
e-Macao-18-1-121
in
di
a. co
e-Macao-18-1-122
.k
in
w w
44
Diagram 4: Sequence
Sequence Diagrams: 1) shows interactions consisting of a set of objects and the messages sent and received by those objects 2) addresses the dynamic behaviour of a system with special emphasis on the chronological ordering of messages
Authority
e-Macao-18-1-125
in
di
a. co in .k w w w
e-Macao-18-1-126
Diagram 5: Collaboration
Collaboration Diagram: 1) shows the structural organization of objects that send and receive messages
Sequence and collaboration diagrams: are jointly called interaction diagrams can be transformed one into another
45
Diagram 6: Statechart
1) shows a state machine consisting of states, transitions, events, and activities 2) addresses the dynamic view of a system
e-Macao-18-1-129
in
di
a. co .k
Statechart Diagram Example
3) is important in modelling the behaviour of an interface, class or collaboration 4) emphasizes the event-driven ordering
e-Macao-18-1-130
in
Diagram 7: Activity
1) shows control/data flows from one activity to another 2) addresses the dynamic view of a system, useful for modelling its functions 3) emphasizes the flow of control among objects
w w
46
Diagram 7: Activity
1) shows control/data flows from one activity to another 2) addresses the dynamic view of a system, useful for modelling its functions 3) emphasizes the flow of control among objects
e-Macao-18-1-132
in
di
a. co
e-Macao-18-1-133
3) shows how components map to one or more classes, interfaces and collaborations
w w
.k
Diagram 8: Component
in
47
Diagram 9: Deployment
1) shows configuration of run-time processing nodes and the components hosted on them 2) addresses the static deployment view of an architecture 3) is related to component diagram with nodes hosting one or more components
e-Macao-18-1-136
in
di
a. co
e-Macao-18-1-137
Consider a software process consisting of the following activities: requirement gathering, object oriented analysis, object design, implementation and deployment. List the diagrams that are essential for each of these activities. Provide justifications for your choice of diagrams.
.k
Task 16
in w w
Task 17
Select the best answer: The class diagram: a) is the first model created in the project b) is created after the other models c) is used to specify objects and generate code d) is used to create the sequence and the collaboration diagrams.
48
Task 18
Select the best answer: The sequence diagram models: a) the sequence of activities to implement the model b) the way that objects communicate c) the relationships among objects d) the order in which the class diagram is constructed
Task 19
Select the best answer: The collaboration diagram:
w w
.k
in
in
di
a. co
b) models the connections between different views c) models the relationships between software and hardware components d) models the way objects communicate
49
e-Macao-18-1-140
e-Macao-18-1-141
w w
.k
in
in
di
Use Case View Design View Process View Implementation View Deployment View
a. co
Use Case View describes the behaviour of the system as seen by its end users, analysts and testers.
Modelling Views
50
View 2: Design
Design View encompasses: 1) classes, 2) interfaces and 3) collaborations that form the vocabulary of the problem and its solution.
View 3: Process
Process View encompasses threads and processes that form the systems concurrency and synchronization mechanisms.
e-Macao-18-1-144
in
di
a. co
of the system.
e-Macao-18-1-145
View 4: Implementation
in
View 5: Deployment
Deployment View encompasses the nodes that form the systems hardware topology on which the system executes.
w w
Implementation View encompasses the components and files that are used to assemble and release the physical system.
.k
51
Selecting Views
Different modelling views for different system types: 1) monolithic systems 2) distributed systems 3) etc.
Monolithic Systems
Two views are relevant: 1) Use case View: use case diagrams 2) Design View: a) class diagrams (structural modelling) b) interaction diagrams (behavioural modelling) 3) Process View: none 4) Implementation View: none 5) Deployment View: none
e-Macao-18-1-148
in
di
a. co
All five views are relevant: 1) Use case View: a) use case diagrams b) activity diagrams 2) Design View: a) class diagrams b) interaction diagrams c) statechart diagram 3) Process View: a) class diagram b) interaction diagrams 4) Implementation View: component diagrams 5) Deployment View: deployment diagrams
e-Macao-18-1-149
.k w
Distributed Systems
in
Summary 1
A model provides a blueprint of a system. UML is a language for visualizing, specifying, constructing and documenting artifacts of software-intensive systems. UML is process-independent but recommended for use with processes that are: use case driven, architecture-centric, iterative and incremental.
w w
52
Summary 2
There are three building blocks which characterize UML: elements, relationships and diagrams. Categories of elements in UML include: 1. structural 2. behavioural 3. grouping 4. annotation There are four basic types of relationships in UML: 1. dependency 2. association 3. generalization 4. realization
Summary 3
UML provides 9 diagrams for modelling: 1. 2. 3. 4. 5. 6. 7. 8. 9. class diagrams object diagrams use case diagrams sequence diagrams collaboration diagrams statechart diagrams activity diagrams component diagrams deployment diagrams
w w
.k
in
in
di
a. co
There are five different modelling views in UML: use case, design, process, implementation and deployment.
Slides Requirements
53
Requirements Modelling
a. co
2) UML Basics
1) Object Orientation
in
w w
.k
in
Course Outline
UML Diagrams: 1. use case 2. class 3. object 4. sequence 5. state 6. component 7. collaboration 8. activity 9. deployment
di
Slides Requirements
e-Macao-18-1-154 e-Macao-18-1-155
54
Requirements
Definition A requirement is: 1) a function that a system must perform 2) a desired characteristic of a system 3) a statement about the proposed system that all stakeholders agree that must be true in order for the customers problem to be adequately solved.
Requirements Process
Typically includes: 1) elicitation of requirements 2) modelling and analysis of requirements
e-Macao-18-1-156
in
di
a. co
1) 2) 3) 4) 5) 6) 7) 8) 9) functional interface data human engineering qualification operational design constraints safety security, etc.
3) specification of requirements
e-Macao-18-1-157
Functional or Non-Functional?
Functional requirements: 1) describe interaction between a system and its environment 2) describe how a system should behave under certain stimuli Non-functional requirements:
in
Requirements Types
1) describe restrictions on a system that limit the choices for its construction as a solution to a given problem
w w
.k
Slides Requirements
e-Macao-18-1-158 e-Macao-18-1-159
55
Requirements Specification
Requirements must be expressed precisely. Requirements specification should be: 1) 2) 3) 4) 5) 6) correct consistent feasible verifiable complete traceable
Requirements Standards
Various standards are available: 1) 2) 3) 4) 5) IEEE P1233/D3 Guide IEEE Std. 1233 Guide IEEE Std. 830-1998 ISO/IEC 12119-1994 IEEE std 1362-1998 (ConOps)
e-Macao-18-1-159
in
di
a. co in .k
req. id category description F44 Functional
m
High F43
e-Macao-18-1-160
Requirements Standards
Various standards are available: 1) 2) 3) 4) 5) IEEE P1233/D3 Guide IEEE Std. 1233 Guide IEEE Std. 830-1998 ISO/IEC 12119-1994 IEEE std 1362-1998 (ConOps)
Requirements Template
The applicants of social benefits, processing staff and approving authority shall be able to register in the system. Registration shall involve creating an account for the user for the purpose of authentication and personalisation of the system services. The agency staff users will be created by the system administrator. Applicants can register themselves by an option provided on the website. Account, Applicant, Authentication, Registration, User Registration is essential for subsequent authentication and personalisation functions.
w w
There are mature solutions (e.g. directory services) for implementing the requirement. When the system registers a new applicant who does not have an account, an account for the user is created by the system.
Slides Requirements
e-Macao-18-1-161 e-Macao-18-1-162
56
Task 20
1) Enumerate three functional requirements for the application issuing business registration licenses. 2) Enumerate two non-functional requirements for the same application. 3) Using the template provided earlier specify one of the functional requirements described in the first point.
Glossary 1
1) a set of terms that are defined and understood to form the basis for communication 2) a dictionary to carry out modelling
e-Macao-18-1-163
in
di
a. co in
Id 1 2 Term Agency Authentication 3 Authorization 4 5 6 Booking Bulletin Bulletin Board
3) its purpose is to clarify the meaning of terms or to have the shared understanding of the terms amongst team members 4) is created during requirements definition, use case identification and conceptual modelling 5) is maintained throughout development
m
Definition
e-Macao-18-1-164
It is usually the central place for: 1) 2) 3) 4) 5) definitions of key concepts clarification of ambiguous terms and concepts explanations of jargons description of business events description of software actions
.k w w
Glossary 2
Glossary Example
A government organization providing services to citizens, businesses and other government agencies. Proving a users identity. To be able to access a Website or resource, a user must provide authentication via a password or some combination of tokens, biometrics and passwords. The act of granting approval. Authorization to resources or information within an application can be based on simple or complex access control methods. A process of arranging a date and time when a citizen can visit a social welfare centre. A message created by an agency that contains information about the social benefit service they want to post for advertisement. A place on a computer system where citizens can read messages. All agencies can add their own messages.
There is no specific format for glossaries: 1) 2) 3) 4) reference identification for terms definitions categories cross references
Slides Requirements
e-Macao-18-1-165
57
Task 21
Define a glossary containing two definitions for the business license issuing application.
w w
.k
in
in
di
a. co
Slides Requirements
58
e-Macao-18-1-167
Requirements Modelling
Use Case Diagrams
a. co
2) UML Basics
1) Object Orientation
in
w w
.k
in
Course Outline
UML Diagrams: 1. use case 2. class 3. object 4. sequence 5. state 6. component 7. collaboration 8. activity 9. deployment
di
Slides Requirements
e-Macao-18-1-168 e-Macao-18-1-169
59
Use Cases
1) describe or capture functional requirements 2) represent the desired behaviour of the system 3) identify users (actors) of the system and associated processes 4) are the basic building blocks of use case diagrams 5) tie requirements phase to other development phases
e-Macao-18-1-170
in
di
a. co in
e-Macao-18-1-171
A use case does not describe: 1) user interfaces 2) performance goals 3) non-functional requirements
w w
.k
Slides Requirements
e-Macao-18-1-172 e-Macao-18-1-173
60
Relationship 1: Generalization
Generalization of use cases: the same meaning as before a more specialized use case is related to a more general use case
e-Macao-18-1-174
in
di
a. co
e-Macao-18-1-175
.k
Generalization Example
in
Relationship 2: Include
Include relationship between use cases: the base use case explicitly incorporates the behaviour of another use case at a location specified in the base the include relationship never stands alone, but is instantiated as part of some larger base of use cases rendered using the include stereotype
w w
Slides Requirements
e-Macao-18-1-176 e-Macao-18-1-177
61
Include Example
Relationship 3: Extend
Extend relationship between use cases: a) the base use case implicitly incorporates the behaviour of another use case at a location specified by the extending use case (extension point) b) the base use case may stand alone and usually executes without regards to extension points c) depending on the system behaviour, the extension use case will be executed or not d) rendered using the extend stereotype
e-Macao-18-1-178
in
di
a. co .k
Extend Example
e-Macao-18-1-179
in w
Actor
Definition Actor is anyone or anything that interacts with the system causing it to respond to events.
w w
An actor: 1) is something or somebody that stimulates the system to react or respond to its request 2) is something we do not have control over 3) represents a coherent set of roles that the external entities to the system can play 4) represents any type of a systems user
Slides Requirements
e-Macao-18-1-180 e-Macao-18-1-181
62
Actor Examples
e-Macao-18-1-182
in
di
a. co
It is also possible to relate actors using generalizations.
3) actors model anything that needs to interact with the system to exchange information human users, computer systems and others 4) a user may act as one or several actors as it interacts with the system, while several individual users may act as different instances of one and the same actor
e-Macao-18-1-183
.k
in
Types of Actors
Initiator versus participant: When there is more than one actor in a use case, the one that generates the stimulus is called the initiator and the others are participants. Primary versus secondary: The actor that directly interacts with the system is called the primary actor, others are called secondary actors.
w w
Slides Requirements
e-Macao-18-1-184 e-Macao-18-1-185
63
Task 22
Based on the application for issuing business registration licenses define three use cases using a UML tool. Define a use case that extends one of the former use cases.
Task 23
Select the best answer: An actor is: a) a person
e-Macao-18-1-186
in
di
a. co
b) a job title c) a role d) a system
e-Macao-18-1-187
Define a use case that can be included in one of the former use cases.
w w
For each of the use cases in the previous task, enumerate all actors involved and indicate who is the initiator.
.k
Task 24
in
Slides Requirements
e-Macao-18-1-188 e-Macao-18-1-189
64
e-Macao-18-1-190
in
di
a. co in
3. how actors are notified of the changes to the internal state and how they notify the system about external events
e-Macao-18-1-191
To determine who are the actors, we try to answer the following questions: 1) 2) 3) 4) who who who who
.k
Identifying Actors
uses the system? gets information from the system? provides information to the system? installs, starts up or maintains the system?
w w
Slides Requirements
e-Macao-18-1-192 e-Macao-18-1-193
65
Naming Actors
1) group individuals according to how they use the system by identifying the roles they adopt while using the system 2) each role is a potential actor 3) name each role and define its distinguishing characteristics 4) do not equate job titles with roles; roles cut across jobs 5) use common names for existing system; avoid inventing new
di
Frequency
e-Macao-18-1-194
in
a. co
Exceptions Policies Post-conditions Priority Cross reference
The intention of the use case A brief description of the usage of the process A condition that must hold before a use case can begin Different ways to accomplish use case actions
What might go wrong during the execution of the use case Specific rules that must be enforced by the use case Condition that must prevail after executing the use case How important is the use case? How often is the use case performed? Relate use cases and functional requirements
e-Macao-18-1-195
.k w
Task 25
Is this diagram correct ? If not, explain.
in w w
Task 26
In the following bank ATM-related use cases, what would best describe a use case of type UseCaseA? a) Open Account b) Withdraw from Account c) Close Account d) Reopen Account e) None of the above
Slides Requirements
66
e-Macao-18-1-197
Requirements Modelling
Class and Object Diagrams
a. co
2) UML Basics
1) Object Orientation
in
w w
.k
in
Course Outline
UML Diagrams: 1. use case 2. class 3. object 4. sequence 5. state 6. component 7. collaboration 8. activity 9. deployment
di
Slides Requirements
e-Macao-18-1-198 e-Macao-18-1-199
67
Concept Definition
What is a concept? An idea, thing or object.
Concept Examples
1) 2) 3) 4) 5) 6) agency license officer applicant internal applicant external applicant
e-Macao-18-1-200
in
di
a. co
e-Macao-18-1-201
Concept Identification
Concepts can be: 1) 2) 3) 4) 5) 6) 7) 8) physical or tangible objects places documents, specifications, design or descriptions roles of people container of other things organizations processes catalogs, etc.
in .k
w w
Slides Requirements
e-Macao-18-1-202 e-Macao-18-1-203
68
Class Diagrams
1) the most widely used diagram of UML 2) models the static design view of a system 3) also useful in modelling business objects 4) used to specify the structure, interfaces and relationships between classes that underlie the system architecture. 5) primary diagram for generating codes from UML models
A Class
A class is: 1) a description of a set of objects that share the same a) attributes, b) operations, c) relationships and d) semantics
e-Macao-18-1-204
in
di
a. co
Three compartments: Alternative styles:
e-Macao-18-1-205
.k w w w
Class Examples
in
Class Notation
Basic notation: a solid-outline rectangle with three compartments separated by horizontal lines.
1) top compartment holds the class name and other general properties of the class 2) middle compartment holds a list of attributes 3) bottom compartment holds a list of operations
Slides Requirements
e-Macao-18-1-206 e-Macao-18-1-207
69
Stereotypes
1) a mechanism allowing to extend the semantics of UML 2) used to present more information about an artifact 3) notation the name of a new element within the matched guillemets, e.g. <<thread>>
e-Macao-18-1-208
in
di
a. co w
Attribute or operation lists in a class may be organized into groups with stereotypes.
m
Description
e-Macao-18-1-209
.k
in
Stereotype Descriptions
Stereotype Thread Process Control An active class which specifies a lightweight flow that can execute concurrently with other threads within the same processes. An active class which specifies a heavyweight flow that can execute concurrently with other processes. A class which owns almost no information about itself. It represents a behaviour rather than resources and directs the behaviour of other objects almost having no behaviour of its own. A class which represents a resource in the real world. It describes its features and their current condition (their state) and preserves its own integrity regardless of where and when it is used. A class whose attributes and operations are all class scoped. That is a class which no instance. A classifier whose objects are all classes. A classifier whose objects are the children of a given parent. A user defined data type that defines a set of values that do not change.
w w
Entity
Slides Requirements
e-Macao-18-1-210 e-Macao-18-1-211
70
Attribute/Operation Scope
Different scopes can be specified for the attributes and operations (features) of a class: 1) instance scope - a feature appears in each instance of the class (classifier) 2) class scope - there is just a single instance of the feature for all instances of a class (classifier) Underlining the features name indicates the classifier scope.
Types of Classes
1) abstract class a) cannot have direct instances b) the name is written in italics 2) root class a) cannot be a sub-class b) written with root stereotype
e-Macao-18-1-212
in
di
a. co
Person
e-Macao-18-1-213
w w
.k
Class Relationships
in
Relationship 1: Association
Association - a relationship between two or more classifiers that involves connection among instances.
Company
Slides Requirements
e-Macao-18-1-214 e-Macao-18-1-215
71
Relationship 2: Aggregation
Aggregation - A special form of association that specifies a whole-part relationship between the aggregate (whole) and the component part.
Relationship 3: Generalization
Generalization - A taxonomic relationship between a more general and a more specific element.
Vehicle
e-Macao-18-1-216
in
di
a. co in .k w w w
e-Macao-18-1-217
Relationship 4: Dependency
Dependency - A relationship between two elements, in which a change to one element (source) will affect another (target).
Policy
Procedure
Example: a citizen can apply for one or more licenses, and a license is required by one citizen.
Slides Requirements
e-Macao-18-1-218 e-Macao-18-1-219
72
Multiplicities Syntax
e-Macao-18-1-220
in
di
a. co
e-Macao-18-1-221
Notation: add the name of the role at the end of the association line, next to the class icon.
w w
.k
Roles
in
Slides Requirements
e-Macao-18-1-222 e-Macao-18-1-223
73
Task 27
Is this diagram correct ? If not, explain.
Task 28
Discover and correct all mistakes in the following diagram :
e-Macao-18-1-224
in
di
a. co
e-Macao-18-1-225
Using a UML tool produce a class diagram with all the classes and relationships defined in the Tasks 6, 8 and 10.
.k
Task 29
in w w
Object Diagram
1) models the instances of classes contained in class diagrams 2) shows a set of objects and their relationships at one time 3) modelling object structures involves taking a snapshot of a system at a given moment in time 4) is an instance of a class diagram or the static part of an interaction diagram 5) it contains objects and links
Slides Requirements
e-Macao-18-1-226 e-Macao-18-1-227
74
e-Macao-18-1-228
in
di
a. co
Task 30
3) consider one scenario that invokes the function/behaviour, freeze the scenario and render each participating object 4) expose the state and attribute values of each object, as necessary to understand the scenario 5) expose the links among these objects
e-Macao-18-1-229
.k
in
w w
Using a UML tool produce an object diagram illustrating the class diagram shown in the previous task.
Slides Requirements
e-Macao-18-1-230 e-Macao-18-1-231
75
Task 31
Select the best answer: An object is named: a) with a noun b) with a noun, a colon and then a class name c) with a number and a colon followed by a class name d) just like a class
Task 32
Select the best answer: The object diagram is used for: a) testing and verifying the use cases
w w
.k
in
in
di
a. co
Slides Requirements
76
e-Macao-18-1-233
Requirements Modelling
Sequence and State Diagrams
a. co
2) UML Basics
1) Object Orientation
in
w w
.k
in
Course Outline
UML Diagrams: 1. use case 2. class 3. object 4. sequence 5. state 6. component 7. collaboration 8. activity 9. deployment
di
Slides Requirements
e-Macao-18-1-234 e-Macao-18-1-235
77
Behavioral Diagrams 1
1) represent how objects behave when you put them to work using the structure already defined in structural diagrams 2) model how the objects communicate in order to accomplish tasks within the operation of the system 3) describe how the system: a) b) c) d) responds to actions from the users maintains internal integrity moves data creates and manipulates objects, etc.
Behavioral Diagrams 2
4) describe discrete pieces of the system, such as individual scenarios or operations Note: not all system behaviour have to be specified - simple behaviours may not need a visual explanation of the communication required to accomplish them.
e-Macao-18-1-236
in
di
a. co in .k w
e-Macao-18-1-237
Scenario
Scenario Example
Consider the use case Track License Application There are at least two possible scenarios: a) the applicant enters the license application number; the system retrieves the information related to it; the system displays this information b) the applicant enters the license application number; the number does not exist in the agencys database; the system displays an error message
Definition Scenario is a textual description of how a system behaves under a specific set of circumstances. Behaviour described in use cases is the basis for scenarios.
Scenarios also provide a basis for developing test cases and acceptance-level test plans.
w w
Slides Requirements
e-Macao-18-1-238 e-Macao-18-1-239
78
Scenario Example
Scenario: the applicant enters the license application number; the system retrieves the information related to it; the system displays this information. Steps: 1) Applicant requests to track status of a license application 2) System displays the logon form 3) Applicant enters the logon information 4) Applicant submits the logon information 5) System validates the applicant 6) System displays the form to enter the tracking number 7) Applicant enters the tracking number 8) Applicant submits the license number 9) System retrieves the license information 10) System displays the license information
Task 33
Select a use case among those defined on Task 22 and define a possible scenario for it.
e-Macao-18-1-240
in
di
a. co
e-Macao-18-1-241
Select the best answer: Scenarios are: a) the same as use cases b) the same as test cases c) used to derive test cases d) the same as object diagrams
.k w w w
Task 34
in
Sequence Diagram
A sequence diagram shows interactions between objects. Components of sequence diagrams: 1) object lifelines a) object b) timeline 2) messages a) message, stimulus b) signal, exception c) operations, returns d) identification 3) message syntax
Slides Requirements
e-Macao-18-1-242 e-Macao-18-1-243
79
Timeline
The timeline is a line that runs: 1. from the beginning of a scenario at the top of the diagram 2. to the end of the scenario at the bottom of the diagram.
e-Macao-18-1-244
in
di
a. co
e-Macao-18-1-245
.k w w w
Object Lifeline
in
Message
Definition Message is a description of some type of communication between objects. A unit of communication between objects. The sender object may: 1) invoke an operation, 2) raise a signal or 3) cause the creation or destruction of the target object.
If an object is created and destroyed during the message sequence, the lifeline represents its whole lifecycle.
Slides Requirements
e-Macao-18-1-246 e-Macao-18-1-247
80
Message Notation
Notation: modelled as an arrow where the tail of the arrow identifies the sender and the head points to the receiver. sender receiver
Stimulus
Definition Stimulus is an item of communication between two objects: 1) it is associated with both sending and receiving objects 2) it travels across a link
For each message we need to define: 1) the name of the invoked operation and its parameters 2) the information returned from the message
e-Macao-18-1-248
in
di
a. co in
3) it may: a) invoke an operation, b) raise a signal (asynchronous message), c) create or destroy an object 4) it may include parameters/arguments in the form of primitive values or object references 5) it is associated with a procedure that causes it to be sent
e-Macao-18-1-249
.k
Stimulus Example
When the System receives the message from the applicant submitting the application form, it creates an object to support the new session.
w w
The citizen object submits the application form by sending a message to the system. The system receives the message and executes the associated procedure.
Slides Requirements
e-Macao-18-1-250 e-Macao-18-1-251
81
Operations/Returns Example
Example: The Applicant object sends a message to the Agency object to get the list of services it provides. The Agency object returns this information.
operation return
e-Macao-18-1-252
in
di
a. co
e-Macao-18-1-253
.k
Signal
in w w w
Exception
1) an exception is a special type of a signal 2) throwing an exception means sending out a message containing an object that describes the error condition
2) a signal is a special type of a class associated with an event that can trigger a procedure within the receiving object 3) a signal does not require a return from the receiving object
Slides Requirements
e-Macao-18-1-254 e-Macao-18-1-255
82
Signal Example
Each time System receives a message indicating that some abnormal situation occurred with the database, it raises a signal to DBExceptionHandler to handle the error.
Identification of Messages
A message number or name is used to identify messages. Example:
a. co
e-Macao-18-1-256
m
We identify the message getServices with 1.
e-Macao-18-1-257
w w
All former concepts messages, signals, operations, returns, etc. are part of the message syntax.
.k
Message Syntax 1
in
1) predecessors is a comma-separated list of sequence numbers of all messages that must come before the current message 2) sequence-term may be either a number or a name that identifies the message
in
Message Syntax 2
di
3) iteration determines if a message should be sent once or several times in a sequence: a) one message - add an iteration symbol (*) and a condition to control the number of iterations b) many messages - enclose the set of messages in a box 4) condition specifies the control of the iteration; expressed as a text enclosed within square brackets 5) return may include a list of values sent back to the sender 6) operation defines the name of the operation and optionally its parameters and a return value
Slides Requirements
e-Macao-18-1-258 e-Macao-18-1-259
83
Example Scenario
Recall the scenario: an applicant tracks the status of a license application and the system displays the license information. Procedure: 1. Applicant requests to track the status of a license application 2. System displays the logon form 3. Applicant enters the logon information 4. Applicant submits the logon information 5. System validates the applicant 6. System displays the form to enter the tracking number 7. Applicant enters the tracking number 8. Applicant submits the tracking number 9. System retrieves the license information 10. System displays the license information
e-Macao-18-1-260
in
di
a. co
Task 35
e-Macao-18-1-261
.k
in
w w
Based on the scenario defined in the previous Task, produce the sequence diagram using the UML tool.
Slides Requirements
e-Macao-18-1-262 e-Macao-18-1-263
84
Task 36
Is there any problem in the following sequence diagram? Explain.
Task 37
Select the best answer: A timeline is: a) an event signaling the termination of a timed process, much the same as an alarm on a timer b) another name for a sequence c) used in a sequence diagram as an alternative to numbering events d) the amount of time it takes to complete a set of iterations
e-Macao-18-1-264
in
di
a. co w
A statechart diagram defines the behaviour of a single object or of a set of objects related by a collaboration.
e-Macao-18-1-265
.k
Statechart Diagrams
in
Statechart Components
Statecharts are composed of: 1) states a) initial state b) final state 2) events a) guard conditions b) actions c) event syntax 3) complex states a) activities b) entry actions c) exit actions
w w
It captures the changes in an object throughout its lifecycle as they occur in response to internal and external events.
Slides Requirements
e-Macao-18-1-266 e-Macao-18-1-267
85
State
Definition State is the current condition of an object reflected by the values of its attributes and its links to other objects.
Initial State
The initial state identifies the state in which an object is created or constructed. The initial state is called a pseudo-state because it does not really have the features of an actual state, but it helps clarify the purpose of another state of the diagram. Notation:
e-Macao-18-1-268
in
di
a. co in .k
Event
Notation:
e-Macao-18-1-269
Final State
The final state may also mean that the object has actually been destroyed and can no longer be accessed. Notation:
w w
The final state is the state in which once reached, an object can never do a transition to another state.
Definition Event is an occurrence of a stimulus that can trigger a state transition. An event may be: 1) the receipt of a signal, e.g. the reception of an exception 2) the receipt of a call, that is the invocation of an operation, e.g. for changing the expiration date of a license An event on a statechart diagram corresponds to a message on a sequence diagram. Notation:
Slides Requirements
e-Macao-18-1-270 e-Macao-18-1-271
86
Guard Condition
Typically, an event is received and responded unconditionally. When the receipt of an event is conditional, the test needed is called the guard condition.
e-Macao-18-1-272
in
di
a. co
e-Macao-18-1-273
1. Part of a transition event specifying the change from one state to another. 2. An atomic model of execution, referred to as run-tocompletion semantics.
w w
The response to an event has to explain how to change the attribute values that define the objects state.
.k
Event Actions
in
Slides Requirements
e-Macao-18-1-274 e-Macao-18-1-275
87
Event Syntax
event-name ( [comma-separated-parameters-list] ) [[guard-condition]] / [action-expression] where: 1) event-name - identifies the event 2) parameters-list - data values passed with the event for use by the receiving object in its response to the event 3) guard-condition - determines whether the receiving object should respond to the event 4) action-expression - defines how the receiving object must respond to the event
e-Macao-18-1-276
in
di
a. co
Notation:
where:
1) approveLicense is the event name 2) License.Id is the event parameter 3) the guard condition specifies that the req attribute must be OK for the receiving object to respond to the event. 4) the action executed in the receiving object is a call to the method setExistLicense which sends true as its parameter
e-Macao-18-1-277
The notation splits the state icon into two compartments: 1. name compartment and 2. internal transitions compartment.
state name compartment internal transitions compartment
w w
The state icon can be expanded to model what the object can do while it is in a given state.
.k
Complex States
in
Entry Actions
More than one event can trigger a transition of an object into the same state. When the same action takes place in all events that goes into a state, the action may be written once as entry action.
1) use the keyword entry followed by a slash and the actions to be performed every time the state is entered 2) entry actions are part of internal transitions compartment
Internal transitions compartments contains information about actions, activities and internal transitions specific to that state.
Slides Requirements
e-Macao-18-1-278 e-Macao-18-1-279
88
Exit Actions
The same simplification can be used for actions associated with events that trigger a transition out of a state. They are called exit actions. Notation: 1) use the keyword exit followed by a slash and the actions performed every time the state is exited 2) exit actions are part of the internal transitions compartment Only when the action takes places every time the state is exited.
e-Macao-18-1-280
in
di
a. co
e-Macao-18-1-281
Notation:
1) use the do keyword followed by a slash and activities 2) activities are placed in the internal transitions compartment.
w w
Activities may be interrupted because they do not affect the state of the object.
.k
Activities 1
in
Activities 2
An activity should be performed: 1) from the time the object enters the state 2) until a) either the object leaves the state or b) the activity finishes. If an event produces a transition out of the activity state, the object must shut down properly and exit the state.
Slides Requirements
e-Macao-18-1-282 e-Macao-18-1-283
89
Internal Transitions
An event that can be handled completely without a change in state is called an internal transition. It also can specify guard conditions and actions. Notation: 1) uses the keyword internal transition followed by a slash and one event action 2) they are placed in the internal transitions compartment
Order of Events
1) if an activity is processed in the current state, interrupt it and finish it properly 2) execute the exit actions
e-Macao-18-1-284
in
di
a. co
3) execute the actions associated with the event that triggered the transition 4) execute the entry actions of the new state 5) begin executing the activities of the new state
e-Macao-18-1-285
.k
Self Transition
in w w w
Important Features
Within the statechart diagram: 1) an object need not know who sent the message 2) an object is only responsible for how it responds to the event Focusing on the condition of the object and how it responds to the events, which object sends the message becomes irrelevant and the model is simplified The state of the object when it receives an event can affect the objects response event + state = response
A self-transition is an event that is sufficiently significant to interrupt what the object is doing.
It forces the object to exit the current state and return to the same state. The result is to stop any activity within the object, exit the current state and re-enter the state.
Slides Requirements
e-Macao-18-1-286 e-Macao-18-1-287
90
Relating Diagrams 1
1) the sequence diagram models the interactions between objects 2) the statechart diagram models the effect that these interactions have on the internal structure of each object
e-Macao-18-1-288
in
di
a. co
3) the messages modelled in the sequence diagrams are the external events that place demands on objects
e-Macao-18-1-289
.k
Relating Diagrams 2
in
Sequence to Statechart
1) identify the events directed at the lifeline of the desired object 2) identify candidate states by isolating the portions of the lifeline between the incoming events 3) name the candidate states using adjectives that describe the condition of the object during the period of time represented by the gap
events possible state?
5) not all objects need to be modelled with a statechart diagram 6) the objects that appear in many interactions and are target of many events are good candidates to be modelled with a statechart diagram
w w
4) the objects internal responses to those events that cause changes to the objects' states are represented in the statechart diagram
Slides Requirements
e-Macao-18-1-290 e-Macao-18-1-291
91
Task 38
Discover and correct all mistakes in the following diagram:
Task 39
Select the best answer: A state is the condition of an object a) upon construction
e-Macao-18-1-292
in
di
a. co
d) at a point in time Select the best answer: An event action is an action that:
b) that governs whether an event will trigger a transition c) at the beginning and at the end of a scenario
e-Macao-18-1-293
.k w w w
Task 40
in
Task 41
Using a UML tool define a statechart diagram for the license class. The diagram should contain at least three states. What is the relation between this diagram and the class diagram defined in the conceptual modelling? What is the relation between this diagram and the set of sequence diagrams?
b) must take place when triggered by the associated event c) must always take place when an object leaves the state d) causes no change in an objects state
Slides Requirements
e-Macao-18-1-294 e-Macao-18-1-295
92
Summary 1
A requirement is a function that a system must perform or a desirable characteristic of a system. There are different kinds of requirements such as functional and non-functional requirements. Most project failures can be traced back to errors made in the requirements gathering and specification.
Summary 2
Use cases are descriptions of sets of action sequences that a system performs to deliver observable results. Use cases may be related using generalization, include and extend relationships.
e-Macao-18-1-296
in
di
a. co
Actors are the entities that interact with the system, causing it to respond to events. Use case diagrams show a set of: 1. use cases, 2. actors and 3. their relationships.
e-Macao-18-1-297
w w
Conceptual class diagrams describe and relate the concepts of a domain. They show attributes but not methods. An object diagram models the instances of the classes contained in a given class diagram.
.k
Summary 3
in
Summary 4
Behavioral modelling specifies how objects work together to provide a specific behaviour. Sequence diagrams show how objects interact in order to deliver a discrete piece of the system functionality. Statechart diagrams capture the changes in an object or a set of related objects as they occur in response to events.
Slides Requirements
e-Macao-18-1-298 e-Macao-18-1-299
93
Summary 5
Sequence diagrams: 1) show interactions between objects. 2) model the dynamic behaviour of a system. 3) emphasize the chronological ordering of messages.
Summary 6
Statechart diagrams: 1) show a state machine consisting of states, transitions, events and activities.
w w
.k
in
in
di
a. co
Slides Architecture
94
di
Architecture Modelling
a. co
1) Object Orientation 2) UML Basics
Course Outline
in
e-Macao-18-1-301
.k
w w
UML Diagrams: 1. use case 2. class 3. object 4. sequence 5. state 6. component 7. collaboration 8. activity 9. deployment
in
Slides Architecture
e-Macao-18-1-302 e-Macao-18-1-303
95
Architecture
Architecture involves defining: a) what are the main components of the system b) how this components are related. The architecture shows: a) the structural organization of a system from its components b) how elements interact to provide the systems overall behaviour or required functionality Architectural concerns: a) structural or static b) behavioural
Architecture Definition
Definition Architecture is a set of significant decisions about the organization of a software system. Such decisions include: 1. the selection of structural elements and their interfaces 2. the composition of these structural and behavioural element into progressively larger subsystem 3. the architectural style that guides this organization the elements and their interfaces, their collaboration and composition
e-Macao-18-1-304
in
di
a. co
1) subsystems a) classes b) services
e-Macao-18-1-305
Architecture Example
E-Licensing System
Back Office Application Front Office Application Workflow Manager Messaging
in .k
Architecture Concepts
Some concepts related to architecture:
w w
Decision Support Identity Verification
2) design principles for defining subsystems: 1) coupling 2) cohesion 3) layering strategy for defining subsystems: 1) responsibility driven 2) reuse driven
Slides Architecture
e-Macao-18-1-306 e-Macao-18-1-307
96
Subsystems: Classes
A solution domain may be decomposed into smaller parts called subsystems. Subsystems may be recursively decomposed into simpler subsystems. Subsystems are composed of solution domain classes (design classes).
e-Macao-18-1-308
in
di
a. co
e-Macao-18-1-309
.k
Subsystems: Services
in
w w
xG2G Gateway
1) a set of related operations that share a common purpose 2) a set of operations of a subsystem that are available to other subsystem through the subsystems interface
m
Notification Service INotification Notification Service -INotification Send notices Send notices Lookup notifications Lookup notifications Subscription Service ISubscription Subscription Service -ISubscription Channel subscribe Channel subscribe Channel un-subscribe Channel un-subscribe e-Service e-Service 2 2
Slides Architecture
e-Macao-18-1-310 e-Macao-18-1-311
97
Coupling
Definition Coupling is the strength of dependencies between two subsystems. Loose coupling results in: 1) sub-system independence 2) better understanding of sub-systems 3) easier modification and maintenance High coupling is generally undesirable.
Coupling Example
Uncoupled no dependencies
di
e-Macao-18-1-312
a. co in
Loosely coupled some dependencies Highly coupled many dependencies
e-Macao-18-1-313
w w
.k
Cohesion
in
independent
subsystem contains related objects all elements are directed toward and essential for performing the same task.
Slides Architecture
e-Macao-18-1-314 e-Macao-18-1-315
98
Layering
Layering is a strategy for dividing system into subsystems. Layering:
e-Macao-18-1-316
in
di
a. co
2) reuse driven: a) layers are designed to allow maximum reuse of system elements b) higher level layers use services of lower level layers
1) divides a system into a hierarchy of subsystems 2) follows two common approaches: a) responsibility driven b) reuse driven
e-Macao-18-1-317
w w
1) responsibility driven: a) layers have well-defined responsibilities b) layers fulfill specific roles
.k
Layering styles
in
3 Layer decomposition
Slides Architecture
e-Macao-18-1-318
99
Task 42
1) Consider a typical client-server application. Assume that the client subsystem is a layer and the server is the other layer. Which of the two layering styles best describes this architecture? 2) Justify your answer in question 1.
w w
.k
in
in
di
a. co
Slides Architecture
100
e-Macao-18-1-320
Architecture Modelling
Collaboration Diagrams
a. co
2) UML Basics
1) Object Orientation
in
w w
.k
in
Course Outline
UML Diagrams: 1. use case 2. class 3. object 4. sequence 5. state 6. component 7. collaboration 8. activity 9. deployment
di
Slides Architecture
e-Macao-18-1-321 e-Macao-18-1-322
101
Collaboration
Definition A collaboration is a society of classes, interfaces, and other elements that work together to deliver or provide some cooperative behaviour that is bigger than the sum of all its parts. A collaboration: 1) names a conceptual chunk that encompasses both static and dynamic aspects 2) specifies the realization of a use case
Collaboration Example
di
e-Macao-18-1-323
in
a. co
Inter-node Messaging Collaboration and its details
e-Macao-18-1-324
Collaboration Names
1) every collaboration must have a name 2) collaboration names are nouns or short noun phrases, typically first letter of the letter is capitalized.
in .k w
Collaboration Structural
1) specifies the classifiers, such as classes, interfaces, components and nodes that are required to interact 2) does not own any of its structural elements 3) only references the classifiers declared elsewhere
w w
Slides Architecture
e-Macao-18-1-325 e-Macao-18-1-326
102
Task 43
Select one of the use cases already defined restaurant licensing application: 1) identify the classes that are essential in realizing this use case
e-Macao-18-1-327
in
Structural View of Collaboration which implements a send and receive message use case
di
a. co
3) defines an interaction context
2) show the relationship between these classes 3) name the collaboration defined by these classes
e-Macao-18-1-328
w w
2) specifies a set of messages that are exchanged among a set of objects to accomplish a specific purpose a use case or operation
.k
Collaboration Behavioural
in
Slides Architecture
e-Macao-18-1-329 e-Macao-18-1-330
103
Collaboration Diagram
Definition A collaboration diagram shows the interactions organized around the structure of a model, using either: a) classifiers (e.g. classes) and associations, or b) instances (e.g. objects) and links. 1) is an interaction diagram 2) is similar to the sequence diagram 3) reveals both structural and dynamic aspects of a collaboration 4) reveals the need for the associations in the class diagram
e-Macao-18-1-331
in
di
a. co
e-Macao-18-1-332
3) An arrow next to a line indicates a stimuli or message flowing in the given direction. 4) The order of interaction is given with a number.
w w
1) A collaboration diagram shows a graph of either instances linked to each other or classifiers and associations.
.k
Notation 1
in
Notation 2
1. object 2. synchronous event or procedure call 3. simple return 4. self-reference 5. sequence number 6. anonymous object 7. iteration comment
Slides Architecture
e-Macao-18-1-333 e-Macao-18-1-334
104
Collaboration Objects
1) the backbone of the collaborating diagram 2) may have fully qualified name e.g. Bill of class Customer 3) may be anonymous 4) same as in the sequence diagram
Collaboration Messages
1) involves sending of messages between class roles over associations 2) messages could be: a) synchronous events: requires a reply b) return: a reply message c) asynchronous: does not require a reply 3) same as in sequence diagram
e-Macao-18-1-335
in
di
a. co in .k w
e-Macao-18-1-336
Self Reference
1) a message from an object to itself
Sequence Number
1) collaboration diagram does show explicitly passage of time 2) sequence numbers to show order of execution for the messages 3) no particular standard for numbering
2) sender and receiver of the message is the same object 3) self invocation
w w
Slides Architecture
e-Macao-18-1-337 e-Macao-18-1-338
105
e-Macao-18-1-339
w w
1) Consider the use case selected in Task 22. List an instance for each of the classes involved in the collaboration for this use case.
.k
Task 44
in
in
di
a. co
3) add each event by placing the message arrow parallel between the two objects 4) position the arrow to point from the sender to the receiver 5) number the messages in order of execution 6) repeat steps 3 and 4 until the entire scenario has been modeled
Slides Architecture
106
e-Macao-18-1-341
Architecture Modelling
Component Diagrams
a. co
2) UML Basics
1) Object Orientation
in
w w
.k
in
Course Outline
UML Diagrams: 1. use case 2. class 3. object 4. sequence 5. state 6. component 7. collaboration 8. activity 9. deployment
di
Slides Architecture
e-Macao-18-1-342 e-Macao-18-1-343
107
Component
Definition A component is a physical, replaceable part that conforms to and provides the realization of a set of interfaces.
Component Example
1) encapsulates the implementation of classifiers residing in it 2) does not have its own features, but serves as a mere container for its elements 3) are replaceable or substitutable parts of a system
e-Macao-18-1-344
in
di
a. co
3) both may be nested
A component:
m
A component named OrderEntry.exe
e-Macao-18-1-345
Component Names
1) component must have a unique name
in .k
w w
2) name is a textual string which may be written as a simple name or with a path name.
w
Path name
Slides Architecture
e-Macao-18-1-346 e-Macao-18-1-347
108
Interfaces:
e-Macao-18-1-348
in
di
a. co w w
Relationship between a component and its interface may be shown in two ways: Style 1 a) interface in elided iconic form b) component that realize the interface is connected to the interface using an elided realization relationship
1) represent the major seam of the system 2) are realized by components in implementation 3) promotes the deployment of systems whose services are location independent and replaceable
m
e-Macao-18-1-349
.k
Interface Notation 1
in w
Interface Notation 2
Style 2: a) interface is presented in an enlarged form, possibly revealing operations elided iconic form b) realizing component is connected to it using a full realization relationship
Slides Architecture
e-Macao-18-1-350 e-Macao-18-1-351
109
Export Interface
Definition An interface that a component realizes is called an export interface, meaning an interface that the component provides as a service to other components.
Import Interface
Definition An interface that a component uses is called the import interface, meaning the interface that the component relies upon to implement its own behavior.
e-Macao-18-1-352
in
di
a. co in .k
Task 45
Components may import more than one interface. They may also import and export interfaces at the same time.
e-Macao-18-1-353
Component Replaceability
2) A system can be: a) created out of existing components b) evolved by adding new components and replacing old ones without rebuilding the system 3) Interfaces allow easy reconfiguration of component-based systems.
w w
1) The key intent of any component-based system is to permit the assembly of systems from replaceable parts.
1) Identify at least three major components for the restaurant license application. 2) Describe the interface for each of the components.
Slides Architecture
e-Macao-18-1-354 e-Macao-18-1-355
110
Types of Components
Three types: deployment, work product and execution. 1) deployment: component necessary and sufficient to form an executable system such as DLLs and EXEs 2) work product component: residue of development process consisting of things like source code files and data files from which deployment components are created 3) execution component: created as a consequence of an executing system
Component Stereotypes 1
1) executable: specifies that a component may be executable on a node 2) library: specifies a static or dynamic object library
e-Macao-18-1-356
in
di
a. co
Task 46
3) table: specifies a component that represents a database table 4) file: specifies a component that represents a document containing source code or data 5) document: specifies a component that represents a document
e-Macao-18-1-362
.k
Component Stereotypes 2
in
w w w
1) Add possible implementing artifacts for components listed in Task 45. 2) Using a UML tool, produce a component diagram containing the components in Task 45 and the implementing artifacts listed in question 1.
Slides Architecture
111
A.5.4. Packages
e-Macao-18-1-364
Architecture Modelling
Packages
w w
.k
in
in
di
a. co
Packages:
1) are general purpose mechanism for organizing modelling elements into groups 2) group elements that are semantically close and that tend to change together Packages should be loosely coupled, highly cohesive, with controlled access to its contents.
Packages
Slides Architecture
e-Macao-18-1-365 e-Macao-18-1-366
112
Package Example 1
Package Notation
drawn as a tabbed folder packages references one another using standard dependency notation
e-Macao-18-1-367
in
di
a. co
Owned Elements
for instance: Purchasing package depends on Receiving package packages and their dependencies may be stereotyped
e-Macao-18-1-368
in w .k
1) A package may own other elements for instance: classes, interfaces, components, nodes, collaborations, use cases, diagrams and other packages. 2) Owning is a composite relationship.
3) A package forms a namespace, thus elements of the same kind must be named uniquely. For example you cannot have two classes in the same package with the same name.
w w
Slides Architecture
e-Macao-18-1-369 e-Macao-18-1-370
113
Visibility
1) visibility of owned elements is similar to visibility of attributes and operations of classes 2) owned elements are visible to importing or enclosing package contents 3) protected elements can also be seen by children packages 4) private elements cannot be seen outside their owning package
Visibility Example
1) Auxiliary Package owns: a) Agency b) Application c) Applicant
e-Macao-18-1-371
in
di
a. co
2) package importing Auxiliary Package will have access to the Agency element but not Application
e-Macao-18-1-372
1) Faade: a package that is only a view on some other packages 2) Framework: a package that consists mainly of patterns 3) Stub: specifies a package that serves as a proxy for the public contents of another package 4) Subsystem: a package representing an independent part of the entire system being modeled 5) System : specifies a package representing the entire system being modeled
w w
.k
Package Stereotypes
in
Package Example 1
Slides Architecture
e-Macao-18-1-373
114
Task 47
1) Consider an application currently running in your organization. List the major subsystems of the application 2) Using a UML tool, provide an architectural model in terms of these subsystems using packages
w w
.k
in
in
di
a. co
Slides Architecture
115
e-Macao-18-1-375
Architecture Modelling
Patterns
a. co
2) UML Basics
1) Object Orientation
in
w w
.k
in
Course Outline
UML Diagrams: 1. use case 2. class 3. object 4. sequence 5. state 6. component 7. collaboration 8. activity 9. deployment
di
Slides Architecture
e-Macao-18-1-376 e-Macao-18-1-377
116
Patterns Definition
Definition A generalized solution to a problem in a given context where each pattern has a description of the problem, solution context in which it applies, and heuristics including use advantages, disadvantages and trade-offs.
e-Macao-18-1-378
in
di
a. co
Patterns:
identify, document, and classify best practices in OOD generalize the use and application of a society of elements
e-Macao-18-1-379
Pattern Elements
in .k w
Pattern Example 1
1) Name: Observer 2) Problem: a) when an abstraction has two aspects, one dependent on the other b) when a change to one object requires changing others, and you dont know how many objects need to be changed c) when an object should be able to notify other object without making assumptions about who these objects are
1) name: a handle which describes the design problem, its solution, and consequences in a word or two
3) solution: elements that must make up the design, their relationships, responsibilities and collaborations. 4) consequences: associated trade-offs in using the pattern.
w w
2) problem: describes when to apply the pattern and explains the problem and its context
Slides Architecture
e-Macao-18-1-380 e-Macao-18-1-381
117
Pattern Example 2
3) Solution:
Pattern Example 3
3) Solution:
e-Macao-18-1-382
in
di
a. co
e-Macao-18-1-383
a) abstract coupling between Subject and Observer b) support for broadcast communication c) unexpected updates
w w
4) Consequences:
.k
Pattern Example 4
in
Types of Patterns
1) Creational Patterns a) instantiation of objects b) decoupling the type of objects from the process of constructing that object 2) Structural and Architectural patterns a) organization of a system b) larger structures composed from smaller structures. 3) Behavioural Patterns a) assigning responsibilities among a collection of objects.
Slides Architecture
e-Macao-18-1-384 e-Macao-18-1-385
118
Framework 1
Definition A Framework is a reusable software architecture that provides the generic structure and behaviour for a family of software applications, along with a context that specifies their collaboration and use. Framework: 1) collection of patterns defined as template collaborations with supporting elements. 2) skeletal solution in which specific element must be plugged in order to establish an actual solution. 3) depicted as packages stereotyped with the framework keyword
Framework 2
1) made up of a set of related classes that can be specialized or instantiated to implement an application 2) lack the necessary application specific functionality and therefore not immediately useful
e-Macao-18-1-386
in
di
a. co
1) Repository 3) Client-Server 4) Peer-to-Peer 5) Pipe-and-Filter
3) prefabricated structure or template of a working application in which plug-points or hot spots are not implemented or are given overidable implementations 4) patterns can be used to document frameworks 5) they are physical realization of one or more patterns
e-Macao-18-1-387
w w w
.k
Framework Example
in
Architecture Patterns
2) Model-View-Controller (MVC)
Slides Architecture
e-Macao-18-1-388 e-Macao-18-1-389
119
Repository Architecture 1
1) subsystems access and modify data from a single data structure called the repository 2) subsystems are relatively independent and interact through the central data structure 3) control flow can be dictated either by the central repository or by the subsystem 4) it is usually employed in database applications, compilers and software development environment
Repository Architecture 2
e-Macao-18-1-390
in
di
a. co
m
e-Macao-18-1-391
w w
a) model subsystems maintains domain knowledge b) view subsystems displays information to users c) controller subsystem controls sequence of interaction
.k
MVC Architecture 1
in
MVC Architecture 2
1) model subsystems are written independently of view or controller subsystems 2) changes in models state are propagated to the view subsystem through the subscribe/notify protocol 3) MVC architecture is a special case of repository architecture; model is the central repository and the controller subsystem dictates control flow
Slides Architecture
e-Macao-18-1-392 e-Macao-18-1-393
120
MVC Architecture 3
e-Macao-18-1-394
in
di
a. co in .k
3) service requests are usually through remote procedure call or some other distributed programming techniques 4) control flow in clients and servers is independent except for synchronization to manage requests and receive results 5) there may be multiple servers subsystems like in the case of the world-wide web
e-Macao-18-1-395
Peer-to-Peer Architecture 1
1) generalization of the client-server architecture in which subsystems can be clients or servers dynamically 2) control flow within subsystems is independent from the others except for synchronization on requests 3) more difficult to design than client server systems as there are possibilities of deadlocks
w w
Slides Architecture
e-Macao-18-1-396 e-Macao-18-1-397
121
Peer-to-Peer Architecture 2
Pipe-and-Filter Architecture 1
1) subsystems process data received from a set of input and send results to other subsystems via set of outputs 2) subsystems are called filters and the association between filters are called pipes
e-Macao-18-1-398
in
di
a. co .k
Pipe-and-Filter Architecture 2
3) filters only know about the content and format of the data received on the input pipes and not the input filters 4) each filter is executed concurrently and synchronization is done via the pipes 5) pipes and filters can be reconfigured as required
e-Macao-18-1-399
in
Task 48
1. The MVC architecture is better than the Client-Server architecture. Do you agree with this statement? 2. List two reasons for your agreement or disagreement with the statement in question 1.
w w
Slides Architecture
e-Macao-18-1-400 e-Macao-18-1-401
122
Summary 1
1) Architecture is concerned with the structural organization of system components as well as how they interact to provide the systems overall behaviour or functionality. 2) A collaboration is a society of classes which provides some cooperative behavior that is more than the sum of all its parts. 3) Collaborations have both structural and behavioral aspects. 4) Collaborations may realize a use case or an operation.
Summary 2
5) A collaboration diagram shows interactions organized around the structure of a model, using either classes and associations or instances and links. 6) A component is a physical, replaceable part that conforms to and provides the realization of a set of interfaces. 7) An interface is a collection of operation that are used to specify a service of class or components.
e-Macao-18-1-402
in
di
a. co
e-Macao-18-1-403
8) There are three categories of components: deployment, work product and execution. 9) Components may be stereotyped as executable, library, table, file or document. 10) Component diagram consists of specifying classes, implementing artifacts, components, interfaces and relationships between these model elements.
.k
Summary 3
in w w
Summary 4
11) Packages are general purpose mechanisms for organizing modeling elements into groups. 12) Well structured packages must be loosely coupled and very cohesive. 13) Basic architectural patterns or styles include: repository, MVC and client-server.
Slides Design
123
e-Macao-18-1-405
di
Design Modelling
a. co
1) Object Orientation 2) UML Basics
Course Outline
.k
in
w w
UML Diagrams: 1. use case 2. class 3. object 4. sequence 5. state 6. component 7. collaboration 8. activity 9. deployment
in
Slides Design
e-Macao-18-1-406 e-Macao-18-1-407
124
System Design
There are two ways of constructing a software design: one way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies C.A.R. Hoare
e-Macao-18-1-408
in
di
a. co
System Design Overview 1
Analysis produces: a) a set of non-functional requirements and constraints b) a use case model describing functional requirements c) a conceptual model, describing entities d) a sequence diagram for each use case showing the sequence of interaction among objects e) statechart diagrams showing possible states of objects
e-Macao-18-1-409
in
w w
.k
Slides Design
e-Macao-18-1-410 e-Macao-18-1-411
125
e-Macao-18-1-412
in
di
a. co in
3) Data management a) which data needs to be persistent? b) where should persistent data be stored? c) how will the data be stored?
e-Macao-18-1-413
.k
5) Control flow a) how does the system sequence operations? b) is the system event-driven? c) does it need to handle more than one user interaction at a time?
w w
4) Access control a) who can access which data? b) can access control be changed within the system? c) how is access control specified and realized?
Slides Design
e-Macao-18-1-414 e-Macao-18-1-415
126
w w
.k
in
in
di
a. co
Slides Design
127
e-Macao-18-1-417
Design Modelling
Class Diagrams
a. co
2) UML Basics
1) Object Orientation
in
w w
.k
in
Course Outline
UML Diagrams: 1. use case 2. class 3. object 4. sequence 5. state 6. component 7. collaboration 8. activity 9. deployment
di
Slides Design
e-Macao-18-1-418 e-Macao-18-1-419
128
Design Classes
Class: basis for other diagrams and UML models describes the static view of the system
Design Classes: different from domain classes design classes express the definitions of classes as software components
e-Macao-18-1-420
in
di
a. co
e-Macao-18-1-421
in
w w
.k
Slides Design
e-Macao-18-1-422 e-Macao-18-1-423
129
e-Macao-18-1-424
in
di
a. co
7) add navigability arrows necessary to the associations to indicate the direction of the attribute visibility
e-Macao-18-1-425
in
.k
Adding Classes
1) identify those classes that participate in the software solution 2) classes can be found by scanning all the interaction diagrams and listing the participating classes
w w
Slides Design
e-Macao-18-1-426 e-Macao-18-1-427
130
Adding Attributes
1) after defining the classes, attributes must be added 2) attributes come from software requirements artifacts for example conceptual classes provide a substantial part of the attribute applicable to design classes
e-Macao-18-1-428
in
di
a. co
e-Macao-18-1-429
.k w
Attribute Syntax
in
Adding Operations
The operations of each class can be identified by analyzing the interaction diagrams: a) messages will include calls to other objects b) self references
w w
Slides Design
e-Macao-18-1-430 e-Macao-18-1-431
131
Operations Syntax
Adding Visibility
Visibility: 1) scope of access allowed to a member of a class 2) applies to attributes and operations
e-Macao-18-1-432
in
di
a. co
2) notation is - 3) useful in encapsulation.
UML visibility maps to OO visibilities: 1) private scope: within a class (-) 2) package scope: within a package (~) 3) public scope: within a system (+) 4) protected scope: within an inheritance tree (#)
e-Macao-18-1-433
w w
.k
Private Visibility
in
Package Visibility
1) package element is owned by a namespace that is not a package, and is visible to elements that are in the same package as its owning namespace 2) notation is ~
Slides Design
e-Macao-18-1-434 e-Macao-18-1-435
132
Public Visibility
1) public element is visible to all elements that can access the contents of the namespace that owns it 2) notation is +
Protected Visibility
1) a protected element is visible to elements that are in the generalization relationship to the namespace that owns it
e-Macao-18-1-436
in
di
a. co
2) notation is #
e-Macao-18-1-437
3) navigability is a property of a role that indicates that it is possible to navigate uni-directionally across the association from objects of the source to target 4) navigability indicates attributes visibility
5) implementation assumes the source class has an attribute that refers to an instance of the target class
w w
.k
Adding Associations
in
Association Syntax
Slides Design
e-Macao-18-1-438 e-Macao-18-1-439
133
Adding Dependency
1) useful to depict non-attribute visibility between classes 2) useful when there are parameters, global or locally declared visibility
Task 49
Using a UML tool, produce a design class diagram based on the conceptual classes and dynamic models already developed in previous tasks: 1) add attributes if needed
w w
.k
in
in
di
a. co
2) add operations
3) add associations with names, roles and multiplicity 4) add necessary dependencies
Slides Design
134
e-Macao-18-1-441
Design Modelling
Activity Diagrams
a. co
2) UML Basics
1) Object Orientation
in
w w
.k
in
Course Outline
UML Diagrams: 1. use case 2. class 3. object 4. sequence 5. state 6. component 7. collaboration 8. activity 9. deployment
di
Slides Design
e-Macao-18-1-442 e-Macao-18-1-443
135
Activity Diagrams
1) variation of the state machine in which the states represent the performance of actions or sub-activities 2) transitions are triggered by the completion of the actions or sub-activities 3) one of the five diagrams in UML for modeling the dynamic aspect of a system. Others: sequence, collaboration, statechart, use cases 4) attached through a model to use cases, or to the implementation an operations 5) focuses on flows driven by internal processing (as opposed to external events)
Start State
1) signals the beginning of the activity diagram 2) indicated as a solid dot
e-Macao-18-1-444
in
di
a. co
e-Macao-18-1-445
End State
1) signals the end of the activity diagram 2) indicated as a bull eye
in .k w w w
Action State
1) shorthand for a state with an entry action and at least one outgoing transition involving the implicit event of completing the entry action 2) there may be several outgoing transitions with guard conditions 3) models a step in the execution of a workflow
Slides Design
e-Macao-18-1-446 e-Macao-18-1-447
136
Subactivity State
1) it invokes an activity graph 2) executes the associated activity graph 3) completes the subactivity graph is not exited until the final state of the nested graph is reached 4) a single activity graph may be invoked by many subactivity states
e-Macao-18-1-448
in
di
a. co in .k w w w
2) trigger-less
e-Macao-18-1-449
Transitions 1
1) specify the flow of control from one action or activity state to another
3) passes control immediately on completion of the work in the source state to the next activity state 4) causes the states exit action (if any) to be executed
Slides Design
e-Macao-18-1-450 e-Macao-18-1-451
137
Transitions 2
1) after reading a page, the page is turned 2) this is repeated continuously
Decisions
1) Decisions are expressed as guard conditions. 2) Different guards are used to indicate different possible transitions that depend on boolean conditions of the owning objects.
e-Macao-18-1-452
in
di
a. co
The icon provided for a decision is the traditional diamond shape, with one incoming arrow and with two or more outgoing arrows, each with a distinct guard condition with no event trigger.
3) The predefined guard else may be defined for at most one outgoing transition which is enabled if all the guards labeling the other transitions are false.
e-Macao-18-1-453
w w
Decision may be shown by labeling multiple output transitions of an action with different guard conditions.
.k
Decision - Notation
in
Decision Example
Slides Design
e-Macao-18-1-454 e-Macao-18-1-455
138
Forks
1) used for modelling concurrency and synchronization in business processes 2) uses a synchronization bar 3) represents the splitting of a single flow of control into two or more concurrent flows of controls 4) indicates that activities of each of the these flows are truly concurrent when deployed across multiple nodes or sequentially interleaved if deployed on a single node
Fork Example
A single control splitting to three concurrent flows
e-Macao-18-1-456
in
di
a. co
e-Macao-18-1-457
2) may have two or more incoming transitions and one outgoing transition
3) synchronizes concurrent flows, constraining each flow to waits for other incoming flows
w w
.k
Joins
in
Join Example
Three incoming flows synchronized and proceed as just one flow
Slides Design
e-Macao-18-1-458 e-Macao-18-1-459
139
Swimlanes
1) partitions the activity states into groups 2) represent the entity within the organization responsible for those activities 3) has a unique name within a diagram
e-Macao-18-1-460
in
di
a. co
e-Macao-18-1-461
.k w
Swimlanes Example
in
Object Flow
Objects maybe involved in the flow of control associated with an activity diagram. For example in the workflow of processing an order as shown in the last example, we may wish to show how the state of the order and Bill objects change. We can use dependency relationship to show how objects are created, modified and destroyed by transitions in the activity diagram
w w
Slides Design
e-Macao-18-1-462 e-Macao-18-1-463
140
Task 50
1) Provide a narrative for the activity diagram shown. 2) Assume the procedure shown is a workflow for restaurant licensing, suggest possible changes to the model. 3) Show how the status of the application object changes along the flow.
w w
.k
in
in
di
a. co
Slides Design
141
e-Macao-18-1-465
Design Modelling
Sequence Diagrams
a. co
2) UML Basics
1) Object Orientation
in
w w
.k
in
Course Outline
UML Diagrams: 1. use case 2. class 3. object 4. sequence 5. state 6. component 7. collaboration 8. activity 9. deployment
di
Slides Design
e-Macao-18-1-466 e-Macao-18-1-467
142
e-Macao-18-1-468
in
di
a. co
e-Macao-18-1-469
Synchronous Messages
1) assumes that a return is needed 2) sender waits for the return before proceeding with any other activity 3) represented as a full arrow head 4) return messages are dashed arrows
in .k
Asynchronous Messages
1) does not wait for a return message 2) exemplified by signals 3) sender only responsible for getting the message to the receiver 4) usually modeled using a solid line and a half arrowhead to distinguish it from the full arrowhead of the synchronous message
w w
Slides Design
e-Macao-18-1-470 e-Macao-18-1-471
143
Self-Reference Message
A self-reference message is a message where the sender and receiver are one and the same object. 1) in a self-reference message the object refers to itself when it makes the call 2) message 2 is only the invocation of some procedure that should be executed
Timed Messages
1) messages may have user-defined time attributes, such as sentTime or receivedTime
e-Macao-18-1-472
in
di
a. co
3) instantaneous messages are modeled with horizontal arrows 4) messages requiring a significant amount of time, it is possible to slant the arrow from the tail down to the head
e-Macao-18-1-473
.k
in
For messages 1, 2 and 3 the time required for their execution is considered equal to zero.
w w
Slides Design
e-Macao-18-1-474 e-Macao-18-1-475
144
Recursion
An object might also need to call a message recursively, this means to call the same message from within the message. 1) suppose that cityLocations is defined in the class diagram as a set of one or more apartments or houses 2) A letter could be sent to all apartments in a location as shown
e-Macao-18-1-476
in
di
a. co
Alternative A
e-Macao-18-1-477
.k
in
Object Destruction: if the object is deleted during the sequence execution, place an X at the point in the object lifeline when the termination occurs.
w w
Object Creation: if the object is created during the sequence execution it should appear somewhere below the top of the diagram.
Alternative C
Slides Design
e-Macao-18-1-478 e-Macao-18-1-479
145
e-Macao-18-1-480
Based on your design classes, provide a sequence diagram to show the interaction required for this use case.
w w
Consider the submit new application use case for restaurant license application.
.k
Task 51
in
in
di
a. co
Slides Design
146
e-Macao-18-1-482
Design Modelling
State Diagrams
a. co
2) UML Basics
1) Object Orientation
in
w w
.k
in
Course Outline
UML Diagrams: 1. use case 2. class 3. object 4. sequence 5. state 6. component 7. collaboration 8. activity 9. deployment
di
Slides Design
e-Macao-18-1-483 e-Macao-18-1-484
147
e-Macao-18-1-485
in
di
a. co
Static Branch Point
3) transitions change the state of the system and are triggered by events 4) design statechart diagrams provide detailed information on internal behaviors of objects
e-Macao-18-1-486
in w .k
Another pseudo state provided by UML is the static branch point that allows a transition to split into two or more paths.
It provides a means to simplify compound guard conditions by combining the like portions into a single transition segment, then branching based on the portions of the guard that are unique.
w w
Notation:
Slides Design
e-Macao-18-1-487 e-Macao-18-1-488
148
e-Macao-18-1-489
in
di
a. co w
A composite state (super-state) may be decomposed into two or more lower-level states (sub-states). All the rules and notation are the same for the contained substates as for any statechart diagram. Decomposition may have as many levels as needed.
A composite state is also called a super-state, a generalized state that contains a set of specialized states called substates.
e-Macao-18-1-490
.k
Sub-States
in w w
Sub-States Example
(internal transitions compartment)
Slides Design
e-Macao-18-1-491 e-Macao-18-1-492
149
Concurrent Sub-States
Modelling concurrent substates implies that you have many things ocurring at the same time. To isolate them, the composite state is divided into regions, and each region contains a distinct statechart diagram.
Sub-Machine States
A sub-machine state is a shorthand for referring to an existing statechart diagram. Within a composite state, it is possible to reference to a submachine state in the same way that a class may call a subroutine or a function of another class. The composite state containing the sub-machine is called the containing state machine, and the sub-machine is called the referenced state machine.
e-Macao-18-1-493
in
di
a. co
The stub state uses a line with the state name placed near the line. Entry points are represented with a line and the name under the line. Exit points are represented with a line and the name over the line.
Access to sub-machines states is through entry and exit points that are specified by stub states.
e-Macao-18-1-494
w w
The containing state icon models the reference to the submachine adding the keyword include followed by a slash plus the name of the submachine state.
.k
in
Transitions to Sub-States 1
Alternative A: draw a transition pointing to the edge of the composite state icon it means that the composite state starts in the default initial state the default initial state is the sub-state associated with the initial state icon in the contained statechart diagram
(internal transitions compartment)
Slides Design
e-Macao-18-1-495 e-Macao-18-1-496
150
Transitions to Sub-States 2
Alternative B: draw a transition through the edge of the superstate to the edge of the specific sub-state it means that the composite state starts in that specific sub-state
a. co
At any substate the object can do a transition to AnotherState
Another State
e-Macao-18-1-497
in
di
e-Macao-18-1-498
w w
Alternative B: 1) an event can cause the object to leave the superstate directly from a specific sub-state 2) implies that the exit event may only happen when the object is in the specific sub-state 3) draw the transition from the edge of the specific sub-state through the edge of the super-state.
.k
in
Another State
Another State
Slides Design
e-Macao-18-1-499 e-Macao-18-1-500
151
History Indicator 1
The history indicator is used to represent the ability for doing backtracking to a previous composite state. Represents a pseudo-state and is a shorthand notation to solve a complex modelling problem. May refer to: 1) shallow history: the object should return to the last sub-state on the top most layer of sub-states 2) deep history: the object needs to return to the exact sub-state from it which left, no matter how many layers down that is
History Indicator 2
Notation: 1) shallow history 2) deep history
H H*
e-Macao-18-1-501
in
di
a. co
e-Macao-18-1-502
Notation:
w w
Split of control means that based on a single transition it is necessary to proceed with several tasks concurrently.
.k
Split of Control
in
Merge of Control
Merge of control means that based on the completion of a number of transitions it is necessary to proceed with a single task. Notation: multiple transitions converge to a synchronization bar and only one transition outputs from the bar
1) a single transition divided into multiple arrows, each pointing to a different sub-state 2) the division is accomplished by the synchronization bar
Slides Design
e-Macao-18-1-503 e-Macao-18-1-504
152
e-Macao-18-1-505
w w
Consider the restaurant license application, provide a detailed statechart diagram for the Application object.
.k
Task 52
in
in
di
a. co
Slides Design
153
e-Macao-18-1-507
Design Modelling
Patterns
a. co
2) UML Basics
1) Object Orientation
in
w w
.k
in
Course Outline
UML Diagrams: 1. use case 2. class 3. object 4. sequence 5. state 6. component 7. collaboration 8. activity 9. deployment
di
Slides Design
e-Macao-18-1-508 e-Macao-18-1-509
154
Design Patterns 1
Definition Design patterns are partial solutions to common problems. They name, abstract, and identify the key aspects of common design structure that make it useful for creating reusable object-oriented design.
Design Patterns 2
1) They are related to coding idioms that exist for programming languages.
e-Macao-18-1-510
in
di
Some common problems: a) separating interfaces from a number of alternate implementations b) wrapping around a set of legacy classes c) protecting a caller from changes associated with specific platforms
a. co
Attribute
Consequences Implementation Sample Code Known uses Related Patterns
3) Design patterns as a shared vocabulary can clearly document the software architecture of a system. 4) Allow design engineers relate to one another a a higher level of abstraction.
2) Design patterns capture expert knowledge and design tradeoffs and support the sharing of architectural knowledge among developers.
e-Macao-18-1-511
in
Description
Conveys the essence of the pattern succinctly.
A short statement that answers the following questions: what does the design do? Its rationale and intent. Other well known names for the patterns, if any A scenario that illustrates a design problem and how the class and object structures in the pattern solve the problem. What are the situations in which the design pattern can be applied? Class diagram and sequence diagram for the classes involved in the pattern. The classes and/or the object participating in the design pattern and their responsibilities. How participants collaborate to carry out their responsibilities.
w w
.k
Slides Design
e-Macao-18-1-512 e-Macao-18-1-513
155
e-Macao-18-1-514
in
di
Solution: Abstract Factory shields an application from the concrete classes provided by a specific platform
a. co
e-Macao-18-1-515
Solution: Adapter encapsulate a piece of legacy code not designed to work with the system
w w
.k w
Applying Adapter
in
Applying Bridge
Problem: allowing for alternate implementation Solution: Bridge decouples the interface from the its implementation
Slides Design
e-Macao-18-1-516 e-Macao-18-1-517
156
Applying Command
Problem: encapsulating control Solution: Command encapsulates a control such that user requests can be treated uniformly
Applying Composite
Problem: representing recursive hierarchies Solution: Composite represent recursive hierarchies
e-Macao-18-1-518
in
di
a. co
e-Macao-18-1-519
.k w
Applying Faade
Problem: encapsulating subsystems Solution: Faade reduces dependencies among classes by encapsulating subsystems from with simple unified interfaces
in
Applying Observer
Problem: decoupling entities from view Solution: Observer allows us to maintain consistency across the state of one publisher and many subscribers
w w
Slides Design
e-Macao-18-1-520 e-Macao-18-1-521
157
Applying Proxy
Problem: encapsulating expensive objects Solution: Proxy improves the performance or the security of a system by delaying expensive computations, until when needed
Applying Strategy
Problem: encapsulating algorithms
e-Macao-18-1-522
in
di
a. co
e-Macao-18-1-523
For each of the following statements, specify the most convenient pattern to apply to the following scenarios:
.k
Task 53
in w w
Summary 1
1) design involves the transformation of analysis models in the problem space into design models in the solution space 2) object design includes: a) service specification for classes b) component selection c) object model restructuring d) object model optimization
1) a component on the web tier requires access to business components 2) there a need to provide several buttons on a web form which executes different actions 3) messages need to be sent to citizens each time a typhoon approaches
Slides Design
e-Macao-18-1-524 e-Macao-18-1-525
158
Summary 2
3) design class diagrams provide specification for software classes and interfaces in an application 4) typical information contained in a Design Class Diagram include: a) classes b) associations c) attributes d) interfaces e) methods f) attribute type information g) navigability h) dependencies
Summary 3
5) activity diagrams models the dynamic aspect of a system by showing the flow from one activity to another 6) activity diagram can be used to describe a workflow or the details of an operation
e-Macao-18-1-526
10) design statechart diagrams describes detailed the internal behavior of objects 11) design patterns are partial solutions to common problems. They name, abstract and identify the key aspects of common design structure that make them useful for creating reusable object oriented design 12) there are 23 basic patterns as provided by the GoF
w w
9) design sequence diagrams specifies message types, temporal constraints, object creation and destruction
.k
Summary 4
in
in
di
a. co
7) an activity diagram may also show the flow of an object as it moves from one state to another at different points in the flow of control
Slides Implementation
159
A.7. Implementation
e-Macao-18-1-528
Implementation Model
a. co
2) UML Basics
1) Object Orientation
in
w w
.k
in
Course Outline
UML Diagrams: 1. use case 2. class 3. object 4. sequence 5. state 6. component 7. collaboration 8. activity 9. deployment
di
Slides Implementation
e-Macao-18-1-529 e-Macao-18-1-530
160
Implementation Phase
At this stage it is necessary to implement the design specified in the design models. It also deals with non-functional requirements and the deployment of the executable modules onto nodes. Two models are developed during this phase: 1) the implementation model describing how the design elements have been implemented in terms of software system 2) the deployment model describing how the implemented software should be deployed on the physical hardware
Implementation Model
The implementation model indicates how various aspects of the design map onto the target language.
e-Macao-18-1-531
in
di
a. co
The modelling elements are: 1) packages 2) components 3) their relationships and they are shown in the implementation component diagram.
e-Macao-18-1-532
in .k
Modelling Techniques
1) 2) 3) 4)
to to to to
w w
To model this view, it is possible to use component diagrams in one of four ways:
Component diagrams are used to model the static implementation view of a system.
Slides Implementation
e-Macao-18-1-533 e-Macao-18-1-534
161
e-Macao-18-1-535
in
di
a. co .k
Executables Example
3) Modelling procedure: a) identify the set of components to model b) consider the stereotype of each component in the set c) for each component, consider its relationship to its neighbors.
e-Macao-18-1-536
in
w w
Slides Implementation
e-Macao-18-1-537 e-Macao-18-1-538
162
Example
e-Macao-18-1-539
in
di
a. co
e-Macao-18-1-540
2) Implementation component diagrams may be used to model source code, executable releases, physical databases and adaptable systems.
w w
1) The implementation component diagram describes how components, interfaces, packages and files are related.
.k
Summary
in
Task 54
Provide an possible implementation model for the restaurant license application based on any implementation framework of your choice (.NET, J2EE, etc.). You model should show the major components of the system.
Slides Deployment
163
A.8. Deployment
e-Macao-18-1-541
e-Macao-18-1-542
Deployment Model
a. co in in
3) UML Modelling: a) Requirements b) Architecture c) Design d) Implementation e) Deployment 4) Unified Process 5) UML Tools
Course Outline
UML Diagrams: 1. use case 2. class 3. object 4. sequence 5. state 6. component 7. collaboration 8. activity 9. deployment
w w
.k
di
Slides Deployment
e-Macao-18-1-543 e-Macao-18-1-544
164
Deployment Diagrams 1
1) show the configuration of run-time processing nodes and the components that live on them. 2) model the distribution, delivery, and installation of the parts that make up the physical system 3) involve modelling the topology of the hardware on which the system executes
Deployment Diagrams 2
4) essentially focus on a systems nodes, and include: a) nodes b) dependencies and associations relationships c) components d) packages
e-Macao-18-1-545
in
di
a. co
e-Macao-18-1-546
Nodes
in .k w w w
Nodes Names
Every node must have a name that distinguishes it from other nodes. A name is a textual string which may be written as a simple name or as a path name.
1) model the topology of the hardware on which the system executes 2) represent the hardware on which components are deployed and executed 3) may be stereotyped to allows for specific kinds of processors and devices.
Simple name
path name
Slides Deployment
e-Macao-18-1-547 e-Macao-18-1-548
165
Organizing Nodes
Nodes can be organized: 1) in the same manner as classes and components 2) by specifying dependency, generalization, association, aggregation, and realization relationships among them.
The relationship deploys between a node and a component can be shown using a dependency relationship.
e-Macao-18-1-549
in
di
a. co
Procedure:
The most common kind of relationship used among nodes is an association representing a physical connection among then.
e-Macao-18-1-550
.k
in
Modelling Nodes
1) identify the computational elements of the systems deployment view and model each as a node 2) add the corresponding stereotype to the nodes 3) consider attributes and operations that might apply to each node.
A device is a node that has no processing capability (at least at the level of abstraction showed).
w w
Slides Deployment
e-Macao-18-1-551 e-Macao-18-1-552
166
Distribution of Components
To model the topology of a system it is necessary to specify the physical distribution of its components across the processors and devices of the system. Procedure: 1) allocate each component in a given node 2) consider duplicate locations for components, if it is necessary 3) render the allocation in one of these ways: a) dont make visible the allocation b) use dependency relationship between the node and the component its deploy c) list the components deployed on a node in an additional compartment
Example
e-Macao-18-1-553
in
di
a. co
e-Macao-18-1-554
Deployment diagrams include nodes, packages, components and their relationships. Deployment diagrams may be used to model different kind of systems such as embedded, client-server or distributed systems.
w w
Deployment diagrams model the topology of the hardware on which the system executes and the software installed on each of the hardware components.
.k
Summary
in
Task 55:
Consider task 54, show how these components will be deployed at the agency. In your model, annotate the nodes according to described them.
167
e-Macao-18-1-555
e-Macao-18-1-556
Unified Process
a. co in .k in
3) UML Modelling: a) Requirements b) Architecture c) Design d) Implementation e) Deployment 4) Unified Process 5) UML Tools
Course Outline
UML Diagrams: 1. use case 2. class 3. object 4. sequence 5. state 6. component 7. collaboration 8. activity 9. deployment
w w
di
168
Overview
1) Software Development Process 2) Unified Process Overview 3) Unified Process Structure 1) Building Blocks 2) Phases 3) Workflows
Why a process ?
A process defines: 1) who is doing what 2) when to do it 3) how to reach a certain goal 4) the inputs and outputs for each activity
a. co
new or changed requirements
e-Macao-18-1-559
in
di
e-Macao-18-1-560
Development Process
Is a framework which guides the tasks, people and define output products of the development process.
in .k
It is a framework because: 1) provides the inputs and outputs of each activity 2) does not restrict how each activity must be performed 3) must be tailored for every project There is no universal process.
w w
169
a. co di
Revise project plan
Define iteration to address the highest risks Plan and develop the iteration Iteration N Assess the iteration Risks eliminated Revise risk assessment
e-Macao-18-1-563
in
e-Macao-18-1-564
Use cases are used for: 1) identify users and their requirements 2) aid in the creation and validation of the architecture 3) help produce definitions of test cases and procedures 4) direct the planning of iterations 5) drive the creation of user documentation 6) direct the deployment of the system 7) synchronize the content of different models 8) drive traceability throughout models
.k
Use Case-Driven
in w
Architecture-Centric
Problem: with the iterative and incremental approach different development activities are done concurrently Solution: the systems architecture ensures that all parts fit together An architecture is the skeleton on which the muscles (functionality) and skin (user-interface) of the system will be hung.
w w
170
2) process components
e-Macao-18-1-567
in
di
a. co
e-Macao-18-1-568
Phases Phases
w w
Cycles Cycles
.k
Building Blocks
in
Inception
m
Elaboration Construction Transition vision baseline architecture full beta release final release
Activities Activities
each iteration identifies some aspect of the system and are organized into phases phases can be grouped into cycles cycles focus on the generation of successive releases
171
Inception
Focuses on the generation of the business case that involves: 1) identification of core uses cases 2) definition of the actual scope 3) identification of risky difficult parts of the system The main objectives are: 1) to prove the feasibility of the system to be built 2) to determine the complexity involved in order to provide reasonable estimates Outputs: 1) the vision of the system 2) very simplified use case model 3) tentative architecture 4) risks identified 5) plan for the elaboration phase
Elaboration
Involves: 1) understanding how requirements are translated into the internals of the system 2) producing the baseline architecture 3) capturing the majority of the use cases 4) exploring further the risks identified earlier and identifying the most significant 5) specifying any non-functional requirements specially those related to reliability and performance Outputs: 1) the systems architecture 2) detailed use case model 3) set of plans for the construction phase
e-Macao-18-1-572
e-Macao-18-1-571
Outputs: 1) implemented software product as a full beta release. It may contain some defects 2) associated models An important aspect for the success of this phase is to monitor the critical aspects of the projects, specially significant risks.
w w
Involves: 1) completing the analysis of the system 2) performing the majority of the design and the implementation
.k
Construction
in w
in
di
a. co
Transition
Involves: 1) deployment of the beta system 2) monitoring user feedback and handling any modifications or updates required Output: 1) the formal release of the software
172
UP - Workflows 1
1) requirements: focuses on the activities which allow to identify functional and non-functional requirements 2) analysis: restructures the requirements identified in terms of the software to be built 3) design: produces a detailed design 4) implementation: represents the coding of the design in a programming language, and the compilation, packaging, deployment and documentation of the software 5) test: describes the activities to be carried out for testing
a. co
Construction
analysis
requirements
design
di
implementation
e-Macao-18-1-575
in
Transition
e-Macao-18-1-576
.k
in
w w
Analysis Design
Implementation Architectural implementation, implement classes and interfaces, implement subsystems, perform unit testing, integrate systems Test Plan and design tests, implement tests, perform integration and system tests, evaluate tests
test
173
Summary 1
A software development process is a framework that provides guidance to carry out the different activities needed to produce a software product. Every software development process must be parameterized for each individual project. There is no universal process.
Analysis
Design
Implementation
Test
e-Macao-18-1-579
With respect to time dimension, the lifecycle is divided into phases and iteration. There are four main phases: inception, elaboration, construction and transition.
A specific set of artifacts are produced with well-defined activities called workflows. There are five main workflows: requirements, analysis, design, implementation and test.
w w
The main 1) 2) 3)
features of the Unified Process are: use case-driven architecture-centric iterative and incremental
.k
Summary 2
in
in
di
a. co
174
e-Macao-18-1-581
UML Tools
a. co
2) UML Basics
1) Object Orientation
in
w w
.k
in
3) UML Modelling: a) Requirements b) Architecture c) Design d) Implementation e) Deployment 4) Unified Process 5) UML Tools
Course Outline
UML Diagrams: 1. use case 2. class 3. object 4. sequence 5. state 6. component 7. collaboration 8. activity 9. deployment
di
175
Overview
1) Why UML CASE tools? 2) Benefits 3) Different tools 4) Evaluating UML CASE tools 5) Main Features of: a) Enterprise Architect b) MagicDraw c) Poseidon d) Rational Rose
e-Macao-18-1-584
in
di
a. co in .k w w w
2) UML case tool, plus a methodology, plus empowered resources enable the development of the right software solution, faster and cheaper
e-Macao-18-1-585
176
Enterprise Architect
Criteria Platform UML Compliance Usability Development Environment Features Windows
e-Macao-18-1-588
in
di
a. co
Outputs & Code Generation Data Repository Other features
m
Features
Support for all 13 UML 2.0 diagrams Replication capable Comprehensive and flexible documentation Multi-user enabled Allows to replicate and share projects C++, Java, C#, VB, VB.Net, Delphi, PHP HTML and RTF document generation - Forward and reverse database engineering Models are stored in a data repository - Checks data integrity in the data repository Provides a project browser Allows scripting to extend functionality Project estimation tools User definable patterns
e-Macao-18-1-589
Criteria Platform UML Compliance Usability Development Environment Outputs & Code Generation Data Repository Other features
Features Any where Java 1.4 is supported Support for UML 1.4 notation and semantics
.k w w w
Magic Draw
in
Poseidon
Criteria Platform UML Compliance Usability Development Environment Outputs & Code Generation Data Repository Other features Platform independent Implemented in Java Supports all 9 diagrams of UML 1.4 Replication capable Internationalization an localization for several languages Collaborative environment based on client-server architecture Locking of model parts Secure transmission of files VB.Net, C#, C++, CORBA IDL, Delphi, Perl, PHP, SQL DDL Round trip engineering for Java Diagram export as gif, ps, eps and svg. Uses MDR (Meta Data Repository) developed by Sun and based on the JMI (Java Metadata Interface) standard Allows to import Rational Rose files
Replication capable Customizable views of UML elements Customizable elements properties Multi-user enabled Lock parts of the model to edit Commit changes Model versioning and rollback Code generation and reverse engineering to C++, Java, C# - RTF and PDF document generation Provides a project browser Friendly and customizable GUI Hyperlinks can be added to any model element
177
Rational Rose
Criteria Platform UML Compliance Usability Development Environment Outputs & Code Generation Data Repository Other features Features Windows Not fully supported UML 1.4 The add-in feature allows to customize the environment User configurable support for UML, OMT and Booch 93. Parallel multi-user development through repository and private support C++, Visual C++, VB6, Java Documentation generation Round trip engineering Maintains consistency between the diagram and the specification, you may change any of them and automatically updates the information. Can be integrated with other Rational products such as RequisitePro, Test Manager
Summary
There exist several CASE Tools supporting Object Oriented modelling with UML. Different criteria should be considered when evaluating a software tool.
w w
.k
in
in
di
a. co
Four tools were presented: Enterprise Architect, Magic Draw, Poseidon and Rational Rose.
Slides Summary
178
A.11. Summary
e-Macao-18-1-593
in w w w .k in
di
Course Summary
a. co
Four principles: 1) abstraction 2) encapsulation 3) modularity 4) hierarchy
Object Orientation is about viewing and modelling the world/system as a set of interacting and interrelated objects.
Object Orientation
Slides Summary
e-Macao-18-1-594 e-Macao-18-1-595
179
UML Basics
Unified Modeling Language standard published by OMG Building Blocks: 1) elements 2) relationships 3) diagrams
e-Macao-18-1-596
in
di
a. co
e-Macao-18-1-597
UML Elements 1
Structural: 1) 2) 3) 4) 5) 6) 7) class interface collaboration use case active class component node
in .k w
UML Elements 2
Behavioural: 1) interactions 2) state-machines Grouping: 1) package Annotation: 1) notes
w w
Slides Summary
e-Macao-18-1-598 e-Macao-18-1-599
180
UML - Diagrams
Static 1) 2) 3) 4) Class Object Component Deployment Dynamic 1) 2) 3) 4) 5) Use Case Sequence Collaboration Statechart Activity
e-Macao-18-1-600
in
di
a. co in .k
e-Macao-18-1-601
Class Diagram
Shows the classes and their relationships. Main components: 1) classes attributes types, default value operations arguments, results 2) relationships association aggregation multiplicity composition roles generalization dependency
Object Diagram
Shows the instances for a given class diagram in a point of time. Components: 1) objects 2) links
w w
visibility
Slides Summary
e-Macao-18-1-602 e-Macao-18-1-603
181
Sequence Diagram
Shows interactions between objects (ordered in time). Main components: 1) object lifelines: object lifeline 2) interactions - messages
Statechart Diagram
Shows the state of an object(s) in response to events. Main components: 1) states: pseudo-states: initial final static/dynamic branch points simple states composite states mutually exclusive sub-states concurrent sub-states 2) events
e-Macao-18-1-604
in
di
a. co in
e-Macao-18-1-605
.k
Collaboration Diagrams
Activity Diagram
Focuses on the internal execution of activities. Main components: 1) states 2) transitions 3) decisions 4) forks joins 5) swimlanes
w w
Shows interaction between objects (ordered in time). Main components: a) classes associations objects links b) messages
Slides Summary
e-Macao-18-1-606 e-Macao-18-1-607
182
Component Diagram
Shows structural replaceable parts of the system. Main components: 1) components 2) interfaces 3) packages
Deployment Diagram
Shows the nodes and components of the system. Main components: 1) nodes: processor devices 2) components 3) packages
e-Macao-18-1-608
in
di
a. co
requirements modelling 2) Analysis 3) Design architecture and detailed design 4) Implementation 5) Deployment
e-Macao-18-1-609
w w
1) Requirements
.k
Development Stages
in
Development 1
Requirements Modelling: functional and non-functional requirements template and glossary diagrams: 1) use case diagram 2) class diagram 3) sequence diagram 4) statechart diagram
Slides Summary
e-Macao-18-1-610 e-Macao-18-1-611
183
Development 2
Architecture: concepts: subsystem cohesion coupling layering diagrams: collaboration diagram component diagram architecture styles: repository MVC client-server
Development 3
Design: activities diagrams: class diagrams activity diagrams sequence diagrams statecharts diagrams patterns
e-Macao-18-1-612
in
di
a. co in .k w w w
e-Macao-18-1-613
Development 4
Implementation: diagram: component diagram
Development 5
Deployment: diagram: deployment diagram
Slides Summary
e-Macao-18-1-614 e-Macao-18-1-615
184
Unified Process
1) iterative and incremental 2) use case-driven 3) architecture-centric
UP Workflows
1) Requirements 2) Analysis 3) Design
e-Macao-18-1-616
w w
Magic Draw
.k
UML Tools
in
The End
in
di
a. co
4) Implementation 5) Test
Slides Summary
e-Macao-18-1-618
185
Acknowledgements
We would like to thank Dr. Tomasz Janowski and all the members of the eMacao team for their valuable comments and help in preparing this material.
w w
.k
in
in
di
a. co
Assessment
186
Divide a complex system into small, self-contained pieces that can be managed independently. How is it called? a Abstraction b Modularity c Encapsulation d Hierarchy Answer: B In order to model the relationship a course is composed of 5 to 20 students and one or more instructors, you could use: a Aggregation b Association c Composition d Realization Answer: A Which of the following statements are true? a All operations defined in a sub-class are inherited by the super-class b Generalization allows abstracting common features and defining them in a super-class c A super-class is a class that must not have associations d Association is a part-of relationship Answer: B What is the relationship between these two use cases? a Generalization b Extend c Include d Association Answer: C The following diagram shows that there is an interaction between: a An object of ClassA and an object of ClassB b An object of ClassA and object z of ClassB c Object z of ClassB and an object of ClassB d An object of ClassC and an object of ClassA Answer: B
w .k
in
in
di a
.c
om
Assessment
187
Which of the following statements are true for the following diagram? a State1 is always the first state of the c State3 is always the last state of object after the initial state the object before the final state b State2 is always the last state of the d During its life, the object is in at object before the final state least five states Answer: C
10
A statechart diagram describes: a Attributes of objects b Nodes of the system c Operations executed on a thread d Events triggered by an object Answer: D An interface is: a A set of objects used to provide a specific behaviour b A set of classes used on a collaboration c A set of attributes used on an operation d A set of operations used to specify a service of a class or component Answer: D
11
w .k
in
in
Which of these diagrams shows interactions between objects? a Activity diagram b Class diagram c Sequence diagram d Component diagram Answer: C
di a
Which of the following statement is true for the following diagram a A is a kind of B b B is a kind of B c A is part of B d B depends on A Answer: None
.c
om
How many Files objects for each Directory object? a 0 or 1 b 2 c 1 or 2 d Many Answer: C
Assessment
188
12
The sequence diagram models: a The order in which the class diagram is constructed b The way in which objects communicate c The relationship between states d The components of the system Answer: B The activity diagram: a Focuses on flows driven by internal processing b Models the external events stimulating one object c Focuses on the transitions between states of a particular object d Models the interaction between objects Answer: A The deployment diagram shows: a Objects of a system b Distribution of components on the nodes in a system c Functions of a system d Distribution of nodes Answer: B
13
15
w .k
in
Unified Process is a software development methodology which is: a Use-case driven b Component-driven c Related to Extreme Programming d None in only one iteration Answer: A
in
di a
.c
om
14
Assessment
189
B.2. Set 2 1 Ordering abstractions into a tree-like structure. How is it called? a Abstraction b Modularity c Encapsulation d Hierarchy Answer: D In order to model the relationship a hotel has rooms, between Hotel and Room, you could use: a Aggregation b Association c Composition d Realization Answer: C Which of the following statements are true? a All operations defined in a super-class are inherited by the sub-class b Generalization allows abstracting common features and defining them in a subclass c A super-class is a class that must not have associations d Association is a kind-of relationship Answer: A What is the relationship between these two use cases? a Include b Extension c Generalization d Association Answer: C The following diagram shows that there is an interaction between: a An object of ClassC and an object of ClassA b Object z of ClassB and an object of ClassB c An object of ClassA and object z of ClassB d An object of ClassA and an object of ClassC Answer: C 6
Which of the following statements are true for the following diagram? a State2 is always the first state of the c State3 is always the last state of object after the initial state the object before the final state b State1 is always the last state of the d During its life, the object is in at object before the final state least five states Answer: C
w .k
in
in
di a
.c
om
Assessment
190
How many Files objects for each Directory object? a 0 or 2 b 0 or 1 c 1 or 2 d Many Answer: C Which of the following statement is true for the following diagram a B is a kind of A b A is part of B c A is a kind of B d B depends on A Answer: A Which of these diagrams shows interactions between objects? a Sequence diagram b Class diagram c Activity diagram d Component diagram Answer: A A statechart diagram describes: a Operations executed on a thread b Nodes of the system c Attributes and operations of an object d Events triggered by an object Answer: D
10
12
The sequence diagram models: a The order in which the class diagram is constructed b The relationship between objects c The way in which objects communicate d The components of the system Answer: C The activity diagram: a Models the interaction between objects b Models the external events stimulating one object c Focuses on the transitions between states of a particular object d Focuses on flows driven by internal processing Answer: D
13
w .k
11
An interface is: a A set of classes used on a collaboration b A set of operations used to specify a service of a class or component c A set of attributes used on an operation d A set of objects used to provide a specific behaviour Answer: B
in
in
di a
.c
om
Assessment
191
14
The deployment diagram shows: a Objects of a system b Functions of a system c Distribution of components on the nodes in a system d Distribution of nodes Answer: C Unified Process is a software development methodology which is: a Component-driven b Iterative and incremental c Related to Extreme Programming d Done in only one iteration Answer: B
15
w .k
in
in
di a
.c
om