diagrama de pacotes anÁlise e projeto de sistemas

35
DIAGRAMA DE PACOTES ANÁLISE E PROJETO DE SISTEMAS

Upload: internet

Post on 17-Apr-2015

125 views

Category:

Documents


9 download

TRANSCRIPT

Page 1: DIAGRAMA DE PACOTES ANÁLISE E PROJETO DE SISTEMAS

DIAGRAMA DE PACOTESANÁLISE E PROJETO DE SISTEMAS

Page 2: DIAGRAMA DE PACOTES ANÁLISE E PROJETO DE SISTEMAS

PacotesA idéia de um pacote pode ser aplicada a qualquer elemento do modelo, não somente a classes.

Usamos o termo diagrama de pacotes para um diagrama que mostra pacotes de classes e as dependências entre eles. De modo restrito, um diagrama de pacotes é simplesmente um diagrama de classes que mostra apenas pacotes e dependências.

Page 3: DIAGRAMA DE PACOTES ANÁLISE E PROJETO DE SISTEMAS

PACOTES

Existe dependência entre dois elementos se mudanças na definição de um elemento possam causar mudanças ao outro. Nas classes, as dependências existem por várias razões: uma classe manda uma mensagem para outra; uma classe tem outra como parte de seus dados; uma classe menciona uma outra como um parâmetro para uma operação. Se uma classe muda a sua interface, qualquer mensagem que ela mande pode não ser mais válida.

Page 4: DIAGRAMA DE PACOTES ANÁLISE E PROJETO DE SISTEMAS

PACOTES

Há dependência entre dois pacotes se houver qualquer dependência entre quaisquer duas classes nos pacotes. Por exemplo, veja que o pacote “Gerenciador de Conexões com Banco de Dados” é um pacote muito utilizado pelos demais, todos os outros pacotes dependem dele. Desta forma uma alteração em classes deste pacote deve ser feito com muito cuidado pois pode prejudicar as classes nos demais pacotes.

Page 5: DIAGRAMA DE PACOTES ANÁLISE E PROJETO DE SISTEMAS

PACOTES

Imagine o exemplo onde temos um pacote com classes para conectar com o banco de dados, todas as classes que estavam naquele pacote eram abstratas e nós precisamos especializar as mesmas e criar classes para fazer aquilo que nós de fato queremos fazer: conectar com oracle, postgreSQl, etc. Veja como ficaria graficamente:

Page 6: DIAGRAMA DE PACOTES ANÁLISE E PROJETO DE SISTEMAS
Page 7: DIAGRAMA DE PACOTES ANÁLISE E PROJETO DE SISTEMAS

Colaborações

•Além de conter classes, um pacote pode conter colaborações. Uma colaboração é um nome dado à interação entre duas ou mais classes. Tipicamente, isso é uma interação, como descrito no diagrama de interação.

Page 8: DIAGRAMA DE PACOTES ANÁLISE E PROJETO DE SISTEMAS

Colaborações

•Como você pode estar notando a UML é um conjunto de diagramas que deve ser escolhido de acordo com a situação que você deseja documentar ou passar a informação

Page 9: DIAGRAMA DE PACOTES ANÁLISE E PROJETO DE SISTEMAS

Dicas

Os pacotes são ferramentas vitais para projetos grandes. Utilize pacotes sempre que um diagrama de classes que compreenda todo o sistema não for mais legível numa única folha de papel tamanho A4.

Page 10: DIAGRAMA DE PACOTES ANÁLISE E PROJETO DE SISTEMAS

Multiplicidade

Indica uma faixa de cardinalidade permitida a um elemento, isto é, a quantidade de instâncias possíveis em um relacionamento. Por exemplo:

•Numa classe Pessoa com o atributo cônjuge podemos afirmar (na nossa atual legislação) que sua multiplicidade é de no mínimo zero e no máximo um cônjuge (levando em conta o cônjuge atual).

Page 11: DIAGRAMA DE PACOTES ANÁLISE E PROJETO DE SISTEMAS

Multiplicaidade

•Considerando uma classe Curso que se relacione com uma classe Aluno, podemos afirmar que para cada instância de Curso há um relacionamento com no mínimo zero e no máximo vários alunos; e para cada instância de Aluno há um relacionamento com no mínimo zero (aluno está com a matrícula trancada) e no máximo vários cursos.

Page 12: DIAGRAMA DE PACOTES ANÁLISE E PROJETO DE SISTEMAS

limite-inferior.. limite-superiorSe a multiplicidade contiver um asterisco (*), significa que temos uma faixa infinita de números inteiros não-negativos. É equivalente a 0..* (zero ou mais). As multiplicidades mais comuns são:

• 0..1 (valor opcional)• 1 ou 1..1 (exatamente um)• * ou 0..* (qualquer valor inteiro não-negativo)• 1..* (qualquer valor inteiro positivo)

Page 13: DIAGRAMA DE PACOTES ANÁLISE E PROJETO DE SISTEMAS

Exemplos de multiplicidades:"1", "*", "0..1", "1..*", "1..5", "3, 5..7, 10..12“

Algumas normas de estilo devem ser usadas para multiplicidade, como:

os intervalos devem ser mostrados em ordem crescente.

Exemplo: Adequado: 2..5, 8, 10..15Inadequado: 10..15, 2..5, 8

Page 14: DIAGRAMA DE PACOTES ANÁLISE E PROJETO DE SISTEMAS
Page 15: DIAGRAMA DE PACOTES ANÁLISE E PROJETO DE SISTEMAS

Escopo

Vamos supor o objeto Funcionário com o atributo salário. Agora vejamos a seguinte situação: na empresa Unilagos, instanciamos dois objetos a partir de uma classe Funcionário identificando-os como objetoP e objetoA, os quais representarão os funcionários Alex e Alexandre, respectivamente. Alex recebe 500,00 de salário enquanto que Alexandre recebe 2000,00. Se quisermos saber os salários desses funcionários, podemos nos referenciar da seguinte forma:

Page 16: DIAGRAMA DE PACOTES ANÁLISE E PROJETO DE SISTEMAS

Escopo

objetoP.salario e objetoA.salario

Veja que dependemos da individualidade do objeto para obtermos os salários corretos. Estamos diante do conceito de escopo de instância, que também pode ocorrer com as operações. Vamos levar em conta a operação gerarContraCheque. O resultado dessa operação será diferente para as seguintes chamadas:

Page 17: DIAGRAMA DE PACOTES ANÁLISE E PROJETO DE SISTEMAS

EscopoobjetoP. gerarContraCheque() e

objetoA.gerarContraCheque()

A diferença será dada em função dos objetos terem salários diferentes, um possui 500,00 e o outro 2000,00. O contra-cheque gerado na primeira chamada apresentará os dados funcionais do funcionário Alex, incluindo a demonstração de seus proventos e descontos. Já na segunda chamada, o contra-cheque apresentará os dados funcionais e demonstração de proventos e descontos do funcionário Alexandre.

Page 18: DIAGRAMA DE PACOTES ANÁLISE E PROJETO DE SISTEMAS

EscopoVamos agora citar um outro exemplo com uma operação chamada emitirFolhaPagamento. O resultado dessa operação é a folha de pagamento mensal contendo todos os funcionários. Desta forma não importa chamá-la a partir de um único funcionário, pois seu processamento será sempre sobre o conjunto de funcionários, independente de quem ou quantos sejam.

Funcionario.emitirFolhaPagamento()

Page 19: DIAGRAMA DE PACOTES ANÁLISE E PROJETO DE SISTEMAS

A UML determina que o escopo de classe seja representado sublinhando-se o elemento.

Page 20: DIAGRAMA DE PACOTES ANÁLISE E PROJETO DE SISTEMAS

Associação Xor (ou exclusiva)Uma restrição Xor (ou exclusiva) indica que, dentre as várias associações envolvidas nessa restrição, somente uma delas pode ocorrer por vez.

Por exemplo: suponha a classe Contrato que se relacione com a Classe Contratante. Podemos ter um contratante do tipo Pessoa Física, assim como um contratante do tipo Pessoa Jurídica, gerando duas associações:

Page 21: DIAGRAMA DE PACOTES ANÁLISE E PROJETO DE SISTEMAS

Associação Xor (ou exclusiva)•Classe Contrato com a classe Pessoa Física •Classe Contrato com a classe Pessoa Jurídica

Entretanto, não podemos permitir que ambas as associações ocorram ao mesmo tempo. Não seria possível num mesmo contrato termos um contratante que fosse ao mesmo tempo Pessoas Física e Jurídica.

Page 22: DIAGRAMA DE PACOTES ANÁLISE E PROJETO DE SISTEMAS
Page 23: DIAGRAMA DE PACOTES ANÁLISE E PROJETO DE SISTEMAS

Notas

É um símbolo gráfico contendo informação textual. É utilizado para especificar vários tipos de informações sobre os modelos, como: restrições, comentários, corpos de métodos e valores de etiquetas.

Page 24: DIAGRAMA DE PACOTES ANÁLISE E PROJETO DE SISTEMAS

Objetos de Referência e Objetos de Valor•Objetos de referência São coisas como Clientes, geralmente as classes das

linguagens. Aqui, a identidade é muito importante, porque você geralmente quer que somente um objeto de software designe um cliente no mundo real. Um objeto que faz referência a um objeto-Cliente fará isso através de uma referência ou ponteiro; todos os objetos que se referem a este Cliente vão se referir ao mesmo objeto de software. Desta forma, modificações em um Cliente ficam disponíveis para todos os usuários do Cliente.

Page 25: DIAGRAMA DE PACOTES ANÁLISE E PROJETO DE SISTEMAS

Objetos de Referência e Objetos de Valor

•Objetos de referência Se você tem duas referências para um Cliente e

quer ver se são as mesmas, você, normalmente, compara suas identidades. Cópias podem ser proibidas; se são permitidas, elas tendem a ser feitas raramente, talvez para propósitos de arquivamento ou para replicação na rede. Se cópias forem feitas, você necessita decidir como sincronizar as atualizações do objeto.

Page 26: DIAGRAMA DE PACOTES ANÁLISE E PROJETO DE SISTEMAS

Objetos de Referência e Objetos de Valor

•Objeto de ValorSão coisas como datas, ou tipos primitivos das

linguagens. Você tem, geralmente, múltiplos objetos de valor representando o mesmo objeto do mundo real. Por exemplo, é normal ter centenas de objetos que designam 01-Jul-9999. Estas são todas cópias intercambiáveis. Novas datas são freqüentemente criadas e destruídas.

Page 27: DIAGRAMA DE PACOTES ANÁLISE E PROJETO DE SISTEMAS

Objetos de Referência e Objetos de Valor

•Objeto de Valor• Se você tem duas datas e quer ver se elas são a

mesma, você não examina as suas identidades, mas sim os valores que elas armazenam. Isso significa, geralmente, que você tem que escrever um operador de teste de igualdade, que para datas fará testes no ano, mês e dia (ou qualquer outra forma de representação interna). Normalmente, cada objeto que faz referência a 01-Jul-9999 tem o seu próprio objeto data dedicado a isso, mas você também pode compartilhar datas.

Page 28: DIAGRAMA DE PACOTES ANÁLISE E PROJETO DE SISTEMAS

Objetos de Referência e Objetos de Valor

•Objeto de Valor• Objetos de valor devem ser imutáveis. Em outras

palavras, você não deve ser capaz de pegar um objeto data de 01-Jul-9999 e mudá-lo para ser 31-Jul-9999. Em vez disso, você deve criar um novo objeto 31-Jul-9999 e ligá-lo ao primeiro objeto. A razão é que se a data fosse compartilhada, você atualizaria a data de outro objeto de um modo imprevisível.

Page 29: DIAGRAMA DE PACOTES ANÁLISE E PROJETO DE SISTEMAS

Objetos de Referência e Objetos de Valor

•Objeto de Valor• A distinção entre objetos de valor e de referência

seja útil para modelos conceituais. Isso pode causar confusão com multiplicidades. Se representar uma ligação para um objeto de valor com uma associação, normalmente marcamos a multiplicidade da ponta do usuário de um dado valor como "*", a não ser que exista uma regra de unicidade, tal como um número de seqüência.

Page 30: DIAGRAMA DE PACOTES ANÁLISE E PROJETO DE SISTEMAS

VisibilidadeA visibilidade é um daqueles assuntos que é simples em princípio, mas tem complexas sutilezas. A idéia básica é que qualquer classe tem elementos públicos e elementos particulares. Os elementos públicos podem ser usados por qualquer outra classe; os elementos particulares podem ser usados somente pela classe proprietária. Entretanto, cada linguagem tem suas próprias regras. Embora muitas linguagens usem termos como public ("público"), private ("particular") e protected ("protegido"), eles têm significados diferentes em linguagens diferentes.

Page 31: DIAGRAMA DE PACOTES ANÁLISE E PROJETO DE SISTEMAS

VisibilidadeUML tenta abordar o tema sem entrar em terrível confusão. Essencialmente, dentro de UML, você pode rotular qualquer atributo ou operação com um indicador de visibilidade. Você pode usar qualquer marcador que quiser, e seu significado é dependente da linguagem. Entretanto, UML fornece quatro abreviações para visibilidade; + (público), - (privado), # (protegido) e ~ (pacote)

Page 32: DIAGRAMA DE PACOTES ANÁLISE E PROJETO DE SISTEMAS

VisibilidadeConsidere uma classe Cliente que tem uma subclasse Cliente Pessoa-Física. Considere também o objeto Martin, que é uma instância de Cliente Pessoa-Física. Martin pode usar qualquer membro público de qualquer objeto no sistema. Martin também pode usar qualquer membro particular da classe Cliente Pessoa-Física. Martin não pode usar membros particulares definidos dentro de Clientes; pode, entretanto, usar membros protegidos de Cliente e membros protegidos de Cliente Pessoa-Física.

Page 33: DIAGRAMA DE PACOTES ANÁLISE E PROJETO DE SISTEMAS

VisibilidadeAs visibilidades geralmente mudam quando você começa a trabalhar com código. Então, não fique amarrado a elas no início do projeto. Veja abaixo uma classe com a visibilidade para seus atributos:

Page 34: DIAGRAMA DE PACOTES ANÁLISE E PROJETO DE SISTEMAS

Dicas

• Diagramas de classes são a base de quase todas as metodologias OO, portanto você irá utilizá-los o tempo todo.

• O problema com diagramas de classes é que eles são muito ricos e podem ser complexos de se usar. Você tem aqui algumas dicas.

• Não tente utilizar todas as notações que você dispõe. Comece com os recursos mais simples: classes, associações, atributos, generalização e restrições.

Page 35: DIAGRAMA DE PACOTES ANÁLISE E PROJETO DE SISTEMAS

Dicas

• Ajuste a perspectiva na qual você está desenhando os modelos para o estágio do projeto,

• Não desenhe modelos para tudo; em vez disso, concentre-se nas áreas principais. É melhor ter poucos diagramas que você usa e mantém atualizados do que ter muitos modelos esquecidos e obsoletos.

• O maior perigo com diagrama de classes é que você pode ficar detido em detalhes de implementação muito facilmente. Para combater isso, concentre-se nas perspectivas conceituais e de especificação.