Unified Modeling Language UML



Documentos relacionados
Estudo de Caso 1: Sistema de Controle de Cinema

Unified Modeling Language UML

Engenharia de Software I

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 17 PROFª BRUNO CALEGARO

Modelagem de Sistemas Prof. Marcos Roberto e Silva

2 Diagrama de Caso de Uso

Sumário. Uma visão mais clara da UML

Engenharia de Software III

UML: Diagrama de Classes

Lógica de Programação

Engenharia de Requisitos Estudo de Caso

Diagrama de Classes. Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes.

EXERCÍCIOS SOBRE DIAGRAMAS DE CLASSES Construa Diagramas de Classes para os seguintes domínios de problemas

Documento de Definição de Requisitos

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Capítulo 22. Associações entre Classes. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Análise e Projeto Orientado a Objetos. Modelagem de Domínio

Projeto de Software Orientado a Objeto

Uma visão mais clara da UML Sumário

Orientação a Objetos com Java

ANÁLISE E PROJETO ORIENTADO A OBJETOS. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com

Documento de Análise e Projeto VideoSystem

Manual Geral do OASIS

Modelos de Sistemas Casos de Uso

3.1 Definições Uma classe é a descrição de um tipo de objeto.

MODELAGEM DE CASOS DE USO PARA UM SISTEMA DE CLÍNICA VETERINÁRIA

INF 2125 PROJETO DE SISTEMAS DE SOFTWARE Prof. Carlos J. P. de Lucena

Sumário INTRODUÇÃO... 3 INTEGRAÇÃO COM O EMPRESÁRIOERP... 3 AGILIDADE NOS PROCESSOS E APOIO AOS CONTROLES INTERNOS... 3 SAC - ATENDIMENTO...

UML Aspectos de projetos em Diagramas de classes

Especificação de Requisitos

Diagrama de Caso de Uso e Diagrama de Sequência

SUMÁRIO Acesso ao sistema... 2 Atendente... 3

Módulo SAC Atendimento ao Cliente

TOTVS Série 1 Varejo (Simples) - Módulo e-commerce

SIGECORS. Sistema de Gerenciamento de Resíduos Sólidos Industriais

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

Chamado/Requisito : TFAWUP Data da publicação : 14/06/12

Engenharia de Software

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos

MANUAL PASSO-A-PASSO DO SISTEMA ONLINE

ESTÁGIO DE DOCÊNCIA II

O Processo Unificado: Captura de requisitos

O Oficina Integrada é um sistema completo para o controle e gerenciamento de oficinas mecânicas. É o primeiro e único software que controla o fluxo

CASO DE USO. Isac Aguiar isacaguiar.com.br

Prof. Claudio Passos Apresentação cedida pela Ceça Moraes

A Linguagem de Modelagem Unificada (UML)

Rock In Rio - Lisboa

Sistema de Controle de Solicitação de Desenvolvimento

Manual Q-Acadêmico 2.0 Módulo Web - Aluno

ROTEIRO PARA TREINAMENTO DO SAGRES DIÁRIO Guia do Docente

Análise e Projeto Orientados por Objetos

MODELAGEM VISUAL DE OBJETOS COM UML DIAGRAMA DE CLASSES.

TREINAMENTO DE USUÁRIO APROVADOR/HOMOLOGADOR. SIPPES Sistema de Pagamento de Pessoal

Histórico da Revisão. Data Versão Descrição Autor

Tópicos em Engenharia de Computação

Análise e Tramitação de Projetos nos Comitês de Ética em Pesquisa

MANUAL DE ACESSO AO SITE Instruções para associados

Manual Passo a Passo

Conteúdo. 1. Introdução. 2. Levantamento de Requisitos. 3. Análise Orientada a Objetos. 4. Projeto Orientado a Objetos 5. UML. 6.

Capítulo 14. Herança a e Polimorfismo. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

UNIVERSIDADE ESTADUAL DO AMAZONAS ESPECIALIZAÇÃO EM DESENVOLVIMENTO EM SOFTWARE LIVRE CONCEITOS E PROJETOS DE BANCO DE DADOS E SQL

CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS

Modelagem. Entendimento do ambiente Permite lidar com complexidade complexidade progressiva

Assessoria Técnica de Tecnologia da Informação - ATTI. Projeto de Informatização da. Secretaria Municipal de Saúde do. Município de São Paulo

MANUAL DO ALUNO PARA NAVEGAR NO AMBIENTE VIRTUAL DE APRENDIZAGEM - AVA

Tarciane Andrade.

MANUAL DO USUÁRIO SORE Sistema Online de Reservas de Equipamento. Toledo PR. Versão Atualização 26/01/2009 Depto de TI - FASUL Página 1

Técnicas de Programação II

Modelagem de Casos de Uso (Parte 2)

UML: Diagrama de Casos de Uso, Diagrama de Classes

Diagramas de Casos de Uso

Treinamento GVcollege Módulo Acadêmico - Pedagógico

SISTEMA DE E-LEARNING. efaculdade MANUAL DO ALUNO

Sistema de de Bilhetagem Eletrônica MANUAL MÓDULO PDV

SIPESQ Sistema de Pesquisas da PUCRS

Gestão de Benefícios Inovação Recursos Humanos - Maio/2014

Especificação do 3º Trabalho

ÍNDICE. 1. Introdução O que é o Sistema Mo Porã Como acessar o Site Mo Porã Cadastro do Sistema Mo Porã...

Coleções. Conceitos e Utilização Básica. c Professores de ALPRO I 05/2012. Faculdade de Informática PUCRS

TCEnet e TCELogin Manual Técnico

Plano de Carreira Sistema de Apoio à Gestão de Planos de Carreira

Unidade Acadêmica: Faculdade de Computação FACOM Disciplina: Programação Orientada a Objetos I Professor: Fabiano Azevedo Dorça Prática 01

Reuso com Herança a e Composiçã

SISTEMA DE ADMINISTRAÇÃO DE LOCAÇÃO IMOBILIÁRIA LISTA DE ATUALIZAÇÕES NOVAS

Diagrama de Classes. Viviane Torres da Silva

Caso já seja usuário do SCAW siga as instruções a partir da página X.

Orientação a Objetos

Encapsulamento de Dados

Modelagem de Casos de Uso (Parte 1)

Receber intimações: poderão receber intimações em processos eletrônicos nos quais estejam vinculados.

Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais

Análise e Projeto Orientados por Objetos

Disciplina: Unidade III: Prof.: Período:

DOCUMENTO DE REQUISITOS

Transcrição:

Unified Modeling Language UML

Classe e Objeto Atributo Operação Associações (Delegações [SANTOS, 2003]) Dependência Simples: multiplicidade, papel, navegabilidade Com valor semântico adicional: agregação e composição Generalização/especialização Diagrama de classes

É uma descrição de um conjunto de objetos que compartilham os mesmos atributos, operações, relacionamentos e semântica É um tipo de (e dá origem a) objeto

Qualquer elemento identificado no domínio do negócio que tenha: identidade - qualquer objeto é único e diferenciado dos demais estado - valores dos atributos em determinado momento comportamento funcionalidade do objeto É a instância de uma classe.

Definem os dados da classe Possuem tipo Podem ser referências (do tipo de) a outras classes (delegação) Possuem visibilidade, muito freqüentemente privados O tipo de dado depende da linguagem de programação que será usada para implementação.

Expressam o comportamento da classe Acessam e modificam os atributos da classe Na implementação, são os métodos (similares a procedimentos e funções) Possuem definição de visibilidade (geralmente públicas) Podem retornar valor ou não (void) Podem receber parâmetros ou não (entre parênteses obrigatórios)

Serviços que a classe deve prestar (normalmente relacionados aos seus atributos) Parâmetros necessários a prestação dos serviços Retorno dos serviços prestados pela classe Saídas geradas pelos serviços da classe (não serão expressas no diagrama) Manutenção de classes persistentes (estereótipo <<entity>>)

Definida por meio de modificadores de acesso: Público (public, +) Protegido (protected, #, depende de herança) Padrão (ausência de modificador, ~, pacote) Privado (private, ) Serve para encapsular, proteger, organizar o acesso à membros de uma classe

Nome Atributos Operações

public class Lampada { private String estadodalampada = apagada ; public void acende() { estadodalampada = "acesa"; } public void apaga() { estadodalampada = "apagada"; } public void mostraestado() { if (estadodalampada.equals("acesa")) { System.out.println("Esta acesa!"); } else { System.out.println("Esta apagada!"); } } }

public class TestaLampada { public static void main(string[] args) { Lampada l1 = new Lampada(); Lampada l2 = new Lampada(); l1.mostraestado(); l1.acende(); l1.mostraestado(); l1.apaga(); l1.mostraestado(); l2.mostraestado(); l2.acende(); l2.mostraestado(); } }

Associação mais fraca entre classes Indica utilização Geralmente acontece quando: Na passagem de parâmetro a um método Na criação de um objeto (e/ou referência) dentro de um método

Relacionamento entre tipos mais genéricos e tipos mais específicos; Classe filha e a classe mãe; Relacionamento do tipo é-um ; Aceita apenas a adição de características na classe filha; nunca a exclusão; Possibilita o reuso da estrutura e da funcionalidade; Necessária para o polimorfismo.

Pessoa nome : String cursos : Vector Pessoa() adicionarcurso() obtemcursos() Aluno matricula : String Professor titulacao : String Aluno() Aluno() tostring() Professor() tostring() Professor()

public class Pessoa { private String nome; private Vector cursos; } public class Aluno extends Pessoa { private String matricula; }

Ligação estrutural entre duas classes Permite navegar de um objeto para outro Tempos de vida independentes.

Curso Professor

public class Curso{... Private Professor responsavel; public void setresponsavel(professor aresponsavel){ responsavel = aresponsavel; } public Professor getresponsavel (){ return responsavel; } }

Adiciona valor semântico (pouco) a associação, indicando que uma classe é mais importante na associação Associação do tipo parte-de Tempo de vida independente: a existência da parte não está vinculada ao tempo de vida do todo, podendo a parte compor outros todos

Curso 0..* -materias 0..* Materia A agregação apenas adiciona valor semântico ao modelo, mas não modifica a forma de implementação, que permanece como a da associação simples.

Conotação semântica mais forte que a agregação Denota forte interdependência entre as partes Tempo de vida dependente A multiplicidade do lado do todo não pode ser maior que 1, pois a parte é exclusiva de um todo

Carro P ec a

Nome Papel Navegabilidade Multiplicidade

Demonstra o objetivo da associação Deve ser uma frase com verbo É preferível usar papeis ao invés do nome do relacionamento Normalmente utilizada no modelo em fase de análise, quando ainda não existem informações suficientes para nomear os papéis

Curso Indica o responsavel Professor

Descreve a função da classe na associação Deve ser um substantivo Não deve ser usado junto com o nome de associação Há situação em que o papel designará o nome de um atributo, na implementação de uma das classes. Nesse caso, deve ser colocado no modelo.

Curso -responsavel Professor

Indica que, a partir de um objeto, é possível chegar a outro que esteja associado a ele Pode ser implementado por: Referência a objetos Arrays ou coleções de objetos Quando não especificada, assume-se a dupla navegabilidade (mais complexa) Nunca há setas nas duas extremidades da associação

Curso Professor

Indica quantos objetos de uma classe podem ser associados Pode ser qualquer número de zero até muitos (indicado por *) Valores mais comuns: 0..* - zero ou qualquer número maior 1 - obrigatoriamente um e apenas um 1..* - um (no mínimo) ou qualquer número

Curso 0..* 1 Professor

É criado para representar o conjunto das classes e suas associações É a base estrutural que dá suporte a todas as funcionalidades de um sistema Serve como modelo conceitual e lógico de dados Constitui mais uma forma, junto com diagramas de casos de uso, de comunicação bastante útil entre projetistas e clientes Identifica os objetos manipulados pelo sistema

Deve ser desenvolvido nas versões necessárias a compreensão de cada uma das fases do ciclo de vida do software (análise, projeto, implementação) É formal e pode servir para geração de código em uma linguagem de programação

Trata-se de uma representação estática: é importante para definir que classes prestarão cada uma dos serviços demandados pelo sistema

Na locadora, os funcionários são identificados por CPF, nome, endereço, telefone e salário. Já os veículos estão divididos em: popular, luxo e utilitário. Sobre os veículos deve-se saber: placa, tipo, modelo, ano, cor, chassis, quilometragem e valor do aluguel diário e semanal. Os funcionários serão responsáveis por efetuar o aluguel de um carro para um cliente e dar baixa no aluguel. Existem clientes especiais e clientes comuns, sendo que os especiais possuem uma taxa de desconto e uma quilometragem extra, definida individualmente. O cliente é identificado por RG, nome, CPF, telefone, endereço. Os endereços de funcionários e clientes devem conter: rua, número, cidade e CEP. Este deve ser validado junto à ECT.

Alugar Carro: um cliente solicita ao funcionário o aluguel do carro. O sistema verifica se o carro solicitado pelo cliente está disponível. Caso esteja, o processo de locação é concluído e o carro passa a estar indisponível. A data de aluguel deve ser usada para cálculo do valor do aluguel na momento da devolução. Dar Baixa: um cliente faz uma devolução para um funcionário e solicita nota fiscal com a quilometragem percorrida e o valor do aluguel. O funcionário dá baixa na locação e o carro passa a estar novamente disponível. O funcionário solicita ao sistema para calcular o valor a ser pago e, se for de interesse do cliente, emitir o recibo.

Cadastrar Cliente: cliente solicita ao funcionário o cadastro na locadora. O funcionário recebe os dados e efetua o cadastramento. Cadastrar Carro: funcionário cadastra o carro adquirido.

Um cliente primeiramente se dirige à Clínica onde marca uma consulta com a secretária, fornecendo suas informações pessoais e do animal que deseja tratar. Se o cliente ou o animal ainda não estiverem cadastrados no sistema ou possuam algum dado que precise ser atualizado, a secretária deverá atualizar seus cadastros. Em cada sessão de tratamento (uma sessão equivale a uma consulta), o cliente deve informar os sintomas aparentes do animal e estes devem ser registrados. Um tratamento pode ser encerrado em apenas uma consulta, quando se tratar de algo simples ou pode se arrastar por muitas sessões dependendo do diagnóstico do médico-veterinário. Durante uma sessão o veterinário pode marcar exames para o animal, a serem trazidos na sessão seguinte, O pedido dos exames, bem como seus resultados devem ser registrados no histórico de tratamentos do animal. Após cada sessão, o histórico da consulta deve ser atualizado e gera-se uma conta a receber a ser paga pelo cliente. A manutenção das consultas é responsabilidade exclusiva do médico-veterinário que a realizou. É responsabilidade da secretária manter atualizados os cadastros de clientes, animais, médicos e espécies.

O sistema aceita submissões sobre diversos temas como Engenharia de Software, Banco de Dados, Hipermídia, sendo necessário, portanto manter um cadastro de todos os temas aceitos. Um autor pode realizar muitas submissões. Uma submissão pode constituir-se em um artigo, um mini curso ou palestra. As submissões só podem ser realizadas através da Internet. Ao acessar a página de submissão o autor pode logar-se, realizar uma submissão ou verificar a situação de trabalhos porventura já submetidos, no entanto, para poder utilizar os dois últimos serviços ele deverá antes executar o primeiro. Um autor deve registrar-se no sistema antes de poder se logar. Se já estiver registrado deverá então logar-se, informando seu login e senha. Toda submissão precisa ser avaliada por uma comissão de três avaliadores, responsável por analisá-la e fornecer notas. Um avaliador pode avaliar muitas submissões. As submissões são aprovadas de acordo com as maiores notas gerais. A nota geral de uma submissão será o resultado da média de todas as notas das avaliações de cada submissão. As n melhores notas de cada tema e tipo serão consideradas aprovadas. É necessário manter-se um cadastro de todos os avaliadores do congresso.

É responsabilidade do coordenador do evento definir quais avaliadores avaliarão quais submissões. E também responsabilidade do coordenador notificar os autores sobre a aceitação ou não de suas submissões no evento. O coordenador pode emitir o relatório das avaliações sempre que quiser, no entanto, a partir do momento em que selecionar a opção notificar autores, estes serão avisados se suas submissões foram ou não aprovadas. Sendo ou não aprovada, uma submissão pode ou não receber comentários dos avaliadores, referentes a possíveis alterações necessárias antes da submissão ser publicada e disponibilizada no congresso ou informações ao autor do por que da não aprovação de seu trabalho pelo avaliador. Um autor pode consultar o estado de suas submissões, ou seja, se elas estão ainda sob avaliação, foram aprovadas ou reprovadas. Um autor pode também, se assim o desejar, verificar os possíveis comentários dos avaliadores a respeito de uma submissão específica.

Observações Complementares: O Autor pode realizar login, registrar-se, realizar submissão, verificar submissões e verificar comentários. Observe que o Autor somente poderá se auto-registrar a partir a partir de uma tentativa realizar o login e assim mesmo se ainda não estiver registrado, o que indica o uso de uma associação e extensão. Da mesma forma, a consulta a comentários só pode ser feita a partir de uma consulta a submissões. A realização das submissões e o seu acompanhamento só podem ser feitos se o autor tiver logado. O avaliador para emitir seus comentários sobre as submissões deve ter informado sua avaliação previamente.

O aluno primeiramente solicita informações ao atendente sobre quais cursos a empresa oferece. Se o aluno se interessar por algum curso, pedirá informações a respeito de quais turmas, do curso em questão, estão abertas, qual o horário em que as aulas serão ministradas, qual a data prevista para início das aulas e qual o mínimo de alunos necessários para que uma turma inicie o curso. Caso o horário de alguma turma seja compatível com os horários do aluno, este realizará a matrícula em uma turma relativa ao curso em que se interessou. Caso o aluno nunca tenha feito nenhum curso na empresa e, portanto, não esteja cadastrado, o aluno deverá ser registrado antes de realizar a matrícula.

Um cliente (pessoa física ou jurídica que paga o advogado para defendêla ou para processar outra pessoa) procura o advogado. Se o cliente ainda não estiver cadastrado, o advogado deverá registrar seus dados pessoais. Em seguida, o cliente deve fornecer informações a respeito do processo que deseja que o advogado mova contra alguém ou que o defenda de outra pessoa. Obviamente o processo precisa ser registrado e receberá diversas adições enquanto estiver em andamento. O cliente deve fornecer também informações sobre a parte contrária (pessoa física ou jurídica que está processando ou sendo processada pelo cliente), que deverá também ser registrada, caso ainda não esteja. Observe que uma mesma pessoa física ou jurídica pode ser tanto um cliente como uma parte contrária em períodos diferentes, obviamente.

Um processo pode gerar custas (despesas com xérox, viagens etc.). Cada custa deve ser armazenada de forma a ser cobrada da parte contrária caso o processo seja ganho. Este sistema deve estar integrado a um sistema de contas a pagar e receber, cada custa gera uma conta a pagar. Caso o processo seja ganho, ele gerará uma ou mais contas a receber, dependendo da negociação com a parte contrária.