Escolar Documentos
Profissional Documentos
Cultura Documentos
Introduo
O modelo de casos de uso fornece uma perspectiva do sistem a partir de um ponto de vista externo. De posse da viso de casos de uso, os desenvolvedores precisam prosseguir no desenvolvimento do sistema.
A funcionalidade externa de um sistema orientado a objetos fornecida atravs de colaboraes entre objetos.
produzidos, confirmaes de requisies realizadas, etc. Internamente, os objetos colaboram uns com os outros para produzir os resultados.
Essa colaborao pode ser vista sob o aspecto dinmico e so o aspecto estrutural esttico.
Modelo de classes
O diagrama da UML utilizado para representar o aspecto esttico o diagrama de classes. O modelo de classes composto desse diagrama e da descrio textual associada. Objetivos principais deste captulo:
do modelo de casos de uso. Apresentar alguns dos elementos do diagrama de classes (outros elementos so descritos em captulos posteriores). Descrever a construo do modelo de domnio. Descrever a insero do modelo de classes no processo de desenvolvimento.
Modelo de classes
O modelo de classes evolui durante o desenvolvimento do sistema.
medida que o sistema desenvolvido, o modelo de classes incrementado com novos detalhes.
Modelo de classes
O modelo de classes de domnio representa as classes no domnio do negcio em questo. No leva em considerao restries inerentes tecnologia a ser utilizada na soluo de um problema. O modelo de classes de especificao obtido atravs da adio de detalhes ao modelo anterior conforme a soluo de software escolhida. O modelo de classes de implementao corresponde implementao das classes em alguma linguagem de programao.
Classes
Uma classe representa um grupo de objetos semelhantes. Uma classe descreve esses objetos atravs de atributos e operaes. Os atributos correspondem s informaes que um objeto armazena. As operaes correspondem s aes que um objeto sabe realizar.
10
Associaes
Para representar o fato de que objetos podem se relacionar un com os outros, utiliza-se a associao. Uma associao representa relacionamentos (ligaes)que s formados entre objetos durante a execuo do sistema.
tais associaes representam ligaes possveis entre objetos das classes envolvidas.
11
Cliente
Produto
ContaCorrente
Hspede
Copyright 2002, 2003 Eduardo Bezerra
HistricoTransaes
Quarto
12
Multiplicidades
Representam a informao dos limites inferior e superior da quantidade de objetos aos quais um outro objeto pode estar associado. Cada associao em um diagrama de classes possui duas multiplicidades, uma em cada extremo da linha de associao.
13
Multiplicidades
Nome
Apenas Um Zero ou Muitos Um ou Muitos Zero ou Um Intervalo Especfico
Copyright 2002, 2003 Eduardo Bezerra
Simbologia
1..1 (ou 1) 0..* (ou *) 1..* 0..1 li..ls
14
Exemplo (multiplicidade)
Pode haver um cliente que esteja associado a vrios pedidos. Pode haver um cliente que no esteja associado a pedido algum. Um pedido est associado a um, e somente um, cliente.
Cliente 1
Copyright 2002, 2003 Eduardo Bezerra
Pedido 0..*
15
Exemplo (multiplicidade)
Uma corrida est associada a, no mnimo, dois velocistas Uma corrida est associada a, no mximo, seis velocistas. Um velocista pode estar associado a vrias corridas.
Velocista
2..6 0..*
Corrida
16
Conectividade
A conectividade corresponde ao tipo de associao entre dua classes: muitos para muitos, um para muitos e um para um. A conectividade da associao entre duas classes depende do smbolos de multiplicidade que so utilizados na associao.
17
Conectividade X Multiplicidade
18
Exemplo (conectividade)
Um para um
Um para muito
19
Participao
Uma caracterstica de uma associao que indica a necessidade (ou no) da existncia desta associao entre objetos. A participao pode ser obrigatria ou opcional.
20
Nome da associao: fornece algum significado semntico a mesma Direo de leitura: indica como a associao deve ser lida Papel: para representar um papel especfico em uma associao.
21
Papel
Nome da associao
contratante Organizao *
Contrata
contratado Indivduo *
22
Agregao
Utilizada para representar conexes que guardam uma rela todo-parte entre si. Em uma agregao, um objeto est contido no outro, ao contrrio de uma associao. Onde se puder utilizar uma agregao, uma associao tambm poder ser utilizada.
23
Agregao
Caractersticas particulares:
B no pode ser parte de A. Agregaes propagam comportamento, no sentido de que um comportamento que se aplica a um todo automaticamente se aplica as suas partes.
24
Agregao
Sejam duas classes associadas, X e Y. Se uma das perguntas seguir for respondida com um sim, provavelmente h uma agregao onde X todo e Y parte.
25
AssociaoEsportiva *
Afiliada *
membro Equipe * *
Jogador
26
Classe associativa
uma classe que est ligada a uma associao, ao invs de estar ligada a outras classes. normalmente necessria quando duas ou mais classes esto associadas, e necessrio manter informaes sobre esta associao. Uma classe associativa pode estar ligada a associaes de qualquer tipo de conectividade.
27
* empregado
* empregador
28
Associaes n-rias
So utilizadas para representar a associao existente entre objetos de n classes. Uma associao ternria so uma caso mais comum (menos raro) de associao n-ria (n = 3). Na notao da UML, as linhas de associao se interceptam em um losango.
29
Tcnico nome
Uso
* Computador modelo
30
Associaes reflexivas
A utilizao de papis bastante importante para evitar ambigidades na leitura da associao. Uma associao reflexiva no indica que um objeto se associ com ele prprio.
31
Superviso
supervisor
1 *
Empregado supervisionado
32
Superviso
Emprego salrio dataContratao Pessoa nome telefone endereo
supervisor
* empregador Empresa razoSocial endereo
1 *
* empregado
Empregado
supervisiona
33
35
Identificando classes
Um sistema de software orientado a objetos composto de objetos em colaborao para realizar as tarefas deste sistema. Por outro lado, todo objeto pertence a uma classe. Portanto, quando se fala na identificao das classes, o objetivo na verdade saber quais objetos iro compor o sistema.
36
Identificando classes
De uma forma geral, a identificao de classes se divide em duas atividades.
Primeiramente, classes candidatas so identificadas. Depois disso, so aplicados alguns princpios para eliminar classes
candidatas desnecessrias.
Identificar possveis classes para um sistema no complicado; o difcil eliminar deste conjunto o que no necessrio.
37
como a classe faz para cumprir com suas responsabilidades deve ser abstrado.
O esforo recai sobre a identificao das responsabilidades que cada classe deve ter. O mtodo dirigido a responsabilidades enfatiza o encapsulamento da estrutura e do comportamento dos objetos..
38
Responsabilidades e colaboradores
Em sistemas OO, objetos encapsulam tanto dados quanto comportamento. O comportamento de um objeto definido de tal forma que ele possa cumprir com suas responsabilidades. Uma responsabilidade uma obrigao que um objeto tem para com o sistema no qual ele est inserido.
Atravs delas, um objeto colabora (ajuda) com outros para que os objetivos do
39
Responsabilidades e colaboradores
Na prtica, uma responsabilidade alguma coisa que um objeto conhec ou faz. (sozinho ou no).
Um objeto Cliente conhece seu nome, seu endereo, seu telefone, etc. Um objeto Pedido conhece sua data de realizao e sabe fazer o clculo do seu
total.
Se um objeto tem uma responsabilidade com a qual no pode cumprir sozinho, ele deve requisitar colaboraes de outros objetos.
40
Responsabilidades e colaboradores
Um exemplo: quando a impresso de uma fatura requisitad em um sistema de vendas, vrios objetos precisam colaborar:
total um objeto Cliente fornece seu nome cada ItemPedido informa a quantidade correspondente e o valor de seu subtotal os objetos Produto tambm colaboraram fornecendo seu nome e preo unitrio.
41
Responsabilidades e colaboradores
Objetos possuem realizadas por
Responsabilidades
O que o objeto conhece + O que o objeto faz
Colaboradores
O padro de cooperao (comunicao) entre objetos
precisam de
42
Categorias de responsabilidades
Costuma-se categorizar os objetos de um sistema de acordo com o tipo de responsabilidade a ele atribuda.
Esta categorizao foi proposta por Ivar Jacobson (Jacobson et al, 1992) em uma tcnica denominada Anlise de Robustez.
43
Objetos de Entidade
Um objeto de entidade um repositrio para alguma informao manipulada pelo sistema. Esses objetos representam conceitos do domnio do negcio. Normalmente esses objetos armazenam informaes persistentes. H vrias instncias de uma mesma classe de entidade coexistindo no sistema.
44
Objetos de Entidade
outros objetos.
Objetos de entidade normalmente participam de vrios casos de uso e tm um ciclo de vida longo.
Um objeto Pedido pode participar dos casos de uso Realizar Pedido e Atualizar
Estoque. Este objeto pode existir por diversos anos ou mesmo tanto quanto o prpri sistema.
45
Objetos de Entidade
de entidade associados atravs de agregaes. Criar e destruir objetos parte (considerando que o objeto de entidade seja um objeto todo de uma agregao).
46
Objetos de Fronteira
Esses objetos traduzem os eventos gerados por um ator em eventos relevantes ao sistema. Tambm so responsveis por apresentar os resultados de uma intera dos objetos em algo inteligvel pelo ator. Um objeto de fronteira existe para que o sistema se comunique com o mundo exterior. Por conseqncia, estes objetos so altamente dependentes do ambiente
47
Objetos de Fronteira
Classes de fronteira realizam a comunicao do sistema com atores, sejam eles outros sistemas, equipamentos ou seres humanos. H trs tipos principais de classes de fronteira:
as que se comunicam com o usurio (atores humanos), as que se comunicam com outros sistemas as que se comunicam com dispositivos atrelados ao sistema.
48
Objetos de Fronteira
49
Objetos de Fronteira
Responsabilidades de conhecer de classes de fronteira para interao humana representam informao manipulada atravs da interface com o usurio.
A construo de prottipos pode ajudar a identificar essas
responsabilidades.
Responsabilidades de conhecer para classes de fronteira que realizam comunicao com outros sistemas representam propriedades de uma interface de comunicao.
50
Objetos de Controle
So a ponte de comunicao entre objetos de fronteira e objetos de entidade. Responsveis por controlar a lgica de execuo correspondente a um caso de uso. Decidem o que o sistema deve fazer quando um evento externo relevan ocorre.
Eles realizam o controle do processamento Agem como gerentes (coordenadores, controladores) dos outros objetos para a
51
Objetos de Controle
So bastante acoplados lgica da aplicao. Traduzem eventos externos em operaes que devem ser realizadas pelos demais objetos. Ao contrrio dos objetos de entidade e de fronteira, objetos d controle so tipicamente ativos
consultam informaes e requisitam servios de outros objetos.
52
Objetos de Controle
sistema (gerados por objetos de fronteira). Coordenar a realizao de um caso de uso atravs do envio de mensagens a objetos de fronteira e objetos de entidade. Assegurar que as regras do negcio (Seo 4.5.1) esto sendo seguidas corretamente. Coordenar a criao de associaes entre objetos de entidade.
53
Objetos de Controle
Responsabilidades de conhecer esto associadas manter valores acumulados, temporrios ou derivados durante a realizao de um caso de uso. Podem tambm ter o objetivo de manter o estado da realizao do caso de uso. Tm vida curta: normalmente existem somente durante a realizao de um caso de uso.
54
Diviso de responsabilidades
A categorizao de responsabilidades implica em que cada objeto especialista em realizar um de trs tipos de tarefa:
se comunicar com atores (fronteira) manter as informaes do sistema (entidade) coordenar a realizao de um caso de uso (controle).
A importncia dessa categorizao est relacionada capacidade de adaptao do sistema a eventuais mudanas
55
Diviso de responsabilidades
Se cada objeto tem funes especficas dentro do sistema, eventuais mudanas no sistema podem ser:
1.menos complexas 2.mais localizadas.
Uma eventual modificao em uma parte do sistema tem menos possibilidades de resultar em mudanas em outras partes.
56
Diviso de responsabilidades
Tipo de mudana Onde mudar
Mudanas em relao interface grfica, ou em relao comunicao com outros sistemas. Mudanas nas informaes manipuladas pelo do sistema Mudanas em funcionalidades complexas (lgica do negcio)
Copyright 2002, 2003 Eduardo Bezerra
Fronteira
Entidade
Controle
57
Diviso de responsabilidades
Exemplo: vantagem de separao de responsabilidades em um sistema para uma loja de aluguel de carros.
utiliz-lo pela Internet, a lgica da aplicao no precisaria de modificaes.
Se o sistema tiver que ser atualizado para que seus usurios possam
Considerando a lgica para calcular o valor total das locaes feitas por um clien
se esta lgica estiver encapsulada em uma classe de controle, somente esta classe precisaria de modificao.
58
Diviso de responsabilidades
A construo de um sistema de software que faa separao das responsabilidades de apresentao (fronteira), de lgica d aplicao (controle) e de manuteno dos dados (entidade):
de software semelhantes. ajuda no desacoplamento entre elementos do sistema
59
Diviso de responsabilidades
entidade
fronteira
controle
entidade
entidade
60
61
Sinnimos so removidos. Vantagem: abordagem bastante simples. Desvantagem: depende de como os casos de uso foram escritos.
bastante numerosas.
62
Para contornar os problemas na identificao de classes atravs da anlise de casos de uso, uma soluo aplicar uma estratgia em dois passos.
1.Faz-se a anlise dos casos de uso para identificar as classes
candidatas. 2.Depois disso, aplica-se uma outra tcnica para validar o que foi descoberto e para identificar novas classes: a modelagem CRC.
63
Associar responsabilidades com base na especialidade da classe. Distribuir a inteligncia do sistema Agrupar as responsabilidades conceitualmente relacionadas Evitar responsabilidades redundantes
64
65
Uma operao pode ser vista como uma contribuio da classe para
uma tarefa mais complexa representada por um caso de uso. Uma definio mais completa das operaes de uma classe s pode ser feita aps a construo dos diagramas de interao.
66
O fato de uma classe possuir colaboradores indica que deve existir relacionamentos entre estes ltimos e a classe.
Isto porque um objeto precisa conhecer o outro para poder lhe fazer requisies. Portanto, para criar associaes, verifique os colaboradores de uma classe.
67
Surgem a partir de responsabilidades de conhecer que o modelador no conseguiu atribuir a alguma classe.
(mais raramente, de responsabilidades de fazer)
Inadequado
Adequado
Pessoa cargaHorria
68
69
A construo de um nico diagrama de classes para todo o sistema pode resultar em um diagrama bastante complexo. Um alternativa cri uma viso de classes participantes (VCP) para cada caso de uso. Em uma VCP, so exibidos os objetos que participam de um caso de uso. As VCPs podem ser reunidas para formar um nico diagrama de classes para o sistema como um todo.
70
O modelador pode optar por esconder as classes de fronteira ou at mesmo as classes de controle.
Uma ferramenta CASE que d suporte a essa operao seria de
71
72
Em um desenvolvimento dirigido a casos de uso, aps a descrio dos casos de uso, possvel iniciar a identificao de classes. As classes identificadas so refinadas para retirar inconsistncias e redundncias. As classes so documentadas e o diagrama de classes inicia construdo, resultando no modelo de classes de domnio.
73
74
Modelo de Classes
75
Diagrama de objetos
76
Diagrama de objetos
Alm do diagrama de classes, A UML define um segundo tipo de diagrama estrutural, o diagrama de objetos. Pode ser visto com uma instncia de diagramas de classes Representa uma fotografia do sistema em um certo momento.
77
Formato
Exemplo
78
item1 : ItemPedido quantidade = 6 Pedido1 : Pedido ItemPedido Produto Pedido data = 13/09/2002 hora = 10:00am
79
Rafaela : Empregado
Lucas : Empregado
80
Diagrama de objetos
Alm do diagrama de classes, A UML define um segundo tipo de diagrama estrutural, o diagrama de objetos. Pode ser visto com uma instncia de diagramas de classes Representa uma fotografia do sistema em um certo momento.
81