08/09/2017
Entendendo modelagem de domínio e modelagem conceitual Curso: Modelagem Conceitual com Diagrama de Classes da UML https://www.udemy.com/user/nelio-alves Prof. Dr. Nelio Alves
Tempo
1
08/09/2017
Modelagem de domínio
O que é modelo de domínio? Domíno: é a área de negócio observada Modelo de domínio: é um modelo que descreve • As entidades do domínio • As inter-relações entre elas
2
08/09/2017
Níveis de abstração do modelo de domínio Nível
Responsável
Objetivo
Conceitual ou de Análise (de negócio)
Analista de negócio
Descrever as entidades do domínio (do negócio) e suas inter-relações: Independentemente de SISTEMA
Conceitual ou de Análise (de sistema)
Analista de sistemas
Descrever as entidades do domínio (do sistema) e suas inter-relações: • Independentemente de PARADIGMA E TECNOLOGIA
Lógico ou de Design
Projetista
Descrever as entidades do domínio (do sistema) e suas inter-relações: • Preso a um PARADIGMA (ex: relacional, orientado a objetos) • Independentemente de TECNOLOGIA
Físico ou de implementação
Implementador
Descrever as entidades do domínio (do sistema) e suas inter-relações: • Preso a um PARADIGMA (ex: relacional, orientado a objetos) • Preso a uma TECNOLOGIA (ex: Java, C#, PHP, Python, Ruby, NodeJS)
Nível Conceitual ou de Análise (de negócio)
3
08/09/2017
Nível Conceitual ou de Análise (de sistema)
OU:
Nível Lógico ou de Design Preso ao paradigma: relacional Pedido(id, data) Produto(id, descricao, preco) ItemPedido(id_Pedido, id_Produto, quantidade, desconto) id_Pedido references Pedido(id) id_Produto references Produto(id)
OU:
4
08/09/2017
Nível Lógico ou de Design Preso ao paradigma: orientado a objetos
Nível Físico ou de Implementação Preso ao paradigma: relacional Preso à tecnologia: MySQL (dialeto SQL) CREATE TABLE `produto` ( `id` int(11) NOT NULL AUTO_INCREMENT, `descricao` varchar(255) DEFAULT NULL, `preco` float DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
(...)
5
08/09/2017
Nível Físico ou de Implementação Preso ao paradigma: orientado a objetos Preso à tecnologia: Java public class Produto { private Integer id; private String descricao; private Double preco; public Produto(Integer id, String descricao, Double preco) { this.id = id; this.descricao = descricao; this.preco = preco; } (...)
Polêmica sobre análise & design • Análise: descrever o PROBLEMA (independente de paradigma e tecnologia) • Design: descrever a SOLUÇÃO (preso ao paradigma)
?
6
08/09/2017
Paradigma estruturado / relacional
• • • •
Chaves estrangeiras Criação de tabelas Normalização Outros...
Paradigma orientado a objetos
• Inclusão de métodos • Normalização (?)
7
08/09/2017
Conclusão (polêmica) • Análise e Design tendem a ser mais próximas no desenvolvimento orientado a objetos • Consideraremos nossa Modelagem Conceitual como nível de Análise, mas vamos também "invadir" alguns aspectos de Design (tipos de dados, direção de associações, preocupações com normalização, etc.)
Resumo da aula Nível
Responsável
Objetivo
Conceitual ou de Análise (de negócio)
Analista de negócio
Descrever as entidades do domínio (do negócio) e suas inter-relações: Independentemente de SISTEMA
Conceitual ou de Análise (de sistema)
Analista de sistemas
Descrever as entidades do domínio (do sistema) e suas inter-relações: • Independentemente de PARADIGMA E TECNOLOGIA
Lógico ou de Design
Projetista
Descrever as entidades do domínio (do sistema) e suas inter-relações: • Preso a um PARADIGMA (ex: relacional, orientado a objetos) • Independentemente de TECNOLOGIA
Físico ou de implementação
Implementador
Descrever as entidades do domínio (do sistema) e suas inter-relações: • Preso a um PARADIGMA (ex: relacional, orientado a objetos) • Preso a uma TECNOLOGIA (ex: Java, C#, PHP, Python, Ruby, NodeJS)
8