Você está na página 1de 16

Visodecasodeuso: Descreveosistema,deumpontodevistaexternocomoumconjuntodeinteraes entreosistemaeosagentesexternosaosistema. Estavisoecriadainicialmenteedirecionaodesenvolvimentodasoutrasvisesdo sistema. Visologicaoudeprojeto: Contemasclassesdoprojeto. Visodeimplementao: Apresentaaorganizaodasclassesdeprojeto,emtermosdemdulos,pacotes ecamadas. Visodeimplantao: Correspondeadistribuiofsicadosistemaeaconexoentreestaspartes. Visodeprocesso: Estavisoenfatizaascaractersticasdeconcorrncia(paralelismo),sincronizao edesempenhodosistema.

stema. CasodeUso Include(Incluso)=>Obrigatrio Extend(extenso) Incluso UCBConsultar Nota UCIncludo EfetuarLogin


Aluno

Consultar Frequncia

Extenso EfetuarCompra

Cliente

UML LinguagemdeModelagemUnificada Livro:Comoescrevercasodeusoefetivamente. DiagramadeCasodeUso. Diagrama Detalhamentooudescriodocasodeuso. Empresadenibus PagarCartode Credito

Cadastrar Onibus

Cadastrar Motorista

Cadastrar Passagem Funcionario Atendente

Cadatro de Viagens

Cadastrar Linhas

Cadastrar Cidade

AgendaMdica

Manter Paciente

Secretria

Marcar Consulta

Manter Plano Saude Manter Agenda

UC001 - Marcar Consulta Ator: Secretria Fluxo Principal 1 - O sistema abre a agenda do mdico para o ms corrente. 2 - A secretria seleciona a data, hora e consultrio da consulta. 3 - O sistema verifica que a data esta dentro do limite

4 - A secretria seleciona o paciente e o plano de sade e o tipo (Normal ou Reviso) e se encaixe. 5 - O sistema verifica que o limite de consulta no ms do paciente no foi atingido. 6 - O sistema verifica que o limite de encaixe do dia no foi atingido. 7 - O sistema muda a situao da agenda para ocupado no dia, hora e consultrio informado. 8 - O caso de uso encerrado. Fluxo Alternativo: Data da consulta fora do limite 1 - No passo 3 do FP o sistema verifica que a data est fora do limite de data futura. 2 - O sistema informa que a data da consulta est fora do limite de data futura. 3 - retornar para o passo 2 do FP. Fluxo Alternativo: Limite de consulta do paciente foi atingido 1 - No passo 5 do FP o sistema verifica o limite de consulta do paciente no ms. 2 - O sistema informa que o limite de consulta no ms para o paciente foi ultrapassado 3 - O sistema retorna ao passo 2 do FP. Fluxo Alternativo: Limite de encaixe por dia. 1 - No passo 6 do FP o sistema verifica se o limite de encaixe no dia. 2 - O sistema informa que o limite de encaixe foi atingido. 3 - O sistema retorna ao passo 2 do FP.

Locao de Festas

Manter Cliente

Manter temas Atendente

Calcular Valor Cobrado

Cadastrar Festa

UC001 - Cadastrar Festa Ator: Atendente Fluxo Principal 1 - A atendente informa o cliente, endereo, data, hora incio e trmino da festa. 2 - O sistema carrega os temas disponveis para a festa. 3 - A atendente seleciona o tema da festa. 4 - O sistema calcula o valor cobrado pelo aluguel. include calcular valor cobrado. 5 - O caso de uso e encerrado. Fluxo Alternativo: No h temas disponveis 1 - No passo 2 do FP, o sistema verifica que no h tema disponveis para a festa. 2 - O caso de uso encerrado. Fluxo Alternativo: O tema desejado no est disponvel 1 - No passo 3 do FP, o tema desejado pelo ator no est disponvel 2 - O caso de uso e encerrado.

N2

Diagrama de classe 1. Conceitos gerais 1.1. Representao de classe

Nomedaclasse

Atributosdaclasse

Operaesdaclasse

1.2.

Atributos Sintaxe de definio

Visibilidade/nome:Tipo[multiplicidade]=valordfault
Visibilidade: Public(+) Private(-) Protected(#) Package(~)

/ Atributo Derivado

[Multiplicidade] Pode ser omitida, neste caso 1...1

Exemplo: Private senha: String + tamanho : int Hobly: String [0..5] Nota: real = 0 / mdia: Real

Visibilidade: a visibilidade identifica por quem uma propriedade (Atributo ou operao) pode ser utilizada Public: a propriedade ser vista e usada dentro da classe na qual foi declarada em qualquer classe externa. Protected: a propriedade ser vista e usada apenas dentro da classe na qual foi declarada pelas classes descendentes. Private: a propriedade ser vista e usada apenas dentro da classe na qual foi declarada. Package: A propriedade ser vista e usada por elementos que esteja declarado dentro do mesmo pacote no qual esta inserida a classe que a declarou. E como a visibilidade publica, s que no generalizada a qualquer elemento externo, mas apenas aos elementos externos localizados no mesmo pacote.

Sintaxe operaes Visibilidade nome (lista de parmetros): tipo de retorno

Lista de parmetros Nome parmetro: tipo = valor default BOLETIMESCOLAR


N1:Real N2:Real /Media:Real

BOLETIMESCOLAR
+N1:Double +N2:Double +/Media:Real

PublicCalculamdia(Nota1:Real,Nota2:Real):Real

+SetNota1(Nota:Double=0):void +GetNota1():Double

1.2 Relacionamentos Associao: e um relacionamento que conecta duas ou mais classes demonstrando a colaborao entre as instancias das classes. E possvel associao de uma classe com ela prpria

Aluno

Disciplina

Funcionario

Temporada

Equipe

Jogador

Uma associao pode conter adornos que melhoram a compreenso do diagrama. Esses adornos so opcionais e s devem serem usados quando necessrio para no poluir visualmente o diagrama Nome da associao: e mostrado prximo a linha do relacionamento toda via no se deve coloca-lo prximo as extremidades o nome da associao pode ser acompanhado de um pequeno triangulo preenchido indicando a direo na qual o nome deve ser lido .

Exemplo:

Cursa Aluno

Disciplina

Multiplicidade: colocada nas extremidades da associao identificando o nmero de instancias de uma classe que pode se relacionar com outra

Aluno * *

Disciplina

Nome de fim de associao ou papel: colocada nas extremidades da associao, indica o papel representado pela classe, na associao. Esse nome e colocado na extremidade prximo a classe a que se refere-se. Exemplo:
Gerente 0..1 Setor

Gerente 0..1

Funcionrio
1..1 0..* Gerenciado

Departamento

Navegabilidade: uma seta pode ser colocada na extremidade de uma associao indicando que a navegao e determinada na direo para onde partiu a seta. A navegabilidade quando e omitida indica que a mesma e desconhecida ou bidirecional. Exemplo:
0..* 1..1

Funcionrio
Lota

Departamento

1.2.2 Generalizao

Pessoa

Cliente

Fornecedor

Funcionrio

3. Dependncia Relacionamento de dependncia entre duas classes indica que uma mudana na interface de uma delas pode causar mudanas na outra. O fator que leva dependncia e a troca de mensagem entre as classes. Exemplo: AgendaConsultas HorrioMedico

+Agendar()

Dependente

+Consultar()

public void agendar() { horarioMedico hm = new horarioMedico(); hm.consultar() }

4. Agregao A agregao corresponde a um caso particular de associao, utilizada para expressar um relacionamento todo parte. A agregao representa uma propriedade fraca, pois uma classe parte pode estar contida em outas agregaes. Exemplo:

Computador

Memria

DiscoRgido CPU

5. Composio A composio ou agregao por composio, e uma variao mais poderosa da agregao a diferena consiste no fato de que a classe composta e responsvel pela criao e destruio de suas partes. Entende-se, assim, que uma vez que a classe composta deixe de existir, todas as suas partes morrem juntas.

Todo

NotaFiscal

Todo

0...*

Parte

ItensdaNF

Diagrama de interao Interao corresponde a um conjunto de mensagem trocadas entre objetos, com o objetivo de alcanar um proposito. Diagrama formados por: Atores Objetos Mensagens 2 Diagramas

Sequencia Comunicao Diagrama de sequencia : Exemplo: Atualizar estoque


SequenceDiagram_1 Objeto

:Aestoque Funcionrio Abrir()

:NEstoque

:PEstoque

:NProduto

:Produto

Mensagem

Listar()

Listar() Ativao

listaproduto

listaproduto

SelecionarProduto Mensagem retorno Quantidade Alterar() Salvar() Alterar() Linha de vida

Linha de vida: A linha de vida e uma linha vertical, tracejada partindo do retngulo que representa o objeto. A linha de vida representara a vida deste objeto, dentro de um determinando perodo de tempo. Mensagens: As mensagem so enviadas de um objeto a outro por meio de setas que partem de uma linha de vida para outra. Essas setas so identificadas com o nome da operao que esta sendo chamada. As mensagem carregam a solicitao de um processamento. Ativao: Ao alcanar o outro lado, a mensagem da inicio a ativao, que corresponde ao perodo de tempo durante o qual um determinando mtodo de um objeto esta sendo executado.

Projeto Voo:
APassagem (<ObjectOrientedModel_2>) NPassagem PPassagem

ECliente 0..1 0..*

EPassagem

ELocal

0..1

0..*

0..* EVoo (<ObjectOrientedModel_2>)

0..1

Projeto Empresa de Onibus


Cidade + nomeCidade : String + uf : String + + + + IncluirCidade () AlterarCidade () ExcluirCidade () ConsultarCidade () : : : : Boolean Boolean Boolean Boolean LinhaDeViagem 1..1 0..* 1..1 0..* + duracaoDaViagem : DateTime + valorDaPassagem : Decimal + + + + IncluirLinha () AlterarLinha () ExcluirLinha () ConsultarLinha () : : : : Boolean Boolean Boolean Boolean

0..* Onibus + + + + + + + + numero modelo descricao numeroPoltronas IncluirOnibus () AlterarOnibus () ConsultarOnibus () ExcluirOnibus () : : : : int String String int : : : : Boolean Boolean Boolean Boolean 1..1 Passagem Viagens 1..1 0..* + dataDaViagem : DateTime + linhaDaViagem : String + + + + IncluirViagem () AlterarViagem () ExcluirViagem () ConsultarViagem () : : : : Boolean Boolean Boolean Boolean 1..1 0..* + + + + + + + + numeroPassagem dataVenda dataViagem numeroDaPoutrona : : : : int DateTime DateTime int : : : : Boolean Boolean Boolean Boolean

IncluirPassagem () AlterarPassagem () CancelarPassagem () ConsultarPassagem ()

0..* Motorista + nome : String + endereco : String + telefone : String + + + + IncluirMotorista () AlterarMotorista () ExcluirMotorista () ConsultarMotorista () : : : : Boolean Boolean Boolean Boolean 1..1 Permissao - Usuario : String - TipoUsuario : String

Analise de Projeto Estacionamento

Tarifa : Decimal + Valor + TipoTarifa : String + Incluir () : Boolean + ConsultarTarifa () : Decimal + AlterarTarifa () : Boolean TipoTarifa e a tarifa basica, e tarifa especial

1..*

0..* Estacionamento + dataHoraEntrada : DateTime + dataHoraSaida : DateTime + valorPagto : Decimal + RegistrarEntrada () : Boolean + RegistrarSaida () : Boolean + CalcularValor () : Decimal Automovel 1..1 1..* + placa : String + tipo : String + Incluir () : Boolean

0..1

1..1 Vagas + numero : int + status : String + Incluir () : Boolean + MudarStatus () : Boolean Tipo de veiculo: Carro ou Moto

Status livre ou ocupado

Projeto Manter Onibus


Nonibus + + + + Aonibus + + + + numero modelo descricao qtdePoltrona : : : : int String String int + + + + + ValidarCadastro (Eonibus eOnibus) CadastrarOnibus (Eonibus eOnibus) ExcluirOnibus (Eonibus eOnibus) AlterarOnibus (Eonibus eOnibus) : : : : Boolean Boolean Boolean Boolean Ponibus Incluir (Eonibus eOnibus) Alterar (Eonibus eOnibus) Excluir (int codigo) Consultar (int codigo) Consultar (String nome) : : : : : Boolean Boolean Boolean Boolean Boolean

+ MostrarOnibus () : void

Eonibus + + + + + + + + + + + + <<IndexerImplementation>> <<IndexerImplementation>> <<IndexerImplementation>> <<IndexerImplementation>> <<Indexer>> <<Indexer>> <<Indexer>> <<Indexer>> <<Setter>> <<Getter>> <<Setter>> <<Getter>> <<Setter>> <<Getter>> <<Setter>> <<Getter>> numero modelo descricao qtdePoltrona numero modelo descricao qtdePoltrona : : : : : : : : : : : : : : : : int string String int int[] string[] String[] int[]

set_Numero (int value) get_Numero () set_Modelo (string value) get_Modelo () set_Descricao (String value) get_Descricao () set_QtdePoltrona (int value) get_QtdePoltrona ()

void int void string void String void int

Você também pode gostar