+ All Categories
Home > Technology > Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam]...

Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam]...

Date post: 12-Apr-2017
Category:
Upload: ivano-malavolta
View: 770 times
Download: 0 times
Share this document with a friend
72
Software and Services research group (S2) Department of Computer Science, Faculty of Sciences Vrije Universiteit Amsterdam VRIJE UNIVERSITEIT AMSTERDAM Structure modeling with UML Software modeling (401016) – 2016/2017 Ivano Malavolta [email protected]
Transcript
Page 1: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

Software and Services research group (S2)

Department of Computer Science, Faculty of SciencesVrije Universiteit Amsterdam

VRIJEUNIVERSITEITAMSTERDAM

Structure modeling with UML

Software modeling (401016) – 2016/2017

Ivano [email protected]

Page 2: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Roadmap

• Use case exercise• Structure modeling with UML• Take-home exercise

2

Page 3: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Recall

3

VRIJEUNIVERSITEITAMSTERDAM

Exercise

Problem: flight booking system (FBS) A travel agency needs to manage flight bookings for its customers:

1) Airline companies offer various flights. It is the airline itself that decides to open and close the bookings for each flight, and that communicates it to the travel agencies. 2) A customer can book multiple flights and for different passengers. 3) A booking concerns a single flight and a single passenger. A booking can be opened, and then cancelled or confirmed. 4) When confirmed, the tickets are issued and delivered to the customer. 5) A flight has a departure airport and an arrival airport. A flight has a departure day and time, and an arrival day and time. 6) A flight may have stopovers in airports; a stopover has an arrival time and a departure time. 7) Each airport serves one or more cities.

4

LegendaRed: candidate actorsBlue: candidate use cases

Page 4: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

A possible solution

4“Read it” loud and check it carefully

Page 5: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Structure modeling with UML

5

Page 6: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Content

• Objects• Classes• Attributes• Operations• Relationships

§ Binary Association§ N-ary Association§ Association Class§ Aggregation§ Generalization

• Creating a class diagram• Code Generation

6

Page 7: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Object

Individuals of a system

Alternative notations: Object name Class

Attribute Current valueAnonymous objects= no object name

7

Page 8: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Object diagram

• Objects of a system and their relationships (links)• Snapshot of objects at a specific moment in time

Link

8

attends

attends

attends

hall

Page 9: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

From objects to classes

• Individuals of a system often have identical characteristics and behavior

• A class is a construction plan for a set of similar objects of a system

Objects are instances of classes

Attributes: structural characteristics of a class§ Different value for each instance (= object)

Operations: behavior of a class§ Identical for all objects of a class

à not depicted in object diagram

Class

Object of that class

9

Page 10: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Class

Attributes

Operations

Class name

10

Page 11: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Attribute syntax

11

Page 12: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Attribute syntax - visibility

Who is permitted to access the attribute§ + ... public: everybody§ - ... private: only the object itself§ # ... protected: class itself and subclasses§ ~ ... package: classes that are in the same

package

12

Page 13: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Attribute syntax - derived attribute

Attribute value is derived from other attributes§ age: calculated from the date of birth

13

Page 14: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Attribute syntax - name

Name of the attribute

14

Page 15: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Attribute Syntax - type

Type§ User-defined classes§ Data type

§ Primitive data type§ Pre-defined:

§ Boolean, Integer, UnlimitedNatural, String

§ User-defined: «primitive» § Composite data type: «datatype»

§ Enumerations: «enumeration»

15

Page 16: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Attribute Syntax - multiplicity

• Number of values an attribute may contain• Default value: 1• Notation: [min..max]

§ no upper limit: [*] or [0..*]

16

Page 17: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Attribute syntax – default value

Default value § Used if the attribute value is not set explicitly

by the user

17

Page 18: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Attribute syntax – properties

§ Pre-defined properties§ {readOnly} … value cannot be changed§ {unique} … no duplicates permitted§ {non-unique} … duplicates permitted§ {ordered} … fixed order of the values§ {unordered} … no fixed order of the values

§ Examples:§ Set: {unordered, unique} § Multi-set: {unordered, non-unique}§ Ordered set: {ordered, unique}§ List: {ordered, non-unique}

18

Page 19: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Operation syntax - parameters

§ Notation similar to attributes§ Direction of the parameter

§ in … input parameter § When the operation is used, a value is

expected from this parameter

§ out … output parameter § After the execution of the operation, the

parameter has adopted a new value

§ inout : combined input/output parameter

Page 20: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Operation syntax - type

§ Type of the return value

20

Page 21: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Class variable and Class operation

• Instance variable (= instance attribute): attributes defined on instance level

• Class variable (= class attribute, static attribute)§ Defined only once per class,

§ i.e., shared by all instances of the class§ e.g. counters for the number of instances of a class, constants, etc.

• Class operation (= static operation)§ Can be used if no instance of the corresponding class was

created§ e.g. constructors, counting operations, math. functions (sin(x)), etc.

• Notation: underlining name of class variable / class operation

21

Page 22: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Class variable and Class operation

Class variable

Class operation

class Person {

public String firstName;public String lastName;private Date dob;protected String[] address;private static int pNumber;public static int getPNumber() {…}public Date getDob() {…}

}

22

Page 23: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Specification of classes: different levels of detail

coarse-grained fine-grained

23

You can use a coarse-grained class diagram as a descriptive model

Page 24: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Models possible relationships between instances of classes

Association

24

Page 25: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Binary association

Connects instances of two classes with one another

Association name Reading direction

Non-navigability

Multiplicity

RoleVisibility

Navigability

25

Page 26: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Navigability: an object knows its partner objects and can therefore access their visible attributes and operations

§ Indicated by open arrow head

Non-navigability§ Indicated by cross

Example:§ A can access the visible attributes and

operations of B§ B cannot access any attributes and

operations of A

Navigability undefined§ Bidirectional navigability is assumed

Binary association - navigability

26

Page 27: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Navigability – UML standard vs. best practice

UML standard Best practice

27

Page 28: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Binary association as attribute

Java-like notation:

Preferable

class Professor {…}

class Student{public Professor[] lecturer;…

}28

Page 29: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Binary association – multiplicity and role

Multiplicity: Number of objects that may be associated with exactly one object of the opposite side

Role: describes the way in which an object is involved in an association relationship

29

Page 30: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Binary association – xor constraint

“exclusive or” constraintAn object of class A is to be associated with an object of class Bor an object of class C but not with both.

30

Page 31: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Unary Association - example

31

Page 32: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

n-ary association (1/2)

• More than two partner objects are involved in the relationship.• No navigation directions

Ternaryassociation

32

Page 33: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

n-ary association (2/2)

Example§ (Student, Exam) à (Lecturer)

§ One student takes one exam with one or no lecturer

§ (Exam, Lecturer) à (Student)§ One exam with one lecturer can be taken by any number of

students

§ (Student, Lecturer) à (Exam)§ One student can be graded by one Lecturer for any number of

exams

33

Page 34: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Association class

Assign attributes to the relationship between classes rather than to a class itself

34

Page 35: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

• Necessary when modeling n:m Associations

• With 1:1 or 1:n possible but not necessary

Association class

Association class

35

Page 36: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Association class vs. regular class

A Student can have mutipleEnrollments for one and thesame StudyProgram

A Student can enroll for oneparticular StudyProgram onlyonce

36

Page 37: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Default: no duplicates § non-unique: duplicatesallowed

Association class – unique/non-unique (1/2)

A student can only be granted anexam meeting for a specific exam once.

A student can have more than one exam meetings for a specific exam.

37

Page 38: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Association Class – unique/non-unique (2/2)

38

Page 39: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Aggregation

• Special form of association• Used to express that a class is part of another class

• Properties of the aggregation association:§ Transitive: if B is part of A and C is part of B, C is also part of A§ Asymmetric: it is not possible for A to be part of B and B to be

part of A simultaneously.

• Two types:§ Shared aggregation§ Composition

39

Page 40: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Shared aggregation

• Expresses a weak belonging of the parts to a whole§ = Parts also exist independently of the whole

• Multiplicity at the aggregating end may be >1§ = One element can be part of multiple other elements

simultaneously

• Spans a directed acyclic graph

• Example: § Student is part of LabClass§ Course is part of StudyProgram

40

Page 41: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Composition

• Existence dependency between the composite object and its parts

• One part can only be contained in at most one composite object at one specific point in time§ Multiplicity at the aggregating end max. 1§ -> The composite objects form a tree

• If the composite object is deleted, its parts are also deleted

• Example: Beamer is part of LectureHall is part of Building

If the Building is deleted, the LectureHall is also deleted

The Beamer can exist without the LectureHall, but if it is contained in the LectureHall while it is deleted, the Beameris also deleted

Page 42: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Shared aggregation and composition

Which model applies?

42

Page 43: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Which model applys?

Shared aggregation and composition

A Tire can exist without a Car. A Tire belongs to one Car at most

A Tire cannot exist without a Car

A Tire can belong to multiple Cars

----Yes--- ---------No--------

A Car has one or two types ofTires. Several Cars may havethe same Type of Tires

----Yes---

43

Page 44: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Generalization

• Characteristics (attributes and operations), associations, and aggregations that are specified for a general class (superclass) are passed on to its subclasses

• Every instance of a subclass is simultaneously an indirect instance of the superclass

• Subclass inherits all characteristics, associations, and aggregations of the superclass except private ones

• Subclass may have further characteristics, associations, and aggregations

• Generalizations are transitive

Superclass

Subclasses…inherit characteristics, associations, andaggregations

A Secretary isan Employee anda Person

44

Page 45: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

• Used to highlight common characteristics of their subclasses• Used to ensure that there are no direct instances of the

superclass• Only its non-abstract subclasses can be instantiated• Useful in the context of generalization relationships

Generalization – abstract Class

Two types of Person: Man and Woman

No Person-object possible

45

Page 46: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Generalization – multiple inheritance

• UML allows multiple inheritance• A class may have multiple superclasses

• Example:

A Tutor is both an Employee and a Student

46

Page 47: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

with and Without generalization

47

Page 48: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Creating a class diagram

• Not possible to completely extract classes, attributes and associations from a natural language text automatically

• Guidelines§ Nouns often indicate classes § Adjectives indicate attribute values§ Verbs indicate operations

• Example: The library management system stores users with their unique ID, name and address as well as books with their title, author and ISBN number. Ann Foster wants to use the library.

Question: What about Ann Foster? 48

Page 49: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Example – University Information System

A university consists of multiple faculties which are composed of various institutes. Each faculty and each institute has a name. An address is known for each institute.Each faculty is led by a dean, who is an employee of the university.The total number of employees is known. Employees have a social security number, a name, and an email address. There is a distinction between research and administrative personnel.Research associates are assigned to at least one institute. The field of study of each research associate is known. Furthermore, research associates can be involved in projects for a certain number of hours, and the name, starting date, and end date of the projects are known. Some research associates hold courses. Then they are called lecturers.Courses have a unique number (ID), a name, and a weekly duration in hours.

49

Page 50: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Example – Step 1: identifying classes

• A university consists of multiple facultieswhich are composed of various institutes. Each faculty and each institute has a name. An address is known for each institute.

• Each faculty is led by a dean, who is an employee of the university.

• The total number of employees is known. Employees have a social security number, a name, and an email address. There is a distinction between research and administrative personnel.

• Research associates are assigned to at least one institute. The field of study of each research associate is known. Furthermore, research associates can be involved in projects for a certain number of hours, and the name, starting date, and end date of the projects are known. Some research associates hold courses. Then they are called lecturers.

• Courses have a unique number (ID), a name, and a weekly duration in hours.

We model the system „University“

Dean has no further attributes thanany other employee

50

Page 51: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Example – Step 2: identifying the attributes

• A university consists of multiple faculties which are composed of various institutes. Each faculty and each institute has a name. An address is known for each institute.

• Each faculty is led by a dean, who is an employee of the university.

• The total number of employees is known. Employees have a social security number, a name, and an email address. There is a distinction between research and administrative personnel.

• Research associates are assigned to at least one institute. The field of study of each research associate is known. Furthermore, research associates can be involved in projects for a certain number of hours, and the name, starting date, and end date of the projects are known. Some research associates hold courses. Then they are called lecturers.

• Courses have a unique number (ID), a name, and a weekly duration in hours. 51

Page 52: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Example – Step 3: identifying relationships (1/6)

Three kinds of relationships:§ Association§ Generalization§ Aggregation

Indication of a generalization“There is a distinction between research and administrative personnel.”“Some research associates hold courses. Then they are called lecturers.”

Abstract, i.e., no other typesof employees

52

Page 53: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

“A university consists of multiple faculties which are composed of various institutes.”

Example – Step 3: Identifying Relationships (2/6)

Composition to show existencedependency

53

Page 54: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

“Each faculty is led by a dean, who is an employee of the university”

Example – Step 3: Identifying Relationships (3/6)

In the leads-relationship, theEmployee takes the role of a dean.

54

Page 55: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

“Research associates are assigned to at least one institute.”

Example – Step 3: Identifying Relationships (4/6)

Shared aggregation to show that ResearchAssociatesare part of an Institute,

but there is no existence dependency

55

Page 56: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

“Furthermore, research associates can be involved in projects for a certain number of hours.”

Example – Step 3: Identifying Relationships (5/6)

Association class enables to storethe number of hours for everysingle Project of every singleResearchAssociate

56

Page 57: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

“Some research associates hold courses. Then they are called lecturers.”

Example – Step 3: identifying relationships (6/6)

• Lecturer inherits all characteristics, associations, and aggregations from ResearchAssociate.

• A Lecturer has an association teaches to Course.

57

Page 58: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Example – complete class diagram

58

Page 59: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Code generation

• Class diagrams are often created with the intention of implementing the modeled elements in an object-oriented programming language

• Often, translation is semi-automatic and requires only minimal manual intervention.

59

Page 60: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Code Generation – example (1/6)

class Course {public int courseNo;

}

class Course {public int courseNo;

}

class Course {public int courseNo;

}

class Course {public int courseNo;

}

60

Page 61: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Code Generation – example (2/6)

abstract class UniversityMember {public String firstName;public String lastName;public int ssNo;

}

abstract class UniversityMember {public String firstName;public String lastName;public int ssNo;

}

abstract class UniversityMember {public String firstName;public String lastName;public int ssNo;

}

abstract class UniversityMember {public String firstName;public String lastName;public int ssNo;

}

61

Page 62: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Code Generation – example (3/6)

Enumeration ESemester {winter,summer

}

Enumeration ERole {lecturer,tutor,examiner

}

Enumeration ESemester {winter,summer

}

Enumeration ESemester {winter,summer

}

Enumeration ERole {lecturer,tutor,examiner

}

62

Page 63: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Code Generation – example (4/6)

class Student extends UniversityMember {

public int matNo;public CourseExecution []

completedCourses;}

class Student extends UniversityMember {

public int matNo;public CourseExecution []

completedCourses;}

class Student extends UniversityMember {

public int matNo;public CourseExecution []

completedCourses;}

class Student extends UniversityMember {

public int matNo;public CourseExecution []

completedCourses;}

class Student extends UniversityMember {

public int matNo;public CourseExecution []

completedCourses;}

63

Page 64: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Code Generation – example (5/6)

class Employee extends UniversityMember {private int acctNo;public int getAcctNo {

return acctNo; }public CourseExecution [] courseExecution;

}

class Employee extends UniversityMember {private int acctNo;public int getAcctNo {

return acctNo; }public CourseExecution [] courseExecution;

}

class Employee extends UniversityMember {private int acctNo;public int getAcctNo {

return acctNo; }public CourseExecution [] courseExecution;

}

class Employee extends UniversityMember {private int acctNo;public int getAcctNo {

return acctNo; }public CourseExecution [] courseExecution;

}

class Employee extends UniversityMember {private int acctNo;public int getAcctNo {

return acctNo; }public CourseExecution [] courseExecution;

}

class Employee extends UniversityMember {private int acctNo;public int getAcctNo () {

return acctNo; }public CourseExecution [] courseExecutions;

}

64

Page 65: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Code Generation – example (6/6)

class CourseExecution {public int year;public ESemester semester;public Student [] student;public Course course;public Hashtable support;

// Key: employee // Value: (role, hours)

}

class CourseExecution {public int year;public ESemester semester;public Student [] student;public Course course;public Hashtable support;

// Key: employee // Value: (role, hours)

}

class CourseExecution {public int year;public ESemester semester;public Student [] student;public Course course;public Hashtable support;

// Key: employee // Value: (role, hours)

}

class CourseExecution {public int year;public ESemester semester;public Student [] student;public Course course;public Hashtable support;

// Key: employee // Value: (role, hours)

}

class CourseExecution {public int year;public ESemester semester;public Student [] student;public Course course;public Hashtable support;

// Key: employee // Value: (role, hours)

}

class CourseExecution {public int year;public ESemester semester;public Student [] student;public Course course;public Hashtable support;

// Key: employee // Value: (role, hours)

}

class CourseExecution {public int year;public ESemester semester;public Student [] student;public Course course;public Hashtable support;

// Key: employee // Value: (role, hours)

}

class CourseExecution {public int year;public ESemester semester;public Student [] student;public Course course;public Hashtable support;

// Key: employee // Value: (role, hours)

}

65

Page 66: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Name Notation Description

ClassDescription of the structure and behavior of a set of objects

Abstract class Class that cannot be instantiated

Association

Relationship between classes:navigability unspecified,navigable in both directions,not navigable in one direction

Notation elements (1/3)

66

Page 67: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Name Notation Description

n-ary associationRelationship between n (here 3) classes

Association classMore detailed description of an association

xor relationshipAn object of C is in a relationship with an object of A or with an object of B but not with both

Notation elements (2/3)

67

Page 68: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Notation Elements (3/3)

Name Notation Description

Shared aggregation

Parts-whole relationship (A is part of B)

Strong aggregation = composition

Existence-dependent parts-whole relationship (A is part of B)

GeneralizationInheritance relationship (A inherits from B)

Object Instance of a class

Link Relationship between objects

68

Page 69: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Take-home exercise

69

Page 70: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Exercise

1. Analyze the following system2. Select 5 functionalities that you know from using the

system3. Define a class diagram describing data and operations

behind the 5 functionalities

70

Exercise inspired by prof. Lago’s lecture at the VU

Page 71: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

What this lecture means to you?

• Class diagrams for describing• data• operations

• They can be used also as descriptive models• just for understanding the main concepts of the system• no code generation in this case, only reasoning

• Object diagrams show instances of classes• useful for describing a “snaphot” of the system at run-time

• Code generation possible• less error-prone than working on the source code directly• also less tedious• more reasoning at the right level of abstraction à better

quality of the system

71

Page 72: Structure modeling with UML [Software Modeling] [Computer Science] [Vrije Universiteit Amsterdam] [2016/2017]

VRIJEUNIVERSITEITAMSTERDAM

Readings

• UML@Classroom: An Introduction to Object-Oriented Modeling” – chapter 4

• Learning UML 2.0 – chapters 4, 5, 6

72


Recommended