Análise e Projeto Orientados a Objetos

Documentos relacionados
Análise e Projeto Orientados a Objetos

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

Análise e Projeto Orientados a Objetos

Análise e Projeto Orientados a Objetos

Análise e Projeto Orientados a Objetos. Casos de Uso

Análise e Projeto de Sistemas II. Silvério Sirotheau

Unidade IV. Compreende uma conexão bidirecional entre classes que indica a existência de um relacionamento entre os objetos dessas classes.

RAD Desenvolvimento de Sistemas de Informação

INF1404 MODELAGEM DE SISTEMAS

POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos

Modelos. Banco de dados. Professor: Jarbas Araújo CENTRO EDUCACIONAL RADIER.

Modelagem de Processos

MAPEAMENTO OBJETO RELACIONAL. Professora Lucélia Oliveira

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

MER e DER Entidades Relacionamentos Atributos Ferramentas CASE Exemplos de DERs Exemplo de Minimundo. Banco de Dados. Aula 1.

Modelo Conceitual. Análise e Projeto de Sistemas Avançados. Aula 5. Allan Rodrigo Leite

Análise e Projeto Orientados a Objetos

DIAGRAMAS DE CLASSE UML

Banco de Dados Modelagem Conceitual de Dados. Prof. Edjandir Corrêa Costa

Princípios de Análise e Projeto Orientados a Objetos com UML

Modelagem de Classes. Mestrado em Engenharia de Produção e Sistemas Computacionais. Profa. Adriana Pereira de Medeiros

Modelo Conceitual Parte 1 Banco de Dados I Prof. Luiz Antônio Vivacqua C. Meyer

Análise e Projeto de Sistemas

1 Introdução. 1.1 Teoria dos Sistemas 23/4/2010

BCD29008 Banco de dados

Projeto Banco de Dados

Introdução à UML. Prof. Jesus José de Oliveira Neto

SISTEMA DE INFORMAÇÃO Modelo Conceitual. Prof. Luiz Fernando Laguardia Campos FMS

Análise de Sistemas 3º Bimestre (material 2)

Banco de Dados. Aula 3 - Prof. Bruno Moreno 26/08/2011

TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS. Aula 7. Agenda

Diagramas de Classes. ESII Profª. Andressa Falcade URI Santiago

UML LINGUAGEM DE MODELAGEM UNIFICADA Diagrama de Classes

PROJETO DE ARQUITETURA

Agenda TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS. Aula 3 21/08/2012

Unidade 4 Projeto de Banco de Dados

Banco de Dados Modelagem e Normalização

Diagrama de Classes. Prof. Maikel Linares

Universidade Federal de Uberlândia

Análise e Projeto de Sistemas

Linguagem de Programação II Programação Orientada a Objetos. Orientação a Objetos

Modelagem de Casos de Uso (Parte 1)

Linguagem de Programação I Apresentação da Disciplina

UML Diagrama de Atividades Diagrama de Caso de Uso. ENG1518/3VB Sistemas de Informação Gerenciais Prof. Marcos Villas

Análise e Projeto Orientados a Objetos Aula I Introdução. Prof.: Bruno E. G. Gomes IFRN

Aula 4 POO 1 Análise OO. Profa. Elaine Faria UFU

Modelo Entidade Relacionamento (MER) Professor : Esp. Hiarly Alves

MAPEAMENTO OBJETO RELACIONAL

Introdução. Universidade Federal de Uberlândia. Programação Orientada a Objetos. Prof. Fabiano Dorça

IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1/64

MODELAGEM DE DADOS MÓDULO III - UNIDADE V- MAPEAMENTO OBJETO RELACIONAL

Ciclo de Desenvolvimento de BD

Projeto de Desenvolvimento de Software

18/03/2012. Independência de Dados: capacidade de modificar a definição dos esquemas em. determinado nível, sem afetar o esquema do nível superior;

Aula 01 Revisão Geral Banco de Dados I Conceito de Banco de Dados e SGBD

UML (Linguagem Modelagem Unificada) João Paulo Q. dos Santos

INF1012 MODELAGEM DE DADOS

Análise Clássica (Tradicional) X Análise Estruturada

BANCO DE DADOS I. Prof. Luiz Antônio Vivacqua C. Meyer

RUP RATIONAL UNIFIED PROCESS PRÁTICAS RECOMENDADAS. Prof. Fabiano Papaiz IFRN

PROJETO DE PROGRAMAS. Projeto de Programas PPR0001

Requisitos de sistemas

Aula 01 Conceito de Banco de Dados e SGBD

MODELAGEM DE DADOS UNIDADE 2 Projeto de Banco de Dados. Luiz Leão

15/04/2013. Outro Diagrama de Classes. Primeiro Diagrama de Classes. Diagrama de Classes. Atributos. Eduardo Figueiredo

Prof. Fabiano Taguchi

INTRODUÇÃO À ENGENHARIA DE SOFTWARE. Prof.: Tiago Alves

PROJETO DE PROGRAMAS. Projeto de Programas PPR0001

Administração e Projeto de Banco de dados. Aula 4 Modelagem Conceitual Tipos de Relacionamentos

Banco de Dados I Modelagem Conceitual

Banco de Dados Relacional

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades. Diagramas UML. Classe, Seqüência e Atividades. Marcio E. F.

Ciência da Computação. Análise e Projeto Orientado a Objetos UML. Anderson Belgamo

BDI Capitulo 2 Revisão 9

Análise e Projeto Orientados a Objetos

Bancos de Dados Aula #2 - Modelos Conceituais de Dados

DMS - DOCUMENTO DE MODELAGEM DE SISTEMA VERSÃO: [NOME DO SISTEMA] [SIGLA] [AUTORES]

FORMULÁRIO DE REGISTRO DE PLANO DE CURSO 2013.I

Diagrama de Classes. Régis Patrick Silva Simão. Régis Simão Diagrama de Classes 1/42

Arquitetura dos SBDs Características e Benefícios Visão Geral de Projeto de BD MER: Entidades e Atributos Atividade.

Engenharia de Software. Aula 10 Representação dos Conceitos de Orientação a Objetos. Prof. Me. Rogério Ferreira

Programação Orientada a Objetos Relacionamentos entre classes

Modelagem Conceitual e o Modelo Entidade-Relacionamento

Análise Orientada a Objetos. Análise Orientada a Objetos; O Paradigma de Objetos; A UML.

Modelagem de Dados MODELAGEM DE DADOS. Projeto de Banco de Dados Modelo Conceitual. Profa. Rosemary Melo

MC536. Modelo Entidade- Relacionamento

Análise de Sistemas 4º Bimestre (material 3)

Lista DFD. O diagrama de contexto pode ser considerado um DFD especial. ( ) Certo ( ) Errado

FUNDAÇÃO UNIVERSIDADE ESTADUAL DE MARINGÁ

Introdução a orientação a objetos

INF1404 MODELAGEM DE SISTEMAS

Orientação a Objetos (OO)

Como Modelar com UML 2

Banco de Dados Modelagem de Dados. Prof. Joel da Silva

INF1012 MODELAGEM DE DADOS

BANCO DE DADOS - MODELAGEM DE DADOS

Modelos de Sistemas Casos de Uso

Transcrição:

Análise e Projeto Orientados a Objetos Modelagem conceitual do domínio Diretoria Acadêmica de Gestão e Tecnologia da Informação

Introdução 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. 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). Diagramas UML integram os modelos utilizados em desenvolvimento de software. 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. 2

Introdução Denomina-se domínio do problema, ou apenas domínio, a área de conhecimento específica na qual um determinado sistema de software será desenvolvido. Modelo de domínio é uma representação visual de conceitos do domínio do problema. É um dos artefatos mais importantes e mais utilizados em desenvolvimento de software. 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. 3

Introdução 4

Benefícios Melhor compreensão do negócio (domínio do problema). Estabelecimento de uma comunicação menos ambígua. Desenvolvedores e pessoas do negócio passam a falar a mesma língua (menor hiato representacional) Abstração: foco nos dados e conceitos que devem ser manipulados pelo sistema e não na solução tecnológica. 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. 5

Perspectiva conceitual 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. O modelo de domínio faz parte da análise, ou seja, da investigação do problema. Modelo de domínio não é projeto. 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. 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. 6

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

Perspectiva conceitual Análise: Projeto: 8

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

Encontrando classes conceituais Algumas técnicas: Revisar modelos existentes. Lista de categorias. Larman apresenta um exemplo de lista com 16 categorias que são úteis na identificação inicial. 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 registradas em cartões. Bezerra apresenta informações detalhadas sobre este método. Análise linguística. Técnica simples e muito difundida. Realizada a partir de descrições textuais do domínio. 10

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

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

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

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. 14

Atributos Derivados Seu valor não é armazenado, mas sim calculado ou determinado por alguma regra. 15

Enumerações São um meio termo entre o conceito e o atributo. Uma enumeração é um tipo (classe) que contém um conjunto pré-definido de valores (instâncias) válidos(as). 16

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

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

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

Papeis Correspondem à função que um lado da associação representa em relação aos objetos do lado oposto. Múltiplas associações demandam o uso de papeis. 20

Como encontrar associações? Procure observar cada conceito complexo e pergunte se a informação representada por ele é completa. 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. 21

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

Atributos Disfarçando Associações Não se deve colocar no modelo conceitual os atributos que representam chaves estrangeiras, como se fosse uma tabela de banco de dados relacional. Errado Pessoa Automovel dono: Pessoa Errado Pessoa <<OID>>cpf: CPF Automovel cpfdono: CPF Correto Pessoa +dono Automovel 23

Multiplicidade ou cardinalidade Indica quantos objetos podem se associar. Sempre há um limite inferior. Pode haver um limite superior. 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? 24

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

Armadilha do Limite Máximo 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. Embora exista um limite físico, não há um limite lógico para a posse. Então o papel deve ser considerado virtualmente sem limite superior. 26

Exemplo: CDU Comprar Livros 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. 27

Exemplo: CDU Comprar Livros 28

Exercício As informações a seguir se referem a uma aplicação de controle de comanda eletrônica da padaria Doce Sabor de Seu Joaquim. 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. Faça um diagrama de classes conceituais desse cenário. 29

Herança Utilizada para fatorar uma estrutura (atributos e associações) comum a mais de uma classe. Instâncias da subclasse também são instâncias das superclasses. Associações também são herdadas. 30

Herança Sem herança Com herança 31

Herança Evite o uso da herança quando: A superclasse não possuir atributos ou associações. As subclasses não possuem atributos ou associações que as diferenciem uma da outra. MELHOR PIOR 32

Herança e papeis Atenção em conceitos que parecem subtipos, mas que na verdade são papeis Considere Comprador e Funcionário, ambos com atributos em comum. No caso em que o Funcionário realiza uma compra, ele está assumindo o papel de Comprador. Na modelagem com herança seria necessário um novo cadastro de Funcionário quando este realizasse uma compra. 33

Herança e papeis PIOR MELHOR 34

XOR (ou exclusivo) Indica que apenas uma das associações é possível. 35

Referências 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. WAZLAWICK, Raul Sidnei. Análise e Projeto de Sistemas de Informação Orientados a Objetos. Rio de Janeiro: Elsevier, 2011, 2ª ed. BEZERRA, Eduardo.Princípios de Análise Projeto de Sistemas com UML. Rio de Janeiro: Campus, 2002. MELO, Ana Cristina. Exercitando modelagem em UML. Rio de Janeiro: Brasport, 2006. 36