Title: Software Modeling, UML
1Software Modeling, UML
2Overview
- Motivation/Introduction
- CMMI-a brief overview
- UML-a brief overview
- Hints Tips
- Which UML models are most appropriate to be
applied in which KPAs
3Definitions/1
Quality the totality of features and
characteristics of a product or service that bear
on its ability to satisfy stated or implied
needs (ISO8402).
Software quality the totality of features and
characteristics of a software product or service
that bear on its ability to satisfy stated or
implied needs (ISO/IEC9126 )
Quality means to fulfill requirements
4Software Product Quality
- ISO 8402 Quality Vocabulary
- The totality of characteristics of an entity
that bear on its ability to satisfy stated and
implied needs. - What does needs means?
5NEEDS
- Needs is expectations for the effects of a
product. - A user wants not a product itself but the effects
of the product, which are needs. - It is difficult that real needs be identified
either by a user or a planner.
6Needs and Requirements
- Identified needs must be transformed into
requirements. - However, a product that satisfies requirements
does not always satisfies needs.
7QUALITY IN USE CONCEPTS Quality In Use (QIU)
- QIU is an aspect of a product quality.
- QIU is measured by the effects of the product
when it is used. - JTC1/SC7/WG6 introduced QIU concept in the
ISO/IEC 9126 Software Product Quality series.
8QUALITY IN USE CONCEPTSStates System Model
Effects
Needs
QIU
Current States
Goal States
Realized States
Current System
Proposed System
Developed System
Cause
9QIU Definition and CharacteristicsISO/IEC 9126-1
- The capability of a software product to enable
specified users to achieve specified goals with
effectiveness, productivity, safety, and
satisfaction in specified context of use.
10Requirements/1
- Business oriented requirements
- Functional requirements
- Non functional requirements
11Requirements/2How to measure the fulfillment
12Requirements/3How to establish Business
Strategies
13Requirements/4How to establish Business Models
Product Value proposition
Customer Interface Target Customer
Distribution Channel
Relationship
Infra-structure Value Configuration
Capability
Partnership
Financial Aspects Cost Structure
Revenue (Sharing) Model
14Requirements/5Assessment Tree
F V 0,8218 p 100
F 1 V 1 0,847 p 1 40
F 2 V2 0,805 p 2 60
F 11 V11 0,83 p 11 90
F 12 V12 1 p 12 10
F 21 V21 0,9 p 21 50
F 22 V22 0,75 p 22 10
F 23 V23 0,7 p 23 40
v J
100
F 211 V211 1 p 211 30
F 212 V212 0 p 212 10
F 213 V213 1 p 213 60
v 21
30 x 1 10 x 0 60 x 1
0,9
100
15Requirements/6Non Functional Requirements/Quality
Characteristics
- reliability
- functional performance
- user friendliness
- time behaviour
- consume behaviour
- maintainability
- portability
16Requirements/6Action in SEM phases concerning
quality evaluation
Application of SEM Quality Evaluation Definition
of quality objectives Direction for
technical and quality assurance activities Exami
nation if quality objectives are reached
SEM Phases Initiation Study System
Design Detailed Design Implementation Integration
System Test Acceptance
17Requirements/7SEM Software Quality Evaluation
- Definition
- Quality characteristics
- Subcharacteristics
- List of criteria / checklists
- Evaluation procedures
18Requirements/8Subcharacteristics / 1
back up
Quality characteristics in terms of SN 77
350 reliability functional
performance user friendliness time behaviour
Subcharacteristics availability safety completen
ess correctness learnability ease of
handling response time start-up time throughout
rate holding time
19Requirements/9Subcharacteristics / 2
back up
Quality characteristics in terms of SN 77
350 consume behaviour maintainability port
ability
Subcharacteristics CPU-requirement CPU-load prima
ry storage requirement peripheral storage
requirement peripheral device requirement output
volume - technical portability adaptability
20Requirements/10Evaluation Procedures
back up
- measuring
- point scaling system
- evaluation tree(functional performance)
- project specific procedures
21Requirements/10Structuring of quality costs
Quality related costs
Test costs
Error prevention cost
Error costs Internal/external
Cost to be conform to requirements
Costs to be non conform to requirements
Process related costs
22Requirements/11Why SW projects are stranding?
- 95 stranded because
- Customer and Developer have different views about
requirements - Implicit requirements
- Different knowledge of domain
- No technical knowledge of customers
- Concerning the non functional requirements!!!
- Change requests
- Market driven
- Business oriented requirements
- No clear understanding of impact of requirements
23Requirements/12Whats the promising of OO
- Improvement of requirement engineering by
- Closing/narrowing the semantic gap
- In structured analysis/design mapping between the
phases were the main obstacles - Improvement of maintainability
- Enabling of requirement tracing through all
phases. - Improvement of Quality by reusing components
- Improvement of the portability
3 - 30
24Requirements/13And what happened
- Improvement of requirement engineering was
substantially and accomplished mainly by
applying - OMT and then UML
- Maintainability and Requirement Tracing were
improved as consequence of applying UML - With regard to reusing of components and
portability no clear trends are recognized.
25Overview
- Motivation/Introduction
- CMMI-a brief overview
- UML-a brief overview
- Hints Tips
- Which UML models are most appropriate to be
applied in which KPAs
26CMMI - Capability Maturity Model Integration
- model for evaluating software/hardware/systems
engineering organizations - developed by the Software Engineering Institute
(SEI) - reference model also for derived methods such as
Bootstrap and Siemens Process Assessments (CT
SE3)
27CMMI Maturity Levels (staged)
Each transition takes1-3 years !
28Characteristics of an immature process
- The process is ad hoc and generally based on
improvisation (by developers and managers). - Procedures, if existing at all, are not being
adhered to. - Strong dependency on individuals (heroes).
- Product quality and performance very difficult to
predict. - Product quality and functionality downgrading to
meet deadlines, but deadlines are still exceeded. - The use of new technologies involves major risks.
- During a crisis, guidelines/rules are often
abandoned as unnecessarily complicating.
29Characteristics of a mature process
- Standardized process, defined and documented
- has been understood and accepted
- is being applied
- is alive
- Visible support through management
- Clear definition and understanding of roles and
responsibilities - Well-established control process compliance is
being monitored and enforced - Consistent with the staffs current way of
working - Measurable and being measured
- Supported by means of suitable technologies and
tools
30CMMI Process Areas
Organizational Innovation and Deployment Causal
Analysis Resolution
Optimizing (5)
Quantitative Process Management Software Quality
Management
Quantitatively Managed (4)
Requirement Development Technical
Solution Product Integration Verification Organiza
tional Process Focus Organizational Process
Definition Organizational Training Integrated
Project Management Risk Management Decision
Analysis and Resolution
Defined (3)
Requirements Management Project Planning Project
Monitoring and Control Supplier Agreement
Management Measurement and Analysis Process and
Product Quality Assurance Configuration Management
Managed (2)
31Process Areas and Specific Goals of ML 2 (1)
32Process Areas and Specific Goals of ML 2 (3)
33Process Areas and Specific Goals of ML 3 (1)
34Process Areas and Specific Goals of ML 3 (2)
35Process Areas and Specific Goals of ML 3 (3)
36Assessments/ Certification history in general
back up
- after 2 nd world war QA was set up by Deming
Juran in Japan - in USA, Europe still classical
quality validation - by HW development QA did
not get acceptance till present times -
so-called QA in software in the beginning was
only restricted to tests and error count - in
USA above all military (DoD) starts with QA,
which is also checked with audits (AQAP) -
Siemens starts in 1980 with QA system (CSA) to
get through audits
quality validation quality
assurance sample audits on the current
checks during finished product the
development process
37Assessments/ Certification history in general/2
back up
- begin of 1980 quality label for SW (pure
quality validation) - discussion about
certification since the middle eighties - in
Germany "Made in Germany" syndrom delays
certification - cooperation since 1990 with
standards institute on ISO 9000 ff - since 1992
pressure upon Siemens regarding certification
38Assessments/ Certification history in general
/3connection SW-engineering - QA
- SW engineering has 3 dimensions organization
- method - technology - organization
means - application of a method (e.g. SEM,
SEPP,....) - verification of this application -
organization of QA - record of primary data
(metrics) - method means e.g. - functional
development method - object oriented development
method - technology means - with which tools
the method is set up you will find this synonym
also on informatic institutes or
universities - in the beginning SW-engineers
were only interested in technology
39Overview
- Motivation/Introduction
- CMMI-a brief overview
- UML-a brief overview
- Hints Tips
- Which UML models are most appropriate to be
applied in which KPAs
40Why we model
- A model is a simplification of reality
- We build models so that we can better understand
the system we are developing - through modeling, we achieve four aims
- models help us to visualise a system as it is or
as we want it to be - models permit us to specify the structure or
behavior of a system - models give us a template that guide us in
constructing a system - models document the decisions we have made
- We build models of complex system because we
cannot comprehend such a system in its entirety
41Principle of modeling
- The choice of what models to create has a
profound influence on how a problems is attacked
and how a solution is shaped - Every model may be expressed at different levels
of precision - The best models are connected to reality
- No single model is sufficient. Every nontrivial
system is best approached through a small set of
nearly independent models
42Overview of the UML
- The UML is a language for
- visualising
- specifying
- constructing
- documenting
43When can the UML be used?
- The UML is intended primarily for
software-intensive system - it has been used effectively for such domains as
- enterprise information systems
- banking and financial services
- transportation
- telecommunication
- defense /aerospace
- retail
- Medical electronics
- scientific
- distributed Web-based services
44Building blocks of the UML
- The vocabulary of the UML encompasses three kinds
of building blocks - Things are the abstractions that are first class
citizens in a model - relationships tie these things together
- diagrams group interesting collections of things
45Things in the UML
- There are four kinds of things in the UML
- structural things
- behavioral things
- grouping things
- annotational things
- these things are the basic object-oriented
building blocks of the UML - you use them to write well-formed models
46Structural things 1
- Are the nouns of UML models
- these are the mostly static parts of a model,
representing elements that are either conceptual
or physical - in all, there are seven kinds of structural things
2001-10-01
47Structural things 2classes/1
- A class is a description of a set of objects that
share the same - attributes
- operations
- relationships
- semantics
- a class implements one or more interfaces
48Structural things/3classes/2
- Graphically, a class is rendered as a rectangle,
usually including its - name
- attributes
- operations
Window
origin size
open() close() move() display()
49Structural things/4interfaces/1
- An interface is a collection of operations that
specify a service of a - class
- component
- An interface therefore describes the externally
visible behavior of that element - an interface defines a set of operations
specifications (that is, their signatures) but
never a set of operations implementations
50Structural things/5interfaces/2
- Graphically, an interface is rendered as a circle
together with its name - An interface rarely stands alone
- Rather, it is typically attached to the class or
component that realises the interface
51Structural things/6collaboration/1
- A collaboration defines an interaction
- is a society of roles and other elements
- that work together to provide some cooperative
behavior thats bigger than the sum of all the
elements - collaborations have structural and behavioral
dimensions - A given class might participate in several
collaborations - these collaborations therefore represent the
implementation of patterns that make up a system
52Structural things/7collaboration/2
- Graphically, a collaboration is rendered as an
ellipse with dashed lines, usually including only
its name
Chain ofresponsibility
53Structural things/8use cases/1
- A use case is a description of a set of sequence
of actions - that a system performs that yields an observable
result of value to a particular actor - A use case is used to structure behavioral things
in a model - a use case is realised by a collaboration
54Structural things/9use cases/2
- Graphically, a use case is rendered as an ellipse
with solid lines, usually including only its name
place order
55Structural things/10
- The remaining three things
- active classes
- components
- nodes
- Are all class-like, meaning they also describe a
set of objects that share the same attributes,
operations, relationships and semantics - However, these three are different enough and are
necessary for modeling certain aspects of an
object-oriented system, and so they warrant
special treatment
56Structural things/11active class/1
- An active class is a class whose objects own one
or more processes or threads and therefore can
initiate control activity - an active class is just like a class except that
its objects represent elements whose behavior is
concurrent with other elements
57Structural things/12active class/2
- Graphically, an active class is rendered just
like a class, but with heavy lines, usually
including its name, attributes, and operations
EventManager suspend() flush()
58Structural things/13
- The remaining two elements-component, and nodes-
are also different - they represent physical things, whereas the
previous five things represent conceptual or
logical things
59Structural things/14component/1
- A component is a physical and replaceable part of
a system - that conforms to
- and provides the realisation of a set of
interfaces - in a system, youll encounter different kinds of
deployment components, such as - COM
- Java Bean
- as well as components that are artifacts of the
developing process, such as source code files - a component typically represents the physical
packaging of otherwise logical elements - Classes, interfaces, and collaborations
60Structural things /15component/2
- Graphically, a component is rendered as a
rectangle with tabs, usually including only its
name
orderform.java
61Structural things/16node/1
- A node is a physical element that exists at run
time and represents a computational resource - generally having at least some memory and, often,
processing capability - A set of components may reside on a node and may
also migrate from node to node
62Structural things/17node/2
- Graphically, a node is rendered as a cube,
usually including only its name
Server
63Behavioral things 1
- Behavioral things are dynamic parts of UML models
- these are the verbs of a model, representing
behavior over time and space - in all, there are two primary kinds of behavioral
things
64Behavioral things/2interaction/1
- An interaction is a behavior that comprises a set
of messages - exchanged among a set of objects within a
particular context - to accomplish a specific purpose
- the behavior of a society of objects or of an
individual operation may be specified with an
interaction - an interaction involves a number of other
elements,including - Messages
- Action sequences
- the behavior invoked by a message
- Links
- the connection between objects
65Behavioral things/3interaction/1
- Graphically, a message is rendered as a directed
line, almost always including the name of its
operation
66Behavioral things/4state machine/1
- A state machine is a behavior that specifies
- the sequence of states an object or an
interaction goes through during its lifetime in
response to events, together with its responses
to those events - the behavior of an individual class or a
collaboration of classes may be specified with a
state machine - a state machine involves a number of other
elements, including - States
- Transitions
- the flow from state to state
- Activities
- the response to a transition
67Behavioral things/5state machine/2
- Graphically, a state is rendered as a rounded
rectangle, usually including its name and its
substates , if any
Waiting
68Grouping things/1
- Grouping things are the organisational parts of
UML models - these are the boxes into which a model can be
decomposed - in all, there is one primary kind of grouping
thing, namely, packages
69Grouping things/2package/1
- A package is a general-purpose mechanism for
organising elements into groups - structural things, behavioral things, and even
other grouping things may be placed in a package - unlike components (which exist at run time), a
package is purely conceptual - Meaning that it exists only at development time
70Grouping things/3package/2
- Graphically, a package is rendered as a tabbed
folder - Usually including only its name and, sometimes,
its contents
Business rules
71Annotational things/1
- Annotational things are the explanatory parts of
UML models - these are the comments you may apply to
- describe
- illuminate
- remark
- There is one primary kind of annotational thing,
called a note
72Annotational things/2note/1
- A note is simply a symbol for rendering
constraints and comments attached to an element
or a collection of elements
73Annotational Things/3note/2
- Graphically, a note is rendered as a rectangle
with a dog-eared corner, together with a textual
or graphical comment
74Relationships in the UML
- There are four kinds of relationships in the UML
- dependency
- association
- generalisation
- realisation
- these relationships are the basic relational
building blocks of the UML - you use them to write well-formed models
75Dependency/1
- A dependency is a semantic relationship between
two things - in which a change to one (the independent thing)
may affect the semantics of the other thing (the
dependent thing)
76Dependency/2
- Graphically, a dependency is rendered as a dashed
line, possibly directed, and occasionally
including a label
77Association/1
- An association is a structural relationship that
describes a set of links - A link being a connection among objects
- Aggregation is a special kind of association
- representing a structural relationship between a
whole and its parts
78Association/2
- Graphically, an association is rendered as a
solid line, possible directed, occasionally
including a label, and often containing other
adornments - Such as multiplicity and role names
79generalisation/1
- A generalisation is a specialisation/
generalisation relationship in which - objects of the specialised element (the child)
are substitutable for objects of the generalised
element (the parent) - in this way, the child shares the structure and
the behavior of the parent
80Generalisation/2
- Graphically, a generalisation relationship is
rendered as a solid line with a hollow arrowhead
pointing to the parent
81Realisation/1
- A realisation is a semantic relationship between
classifiers - wherein one classifier specifies a contract that
another classifier guarantees to carry out - youll encounter realisation relationship in two
places - between interfaces and the classes or components
that realise them - between use cases and the collaborations that
realise them
82Realisation/2
- Graphically, a realisation relationship is
rendered as a cross between a generalisation and
a dependency relationship
83Diagrams in the UML/1
- A diagram is a graphical presentation of a set of
elements - most often rendered as a connected graph of
vertices (things) and arcs (relationship) - you draw diagrams to visualise a system from
different perspectives - so a diagram is a projection into a system
84Diagrams in the UML/2
- For all but the most trivial systems
- a diagram represents an elided view of the
elements that make up a system - the same element may appear
- in all diagrams
- only a few diagrams (the most common case)
- in no diagram at all (a very rare case)
- in theory, a diagram may contain any combination
of things and relationships - in practice, however, a small number of common
combinations arise, - which are consistent with the five most useful
views that comprise the architecture of a
software-intensive system
85Diagrams in the UML/3
- The UML includes nine such diagrams
- class diagram
- object diagram
- use case diagram
- sequence diagram
- collaboration diagram
- statechart diagram
- activity diagram
- component diagram
- deployment diagram
86Diagrams in the UML/4class diagram
- A class diagram shows a set of
- classes
- interfaces
- collaborations
- these diagrams are the most common diagrams found
in modeling object-oriented systems - class diagrams address the static design view of
a system - class diagrams that include active classes
address the static process view of a system
87Diagrams in the UML/5object diagram
- An object diagram shows a set of objects and
their relationships - object diagrams represent static snapshots of
instances of the things found in class diagrams - these diagrams address the static design view or
static process view of a system as do class
diagrams, but from the perspective of real or
prototypical cases
88Diagrams in the UML/6use case diagram
- A use case diagram shows a set of use cases and
actors (a special kind of class) and their
relationships - use case diagrams address the static use case
view of a system - these diagrams are especially important in
organising and modeling the behavior of a system
89Diagrams in the UML/7interaction diagram,
sequence diagram
- An interaction diagram shows an interaction
- consisting of a set of objects and their
relationships, including the message that may be
dispatched among them - interaction diagrams address the dynamic view of
a system
90Diagrams in the UML/8 interaction diagram,
sequence diagram
- A sequence diagram is an interaction diagram that
emphasises the time-ordering of messages
91Diagrams in the UML/9 interaction diagram,
collaboration diagram
- A collaboration diagram is an interaction diagram
that emphasises the structural organisation of
the objects - that send and receive messages
- sequence diagrams and collaboration diagrams are
isomorphic - Meaning that you can take one and transform it
into the other
92Diagrams in the UML/10statechart diagrams
- A statechart diagram shows a state machine
- consisting of states, transitions, events, and
activities - statechart diagrams address the dynamic view of a
system - they are especially important in modeling the
behavior of an object, which is especially useful
in modeling reactive systems
93Diagrams in the UML/11activity diagram
- An activity diagram is a special kind of a
statechart diagram - that shows the flow from activities within a
system - activity diagrams address the dynamic view of a
system - they are especially important in modeling the
function of a system and emphasize the flow of
control among objects.
94Diagrams in the UML/12component diagram
- A component diagram shows the organisation and
dependencies among a set of components - component diagrams address the static
implementation view of a system - they are related to class diagrams in that a
component typically maps to one or more classes,
interfaces, or collaborations
95Diagrams in the UML/13deployment diagram
- A deployment diagram shows the configuration of
run-time processing nodes and the components that
live on them - deployment diagrams address the static deployment
view of an architecture - they are related to component diagrams in that a
node typically encloses one or more components
96Rules of the UML/1
- The UML has semantic rules for
- Names What you can call things,
relationships, and diagrams - Scope The context that gives specific meaning
to a name - Visibility How those names can be seen and used
by others - Integrity How things properly and consistently
relate to one another - Execution What it means to run or simulate a
dynamic model
97Rules of the UML/2
- Models can also be build that are
- Elided Certain elements are hidden to
simplify the view - Incomplete Certain elements may be missing
- Inconsistent The integrity of the model is not
guaranteed
98Common mechanisms in UML/1
- Four common mechanisms that apply consistently
throughout the language - specifications
- adornments
- common divisions
- extensibility mechanisms
99Common mechanisms in the UML/2specifications/1
- The UML is more than just a graphical language
- Behind every part of its graphical notation
- There is a specification that provides
- A textual statement of the syntax and semantics
of that building block - Things, relationships, and diagrams
100Common mechanisms in the UML/3specifications/2
- For example, behind a class icon is a
specification - That provides the full set of
- Attributes
- Operations-including their full signatures
- And behaviors that the class embodies
- Visually, that class icon might only show a small
part of this specification - Furthermore, there might be another view of that
class that represents a completely different set
of parts - Yet is still consistent with the classs
underlying specification.
101Common mechanisms in the UML/4specifications/3
- You use the UMLs graphical notation to visualize
a system - You use the UMLs specification to state the
systems details - Given this split, its possible to build up a
model incrementally - By drawing diagrams and then adding semantics to
the models specification - Or directly by creating a specification
- Perhaps by reverse engineering an existing system
- And then creating diagrams that are projections
into those specifications.
102Common mechanisms in the UML/5specifications/4
- The UMLs specification provide a semantic
backplane - that contains all the parts of all the models of
a system - each part related to one another in a consistent
fashion - the UMLs diagrams are thus simply visual
projections into that backplane - each diagram revealing a specific interesting
aspect of the system
103Common mechanisms in the UML/6adornments
- shows a class, adorned to indicate that is an
abstract class - with two public
- one protected
- one private
- every element in the UMLS notation starts with a
basic symbol - to which can be added a variety of adornments
specific to that symbol
Transaction execute() rollback()
priority() - timestamp()
104Common mechanisms in the UML/7common division/1
- First, there is the division of class and object
- a class is an abstraction
- an object is one concrete manifestation of that
abstraction - every building block in the UML has the same kind
of class/object dichotomy - you can have use cases and use case instances
- components and component instances
- nodes and node instances
- graphically, the UML distinguishes an object by
using the same symbol as its class and then
simply underlying the objects name
105Common mechanisms in the UML/8common division/2
- Second, there is the separation of interface and
implementation - an interface declares a contract
- an implementation represents one concrete
realisation of that contract - almost every building block in the UML has this
same kind of Interface/implementation dichotomy - you can have use cases and the collaborations
that realise them - as well as operations and the methods that
implement them
106Common mechanisms in the UML/9extensibility
mechanisms
- The UMLS extensibility mechanisms include
- stereotypes
- tagged values
- constraints
107Common mechanisms in the UML/10extensibility/2 s
tereotypes
- A stereotype extends the vocabulary of the UML
- allowing you to create new kinds of building
blocks - that are derived from existing ones
- but that are specific to your problem
108Common mechanisms in the UML/11extensibility
mechanisms/3 tagged values
- A tagged value extends the properties of a UML
building block - allowing you to create new information in that
elements specification
109Common mechanisms in the UML/12extensibility
mechanisms/4 constraint
- A constraint extends the semantics of a UML
building block - allowing you to add new rules or modifying
existing ones
110Common mechanisms in the UML/13extensibility
mechanisms/5 example/1
- Stereotype
- You can make exceptions first class citizens in
your models - Meaning that they are treated like basic building
blocks - By marking them with an appropriate stereotype ,
as for the class Overflow - Tagged value
- Extends the properties of a UML building block
- Allowing you to create new information in that
elements specification. - For example, the class EventQueue is extended by
making its version and author explicitly. - Constraints
- Extends the semantics of a UML building block
- Allowing you to add new rules or modify existing
ones - For example, you want to customize the EventQueue
class so that all additions are done in order.
111Common mechanisms in the UML/14extensibility
mechanisms/5 example/2
112Architecture/1
- A systems architecture is perhaps the most
important artifact that can be used to - manage different viewpoints
- control the iterative and incremental development
of a system throughout its life cycle
113Architecture/2
- Architecture is a set of significant decisions
about - the organisation of a software system
- the selection of the structural elements and
their interfaces by which the system is composed - their behavior, as specified in the
collaborations among those elements
114Architecture/3
- the composition of these structural and
behavioral elements into progressively larger
subsystems - the architectural style that guides this
organisation - the static and dynamic elements and their
interfaces, their collaborations, and their
composition
115Architecture/4
- the architecture of a software-intensive system
can best be described by five interlocking views - each view is a projection into the organisation
and structure of the system - focused on a particular aspect of that system
116Architecture/5
vocabulary functionality behavior
system assembly configuration management
performance scalability throughput
system topology distribution delivery installation
117Architecture/6use case view
- The use case view of a system encompasses the
use case - that describe the behavior of the system as seen
by its end users, analysts, and testers - this view doesnt really specify the organisation
of a software system - rather, it exists to specify the forces that
shape the systems architecture - with the UML
- the static aspect of this view are captured in
the use case diagram - the dynamic aspects of this view are captured in
- interaction diagrams
- statechart diagrams
- activity diagrams
118Architecture/7design view
- The design view of a system encompasses the
class, interfaces, and collaborations - that form the vocabulary of the problem and its
solution - this view primarily supports the functional
requirements of the system - meaning the services that the system should
provide to its end users - with the UML
- the static aspect of this view are captured in
- class diagrams
- and object diagrams
- the dynamic aspect of this view are captured in
- interaction diagrams,
- statechart diagrams,
- and activity diagrams
119Architecture/8process view
- The process view of a system encompasses the
threads and processes that form the systems
concurrency and synchronisation mechanisms - this view primarily addresses the performance,
scalability, and throughput of the system - with the UML
- the static and dynamic aspects of this view are
captured in the same kinds of diagrams as for the
design view, but with a focus on the active
classes that represent these threads and
processes
120Architecture/9implementation view
- The implementation view of a system encompasses
the components and files that are used to
assemble and release the physical system - this view primarily addresses the configuration
management of the systems releases - made up of somewhat independent components and
files that can be assembled in various ways to
produce a running system - with the UML
- the static aspects of this view are captured in
- component diagrams
- the dynamic aspects of this view are captured in
- interaction diagrams,
- statechart diagrams,
- and activity diagrams
121Architecture/10deployment view
- The deployment view of a system encompasses the
nodes that form the systems hardware topology on
which the system executes - this view primarily addresses the distribution,
delivery, and installation of the parts that make
up the physical system - with the UML
- the static aspects of this view are captured in
- deployment diagrams
- the dynamic aspects of this view are captured in
- interaction diagrams,
- statechart diagrams,
- and activity diagrams
122Architecture/11
- Different stakeholders
- end users
- Analysts
- developers
- system integrators
- Testers
- technical writers
- project managers
- bring different agendas to a project, and each
looks at that system - in different ways
- at different times over the projects life.
123Architecture/12
- Each of these five views can stand alone so that
different stakeholders can focus on the issues of
the systems architecture that most concern them - these five views also interact with one another
- nodes in the deployment view hold components in
the implementation view - that, in turn, represent the physical realisation
of classes, interfaces, collaborations, and
active classes from the design and process view - the UML permits you to express every one of this
five views and their interactions
124Software development life cycle/1
- The UML is largely process-independent
- meaning that it is not tied to any particular
software development life cycle - however, to get the most benefit from the UML,
you should consider a process that is - use case driven
- architecture-centric
- iterative and incremental
125Software development life cycle/2use case driven
- Use case driven means that use cases are used as
a primary artifact - for establishing the desired behavior of the
system - for verifying and validating the systems
architecture - for testing, and for communicating among the
stakeholders of the project
126Software development life cycle/3architecture-cen
tric
- Architecture-centric means that a systems
architecture is used as a primary artifact for - conceptualising
- constructing
- managing
- and evolving the system under development
127Software development life cycle/4iterative and
incremental
- An iterative process is one that involves
managing a stream of executable releases - an incremental process is one that involves the
continuous integration of the systems
architecture - to produce these releases, with each new release
embodying incremental improvements over the other - together, an iterative and incremental process is
risk-driven - meaning that each new release is focused on
attacking and reducing the most significant risks
to the success of the project
128Software development life cycle/5phases/1
- This use case driven, architecture-centric, and
iterative/incremental process can be broken into
phases - a phase is the span of time between two major
milestones of the process - when a well-defined set of objectives are met
- artifacts are completed
- decisions are made whether to move into the next
phase - there are four phases in the software development
life cycle - inception
- elaboration
- construction
- transition
129Software development life cycle/6phases/2
- workflows are plotted against these phases,
showing their varying degrees of focus over time
130Software development life cycle/7inception phase
- Inception is the phase of the process
- when the seed idea for the development is brought
up to the point of being- at least- sufficiently
well founded to warrant entering into the
elaboration phase
131Software development life cycle/8elaboration
phase
- Elaboration phase is the second phase of the
process - when the product vision and its architecture are
defined - in this phase, the systems requirements are
articulated, prioritised and baselined - a systems requirements may range from general
vision statements to precise evaluation criteria,
each specifying particular functional or
nonfunctional behavior and each providing a basis
for testing
132Software development life cycle/9construction
phase
- Construction is the third phase of the process
- when the software is brought from an executable
architectural baseline to being ready to be
transitioned to the user community - here also, the systems requirements and
especially its evaluation criteria are constantly
reexamined against the business needs of the
project, and resources are allocated as
appropriate to actively attack risks to the
project
133Software development life cycle/10transition
phase
- Transition phase is the fourth phase of the
process - when the software is turned into the hands of the
user community - rarely does the software development process end
here - for even during this phase, the system is
continuously improved, bugs are eradicated, and
features that didnt make an earlier release are
added
134Software development life cycle/11iteration
- One element that distinguishes this process and
that cuts across all four phases is an iteration - an iteration is a distinct set of activities,
with a baselined plan and evaluation criteria
that result in a release, either internal or
external - this means that the software development life
cycle can be characterised as involving a
continuous stream of executable release of the
systems architecture - it is this emphasis on architecture as an
important artifact that drives the UML to focus
on modeling the different views of a systems
architecture
135Overview
- Motivation/Introduction
- CMMI-a brief overview
- UML-a brief overview
- Hints Tips
- Which UML models are most appropriate to be
applied in which KPAs
136Which UML Model will support us in which Key
Process Area of CMMI
UML-Models REQM CM RD TS PI VER VAL
Use cases
deployment
State chart
Interfaces
Process and threads
Events and signals
components
interactions
collaborations
137REQM (Requirement Management)
- Specific goal 1 Manage Requirements
- Obtain an understanding of requirements
- Obtain commitment to requirements
- Manage requirement changes
- Maintain bidirectional traceability of
requirements - Identify inconsistencies between project work and
requirements
138REQM /2
- Use cases, state machine, activity diagram,
statechart diagram, interactive diagram - try to establish use cases for each requirement
- each use case should be analyzed by interaction
diagram which should show the messaging between
the objects - Use cases give you a first impression about
classes/objects - Try to find out which objects could be active
objects in that way that they react to events and
which are not active objects - For each object try to find out in which states
they are and when transitions take place - Try to find out what activities take place in
objects - Try to get commitments for all these questions
from project participants.
139CM (Configuration Management)
- Specific goal 1 establish baseline
- Identify configuration items
- Establish a CM system
- Create a release baseline
- Specific goal 2 track and control changes
- Track change requests
- Control configuration items
- Specific goal 3 Establish integrity
- Establish configuration management records
- Perform configuration audits
- .
140RD (Requirements Development)
- Specific goal 1 develop customer needs
- Elicit needs
- Develop the customer requirement
- Specific goal 2develop product requirements
- Establish product and product-component
requirements - Allocate product-component requirements
- Identify interface requirements
- Specific goal 3 analyze and validate
requirements - establish operational concepts and scenarios
- Establish a definition of required functionality
- Catalogue requirements
- Analyze requirements to achieve balance
- Validate requirements with comprehensive methods.
141RD/2 (Transform stakeholder needs, expectation,
constrains and interfaces with customer required
/Establish and maintain product and product
component requirements, which are basics on the
customers requirements/ Allocate the requirements
for each product component)
- It could be very interesting if all stakeholders
see the same use cases - in that case it is not necessary to undertake
further modeling as state machines, interactive
diagrams - Start with the established use case diagrams of
the customer requirements - Derive a collaboration diagram
- Establish a component diagram
- Establish a deployment diagram
- Thanks to reverse engineering methodologies we
have the chance from component diagrams
evaluating classes, interfaces, collaborations - reversing of collaborations brings us use cases
142RD/3 (Identify interface requirements )
- Use cases are the door between the system and the
outer world - Collaborations have realization relationships to
use cases - Each collaboration contains classes, interfaces,
active classes - Each class has attributes and in that way an
interface establish and maintain operational
concepts and association scenarios - Basics are use case diagrams
- Furthermore we need component/deployment diagrams
143RD/4 (Establish a definition of required
functionality)
- Basics are use cases
- Next step collaboration diagrams interaction
diagrams statechart diagrams activity
diagrams - Analyze requirements to ensure that they are
necessary and sufficient - Use case diagrams
- Analyze requirements to balance stakeholder needs
and constraints - Use case diagram
- Validate requirements to ensure the resulting
product will perform as indented in the users
environment using multiple techniques as
appropriate
144TS (Technical Solutions)
- Specific goal 1 select product-component
solutions - Develop detailed alternative solutions and
selection criteria - Evolve operational concepts and scenarios
- Select product-component solutions
- Specific goal 2develop the design
- Design the product or product component
- Establish a technical data package
- Design interfaces using criteria
- Perform make, buy, or reuse analyses
- Specific goal 3 implement the product design
- Implement the design
- Develop product support documentation.
145TS/2 ( develop detailed alternative solution and
selection criteria/ Evolve the operational
concepts and scenarios/ Select the
product-component solution that best satisfy the
criteria established/ design the product or
product component )
- Via use case establish different collaboration
interaction, activity diagrams - Its also useful to establish different component
and deployment diagrams - In case of concurrency different active classes
- From uses cases to component/deployment diagrams
- Component diagrams
- Use cases, collaboration, component diagrams
146PI (Product Integration)
- Specific goal 1 prepare for product integration
- Determine integration sequence
- Establish the product integration environment
- Establish product integration procedures and
criteria - Specific goal 2 ensure interface compatibility
- Review interface descriptions for completeness
- Manage interfaces
- Specific goal 3 assemble product components and
deliver the product - Confirm readiness of product components for
integration - Assemble product components
- Evaluate assembled product components
- Package and deliver the product or product
component.
147Validation and Verification
148VER (Verification)
- Specific goal 1 prepare for verification
- Select work products for verification
- Establish the verification environment
- Establish verification procedures and criteria
- Specific goal 2 perform peer reviews
- Prepare for peer reviews
- Conduct peer reviews
- Analyze peer review data
- Specific goal 3 verify selected work products
- Perform verification
- Analyze verification results and identify
corrective action
149VAL (Validation)
- Specific goal 1 prepare for validation
- Select work products for validation
- Establish the validation environment
- Establish validation procedures and criteria
- Specific goal 2 validate product or product
components - Perform validation
- Analyze validation results
150Thank youfor your attention!