Você está na página 1de 82

UML Unifield Modeling Language

UML Um enfoque prtico


Saque

<<include>>

Cliente Depsito
<<include>>

Banco Registrar movimento

rangel.dinf@prodesan.com.br

Porque modelar ?

A analogia com as engenharias;


Maquetes Modelos matemticos Storyboards na indstria cinematogrfica Modelos sociais Miniaturas de carros, avies etc.

Comunicao com terceiros; Participao dos clientes

O que um modelo ?

Modelo a simplificao da realidade; O modelo reduz a complexidade pela decomposio da realidade em elementos fceis de entender. (abstrao) Diferentes aspectos definem um sistema, portanto, necessrio vrios modelos para representar cada um destes aspectos;

Definio de modelo (Continuao)

Cada modelo mostra um abstrao bem encapsulada no sistema Um modelo pode demonstrar:

Estrutura: Organizao do sistema Comportamento: Dinmica do sistema

Um modelo expressivo atravs de uma linguagem

Linguagem de modelagem

Linguagem de Modelagem

A linguagem para definio de modelos deve ter:

Elementos do modelo Conceito e semntica fundamentais ao modelo. Notao dos elementos representao visual dos elementos do modelo Guidelines guias de como e onde usar a linguagem.

Princpios da Modelagem

A escolha de quais modelos criar influencia na forma como o problema atacado e soluo que encontrada. Todo modelo deve ser expresso em diferentes nveis de preciso. Os melhores modelos so aqueles que refletem a realidade. No existe um modelo nico. At pequenos projetos precisam de vrios modelos para serem representados.

Benefcios da Modelagem

Modelos comunicam a estrutura e o comportamento do aplicativo Modelos permitem visualizar e controlar a arquitetura do aplicativo. Modelos permitem entender melhor o aplicativo que estamos construindo, expondo oportunidades de simplificao e reusabilidade. Modelos permitem gerenciar os riscos.

Evoluo da UML

1997

Setembro: UML verso 1.1 em votao pela OMG (Object Manegement Group) Novembro: UML 1.1 adotada pela OMG. A responsabilidade pela manuteno passa a ser da OMG RTF (Revision Task Force) por Cris Kobryn

1998 1999 2001 2004

Verso Verso Verso Verso

1.2 1.3 1.4 2.0 (Abril)

Definio da OMG-UML

uma linguagem para especificar, visualizar, cosntruir e documentar sistemas atravs de modelos. no proprietria Representa uma coleo de praticas de engenharia que comprovadamente se demonstraram eficientes na modelagem de sistemas complexos...

Metas de UML

Prover aos usurios uma linguagem de modelagem visual expressiva e pronta para uso. Prover mecanismos de estensibilidade e especificao para ampliar os conceitos centrais Ser independente de linguagem de programao e processos de desenvolvimento particulares. Prover uma base formal para entendimento da linguagem de modelagem; Suportar conceitos de desenvolvimento de nvel mais alto, tais como colaboraes, estruturas, modelos e componentes. Integrar as melhores prticas.

Metas UML

(Continuao)

Os usurios UML precisam saber: Construir modelos que utilizam conceitos centrais sem utilizar mecanismos para extenso na maioria das aplicaes normais Acrescentar novos conceitos e notaes para temas no cobertos pelo ncleo Escolher entre interpretaes variantes de conceitos existentes, quando no houver um claro consenso. Especificar os conceitos, as notaes e as restries, para domnios de aplicaes particulares.

Ferramentas de Modelagem

Estudo de Casos de Uso (Use Cases) Diagramas:


Casos de uso Classes Seqncia Objetos Mquina de estados Atividade Interao Comunicao Componente, Implantao, Estrutura Composio (UML2)

Conceitos Importantes

Associao entre casos de uso:

Especializao / Generalizao

uma forma de Associao entre casos de uso na qual existe dois ou mais casos de uso com muitas caractersticas semelhantes, apresentando contudo algumas diferenas importantes entre si. Desta forma no necessrio colocar a mesma documentao para todos os Casos de Uso envolvidos porque toda a estrutura de um caso de uso generalizado herdada pelos casos de uso especializados. A Associao de Generalizao/Especializao representada por uma seta que une ao Caso de Uso Geral (para onde a seta aponta)

Especializao / Generalizao

Exemplo:
Abertura de conta

Abertura conta especial

Abertura conta poupana

Associao Incluso

A Associao de incluso costuma ser utilizada quando existe um servio, situao ou rotina comum a mais de um Caso de Uso.
Saque
<<include>>

Cliente Depsito
<<include>>

Banco Registrar movimento

Associao Extenso

Associaes de Extenso so utilizadas para descrever cenrios opcionais de um caso de uso. Os casos de uso estendidos descrevem cenrios que somente ocorrero em situaes especficas.
Encerrar conta

<<extend>>

Cliente

<<extend>>

Banco

Saque

Depsito

O que Orientao a Objeto ?

uma nova forma de pensar na hora de desenvolver sistemas... O mundo orientado a objetos... Porque no os sistemas ? Tudo em nossa volta so objetos que pertencem a determinadas classes...

De que feita a OO ?
Classes Objetos Herana e Herana mltipla Encapsulamento Sobrecarga Sobrescrita Polimorfismo

O que uma classe ?

um conjunto de propriedades (caractersticas) e mtodos (procedimentos) que caracterizam um grupo de objetos...


Exemplo:
Propriedades: raio permetro rea Mtodos: clculo de rea clculo de permetro Qual o nome da classe ?

O que um objeto ?

uma entidade que compartilha exatamente as mesmas caractersticas e procedimentos de outros de mesma classe.
Exemplos: quadrado retngulo trapzio

So todos objetos de que classe ? Que caractersticas e mtodos possuem em comum ?

Herana

a capacidade de uma classe ser estendida de uma outra. Exemplos:


Um Crculo um tipo de Figura. Um Retngulo um tipo de Figura. Um Quadrado um tipo de Retngulo. Um Quadrado um tipo de Figura ?

...e um Crculo um Quadrado ?

Como representamos Herana ?


Figura

Retngulo
Quadrado

Crculo

O que herana mltipla ?

Uma classe formada (estendida) a partir de outras duas ou mais...


Exemplo:

Rdio

Relgio

Rdio Relgio

A Herana na vida
Diagrama natural de herana
Vertebrados Mamferos Aves Gorilas Felinos Primatas Orangotangos

A Herana na vida...
Diagrama convencional de herana
Vertebrados Aves Felinos Mamferos Primatas Gorilas

Orangotangos

Encapsulamento

Possibilita o controle de visibilidade de atributos e procedimentos.


private public protected Em java temos ainda o tipo default.

Sobrecarga (Overloading)
Exemplos: Assinaturas diferentes (So sobrecarga)

void setDadosConta (String nome, long numConta); void setDadosConta (long numConta, String nome); void setDadosConta (String nome, long numConta, double valDeposito);

Assinaturas idnticas (No so sobrecarga)


double calculaSalario (float valorHora, int quantidadeHoras); float calculaSalario (float var, int quant);

Sobrescrita (Overriding)
Quadrilatero
-lado1 : float -lado2 : float -area : float -perimetro : float -diagonal : float +Quadrilatero(lado1: float, lado2: float) +getArea() : float +getPerimetro() : float +getDiagonal() : float

Retngulo
+Retangulo(lado1 : float, lado2 : float)

Quadrado
+Quadrado(lado: float) +getDiagonal() : float

Polimorfismo

Capacidade de um mtodo (ou seja, sua referncia) poder representar mtodos diferentes de acordo com o contexto...

Sobrecarga: Resolvida pelo compilador em tempo de compilao. Polimorfismo: Resolvido pela lgica do cdigo em tempo de execuo

Reteno de estado
Capacidade de um objeto reter seu estado. Isto , quando existe um objeto criado (residente na memria, instanciado), este objeto mantm suas propriedades inalteradas at que alguma ao (mensagem) realize algum tipo de alterao em suas propriedades.

Identidade de um Objeto
a propriedade pela qual cada objeto (independentemente de sua classe ou estado) pode ser identificado e tratado como uma entidade distinta de software. Os objetos podem ser da mesma classe... mas cada um tem sua identidade

Mensagens ou Estmulos

Mensagens so formas de comunicao do mundo exterior (atores) com os objetos. Os objetos podem tanto receber dados do mundo exterior (argumentos) quanto retornar para eles.

Tipos de Mensagem

Informativas
Normalmente so responsveis por inicilalizar ou alterar atributos dos objetos. So tipicamente procedimentos com prefixo set.

Exemplos:
void setMatricula (String matricula);
void setLimite (double valor);

Tipos de Mensagem

Interrogativas

So dados retornados pelos procedimentos. So tipicamente procedimentos com prefixo get. Podem retornar simplesmente atributos do objeto ou retornar algum processamento.

Exemplos:
double getSalario (); String getMatricula();

Tipos de Mensagem

Imperativas
So mensagens usadas para realizar alguma operao de entrada e sada, inicializar algum status etc.. Normalmente no possuem retorno nem argumentos.

Exemplos:
void imprimeAluno (); void enviaDadosLinha(); void clear();

Documentos Iniciais

Documento Viso

um relato resumido com os principais tpicos a que o negcio a ser automatizado deve fornecer. Normalmente faz parte do contrato de desenvolvimento. comum que este documento aborde aspectos de tecnologia. Deve ser resumido e de linguagem acessvel para leitura de pessoal de nvel gerencial, no necessariamente tcnico. O analista poder, a seu critrio, detalhar mais ou menos cada item de acordo com a sua importncia estratgica no projeto. Mas todos os itens devem ser citados.

Itens do Documento Viso


Introduo. Escopo. (Relao de mdulos) Definies de acrnimos e abreviaturas. Referncias. (Documentos, contratos etc.) Oportunidade de negcio. Descrio do pessoal envolvido. Observaes. Detalhamento dos Mdulos (Levantados nos UCs) Precedncias e prioridades. Requisitos no funcionais. (fora do escopo) Requisitos de sistemas e ambientes. Insira uma figura com disposio dos mdulos.
(Diagrama de Caso de Uso Nvel Zero).

Assinatura do Solicitante do Projeto (Cliente).

Diagrama de Caso de Uso

O Ator pode ser uma pessoa, um sistema ou mesmo uma Entidade O Ator caracterizado por realizar uma atividade. Nos diagramas representamos o ator como um boneco magro ou um retngulo com o nome do autor abaixo do esteretipo:

<< ator >> Aluno


Aluno

Atores

Exemplos de Atores:

Pessoas: Usurio, secretria, aluno, professor, administrador etc. Dispositivos: impressoras, mquina ou equipamentos etc. Hardwares: Modens, roteadores, placas de controle etc. Softwares: SGBDs, Aplicativos de controle de processo etc.

Consideraes sobre Atores

Observe que atores representam papis desempenhados quando estiverem interagindo com o sistema. O ator no representa um elemento particular, mas qualquer um que esteja realizando aquele papel naquele momento. Em um sistema em que o ator seja <<aluno>> tratar como <<aluno>> qualquer pessoa que seja ou represente o aluno. Na fase de projeto, um ator uma classe no um objeto. O ator interage com o sistema sempre atravs de mensagens.

Como identificar os Atores ?


Quem utilizar a funcionalidade principal do sistema ? Quem precisar de suporte do sistema para fazer suas tarefas dirias ? Quem necessita administrar e manter o sistema funcionando ? Quais dispositivos de hardware o sistema precisar manipular ? Com que outros sistemas o sistema precisar interagir ? Quem tem interesse nos resultados que o sistema ir produzir ?

Identificando Casos de Uso

A identificao dos casos de uso no deve ser confundida com telas do sistema. Para poder encontrar e dissecar os casos de uso, fundamental a abstrao.

Dificuldade de abstrao: Nossa natureza tende a tratar os problemas mais complicados e relevantes .

A abstrao de mos dadas com a metodologia UML de extrao de casos de uso uma ferramenta que pode ajudar a equacionar problemas de grande

Um exemplo...
Sistema de Locao de DVDs Via WEB
Locar DVD Entregar Locao

Administrar Promoes

Administrar Multas Cliente Devoluo Site

Controlar Estoques

Administrar Marketing

Fornecedor

Modelo de Caso de Uso

Procure seguir o exemplo abaixo para suas entrevistas e a formatao final do caso de uso:

1. Nome Referncia:

Verbo no infinitivo (Informar, comprar, pagar...) Do que se trata o caso de uso ? O que necessrio acontecer para dar incio ao Caso de Uso ? Quais os pr requisitos ? Procure listar os atores separados por vrgula para facilitar futuras buscas. Procure nomes simples. Evite nomes compostos como Secretaria Executiva, Diretor Geral etc. Prefira nomes curtos e o mais genrico possvel como Aluno, Gerente, Secretria, Funcionrio, Chefia, Coordenador, Professor, Operador etc.

2. Breve descritivo
3. Pr-condies:

4. Atores envolvidos

Modelo de Caso de Uso


5. Cenrio principal
Qual a atividade bsica e sem alternativas ou excees? (Verbos no presente do indicativo ou substantivos, iniciando a frase com (Registra, Compra Seleciona, Informa...) Exemplo: Cadastramento: Ao clicar no cone de cadastramento, o internauta encaminhado para a tela de cadastro onde solicitado que digite: Nome, Sobrenome, Nick Name, Data de nascimento (DD/MM/AA), sexo (implementado em radio button), CPF (sem formatao), endereo de e-mail, um login (usurio) e uma senha que ser digitada em duplicata para validao. Ao clicar no boto de confirmar, estando preenchidos todos os campos obrigatrios, o sistema salva o novo internauta no SGBD [2] envia um e-mail ao internauta confirmando o cadastro e retorna.

Modelo de Caso de Uso


6. Cenrio alternativo e/ou de excees Em que casos no acontece como descrito no Cenrio Principal ?

Exemplos:
1.1. Nick Name est em branco: Sistema preenche como o primeiro nome do internauta. 1.2. Data de aniversrio digitada invlida. Mostra caixa de mensagem para reconhecimento com OK, limpa o campo, coloca o foco. 1.3 . Internauta tem mais de 100 anos (provvel erro de digitao) ou menos que 18 (menor de idade). Mostra aviso que no possvel o cadastro e o motivo e sai. 1.4. Senha de confirmao no bate: Os campos so limpos e o internauta redigita ambas as senhas. 1.5. Qualquer dos campos em branco (que no o Nick Name): O Internauta digita o campo em branco. O foco ser colocado no primeiro campo em branco. Os campos preenchidos sero mantidos para que o internauta no necessite redigitar. 1.6. Login selecionado j existe na base do sistema. Desvia para o caso de uso UC0032

Modelo de Caso de Uso


7. Requisitos especiais Existe alguma situao que no foi contemplada no cenrio principal nem no alternativo ? Exemplo:
7.1. O tempo para apresentar as telas de ser o mnimo. A demora em retornar para o internauta pode fazer com que desista de se cadastrar no site. 7.2. As senhas digitadas no devem ser 'case sensitive'

8. Casos de uso Includos


Liste aqui os casos de uso includos por este

Exemplo:
UC0023 Login do Internauta UC0034 Trata Nmero de segurana UC0032 Trata login existente

Modelo de Caso de Uso


9. Casos de uso Estendidos
Liste aqui os casos de uso estendidos por este

10. Dados
Tipos de dados que foram encontrados durante a descrio do caso de uso. Aqui informamos: texto (com tamanho), nmero (com preciso), moeda, data (com formato), etc.

Importante: Para cada componente grfico (tela), crie pelo menos uma varivel para receber seus dados.

11. Observaes

Suas observaes caso seja necessrio. Exemplo: Rever o caso de uso UC0023 Login do Internauta O Sr. Jos ficou de enviar via e-mail at 12/04/05 o layout do arquivo de log de senhas.

Modelo de Caso de Uso


12. Pendncias Existe alguma pendncia ? Exemplo:
Layout da tela de login ainda em construo. Prazo para trmino: 04/04/05 Falta definir a tabela onde ser armazenada a palavra secreta e a forma de utilizao. Reunio marcada para definio em 10/04/05 Algoritmo de seleo randmica de figuras na base de dados ser definida at 15/04/05 Responsvel: Sr Andr..

13. Rodap
Analista responsvel ________________________________________ Entrevistado: ________________________________________ rea: ________________________________________ Data: ________________________________________ Verso: ________________________________________

Encontrando as classes...
SGBD Emitir Dirio de Classe Secretria Impressora
<<boundary>> <<control>> <<entity>>

CInterfaceImpressora

CDiarioClasse

CDisciplina

-codigoTurma: -CodigoTurma:String String -CodigoTurma: String -listaAlunos -listaAlunos : : CAluno[] CAluno -listaAlunos : CAluno

-codigoTurma: String -codigoDisciplina: String -nomeDisciplina: String

<<entity>>

CProfessor -codigo: int -nome: -codigo:String int -categoria: byte -nome: String -categoria: byte

<<entity>>

CAluno -registro: int -nome: String -registro: int -curso: -nome: char String -curso: char

Regras para encontrar classes para casos de uso

Regra 1
Definir uma classe tipo fronteira para cada ator que participe do caso de uso:

No exemplo da unidade de ensino, teremos duas classes de fronteira:

Para a secretria:

Interface grfica. (tela)

Para a impressora:

Configurao da impressora, protocolo, tipos de impressoras, portas etc.

Para SGBD

Abertura e fechamento de conexo etc.

Regras para encontrar classes para casos de uso

Regra 2

Definir pelo menos uma classe tipo controle para cada caso de uso

Cada caso de uso implica em um encadeamento de aes a serem realizadas pelo sistema. As regras do negcio a ser automatizado tero que estar definidas em alguma parte do sistema. A vantagem de centralizar as regras do negcio em um ou poucos componentes a maior facilidade de entendimento do processo e alteraes e/ou manutenes futuras.
Desta forma, pode-se criar uma classe de controle para cada caso de uso, de forma que ela contenha a descrio e comando do processo associado ao caso de uso.

Regras para encontrar classes para casos de uso

Regra 3
Definir classes de controle auxiliares.

A medida que aumenta a complexidade das classes de controle, podemos criar classes mais especializadas detalhando melhor os sub-processos.

Regras para encontrar classes para casos de uso

Regra 4
Definir uma classe de tipo entidade para cada grupo de dados Grupos de dados que juntos definem entidades abstratas ou do mundo real deveriam ser representados por classes. Sugere-se, portanto, que para cada caso faa-se uma anlise dos dados manipulados e identifique-se grupos que sero representados, cada um, por uma classe.

Esteretipos do Diagrama de Classes

Classes tipo <<entity>>

O principal papel armazenar dados que juntos possuem uma identidade. Este tipo de classe normalmente representa entidades do mundo real como aluno, professor, disciplina, curso etc. Uma classe uma entidade quando contem informaes recebidas ou geradas por meio do sistema. Normalmente possuiro muitos objetos e que estes possivelmente tero um longo perodo de vida. Isto pode ser interpretado como uma indicao que estas sero total ou parcialmente preservadas (por tempo de vida, no em banco de dados)

Esteretipos do Diagrama de Classes

Classes tipo <<persistent>>

Com este esteretipo estamos indicando que 100% das propriedades sero preservadas. Isso praticamente implica no uso de banco de dados.
<<persistent>> Conta Comum #nrConta: long #vlSaldo: double #tipo: int

Exemplo:

+abertura(saldo:double, tipo:int):long +encerramento():int +saque(valor:double):int +deposito(valor:double):double

Esteretipos do Diagrama de Classes

Classes tipo <<boundary>>

Identifica uma classe que serve de comunicao entre atores externos e o sistema propriamente dito. Identifica classes cujo papel realizar o interfaceamento com entidades externas (atores) . Este tipo de classe contm o protocolo necessrio para comunicao com atores como impressora, monitor, teclado, disco, porta serial, modem etc.

Uma classe de importao de tabelas de um sistema para outro tambm um exemplo de classe <<boundary>>.

Esteretipos do Diagrama de Classes

Classes do tipo <<control>>

Objetos <<control>> so responsveis por interpretar os eventos ocorridos sobre os objetos <<boundary>>, como os movimentos do mouse, o pressionamento de um boto e retransmit-los para objetos das classes de entidades que compem o sistema. Identifica classes cujo papel controlar a execuo de processos. Estas classes contm, normalmente, o fluxo de execuo de todo ou parte de casos de uso e comandam outras classes na execuo de procedimentos.
<<boundary>> Interface do Caixa Eletrnico
<<control>> Controlador do Caixa Eletrnico

Levantando Classes a Partir de um UC


Cadastrar Aluno Secretria SGBD

Regra 1: Uma classe para cada ator:


<<boundary>> <<boundary>>

CInterfaceSecretaria

CInterfaceSGBD

Levantando Classes a Partir de um UC

Uma classe de controle para gerenciar o cadastro como um todo (Regra 2)


CControleCadAluno
<<control>>

Trs classes (detalhamento) estendidas de CControleCadAluno (Regra 3)


<<control>> <<extend>> <<control>> <<extend>> <<control>> <<extend>>

CControleIncluiAluno

CControleAlteraAluno

CControleExcluiAluno

Levantando Classes a Partir de um UC

Uma classe de entidade para cuidar do aluno. Como o SGBD no uma entidade real, no necessrio criar uma classe para ele. (Regra 4.)

<<entity>>

CAluno

Diagrama de Classes

Representao de uma classe


NomeClasse

Forma reduzida:

Forma completa: NomeClasse


(Atributos) (Procedimentos)

Diagrama de Classes

Representao dos atributos NomeClasse


+nome: String -dataNascimento: Data #altura: inteiro /idade: inteiro

Smbolos usados: Pblico ............................ + Privado ............................ Protegido ......................... # No modificvel ................ /

Diagrama de Classes

Representando os procedimentos NomeClasse

+nome: String -dataNascimento: Data #altura: inteiro /idade: inteiro +getIdade() : Inteiro +setNome(String nome) +getNome() : String +setAltura(Inteiro altura) +getAltura() : Inteiro

Associaes de classes

Simples ou Binria:
Exemplo: Produto e Fornecedor em uma classe de ItensPedido.

Composio:
Exemplo: Motor de um avio. Um avio no um avio sem motor. Uma cadeira no uma cadeira sem os ps (Mas uma cadeira sem os braos Os braos no compem a cadeira so agregados).

Agregao:
Exemplo: Um clube (e seus scios), um colgio (e seus alunos) , um departamento de uma empresa (e seus funcionrios).

Herana:
Exemplo: Mamfero superclasse de Primata. Primata superclasse de Ser Humano

A seguir veremos cada uma em detalhe

Associaes de classes

Simples ou binria
Clientes
Locao
1 ... *

Ttulos

1
01 *

No mais que uma


Nenhuma ou uma Muitas

0..*
1*

Nenhuma ou muitas
Uma ou muitas

Composio

Principais Caractersticas das Composies:


O objeto composto no existe sem seus componentes. parte de um objeto composto no poder pertencer a mais de um objeto composto. A composio sempre tipicamente heterognea.

Planador
1 1

fuselagem

cauda

asaEesquerda

asaDireita

Fuselagem

Cauda

Asa

Fuselagem + Cauda + Asa(s), compem 100% do planador.

Exemplo de composio
Revista Cientfica
-ISSNRev : long -titRev : String -periodicidadeRev:String +registrar() +consultar(ISSNRev:long):int

Edio 1.. *
Publica -nroEdi: int -volEdi:int -datEdi: Data -tiragemEdi: int +registrar() : int +consultar(nroEdi:int, volEdi: int) : int

A classe RevistaCientfica refere-se no mnimo um objeto da classe Edio, podendo referir-se a muitos objetos desta classe, e que cada instncia de classe Edio relaciona-se nica e exclusivamente a uma instncia especfica da classe Revista Cientfica, no podendo relacionarse com nenhuma outra. O que acontece com a relao entre a classe Artigo e Edio ?

Contm 5..10 Artigo -titArt : String -pagIniArt : int +registrar() +consultar()

Agregao

Cactersticas:

O objeto agregado pode potencialmente existir sem seus objetos constituintes. (pode existir uma empresa sem
funcionrios E uma floresta sem rvores ?)

Um objeto pode ser constituinte de mais de um agregado. (uma pessoa pode trabalhar em mais de uma
empresa)

As agregaes tendem a ser homogneas. (Normalmente


so implementadas como arrays)

Agregao - Representao
Usamos um pequeno losango vazio (diamante) na extremidade da linha de associao do agregado prximo ao agregado.
RelatororioDeGerencia 0..*
{ordenado} parteDoTexto

0..*

Pargrafo

Agregao - Exemplo
Pedido -nroPedido : long -datPedido : date -datEntPedido:date 1.. * Itens Pedido -qtdItem : double -valUniItem : double

A agregao existe apenas entre a classe Pedido e a classe ItensPedidos (veja o losango no lado do Pedido). A classe Produto possui apenas uma associao binria comum com a classe itens Pedido. Note que os itens do pedido no podem existir sem que um pedido os tenha gerado.. Veja que a classe Produto no depende de Pedido nem de Itens Pedido.

1.. * Compe Produto -desPro : String -qtdPro : double -valPro : double

Um diagrama de classes...
Pessoa
Professor
1 .. * 0 .. *

Aluno
0 .. *

1 .. *

Faculdade

1 .. *

Curso
0 .. * 1 .. *

1 .. *

Disciplina

O Diagrama de Seqncia
At aqui no era relevante a ordem em que as coisas aconteciam. Este Diagrama procura determinar:

Ordem dos mtodos para serem executados Condies devem ser satisfeitas e quais

A base para o Diagrama de Seqncia o Diagrama de Caso de Uso.


Um caso de uso pode gerar um ou mais diagramas de seqncia Normalmente temos um Diagrama de Seqncia para cada processo especfico do sistema. Nem sempre um Caso de Uso gera obrigatoriamente um Diagrama de Seqncia. Nada impede que se defina um Diagrama de Seqncia exclusivo para um Caso de Uso utilizado por outros Casos de Uso atravs da associao <<include>>.

Componentes do Diagrama de Seqncia Atores Objetos Linha da Vida Foco de Controle ou Ativao Mensagens ou Estmulos
Informativas Interrogativas Imperativas Auto chamadas

Atores

So exatamente os mesmos do Diagrama de Casos de Uso Os atores so representados tambm como bonecos magros mas agora com uma barra sob ele. (Linha da vida)

Cliente

Objetos

Objetos representam instncias das classes envolvidas no processo. Os objetos so representados como retngulos contendo um texto que identifica o nome do objeto, em minsculo, e depois o nome da classe, com letras iniciais maisculas. Ambos so separados entre si por um caractere : (dois pontos). Abaixo do objeto desenhamos uma linha pontilhada que representa tambm sua linha de vida.
pessoa1:PessoaFisica

Linha da Vida

Representa o tempo em que um objeto existiu durante um processo. Alinha de vida interrompida com um X quando o objeto destrudo. Um objeto no precisa necessariamente existir quando o processo iniciado podendo ser criado a qualquer momento durante o processo. Representamos a existncia ou no do objeto por segmento mais encorpado do segmento da linha de vida.

Foco de Controle ou Ativao

So retngulos finos sobrepostos sobre a linha pontilhada, representando o tempo em que um determinado objeto est ativo, ou seja, recebeu uma mensagem e est em processamento.

pessoa1:PessoaFisica
Banco
1: Consulta cliente:ConCPF() 2: [se necessrio] Dados do Cliente 3: [se necessrio] Atualizar:Gravar() 5: Cliente atualizado

4: Validar CPF: ValCPF

Mensagens ou Estmulos
Informativas

void setMatricula (String matricula); void setLimite (double valor);

Interrogativas (ou de retorno)

double getSalario (); String getMatricula();


void imprimeAluno (); void enviaDadosLinha(); void clear(); So chamadas que um objeto envia para si mesmo. Normalmente um mtodo utilitrio privado. Um mtodo de check digit ou criptografia podem ser exemplos de auto delegao.

Imperativas

Auto chamadas (ou Auto delegaes)

Condies de Guarda (if)

Indicam que uma mensagem s poder ser enviada a um objeto se uma determinada condio for verdadeira. As condies so descritas normalmente entre colchetes na mensagem, mas podem tambm ser representadas por meio de restries. Os operadores de interao so praticamente fragmentos de cdigo (ou pseudocdigo) representados no diagrama.

Condies de Guarda (Exemplo)


a:Operador ca:Manutencao b:Maquina

DS Login

[Se incio de trabalho]


IniciarTrabalho (operador, maquina)

[Se trmino trabalho]


TerminaTrabalho(operador, maquina); Regio Crtica AutoDeteccaoProblema(); AcionaManutencao();

Um exemplo completo...
Cliente

pessoa1:PessoaFisica
Banco 2: Consulta cliente: ConsultaCPF() 3: [Se existir] Dados do Cliente 4: [Se necessario] Atualizar: Gravar()

1: Solicita Abertura de conta

5: Validar CPF: ValCPF()

7: Pedido aprovado 6: Cliente atualizado 8: Fornecer valor de depsito e senha 9: Abrir conta:Abertura()

conta1:ContaComum
10 : Registrar histrico : Gravar()

hist1:Historico
12: Nmero de conta gerada 11: Histrico registrado OK

13: Abertura de conta concluda

Você também pode gostar