79
Análise Orientada a Objetos Análise Orientada a Objetos Modelo Conceitual Modelo Conceitual

Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Embed Size (px)

Citation preview

Page 1: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Análise Orientada a ObjetosAnálise Orientada a Objetos Modelo ConceitualModelo Conceitual

Page 2: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

ProcessoProcesso de Software de Software

DEFINIÇÃODEFINIÇÃO

CONSTRUÇÃOCONSTRUÇÃO

MANUTENÇÃOMANUTENÇÃO

SOFTWARE PRODUTOSOFTWARE PRODUTO

Entendimento Modificação

Revalidação

Projeto Codificação

Teste

Análise de SistemaPlanejamento do Projeto

Engenharia de Requisitos

• Gerenciamento de Configuração

• Aplicação de Métricas

• Acompanhamento e Controle do Projeto

• Atividades de SQA

• Produção e Preparação de Documentos

• Gerenciamento de Risco

Atividades para Atividades para Garantir a QualidadeGarantir a Qualidade

EngenhariaEngenhariade Requisitosde Requisitos

Page 3: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

ElicitaçãoAnáliseModelagem

Engenharia de RequisitosEngenharia de Requisitos Atividades PrincipaisAtividades Principais

Page 4: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

ELICITAR

ANALISAR

MODELAR

UdeI

Documento de Requisitosdo Sistema

Decisões daAnálise

Métodos,Técnicas eFerramentas

UdeI

Modelo deAnálise doSistema

Engenharia de RequisitosEngenharia de RequisitosAtividades PrincipaisAtividades Principais

Page 5: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

ELICITAR

ANALISARANALISAR

MODELAR

UdeI

Documento de RequisitosDocumento de Requisitosdo Sistemado Sistema

Decisões daAnálise

Métodos,Métodos,Técnicas eTécnicas eFerramentasFerramentas

UdeI

Modelo deModelo deAnálise doAnálise doSistemaSistema

Engenharia de RequisitosEngenharia de RequisitosAtividades PrincipaisAtividades Principais

Page 6: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Análise e ModelagemAnálise e Modelagem

Combinação de formas textuaistextuais e diagramáticasdiagramáticas para representar os requisitos (de dados, função e comportamento) do software.Fácil de entender.Mais direto para revisar.

Page 7: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Objetivos:Descrever o que o que o cliente deseja.Estabelecer a base base para a criação de

um projeto de softwareprojeto de software.Definir um conjunto de requisitosrequisitos que

possa ser validado quando o software for construído.

Análise e ModelagemAnálise e Modelagem

Page 8: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

O modelo de análise é a primeira representação técnica de um sistemaDuas técnicas de modelagem se destacam:

Análise EstruturadaAnálise Orientada a Objeto

Técnicas alternativas de análiseDSSD Método de JacksonTécnica SADTTécnicas Formais de Especificação

Análise e ModelagemAnálise e Modelagem

Page 9: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Análise OO X Análise EstruturadaAnálise OO X Análise Estruturada

Análise/Projeto OO Análise/Projeto Estruturados

Sistema de Biblioteca

Decomposição: objetosobjetos ou conceitosconceitos.. Decomposição: funçõesfunções ou processosprocessos.

Catálogo Bibliotecário

Livro Biblioteca

Sistema

Registrar empréstimos

Relatarmultas

Page 10: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Análise Estruturada Foco nas funcionalidades do sistema: funções

diferentes atuam sobre os dados de forma desordenada.

Não existe uma junção lógica entre dados e funções. Os dados são considerados separadamente dos

processos que os transformam. Faz uso intenso da decomposição funcional.

Análise OO Permite abstrair de uma forma mais real o “mundo”

a ser modelado. Utiliza abstrações do mundo real chamadas de

objetos. Acoplamento entre dados e funcionalidade.

Análise OO X Análise EstruturadaAnálise OO X Análise Estruturada

Page 11: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Existem vários métodos de análise métodos de análise e modelageme modelagem de software. Cada um tem um ponto de vista

singular.Todos têm um conjunto fundamental

de princípiosprincípios.

Princípios de Análise e Princípios de Análise e ModelagemModelagem

Page 12: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Princípios Operacionais: O domínio de informação de um problema precisa ser

representado e entendido. As funções a serem desenvolvidas pelo software devem

ser definidas. O comportamento do software (como conseqüência de

eventos externos) precisa ser representado. Os modelos que mostram informação, função e

comportamento devem ser particionados de modo que revele detalhes de modo hierárquico.

O processo de análise deve ir da informação essencial até o detalhe de implementação.

Princípios de Análise e Princípios de Análise e ModelagemModelagem

Page 13: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Princípios Diretivos:Entenda o problema antes de criar modelos

de análise.Desenvolva protótipos que permitam ao

usuário entender como a interação homem/máquina vai ocorrer.

Registre a origem e a razão para cada requisito.

Use múltiplas visões dos requisitos.Ordene os requisitos.Trabalhe para eliminar a ambigüidade.

Princípios de Análise e Princípios de Análise e ModelagemModelagem

Page 14: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

ObjetoComponente do mundo real que é mapeado

para o domínio do software.Representa uma entidade de natureza física

ou conceitual.Possui limites bem definidos e significado

bem conhecido dentro do escopo de uma aplicação.

Conceitos de Conceitos de Orientação a ObjetosOrientação a Objetos

Page 15: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

ClasseRepresentação de um conjunto de objetos

similares.Objetos que compartilham a mesma estrutura de

atributos, operações e relacionamentos, dentro de um mesmo contexto.

Uma classe especifica a estrutura de um objeto sem informar quais serão seus valores.Um objeto corresponde à ocorrência (instância)

de uma classe num determinado momento.

Conceitos de Conceitos de Orientação a ObjetosOrientação a Objetos

Page 16: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Conceitos deConceitos deOrientação a ObjetosOrientação a Objetos

Casa

ClassClassee

Casa doPresidente Casa do Pedrinho

Casa amarela da esquina

ObjetoObjetoss

Page 17: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Classes e ObjetosCorsa AFR-

7655Gol BFF-9888

Fiesta AFR-7655

Automóvel

MarcaPlaca

ObjetosClasse

Conceitos deConceitos deOrientação a ObjetosOrientação a Objetos

Page 18: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

ObjetoPossui características ou

propriedades que o definem.Atributos.

Os atributos identificam o estado de um objeto.

Conceitos de Conceitos de Orientação a ObjetosOrientação a Objetos

Page 19: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

ObjetoPossui comportamentos que

modificam seu estado (atributos) ou prestam serviços a outros objetos.Operações

Conceitos de Conceitos de Orientação a ObjetosOrientação a Objetos

Page 20: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

ObjetoAs operações são implementadas pelos

métodos.Os métodos de uma classe manipulam

somente as estruturas de dados daquela classe, ou seja, não podem acessar diretamente os dados de outra classe.Uma classe tem conhecimento dos dados

de outra pela solicitação de serviços: mensagem.

Conceitos de Conceitos de Orientação a ObjetosOrientação a Objetos

Page 21: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

PortasQuartosSalasLocalizaçãoCozinhaTelhado

ReformarLimparPintarMobiliar

Conceitos deConceitos deOrientação a ObjetosOrientação a Objetos

ClassClassee

AtributosAtributos OperaçõOperaçõeses

Page 22: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Classe, Atributos e OperaçõesAutomóvel

Atributos

Operações

ProprietárioMarcaPlacaAno

RegistrarTransferir_Proprietári

oMudar_Placa

Conceitos deConceitos deOrientação a ObjetosOrientação a Objetos

Classe

Page 23: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Classe, Atributos e OperaçõesFiguraLarguraAlturaPosicao_xPosicao_yCor_preenchimento

MoverRedimensionar

Conceitos deConceitos deOrientação a ObjetosOrientação a Objetos

Atributos

Operações

Classe

Page 24: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Elementos-chave de OO:EncapsulamentoHerançaPolimorfismo

Conceitos de Conceitos de Orientação a ObjetosOrientação a Objetos

Page 25: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

EncapsulamentoObjetos encapsulamencapsulam seus atributos.

Os atributos de uma classe são acessíveis apenas pelos métodos da própria classe.

Outras classes só podem ter acesso aos atributos de uma classe invocando os métodos públicos.

Restringe a visibilidade do objeto mas facilita o reúsoreúso.Os dados e os métodos são empacotados sob um

nome e podem ser reusados como uma especificação ou componente de programa.

Conceitos de Conceitos de Orientação a ObjetosOrientação a Objetos

Page 26: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Encapsulamento

Conceitos de Conceitos de Orientação a ObjetosOrientação a Objetos

ObterIdadeReajustarSalarioCalcularFerias

Interface daclasse

Classe como uma caixa

preta

Classe Funcionário

Page 27: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

HerançaMecanismo pelo qual uma subclasse herda herda

todas as propriedades da superclasse e acrescenta suas próprias e exclusivas características. As propriedades da superclasse não precisam ser

repetidas em cada subclasse.Possibilita o reúso sem esforço

(modificações na superclasse são propagadas nas subclasses relacionadas).

Conceitos de Conceitos de Orientação a ObjetosOrientação a Objetos

Page 28: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Herança

Conceitos de Conceitos de Orientação a ObjetosOrientação a Objetos

Classe: Pessoa

Nome

Sexo

Data nascimento

Estado civil

CalcularIdade

Classe: Aluno

Matrícula

Curso

MatricularAluno

Classe: AlunoUniv

notaVestibular

herança

herança

Page 29: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Conceitos daConceitos daOrientação a ObjetosOrientação a Objetos

Herança Veículo

Proprietário

MarcaPlaca

Caminhão

n_eixos

Semi-reboque

capacidade

Automóvel

n_passageiros

Page 30: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

PolimorfismoRepresenta a capacidade de um objeto para

assumir diferentes formas.É a propriedade segundo a qual vários

métodos podem existir com o mesmo nome. Ao receber uma mensagem para efetuar uma

operação, é o objeto quem determina como a operação deve ser efetuada.

Permite a criação de várias classes com interfaces idênticas, porém objetos e implementações diferentes.

Conceitos de Conceitos de Orientação a ObjetosOrientação a Objetos

Page 31: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Polimorfismo

Conceitos de Conceitos de Orientação a ObjetosOrientação a Objetos

Classe: Funcionário

Nome

Sexo

Data admissao

cargo

CalcularSalario(mesReferencia:inteiro)

Classe: Professor

Titulacao

Especialidade

Regime de trabalho

CalcularSalario(mesReferencia:inteiro)

O operador “+” pode ser usado com inteiros, pontos-flutuantes ou strings.

Page 32: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Métodos de Análise OO

Características de modelo de análise OO Representação de classes e hierarquias. Criação de modelos objeto-relacionamento. Derivação de modelos objeto-comportamento.

Permitem modelar um problema pela representação das características, tanto

estáticasestáticas quanto dinâmicasdinâmicas, das classesclasses e seus relacionamentosrelacionamentos como os principais

componentes de modelagem.

Análise Orientada a ObjetosAnálise Orientada a Objetos

Page 33: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Fim dos anos 80 e durante os anos 90...Proliferação de métodos de análise e projeto

OO. Método de Coad-Yourdon (1990).Método de Wirfs-Brock (1990). Método de Booch (1991).Método de Rumbaugh (1991).

OMT – Object Modeling Technique.Método de Jacobson (1992).

OOSE – Object-Oriented Software Engineering.Método Fusion, Coleman (1994).

Análise Orientada a ObjetosAnálise Orientada a Objetos

Page 34: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Cada um introduz a sua própria notação, heurística e filosofia.

Todos usam o mesmo conceito de orientação a objeto.

Os processos gerais de AOO são bastante semelhantes.

Análise Orientada a ObjetosAnálise Orientada a Objetos

Page 35: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Uma abordagem unificada.Combinar as melhores características dos

métodos individuais de análise e projeto OO em um método unificadométodo unificado.

UML (Unified Modeling Language), 1997.Expressar um modelo de análise usando uma

notação de modelagem, regulada por um conjunto de regrasregras sintáticas, semânticas e pragmáticas.

Análise Orientada a ObjetosAnálise Orientada a Objetos

Page 36: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Passos genéricos para conduzir análise OO:1. Deduzir os requisitos do cliente para o sistema.2. Identificar cenários ou casos de uso.3. Selecionar classes e objetos usando os requisitos

básicos como diretriz.4. Identificar atributos e operações para cada objeto

do sistema.5. Definir estruturas e hierarquias que organizem as

classes. 6. Construir um modelo objeto-relacionamento.7. Construir um modelo de comportamento de objeto.8. Revisar o modelo de análise OO com base nos

casos de uso ou cenários.

Análise Orientada a ObjetosAnálise Orientada a Objetos

Page 37: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Foco na compreensão dos requisitos do sistema. “Fazer a Coisa Certa” – compreender objetivos,

conceitos e características do domínio do problema.

Artefatos ...Artefato da AnáliseArtefato da AnáliseCasos de Uso

Modelo Conceitual

Diagramas de Seqüência do Sistema

Contratos de Operação

Questões RespondidasQuestões RespondidasQuais são os processos do domínio?

Quais são os conceitos (objetos)?

Quais são os eventos e operações?

Qual é o comportamento da operação?

Análise Orientada a ObjetosAnálise Orientada a Objetos

Page 38: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Modelo ConceitualModelo Conceitual Consiste em uma representação dos conceitos,

pertencentes ao domínio do problema (mundo real).

É exibido por um conjunto de diagramas de estrutura estática, no qual não se definem operações.

Pode mostrar: conceitos, associações entre conceitos e atributos de conceitos.

Pode ser tratado como um “dicionário visual” das abstrações significativas do domínio. Ajuda a compreender a terminologia e o vocabulário do

domínio.

Page 39: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Modelo ConceitualModelo Conceitual ConceitoConceito

Informal: idéia ou objeto do mundo real no domínio de interesse. Algo digno de ser documentado, de importância para o

domínio.

Formal: Um conceito pode ser considerado em termos de seu: Símbolo: palavra ou imagem representando um conceito.

Ex.: Aeronave Intenção: a definição de um conceito.

Ex.: Aeronave representa uma aeronave, ou seja, um meio de transporte aéreo que possui categoria, dimensões, número de lugares, ...

Extensão: o conjunto de exemplos (instâncias) ao qual o conceito se aplica.

Ex.: AirBus PT999, Boing747 PX111, …

Page 40: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Modelo ConceitualModelo Conceitual ConceitoConceito

Símbolo Ex.: Venda

Intenção Ex.: (o conceito) Uma venda representa uma

transação de compra e possui data e hora. Extensão

Ex.: Venda1, Venda2, Venda3, …

Como identificar conceitos em um sistema ?

Page 41: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Estratégias paraEstratégias paraIdentificar ConceitosIdentificar Conceitos

É melhor especificar em excesso um modelo conceitual com muitos conceitos do que subespecificá-lo. Menos conceitos não implicam em um modelo

melhor. Não exclua um conceito só porque sua necessidade

não está óbvia nos requisitos. Não exclua um conceito só porque não tem atributos

– ele pode possuir um papel de comportamento e não de informação.

Identificar Substantivos. Usar uma Lista de Categorias de Conceitos.

Page 42: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Identificação de SubstantivosIdentificação de Substantivos Domínio TPV – caso de uso Domínio TPV – caso de uso Comprar ItensComprar Itens

1. Este caso de uso começa quando um Cliente chega a uma loja equipada com um TPV com vários itens que deseja comprar.

1. O caixa registra o código universal do produto (UPC) de cada item.

Se houver mais de um exemplar do item o caixa

também pode entrar a quantidade.

3. Determina o preço do item e acrescenta informação sobre o item à transação de vendas em andamento.

A descrição e o preço do item corrente são apresentados

Page 43: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Lembre-se: 1. Nem todos os substantivos são conceitos –

linguagem natural pode ser ambígua.Ex: substantivos diferentes podem representar o

mesmo conceito – (Consumidor e Cliente)

2. Alguns dos substantivos são candidatos a conceitos e outros são candidatos a atributos.

3. Alguns verbos podem ser transformados em substantivos.

Identificação de SubstantivosIdentificação de Substantivos

Page 44: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Categorias de ConceitosCategorias de Conceitos ExemplosExemplos

Objetos físicos ou tangíveis: TPV, Aeronave

Lugares: Loja, Aeroporto

Organizações: DepartamentoVendas Sistema externo: SistemaAutorizaçãoCartãoCrédito

Papéis desempenhados por pessoas: Caixa, Piloto Transações: Venda, Pagamento, Reserva

Itens de linha de transação: ItemLinhaVendas Catálogos: CatálogoProdutos, CatálogoPeças …

Page 45: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Conceitos CandidatosConceitos CandidatosDomínio TPV – caso de uso Domínio TPV – caso de uso Comprar ItensComprar Itens

• TPV

• Caixa• Cliente• Item• Loja• Venda

• CatálogoProdutos• EspecificaçãoProduto• ItemLinhaVenda• Pagamento • Gerente

Ideal: Combinar as estratégias para identificar uma lista de candidatos a conceito.

Page 46: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Modelo ConceitualModelo Conceitual AssociaçãoAssociação

AssociaçãoAssociação é um relacionamento entre conceitos. Indica uma conexão com significado e

interesse.

Em UML são descritas como “relacionamentos semânticos entre objetos diferentes”.

Page 47: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

TPV VendaCaptura

associação

nome da associação direção de leitura (default: opcional)

OBS: o símbolo SOMENTE indica direção de leitura – não tem significado no modelo.

Modelo ConceitualModelo Conceitual AssociaçãoAssociação

1..1 1..1

Page 48: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

MultiplicidadeMultiplicidade

B

B

B

B

B

*

1..*

1..40

5

3,5,8

zero ou mais – muitos (as)

um ou mais

um a quarenta

exatamente cinco

exatamente três, cinco ou oito

A multiplicidade define quantas instâncias de um conceito A podem ser associadas a cada instância do conceito B.

Page 49: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

TPV VendaCaptura

1..1 1..1

nome da associação

multiplicidade

direção de leitura (default: opcional)

associação

Loja Item1..1 *Estoca

Page 50: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Critérios para Incluir Critérios para Incluir AssociaçõesAssociações

Quando o conhecimento associado necessita ser preservado por algum tempo. “necessário-ser-conhecida” – requisitos indicam essa

necessidade. Ex: associação entre Venda e Pagamento

Evite associações cuja necessidade não é sugerida nos requisitos. Ex: associação entre Venda e Gerente

É mais importante identificar conceitos do que associações. Excesso de associações pode tornar o modelo conceitual confuso. Evite mostrar associações redundantes.

Page 51: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Associações ComunsAssociações Comuns A é uma parte física de B

Gaveta – TPV Asa – Aeronave

A é uma parte lógica de B ItemLinhaVenda – Venda PernaVôo (Flight Leg) – RotaVôo

A está fisicamente contida em/sobre B Item – Prateleira Passageiro – Aeronave

A está logicamente contida em B DescriçãoItem – Catálogo Vôo – ProgramaçãoVôo

Page 52: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Associações ComunsAssociações Comuns A é registrada em B

Venda – TPV Reserva – ManifestoVôo

A é uma descrição para B DescriçãoItem – Item DescriçãoVôo – Vôo

A é um item de linha de uma transação ou relatório B ItemLinhaVenda – Venda ServiçoManutenção – LogManutenção

A é uma transação relacionada a outra transação B Pagamento – Venda Reserva – Cancelamento

Page 53: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Associações com PapéisAssociações com Papéis

Cada extremo de uma associação é chamado de papelpapel.

Os papéis podem ter, opcionalmente, as seguintes propriedades:NomeExpressão de multiplicidadeNavegabilidade

Page 54: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Associações com PapéisAssociações com Papéis

Nomes de papéis são necessários, principalmente, para associação entre dois objetos de mesma classe.

Companhia Empregado

0..1

0 .. *

E-chefe-de

1 1 .. *

Possui

Page 55: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Associações MúltiplasAssociações Múltiplasentre Conceitosentre Conceitos

Vôo AeroportoVoa-para

Voa-de

* 1

* 1

Origem

Destino

Page 56: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Associações e ImplementaçãoAssociações e Implementação Uma associação indica um relacionamento

significativo apenas sob a perspectiva conceitual. Uma associação não implica em uma conexão entre

objetos em uma solução de software. Algumas associações do modelo conceitual podem

não ser necessárias na implementação. Durante a implementação podem ser descobertas

associações entre objetos de software que foram esquecidas durante a modelagem conceitual.

Page 57: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Pagamento

1..1

1..1

1..1

Gerente

0..*

1..*

1..1

*

1..1

1..1

1..1

1..1

Cliente

1..1

1..1

*

1..1TPV 1..10..*

Iniciado por

1..1

*1..1

Loja

1..*

1..1Possui

1..*1..1

Catálogo de Produtos

*

1..1Usado-por

1..1

1..*

1..1Item

*1..1

Estoca

0..1

1..1

Especificação de Produto1..*1..1

Contém

*

Descreve

*

LinhadeItemdeVenda

1..1

0..1

Registra-venda-de

1..1

*

Descritos-por

Venda

1..1

1..1

Paga-por

1..1

1..1

Iniciada-por

1..1

*Registra-dados-da

1..1

1..1

capturada-em

1..1

1..*

Contido-em

Caixa

1..1

1..1

Registra-Vendas-do

1..1

1..1

Iniciada-por

1..1

1..1

1..1

Page 58: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Modelo Conceitual Modelo Conceitual AtributoAtributo

Um atributo é um valor de dados lógico de um objeto. Descreve uma característica do objeto.

Inclua no modelo conceitual apenas os atributos para os quais os requisitos sugerem ou implicam uma necessidade de memorizar a informação. Ex: preço de item, quantidade, descrição, CUP, valor da

compra, …

Preferivelmente, no modelo conceitual, os tipos de atributos devem ser simples, como: tipos de dados primitivos - booleano, inteiro, real, cadeia de

caracteres,... data, hora, cor, endereço, número de telefone, CEP, …

Page 59: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Modelo ConceitualModelo Conceitual AtributoAtributo

Os atributos são descritos na segunda seção da caixa de conceito.

O tipo do atributo é opcional.

Pessoa

nome: Stringidade: Inteiro

Venda

data: Datahora: Hora

Page 60: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

1..1

1..1

Caixa

1..1

Gerente

1..*

1..*

1..1

*

1..1

1..1

Pagamentoquantia

1..1

1..1Cliente

1..1

1..1

*

1..1TPV

1..1

1..1

Registra-Vendas-do

1..11..*

Iniciado por1..1

*1..1

Lojaendereçonome

1..*

1..1Possui

1..*1..1

Catálogo de Produtos

*

1..1Usado-por

*

1..1

Vendadatahora

1..1

1..1Paga-por

1..1

1..1

Iniciada-por

1..1

*

Registra-Dados-da

1..1

1..1Capturada-em

1..*

1..1Item

*1..1

Estoca

0..1

1..1

Especificação de ProdutodescriçãopreçoUPC

1..*1..1

Contém

*Descreve

*LinhadeItemdeVenda

quantidade

1..1

1..*

Contido-em

1..1

0..1

Registra-venda-de

1..1

*

Descritos-por

1..1

Page 61: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

GeneralizaçãoGeneralização

No sistema TPV – caso de uso ComprarItens :Os conceitos de PagamentoComDinheiro,

PagamentoComCartãoCrédito e PagamentoComCheque são muitos semelhantes.

Podem ser organizados em uma hierarquia de tipos (ou conceitos).Hierarquia “generalização/especialização”.

Page 62: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

GeneralizaçãoGeneralização Identifica o que há em comum entre conceitos. Permite:

Construir classificações taxonômicas – hierarquias de tipos.

Compreender os conceitos em termos mais gerais e abstratos, ou mais refinados.

Conduz a uma notação mais econômica Evita repetição de informação.

Na implementação, pode ser feita com classes e herança.

Page 63: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

GeneralizaçãoGeneralização Notação UMLNotação UML

ConceitoA

ConceitoA1 ConceitoA2 ConceitoA3

ConceitoA

ConceitoA1 ConceitoA2 ConceitoA3

supertipo –conceito geral

subtipo -conceito especializado

Page 64: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Generalização e TipoGeneralização e Tipo

A definição de um supertipo é mais geral e mais abrangente que a definição de um subtipo. Pagamento: uma transação de transferência de

dinheiro (não necessariamente em espécie) de um comprador para um vendedor.

PagamentoComCartãoCrédito: transferência de dinheiro, via uma instituição de crédito, que necessita ser autorizada.

Propriedade pertinência ao conjuntopertinência ao conjunto: todos os membros de um subtipo são membros do supertipo. ex: PagamentosComCartãoCrédito estão dentro do

conjunto Pagamento.

Page 65: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Regra É-UmTodos os membros de um conjunto subtipo devem ser membros de seu conjunto supertipo.

O Subtipo é um Supertipo.

Page 66: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Pagamento

PagamentoComDinheiro

PagamentoComCartãoCrédito

PagamentoCheque

supertipo –conceito geral

subtipo -conceito especializado

Pagamento

Pagamento Com Dinheiro

Pagamento Com Cheque

Pagamento Com Cartão Crédito

Page 67: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Regra dos 100% 100% da definição do supertipo dever ser aplicada ao subtipo.O subtipo deve estar em conformidade com 100% dos seguintes elementos do supertipo:• Atributos• Associação

PagamentoComDinheiro PagamentoComCartãoCrédito PagamentoComCheque

Pagamento

valor: QuantiaVendaPago-a

Page 68: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Quando definir um subtipo ?Quando definir um subtipo ? Criar subtipos significa particionar um tipo.

Dividir um tipo em subtipos disjuntos. Quando mostrar a partição de um tipo?

Depende da relevância da partição para o domínio do problema.

Ex: No sistema TPV seria útil definir a seguinte hierarquia??

Cliente

ClienteFeminino ClienteMasculino

Page 69: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Dicas de quando particionar...Dicas de quando particionar...

1. Um subtipo tem atributos adicionais de interesse.

1. O subtipo tem associações adicionais de interesse.

1. O conceito do subtipo é tratado, operado ou manipulado de maneira diferente que o supertipo ou outros subtipos, segundo formas que são de interesse considerar.

1. O conceito do subtipo representa algo que se comporta de maneira diferente do supertipo ou de outros subtipos, segundo formas que são de interesse considerar.

Page 70: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

ExemploExemplo

Estudante

Disciplina

Docente

Pessoa

nomeCPF

nro. USP

código

MinistraCursa

*

*

0..3

1..2titulação

Departamento

nomeEstá-vinculada-a

1*atributos em comum

subtipos com atributos e associações adicionais, e comportamento e distintos

Page 71: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Exemplo – Sistema TPVExemplo – Sistema TPV

PagamentoComDinheiro

Pagamentovalor : Quantia

VendaPago-a

PagamentoComCartãoCrédito

CartãodeCrédito

PagamentoComCheque

Cheque

Identifica_crédito_com

1

*Pago_com

1

1

11

Page 72: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

O que fazer???O que fazer???

Empresanome

Pessoanome* *Emprega

Se uma pessoa pode ter mais de um emprego em empresas diferentes, onde colocar a informação de salário????

Empresanome

Pessoanome* *Emprega

Saláriovalor

recebepaga * ***

Uma opção:

Page 73: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Um opção MELHOR: Um opção MELHOR: Tipos AssociativosTipos Associativos

Tipo associativo: seus atributos estão relacionados a uma associação e não a um dos conceitos envolvidos na associação.

Empresanome

Pessoanome* *Emprega

Emprego

salário: Quantia TIPO ASSOCIATIVO

Page 74: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Tipos AssociativosTipos Associativos

Indícios da existência de tipos associativos: Um atributo está relacionado a uma associação. As instâncias do tipo associativo têm tempo de vida

dependente do tempo de vida da associação. Existe uma associação muitos-para-muitos entre dois

conceitos, bem como informações relacionadas à associação propriamente dita.

Page 75: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

AgregaçãoAgregação É um tipo de associação usado para

modelar relacionamentos todo-parte entre coisas.

O todo é geralmente chamado composto, as partes podem ser chamadas componentes.

Notação em UML: losango vazio ou preenchido.Mão Dedo

0..51

COMPOSTOCOMPONENTE

Page 76: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Agregação CompostaAgregação Composta (Losango Preenchido)(Losango Preenchido)

Agregação composta ou composição significa que: A multiplicidade na extremidade do composto

pode ser no máximo 1. Uma instância do componente pode ser parte de

apenas uma instância do composto (simultaneamente).

Existe uma dependência de existência entre o componente e o composto. A existência de uma instância do composto

implica na existência de instâncias dos componentes.

A destruição de uma instância do composto implica na destruição das instâncias dos componentes agregados.

Page 77: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

ExemplosExemplos

Mão Dedo0..51

Um dedo só pode fazer parte de uma mão.

Venda 1..*1

Um item de linha de venda só pode fazer parte de uma venda.

ItemLinhaVenda

1..*1

Uma especificação de produto só pode ser parte de um catálogo.

CatálogoProduto EspecificaçãoProduto

Page 78: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Agregação CompartilhadaAgregação Compartilhada (Losango Vazio)(Losango Vazio)

Agregação compartilhada significa que: A multiplicidade na extremidade do composto pode

sermaior que 1.

Uma instância do componente pode estar simultaneamente em muitas instâncias do composto.

Esse tipo de agregação é raro em agregados físicos, mas aparece em conceitos não-físicos. Exemplo:

SoftwareOO Classe

**

CDtituloano

Músicanomecantor1..n1..n

Page 79: Análise Orientada a Objetos Modelo Conceitual. Processo de Software DEFINIÇÃO CONSTRUÇÃO MANUTENÇÃO SOFTWARE PRODUTO Entendimento Modificação Revalidação

Modelo Conceitual:Modelo Conceitual:Diretrizes para ConstruçãoDiretrizes para Construção

Liste os conceitos candidatos relacionados aos requisitos considerados. Use a Lista de Categorias de Conceitos e a

Identificação de Substantivos. Desenhe os conceitos em um modelo

conceitual. Registre as associações entre conceitos. Acrescente os atributos necessários para

completar os requisitos. Identifique possíveis agregações,

generalizações e tipos associativos.