Post on 03-Jun-2018
8/11/2019 EINF-UML
1/146
1
Introduo
Linguagem UMLPaulo Sousa
Instituto Superior de Engenharia do PortoInstituto Politcnico do Porto
8/11/2019 EINF-UML
2/146
2
Parte I
Introduo
8/11/2019 EINF-UML
3/146
8/11/2019 EINF-UML
4/146
4
Visualizao
Modelos explcitos facilitam acomunicao
Algumas estruturas transcendem o que
pode ser representado numa linguagemde programao Cada smbolo tem uma semntica bem
definida
8/11/2019 EINF-UML
5/146
5
Especificao
A notao UML permite a especificaodas decises importantes ao nvel daanlise, desenho e implementao
8/11/2019 EINF-UML
6/146
6
Construo
Forward engineering
Gerao de cdigo com base no modelo
Reverse engineering
Gerao do modleo com base no cdigoRound-trip engineering
Ciclo iterativo de desenvolviemnto com
gerao de cdigo a partir de um modelo eactualizao do modelo com base no cdigo
8/11/2019 EINF-UML
7/146
7
Documentao
A notao UML permite a criao dedocumentao dos artefactos existenteso sistema: Conceitos do problema Cenrios de instalao
possvel acrescentar links para
documentao externa Documentos de requisitos, planos de testes,
8/11/2019 EINF-UML
8/146
8
Razes para modelar
Comunicar a estrutura e comportamentodesejado(desejvel) para o sistema
Visualizar e controlar a arquitectura do
sistema Compreender o sistema e expor
oportunidades de simplificao e
reutilizao
8/11/2019 EINF-UML
9/146
9
Tipos de diagramas
Estruturais Consideram aspectos estticos do sistema
Comportamentais
Consideram aspectos dinmicos do sistema
8/11/2019 EINF-UML
10/146
10
Tipos de diagramas (II)
Estruturais Classes Objectos
Componentes Instalao
8/11/2019 EINF-UML
11/146
11
Tipos de diagramas (III)
Comportamentais Casos de utilizao Sequncia Colaborao Estados Actividades
8/11/2019 EINF-UML
12/146
12
Modelos e vistas
Modelo uma base de dados dos elementos criados paramodelar o problema
Vistas Diagramas sobre o modelo onde so colocados os
elementos existentes
Apagar um elemento de um diagrama no
retira esse elemento do modelo! Nas ferramentas Rational del remove do diagrama
e CTRL+del apaga do modelo
8/11/2019 EINF-UML
13/146
13
Adornments and Extensibility
An adornment is an item, such as a note, that
adds text or graphical detail to a model.
The UML offers various mechanisms that you
can use to extend the official language. stereotypes tagged values
constraints
8/11/2019 EINF-UML
14/146
8/11/2019 EINF-UML
15/146
15
Stereotypes
A stereotype is an extension of the
vocabulary of the UML that allows you tocreate a new kind of building block thatsspecific to the problem youre trying tosolve.
interface
Observer
update()
controlTargetTracker
Humidity Sensor
8/11/2019 EINF-UML
16/146
16
Esteretipos padro copy indica uma cpia exacta de um objecto; document indica um documento; executable indica um componente executvel num n; extend usado para indicar uma extenso do comportamento padro de
um caso de utilizao (ex., situaes de erro); file indica um ficheiro com cdigo fonte ou dados; include indica que um determinado caso de utilizao inclui
explicitamente um outro case de utilizao (ex., comportamentoscomuns); invariant representa uma restrio sobre um elemento que deve ser
sempre satisfeita (i.e., deve ser sempre verdadeira); postcondition representa uma restrio sobre uma operao que deve
ser sempre verdadeira aps a execuo da operao;
precondition representa uma restrio sobre uma operao que deveser sempre verdadeira antes da execuo da operao; system estereotipo associado a um package que representa o
sistema que se est a modelar; table representa uma tabela de base de dados;
8/11/2019 EINF-UML
17/146
17
Estereotipos no padro
possvel criar novos esteretipos associados
apenas com o problema em questo ou com acultura da empresa Outros esteretipos no padro Form indica um formulrio de interaco com o
utilizador) COM indica que a classe implementada como um
componente COM; ou o componente fisico umcomponente COM
CORBA igual ao anterior para CORBA DLL indica que o componente uma DLL Constructorou create indica um mtodo construtor
8/11/2019 EINF-UML
18/146
18
Utilizao dos diferentes
diagramas
1. Requisitos/funcionalidades2. Processos3. Estrutura lgica
4. Estrutura fsica
8/11/2019 EINF-UML
19/146
19
Requisitos/funcionalidades
dialogando com o cliente identificar as
funcionalidades de alto nvel (as grandesfunes do sistema) pretendidas nosistema para cada perfil de utilizador,recorrendo a diagramas de casos deutilizao
8/11/2019 EINF-UML
20/146
20
Processos
continuando o dilogo com o cliente,
analisar e efectuar uma descrio de altonvel dos processos existentes no sistemae das interaces entre os diferentesintervenientes nesses processos(workflow), recorrendo a diagramas deinteraco (sequncia e colaborao).
8/11/2019 EINF-UML
21/146
21
Estrutura lgica
partindo do diagramas de casos de
utilizao e dos diagramas de interacode alto nvel, identificar e descreverdetalhadamente as diferentes entidadesexistentes no sistema (recorrendo adiagramas de classes), bem como detalharos diagramas de interaco anteriores porforma a incluir as classes deimplementao identificadas e respectivasoperaes (diagramas de sequncia e decolaborao).
8/11/2019 EINF-UML
22/146
22
Estrutura fsica
identificar os diferentes elementos fsicos
do sistema (ex., bibliotecas de funes,executveis) recorrendo-se de diagramasde componentes, bem como identificar osrecursos de hardware necessrios instalao do sistema usando para taldiagramas de instalao.
8/11/2019 EINF-UML
23/146
23
Parte II
Diagramas
8/11/2019 EINF-UML
24/146
24
Diagramas Estruturais
Diagrama de Pacotes
8/11/2019 EINF-UML
25/146
25
Package
A package is a general-purpose
mechanism for organizing elements of amodel, such as classes or diagrams, intogroups.
Every element within a model is uniquely
owned by one package. Also, thatelements name must be unique withinthat package.
8/11/2019 EINF-UML
26/146
26
Sample Package Diagrams
Posting Posting Rule
GL Account
General Ledger
Accounting
A/P G/L A/R
8/11/2019 EINF-UML
27/146
27
Diagramas Comportamentais
Diagrama de Casos de Utilizao
8/11/2019 EINF-UML
28/146
28
Use Case and Actor
A use case is a sequence of actions,
including variants, that a system performsto yield an observable result of value toan actor.
An actor is a coherent set of roles that
human and/or non-human users of usecases play when interacting with thoseuse cases.
8/11/2019 EINF-UML
29/146
29
Flows of Events
The main flow of events (basic course of
action) describes the sunny-dayscenario.
Each exceptional flow of events(alternate course of action) describes a
variant, such as an error condition or aninfrequently occurring path.
8/11/2019 EINF-UML
30/146
30
Simple Use Case Diagram
Do
Trade
Entry
GenerateReports
Update
PortfolioInfo
8/11/2019 EINF-UML
31/146
31
Organizing Use Cases
packages generalization include
extend
8/11/2019 EINF-UML
32/146
32
Use Case Packages
Packages of use cases can be very useful
in assigning work to sub-teams.
Portfolios
Create
New
Portfolio
View
Portfolio
Aggregate
Portfolios
GeneratePortfolio
Report
8/11/2019 EINF-UML
33/146
8/11/2019 EINF-UML
34/146
34
Include
You can use the include stereotype to
indicate that one use case includes thecontents of another use case. This enablesyou to factor out frequent common
behavior.
Validate
User
Place
Order
Track
Order
include include
8/11/2019 EINF-UML
35/146
35
Extend
You can use the extend stereotype to
indicate that one use case is extended byanother use case. This enables you tofactor out infrequent common behavior.
ValidateUser
PlaceRush
Order
extend
8/11/2019 EINF-UML
36/146
36
Algumas notas sobre use
cases Relaes entre use cases no significam fluxo
de execuo Sistemas externas so modelados comoactores
S se modelam os use cases do prprio
sistema O importante o texto do use case e no o
diagrama O texto do use case deve descrever o fluxo
normal de eventos As situaes excepcionais so descritas numa
seco parte
8/11/2019 EINF-UML
37/146
37
extends
includes
8/11/2019 EINF-UML
38/146
38
Exerccio Supor um cenrio de
portal intranet de umaempresa para publicaodos contactos einformao sobre
funes doscolaboradores Elaborar um diagrama de
use cases para este
cenrio
8/11/2019 EINF-UML
39/146
39
Diagramas Estruturais
Diagrama de Classes
C U f Cl
8/11/2019 EINF-UML
40/146
40
Common Uses of Class
Diagrams
to model vocabulary of the system, in
terms of which abstractions are part ofthe system and which fall outside itsboundaries
to model simple collaborations (societiesof elements that work together to providecooperative behavior)
to model logical database schema(blueprint for conceptual design of
database)
8/11/2019 EINF-UML
41/146
41
Class
A class is a description of a set of objects that
share the same attributes, operations,relationships, and semantics.
An attribute is a named property of a class thatdescribes a range of values that instances ofthe property may hold.
An operation is a service that can berequested from an object to affect behavior.
8/11/2019 EINF-UML
42/146
42
Class Notation
Name
Attributes
Operations
8/11/2019 EINF-UML
43/146
43
Atributos e operaes
Atributos Nome-do-atributo : tipo-de-dados [ = valor-inicial ] idade : int = 0
dtNascimento : Data
Operaes Nome-da-operao (argumentos ) : tipo-de-retorno Argumentos
[ { in | out | inout } ] Nome-do-argumento : tipo-de-dados setIdade(in idade : int) : void
getIdade() : int
8/11/2019 EINF-UML
44/146
44
Visibilidade
Indica o tipo de visibilidade de um
atributo ou de uma operao de umaclasse Privado (-)
Apenas acessvel do interior; S as operaesda prpria classe tem acesso -idade : int
Pblico (+) acessvel do exterior; Qualquer objecto temacesso +getIdade() : int
Protegido (#) acessvel pelo interior e por classes derivadas
8/11/2019 EINF-UML
45/146
45
Visibilidade (II)
Tipicamente todos os atributos de uma
classe devem ser privados Evita a manipulao directa do estado do
objecto Garante que o objecto estar sempre num
estado vlido (pelo menos nica eexclusivamente da responsabilidade da
classe) Fornece-se operaes pblicas para
aceder aos atributos da classe bem
como modificar o seu valor
8/11/2019 EINF-UML
46/146
46
Accessors/Mutators So tipos de mtodos/operaes especiais de uma classe Accessorou getter
Um mtodo que permite consultar o valor de um atributo Normalmente o nome do mtodo construdo com a
palavra gete o nome do atributo: getDia() : int
Mutatorou setter Um mtodo que permite modificar o valor de um atributo Este mtodo consegue validar o novo valor evitando dessa
forma colocar o objecto num estado invlido Normalmente o nome do mtodo construdo com a
palavasete o nome do atributo: setDia(d : int): void
8/11/2019 EINF-UML
47/146
47
Alternative Class Notations
Name
Attributes
Operations
Responsibilities
Name
Attributes
OperationsName
italics abstract
8/11/2019 EINF-UML
48/146
48
Mtodos e classes abstractas Diz-se de um mtodo que definido em termos
de assinatura mas no implementado Apenas se define o nome do mtodo, os argumentose o tipo de retorno sem fornecer a suaimplementao
Uma classe abstracta aquela que tem pelomenos um mtodo abstracto No permite a criao de objectos desta classe pois
nem todos os comportamentos esto definidos Obriga implementao dos mtodos abstractos em
classes derivadas
Notao UML: itlico mover() : void
8/11/2019 EINF-UML
49/146
49
Relationships
connections between classes dependency generalization
association
8/11/2019 EINF-UML
50/146
50
Dependency
A dependency is a using relationship
within which the change in the specificationof one class may affect another class thatuses it.
Example: one class uses another inoperation
Window
handleEvent()
Event
8/11/2019 EINF-UML
51/146
51
Generalization
A generalization is a kind of or is a
relationship between a general thing(superclass or parent) and a more specificthing (subclass or child).
Shape
RectangleCircle
8/11/2019 EINF-UML
52/146
52
Association
An association is a structural relationship
within which classes or objects areconnected to each other. (An associationbetween objects is called a link.)
CompanyPerson
8/11/2019 EINF-UML
53/146
53
Association Adornments
name role multiplicity
aggregation composition
8/11/2019 EINF-UML
54/146
54
Association Name
describes nature of relationship:
can also show direction to read name:CompanyPerson
works for
CompanyPerson works for
8/11/2019 EINF-UML
55/146
55
Association Roles
describe faces that classes present to
each other within association
class can play same or different roleswithin different associations
CompanyPerson employeremployee
8/11/2019 EINF-UML
56/146
56
Association Multiplicity
possible values same as for classes:
explicit value, range, or * for many Example: a Person is employed by one
Company; a Company employs one or
more Persons
CompanyPerson 1..*1
8/11/2019 EINF-UML
57/146
57
Associao direccional
Corresponde a um atributo na classe
como referncia para um objecto daclasse associada
EntidadeMundo
Posicao
class EntidadeMundo {
...
Posicao pos;
...
}
Multiplicidade nas
8/11/2019 EINF-UML
58/146
58
p
associaes
Quando uma associao tem uma
multiplicidade diferente de 1 necessriouma coleco de referncias Por exemplo, um vector
class Carro {
...
Roda[] rodas;
...
}
Carro
Roda
8/11/2019 EINF-UML
59/146
59
Associaes
Um objecto pode ter associaes com
outros objectos da mesma classe Em termos de diagrama de classes UML,
essas associaes representam-se como
arcos
8/11/2019 EINF-UML
60/146
60
AggregationAggregation is a whole/part or has a
relationship within which one classrepresents a larger thing that consists ofsmaller things.
Roda
Carro
8/11/2019 EINF-UML
61/146
61
CompositionComposition is a special form of
aggregation within which the parts areinseparablefrom the whole.
Departamento
Empresa
8/11/2019 EINF-UML
62/146
62
Association ClassesAn association class has properties of
both an association and a class.
CompanyPerson
Job
description
dateHired
salary
8/11/2019 EINF-UML
63/146
GECAD1
8/11/2019 EINF-UML
64/146
64
Interface (II) Viso como servios
A interface descreve o servio fornecido peloobjecto. A interface funciona como um contracto para
esse servio: se o servio fornecido, entoser fornecido de acordo com o descrito nocontracto
Permite a captura de semelhana entre classessem impor relaes artificiais entre elas Evidencia o servio prestado sem forar
qualquer tipo de implementao
Slide 64
GECAD1 figura
8/11/2019 EINF-UML
65/146
GECAD1 figuraGECAD; 06-12-2002
8/11/2019 EINF-UML
66/146
65
Interface (III) As classes podem realizar uma ou mais
interfaces
MyObserver
update()
Observer
8/11/2019 EINF-UML
67/146
66
8/11/2019 EINF-UML
68/146
67
ConstraintsA constraint is an extension of the
semantics of one or more model elementswhich specifies a condition that must betrue.
Portfolio
Bank Account
Person
Corporation
{secure}
{or}
8/11/2019 EINF-UML
69/146
68
Exerccio Continuao do
portal intranet deuma empresa Elaborar um
diagrama de classespara o cenrio quedescreveram nosdiagramas de use
case
8/11/2019 EINF-UML
70/146
69
Diagramas Comportamentais
Diagrama de Sequncia
8/11/2019 EINF-UML
71/146
70
Interaction and Message An interaction is a behavior that
comprises a set of messages, exchangedamong a set of objects, to accomplish aspecific purpose.
A message is the specification of acommunication between objects thatconveys information, with the expectationthat some kind of activity will ensue.
8/11/2019 EINF-UML
72/146
71
Sequence Diagram A sequence diagram is an interaction diagram
that emphasizes the time ordering ofmessages.
A lifeline is a vertical dashed line thatrepresents the lifetime of an object.
A focus of control is a tall, thin rectangle thatshows the period of time during which an objectis performing an action.
8/11/2019 EINF-UML
73/146
72
Sequence Diagram Notation
: Ticket Agentc: Client
createsetItinerary(i)
calculateRoute()route
8/11/2019 EINF-UML
74/146
73
Utilizao de diagramas de
8/11/2019 EINF-UML
75/146
74
sequncia Tipicamente cada use case descrito por um diagrama de
sequncia de alto nvel So muitas vezes sub-diagramas associados a um usecase
Os focos de controlo so provocados pela recepo deuma mensagem
Ao elaborar o diagrama de sequncia utilizam-se asclasses identificadas previamente no diagrama de classesmas tambm normal criar novas classes
O nvel de detalhe do diagrama de sequncia depende doque se quer transmitir. Alto nvel para compreenso geral do processo Baixo nvel para implementao
8/11/2019 EINF-UML
76/146
75
Criao e destruio
/ ClassifierRole3/ ClassifierRole1
1 : \new\
2 : \op1\
4 : Destroy
8/11/2019 EINF-UML
77/146
76
Ciclos e decises (UML 1.x)/ ClassifierRole3/ ClassifierRole1
1 : \op1\
2 : \m1\
loop 5 times
end loop
8/11/2019 EINF-UML
78/146
77
Ciclos e decises (UML 1.x)/ ClassifierRole3/ ClassifierRole1
1 : [x=3] \op1\
8/11/2019 EINF-UML
79/146
78
Exerccio Continuao do
portal intranet deuma empresa Elaborar os
diagramas desequncia para cadause case identificado
8/11/2019 EINF-UML
80/146
79
Diagramas Comportamentais
Diagrama de Colaborao
8/11/2019 EINF-UML
81/146
80
Collaboration Diagram A collaboration diagram is an
interaction diagram that emphasizes theorganization of the objects thatparticipate in the interaction.
A path is a link between objects, perhapswith a stereotype such as localattached.
Sequence numbers indicate the timeordering of messages, to one or morelevels.
Collaboration Diagram
8/11/2019 EINF-UML
82/146
81
Notation
: Transaction
c: Client
1: create
p: ODBCProxy
2: setActions (a,d,o)3: destroy
2.1: setValues(d,3,4)
2.2: setValues(a,CO)
global
8/11/2019 EINF-UML
83/146
82
8/11/2019 EINF-UML
84/146
83
Algumas notas possvel gerar um diagrama de
sequncia e a partir de um diagrama decolaborao e vice-versa Ambos apresentam a mesma informao Sequncia: d nfase ao aspecto temporal
das mensagens Colaborao: d nfase ligao existente
(topologia) entre as classes
8/11/2019 EINF-UML
85/146
84
Exerccio Continuao do
portal intranet deuma empresa
Elaborar osdiagramas
colaboraocorrespondentes aosdiagramas desequncia
elaborados no passoanterior
8/11/2019 EINF-UML
86/146
85
Diagramas Comportamentais
Diagrama de Estados
8/11/2019 EINF-UML
87/146
S N i
8/11/2019 EINF-UML
88/146
87
State Notation
Idle
Cooling
Heating
Activating
Active
St t M hi d T iti
8/11/2019 EINF-UML
89/146
88
State Machine and Transition A state machine is a behavior that
specifies the sequences of states that anobject goes through in its lifetime, inresponse to events, and also its
responses to those events. A transition is a relationship between
two states; it indicates that an object in
the first state will perform certain actions,then enter the second state when a givenevent occurs.
E t d E it A ti
8/11/2019 EINF-UML
90/146
89
Entry and Exit Actions
An entry action is the first thing that occurs
each time an object enters a particular state.
An exit action is the last thing that occurs
each time an object leaves a particular state.
Tracking
entry/setMode(onTrack)
exit/setMode(offTrack)
A ti iti
8/11/2019 EINF-UML
91/146
90
Activities An activity is an interruptible sequence
of actions that an object can performwhile it resides in a given state. (Actionsare not interruptible.)
Tracking
do/followTarget
I iti l d Fi l St t
8/11/2019 EINF-UML
92/146
91
Initial and Final StatesThe initial state is the default starting
place for a state machine.
The final state indicates the completion ofthe state machines execution.
Transies
8/11/2019 EINF-UML
93/146
92
Transies Condies de guarda [ x < 5]
Eventos Cancel key pressed
Aces / handleCancelKey()
Combinao dos trs anteriores [x < 5] / x = 5
Cancel key presses / handleCancelKey() [x < 5 ] Cancel key pressed [allowCancel = true] Cancel key pressed /
handleCancelKey()
8/11/2019 EINF-UML
94/146
Algumas notas
8/11/2019 EINF-UML
95/146
94
Algumas notas Apenas se modela o estado dos
objectos/classes pertinentes So normalmente sub-diagramas
associados classe em questo
Exerccio
8/11/2019 EINF-UML
96/146
95
Exerccio Continuao do
portal intranet deuma empresa
Elaborar o(s)diagrama(s) de
estado das principaisentidadesidentificadas no
diagrama de classes
Diagramas Comportamentais
8/11/2019 EINF-UML
97/146
96
Diagramas Comportamentais
Diagrama de Actividades
Why Activity Diagrams?
8/11/2019 EINF-UML
98/146
97
Why Activity Diagrams? An activity diagram, which resembles a
flowchart, is useful for modelingworkflows and the details of operations.
While an interaction diagram looks at the
objects that pass messages, an activitydiagram looks at the operations that arecalled by objects.
State Diagram Carryovers
8/11/2019 EINF-UML
99/146
98
State Diagram CarryoversThe following items are common to state
diagrams and activity diagrams: activities actions transitions initial/final states
guard conditions
Bid plan
Do construction
entry/setLock()
Breaking Up Flows
8/11/2019 EINF-UML
100/146
99
Breaking Up Flows alternate paths:
branch merge
parallel flows: fork join
Branching
8/11/2019 EINF-UML
101/146
100
BranchingA branch has one incoming transition and
two or more outgoing transitions:
Charge credit
card
Hold in will-callMail tickets
[today 7 days before show] [today < 7 days before show]
Merging
8/11/2019 EINF-UML
102/146
101
MergingA merge has two or more incoming
transitions and one outgoing transition:
Customer
sees show
Mail tickets Customer picks
up tickets
Forking
8/11/2019 EINF-UML
103/146
102
ForkingA fork represents the splitting of a single
flow of control into two or more concurrentflows of control:
Receive order
Process orderLog order
Joining
8/11/2019 EINF-UML
104/146
103
JoiningA join represents the synchronization of
two or more flows of control into onesequential flow of control:
Pay bill
Bill customerReceive product
Swimlanes
8/11/2019 EINF-UML
105/146
104
SwimlanesSwimlanes partition groups of activities
based on, for instance, businessorganizations:
Pay bill
Bill customerReceive product
Customer Billing
8/11/2019 EINF-UML
106/146
105
Algumas notas
8/11/2019 EINF-UML
107/146
106
Algumas notas So utilizados para modelar:
a lgica de uma operao de uma classe um processo de negcio
So normalmente sub-diagramas de
classes ou de use cases
Exerccio
8/11/2019 EINF-UML
108/146
107
Exerccio Continuao do portal
intranet de umaempresa
Elaborar o(s)diagrama(s) de
actividades para asprincipaisactividades/processos
do sistema
Diagramas Estruturais
8/11/2019 EINF-UML
109/146
108
Diagramas Estruturais
Diagrama de Componentes
Component
8/11/2019 EINF-UML
110/146
109
Co po e t A component is a physical, replaceable
part of a system that conforms to, andprovides the realization of, a set ofinterfaces.
examples: dynamic link library (DLL) COM+ component Enterprise Java Bean (EJB)
Component Notation
8/11/2019 EINF-UML
111/146
110
p
Scheduler
-----------------------------------------
--------------------
signal.cpp
8/11/2019 EINF-UML
112/146
111
Exerccio
8/11/2019 EINF-UML
113/146
112
Continuao do portalintranet de uma
empresa Elaborar o diagrama
de componentes do
sistema
Diagramas Estruturais
8/11/2019 EINF-UML
114/146
113
g
Diagrama de Instalao (deployment)
8/11/2019 EINF-UML
115/146
8/11/2019 EINF-UML
116/146
Deployment Diagram Notation
8/11/2019 EINF-UML
117/146
116
: kiosk
deploys
user.exe
c: consoledeploys
config.exe
s: serverdeploys
dbadmin.exe
: RAID farm
10-T Ethernet
RS-232
8/11/2019 EINF-UML
118/146
117
8/11/2019 EINF-UML
119/146
Diagramas Estruturais
8/11/2019 EINF-UML
120/146
119
Diagrama de Objectos
Object DiagramA bj t di h t f bj t
8/11/2019 EINF-UML
121/146
120
An object diagram shows a set of objects,and their relationships, at a specific point intime.
c: Company
d1: Department
name = R&D
p1: Person
ID = 13
: Contact Info
phone = 411
Quando usarPermite e idenciar m fotograma da
8/11/2019 EINF-UML
122/146
121
Permite evidenciar um fotograma daexecuo da aplicao para visualizar oestado interno de cada objecto nesseinstante
8/11/2019 EINF-UML
123/146
122
Parte III
Classes de Anlise
Analysis Classes
Introduced by Jacobson in his white
8/11/2019 EINF-UML
124/146
123
Introduced by Jacobson in his whitebook (Object-Oriented SoftwareEngineering; Addison-Wesley, 1992)
Used in Analysis workflow of Rationals
Unified Process Boundary class Control class
Entity class
Boundary Class
Used to model interactions between
8/11/2019 EINF-UML
125/146
124
Used to model interactions betweensystem and its actors and clarify andcollect requirements on systemsboundaries
Often represent windows, screens, APIs
Control Class
Used to encapsulate control related to
8/11/2019 EINF-UML
126/146
125
Used to encapsulate control related tospecific use case
Represent coordination, sequencing,transactions, and control of other objects
Entity Class
Used to model long-lived (possibly
8/11/2019 EINF-UML
127/146
126
Used to model long-lived (possiblypersistent) information
Usually correlates directly to class onclass diagram
8/11/2019 EINF-UML
128/146
127
Utilizao
Numa fase inicial da anlise
8/11/2019 EINF-UML
129/146
128
Numa fase inicial da anlise para capturar a muito alto nvel a estrutura do
sistema a desenvolver Juntamente com os diagramas de sequncia
ou actividades para descrever em passos
gerais os principais processos a implementar Base, atravs de um processo iterativo, para
refinao at ao modelo de implementao
Parte IV
8/11/2019 EINF-UML
130/146
129
Parte IV
Um Exemplo
Livraria na internet
A livraria tem que aceitar encomendas via internet. A livraria deve manter uma lista de contas de clientes at o limite de um
8/11/2019 EINF-UML
131/146
130
A livraria deve manter uma lista de contas de clientes at o limite de ummilho de clientes.
As contas dos clientes devem estar protegidas por password. Deve ser possvel efectuar pesquisas no catalogo principal da livraria. Essas pesquisas devem poder ser efectuadas por diversos mtodos
(ex., titulo, autor, ISBN). A livraria deve fornecer um mtodo seguro de pagamento via carto de
crdito.
Devem existir ligaes electrnicas entre a aplicao web a base dedados e o sistema de expedio (ex., DHL). Devem existir ligaes electrnicas entre a aplicao web a base de
dados e o sistema de gesto de inventrio. A livraria deve manter um esquema de comentrios aos livros existentes
no catalogo, sendo possvel a qualquer utilizador fazer um novo
comentrio. Os livros devem ser classificados segundo uma pontuao baseada nos
inputsdos utilizadores.
Diagrama de Caso deUtilizao
8/11/2019 EINF-UML
132/146
131
8/11/2019 EINF-UML
133/146
Caso de Utilizao EditShoping Cart
8/11/2019 EINF-UML
134/146
133
Diagrama de sequncia paracaso de utilizao Login
8/11/2019 EINF-UML
135/146
134
Modelo do domnio
8/11/2019 EINF-UML
136/146
135
Diagrama de classes (I)
8/11/2019 EINF-UML
137/146
136
Diagrama de classes (II)
8/11/2019 EINF-UML
138/146
137
Diagrama de classes (III)
8/11/2019 EINF-UML
139/146
138
8/11/2019 EINF-UML
140/146
Exerccio (1/2)
Pretende-se um sistema que permita fazeri l d i t
8/11/2019 EINF-UML
141/146
140
simulaes de eco-sistemas Existe um mundo (tipicamente uma grelha de
NxM posies) Nesse mundo existiro seres/objectos (ex.,
lobos, veados, ervas, pedras). Normalmente em cada quadrado da grelha
(mundo) apenas pode existir um ser/objecto Em cada passo da simulao cada objecto/ser
executa uma aco (por ex., dar um passo)
Exerccio (2/2)
A simulao dura um nmero de passosprdefinidos pelo utilizador
8/11/2019 EINF-UML
142/146
141
prdefinidos pelo utilizador
O utilizador pode configurar o mundoindicando: Dimenso (NxM) Nmero e tipo de entidades a colocar
A ideia ter diferentes tipos de entidades (ex.,1 veado e 4 lobos)
Cada tipo de entidade tem os seus prprios
objectivos Lobo capturar o veado Veado fugir dos lobos e comer erva
Exerccio (3/3)
Cada entidade pode ver o mundo sual i d
8/11/2019 EINF-UML
143/146
142
volta e movimentar-se no mundo suavolta
Normalmente apenas se movimenta uma
casa (N, S, E, O) ou (N, NE, E, SE, S,SO, O) Normalmente apenas v uma casa mas
pode-se implementar animais com visomais apurada
8/11/2019 EINF-UML
144/146
143
Fim do Mdulo
Bibliografia
Parte desta apresentao baseada em:
8/11/2019 EINF-UML
145/146
144
An Introduction to the Unified ModellingLanguage, Kendal Scott, EmbarcaderoWebninars, 2000.
Rosenberg, Doug (2001). UML for e-Commerce. Seminrio Iconix.
Onde obter mais informao
UML.orgh // l /
8/11/2019 EINF-UML
146/146
145
http://www.uml.org/
UML na OMG http://www.omg.org/technology/uml/index.ht
m Dicionrio UML http://www.usecasedriven.com/UML.htm
Cetus Links http://www.cetus-links.org/oo_uml.html