Flow Flow Flow
Flow Flow Flow
Master Thesis
2
Danksagung
3
Abstract
Flow-Flow-Flow is a concept in modeling designed to improve the developer’s design task through
the ”object to class” tool. The tool is a plugin integrated in a much bigger scope tool call USE
(UML Based Specification Environment). This thesis deals with the improvement of the plugin
in order to extend the multiple possibilities that the Flow-Flow-Flow concept has offered until
now. A quantitative study has been conducted to provide elements of response on the usability
of the new functionality developed during this research work. The study allowed us to obtain
many criticisms to be taken into account regarding the lack of functionality such as keyboard
shortcuts which are unfortunately still absent. Nevertheless, the Plugin Object to class obtained
a very good average score from a survey based on UMUX (Usability Metric for User Experience).
4
Contents
Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i
1 Introduction 1
2 Technologies and Previous Research Work 3
2.1 Unified Modeling Language (UML) . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1.1 Class Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1.1.1 Association . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1.1.2 Aggregation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1.1.3 Composition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.1.4 Inheritance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.1.2 Object Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2 Programming Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2.1 Java 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2.2 Swing (Java) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3 USE : UML-based Specification Environment . . . . . . . . . . . . . . . . . . . . 12
2.3.1 The Object to Class Plugin (O2C) . . . . . . . . . . . . . . . . . . . . . . 13
2.3.1.1 Flow-Flow-Flow : From (imperfect) object Diagrams to (imper-
fect) class Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . 13
3 Requirements and Practical Examples 17
3.1 Aggregation in O2C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.1.1 “Add an Aggregation Link” . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.1.2 “Edit an aggregation Link” . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.1.3 “Delete an Aggregation Link” . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.1.4 “Transform Aggregation Links into Aggregation association” . . . . . . . 19
3.1.5 “Merge similar Aggregation Link” . . . . . . . . . . . . . . . . . . . . . . 20
3.1.6 ”Recognize and inform user for design (regarding UML) errors” . . . . . 20
3.2 Composition in O2C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.2.1 “Add a Composition Link” . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.2.2 ”Edit a Composition Link” . . . . . . . . . . . . . . . . . . . . . . . . . . 24
i
3.2.3 ”Delete a Composition Link” . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.2.4 “Transform Composition Links into Composition association” . . . . . . . 25
3.2.5 “Merge similar composition link” . . . . . . . . . . . . . . . . . . . . . . . 26
3.2.6 “Recognize and inform user for design (regarding UML) errors” . . . . . 26
3.3 Inheritance in O2C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.3.1 “Collect information on the superclass” . . . . . . . . . . . . . . . . . . . 31
3.3.2 “Report the presence of Superclass” . . . . . . . . . . . . . . . . . . . . . 31
3.3.3 “Assemble the subclasses and their corresponding superclasses during the
transformation” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.3.4 ”Recognize and inform user for design (regarding UML) errors” . . . . . . 32
3.3.5 “Link the superclass and the subclass through inheritance relationships
after transformation” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.3.6 “Organization of attributes between the superclass and the subclass” . . . 34
4 Use Cases of the System 45
4.1 Use case Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.2 Use case model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.2.1 Actors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.2.2 Use cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5 Concepts 53
5.1 Changes in the Transfomation concepts . . . . . . . . . . . . . . . . . . . . . . . 53
5.1.1 The new General Structure of element . . . . . . . . . . . . . . . . . . . . 53
5.1.2 Status of Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
5.1.3 The input Object diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.1.4 The output Class diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.2 Regarding the Transformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
5.2.1 From Object to Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.2.2 The Creation of the Generalization Relationship . . . . . . . . . . . . . . 59
5.2.3 From Links to Associations . . . . . . . . . . . . . . . . . . . . . . . . . . 59
6 Implementation 63
6.1 Parts of the Plugin and their new Features . . . . . . . . . . . . . . . . . . . . . 63
6.1.1 The Meta Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
6.1.2 Input Object Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
6.1.3 Output Class Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
7 Usability Study 73
7.1 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
7.2 Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
7.2.1 Participants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
ii
7.2.2 Schedule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
7.3 Result and Analyses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
8 Conclusion and Future Works 79
A Appendix 81
A.1 List of Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
A.2 List of Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
bibliography 85
B Evaluation sheets 89
iii
Chapter 1
Introduction
Software must be easy to use or produce the expected results without forgetting the ergonomics
of its interface. These are the most important characteristics of a good software according to
the users[LR06]. Beyond these general criteria, the specific requirements of each software design
must not be neglected. The latter being an integral part of the specifications.
“Object to class” is part of this perspective in order to offer any user the possibility to easily
create or design imperfect or incomplete class diagrams based on an imperfect or incomplete
object diagram[And18a]; It will also be nicknamed “Flow Flow Flow” in reference to the fluidity
and freedom of expression of ideas1 .
In 2017 as part of his master thesis Andreas K.2 implemented under the supervision of Professor
Martin Gogolla, the first version of the plugin we call Object to Class. This tool allows the
practice of the concept mentioned above and operating under USE (UML-based Specification
Environment)2.3 a tool for model specification and validation. This plug-in has been developed
in Java and allows the user to model an information system via a graphical interface, but this
time from an object diagram (incomplete or imperfect). To do this, it is necessary to link
previously created objects, which is only possible via a direct or indirect connection. With direct
connection we means for example binary Link and with inderect Connection we mean for example
class name.
Within the framework of this research work, it will be necessary to allow a more in-depth use
of this tool (Object to class) through the development of various other possibilities guaranteeing
the connection between objects while respecting the principles and requirements that the concept
of “Object before class” [And18b] advocates. The purpose of this Work is to determine if our
models or results obtained from (imperfect or incomplete) object diagrams approach or coincide
with the initial idea that any user was relying on his Model.
With the help of a quantitative study we will analyze the different results obtained from a group
of users with a more or less advanced knowledge on model design.
1
The content of this work is organized as follows. Chapter 2 we will introduce the technologies,
the theoretical bases and especially the previous works that allowed us to initiate this work.
Then in chapter 3 we will define and describe the requirements related to the implementation of
the new functionality in order to set the milestones for the programming work. Then Chapter 4
will describe the use cases of the Plugin after integration of our work. Chapter 5 will focus on
the different axioms that need to be put in place before implementation, which will be described
in Chapter 6. In Chapter 7 we will evaluate the new Plugin in order to highlight possible
improvements and possible future works that will be detailed in the conclusion.
2
Chapter 2
This chapter describes the relevant technologies and knowledge to build a foundation for the the-
sis. We are going to give a clear definition of UML, Class Diagram, object diagram, Association,
Aggregation, Composition, and Inheritance , then a presentation of the Programming languages
used in the thesis, and finally a presentation of USE and the Plugin O2C.
1. structure diagrams :
These diagrams represent the static aspect of a system.
2. behavior diagrams :
3
2.1. UNIFIED MODELING LANGUAGE (UML)
These diagrams represent the dynamic part of a system that reacts to events and produces
the results expected by users.
The sub-chapter describes two diagrams: the class diagram and the object diagram. In addition
other elements such as association and part-whole relationships are presented.
4
CHAPTER 2. TECHNOLOGIES AND PREVIOUS RESEARCH WORK
• the class Profile has the attributes firstN, lastN,UserN and /initials. These At-
tributes represent here respectively the family name, first name , user name and initials
of the Profile. As Operations we have:
– init( aFirtsN:String, aLastN:String, aUserN:String) which allows to initialize the at-
tributes of the Profile Class.
– invite(anInvitee : Profile) which allows the Creation of friendship between two
profiles.
– accept(anInviter: Profile) which allows a Profile to accept a friendship invitation
from another Profile.
– decline(anInviter: Profile) which allows a Profile to refuse a friendship invitation
from another Profile.
– publish(aPostText: String):Posting which allows a Profile to publish.
– comment(aPosting : Posting, aComment : String) which allows a Profile to com-
ment on Publications.
– friends():Set(Profile) which allows you to modify a Profile.
– friendship(anInviter : Profile) : Friendship which allows to know the Friend-
ship Status( acceptF or declinedF between Profiles.
• the class Posting has only one Atrribut posting. This Attribute saves the publication of a
Profile in the Social Network system.
• the class Subject has for attribute subject and this attribute represents the topic a profile
is interested in.
5
2.1. UNIFIED MODELING LANGUAGE (UML)
• the association class Friendship between Profile and Profile has one attribute status,the
operations acceptF() and declineF(). Furthermore this association class has the role
names invitee ,inviter with the multiplicities “0..*” and “0..*”
– The attribute Status serves the state of friendship between profiles.
– The operations acceptF() and declineF() each allow the acceptance and rejection of
a friendship between profiles.
• The association class Commenting between Profile and Posting has an attribute comment,the
role names commenter ,commented with the multiplicities “0..*” and “0..*”.This attribute
contains the comment of a profile on a publication.
• The association Interest between Profile and Subject has the role names profile and
subject and the multiplicities “0..*” and “0..*”.
• The composition PosterPosting between Profile and Posting contains the role names
poster and posting and the multiplicities “1” and “0..*”.
Other elements of the class diagram such as inheritance and weak part-whole relationship (aggre-
gation) have not been used in the “Social Network” class diagram,but will be clearly explained
in sections 2.1.1.2 and 2.1.1.4
2.1.1.1 Association
An association represents the relationships between different two classes [Oes09]. An association
is represented in the form of a line between classes. In addition, the association contains a name,
multiplicity, and role name. However, there are other specific types of associations namely
aggregation and composition which will be defined in the following sections. The following is an
example of the classes and associations.
Multiplicity is defined as the number of objects likely to occupy the position defined by the
association termination. In the Example Classes in Association two multiplicity is mentioned:
1. several : * or 0..* : That means that a Profile may have an interest in zero
or more Subject.
2. several : * or 0..* : That means that a Subject can be of interest to zero or
more Profile
Role names describe the meaning of the Classes involved in their Objects in more detail. In this
case profile and subject are used for the classes Profile and Subjects respectively.As an
association Name we have Interest.
6
CHAPTER 2. TECHNOLOGIES AND PREVIOUS RESEARCH WORK
2.1.1.2 Aggregation
This name is representative of a binary family of association, namely “Part-whole Relationship”.
It is divided into two types according to their characteristics:
A shared aggregation (or aggregation) is a binary association and represents a specific kind
of “ part-whole relationship”. This Form is used when the part is independently linked to its
composites or sets [Gog09].
An aggregation is generally represented by a hollow diamond very often called a white diamond
at the end of the line of a simple association, which should not be confused with that of a larger
N-aires relationship.
The characteristics of a shared aggregation are summarized as follows [Gro]:
• binary association
7
2.1. UNIFIED MODELING LANGUAGE (UML)
• whole/part relationship
• Shared- A part can be linked to as many composite instances as possible, and if these are
deleted the property can still be used.
• it is transitive (or acyclic)- aggregations must form direct acyclic graphs so that no composite
can be indirectly or directly a part of itself
• Asymmetric- there’s only one part of an association that can be an aggregation
The example in the following Figure 2.5 shows a quadrillator as an aggregation of exactly four
dimensions. Each segment can be a part of another square or not belong to any quadrillator, so
use a star “*” as multiplicity.
2.1.1.3 Composition
An aggregation composite or composition is a binary association that defines a stricter rela-
tionship between a whole and a part, which is why it is referred to as the “strong” form of
aggregation. [Gog09]
A composition can be recognized by its solid diamond (also called black diamond) which is at-
tached to the owning component. The composition points to the class/object which belongs to
8
CHAPTER 2. TECHNOLOGIES AND PREVIOUS RESEARCH WORK
• binary association
• whole/part relationship
• a part can only be contained in at most one whole at a time
• it is transitive or acyclic. Aggregations relationship must form direct acyclic graphs so that
no composite can be indirectly or directly a part of itself
• it’s asymmetric- there’s only part of an association that can be a composition
The Figure 2.6 shows a tree leaf as an exclusive part of a tree. Since Each leaf can be found in
nature without a tree, this time we will note as multiplicity “0..1” instead of 1.
Two characteristics (acyclic, sharing) will come back later in the work.The table 2.7 summarizes
2.1.1.4 Inheritance
Inheritance also known as Generalization/Specialization in UML, is represented by an arrow with
an empty triangle. This indicates the superclass or the more generalized class. At the other end
of the relationship we have the specialization classes or subclasses [Gro]. Generalization is also
considered as an “is a kind of” relationship. We will therefore say one thing (like the class Car)
“is a kind of” another more general thing (for example the class Vehicle). The particularity of
this relationship is that ,the characteristics of the superclass ie. the attributes and operations
9
2.1. UNIFIED MODELING LANGUAGE (UML)
are transmitted to the subclass. However, the subclass very often has attributes and operations
that do not come from the heritage, hence the term specialization. This specialization is also
expressed through the concept of polymorphism1 . In object oriented programming this concept
allows for example to privilege the implementation of a method in the subclass at the expense
of its implementation in the mother class [Gog09].
An object is an instance of a class and represents state of a class at a specific time. A link
represents a relationship between objects at a given time.
Object diagrams are generally used:
• to show a context i.e. the state of object instances before and after an interaction.
1 The concept consists of providing a single interface to entities that may have different types
10
CHAPTER 2. TECHNOLOGIES AND PREVIOUS RESEARCH WORK
In order to better understand the objects diagram we will give an example of an object Diagram of
the class diagram in Figure 2.2,then the definition of its components. The object diagram Social
Network [Gog17b] contains nine instances all initialized, namely four objects of the class Profile
such as merkel,may,trump,putin,then four objects from the association classes Friendship
and Commenting namely Friendship1,Friendship2,Friendship3 and Commenting1. An ob-
ject Posting1 of the class Posting and at the end a composition link PosterPosting of the
composition association PosterPosting. The diagram object Social Network shows us here
that may:Profile has sent a friendship request to merkel:Profile and this friendship request
is still pending.The friendship request that putin:Profile send to merkel:Profile has been
accepted. However the friendship request that Putin:Profile received from Trump:Profile
was refused. merkel:Profile does a posting 'BMW,we have a problem' and putin:Profile
comments on the posting by saying 'may The Donald be with you'. In the context of our
Work it will be possible that from an object diagram, we can obtain the corresponding class
diagram.
11
2.2. PROGRAMMING LANGUAGE
2.2.1 Java 9
The Java2 programming language was used for object-oriented programming in the plugin. This
Programming Language was already used for the implementation of the USE tool. For the
implementation of the new functionality we used Java 9.
• “To create and modify systems states of a specification (i.e., a .use file). Here, SOIL extends
the former command line language of USE.” [SOU04]
• “To imperatively define operations in a .use specification.” [SOU04]
2 www.Java.Com
12
CHAPTER 2. TECHNOLOGIES AND PREVIOUS RESEARCH WORK
Since 2018 there has been the first version of the Plugin ObjectToClass for USE. This Plugin
aims to convert an object diagram to a class diagram. Since the first version the plugin has been
updated and is now at version 1.3. This version will be the one on which our work will be based.
13
2.3. USE : UML-BASED SPECIFICATION ENVIRONMENT
14
CHAPTER 2. TECHNOLOGIES AND PREVIOUS RESEARCH WORK
The Transformation according to the Flow-Flow-Flow concept consists of two types of Transfor-
mations and different Steps [And18a]. As type of Transformations we have:
• Transformation from the object diagram to the class diagram: (OTC: Objects to classes);
• Transformation of link to the Association : LTA: Links to associations
The following Figure 2.12 will give us an overview of the different Stages of a Transformation.
15
Chapter 3
In this chapter we will describe the different needs related to the “ Flow-Flow-Flow” concept for
whole-part and inheritance. These will be the different functions that the plugin O2C must per-
form, in addition to the features related to its ergonomics and robustness. These characteristics
will be accompanied by examples to illustrate their application in the plugin.
The Requirements are grouped into main functionality that the application performs with the
action of the user and other background parts (without direct action of the user).
17
3.1. AGGREGATION IN O2C
Requirement Description
Add Aggregation The user can add an Aggregation link from the context menu after
selecting two objects.
Requirement Description
Edit aggregation link The user can edit an Aggregation link from the context menu after
selection of only one link of this type.
18
CHAPTER 3. REQUIREMENTS AND PRACTICAL EXAMPLES
Requirement Description
Delete Aggregation The user can delete an Aggregation link from the context menu
after selection of only one link of this type.
Requirement Description
Transform Aggregation link All Aggregation links will be transformed into Aggregation asso-
ciations after a click on the Transformation button.
19
3.1. AGGREGATION IN O2C
Figure 3.3 All aggregation links are changed into Association aggregation during transformation
Process.
Requirement Description
Merging Aggregation Association All similar Aggregation Association will be merged after Transfor-
mation into class diagram.
3.1.6 ”Recognize and inform user for design (regarding UML) errors”
Requirement Description
Recognize design Error Conflicts and errors related to Aggregation Associations are rec-
ognized.
20
CHAPTER 3. REQUIREMENTS AND PRACTICAL EXAMPLES
For error detection it is necessary to use the basic characteristics of part-whole relationships
summarized in the table 2.7 of section one: Acyclic and prohibition of sharing. As the table
shows, acyclic is a common characteristic in aggregation and composition. Examples 1-5 show
us an illustration of this detection. On the other hand, the sharing prohibition is a character
unique to the composition. The detection of this type of error will therefore be done exclusively
for the composition 3.2.6.
The figure 3.5 shows in the left window the object diagram as input, and the right window the
class diagram as output. The object diagram shows two objects of the same class associated by
two aggregations with different name. The reflexive form of the aggregation at the output is an
potential error to be reported. This is done through the broken lines but more clearly in the Log
message area.
Figure 3.6 present the same situation, but this time, The two objects of the same class are
associated by two aggregations with the same name. Once again the output has produced a
potential error to be reported.
In this case, ada is a Teacher. The output clearly shows a direct circle formed by two aggrega-
tions.
Figure 3.8 shows the same situation this time with a new element, namely composition. This
does not eliminate the error detected.
21
3.1. AGGREGATION IN O2C
22
CHAPTER 3. REQUIREMENTS AND PRACTICAL EXAMPLES
If we take back our initial configuration of the objects, we always get an error.
23
3.2. COMPOSITION IN O2C
Requirement Description
Add Composition The user can add a Composition link from the context menu after
selecting two objects.
Requirement Description
Edit Composition The user can edit a Composition link from the context menu after
selection of only one link of this type.
Requirement Description
Delete Composition The user can delete a Composition link from the context menu
after selection of only one link of this type.
24
CHAPTER 3. REQUIREMENTS AND PRACTICAL EXAMPLES
Requirement Description
Transform Composition link All Composition links will be transformed into Composition asso-
ciations after a click on the Transformation button.
25
3.2. COMPOSITION IN O2C
Figure 3.13 All composition links are changed into Association composition during transforma-
tion Process.
Requirement Description
Merging composition associations All similar Composition Association will be merged into one after
Transformation of composition link.
3.2.6 “Recognize and inform user for design (regarding UML) errors”
Requirement Description
Recognize design Error Conflicts and errors related to composition Associations are rec-
ognized.
26
CHAPTER 3. REQUIREMENTS AND PRACTICAL EXAMPLES
The example in Figure 3.15 shows on the left, an object diagram with 3 instances of the same
class, two of which are linked to the same object by a composition link. The class diagram (the
window on the right) and the Log report detect errors. These errors are due to the fact that the
composition is prohibited from sharing and acyclic.
However, it should be noted that to correct the error caused by the sharing prohibition, it is
sufficient to modify the owner’s multiplicity. We will therefore write instead of 1, the multiplicity
(0...1).
27
3.2. COMPOSITION IN O2C
In 3.16 john and ada are the parents of the student martha. They are connected by two different
compositions: Fatherhood and Motherhood. the class Student is therefore shared through these
two compositions. the message of the Log confirms this.
Now in Figure 3.17 let’s assume that, ada is a teacher. We always get an imperfect diagram
(with errors).
28
CHAPTER 3. REQUIREMENTS AND PRACTICAL EXAMPLES
Figure 3.18 represents a complex but conceivable situation of two students connected by parental
relationships using composition. This situation is therefore, due to sharing and circle, subject to
errors after transformation.
Finally we have the Figure 3.19 whose less complex situation (more conceivable) always pro-
duces errors, because of the sharing.
29
3.2. COMPOSITION IN O2C
30
CHAPTER 3. REQUIREMENTS AND PRACTICAL EXAMPLES
Requirement Description
Filling in the field Superclass name The user can enter the name of the superclass in the field. So that
he can get the Inheritance after the transformation.
Requirement Description
Notice the presence of superclass on The appearance of the object should indicate the symbol ”<”
the object. to indicate if there is a superclass and differentiate it from the
subclass.
31
3.3. INHERITANCE IN O2C
Requirement Description
Group the superclass and their sub- The superclass and their subclass are summarized after the trans-
class after the transformation. formation (merge).
3.3.4 ”Recognize and inform user for design (regarding UML) errors”
Requirement Description
Conflict detection After the transformation,conflicts between the attributes are de-
tected and displayed.
32
CHAPTER 3. REQUIREMENTS AND PRACTICAL EXAMPLES
3.3.5 “Link the superclass and the subclass through inheritance relationships
after transformation”
Requirement Description
Display the edge of the inheritance The edge of the inheritance is shown after the transformation.
after the transformation.
33
3.3. INHERITANCE IN O2C
Requirement Description
The migration of attributes between The attributes of the superclass are assigned to their classes after
the superclass and the subclass the transformation and merge.
– “If the attribute names of the instances of the same subclass and the attribute names
of the instances of the same superclass are the same and the same type”
34
CHAPTER 3. REQUIREMENTS AND PRACTICAL EXAMPLES
Figure 3.25 shows the organization of the attributes between the superclass and its
subclass at the end of the transformation from the attributes filled in two instances of
the same subclass and two instances of the same superclass in the input object diagram
before the transformation.
– “If the attribute names of the instances of the same subclass and the attribute names
of the instances of the same superclass are the same and are of different type”
Figure 3.26 shows the non-migration of attributes to the superclass and attribute conflicts
of contradictory type after transformation from attributes filled in two instances of the same
35
3.3. INHERITANCE IN O2C
subclass and two instances of the same superclass in the input object diagram.
• Case2: An instance of the superclass has attribute names and instances of the
same subclass also have attribute names Or an instance of the subclass has attribute
names and instances of the same superclass subclass also have attribute names
– “If the attribute names of the instance or instances of the same subclass and the at-
tribute names of the instance or instances of the same superclass are identical and are
of the same type”
36
CHAPTER 3. REQUIREMENTS AND PRACTICAL EXAMPLES
– “If the attribute names of the instance or instances of the same subclass and the at-
tribute names of the instance or instances of the same superclass are the same and have
different types”
37
3.3. INHERITANCE IN O2C
• Case3:an instance of the superclass and an instance of the subclass have attribute
names
– “If the attribute names of the instance of the subclass and the attribute names of the
instance of the superclass are identical and have the same type”
– “If the attribute names of the instance of the subclass and the superclass are the same
and have different types, or simply if the attribute names of the instance of the subclass
and the superclass are different”
* No migration of attribute
38
CHAPTER 3. REQUIREMENTS AND PRACTICAL EXAMPLES
• Case4:An instance of the subclass has attribute names and the instance of the
superclass has no attribute names.
– No migration of attribute
39
3.3. INHERITANCE IN O2C
• case5: Instances of the same subclass have the same attribute names with different
types and an instance of the superclass has no attribute names.
– Case6: Instances of the same subclass have the same attribute names with
identical types and an instance of the superclass has no attribute names
40
CHAPTER 3. REQUIREMENTS AND PRACTICAL EXAMPLES
• Case7: an instance of the subclass does not have attribute names and an instance
of the superclass has attribute names
– No migration of attribute
• case8 :Instances of the same superclass have the same attribute names with different
types and an instance of the subclass have no attribute names
41
3.3. INHERITANCE IN O2C
• Case9: Instances of the same superclass have the same attribute names with identical
types and an instance of the subclass has no attribute names
42
CHAPTER 3. REQUIREMENTS AND PRACTICAL EXAMPLES
• Case10: Two instances of different subclass that inherit the same superclass
– If the attribute names of these two instances are identical and of the same
type
– If the attribute names of these instances are the same and of a different
type
43
Chapter 4
The chapter describes the use cases of the whole system. These Use Cases summarize the different
functionalities related to the requirements stated in the previous chapter.
45
4.2. USE CASE MODEL
46
CHAPTER 4. USE CASES OF THE SYSTEM
4.2.1 Actors
All System Actors are Developers.
Starting condition The plugin is already running (the input object diagram window
is active).
Ending condition the object has been successfully created.
47
4.2. USE CASE MODEL
48
CHAPTER 4. USE CASES OF THE SYSTEM
49
4.2. USE CASE MODEL
Starting condition The partial object diagram view has already been started.
Ending condition
Starting condition The partial object diagram view has already been started and is
active.
Ending condition
50
CHAPTER 4. USE CASES OF THE SYSTEM
Starting condition The partial class diagram view is active and shows uncritical ele-
ments.
Ending condition
Starting condition The partial class diagram view is active and shows missing items.
Ending condition
51
4.2. USE CASE MODEL
Starting condition The partial class diagram view is active and shows contradictory
items.
Ending condition
52
Chapter 5
Concepts
In this Chapter the new general Structure of Elements and the new aspect of transformation are
described. The changes made are in line with the basic design idea. Finally, the New Aspects of
Transformation presented in the examples of the previous chapters will be described in a formal
way.
53
5.1. CHANGES IN THE TRANSFOMATION CONCEPTS
aggregation links, and finally two for strong aggregation links or composition links.
Status of Association
Associations of the type part-whole relationship are not only contradictory if there is more than
one role name at either end, but yet also when the connection between the classes forms a di-
rect cycle made up exclusively of the part-whole relationship (Figure 3.8), or when two or more
Composition relationships start from a single class (Figure 3.17). In this case, the status of the
concerned associations will be displayed in the log window.
54
CHAPTER 5. CONCEPTS
• An object is incomplete when it has no class name or at least one attribute that is incomplete
and contradictory when at least one attribute that is contradictory.
• For the classes the previous rules are applied.
• When a link name is missing the link has the status incomplete otherwise it is complete
• The use of more than one type for an attribute is contradictory for the attribute its self,
elsewhere the absence of the name of an attribute is considered as incomplete.
55
5.2. REGARDING THE TRANSFORMATION
Its role in this process remains the same, i.e. to display the interpretation of the object diagram
introduced in the input. Apart from the layout of the elements, no changes can be made in
this interface. However, one can go back to modify the input and make a new transformation.
Some changes have been made at this stage with the same goal: to interpret in the best possible
way without changing the developer’s thinking. The class diagram now allows to display the
inheritance, as well as the migrated attributes, after interpretation of the input object diagram.
It is also possible to display other types of associations: The part-whole relationship (aggregation
and composition). The log window, already present in previous versions of the Plugin, will be
used to display error messages regarding the sharing and cyclical characteristics of this type of
association.
Note that the transformation process is very important for this part ,it is about understanding
as much as possible the developer input object diagram and producing a(n)(imperfect) class
diagram. The following section will provide more detail on this topic.
It is in this model that the new updates of the transformation are based. It should be noted
that these three Processes are well executed in the order presented. Concerning inheritance, the
Transformation is done respectively by creating superclasses and subclasses from the objects. i.e.
by filling in the fields Class name and Superclass name or the field Superclass name only. Then
56
CHAPTER 5. CONCEPTS
moving the attributes filled in the objects to the corresponding classes, i.e. to the superclass
or subclass. In addition to this, a Generalization Relationship has been developed between the
Superclass and subclass in order to obtain the Edge of inheritance between the Superclass and
its subclasses. Aggregations and compositions are created during the third phase, i.e. during the
creation of associations. As a result, some modifications have been made in this phase. These 3
phases are subdivided into several steps summarized in the state diagram (Figure 5.2).
Figure 5.3 Creation of Superclasses and Subclasses based on the input Objects.
1. The fields Class name and SuperClass name of the object must have values.
(a) if the Superclass and subclass do not already exist, then two classes are created.
(b) if the Superclass or subclass already exists, then a merge into the existing Class will
be done.
(c) if the Superclass and the subclass already exist, then a Merge into the existing
Superclass and subclass will be done.
2. the SuperClass name field of the object must have value and the Class name field of the
object has no value.
57
5.2. REGARDING THE TRANSFORMATION
(a) In this case two classes are created: a class with a name and another one without a
name.
However if the SuperClass name field of the object has no value and the Class name field of
the same object has a value or not, then only one class will be created.
If the attribute names of the instances of the same subclass and the attribute names of the
instances of the same superclass are identical and have different types, then there is no attribute
migration to the superclass after the transformation, but rather the merging of the attributes
with the contradictory type in either thesuperclass and the subclass. Concrete examples of non-
Migration and the merging of attributes that have the contradictory type are presented by Figures
3.26,3.29, 3.30. However,if the Attribute names of the instances of the same subclass and the
Attribute names of the instances of the same superclass are identical and have the same types.
In this case,we have a merge and a migration of the attributes to the superclass. The Figures
3.25, 3.27, 3.28 are a concrete examples that shows the Merging and Migration of Attributes to
the superclass after the transformation. We can also observe that if the attribute names of the
instances of the same subclass and the attribute names of the instances of the same superclass are
not identical. In this case there is no merging and attribute migration after the transformation.
If the attribute names of the instance of the subclass and the attribute names of the instance of
the superclass are identical and have different types or if the attribute names of the instance of the
subclass and the attribute names of the instance of the superclass are not identical then there is
no attribute migration to the superclass after the transformation. Figures 3.31, 3.32 are concrete
examples of this non Attribute Migration. However if the attribute names of the instance of the
subclass and the instance of the superclass are identical and have the same types, then we obtain
a merge and a migration of the attributes to the superclass after the transformation. Figure 3.31
is a concrete example of Attribute Migration and Merge.
if the names of the attributes of the instances of different subclasses that inherit from the same
superclass are identical and have the same type, then there is merging and migration of these at-
tributes to the superclass after the transformation. Figure 3.40 shows the merging and migration
58
CHAPTER 5. CONCEPTS
of attributes to the superclass after the transformation from attributes filled in two instances of
the same subclass in the Input Object Diagram.However in the case where the attribute names
of the instances of different subclasses that inherit the same superclass are identical and have
different types. Then there is no migration of attributes to the superclass at the end of the
transformation. The Figure 3.41 shows that there is no attribute migration to the superclass.
59
5.2. REGARDING THE TRANSFORMATION
60
CHAPTER 5. CONCEPTS
61
5.2. REGARDING THE TRANSFORMATION
62
Chapter 6
Implementation
This part will focus on the application of the modelling carried out in the requirement chapter.
It will introduce the new metamodel and the new functionalities provided to the system, without
forgetting the ergonomic aspect. The source code used for the implementation will not be
presented here but will be made available to the Database group of the Bremen University.
• The Metamodel
• Object diagram of USE
• Input object diagram
• Output class diagram
63
6.1. PARTS OF THE PLUGIN AND THEIR NEW FEATURES
is linked to 4 other classes, two of which are new. Indeed the class Complink and AggLink are
both newly integrated in the meta model. These two classes have the same attributes as the
Link class. Every composition and aggregation link is represented by its equivalent graphical
entity in the UML input object diagram. Each entity has a name and role names. The difference
is made at the multiplicity level. If there are so many similarities on some characters of these
links, it is nevertheless to be noted that a difference is necessary at the level of multiplicity in
the meta-model. Indeed if each link (including aggregation and composition) must be connected
to exactly two objects each time (ternary links are not yet available), each object can only be
connected to one instance of the CompLink class in the ownedObject-ownedComposition asso-
ciation.This is to model the prohibition of sharing for composition links in the meta model.
The Attributes of these two classes (AggLink and CompLink), indicate respectively, from top to
bottom, the name of the link, and the name of its 2 roles in the input diagram.
Moreover, when creating objects in the Input object diagram , another object diagram is created
in parallel, this one is meta model-specific and is generated by USE. The Figure 6.2 gives an
overview of this interface during the creation of the objects in the example of our test in the next
chapter in the Figure 7.1.
64
CHAPTER 6. IMPLEMENTATION
65
6.1. PARTS OF THE PLUGIN AND THEIR NEW FEATURES
The creation of the superclass field in the input of the diagram object was done using a GUI
toolbox for the Java programming language called Swing(Java).
• After a selection of exactly two objects, Insert aggregation and Insert composition.
• After a selection of an aggregation link or a composition link, display destroy for the selected
element .
66
CHAPTER 6. IMPLEMENTATION
these objects is taken into account when creating these part-whole links. Indeed the first object
of the selection will designate the part and the second object of the selection the whole.
It should be emphasized that the order of selection of the objects involved in the part-whole
relationship follows a direction identical to that of a conventional composition, i.e. from the
container or whole element (object 1) to the contents or part element (object 2) [Gro]. The
transformation of the part-whole relationship into an association follows the procedure described
in the section 5.2. Part-whole relationships are treated as simple links and therefore are im-
plemented from the same class. However a distinction is made for the implementation of other
uses such as the detection functionality of aggregations and compositions. Consequently, the
attribute kind will be used in the Java class of links as well as at the Java class of associations.
67
6.1. PARTS OF THE PLUGIN AND THEIR NEW FEATURES
68
CHAPTER 6. IMPLEMENTATION
69
6.1. PARTS OF THE PLUGIN AND THEIR NEW FEATURES
developed that allows after the creation of classes to switch to the organization of attributes
between the superclass and its subclass. Figures 3.40 ,3.25, 3.31, 3.32 and 3.33 show how this
organization of attributes between the superclass and its subclass or subclasses is represented.The
figures 3.15 and 3.8 show, using the Log view, the errors or conflicts that occurred after the
transformation into a class diagram. The presentation of those errors related to the aggregation
and composition associations is done with the help of the isShared and isCyclic parameters
quoted in Figure 5.1. Thus, each Aggregations and Compositions having a conflict related to these
Two characteristics will be detailed in this view, but will also be represented as a discontinuous
line. Each parameter intervenes in a well-defined detection process.
• Thus to detect a cycle in a class diagram, we needed to introduce the depth-first search
(DFS) technique. The depth-first search (DFS) is an useful technique for analyzing graphs,
Determine the connected components of a graph,find cycles in a directed or undirected graph
[Uni17]. To detect a cycle or a back edge, an eye can be kept on the nodes that are currently
in the recursion function for DFS traversals. When a vertex that is already in the recursion
stack is reached, there is a cycle in the diagram. The edge connecting the current vertex to
the vertex to the vertex in the recursion stack is a back edge.
70
CHAPTER 6. IMPLEMENTATION
71
Chapter 7
Usability Study
In the previous chapters the design and implementation were presented. But does the Object-
ToClass plugin fulfills the needs of the user? Does the result of the transformation match with
the user expectations? Are there any usability issues in using the plugin? This question will be
answered in this chapter.
7.1 Methods
In order to achieve the objectives defined for this thesis and to determine whether the developed
features meets the needs of the developer or whether there are still improvements to be made
on this plugin, a survey to measure the usability of the user experience on the new features
of the Plugin has been carried out. This study is divided into two parts: A practical phase
and a feedback phase. The practical phase will consist of the use of the plugin by the different
participants. The Feedback will be an opportunity for us to gather important information about
the experience with the application. For this step we will need to use a tool designed for this
purpose called UMUX (Usability Metrics For User Experience). UMUX is a tool for measuring
the usability of the user experience and has been developed on the basis of SUS (System Usability
Scale). But UMUX focuses on the usability definition of ISO 9241-11 and measures the subjective
assessment of perceived usability by test persons using a seven-level scale (!!!quelle!!!). In contrast
to SUS (System Usability Scale), UMUX has four Questions, three Questions are targeting the
components effectiveness, efficiency and satisfaction and the other question targeting the general
aspect. This tool has been developed in order to overcome the weaknesses noted on the System
usability scale (SUS). Indeed, the elements of SUS did not correspond well to the concepts that
constitute usability according to ISO 9241-11 (1998), i.e. effectiveness, efficiency and satisfaction
(!!!Quelle!!!). So UMUX was set up and proposes a shorter questionnaire, as effective as SUS but
above all appropriate as a usability component of a broader experience index [Fin10a]. Table 7.1
shows the different UMUX Questions.
73
7.1. METHODS
The object diagram of Figure 7.1 was given on a sheet of paper to the different participants of
the evaluation so that they could propose on another paper a class diagram corresponding to
that object diagram. Then this participants should reproduce the object diagram in Figure 7.1
in the input object diagram of the Plugin and perform a transformation. The evaluation took
place from 06 to 09 January between 11:00 and 17:45 in room 1240 of the MZH (a building of the
University of Bremen), managed by the FB03 department. The evaluation lasted approximately
45 minutes:
• The first 15 minutes served to inform the participant on how the evaluation would be
conducted.
The last 30 minutes were used as follows:
• 10 minutes for the participant to draw a class diagram on a piece of paper in relation to the
object diagram in Figure 7.1 that has been proposed to him.
• 20 minutes for the participant to introduce the object diagram of Figure 7.1 that has been
proposed to him in the plugin, then to carry out the transformation of this object diagram
into a class diagram.
• The last 10 minutes have been reserved for the participant’s feedback on the Plugin.
74
CHAPTER 7. USABILITY STUDY
7.2 Procedure
7.2.1 Participants
Participants were selected on the basis of their knowledge of UML. For this purpose we decided
to choose two Software developers and testers who have a Master’s degree in Computer Science
at the University of Bremen, then a Research Assistant at the University of Bremen in the
field of Computer Science, and finally two students in Master of Computer Science who already
participated in the course Design of Information Systems in the summer semester 2019 taught
by Martin Gogolla [Gk19].
7.2.2 Schedule
In order to ensure the anonymity of the participants we decided to name them by p1, p2, p3, p4
and p5. Participants p1 and p2 carried out the evaluation on 6 January 2020 in room 1240 of
the MZH from 11:00 to 11:45 and 17:00 to 17:45 respectively. p1 and p2 are Master Students in
Computer Science at the University of Bremen. Participants p3 and p4 participated respectively
in the evaluation on 07 January 2020 from 16:00 to 16:45 and 17:00 to 17:45. p3 and p4 are
software developers and testers who have a Master’s degree in Computer Science at the University
of Bremen. Finally participant p5 carried out the evaluation on 09 January 2020 from 16:00 to
16:45. Participant p5 is a research assistant at the University of Bremen in the field of computer
science.
75
7.3. RESULT AND ANALYSES
• to P1:
– Association “Examination” has no identifier.
– Association “Homeworking” has no identifier.
– Association “Homework” to “Event” is wrong. (correct would be “Project”)
• to P2
– Link from “Course” to “Course” has no aggregation but a simple association.
• to P3
– The association of “project” to “homework” is missing.
• to P4
– Role name for “Prerequisite” missing.
– Association name from “Project” to “Homework”. missing
• to P4
– Role name and identifier for composition from “Course” to “Homework” missing.
The class diagram of the plugin has 17 elements (classes and associations). If you consider the
missing identifiers and role names as transient errors, there are 3 deviations left, which affect the
structure of the class diagrams. Or in other words, out of a total of 17 × 5 elements, 3 would have
errors (where 5 is the number of subjects). This results in an error rate of (3/85) ∗ 100 = 3.53%.
This deviation is minimal. Therefore it is assumed that the result of the plugin is highly consistent
with the developer’s expectations.
After having explained the quantitative representation and evaluation of the manually created
76
CHAPTER 7. USABILITY STUDY
class diagrams, we now turn to the results of the UMUX survey. The results can be seen in the
following table.
The O2C Plugin’s Using the plugin is The plugin is I have to spend too Score
capabilities meet a frustrating expe- easy to use much time correct-
my requirements rience ing things with the
plugin
p1 5 4 4 2 62.5%
p2 6 1 6 2 87.5%
p3 7 2 6 1 91.67%
p4 6 1 7 5 79.17%
p5 6 2 5 2 79.17%
Table 7.2 Result of the Participants’ evaluation based on the UMUX Questions
It should be noted that the test persons are also anonymous here. Therefore, p1 is not equal to
P1 from section 7.3. The score was calculated with the following formula [Meh16]:
The average score is 80. Compared to the SUS rating, the usability is between “good” and
“excellent” [TEC16].
77
7.3. RESULT AND ANALYSES
78
Chapter 8
This work is based on the results of Andreas Kaertner. In his work ”On the Transformation from
Incomplete Object Diagrams to Incomplete Class Diagrams” he had developed a plugin for the
tool USE, which automatically transforms an object diagram into a class diagram. Therefore,
objects were transformed into classes and links into associations.
Even though this work laid a foundation stone, some important features were still missing. So
it was not possible to derive generalizations and Part-Whole-Relationship from the object di-
agrams. The task of this work was to extend the plugin with these two features according to
specific requirements. Therefore concepts for the interpretation of the object diagram had to be
created and implemented for the tool USE.
For this purpose the GUI was extended so that a superclass could be specified for each object.
Furthermore, new relationship types were added to the editor for aggregation and composition.
So that objects could be linked with these relationships. From this additional information it was
now possible to derive the generalizations as well as the Part-Whole-Relationship between the
generated classes. To realize this, besides the above described syntactic information, a semantics
must be created. Therefore, it has to be said how this additional information can be found in
the class diagram. These rules were created and the transformation was adapted accordingly.
With this extension, it is now possible for a developer to use aggregation and composition, as
well as generalization of the plugin. It should be noted that, as in the work of Andreas Kaertner,
errors are tolerated by the developer. Therefore, it is sufficient to specify an incomplete object
diagram. In this case the class diagram will be created as far as possible (incomplete). Any
incorrect entries made by the user are taken into account.
In order to test the usability, an evaluation was carried out. For this purpose 5 test persons
were asked to transform an object diagram by hand into a class diagram. It turned out that the
diagrams created by hand were highly consistent with the result of the automatically created
class diagram. At this point, however, it should be noted that there were deviations in the car-
dinalities. This is due to the fact that an object diagram is only a snapshot of a class diagram.
Therefore, the cardinalities cannot be uniquely identified. Furthermore, a UMUX survey was
79
conducted. The plugin was scored with a value of 80%, which indicates a high level of user-
friendliness.
Even though the plugin has been extended in this work, there are more features that can be im-
plemented in the future. For example, it is currently not possible to generate enumerations from
the objects. This could be realized by the developer specifying a value like ”color::red” for the
corresponding attribute. The enumeration ”color” could then be derived from this information.
In addition, The keyboard shortcut function has not been implemented yet, but it is one of the
features to be developed in the future work on the plugin. Indeed during the tests it would have
been easier to create an object, to copy it with the combination “CTRL+C” then to duplicate
it with “”CTRL+V””. Note that the above example is one of the many possibilities offered by
the shortcut function.
In summary, it is to be noted that the goal of our work has been achieved, i.e. a consequent
and useful improvement of the plugin in spite of the multiple improvements that are still to be
made.
80
Appendix A
Appendix
81
A.1. LIST OF FIGURES
82
APPENDIX A. APPENDIX
83
bibliography
[And18a] Bran Selic Andreas Kästner Martin Gogolla. “From (Imperfect) Object Diagram (Im-
perfect) Class Diagrams”. In: Publications of the University of Bremen Database Sys-
tems Group (2018), p. 2. doi: http://www.db.informatik.uni-bremen.de/publications.
[And18b] Bran Selic Andreas Kästner Martin Gogolla. “From (Imperfect) Object Diagram (Im-
perfect) Class Diagrams”. In: Publications of the University of Bremen Database Sys-
tems Group (2018), p. 7. doi: http://www.db.informatik.uni-bremen.de/publications.
[And18c] Bran Selic Andreas Kästner Martin Gogolla. “From (Imperfect) Object Diagram (Im-
perfect) Class Diagrams”. In: Publications of the University of Bremen Database Sys-
tems Group (2018), p. 3. doi: http://www.db.informatik.uni-bremen.de/publications.
[And18d] Bran Selic Andreas Kästner Martin Gogolla. “From (Imperfect) Object Diagram (Im-
perfect) Class Diagrams”. In: Publications of the University of Bremen Database Sys-
tems Group (2018), p. 4. doi: http://www.db.informatik.uni-bremen.de/publications.
[Bal17] Heide Balzert. UML2 in 5 Tagen Der schnelle Einstieg in de Objektorientierung
3.Auflage. 3rd ed. Springer Campus, 2017, p. 11. isbn: 9783961490141.
[Chr17a] Ralf Hoffmann-Elbern Christoph Kecher Alexander Salvanos. UML 2.5 Das um-
fassende Handbuch. 1st ed. Rheinwerk Computing, 2017, p. 37. isbn: 9783836260183.
[Chr17b] Ralf Hoffmann-Elbern Christoph Kecher Alexander Salvanos. UML 2.5 Das um-
fassende Handbuch. 1st ed. Rheinwerk Computing, 2017, p. 48. isbn: 9783836260183.
[Fin10a] Kraig Finstad. “The Usability Metric for User Experience”. In: Interacting with Com-
puters 22 (Sept. 2010), pp. 323–327. doi: 10.1016/j.intcom.2010.04.004.
[Fin10b] Kraig Finstad. “The Usability Metric for User Experience”. In: Interacting with Com-
puters 22 (Sept. 2010), p. 326. doi: 10.1016/j.intcom.2010.04.004.
[Gk19] Martin Gogolla and Andreas kaestner. “Design of Information Systems UML Mod-
eling Concepts and Introduction to USE”. In: 2019, p. 97. url: http : / / www . db .
informatik.uni-bremen.de/teaching/courses/ss2019_eis/.
[Gog09] Martin Gogolla. “Unified Modeling Language”. In: Encyclopedia of Database Systems.
Ed. by LING LIU and M. TAMER ÖZSU. Boston, MA: Springer US, 2009, pp. 3232–
3239. isbn: 978-0-387-39940-9. doi: 10.1007/978- 0- 387- 39940- 9_440. url: https:
//doi.org/10.1007/978-0-387-39940-9_440.
85
BIBLIOGRAPHY
[Gog14] Martin Gogolla. “Once again on Association, Aggregation, and Composition”. In:
ss2019eis (2014), p. 3. doi: http : / / www . db . informatik . uni - bremen . de / teaching /
courses//4d-assoc-agg-comp.pdf.
[Gog17a] Martin Gogolla. “Design of Information Systems UML Modeling Concepts and In-
troduction to USE”. In: 2017, p. 9. url: www.db.informatik.uni-bremen.de/teaching/
courses/ss2017_eis/1-dis-2017-Part1.pdf.
[Gog17b] Martin Gogolla. “Design of Information Systems UML Modeling Concepts and Intro-
duction to USE”. In: 2017, p. 18. url: www.db.informatik.uni-bremen.de/teaching/
courses/ss2017_eis/1-dis-2017-Part1.pdf.
[Gro] Object Management Group. OMG Unified Modeling Language(OMG UML) version
2.5.1. url: https://www.omg.org/spec/UML/2.5.1/PDF. (accessed: 06.11.2019).
[Kae17] Andreas Kaestner. “On the Transformation from Incomplete Object Diagrams to
Incomplete Class Diagrams,Master Thesis,Fachbereich Mathematik und Informatik”.
In: 2017.
[Kuh07] Mirco Kuhlmann. “A UML-based Specification Environment”. In: (2007). url: http:
//www.db.informatik.uni- bremen.de/projects/USE- 2.3.1/#overview. (accessed:
16.12.2019).
[LR06] Bernhard Lahres and Gregor Raýman. Praxisbuch Objektorientierung: von den Grun-
lagen zur Umsetzung. 1st ed. Galileo Computing, 2006. isbn: 3898426246.
[Meh16] Dilek Karahoca Mehmet Ilker Berkman. “Re-Assessing the Usability Metric for User
Experience (UMUX) Scale”. In: 2016. url: http : / / uxpajournal . org / wp - content /
uploads/sites/8/pdf/JUS_Berkman_May2016.pdf.
[Oes09] Bernd Oestereich. “Analyse und Design mit UML 2.3 Objektorientierte Softwareen-
twicklung”. In: Deutsche National Bibliothek, 2009. Chap. 2.9.
[Ora04] Oracle. “About the JFC and Swing”. In: (2004). url: https : / / docs . oracle . com /
javase/tutorial/uiswing/start/about.html. (accessed: 27.02.2019).
[Ric02] Mark Richters. “A precise approach to validating UML models and OCL constraints,
Ph.D. Thesis, Universitat Bremen, Fachbereich Mathematik und Informatik, Logos
Verlag, Berlin, BISS Monographs, No. 14”. In: 2002.
[SOU] SOURCEFORGE. USE: UML-based Specification Environment. url: https://sourceforge.
net/projects/useocl/. (accessed: 16.12.2019).
[SOU04] SOURCEFORGE. “SOIL”. In: (2004). url: http://useocl.sourceforge.net/w/index.
php/SOIL. (accessed: 16.12.2019).
[TEC16] TECFA. “Échelles d’utilisabilité”. In: 2016, p. 11. url: https://tecfa.unige.ch/tecfa/
maltt/ergo/articles/P3/echelles_utilisabilite_(Lallemand2016).pdf.
[uml] uml-diagrams.org. UML 2.4 Diagrams Overview. url: https://www.uml- diagrams.
org/uml-24-diagrams.html. (accessed: 06.11.2019).
86
BIBLIOGRAPHY
[Uni17] Carnegie Mellon University. “Depth First Search and Strong Components”. In: 2017,
p. 10. url: https : / / www . cs . cmu . edu / ~15451 - f17 / lectures / lec11 - DFS - strong -
components.pdf.
87
89
Appendix B
Evaluation sheets
90
P1
APPENDIX B. EVALUATION SHEETS
91
P2
92
APPENDIX B. EVALUATION SHEETS
93
P3
94
APPENDIX B. EVALUATION SHEETS
95
P4
96
APPENDIX B. EVALUATION SHEETS
97
P5
98
APPENDIX B. EVALUATION SHEETS
99
)ORZ)ORZ)ORZ6XUYH\
]avå]avå]av1pluMx
;IPGSQIXSXLMWWYVZI]-RSVHIVXSLEZIJIIHFEGOJVSQ]SYVI\TIVMIRGIYWMRKXLI4PYKMR3'
[I[ERX]SYXSERW[IVXLIJSPPS[MRKWXEXIQIRX[MXLSRISJXLITSWWMFPIGLSMGIW
6IQIQFIVXLIVIMWSRP]SRIKSSHERW[IV=SYVERW[IV
6IUYMVIH
3mU_SoTMi]pSU_Um@Rlpmol@oU_SMwiMlUM_IMÈÓ
1EVOSRP]SRISZEP
-WXVSRKP]HMWEKVII -WXVSRKP]EKVII
2TM% -]pSU_õmI@i@HU]UoUMm^MMo^xlMkpUlM^M_omÓ
1EVOSRP]SRISZEP
-WXVSRKP]HMWEKVII -WXVSRKP]EKVII
2TMi]pSU_UmM@mxoapmMÓ
1EVOSRP]SRISZEP
-WXVSRKP]HMWEKVII -WXVSRKP]EKVII
100
APPENDIX B. EVALUATION SHEETS
101
)ORZ)ORZ)ORZ6XUYH\
T@uMoamiM_Koaa^pIToU^MIallMIoU_SoTU_SmvUoToTMi]pSU_ÈÓ
1EVOSRP]SRISZEP
-WXVSRKP]HMWEKVII -WXVSRKP]EKVII
8LMWGSRXIRXMWRIMXLIVGVIEXIHRSVIRHSVWIHF]+SSKPI
8ad_e
102