Uml

Post on 06-Jun-2015

3.999 views 2 download

Transcript of Uml

UML

Msc Luiz Barboza

Interface Um abstração Descreve:

Propriedades (atributos) Comportamento (operações) Relacionamentos Semântica

Nome da classe

Atributos

Operações

Professor

nameProfessorId : UniqueId

create()save()delete()change()

UMLRepresentação de Classe

Boundary

Entity

Control

<<boundary>>

<<control>>

<<entity>>

=

=

=

Revisão

Uso do Diagrama de Classe

Modelar uma visão estática do sistema, pode ser obtido com técnicas de analise com base no: Entidades do sistema. Arquitetura desejada. Modelo da base de dados.

Estudante

+ get tuition()+ add schedule()+ get schedule()+ delete schedule()+ has pre-requisites()

Professor- name- employeeID : UniqueId- hireDate- status- discipline- maxLoad

+ submitFinalGrade()+ acceptCourseOffering()+ setMaxLoad()+ takeSabbatical()

Mecanismo de organização para agrupamento de outros elementos.

Pacote

Camada de

Negócio

Relacionamento fraco entre dois elementos

Usado quando não existe uma relação de associação permanente entre os dois elementos.

Em termos técnicos se trata tipicamente passagem de parâmetros ou variáveis locais de métodos.

Aluno NotaParc

Dependências

Associações Relacionamentos estruturais permanentes

Dependência Relacionamento ‘fraco’ temporário.

Ambas são identificadas pelo diagrama de seqüência gerado na atividade de análise.

Association

EstudanteNotaFinal

NotaParcial

Dependency

Dependências vs. Associações

Processo de Análise

Identificar Associação vs Dependência Refinamento de Associação

Composição Agregação

Atributo Primitivo x Associação Navegabilidade Multiplicidade

Agregação Tempo de vida da classe ‘parte’ independente do tempo da

classe ‘todo’

Composição Tempo de vida restrito.

Todo Parte1..* 0..*

Multiplicidade > 1

Multiplicidade = 1

1Todo Parte0..*

Composição

Associação:Agregação vs Composição

Atributo Primitivo vs Associação

Associação quando: Elemento não restrito a um tipo primitivo Tipicamente um atributo correlacionado a outros

da mesma classe. Alem da propriedade o elemento possuir um

comportamento. Ex Cliente vs Endereço.

Navegabilidade Indica o sentido da navegação

Para cada destino de navegação é preciso um atributo na classe de origem Nome do atributo determina pelo nome da extremidade destino da associação

Estudante

Curso

curso

Associação nomeada: ‘Role’ (papel)

Multiplicidade

2..4

0..1

1..*

0..*

1

*

Não especificado Apenas 1

Zero ou mais

Um ou mais Zero ou um ‘Range’ específico Vários ‘Range’

2, 4..6

Multiplicidade = 1, ou Multiplicidade = 0..1 Atributo simples

Multiplicidade > 1 É preciso utilizar alguma estrutura de dados

Implementação da Multiplicidade

0..*0..1

instructor MateriaProfessor

0..*0..1

instructor

Needs a container

Professor Materia

Estrutura de Dados Explícito

Por nota

instructorProfessor Materia

0..*0..1

Materia<<entity>>

Professor<<entity>>

CadastroaMaterias

+ new()+ add()

1

0..*

0..10..1

+instructor

Materia

0..*0..1

instructor

ListaLigada

Professor

Item

ListClasse Parametrizada

Tipo

Classe Parametrizada (Template)Generics

Classe que necessita de um tipo adicional para sua instanciação

Tipicamente Coleções ex Lista, Dicionário, Fila e Pilha

Generalização (Herança)

Define Relacionamento de ‘é-um’ Herança de atributos e métodos

Conta

balancenamenumber

Withdraw()CreateStatement()

CCorrente Poupança

GetInterest()

Superclass

Subclasses

RelacionamentoGeneralização

Leao

talk ()

Tigre

talk ()

Animal

{abstract}

talk () {abstract}

Classes Concretas e Abstratas Abstrata

Basta um método sem comportamento, abstrato Não pode ser instanciado

Concreto Caso precise redefinir o método,

indicar como ‘virtual’ (C#) Pode ser instanciado

Window

WindowWithScrollbar

Scrollbar

Esta correto?

Generalização vs Agregação

Generalização = relação ‘é-um’ Agregação = relação ‘tem-um’

Scrollbar

Window

WindowWithScrollbar11

Window

WindowWithScrollbar

Scrollbar

WindowWithScrollbar “é-uma” WindowWindowWithScrollbar “tem-uma” Scrollbar

Generalização vs Agregação

1: cadastrarCliente()

Objeto Cliente Objeto Fornecedor

Mensagem

:Boundary :Control

Escopo de atividade

Chamada localLinha de vida

1.1:validarCredito()

Numeração de seqüência demensagens

UML: Diagrama de Seqüência

UML

Msc Luiz Barboza