9 modelo de dominio

28
Engenharia de Software Modelo de Domínio Prof. Marcelo de Barros

Transcript of 9 modelo de dominio

Page 1: 9 modelo de dominio

Engenharia de Software

Modelo de Domínio

Prof. Marcelo de Barros

Page 2: 9 modelo de dominio

Modelo mais importante e clássico em análise OO

Demonstra importantes conceitos em um domínio

Serve como base para projetar alguns objetos do software

Uma técnica para descrever as informações que o sistema vai gerenciar

Também conhecido como modelagem conceitual

No Processo Unificado, é opcional

Introdução

Page 3: 9 modelo de dominio

Conceito:◦ Representação visual de classes conceituais, ou objetos do

mundo real, em um domínio◦ Classes conceituais: Ideia, uma coisa ou um objeto

No Processo Unificado, corresponde a uma representação de classes conceituais do mundo real, não de objetos de software◦ Pode ser criado na disciplina de Modelagem de Negócios

Introdução

Page 4: 9 modelo de dominio

Quando aplica-se a UML, é ilustrado por:◦ Conjunto de diagrama de classes em que nenhuma operação é

definida◦ Fornece uma perspectiva conceitual

O que pode mostrar?

Modelo de Domínio

Page 5: 9 modelo de dominio

Conceitos◦ Informações complexas

Atributos◦ Informações simples

Um número, uma cadeia de caracteres, uma data

Relacionamentos◦ Relacionamentos entre conceitos

Elementos Básicos de um Modelo de Domínio

Page 6: 9 modelo de dominio

Passos:

◦ 1. Encontrar as classes conceituais

◦ 2. Fazer o desenho como classes em um diagrama de classes da UML

◦ 3. Acrescentar associações e atributos

Criando um Modelo de Domínio

Page 7: 9 modelo de dominio

Encontra-se classes Conceituais através da identificação de substantivos ou frases nominais

Passos:◦ Verificar o texto dos casos de uso expandidos◦ Selecionar termos que representam informação transmitida do

e para o sistema◦ Agrupar sinônimos◦ Utilize a técnica de selecionar substantivos e frases nominais

1 - Encontrando Classes Conceituais

Page 8: 9 modelo de dominio

Casos de uso no formato completo fornecem excelentes descrições a serem usadas como fontes

Exemplo: Caso de Uso Emprestar Fitas

1 - Encontrando Classes Conceituais

Page 9: 9 modelo de dominio

Caso de Uso: Emprestar Fitas

Page 10: 9 modelo de dominio

a) Cliente – conceitob) Balcão – conceito irrelevante (fora do escopo do sistema)c) Fitas – conceitod) Locação – conceitoe) Nome do cliente – atributo do clientef) Funcionário – conceito irrelevante (fora do escopo do CDU Emprestar fitas)g) Data de devolução – atributo de locaçãoh) Valor total da locação – atributo de locaçãoi) Empréstimo – sinônimo de locaçãoj) Cadastro – sinônimo de cliente

Conceitos e Atributos

Page 11: 9 modelo de dominio

Representação:

2 – Desenhando Classes Conceituais

Page 12: 9 modelo de dominio

Modelando os conceitos do

Caso de Uso Emprestar fita

Page 13: 9 modelo de dominio

Diagrama de modelo do

Caso de Uso Emprestar fita

Page 14: 9 modelo de dominio

Relacionamento entre classes que indica alguma conexão significativa e de interesse

3 - Acrescentar Associações ao Modelo

Page 15: 9 modelo de dominio

Tipos de Relacionamentos

Page 16: 9 modelo de dominio

Representa ocorrência de herança entre as classes◦ Ocorre quando existem duas ou mais classes com

características muito semelhantes◦ Cada subclasse herda as características de sua superclasse

Generalização

Page 17: 9 modelo de dominio

Relacionamentos entre classes que permitem que elas compartilhem informações entre si

Relacionamento estático entre dois conceitos que indica alguma conexão significativa e de interesse.

Envolve conexões entre as instâncias

Operações: Ato de transformar a informação, passando de um estado para outro, mudando, por exemplo, a configuração das associações, destruindo e/ou criando novas associações ou objetos, ou modificando o valor dos atributos

Associações

Page 18: 9 modelo de dominio

Associações

Page 19: 9 modelo de dominio

Associações

Page 20: 9 modelo de dominio

Procure observar cada conceito complexo e se 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

Detalhes:◦ Não se deve colocar no modelo conceitual os atributos que

representam “chaves estrangeiras”, como se fosse uma tabela de banco de dados relacional

◦ Ex.: não colocar “nome do cliente” como atributo de “Empréstimo”

Encontrando Associações

Page 21: 9 modelo de dominio

Convenções das Associações

Page 22: 9 modelo de dominio

Papel:◦ Define um nome que representa o papel do conceito na associação◦ Na omissão do papel no diagrama, é assumido o nome do conceito

◦ Leitura: Pessoa possui automóvel | Automóvel é possuído por dono (Pessoa)

Associações

Page 23: 9 modelo de dominio

Papel:

◦ Leitura: Pessoa possui frota (Automóvel) | Automóvel é possuído por dono (Pessoa)

Associações

Page 24: 9 modelo de dominio

Define quantas instâncias de uma classe A podem estar associadas a uma instância de uma classe B

Associações - Multiplicidade

Page 25: 9 modelo de dominio

Exemplo:

Associações - Multiplicidade

Page 26: 9 modelo de dominio

Exemplo:

Associações - Multiplicidade

Page 27: 9 modelo de dominio

Tipo especial de associação◦ Informações de um objeto são complementadas pelas

informações em um ou mais objetos de outra classe◦ Relação todo/parte

Agregação

Page 28: 9 modelo de dominio

Variação da agregação◦ Vínculo mais forte

Objetos-partes têm de estar associados a um único objeto todo Composição define uma associação que é indivisível e não

compartilhada

Composição