Istituto di Scienza e Tecnologie dell'Informazione “A. Faedo”
Software Engineering Laboratory
The Unified Modeling Language
An Introduction
Dott.ssa Eda Marchetti
SEL-LAB ISTI
Calendario
25/11/2009 - Introduzione al Corso, UML e Processo di Sviluppo
(Eda Marchetti)
26/11/2009 - Use Case Diagram (Eda Marchetti)
27/11/2009 - Sequence Diagram (Antonino Sabetta
30/11/2009 - Activity Diagram (Antonino Sabetta)
3/12/2009 - Class Diagram - 1a Parte (Guglielmo De Angelis)
4/12/2009 - Class Diagram - 2a Parte (Guglielmo De Angelis)
10/12/2009 – Esercitazione
11/12/2009 - Esercitazione
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
The Unified Modeling Language
“UML is a modeling language to specify,
visualize, manage and document all the
phases and aspects of a software development
process.”
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
Un po’ di storia
»
Primi linguaggi di modellazione:
»
»
»
comparsi a metà degli anni 70 e la fine degli anni 80
vari esperimenti per la progettazione Object-Oriented.
Tra il 1989 e il 1994:
»
»
»
da 10 a più di 50
Ognuno caratteristiche specifiche
I metodi più diffusi:
»
»
»
Booch’93 di Booch,
OMT-2 (Object Modelling Technique) di Rumbaugh
OOSE (Object-Oriented Software Engineering) di Jacobson.
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
UML 1.1
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
UML 1.2 e 1.3
»
»
»
La versione 1.2 venne resa disponibile dalla OMG nel
Luglio del 1998. ma non fu mai ufficialmente approvata,
poiché non apportava solo cambiamenti sintattici.
Nel 1999 UML 1.3: era una revisione dell 1.1 in base ai
commenti ricevuti da parte della Revisions Task Force
(RTF)
Principali modifiche:
»
»
»
»
Aggiunti gli stati di sync per la sincronizzazione di attività concorrenti
Ridefinite le relazioni dei casi d’uso: generalizzazione, include ed
estende
Viene aggiunta la specifica di XMI 1.0.
Nei diagrammi di collaborazione e di sequenza, vengono distinte due
forme: la forma descrittore e la forma istanza
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
UML 1.4
UML 1.4 rilasciata nel 2001.
Principali aggiunte:
» Vincoli nei diagrammi di collaborazione
» Definiti anche gli artefatti per specificare i
componenti fisici (file sorgenti, file eseguibili, e
script) che implementano i componenti.
» Aggiunta la visibilità di package (simbolo “ ~ ”)
e la proprietà di ordinamento per gli attributi
(“ordinati” o “non ordinati” ).
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
UML 1.5
UML 1.5 rilasciata nel 2003
Principali aggiunte:
»
»
»
»
aggiunta della semantica delle Azioni:
azione primitiva: non può essere decomposta in altre
azioni (funzioni matematiche, azioni che lavorano su
oggetti in memoria, scambio di messaggi ecc).
Una procedura è gruppo di azioni con un input e un
output.
Definizione del flusso di dati o da flusso di controllo.
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
UML 2.0
»
»
»
agosto 2005 : UML 2.0
aprile 2006: UML 2.1
maggio 2008: UML 2.2
UML 2.0: non una semplice correzione e
evoluzione delle specifiche precedenti, ma
una vera e propria nuova specifica
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
UML 2.0: Principali Novità
»
»
»
»
»
»
»
»
»
»
»
»
Potenziata l’estensione nei casi d’uso
Potenziati i diagrammi di classe
Nuova visualizzazione delle interfacce
Definiti i Gruppi di Generalizzazioni
Aggiunti i Frammenti Combinati nei Diagrammi di Sequenza
Nuovi vincoli temporali nei Diagrammi di Sequenza
Aggiunti i Diagrammi Temporali
Diagrammi di Collaborazione vengono rinominati in Diagrammi di
Comunicazione
Nuova grafica per i Componenti
Le azioni vengono integrate nei diagrammi di attività
Nuova gestione delle Eccezioni
Aggiunte le Regioni di Espansione per raggruppare le azioni
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
Torniamo a UML
“UML is a modeling language to specify,
visualize, manage and document all the
phases and aspects of a software development
process.”
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
Modello???
»
»
»
Cosa è un modello?
Quali/Quanti tipi?
A cosa servono i modelli?
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
Dallo sviluppatore
Vorrei una
macchina per il
caffè
?
Cliente
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
Scelta di un modello
»
la scelta del modello da usare dipende
»
»
»
»
»
dal problema che si vuole risolvere
da cosa è richiesto essere messo in evidenza per
raggiungere una soluzione accettabile
modelli esprimibili a differenti livelli di precisione
connessione col mondo reale
vari piccoli modelli correlati (o quasi...)
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
Vari livelli di dettaglio
I linguaggi di programmazione sono a tutti gli effetti
dei modelli imperativi/dichiarativi con i quali
“programmate” quotidianamente
»
Ma sono utili con il cliente?
»
E la
»
E’ possibile avere un modello unico per tutto?
è utile allo sviluppatore?
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
I molteplici aspetti di un sistema
»
»
Non è realistico che un singolo
modello/diagramma catturi tutte le
informazioni necessarie per la descrizione di un
software
un sistema (software) espone sempre
molteplici aspetti che devono essere trattati
appositamente:
»
»
»
funzionale
extra-funzionale
aspetti organizzativi (tecnologici e non)
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
I modelli in UML
»
I modelli UML come forma di:
»
»
»
»
programmazione
controllo dell'evoluzione del software
trasformazione automatica (a più livelli e con
“iniezione” di informazioni) dai modelli di
business ai modelli implementativi
altre motivazioni
»
»
»
ridefinire/ristrutturare modelli
reverse engineering
generazione di nuove viste
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
Le parole chiavi di UML
“UML is a modeling language to specify, visualize, manage and
document all the phases and aspects of a software development
process.”
specify the system communicating what to do
in terms of requirements to be realized.
»
»
Creating a diagram to trace analysis and design
phases
Using a diagram to discuss about analysis and
design model
visualize the system showing it after its
effective realization.
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
The Unified Modeling Language
“UML is a modeling language to specify, visualize, manage and document all the
phases and aspects of a software development process.”
manage the system driving its construction phases.
»
Round Trip approach: generating code from the
model and bringing back to model the new
modifications.
document the system with expressiveness,
compactness and consistency during all its life cycle (to
replace textual documentation).
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
I modelli UML come forma di progettazione
»
il vero contributo di UML (come ogni altro
linguaggio di modellazione) è nella visione di
migliorare il processo di sviluppo del software
attraverso fasi di raffinamento AUTOMATICHE
»
i diagrammi UML devono essere la base per :
»
»
»
generare skeletons da modelli
generare codice a partire da pattern di esecuzione
risalire a modelli da pattern di codice
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
UML concetti base
» Diagrams
» Views
» Extension
Mechanisms
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
Diagrammi
UML 2 definisce 13 diagrammi (contro i 9 di UML 1.x), divisi in categorie:
diagrammi “strutturali”:
»
»
»
»
»
»
diagramma
diagramma
diagramma
diagramma
diagramma
diagramma
delle classi (class)
degli oggetti (object)
dei componenti (component)
delle strutture composite (composite structure)
di deployment (deployment)
dei package (package)
diagrammi “comportamentali di interazione”:
»
»
»
»
diagramma
diagramma
diagramma
diagramma
di sequenza (sequence)
di comunicazione (communication)
dei tempi (timing)
di sintesi dell’interazione (interaction overview)
diagrammi “comportamentali”:
»
»
»
diagramma dei casi d’uso (use case)
diagramma di stato (statechart)
diagramma delle attività (activity)
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
The Views
»To
model complex systems not describable
from a unique point of view.
»A system is described with a number of
different aspects:
»
Functional:
interactions;
its
static
»
Non functional:
deployment;
»
Organizational aspects: work group organization,
mapping to code modules.
timing
structure
and
dynamic
requirements,
reliability,
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
The Views
»The
system is described by a number of views each
representing a particular aspects of it.
»Each view is described in a number of diagrams
containing information that emphasizes a particular
characteristic of the system.
»(Multiple
viewpoints comes from OO methodologies).
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
4+1 Views
Implementation View
Logical View
Use Case View
Deployment View
Process View
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
Use Case View
Use Case View describes the functionality the system
should deliver, as perceived by external actors
Used by customers, managers, analysts, designers,
developers and testers
»
»
»
Use Case diagram
Activity diagram
Sequence diagram
»The
Use Case View is central and its content drives the
development of the other views;
»Final goal of the system: providing the functionalities
described in this view.
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
Logical View
Logical View describes how the system
functionalities are provided
»Used by analysts, designers, developers.
»It looks inside the system, describing the static
structure and dynamic collaborations:
»
»
»
Interactions diagrams
Class diagrams
Activity e State diagrams
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
Implementation View
Implementation View is a description of the
main modules and their dependencies
 Used by developers
 Component diagram
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
Process View
Process View deals with the division of the system into
processes and processors
Used by developers and system integrators.

It treats a non functional characteristic of the system used for:
 efficient resource usage,
 parallel execution
 handling of asynchronous events from the environment:



Activity e State diagrams
Interaction and Deployment diagrams
Timing diagrams
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
Deployment View
Deployment
View
shows the physical
deployment of the system, such as the
computers and devices (nodes) and how they
connect to each other
Used by developers and testers

Deployment diagram
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
Riassumendo
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
UML e il processo di sviluppo
UML è solo una notazione standard
» Non specifica affatto il processo, cioè il modo
in cui deve essere usata la notazione
» UML è più efficace se viene esplicitamente
combinato con un processo di sviluppo
» Gli inventori di UML raccomandano la sua
combinazione con RUP - Rational Unified
Process
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
Unified Sw Development Process
»
»
»
Jacobson propose all’inizio degli anni 90 un metodo
per progettazione ad oggetti chiamato Objectory
Nel 1996 Objectory venne scelto da Rational come
processo per UML col nome USDP;
In seguito Rational mise il copyright su questo
processo col nome di RUP - Rational Unified
Process
Nel 2001 IBM ha comprato Rational e continua a
supportare RUP™, che oggi a volte viene chiamato
UP. Dunque
Objectory = USDP = RUP™ = UP
»
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
Introduction - RUP
A Web-enabled software engineering process that
improves team productivity and delivers software best
practices to all team members
» makes the process practical by providing an extensive
guidelines, templates, and examples
» Is a customizable framework, which can be adapted
to the different organization exigencies and guides the
user in the use of UML for managing the process
development
» Is supported by tools (tightly integrated with IBM
tools), which automate large parts of the process and
allow development teams go gain the benefits of the
UML and other industry best practices
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
Best Practices
Suggests some guidelines for process
development summarize in six best practices:
Develop Software Iteratively
» Manage Requirements
» Use Component-Based Architectures
» Visually Model Software
» Verify Software Quality
» Control Changes to Software
»
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
General schema
The general schema of an iterative process:
Barry W. Boehm, “A spiral model of Software Development and Enhancement”. IEEE Computer, May 1988 .
Each iteration
results in
executable release
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
Use Component-Based Architectures
»
A Component Base Development (CBD) permits to:
»
»
»
»
Assembly the software from manageable modules
Reuse or customize the existing components
Reuse the commercially available components
Each iteration produces an executable architecture
that can be measured tested, and evaluated against
the system’s requirements.
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
RUP overview
RUP is characterized by:
» A static structure that describes the
process (who is doing what, how and when)
» A dynamic structure that details how the
process rolls out over time
» An Architecture-centric process that defines
and details the architecture
» A Use-Case Driven Process which specifies
how use cases are used throughout the
development cycle
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
The Static Structure
RUP is presented by four primary modeling element:
» Workers: any individual (or a group of individuals)
performing a role is a worker (Who)
» Activities: express the workers behavior. To each worker is
associated a set of activities (How)
» Artifacts: represent the responsibilities of each worker. A
worker creates, modifies or controls different artifacts (What)
» Workflows: a sequence of activities that produces a result of
observable value (When)
Additional process elements: are added to activities or
artifacts to make the process easier to understand
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
Roles distribution
Resources
Role
Activities
Paul
Mary
Designer
Designer
Design reviewer
Test designer
Design reviewer
Test designer
System design
Use case design
Review the design
Define test approach
Review the design
Structure the test
implementation
Bob
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
Workers – Example The worker Designer: defines the responsibilities, operations,
attributes, and relationships of one or more classes and
determines how they should be adjusted to the
implementation environment
Activities
Artifacts
Worker
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
Core Workflows – Model Association
»
»
Each core workflow has associated with it one or more models,
which are in turn composed of associated artifacts.
The most important artifacts are the models that each core workflow
yields: use-case model, design model, implementation
model, and test model
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
Workflow – Analysis and Design
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
Summing up - process framework
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
RUP overview
RUP is characterized by:
» A static structure describing the process (who
is doing what, how and when)
» A dynamic structure describing how the
process rolls out over time
» An Architecture-centric process that defines
and details the architecture
» A Use-Case Driven Process which how use
cases are used throughout the development
cycle
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
Dynamic Structure
RUP is an iterative process organized in four different
phases:
» Inception: Specifies the end-product vision and defines
the scope of the project
» Elaboration: Plans the necessary activities and required
resources
» Construction: Builds the product, evolves the
architecture, the plans until the product is ready for
delivery
» Transition: Transitions the product to its users, which
includes manufacturing, delivering, training…
Every phase ends with a milestone, i.e. a point in time where goals
have to be reached and critical decisions must to be made
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
RUP Phases
»
»
The four phases constitute a development Cycle and
produce a software generation
The software development starts with an initial development
cycle and evolves in new software generation with evolution
cycle
»
The evolution cycle can be triggered by user-suggest
enhancements, changes in the user’s contest or in the
underlining technology an so on
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
Product evolution
Unless the product "dies," it evolves into its
next generation by repeating the same
sequence of inception, elaboration,
construction and transition phases
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
Phases structure – general schema
Evolution
Cycle
Emphasis of the various types of activities
over time
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
In un determinato momento
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
Phases description - Inception
Inception
»
»
»
Elaboration
Construction
Transition
Goal: to achieve concurrence among all stakeholders
on the lifecycle objectives for the project
is particularly important for new development efforts,
in which there are significant business and
requirements risks which must be addressed before
the project can proceed.
It is not a requirement phase; rather it is a kind of
feasibility phase where just enough investigation is
done to support a decision to continue or to stop
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
Inception Phase - Objectives
»
Establish the project scope and boundary conditions, including
an operational vision, acceptance criteria and what is intended
to be in the product and what is not
»
Discriminate the critical use cases of the system, the primary
scenarios of operation
»
Exhibit, and maybe demonstrate, at least one candidate
architecture against some of the primary scenarios
»
Estimate the overall cost and schedule for the entire project
»
Estimate potential risks (the sources of unpredictability)
»
Prepare the supporting environment for the project.
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
Brief workflows description
• The stakeholders (customers,
manager, etc) work with the system
analysts to define the scope of the
project
• The system analysts:
• collect stakekholder's opinions
about what the system should
• sketch an initial outline of the
system use-case model (artifact
Use-Case Model)
• The constraints on the development
project (platforms, interfaces) are also
considered.
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
Brief workflows description
• The stakeholders (customers,
manager, etc) work with the business
designer to:
• prepare the business case, based
on the early sketches of the vision
(artifact Business Case )
• Define an initial glossary to simplify
the use case model and keep it
consistent (Artifact Glossary)
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
Brief workflows description
• The risk list is defined taking into
account business risks (artifact Risk
list)
• The project manager builds:
• a phase plan showing tentative
date for inception elaboration,
construction and transition along
with the major milestones.
• A software development plan
based on the prioritized use cases
and associated risks (artifact
Software development plan).
• A tentative set of iterations with
objectives for each iteration.
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
Phases description - Elaboration
Inception
Elaboration
Construction
Transition
The elaboration Phase is the most critical phase of each evolution
cycle
» Goal: to baseline the architecture of the system and provide a
stable basis for the bulk of the design and implementation effort
in the construction phase
» The architecture evolves out of a consideration of the most
significant requirements (those that have a great impact on the
architecture of the system) and an assessment of risks
» It is not the requirements or design phase; rather, it is a phase
where the core architecture is iteratively implemented, and
high risk issues are mitigated
» The stability of the architecture is evaluated through one or more
architectural prototypes
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
Elaboration Phase - Objectives
»
To ensure that the architecture, requirements and plans are
stable enough, and the risks sufficiently mitigated to determine
the cost and schedule for the development completion.
»
To address all architecturally significant risks of the project
To establish a baseline architecture, expressed with significant
scenarios, which will support the system requirements at a
reasonable cost and time
To produce prototypes to mitigate specific risks such as:
design/requirements trade-offs; components reuse; product
feasibility or demonstrations to investors, customers, and endusers
To establish a supporting environment
»
»
»
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
Brief workflows description
• The project manager:
• works with the architects for
evaluating the architectural risks
(artifact Risk List)
• Define an iteration plan for the
current iteration (artifact
Iteration Plan)
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
Brief workflows description
• The architects with project manager
determine which UCs and scenarios should
be focused on this iteration. The UCs and
scenarios will drive the development of the
architecture
• The use-case specifies describe some of the
selected UCs and scenarios in details: high
priority to the most critical and most complex
• System analysts restructure these UCs and in
case modify the Use Case Model (artifact Use
case Model)
• The user interface designer, using the
selected UCs, develop a user-interface
prototype to get feedback from prospective
users (artifact User-interface Prototype)
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
Brief workflows description
• architect considers the system requirement,
the UC view and team’s general domain
knowledge to outline the subsystem (artifact
Software architect document).
• designers find classes or objects for the UCs
or scenarios of this iteration. Responsibilities
to the identified classes, relationships and
attributes are identified.
• architect identifies the classes that are
considered architecturally significant,
organizes them in design packages and
relates them to the subsystems (artifact
Design model).
• designers instantiate the classes into objects
• architect analyzes the concurrency required
by the system by using the UCs designed
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
Brief workflows description
• System integrator defines the order in
which the UCs must be implemented
(artifact Project plan).
• designers plans the system tests and
the integration test (artifact Test Plan).
• Test designer implements test cases and
test procedures
• System integrator incrementally
integrates the subsystem into an
executable architectural prototype. Each
build is tested.
• Successively the system tester tests the
system
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
Phases description - Construction
Inception
»
»
»
Elaboration
Construction
Transition
Goal: clarifying the remaining requirements and
completing the development of the system based upon
the baseline architecture.
is a manufacturing process, where emphasis is placed
on managing resources and controlling operations to
optimize costs, schedules, and quality.
Is a transition from the development of intellectual
property during inception and elaboration, to the
development of deployable products during
construction and transition.
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
Construction Phase – Objectives
»
»
»
»
»
Minimizing development costs by optimizing resources and
avoiding unnecessary scrap and rework.
Achieving adequate quality as rapidly as practical
Achieving useful versions (alpha, beta, and other test
releases) as rapidly as practical
To iteratively and incrementally develop a complete product
that is ready to transition to its user community. This implies
describing the remaining use cases and other requirements,
fleshing out the design, completing the implementation, and
testing the software
To decide if the software, the sites, and the users are all
ready for the application to be deployed
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
Brief workflows description
• The designer identifies the functionalities that
will be tested together and the stubs and
drivers that must be developed to support the
integration test
• The implementer designs unit tests that
address what the unit does (black box test) and
how it does it (white box test).
• The implementer integrates the subsystem
incrementally from the bottom and the tester
executes the tests.
• The system integrator incrementally adds
subsystems and creates a build that the
integration tester tests with integration testing.
• Once the whole system has been integrated the
system tester tests the system and the
designer
analyzesLABORATORY
the results
SOFTWARE ENGINEERING
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
Phases description - Transition
Inception
»
»
»
Elaboration
Construction
Transition
Goal: The focus of the Transition Phase is to ensure
that software is available for its end users.
The Transition Phase can span several iterations, and
includes testing the product in preparation for release,
and making minor adjustments based on user
feedback.
By the end of the Transition Phase the project should
be in a position to be closed out. In some cases, the
end of the current life cycle may coincide with the start
of another lifecycle on the same product, leading to the
next generation or version of the product.
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
Transition Phase – Objectives
To ensure that software is available for its end users.
» beta testing to validate the new system against user
expectations
» beta testing to validate the new system against user
expectation
» parallel operation relative to a legacy system that it's
replacing
» converting operational databases
» training of users and maintainers
» roll-out to the marketing, distribution and sales forces
» tuning activities such as bug fixing, enhancement for
performance and usability
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
Transition Phase – Milestone
The transition phase ends with the Product Release Milestone.
At this point, is necessary to decide if the objectives were met,
and if should start another development cycle. In some cases
this milestone may coincide with the end of the inception
phase for the next cycle.
At the Product Release Milestone, the product is in production
and the post-release maintenance cycle begins. This may
involve starting a new cycle, or some additional maintenance
release
The evaluation criteria are:
» The user is satisfied
» Actual resources expenditures versus planned expenditures
are acceptable
SOFTWARE ENGINEERING LABORATORY
ISTITUTO DI SCIENZA E TECNOLOGIE DELL’INFORMAZIONE
Scarica

Introduzione al Corso, UML e Processo di Sviluppo