Exemplo de Modelagem Orientada a Objetos



Documentos relacionados
Programação Orientada a Objeto

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

Ter o controle das pastas (Prontuários) armazenadas no "SAME", utilizando-se do recurso do "Volume".

Utilizando os Diagramas da UML (Linguagem Unificada de Modelagem) para desenvolver aplicação em JSF

Simulado Banco de Dados I Bimestre 1 Capítulo 1 Projeto Lógico de Banco de Dados

MODELAGEM VISUAL DE OBJETOS COM UML DIAGRAMA DE CLASSES.

Análise Orientada a Objetos Processo Unificado RUP - Rational Unified Process

2 Diagrama de Caso de Uso

Resolução da lista de exercícios de casos de uso

UML: Diagrama de Casos de Uso, Diagrama de Classes

Curso: Engenharia de Software com Ênfase em Padrões de Software (UECE Universidade Estadual do Ceará) RUP

Modelagem Dinâmica com UML

A Linguagem de Modelagem Unificada (UML)

Fundamentos de Teste de Software

Diagramas de Casos de Uso

Especificação do Trabalho

Micro Mídia Informática Fevereiro/2009

FUNCIONALIDADES DO SISTEMA HOTEL CONTROLL. Login no Sistema:

ProcessoUnificado: Prof. Anderson Cavalcanti UFRN-CT-DCA

DESENVOLVENDO O SISTEMA

Modelos de Sistemas Casos de Uso

Unidade III MODELAGEM DE PROCESSOS. Profa. Gislaine Stachissini

Manual de Conciliação Bancária

3. Fase de Planejamento dos Ciclos de Construção do Software

5 Exemplo de aplicação

6 Ferramenta de Apoio ao Processo de Desenvolvimento de Sistemas Multi-Agentes

DIAGRAMA DE ATIVIDADES

Análise e Projeto Orientados a Objeto

Monitor de Comercialização Ofertante. Última Atualização 12/11/2015

Guia Rápido do Usuário

COORDENAÇÃO DE EAD MANUAL DE UTILIZAÇÃO DO MOODLE 2.6 PERFIL ALUNO. Versão 1.0

SISTEMA BRENA DE AUTOMAÇÃO COMERCIAL

Autoria:Aristófanes Corrêa Silva Adaptação: Alexandre César M de Oliveira

Franklin Ramalho Universidade Federal de Campina Grande - UFCG

Relatórios. Manual. Pergamum

Programação Orientada a Objetos. Introdução à Análise Orientada a Objetos (AOO)

Exercícios Diagrama de Casos de Uso. Disciplina: Engenharia de Requisitos

A construção de um manual sobre a utilização dos modelos também poderá alavancar o uso das representações. Este conteria a explicação detalhada da

Manual do Usuário. Sistema para Administração de Condomínios MANUAL USUÁRIO C H E Q U E S CONTROLE POR LEITURA DE CÓDIGO DE BARRAS. ENG Sistemas - 1 -

UML & Padrões Aula 3. UML e Padrões - Profª Kelly Christine C. Silva

Guia de utilização da notação BPMN

MODELAGEM DE SISTEMAS

UML Diagramas Estruturais Classes

Casos de Uso. Professor MSc Wylliams Barbosa Santos wylliams.wordpress.com Laboratório de Programação

2 Engenharia de Software

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO

Engenharia de Software Engenharia de Requisitos. Análise Orientada a Objetos Prof. Edison A M Morais prof@edison.eti.

Introdução ao Paradigma Orientado a Objetos. Principais conceitos

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

Laboratório de Programação

Sistema de Gerenciamento de Projetos V 1.01 MANUAL DO COORDENADOR

Unioeste - Universidade Estadual do Oeste do Paraná Curso de Bacharelado em Informática Estudo de Requisitos CASCAVEL 2009

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

MÓDULO DE DECLARAÇÃO DE RENDIMENTOS DECORE MANUAL Versão 2.0

So,fit 4 Transport Release Notes Versão 1.7

Diretrizes de Qualidade de Projetos

Desenvolvimento de uma Etapa

Hélio Engholm Jr. Novatec

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

Caso de uma Central de distribuição. Seqüência de processamento. Injeção de plásticos

Edital N.º 11/PROAD/SGP/2015 e complementares

DOCUMENTO DE REQUISITOS

Carlos Rafael Guerber. Modelagem UML de um Sistema para Estimativa Elétrica de uma Lavanderia

Diagrama de Casos de Uso

DIRETORIA DE TECNOLOGIA DA INFORMAÇÃO SETOR DE ESTÚDIO E SUPORTE MANUAL DE UTILIZAÇÃO DO WEBMAIL DA FTC EAD

Sistema Integrado de Atendimento

Agenda Semântica. Grupo: Francisco Rodrigues Júnior Guilherme Daher Ferreira Luana Vieira Morellato Renan Rigo

BearingNet - Orçamentos Contenuto

P4-MPS.BR - Prova de Conhecimento do Processo de Aquisição do MPS.BR

Monitor de Comercialização - Proponente MT

Análise e Projeto de Sistemas. O que é modelagem. O que é modelagem. Tripé de apoio ao desenvolvimento. Notação: UML. Ferramenta: Rational Rose.

1. Modelagem de Sistemas 1.1. Os Desenvolvedores de Sistemas podem Escolher entre Quatro Caminhos

Professor: Curso: Disciplina: Aula 4-5-6

Casos de uso Objetivo:

Financeiro. Manual do Fornecedor

MANUAL DA SECRETARIA

Instruções para o cadastramento da Operação de Transporte e geração do Código Identificador da Operação de Transporte CIOT.

Figura 5 - Workflow para a Fase de Projeto

6 Conclusões e próximos passos

VÄâux atätä. Figura 1 Menu principal do SVE

Programação Orientada a Objetos: Lista de exercícios #1. Bruno Góis Mateus

UML e a Ferramenta Astah. Profa. Reane Franco Goulart

Versão Setembro/2013. Manual de Processos. Módulo Protocolo

PROGRAMAÇÃO OO DIAGRAMA DE CLASSES. Engenheiro Anilton S. Fernandes (asfernandes.com) Janeiro 2012

Unidade II MODELAGEM DE PROCESSOS

CURSO DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

Manual de Recibos. Manual de Recibos

Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano

MANUAL DO SISTEMA DE GÊNEROS ALIMENTÍCIOS SISGEN SET/12

Transcrição:

Curso Curso de Análise, Design e Implementação de Sistemas OO Exemplo de Modelagem Orientada a Objetos Finalidade deste documento: Exemplificar a modelagem, utilizando-se a UML (Unified Modeling Language Linguagem de Modelagem Unificada), de uma ação de negócio coerente e completa (Caso de Uso) prevista para ser implementada em determinado sistema. Instrutor: Hélio Engholm Jr Importância da modelagem utilizando-se UML A finalidade da UML é de documentar, especificar, permitir a visualização e, através de ferramentas apropriadas, gerar estrutura do código para implementação do sistema (C++, Java,...) agilizando o processo de desenvolvimento, diminuindo custos. SISTEMA e-restaurante Objetivo Este exemplo visa demonstrar os detalhes relacionados à modelagem Orientada a Objetos e documentação relacionada, utilizando-se UML, do Caso de Uso referente à Emissão de em Restaurante, para que o mesmo possa ser implementado no sistema OO e-restaurante. Introdução A equipe relacionada ao desenvolvimento do sistema destinado a automação dos processos relativos a restaurantes, identificou uma série de Casos de Uso para o mesmo. Abaixo apresentamos a modelagem UML do Caso de Uso Emissão de conta em restaurante. Escopo: Emissão de em Restaurante A partir dos requisitos do usuário/cliente, identificam-se os casos de uso do sistema. Neste exemplo, iremos analisar o caso de uso referente à emissão de conta em um restaurante. Diagrama de Casos de uso Atores Para este caso de uso, foi identificado um único Ator, o Funcionário do Caixa. Abaixo temos o diagrama do caso de uso em estudo. -Solicita -Emite Sistema Emissão de conta do restaurante funcionariodocaixa

Diagrama de Atividades 17/07/2013 Após gerar o Diagrama de Casos de Uso, pode-se utilizar o Diagrama de Atividades para descrever com detalhes cada um dos Casos de Uso identificados. Para tanto, necessitamos de maiores detalhes sobre o processo de emissão de conta. Detalhes relacionados à emissão de conta A fim de emitir a conta referente a uma mesa, precisamos: Informação de qual mesa se deseja encerrar a conta; Quais itens foram consumidos na mesa e qual o valor de cada um; Realizar processamento e emitir a conta; Registrar que o consumo da respectiva mesa está encerrado. A partir destas informações, podemos produzir o Diagrama de Atividades relacionado a este caso de uso, abaixo. Usuário Partition1 Sistema Seleciona opção de emitir conta Apresenta interface de solicitação de conta solicitando número da mesa Informa número da mesa Sim Número da mesa válido? Não Fornece mensagem de inválida Verifica itens registrados como consumidos Realiza totalização e emite a conta Registra consumo da mesa como encerrado

Diagrama de Classes 17/07/2013 Outro diagrama extremamente importante na Modelagem Orientada a Objetos é o Diagrama de Classes. Inicialmente, na fase de Análise, são gerados diagramas de classes que identificam os tipos de objetos candidatos do sistema e algumas propriedades/métodos, ficando para a fase do Design o detalhamento completo das classes. A análise dos quesitos do sistema, através ou não dos diagramas de Caso de Uso e de Atividades, leva-nos a identificar os objetos envolvidos e necessários para o desenvolvimento da aplicação que contemplam a ações de negócio. Na modelagem do sistema, devemos então considerar para determinação dos objetos do mesmo: Quais objetos do mundo real (do negócio) devemos representar no sistema; Devemos guardar dados de quais objetos no sistema; Como os objetos identificados se relacionam. Para o caso deste exemplo, analisando os dados e objetos envolvidos na emissão de uma conta, podemos sugerir as seguintes classes candidatas: Classe Item de cardápio Finalidade Armazenar informações sobre a mesa Armazenar o preço dos itens de cardápio disponíveis Armazenar os itens consumidos Emitir a conta Algumas das classes candidatas identificadas na fase de Análise, podem deixar de existir na fase de design, enquanto outras não percebidas anteriormente podem aparecer. Deste modo, inicialmente na fase de análise, podemos ter diagramas de classe que apenas identificam as classes candidatas do sistema, como o diagrama apresentado abaixo, sem mostrar todos os detalhes das mesmas. Na fase de Design devemos ter diagramas de classe detalhados a serem entregues às equipes de desenvolvimento. Deste modo devemos realizar uma análise mais detalhada nesta fase, para que possamos identificar as propriedades e métodos das classes, viabilizando a correta implementação do sistema. Continuando a análise do sistema, percebemos que na modelagem anterior acabou não sendo explicitado o armazenamento da quantidade de itens solicitados de cada Item de Cardápio, pelos clientes da mesa. Outra discussão seria a respeito da obtenção e armazenamento da data/hora de chegada e saída dos clientes nas mesas. Caso esta informação fosse digitada pelo usuário, seria importante termos uma classe DataHora com métodos de validação de data/hora digitadas pelos usuários do sistema. Foi decidido, com anuência do cliente, que estas informações poderiam ser inseridas automaticamente pelo sistema nos momentos de abertura e fechamento da conta relativa

às mesas. Deste modo, foi decidido que estas informações serão armazenadas diretamente na classe. Considerando-se este aspecto, teremos a nova proposta de modelagem abaixo. Classe Item da conta Item de cardápio Finalidade Armazenar informações sobre a mesa Armazenar data/hora de chegada e saída de clientes nas mesas Armazenar a quantidade do respectivo Item de cardápio Armazenar o preço dos itens de cardápio disponíveis Armazenar os itens consumidos Emitir a conta Deste modo, passamos a ter o seguinte diagrama simplificado de classes: ItemDa Fase de Design do Sistema Analisando o Caso de Uso em questão, mais os dados que necessitamos para emitir uma conta, podemos gerar uma tabela como a apresentada abaixo que nos auxilia na determinação de todas as propriedades e métodos das classes do sistema sendo modelado. Ações/Classes responsáveis Ação no estado pagando conta Obter consumo da conta Obter itens consumidos e quantidades Fornecer preço dos itens Emitir conta Recuperar e armazenar data/hora Classe responsável + Item da conte Item do cardápio

Abaixo temos o Diagrama de Classes mais detalhado, considerando as classes identificadas nas fases de Análise e Design. Observe que neste diagrama de classes, são especificadas todas as propriedades e métodos das classes, se são do tipo privado (-) ou público (+) e o tipo de cada propriedade (int, double,...). -numero : int -horachegada : Date -horasaida : Date -conta : +abre() +fecha() +sethorachegada() +gethorachegada() +sethorasaida() +gethorasaida() +set() +get() 1 1 -flagaberta : bool -mesa : -collectionitens : ItemDa +abre() +fecha() +adiciona() +retira() +emitefatura() +gettotal() +setflagaberta() +getflagaberta() 1 ItemDa - : -quantidade : double +setquantidade() +getquantidade() 1 1 -descricao : String -preco : double -flagdisponivel : bool +getdadosdobd() +setflagdisponivel() +getflagdisponivel() Conforme podemos observar no diagrama acima, uma mesa pode estar associada a apenas uma conta em determinado intervalo de tempo, que por sua vez pode estar associada a n itens de conta/cardápio com suas respectivas quantidades. Devido ao fato da modelagem ser um processo evolutivo, análise posterior do Caso de Uso mostrou que, as horas de chegada e saída não fazem parte do objeto e que o objeto pode ser substituído pelo objeto Consumo, este sim possuindo horários de chegada e saída (equivalentes a horários de início e fim de consumo). Caso o sistema seja modelado desta maneira, pode-se obter dados da conta do cliente e imprimir a mesma, através de métodos do objeto Consumo, não sendo efetivamente necessário definir e implementar o objeto. Durante conversa entre integrantes do projeto, foi estabelecido que seria mais apropriado então, utilizar o termo Consumo no lugar de. Estes fatos nos levam à tabela abaixo: Classe Finalidade Armazenar informações sobre a mesa, relacionando-a a determinado consumo Item do consumo Armazenar quantidades consumidas de Itens de cardápio Item de cardápio Armazenar o preço dos itens de cardápio disponíveis Consumo Armazenar os itens consumidos Emitir a conta Armazenar data/hora de chegada e saída de clientes nas mesas Baseado nestas novas decisões de modelagem, temos o seguinte Diagrama de Classes simplificado: Consumo ItemDeConsumo

Como diagrama detalhado de Classes, temos: Consumo -numero : int -consumo : Consumo +iniciaconsumo() +encerraconsumo() +setconsumo() +getconsumo() 1 1 -flagaberta : bool -mesa : -collectionitens : ItemDeConsumo -dthorainicioconsumo : Date -dthorafimconsumo : Date +iniciaconsumo() +encerraconsumo() +adiciona() +retira() +emitefatura() +gettotal() -setflagaberta() +getflagaberta() +getdthorainicioconsumo() +getdthorafimconsumo() -Possui -Compõe ItemDeConsumo 1 1 - : -quantidade : double +setquantidade() +getquantidade() 1 1 -descricao : String -preco : double -flagdisponivel : bool +getdadosdobd() +setflagdisponivel() +getflagdisponivel() Diagrama de Seqüência Diagramas de Seqüência mostram as interações seqüenciais entre objetos e pode ser utilizado para o entendimento do fluxo de controle da aplicação. Abaixo, temos o Diagrama de Seqüência do caso de uso sendo modelado neste exemplo. Consumo ItemDeConsumo Sistema encerraconsumo() encerraconsumo() getvaloritemda() getpreco() funcionariodocaixa getdadosdobd() getdatahora() sethorasaida() gettotal() setflagaberta() emitefatura()

Comentários finais Foram apresentados neste documento, quatro diagramas UML necessários para uma boa documentação/especificação de uma funcionalidade (Caso de Uso) a ser implementada pelo sistema exemplo (e-restaurante), sendo eles: Casos de Uso, Atividades, Classes e Seqüência. Existem outros diagramas UML (Objetos, Estados, Colaboração, Implantação e de Componentes) que podem ser utilizados no Ciclo de Desenvolvimento de Sistemas, cada um com sua finalidade específica. Devido ao trabalho envolvido na documentação de sistemas, alguns diagramas não são efetivamente confeccionados.