Prof. Horácio Ribeiro
Estudo Dirigido
Disciplina: Modelagem de sistemas
Diagrama de Classe - Modelo de domínio
Após a leitura desse capítulo, o leitor saberá:
-
identificar uma classe e objetos
definir os tipos de classes
identificar atributos e visibilidade de atributos
relacionar classes
definir os tipos de qualificações feitas nos relacionamentos
classes dependentes
modelar estruturas de herança.
modelar associaçoes
exemplos
Livro
Titulo: UML Essencial - Um Breve Guia para a Linguagem-Padrão de
Modelagem de Objeto
Nome do autor: Martin Fowler
Editora: Artmed
Ano: 2005
Edição: 3º
Capítulo: capítulo 3 Diagrama de classes
Capítulo: capítulo 9: casos de uso
Titulo: Utilizando UML e Padrões – Uma Introdução à Análise e ao
Projeto Orientado a Objetos e ao Processo Unificado
Nome do autor: Craig Larman
Editora: Artmed
Ano: 2007
Edição: 3º
Prof. Horácio Ribeiro
No fim desta aula você:
•
•
•
•
•
•
•
•
Aprendeu que o diagrama de classes é o mais importante na
análise por objetos.
Aprendeu o que um objeto e como fazer um diagrama de
objetos
O diagrama deve ser inciado focando-se no caso e uso crítico
Aprendeu a estabelecer relacionamentos
Aprendeu como representar conjuntos
Uso as classes associativas e verificou a importância delas
para dar flexibilidade aos sistemas criados a partir destes
modelos.
Aprendeu que pode se qualificar os relacionamentos e definir
restrições junto às classes.
Aprendeu a modelar uma associação
Prof. Horácio Ribeiro
EXERCÍCIOS DE AUTOCORREÇÃO
1-
Responda falso ou verdadeiro
.(
) No UML a representação de uma classe é formada em três
compartimentos, sendo: o primeiro para identificar o nome da classe, abaixo
vem o compartimento com os objetos relativos à classe e por último o
compartimento dos atributos.
2 - Dadas as seguintes afirmações, marque a opção falsa em relação à
generalização.
a) Todas as instâncias de uma classe filha são também instancias da classe
mãe.
b) É uma associação ‘é um tipo de’.
c) Todas as instâncias da classe mãe são também instancias das classes
filhas.
d) Uma classe pode ter nenhuma ou varias classes mãe.
e) Uma classe pode ter nenhuma ou varias classes filhas.
(3) Quais dos relacionamentos abaixo pode haver entre classes?
I – include (inclusão)
II – extends (extensão)
III – agregação
IV – generalização
V – composição
VI – associação
a) todos
b) nenhum
c) II, III, IV, VI
d) III, IV, V, VI
e) I, II, IV
(4) Dadas às seguintes afirmações, marque a opção falsa em relação à
herança.
a) A herança é um mecanismo que deriva novas classes a partir de uma classe
já existente através de um processo de refinamento.
b) Uma classe derivada herda atributos e operações da classe base.
c) A classe derivada não pode adicionar novos atributos ou operações as já
existentes.
d) Quando uma classe herda de mais de uma classe, temos a herança múltipla.
e) A classe derivada pode redefinir a implementação de operações existentes
na classe base.
Prof. Horácio Ribeiro
INSERIR AQUI OS EXERCÍCIOS DE AUTOCORREÇÃO
12 Em relação aos diagramas de classes, a Multiplicidade:
A. É obrigatória para todos os tipos de associação
B. Não é usada com generalização
C É obrigatória na composição
D. É opcional com a generalização
E. É usada apenas nas subclasses no fim da generalização
Prof. Horácio Ribeiro
INSERIR AQUI OS EXERCÍCIOS propostos
1) Considere a seguinte descrição e construa o modelo conceitual: Um
aluno possui matrícula e nome e pode estar alocado a uma ou
várias disciplinas. Cada disciplina tem um titulo e uma ementa e
pode ter uma ou várias turmas que, por sua vez, possui um único
professor alocado.
2 - Modele o diagrama de classes e especifique o tipo de cobertura
encontrado, se houver.
Podemos dizer que uma sala de aula é composta de um quadro negro,
um retroprojetor e vários móveis. Um móvel pode ser ou uma mesa, ou
uma cadeira ou uma carteira.
3. Em uma universidade, José da Silva trabalha na biblioteca e é a
pessoa responsável por registrar no sistema, os empréstimos de livros
aos alunos. Além de trabalhar na biblioteca, José também é aluno da
Universidade. Em um diagrama de casos de uso, como
representaríamos as interações de José da Silva com o sistema para:
•
Registrar um empréstimo;
•
Efetuar matrícula em disciplina;
•
Cadastrar livro
•
5) Modele o diagrama de classes : Podemos dizer que uma sala de
aula é composta de um quadro negro, um retroprojetor e vários móveis.
Um móvel pode ser ou uma mesa, ou uma cadeira ou uma carteira.
Prof. Horácio Ribeiro
Aula 1
Texto
Titulo Diagrama de classes
O diagrama de classes é o principal dos diagramas do UML. O diagrama é
como uma fotografia dos elementos usados pela aplicação.
É uma
representação estática, e não deve ser usado para representar dinâmicas da
aplicação embora também às retrate como veremos. Existem vários níveis de
diagrama de classes, eles são usados no nível de domínio – conceitual – e em
nível de projeto. Nesta aula vamos abordar o diagrama de classes a partir da
observação do mundo real para um determinado contexto, vamos construir o
diagrama em nível de domínio. Isto é, não se deve representar estruturas de
projeto (chaves, arquivos, campos...). O foco da análise é o negócio. Imagine
que você está no século 15 e que não tem computador – quando estiver
fazendo este modelo.
TITULO Identificando classes.
Uma classe é uma forma de representarmos no mundo simbólico um conjunto
do mundo real. Ao observar um conjunto sobre o qual temos alguns interesses
(guardar os dados dos e elementos de um conjunto, por exemplo) dizemos que
temos uma classe. As propriedades que desejo observar (propriedades para a
qual desejamos guardar valores) são chamado de atributos.
Representando uma classe
Existem várias formas gráficas para se representar uma classe, mas em UML,
quando temos interesse em um conjunto do mundo real desenhamos:
Prof. Horácio Ribeiro
Nome da classe ou
Elemento da observação
Propriedades que se esta
interessado em observar
ou atributos
Exemplo: queremos observar um conjunto de pessoas, e as informações
sobre as quais temos interesse são: nome, endereço, telefone, CPF
pessoa
pessoa
Nome
Nome
Endereço
Endereço
Telefone
Telefone
CPF
CPF
Ao definir a classe de domínio definimos um modelo de representação dos
elementos do conjunto:
Assim os elementos (Manoel, rua do bispo-3, 32116734, 371622571)
(Jose, Rua Ava-34, 3226216, 37162225881)
Fica representado:
Manoel
Rua do bispo -3
32116734
3716222571
José
Rua Ava-34
3226216
37162225881
Observe que colocamos os valores que os atributos assumem nas
representações. Neste caso dizemos que a classe foi INSTANCIADA, ou
seja, recebeu valores.
Cada um dos elementos no mundo das
representações é chamado de um objeto da classe. Então uma classe
representa um conjunto e os elementos do conjunto – objetos – são
representados segundo a definição da classe.
Prof. Horácio Ribeiro
Dicas 1:
- Uma classe é a descrição de um tipo de objeto do mundo
real.
- Usam-se classes para classificar os objetos que identificamos
no mundo real.
- As classes devem ser retiradas do domínio do problema.
Importante
Uma classe completa no UML é representada por um retângulo dividido em
três compartimentos: o compartimento de nome, que conterá apenas o nome
da classe modelada, o de atributos, que possuirá a relação de atributos que a
classe possui e o compartimento de operações chamadas de métodos. Nós
veremos o que é método e sua modelagem em aulas futuras
Repesentação da classe em UML
Cliente
Nome : String
Idade : Num
Nome da Classe
Criar()
Destruir()
Operações
Atributos
No UML um objeto fica representado da forma:
Pablo Barros:Cliente
Nome do Objeto
Nome : "Pablo Barros"
Idade : 20
Atributos
Criar()
Destruir()
Operações
Foi instanciado o objeto Pablo Barros da classe cliente. E as operações que se
pode fazer com ele são: criar() e destruir(). Vamos aprender como identificar os
métodos ainda em aulas futuras
Prof. Horácio Ribeiro
Relacionamentos:
Outro elemento importante, para a modelagem de classes, é o
relacionamento.
Aqui o relacionamento tem o mesmo conceito
matemático estabelecido em teoria dos conjuntos.
Têm-se um
relacionamento quando estabelecemos alguma “ligação”, do nosso
conhecimento, entre os conjuntos. VIU... Não é uma ligação física...
é uma ligação do nosso conhecimento – ou do domínio da aplicaçãopor isto, não tem como se constatar fisicamente. É um elemento
conceitual. Reflete o conhecimento a respeito de alguma coisa. Só
existe no mundo simbólico.
Vamos esclarecer com alguns exemplos:
Você tem o conjunto dos homens e o conjunto das mulheres.
A relação CASAMENTO normalmente associa um Homem a uma
mulher.
A relação Possuir associa um elemento do conjunto de objetos a um
elemento do conjunto de pessoas
Um relacionamento é um estabelecimento conceitual entre elementos
de um conjunto com outro que depende de que aspecto do mundo
real estamos nanlisando.
Estabelecimento de relacionamentos:
Quando temos um conjunto, como por exemplo, o conjunto de
alunos:
aluno
Nome
Endereço
matricula
CPF
E estamos analisando, no mundo real, como é o controle de estacionamento
construído apenas para alunos, identificamos que o outro conjunto de interesse
é o de veículos:
veiculo
Marca
placa
cor
ano
Prof. Horácio Ribeiro
Para os dois conjuntos podemos estabelecer um relacionamento que é
representado na forma abaixo:
aluno
veiculo
Nome
Endereço
matricula
CPF
Marca
placa
cor
ano
Pode-se escrever o relacionamento que estamos estabelecendo. Observe que
temos DOIS relacionamentos: De aluno para veiculo (relacionamento: possui),
e, De veiculo para aluno(relacionamento: pertence).
O nome destes
relacionamentos não é padronizado e devem ser dados de forma a definir a
relação. O sentido da relação é indicado por uma seta, como mostrado abaixo:
aluno
Nome
Endereço
matricula
CPF
veiculo
Possui
pertence
Marca
placa
cor
ano
Assim o relacionamento mostra o sentido da leitura:
- aluno possui veiculo.
- veiculo pertence a aluno
Dicas 2:
- Um relacionamento é um conceito: não existe fisicamente no mundo
real
- Existem sempre dois relacionamentos entre conjuntos (de A para B
e de B para A).
- Não force a barra para colocar o mesmo nome para o dois
relacionamentos. É perda de tempo e tira o foco da análise que
está sendo feita.
- Não padronize relacionamentos, ele mudam para cada novo mundo
real que estamos analisando
Prof. Horácio Ribeiro
Multiplicidade dos relacionamentos:
Uma informação importante quando trabalhamos com os relacionamentos é de
como os elementos do conjunto se comportam em relação ao outro. Quando
eu tenho um conjunto A e um conjunto B, na matemática um relacionamento
representa um par (a,b) onde a pertence ao conjunto A e b pertence ao
conjunto B
Pode ser que todos os elementos de A tenham o par (a, b), neste caso se fala
PARA TODO a pertencente ao conjunto A temos uma imagem b no conjunto B.
Observe que não INTERESSA como chega ou para quem chega ao conjunto B.
Existem quatro possibilidades de multiplicidade do conjunto A em relação ao
conjunto B:
Primeira:
ANALISANDO A verificamos que de todo elemento do conjunto A sai uma
flexa:
Neste caso representamos esta informação junto ao relacionamento no sentido
da leitura:
aluno
veiculo
Marca
placa
cor
ano
Possui
pertence
LEMOS: Todo Veiculo pertence a
Segunda situação:
1
UM aluno.
Nome
Endereço
matricula
CPF
Prof. Horácio Ribeiro
Observe que da situação anterior UM elemento do conjunto A não tem
correspondente no conjunto B. Se existir um elemento (basta um) não ter
correspondente que caracterizamos esta situação.
Representamos assim:
aluno
Nome
Endereço
matricula
CPF
PAI VIVO
TEM
MANTÉM0..1
NOME
DATA
NASCIMENTO
cor
CPF
Existem alunos que TEM ZERO ou UM pai vivo
Terceira situação:
De todo elemento de A estabelecemos um relacionamento, mas existem ( no
mínimo um) elementos que tem mais de um correspondente no conjunto B
Prof. Horácio Ribeiro
Esta situação representa-se na forma:
aluno
Nome
Endereço
matricula
CPF
disciplina
cursa
tem
1..N
Nome
ementa
carga
horaria
periodo
Lemos do seguinte modo: Um aluno cursa uma ou mais de uma disciplina.
Quarta situação:
No mínimo um elemento pertencente ao conjunto a não tem correspondente
em b e existem elementos no conjunto A coma mais de uma imagem.
Representa-se:
Prof. Horácio Ribeiro
aluno
Nome
Endereço
matricula
CPF
veiculo
Marca
placa
cor
ano
0..N
Possui
pertence
Importante:
-
Na multiplicidade
0..N ou 1..N estamos representando o mínimo e o
Maximo de relacionamento de um elemento, na forma
pode se representar
3..10
min..max
assim
indica que existem elementos no conjunto a com
um mínimo de 3 correspondentes em B e no Maximo 10 correspondentes no
conjunto B.
- Pode-se ainda substituir o N por *
Assim o exemplo acima poderia ser desenhado na forma:
aluno
Nome
Endereço
matricula
CPF
veiculo
Possui
0..*
pertence
Marca
placa
cor
ano
Análise dos relacionamentos.
Quando fazemos a analise dos relacionamentos
estabelecemos duas
informações: Relacionamento do conjunto A para o conjunto B. E, do conjunto
B para o conjunta.
Assim vamos completar os exemplos anteriores:
Prof. Horácio Ribeiro
Primeira situação
aluno
veiculo
Possui
0..*
Marca
placa
cor
ano
pertence
Nome
Endereço
matricula
CPF
1
Lemos: um veiculo pertence a um aluno,
E um aluno possui 0 ou mais veículos (tem alunos que não têm veiculo e
alunos que tem mais de um)
Segunda situação
aluno
Nome
Endereço
matricula
CPF
PAI VIVO
0..1
TEM
0..*
MANTÉM
Um PAI VIVO mantem Zero ou mais alunos
Terceira situação
aluno
disciplina
cursa
0..N
tem
1..N
DATA
NASCIMENTO
cor
CPF
Lemos um aluno tem 1 ou Zero PAI VIVO, e
Nome
Endereço
matricula
CPF
NOME
Nome
ementa
carga
horaria
periodo
Prof. Horácio Ribeiro
Lemos:
Um aluno cursa
1 ou mais Disciplinas, e
Uma disciplina tem O ou mais de um aluno
Quarta situação:
aluno
Nome
Endereço
matricula
CPF
veiculo
Possui
1
Lemos: Um aluno
0..N
pertence
Marca
placa
cor
ano
Possui zero ou mais
veículos. E, Um veiculo
pertence a um aluno
De forma resumida::
Para expressar a multiplicidade entre os relacionamentos, um intervalo
indica quantos objetos estão relacionados. O intervalo pode ser de zero
para um (0..1), zero para vários (0..* ou apenas *), um para vários
(1..*), dois (2), cinco para 11 (5..11) e assim por diante. É também
possível expressar uma série de números como (1, 4, 6..12). Se não for
descrita nenhuma multiplicidade, então é considerado o padrão de um
para um (1..1 ou apenas 1).
Cliente
Possui Î
Í É possuído
Conta Corrente
Prof. Horácio Ribeiro
Exercício resolvido:
Considere o mundo real abaixo:
Um Banco tem diversas agencias identificadas por um código. È importante ter as
informações do endereço, telefone Tamanho em metros quadrados de cada agencia.
Cada agencia tem sua carteira de clientes. Não há interesse em saber se o cliente
tem ou não conta em outra agencias. Do cliente deve-se ter as informações de
nome, endereço, CPF. Passamos a ter um cliente quando uma pessoa abre uma
conta corrente. Não interessa o numero de contas que o cliente abre. Cada conta é
identificada por um número, um gerente responsável, um saldo atual e um saldo
médio.
Primeiro passo:
Analisando o Mundo real descrito, podemos ter algumas dúvidas, e para isto
devemos procurar o responsável pela formulação do problema. Em alguns casos
temos a liberdade de fazermos algumas suposições, mas que obrigatoriamente
devem ser verificadas antes de se seguir adiante.
Analisando o problema devemos estabelecer um foco para iniciar o trabalho. No
texto qual a intenção de que formulou a questão? Qual o foco da análise?
Pode-se divergir um pouco, mas esta reflexão é fundamental para o
desenvolvimento do raciocínio.
Em minha opinião, como analista, e que pode não coincidir com a sua, o texto foca
no controle do cliente ou da conta corrente.
Assim vou estabelecer o conjunto inicial para a qual representarei a classe:
cliente
Nome
Endereço
CPF
Prof. Horácio Ribeiro
Segundo passo:
Estabeleço os relacionamentos com conjuntos diretamente ligada à classe
identificada.
Neste caso foi incluir a classe conta com os seus respectivos
relacionamentos
Conta
Numero
Saldo atual
Saldo médio
Gerente
responável
cliente
Nome
Endereço
CPF
Tem
É
1
Terceiro passo:
Estabeleço os relacionamentos com conjuntos necessários para completar a
descrição ou que são necessários para o objetivo focado. No nosso caso falta o
conjunto de agencias, tendo em vista que UM banco deseja controlar a s agencias.
O conjunto de bancos é desnecessário, tendo em vista que seus dados são
inicialmente conhecidos e a aplicação esta sendo desenvolvida para ele. O cliente
é da agencia e o meu foco é o cliente, por isto vou realcionar o conjunto de
agencias com o conjunto de clientes.
Conta
agencia
Código
Endereço
Telefone
metragem
cliente
tem
1
0..*
É
Nome
Endereço
CPF
Tem
1
É
d
Numero
Saldo atual
Saldo médio
Gerente
responável
Prof. Horácio Ribeiro
Pratique voce:
Considere o mundo real abaixo:
A biblioteca da universidade tem um acervo de livros, catalogados por titulo, edição,
editora, primeiro autor. Os alunos podem pegar livros nesta biblioteca. Para isto a
biblioteca tem registrado a matricula, nome, telefone e CPF de cada aluno. Ao fazer o
empréstimo, registra-se o dia da devolução. Faça um modelo de classes que represente
a necessidade da biblioteca.
Resposta:
aluno
matricula
nome
Telefone
CPF
livro
Tem
1
0..*
é de
emprestimo
Matricula
livro
data_dev.
1
É de
0..*
Pode
ter
titulo
ediçao
primeiro autor
editora
Classes Dependentes
Existem alguns conjuntos, que no processo de modelagem, desejamos condicioná-los
a existência de outros conjuntos. São chamados de conjuntos dependentes.
A
dependência de conjuntos é uma ferramenta da modelagem. Neste caso o modelador
deseja que a identificação do conjunto dependente seja feita a partir do conjunto a. A
representação da dependência é por uma linha tracejada.
Prof. Horácio Ribeiro
empregado
Matricula
nome
endereço
cargo
familiar
1
Tem
É de
0..*
nome
parentesco
data
nascimento
data registro
O diagrama significa que o familiar deve ser identificado a partir da identificação
do empregado. Na realidade um objeto dependente só pode ser dependente
de um único objeto, por isto é desnecessário a indicação da multiplicidade 1.
Exemplo de desenvolvimento usando a dependência.
Considere o pedido abaixo:
Prof. Horácio Ribeiro
Primeiro passo: O objetivo da modelagem é o controle o pedido, portanto,
a primeira classe que é o foca da análise já esta definida:
Orcamento
Cliente
endereco
Segundo passo : precisamos colocar as intormaçoes do item, mas estes
idtens devem ser identificados a partiri do numero do orçamento (decisão
de projeto)
Orcamento
Cliente
endereco
D
1
1..N
Item_orcamento
Quantidade
Descrição
Preço_unitario
Modelar sub conjuntos:
Muitas vezes temos um conjunto, no mundo real, mas estamos interessados
em um subconjunto, ou por que se deve acrescentar alguma informação, ou
precisa-se fazer um tratamento específico destes elementos.
Considere o conjunto de inscritos em um concurso público, por exemplo, e
modelamos a seguinte classe:
candidato
número
nome
endereço
CPF
E desejamos destacar o subconjunto dos candidatos aprovados, guardando sua
média e colocação, indicamos um subconjunto pelo símbolo:
Assim a representação fica:
Prof. Horácio Ribeiro
candidato
aprovado
número
nome
endereço
CPF
número
média
colocação
Observe que ao estabelecermos o subconjunto estamos definindo novas
propriedades para os elementos do subconjunto, inclusive o nome, então lemos:
candidato aprovado, também podemos dizer que aprovado é um PAPEL do conjunto
de candidatos. A identificação do candidato no subconjunto é a mesma do conjunto.
Em Modelagem de objetos diz-se que aprovado herdou as propriedades de
candidato (matematicamente não é correto, pois o sub conjunto TEM as
propriedades do conjunto principal) mas o termo é devido a uma característica da
programação que veremos nas próximas aulas.
Podemos ter vários níveis de subconjunto.
candidato
número
nome
endereço
CPF
aprovado
número
média
colocação
contratado
número
num.contrato
datacontratação
Alguns dos candidatos aprovados foram contratados e podemos representar um
novo subconjunto a partir do conjunto de aprovados, e ele também “herda” as
propriedades de aprovado, portanto é o candidato aprovado contratado.
Podemos-se destacar quantos subconjuntos forem necessários para se fazer
a análise, assim se a empresa que esta promovendo o concurso tivesse interesse
em registrar o peso e a altura das candidatas femininas poderia representar:
Prof. Horácio Ribeiro
aprovado
candidato
contratado
número
média
colocação
número
nome
endereço
CPF
número
num.contrato
datacontratação
feminino
número
altura
peso
O diagrama representa dois sub conjuntos no conjunto principal, não
interessa para o sub conjunto de feminino se foi ou não aprovado. Ou seja
nada podemos afirmar sobre a interseção dos dois (ou mais) sub conjuntos.
A hierarquia estabelecida do conjunto principal para os sub conjuntos é
também chamada de estrutura GEN-ESP (generalização para a
especialidade). O conjunto principal também é chamado de super classe e
os conjuntos de subclasses.
Uma sub classe pode ter mais de uma superclasse ou seja podemos ter um
sub conjunto comum a dois conjuntos principais, neste caso, dizemos que
temos herança múltipla.
candidato
trabalhador
número
nome
endereço
CPF
número
nome
endereço
cargo
contratado
número
num.contrato
datacontratação
Prof. Horácio Ribeiro
O UML permite que você represente vários subconjuntos destacando por
uma linha pontilhada algumas restrições entre chaves separadas por
vírgula quando existir mais de uma:
trabalhador
número
nome
endereço
cargo
Incompleto, disjuntos
motorista
engenheiro
digitador
número
c.habilitação
data arteira
CPF
número
universidade
dataformatura
número
velocidade
editorpreferido
Foi indicada uma restrição com duas observações: que não foram representados
todos os subconjuntos (incompleto)e que podem ir sendo completados, poderia ser
completo se todos fossem representados. E que os conjuntos são disjuntos,
portanto mutuamente exclusivos, poderia ser sobreposição se o elemento pudesse
pertencera a mais de um subconjunto nesta estrutura. Se o empregado for
motorista, não é engenheiro, ou seja a interseção entre os subconjuntos definidos é
o conjunto vazio.
Prof. Horácio Ribeiro
Aprenda mais
Generalizações Completa e Incompleta: Uma restrição simbolizando que uma
generalização é completa significa que todas as subclasses já foram
especificadas, e não existe mais possibilidade de outra generalização a partir
daquele ponto. A generalização incompleta é exatamente o contrário da completa
e é assumida como padrão da linguagem.
Pessoa
{completa}
Homem
Mulher
Aprenda mais:
veiculo número potencia lugares sobreposição,incompleto
aquatico
terrestre número
número velocidade modelo anfíbio número Prof. Horácio Ribeiro
ASSOCIAÇÕES:
Outro recurso importante é a associação. Uma associação é um conjunto
criado com objetivo de ligar outros dois (ou mais) conjuntos existentes.
As classes asociadoras são representadas por linhas cheias e a classe que as
associa é ligada a esta linha cheia por uma linha pontilhada.
Toda vez que tivermos um relacionamento de multiplicidade ( 0..*) para os
dois lados do relacionamento deve-se usar a classe associativa. O modelo
de classes de objetos é determinista, isto é, devemos saber quem se
relaciona com quem, portanto
a multiplicidade 1 é obrigatória nos
relacionamentos fora da estrutura associativa.
A
B
A/B
Exemplo: Uma empresa trabalha com projetos. Todo empregado trabalha em um
projeto, cada projeto é coordenado por um órgão. O departamento de pessoal
precisa saber que dia e hora o empregado entrou e saiu de cada projeto. Faça um
modelo de classes que permita fornecer esta informação:
Primeiro passo : O modelador inciaria identificando os conjuntos existentes:
projetos
descrição
prazo
empregado
Tem
0..*
nome
matricula
salário
Prof. Horácio Ribeiro
Exercicios de revisão:
1. Considere um sistema de locação de filmes em que um cliente solicita a locação de alguns filmes
em DVD e após ter-se identificado ao funcionário e escolhido os filmes, ele os leva para casa,
sabendo dos prazos de devolução de cada filme e do valor do aluguel a ser pago.
Com relação a essa situação,
a. desenhe o diagrama de Caso de Uso correspondente à situação apresentada.
b. descreva o Caso de Uso relativamente a: atores, pré-condições, pós-condições e fluxo
principal.
c. descreva os tratamentos de exceção do Caso de Uso, considerando duas exceções: cliente
em débito (quitação do débito) e filme reservado para outro cliente (filme não pode ser
alugado ao cliente).
2.
a.
b.
c.
d.
e.
Requisitos de um sistema são freqüentemente classificados como funcionais, não-funcionais
e de domínio. Qual a definição que melhor descreve requisitos não-funcionais?
São ferramentas automatizadas de apoio ao processo de desenvolvimento de sistemas.
São requisitos que descrevem o que o sistema deve fazer, como deve reagir a determinadas
entradas e como deve comportar-se em situações particulares.
São requisitos que derivam do domínio da aplicação e que refletem características e
restrições desse domínio.
São requisitos que não estão diretamente relacionados com as funções específicas do
sistema.
São requisitos que especificam como deve ser testada uma parte do sistema, incluindo-se as
entradas, os resultados esperados e as condições sob as quais os testes devem ocorrer.
3. O Processo Unificado (RUP – rational unified process) é um moderno processo de
desenvolvimento de software constituído de quatro fases. Assinale a opção que apresenta as
quatro fases do RUP, na ordem em que elas devem ser executadas.
a.
b.
c.
d.
e.
concepção, elaboração, construção, teste
elaboração, transição, concepção, construção
elaboração, concepção, teste, transição
elaboração, concepção, transição, construção
concepção, elaboração, construção, transição