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



Documentos relacionados
Análise e Projeto Orientados a Objetos

2 Diagrama de Caso de Uso

Análise e Projeto Orientados a Objetos

Orientação a Objetos

Prof. Raul Sidnei Wazlawick UFSC-CTC-INE. Fonte: Análise e Projeto de Sistemas de Informação Orientados a Objetos, 2ª Edição, Elsevier, 2010.

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

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

Introdução! 1. Modelos de Domínio! 1. Identificação de classes conceituais! 2. Estratégia para identificar classes conceituais! 2

QUESTÃO 2: A respeito do diagrama de caso de uso apresentado, assinale a alternativa correta.

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

O Processo Unificado: Captura de requisitos

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

Simulador de Pagamento

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

Modelagem de Casos de Uso (Parte 1)

Modelagem de Software Prof. Flávio de Oliveira Silva, Ph.D.

Engenharia de Software

Análise e Projeto Orientados a Objetos Aula IX Modelo Conceitual do Sistema (Modelo de Domínio) Prof.: Bruno E. G. Gomes IFRN

APOO Análise e Projeto Orientado a Objetos. Requisitos

Universidade Federal Rural de Pernambuco. Bacharelado em Sistemas de Informação. Disciplina: Análise e Projeto de Sistemas de Informação

Orientação a Objetos

Análise e Projeto Orientados por Objetos

Engenharia de Software III

ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA

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

Análise de Sistemas. Visão Geral: Orientação a Objetos. Prof. José Honorato Ferreira Nunes honorato.nunes@bonfim.ifbaiano.edu.br

Prof. Raul Sidnei Wazlawick UFSC-CTC-INE. Fonte: Análise e Projeto de Sistemas de Informação Orientados a Objetos, 2ª Edição, Elsevier, 2010.

Modelo conceitual Aula 08

Projeto de Sistemas I

Análise e Projeto Orientados a Objetos Aula IV Requisitos. Prof.: Bruno E. G. Gomes IFRN

Capítulo 11. Conceitos de Orientação a Objetos. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

ENGENHARIA DA COMPUTAÇÃO

Modelagem de Sistemas Prof. Marcos Roberto e Silva

2 a Lista de Exercícios

ViajarFácil Sistema de Reserva de Viagens

Princípios de modelagem de Domínio e Projeto(design) de Software Parte 2

Casos de Uso. Prof. Clayton Vieira Fraga Filho site: ENG10015 Engenharia de Software

A Linguagem de Modelagem Unificada (UML)

Diagrama de Caso de Uso e Diagrama de Sequência

Tópicos Especiais em Sistemas de Telecomunicações IV

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

Especificação de Requisitos

UML & Padrões Aula 7. UML & Padrões - Profª Kelly C C Silva

Ciclo de Desenvolvimento de Sistemas de BD

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

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

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

UML: Unified Modeling Language. Graduação em Informática 2008 Profa. Itana Gimenes

Modelode Domínio: Identificando. Prof. Anderson Cavalcanti UFRN-CT-DCA

UNIVERSIDADE FEDERAL DO PARANÁ. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o.

MC536 Bancos de Dados: Teoria e Prática

PROGRAMANDO EM C# ORIENTADO A OBJETOS

Pontifícia Universidade Católica

UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC DCC Departamento de Ciência da Computação Joinville-SC

Modelagemde Software Orientadaa Objetos com UML

Engenharia de Requisitos Estudo de Caso

Modelos de Sistema by Pearson Education. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1.

Feature-Driven Development

AULA Entidade-Relacionamento

Persistência e Banco de Dados em Jogos Digitais

Ricardo Roberto de Lima UNIPÊ APS-I. Históricos e Modelagem Orientada a Objetos

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

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

Introdução a Java. Hélder Nunes

ATIVIDADES PRÁTICAS SUPERVISIONADAS

Modelagem de Casos de Uso (Parte 2)

Laboratório de ENGSOF Estudo de Caso. Prof. André Pereira, MSC, PMP

UML Aula III Diagramas de Estado, Atividades, Componentes e Instalação

Banco de Dados Modelo Conceitual, Lógico, Físico, Entidade- Relacionamento (ER) Hélder Nunes

Concepção e Elaboração

PORTAL DE COMPRAS SÃO JOSÉ DO RIO PRETO

Programação Orientada a Objetos. Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br

Guia de Especificação de Caso de Uso Metodologia CELEPAR

BANCO DE DADOS. Fixação dos conteúdos Integridade Referencial Normalização Exercícios

Engenharia de Software I

SISTEMAS DE INFORMAÇÃO GERENCIAIS

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

Manual do Painel Administrativo E-commerce

1. INTRODUÇÃO 3 2. ESCOPO DO SERVIÇO DE CUSTOMIZAÇÃO 3

Introdução a UML. Hélder Antero Amaral Nunes haanunes@gmail.com

SISTEMA TYR DIAGRAMAS DE CLASSE E SEQUÊNCIA Empresa: Academia Universitária

Uma visão mais clara da UML Sumário

Wilson Moraes Góes. Novatec

BANCO DE DADOS I AULA 3. Willamys Araújo

Oficina. Praça das Três Caixas d Água Porto Velho - RO

Tarciane Andrade.

Síntese das discussões do fórum Livro-APF: Julho/2010

A linguagem UML. UML e Diagramas de Casos de Uso e Classes. Por que usar UML? O que é modelagem?

Banco de Dados. Modelagem de Dados com MER. Prof. Walteno Martins Parreira Jr

Documento de Arquitetura

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

Sistema Ativo de Segurança Automotiva Manual de Utilização

MANUAL DE ACESSO AO SITE Instruções para associados

Modelagem de Casos de Uso (Parte 2)

UML. Diagrama de Seqüência

Guia de Preenchimento Cadastro de Operadores

Lista de exercícios 01

Transcrição:

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

Introdução 2 n A modelagem do domínio está relacionada à descoberta das informações que são gerenciadas pelo sistema. O resultado dessa investigação é expressa no modelo de domínio. n Um modelo pode ser visto como uma representação idealizada de um sistema a ser construído (e.g, maquetes, plantas de circuitos, plantas arquitetônicas). n Diagramas UML integram os modelos utilizados em desenvolvimento de software. n Benefícios do uso de modelos: melhor gerenciamento da complexidade (abstração), melhor comunicação, redução dos custos, predição do comportamento do sistema.

Introdução 3 n Denomina-se domínio do negócio, ou apenas domínio, a área de conhecimento específica na qual um determinado sistema de software será desenvolvido. n Modelo de domínio é uma representação visual de conceitos do mundo real. É um dos artefatos mais importantes e mais utilizados em desenvolvimento de software. n Diagramas de classes da UML são amplamente utilizados para expressar os conceitos do domínio. No entanto, diagramas do tipo entidade-relacionamento também possuem essa mesma aplicabilidade.

Introdução 4

Benefícios 5 n Melhor compreensão do domínio n Estabelecimento de uma comunicação menos ambígua n Desenvolvedores e pessoas do negócio passam a falar a mesma língua (menor hiato representacional) n Abstração: foco nos dados e conceitos que devem ser manipulados pelo sistema e não na solução tecnológica n Modelos de domínio são utilizados principalmente na identificação dos dados persistentes, mas podem ser aplicados em outras camadas ou módulos do sistema

Perspectiva conceitual 6 n Um modelo de domínio é uma descrição de coisas em uma situação real do domínio de interesse, e não de objetos de software n O modelo de domínio faz parte da análise, ou seja da investigação do problema n Modelo de domínio não é projeto n As classes em um diagrama de domínio representam conceitos e não classes de software a serem implementadas em um linguagem de programação n Um modelo de domínio também não é um modelo de dados. Portanto, não exclua classes que não serão persistidas mas que possuem significado comportamental no domínio

Perspectiva conceitual 7 n O modelo de domínio descreve a informação que sistema deve gerenciar n Mas não indica como o sistema a deve gerenciar n O modelo de domínio é estático. Então, não devem existir referências a operações ou aspectos dinâmicos dos sistemas n Embora o modelo conceitual seja representando pelo diagrama de classes da UML, o analista não deve ainda adicionar métodos a essas classes.

Perspectiva conceitual 8 n Análise: n Projeto:

Elementos do modelo de domínio n Atributos: informações alfanuméricas simples, como números, textos, datas, etc. n Classes ou conceitos: que são a representação da informação complexa que agrega atributos e que não pode ser descrita meramente por tipos alfanuméricos. n Associações: que consistem em um tipo de informação que liga diferentes conceitos entre si.

Encontrando classes conceituais 10 n Algumas técnicas: n Revisar modelos existentes. n Lista de categorias. Larman apresenta um exemplo de lista com 16 categorias que são úteis na identificação inicial. n Modelagem CRC (classes, responsabilidades e colaboradores). Identifica as classes candidatas a partir de sessões envolvendo especialistas do negócio e desenvolvedores. As classes são registras em cartões. Bezerra apresenta informações detalhadas sobre este método. n Análise linguística. Técnica simples e muito difundida. Realizada a partir de descrições textuais do domínio.

Análise linguística 11 n A partir do texto dos casos de uso: n Passo 1: isole os substantivos e frases nominais n Também inclua os verbos relacionados a eventos que possuem informações importantes que devem ser guardadas pelo sistema n Passo 2: mantenha aqueles que são importantes para o sistema n Passo 3: agrupe os sinônimos n Passo 4: diferencie conceitos e atributos

Atributos n São os tipos escalares n NÃO são estruturas de dados como listas, tabelas e arrays n São sempre representados no contexto de uma classe:

Tipagem n Atributos podem ter tipos clássicos como string, inteiro, data, etc., ou tipos primitivos definidos pelo analista:

Valores Iniciais Atributos podem ser definidos com valores iniciais. Valores iniciais são produzidos no atributo no momento que as instâncias da classe correspondente forem criadas

Atributos Derivados n Não são definidos diretamente, mas calculados

Enumerações n São um meio termo entre o conceito e o atributo. n São basicamente strings e se comportam como tal, mas há um conjunto predefinido de strings válidas que constitui a enumeração.

Características de Enumerações n NÃO podem ter associações com outros elementos. n NÃO podem ter atributos. n Se isso acontecer, então não se trata mais de uma enumeração, mas de um conceito complexo.

Tipos Primitivos n O analista pode e deve definir tipos primitivos sempre que se deparar com atributos que tenham regras de formação, como no caso do Quantidade em que sua formação é composta de valor e unidade.. n Tipos primitivos podem ser classes estereotipadas com <<primitive>>.

Exemplo: CDU Comprar Livros 19 n Fluxo Principal 1. [IN] Comprador informa sua identificação. 2. [OUT] Sistema informa os livros disponíveis para venda (título, capa e preço) e o conteúdo atual do carrinho de compras. 3. [IN] Comprador seleciona os livros que deseja comprar. 4. Comprador decide finalizar a compra. 5. [OUT] Sistema informa o valor total dos livros e apresenta as opções de endereço cadastradas. 6. [IN] Comprador seleciona um endereço para entrega. 7. [OUT] Sistema informa o valor do frete e total geral, bem como a lista de cartões de crédito já cadastrados para pagamento. 8. [IN] Comprador seleciona um cartão de crédito. 9. [OUT] Sistema envia os dados do cartão e valor da venda para a operadora. 10. [IN] Operadora informa o código de autorização. 11. [OUT] Sistema informa o prazo de entrega. Fluxo alternativo (4): Comprador decide guardar carrinho 4a.1 [OUT] Sistema informa o prazo em dias em que o carrinho será mantido. Fluxo de exceção 6a: Endereço consta como inválido 6a.1 [IN] Comprador atualiza o endereço e caso de uso segue para o passo 6. Fluxo de exceção 10a: Operadora não autoriza a venda 10a.1 [OUT] Sistema apresenta outras opções de cartão ao comprador. 10a.2 [IN] Comprador seleciona outro cartão e caso de uso segue para o passo 9.

Exemplo: resultado 20

Associações n Relacionam dois ou mais conceitos entre si.

Papeis n Correspondem à função que um lado da associação representa em relação aos objetos do lado oposto. n Múltiplas Associações Demandam Papeis

Como Encontrar Associações? n Procure observar cada conceito complexo e se pergunte se a informação representada por ele é completa n se não for, deve-se criar uma associação entre este conceito e outro(s) conceito(s) de forma a complementar a informação necessária para que o conceito faça sentido

Dependência entre Conceitos n Conceitos dependentes (como Compra) precisam necessariamente estar ligados aos conceitos que os complementam (como Comprador e Item). n Informações associativas só podem ser representadas através de associações

Atributos Disfarçando Associações n Não se deve colocar no modelo conceitual os atributos que representam chaves estrangeiras n como se fosse uma tabela de banco de dados relacional Errado Errado

Multiplicidade de Papel n Indica quantos objetos podem se associar. n Sempre há um limite inferior. n Pode haver um limite superior. n Considerações de Multiplicidade o O papel é obrigatório ou não? Uma pessoa é obrigada a ter pelo menos um automóvel? Um automóvel deve obrigatoriamente ter um dono? o A quantidade de instâncias que podem ser associadas através do papel tem um limite conceitual definido? Existe um número máximo ou mínimo de automóveis que uma pessoa pode possuir?

Armadilha da Obrigatoriedade n A toda venda corresponde um pagamento. n Mas isso não torna a associação obrigatória, pois a venda pode existir sem um pagamento. n Um dia ela possivelmente será paga, mas ela pode existir sem o pagamento por algum tempo. n Então esse papel não é obrigatório para a venda.

Armadilha do Limite Máximo n O número máximo de automóveis que uma pessoa pode possuir é o número de automóveis que existe no planeta. Mas à medida que outros automóveis venham a ser construídos, esse magnata poderá possuí-los também. n Embora exista um limite físico, não há um limite lógico para a posse. n Então o papel deve ser considerado virtualmente sem limite superior.

Exemplo: CDU Comprar Livros 29

Exercício 30 n As informações a seguir se referem a uma aplicação de controle de comanda eletrônica da padaria Doce Sabor de Seu Joaquim. n O cliente utiliza uma comanda eletrônica durante suas compras na padaria. A cada produto consumido, o atendente registra em sua comanda (que possui uma numeração) o produto e a quantidade. Ao passar no caixa na saída da padaria, a caixa lê os gastos da comanda, finalizando a compra. Na leitura da comanda, verifica-se o valor unitário de cada produto a fim de calcular o valor total da compra. n Faça um diagrama de classes conceituais desse cenário.

Referências 31 n LARMAN, Craig. Utilizando UML e padrões: uma introdução à análise e ao projeto orientados a objeto e ao desenvolvimento iterativo. Porto Alegre: Bookman, 2007, 3ª ed. n WAZLAWICK, Raul Sidnei. Análise e Projeto de Sistemas de Informação Orientados a Objetos. Rio de Janeiro: Elsevier, 2011, 2ª ed. n BEZERRA, Eduardo.Princípios de Análise Projeto de Sistemas com UML. Rio de Janeiro: Campus, 2002. n MELO, Ana Cristina. Exercitando modelagem em UML. Rio de Janeiro: Brasport, 2006.