2. IEEE 42010-2011 - ISO/IEC/IEEE SYSTEMS
AND SOFTWARE ENGINEERING
ARCHITECTURE DESCRIPTION
• https://www.sis.se/api/document/preview/914062/
Stakeholder onion diagram
3. IEEE 42010-2011 - ISO/IEC/IEEE SYSTEMS
AND SOFTWARE ENGINEERING
ARCHITECTURE DESCRIPTION
Our interest
4. UML – UNIFIED MODELING
LANGUAGE
1. What is UML?
The Unified Modeling Language (UML) is a general-purpose, modeling language in the field of software
engineering that is intended to provide a standard way to visualize the design of a system.
The creation of UML was originally motivated by the desire to standardize the disparate notational systems and
approaches to software design. It was developed at Rational Software in 1994–1995.
In 1997, UML was adopted as a standard by the Object Management Group (OMG), and has been managed by this
organization ever since. In 2005, UML was also published by the International Organization for Standardization (ISO)
as an approved ISO standard.
5. UML – UNIFIED MODELING
LANGUAGE
Structure diagrams show the static structure of the
system and its parts on different abstraction and
implementation levels and how they are related to each
other. The elements in a structure diagram represent the
meaningful concepts of a system, and may include
abstract, real world and implementation concepts.
Behavior diagrams show the dynamic behavior of the
objects in a system, which can be described as a series of
changes to the system over time.
6. UML – UNIFIED MODELING
LANGUAGE
Behavioral diagrams
Use Case
Interaction diagrams
Sequence diagram
Communication diagram
Structure diagrams
Class diagram
Package diagram
System context (diagram is not part of UML)
Entity relationship diagram (diagram is not part of
UML)
Dinamic modeling diagrams
State machine diagram
Activity diagram
Realization diagrams
Component diagram
Deployment diagram
7. SYSTEM CONTEXT DIAGRAM
System context diagram (SCD) in engineering is a diagram that defines the
boundary between the system, or part of a system, and its environment, showing
the entities that interact with it. This diagram is a high level view of a system.
https://www.youtube.com/watch/fWNrc6GNK14
8. UML – UNIFIED MODELING
LANGUAGE
Use case diagrams are usually referred to as behavior diagrams used to
describe a set of actions (use cases) that some system or systems
(subject) should or can perform in collaboration with one or more
external users of the system (actors). Each use case should provide some
observable and valuable result to the actors or other stakeholders of the
system.
Use case diagrams are in fact twofold - they are both behavior diagrams,
because they describe behavior of the system, and they are also
structure diagrams - as a special case of class diagrams where classifiers
are restricted to be either actors or use cases related to each other with
associations.
(System) Use case diagrams are used to specify:
• (external) requirements, required usages of a system under design or
analysis (subject) - to capture what the system is supposed to do;
• the functionality offered by a subject – what the system can do;
• requirements the specified subject poses on its environment - by
defining how environment should interact with the subject so that it
will be able to perform its services.
https://www.youtube.com/watch?v=Bjj5CPL6OdI
https://www.uml-diagrams.org/use-case-diagrams.html
9. UML – UNIFIED MODELING
LANGUAGE
UML Use Case <<include>> relationship
• Use case include is a directed relationship between two use cases which is used to show that behavior of the included use case
(the addition) is inserted into the behavior of the including (the base) use case.
• The include relationship could be used:
• to simplify large use case by splitting it into several use cases,
• to extract common parts of the behaviors of two or more use cases.
• A large use case could have some behaviors which might be detached into distinct smaller use cases to be included back into the
base use case using the UML include relationship. The purpose of this action is modularization of behaviors, making them more
manageable.
10. UML – UNIFIED MODELING
LANGUAGE
UML Use Case <<include>> relationship
• When two or more use cases have some common behavior, this common part
could be extracted into a separate use case to be included back by the use cases
with the UML include relationship.
11. UML – UNIFIED MODELING
LANGUAGE
UML Use Case <<include>> relationship
• Include relationship between use cases is shown by a dashed arrow with an open
arrowhead from the including (base) use case to the included (common part) use
case. The arrow is labeled with the keyword «include».
12. UML – UNIFIED MODELING
LANGUAGE
• UML Use Case <<extend>> relationship
• Extend is a directed relationship that specifies how and when the behavior defined in usually supplementary (optional) extending use case can be inserted into
the behavior defined in the extended use case.
• Extended use case is meaningful on its own, it is independent of the extending use case. Extending use case typically defines optional behavior that is not
necessarily meaningful by itself. The extend relationship is owned by the extending use case. The same extending use case can extend more than one use case,
and extending use case may itself be extended.
• The extension takes place at one or more extension points defined in the extended use case.
• Extend relationship is shown as a dashed line with an open arrowhead directed from the extending use case to the extended (base) use case. The arrow is labeled
with the keyword «extend».
The condition of the extend relationship as well as the
references to the extension points are optionally shown in a
comment note attached to the corresponding extend
relationship.
13. UML – UNIFIED MODELING
LANGUAGE
• Use Case Relationships Compared
14. UML – UNIFIED MODELING
LANGUAGE
• Package diagram is UML structure diagram
which shows structure of the designed
system at the level of packages.
• Package is a conceptual level structure used
in design phase
Packages can be used in all
types of UML diagrams:
E.g. we can group all use
case diagrams in one
package
https://www.uml-
diagrams.org/package-diagrams-
overview.html
15. UML – UNIFIED MODELING
LANGUAGE
• Sequence diagram is the most
common kind of interaction
diagram, which focuses on the
message interchange between a
number of lifelines.
• Sequence diagram describes an
interaction by focusing on the
sequence of messages that are
exchanged, along with their
corresponding occurrence
specifications on the lifelines.
https://www.youtube.com/watch?v
=XIQKt5Bs7II
https://www.youtube.com/watch?v
=pCK6prSq8aw
https://www.uml-
diagrams.org/sequence-
diagrams.html
16.
17. UML – UNIFIED MODELING
LANGUAGE
Communication diagram is a kind of UML interaction
diagram which shows interactions between objects
and/or parts (represented as lifelines) using sequenced
messages in a free-form arrangement.
Communication diagram corresponds (i.e. could be
converted to/from or replaced by) to a simple sequence
diagram without structuring mechanisms such as
interaction uses and combined fragments. It is also
assumed that message overtaking (i.e., the order of the
receptions are different from the order of sending of a
given set of messages) will not take place or is irrelevant.
The following nodes and edges are drawn in a UML
communication diagrams: frame, lifeline, message. These
major elements of the communication diagram are
shown on the picture below.
https://www.uml-diagrams.org/communication-
diagrams.html
18. UML – UNIFIED MODELING
LANGUAGE
UML Class diagram is structure
diagram which shows structure of the
designed system at the level of
classes and interfaces, shows their
features, constraints and relationships
- associations, generalizations,
dependencies, etc.
https://www.uml-diagrams.org/class-
diagrams-overview.html
https://www.youtube.com/watch?v=
UI6lqHOVHic
20. UML – UNIFIED MODELING
LANGUAGE
• UML Class diagram attributes and parameters visibility and annotation
Operation annotation
[Visibility] operation name (parameter 1: type, parameter 2: type) : operation result type
+ assignAgent (a : Agent) : Boolean
21. UML – UNIFIED MODELING
LANGUAGE
UML abstract class
• An abstract class is a class that has no direct instances
but whose descendant classes have direct instances
22. UML – UNIFIED MODELING
LANGUAGE
• UML class diagram - generalization
• A generalization is a directed relationship between a
more general classifier (superclass) and a more specific
classifier (subclass).
• Each instance of the specific classifier is also an indirect
instance of the general classifier, so that we can say
"Patient is a Person", "Savings account is an Account", etc.
Because of this, generalization relationship is also
informally called "Is A" relationship.
• In OOAD inheritance is usually defined as a mechanism
by which more specific classes (called subclasses or
derived classes) incorporate structure and behavior of
more general classes (called superclasses or base
classes).
23. UML – UNIFIED MODELING
LANGUAGE
• UML class diagram - association and
multiplicity
• An association is usually drawn as a
solid line connecting two classes.
Name of the association can be
shown somewhere near the middle
of the association line but not too
close to any of the ends of the line.
• Multiplicity in UML allows to specify
cardinality - i.e. number of elements -
of some collection of elements.
24. UML – UNIFIED MODELING
LANGUAGE
• UML class diagram – aggregation
• It is a "weak" form of aggregation
when part instance is independent of
the composite. Because of this,
aggregation relationship is also
informally called “part of/has a"
relationship.
• Part can belong to a number of
composites.
• When a composite is demolished, a
part can still exist.
25. UML – UNIFIED MODELING
LANGUAGE
• UML class diagram – composition
• It is a “strong" form of aggregation
when part instance is independent of
the composite. Because of this,
aggregation relationship is also
informally called “part of/has a"
relationship.
• Part can not belong to a number of
composites.
• When a composite is demolished, a
part is also demolished (can no longer
exist).
26. UML – UNIFIED MODELING
LANGUAGE
• An interface is a class that does not have
realization.
• Interface does not have attributes, only public
operations that are realized by classes.
• Since interfaces are declarations, they are not
instantiable. Instead, an interface specification is
implemented by an instance of an instantiable class,
which means that the instantiable class presents a
public facade that conforms to the interface
specification.
• Any given class may implement more than one
interface. Interface may be implemented by a
number of different class.
An interface may be shown using a rectangle
symbol with the keyword «interface» preceding the
name.
Interface participating in the interface realization
dependency is shown as a circle or ball, labeled with
the name of the interface and attached by a solid
line to the classifier that realizes this interface.
27. ENTITY-RELATIONSHIP DIAGRAM I
The primary key consists of one or more columns whose
data contained within are used to uniquely identify each
row in the table. You can think of them as an address. If
the rows in a table were mailboxes, then the primary key
would be the listing of street addresses.
A foreign key is a set of one or more columns in a table
that refers to the primary key in another table. There
aren’t any special code, configurations, or table
definitions you need to place to officially “designate” a
foreign key.
29. UML – UNIFIED MODELING
LANGUAGE
UML State machine – protocol state machine diagram
UML protocol state machine diagrams are used to express
a usage protocol or a lifecycle of a class. It shows which
operations of the classifier may be called in each state of
the classifier, under which specific conditions, and
satisfying some optional postconditions after the classifier
transitions to a target state.
• Diagram shows available states and transition states
from one state to the other.
• Class state diagram can have only one initial state.
• Class state diagram can have multiple final states.
https://www.youtube.com/watch?v=OsmWASXE2IM
30. UML – UNIFIED MODELING
LANGUAGE
UML State machine – behavioral state
machine diagram
State machine diagram is a behavior diagram
which shows discrete behavior of a part of
designed system (or a class) through finite
state transitions.
• Diagram shows available states and
transition states from one state to the other.
• Class state diagram can have only one initial
state.
• Class state diagram can have multiple final
states.
31. UML – UNIFIED MODELING
LANGUAGE
• UML Activity diagram
• Activity diagram is UML behavior diagram
which shows flow of control or object flow
with emphasis on the sequence and
conditions of the flow. The actions
coordinated by activity models can be
initiated because other actions finish
executing, because objects and data become
available, or because some events external to
the flow occur.
• Can be changed by BPMN diagram.
32. UML – UNIFIED MODELING
LANGUAGE
• Component diagram shows components, provided and
required interfaces, ports, and relationships between
them. This type of diagrams is used in Component-
Based Development (CBD) to describe systems with
Service-Oriented Architecture (SOA).
• Component-based development is based on
assumptions that previously constructed components
could be reused and that components could be
replaced by some other "equivalent" or "conformant"
components, if needed. The artifacts that implement
component are intended to be capable of being
deployed and re-deployed independently, for instance
to update an existing system.
• Components in UML could represent
• logical components (e.g., business components,
process components), and
• physical components (e.g., CORBA components, EJB
components, COM+ and .NET components, WSDL
components, etc.),
• along with the artifacts that implement them and the
nodes on which they are deployed and executed. It is
anticipated that profiles based around components will
be developed for specific component technologies and
associated hardware and software environments.
https://www.uml-diagrams.org/component-diagrams.html
https://www.youtube.com/watch?v=ipKJwnPsst8
33. UML – UNIFIED MODELING
LANGUAGE
• Deployment diagram is a structure diagram which
shows architecture of the system as deployment
(distribution) of software artifacts to deployment
targets.
• Artifacts represent concrete elements in the physical
world that are the result of a development process.
Examples of artifacts are executable files, libraries,
archives, database schemas, configuration files, etc.
• Deployment target is usually represented by a node
which is either hardware device or some software
execution environment. Nodes could be connected
through communication paths to create networked
systems of arbitrary complexity.
ttps://www.uml-diagrams.org/deployment-
diagrams-overview.html
https://www.youtube.com/watch?v=IzEzX5HW_CU
34. BPMN – BUSINESS PROCESS
MODEL AND NOTATION
BPMN tools
https://app.diagrams.net/
35. BPMN – BUSINESS PROCESS
MODEL AND NOTATION
BPMN tools
Confluence Gliffy plugin