Você está na página 1de 55

ANLISE DE SISTEMAS

UML
por Antnio Maurcio Pitangueira
2011

Modelagem de Classes de Anlise


O engenheiro de software amador est sempre procura da mgica, de algum mtodo sensacional ou ferramenta cuja aplicao promete tornar trivial o desenvolvimento de software. uma caracterstica do engenheiro de software profissional saber que tal panacia no existe -Grady Booch

Introduo

Na prtica o diagrama de classes bem mais utilizado que o diagrama de objetos. Tanto que o modelo de objetos tambm conhecido como modelo de classes. Esse modelo evolui durante o desenvolvimento do SSOO. medida que o SSOO desenvolvido, o modelo de objetos incrementado com novos detalhes. H trs nveis sucessivos de detalhamento: Anlise Especificao (Projeto) Implementao.

Objetivo da Modelagem de Classes

O objetivo da modelagem de classes de anlise prover respostas para as seguintes perguntas: Por definio um sistema OO composto de objetos...em um nvel alto de abstrao, que objetos constituem o sistema em questo? Quais so as classes candidatas? Como as classes do sistema esto relacionadas entre si? Quais so as responsabilidades de cada classe?

Modelo de Classes de Anlise

Representa termos do domnio do negcio.

idias, coisas, e conceitos no mundo real.

Objetivo: descrever o problema representado pelo sistema a ser desenvolvido, sem considerar caractersticas da soluo a ser utilizada. um dicionrio visual de conceitos e informaes relevantes ao sistema sendo desenvolvido. Duas etapas:

modelo conceitual (modelo de domnio). modelo da aplicao.

Elementos de notao do diagrama de classes normalmente usados na construo do modelo de anlise:

classes e atributos; associaes, composies e agregaes (com seus adornos); classes de associao; generalizaes (herana).

Modelo de Anlise: Foco no Problema

O modelo de anlise no representa detalhes da soluo do problema. Embora este sirva de ponto de partida para uma posterior definio das classes de software (especificao).

Venda Pagamento quantia

Anlise

Pago-por

data hora

Projeto (Especificao) Venda Pagamento -quantia: Currency +getValor(): Currency 1 Pago-por 1

-data:Date -hora:Time
+getTotal():Currency
6

Diagrama de classes
7

Diagrama de Classe

O mais importante diagrama de UML. Representao das abstraes importantes do sistema (classes) e de suas relaes.

Define a arquitetura esttica do sistema.

(estrutura)

Serve como base para construo de outros diagramas.


8

Classes
Uma classe descreve esses objetos atravs de atributos e operaes.
Atributos correspondem s informaes que um objeto armazena. Operaes correspondem s aes que um objeto sabe realizar.

Notao na UML: caixa com no mximo trs compartimentos exibidos.


Detalhamento utilizado depende do estgio de desenvolvimento e do nvel de abstrao desejado.

Exemplo (classe ContaBancria)

10

Diagrama de Classe

Persistncia: preservar de maneira permanente os objetos de uma classe, ou seja, a classe precisa ser persistente Semelhana com entidades definidas com tabelas em banco de dados

11

Diagrama de Classe

Elementos do modelo de classes:


Classes Relacionamentos

Associao relao de utilizao


Associao Unria ou reflexiva Associao Binria Associao Ternria Agregao Composio

Generalizao relao de herana Dependncia Realizao Classe Associativa Restrio


12

Exemplo de Classe
NotaFical -codigo -naturezaOperacao -condicaoPagamento

Visual Paradigm for UML Standard Edition(Universidade Tecnologica Federal do P

Nome da classe

Visibilidade

-tipoPrestServico -dataEmissao -valor +registrar() +recuperar() +cancelar()

Atributos

Operaes/Mtodo s

13

Visibilidades de Mtodos e Atributos

As seguintes visibilidades possveis em uma operao:

so

Pblica (+): a operao visvel para elementos de modelo Protegida (#): a operao visvel somente para a prpria classe e suas subclasses ou para amigos da classe (dependente de linguagem) Privada (-): a operao visvel somente para a prpria classe e para os amigos da classe
14

Identificao das Classes

A especificao do problema refere normalmente objetos concretos, mas deve-se abstrair a realidade e achar descries comuns a vrios objetos semelhantes Escolher cuidadosamente os nomes

15

Identificando classes

Identificao de entidades; Identificao de atributos;

Identificao de operaes e
Identificao de relacionamento.

16

Identificao de entidades (classe)

Classes que permitam representar no computacional elementos do mundo real

mundo

Procurar na especificao de casos de uso por conceitos que representem objetos do domnio de aplicao a ser desenvolvido

17

Identificao de atributos

Propriedades que caracterizam um objeto Atributos identificados devem estar alinhados com as necessidades do usurio para o problema Nomes significativos para os atributos Se necessrio identificar a visibilidade dos atributos

- privados + pblicos # protegido


18

Identificao de operaes

Tambm chamadas de mtodos ou servios Operaes so aes que o objeto capaz de efetuar Identificar aes que o objeto de uma classe responsvel pode desempenhar dentro do escopo do sistema que ser desenvolvido Normalmente operaes so pblicas, permitindo sua utilizao por outros objetos
19

Relaes: Associaes

Associao: uma relao que permite especificar que objetos de uma dada classe se relacionam com objetos de outra classe. As associaes podem ter um nome. O nome pode ter uma seta associada, indicando a direo em que o nome deve ser lido. Uma associao representa relacionamentos (ligaes) que so formados entre objetos durante a execuo do sistema. Note que, embora as associaes sejam representadas entre classes do diagrama, tais associaes representam ligaes possveis entre os objetos das classes envolvidas.
20

Notao para Associaes

Na UML associaes so representadas por uma linha que liga as classes cujos objetos se relacionam. Exemplos:

21

Multiplicidades

Representam a informao dos limites inferior e superior da quantidade de objetos aos quais outro objeto pode se associar. Cada associao em um diagrama de classes possui duas multiplicidades, uma em cada extremo da linha de associao.
Simbologia na UML
1..1 (ou 1) 0..* (ou *) 1..* 0..1 li..ls
22

Nome
Apenas Um Zero ou Muitos Um ou Muitos Zero ou Um Intervalo Especfico

Exemplos (multiplicidade)

Exemplo

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.

Exemplo

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.
23

Conectividade

A conectividade corresponde ao tipo de associao entre duas classes: muitos para muitos, um para muitos e um para um. A conectividade da associao entre duas classes depende dos smbolos de multiplicidade que so utilizados na associao.
Em um extremo No outro extremo

Conectividade

Um para um
Um para muitos

0..1 1
0..1 1

0..1 1
* 1..* 0..*

Muitos para muitos

* 1..* 0..*

* 1..* 0..*
24

Acessrios para Associaes

Para melhor esclarecer o significado de uma associao no diagrama de classes, a UML define trs recursos de notao:

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.

25

Associao Unria/Reflexiva/Autoassociao

Ocorre quando existe um relacionamento de uma classe para consigo mesma.


Visual Paradigm for UML Standard Edition(Universidade Tecnologica Federal do Parana - Campus Cornelio Procopio)

Funcionrio
-Codigo : long -Nome : char[30] -Codigo Chefe : long +ConsFucinario(Codigo : long, parameter) : int +ConsChefe(Codigo Chefe : long) : int 0..*

Chefia

26

Associao Binria

Representa uma relao estrutural entre duas classes indicando que estas se comunicam atravs de troca de mensagem.
0..* Cliente

Visual Paradigm for UML Standard Edition(Universidade Tecnologica Federal do Parana - Visual Paradigm for UML Standard Edition(Universidade Tecnologica Federal do Para Campus Cornelio Procopio)

Conta Bancria

Scio

Possui

Dependente

0..*

0..*

Multiplicidade

Navegabilidade da Associao

27

Associao Ternria ou N-ria


Conectam mais de duas classes. teis para associaes complexas, no entanto deve-se evitar utiliz-las, pois sua leitura , por vezes, difcil de se interpretar. Professor Turma
Visual Paradigm for UML Standard Edition(Universidade Tecnologica Federal do Parana - Campus Cornelio Procopio)

1..*

1..*

Leciona

Possui

Utiliza

1..* Salas de Aula

28

Associao de Agregao

Tipo especial de associao. Demonstra que as informaes de um objeto (objeto-todo) precisam ser complementadas pelas informaes contidas em um ou mais objetos de outra classe (objeto-parte). Um objeto-parte no pode ser destrudo por um objeto diferente do objeto-todo
Visual Paradigm for UML Standard Edition(Universidade Tecnologica Federal do Parana - Campus Cornelio Procopio)

Agencia

ContaBancaria

0..*

29

Agregaes e Composies

Algumas particularidades das agregaes/composies:

so assimtricas, no sentido de que, se um objeto A parte de um objeto B, o objeto B no pode ser parte do objeto A. propagam comportamento, no sentido de que um comportamento que se aplica a um todo automaticamente se aplica s suas partes. as partes so normalmente criadas e destrudas pelo todo. Na classe do objeto todo, so definidas operaes para adicionar e remover as partes.

Se uma das perguntas a seguir for respondida com um sim, provavelmente h uma agregao onde X todo e Y parte.

X tem um ou mais Y? Y parte de X?

30

Exemplos

31

Associao de Composio

Uma variao da agregao Representa um vnculo mais forte entre objetos-todo e os objetos-parte. O objeto-parte exclusivo do objetotodo. Um objeto-parte no pode associarse a mais de um objeto-todo Movimentacao Ex: ContaBancaria 1
0..*

Visual Paradigm for UML Standard Edition(Universidade Tecnologica Federal do Parana - Campus Cornelio Procopio)

32

Exemplos

33

Agregaes e Composies

As diferenas entre a agregao e composio no so bem definidas. A seguir, as diferenas mais marcantes entre elas. Destruio de objetos

Na agregao, a destruio de um objeto todo no implica necessariamente na destruio do objeto parte. Na composio, os objetos parte pertencem a um nico todo.

Pertinncia

Por essa razo, a composio tambm denominada agregao no-compartilhada.

Em uma agregao, pode ser que um mesmo objeto participe como componente de vrios outros objetos.

Por essa razo, a agregao tambm denominada agregao compartilhada.


34

Generalizaes e Especializaes

O modelador tambm pode representar relacionamentos entre classes.


Esse o chamado relacionamento de herana.


Esses denotam relaes de generalidade ou especificidade entre as classes envolvidas. Exemplo: o conceito mamfero mais genrico que o conceito ser humano. Exemplo: o conceito carro mais especfico que o conceito veculo. relacionamento de generalizao/especializao relacionamento de gen/espec

35

Generalizaes e Especializaes

Terminologia

subclasse X superclasse. supertipo X subtipo. classe base X classe herdeira. classe de especializao X classe de generalizao. ancestral e descendente (herana em vrios nveis)

Notao definida pela UML

36

Generalizao

Seu objetivo identificar classe-me, chamadas gerais e classes filhas, chamadas especializadas. Identificar similaridades de estrutura/ comportamento entre vrias classes. ContaBancaria Reaproveitamento de cdigo (mtodos e atributos).
Visual Paradigm for UML Standard Edition(Universidade Tecnologica Federal do Parana - Campus Cornelio Procopio)

ContaCorrente

ContaPoupanca

37

Restrio

Informaes extras que definem condies a serem validadas durante a implementao dos relacionamentos entre classes. Representadas por textos limitados por chaves. Pose-se utilizar de notas para definir restries.

38

Restries sobre gen/espec


Veculo
FiguraGeomtrica

{incompleta} Caminho Trator


Elipse

{incompleta, disjunta} Quadrado Crculo

Indivduo

Atleta

{completa, disjunta} Homem Mulher

{incompleta, sobreposta} Nadador Corredor

39

Semntica da Herana

Subclasses herdam as caractersticas de sua superclasse

como se as caractersticas da superclasse estivessem definidas tambm nas suas subclasses Alm disso, essa herana transitiva e anti-simtrica

Note a diferena semntica entre a herana e a associao.

A primeira trata de um relacionamento entre classes, enquanto que a segunda representa relacionamentos entre instncias de classes. Na associao, objetos especficos de uma classe se associam entre si ou com objetos especficos de outras classes. Exemplo:

Herana: Gerentes so tipos especiais de funcionrios. 40 Associao: Gerentes chefiam departamentos.

Herana de Associaes

No somente atributos e operaes, mas tambm associaes so herdadas pelas subclasses. No exemplo abaixo, cada subclasse est associada a Pedido, por herana.

41

Propriedades da Herana

Transitividade: uma classe em uma hierarquia herda propriedades e relacionamentos de todos os seus ancestrais.

Ou seja, a herana pode ser aplicada em vrios nveis, dando origem a hierarquia de generalizao. uma classe que herda propriedades de uma outra classe pode ela prpria servir como superclasse.

Assimetria: dadas duas classes A e B, se A for uma generalizao de B, ento B no pode ser uma generalizao de A.

Ou seja, no pode haver ciclos em uma hierarquia de generalizao.

42

Propriedades da Herana

43

Dependncia

No costuma ser encontrado nos diagramas de classes. Identifica um certo grau de dependncia de uma classe em relao a outra. A mudana em uma classe implica em outro.

44

Realizao

Caso especial que mistura caractersticas dos relacionamentos de generalizao e dependncia Utilizada para identificar classes responsveis por executar funes para as classes que representam interfaces. Herda o comportamento e no sua estrutura.

45

Classe Associativa

Representa situaes onde determinados atributos no podem ser colocados em nenhuma das classes participantes de uma associao, por conter informaes exclusivas ligao dos objetos das duas classes.

46

Como encontrar relaes entre as classes identificadas

Generalizao: verifica-se se h alguma relao um tipo de entre as classes identificadas. Associao: verifica-se h a necessidade de um objeto de uma classe utilizar servios disponibilizados por um objeto de outra classe ou, simplesmente, conhecer o outro objeto. Auto-Associao: verifica-se se existe alguma classe que necessita ser relacionada47a ela mesma.

Como encontrar relaes entre as classes identificadas (continuao)


Agregao: verifica-se se h alguma relao parte de entre as classes. Composio: verifica-se se h alguma relao parte de forte entre as classes. Navegao: verifica-se se existem navegaes desnecessrias entre classes. Classe associativa: verifica-se se existem informaes que precisam estar vinculadas associao de dois objetos (mas 48 no a um deles em

Esteretipos

Esteretipos so maneiras de destacar ou diferenciar um componente ou relacionamento de outros componentes ou relacionamentos iguais, atribuindo-lhe caractersticas especiais ou modificando-as de alguma forma (GUEDES, 2005)

Esteritipo de Rtulo

Esteritipo de Grfico
49

Esteretipos <<entity>>

Tornar explcito que uma classe uma entidade, ou seja, a classe contm informaes recebidas ou geradas por meio do sistema Classes com esteretipo <<entity>> tambm fornecem a informao de normalmente tero muitos objetos e que tero um perodo de vida longo

Significa tambm que estes objetos das classe precisem ser preservados 50 (persistentes)

Esteretipos <<boundary>>

Conhecido com esteretipo de fronteira Importante quando preciso definir a existncia de uma interface para o sistema Identifica que uma classe serve de comunicao entre atores externos e o sistema Muitas vezes uma classe <<boundary>> associada a prpria interface do sistema Pode haver <<control>> a interao
51

com

uma

classe

Esteritipos <<control>>

Identifica classes que servem de intermdio entre as classes <<boundary>> e outras classes do sistema.

Interpretam os eventos ocorridos sobre os objetos <<boundary>>, como movimentos do mouse ou pressionamento de um boto e retransmiti-los para os objetos das classes de entidades que 52 compem o sistema

Exemplo

53