Modelo Conceitual ou de Domínio Aula 07 Introdução • Modelo conceitual (ou de domínio) é o artefato mais importante construído na análise • Mostra todos os conceitos importantes do domínio do sistema, bem como as associações entre esses conceitos. • Modelo conceitual NÃO está associado ao software, mas sim ao domínio do problema Introdução • É exibido por um conjunto de diagramas de estrutura estática, no qual não se definem operações Modelo Conceitual • Em UML é possível ilustrar um Modelo conceitual como sendo um diagrama de classes sem a definição de operações. – Objetos do domínio – Atributos – Associações entre os objetos Exemplo Venda data hora 1 1 Pago-por Pagamento quantia Diagrama Conceitual Conceitos x Software • Certo • Errado Como Identificar Conceitos ? • Alguns conceitos são bastante óbvios quando se descreve o sistema, como por exemplo os conceitos Leitor e Livro quando se fala em um sistema de Biblioteca. Como Identificar Conceitos ? • Entretanto, muitos conceitos estão geralmente implícitos e requerem uma maior maturidade do analista para descobri-los. • Por exemplo, o conceito de Empréstimo, no mesmo sistema de Biblioteca, poderia passar despercebido por um analista inexperiente, que o colocaria como uma associação entre Leitor e Livro. Como Identificar Conceitos ? • Dicas básicas: • Passo 1: Isole, no documento de requisitos ou na descrição dos casos de uso elaborados na fase anterior, todos os substantivos presentes no texto Passo 1: Isolar os substantivos Ação do ator Resposta do Sistema 1. Este caso começa quando o Leitor chega ao balcão de atendimento da biblioteca e diz ao atendente que deseja emprestar um ou mais livros da biblioteca.. 2. O Atendente seleciona a opção para adicionar um novo empréstimo. . 3. O atendente solicita ao leitor sua carteirinha, seja de estudante ou professor. 4. O atendente informa ao sistema a identificação do leitor. 5. O sistema exibe o nome do leitor e sua situação. 6. O atendente solicita os livros a serem emprestados. 7. Para cada livro, o atendente informa ao 8. O sistema informa a data de sistema o código de identificação do livro. devolução de cada livro. Exemplo: Biblioteca • Lista de candidatos: Leitor Carteirinha Data de devolução Balcão Estudante Identificação de leitor Livros Biblioteca Professor Empréstimo Cód identificação do livro Nome do leitor Atendente Sistema Opção Como Identificar Conceitos ? • Dicas básicas: • Passo 2: Para cada substantivo – Verifique se é relacionado a assuntos importantes no domínio do sistema. – Descarte: • Os que são similares a outros conceitos já identificados, • Os que são meramente propriedades de outros. Exemplo: Biblioteca • Lista de candidatos: Leitor Carteirinha X Data de devolução X Balcão X Estudante Identificação leitorX Biblioteca Professor Livros Empréstimo Cód identificação do livro X Nome do leitor X Atendente Sistema X Opção X Como Identificar Conceitos ? • Dicas básicas: • Passo 3: Isole os verbos que poderiam ser transformados em substantivos (possivelmente com a ajuda de outras palavras). – Concentre-se nos verbos que representam ações de interesse para o sistema, ou seja, aqueles relacionados a eventos e transações que possuem informações importantes e que devem ser lembradas pelo sistema. Exemplo: Biblioteca Ação do ator Resposta do Sistema 1. Este caso começa quando o Leitor chega ao balcão de atendimento da biblioteca e diz ao atendente que deseja emprestar um ou mais livros da biblioteca. 2. O Atendente seleciona a opção para adicionar um novo empréstimo. 3. O atendente solicita ao leitor sua carteirinha, seja de estudante ou professor. 4. O atendente informa ao sistema a identificação do leitor. 5. O sistema exibe o nome do leitor e sua situação. ... ... ... Exemplo: Biblioteca Lista de Candidatos: Emprestar X Adicionar X Informar X ... Já havia sido acrescentado Pelo substantivo Empréstimo Como Identificar Conceitos ? • Dicas básicas: • Passo 4: Para cada candidato a conceito, verifique se ele é composto de outras partes que sejam de interesse para o sistema, mesmo que essas não apareçam explicitamente no texto. – Por exemplo, um empréstimo normalmente refere-se a vários livros emprestados em uma mesma ocasião para um mesmo leitor. Conceito • Símbolo: palavra ou imagem representando um conceito. Ex. Venda • Intenção: a definição de um conceito. Ex. Representa uma transação de compra e tem uma data e hora • Extensão: o conjunto de exemplos (instância) ao qual o conceito se aplica: Ex. Venda – 1, Venda ao Joaozinho. Estudo de Caso: Conceitos no Sistema PDV TPV Venda Loja • Como identificar conceitos em um sistema ? Estratégias para Identificar Conceitos • Lista de Categorias de Conceitos (apresentado a seguir) • Identificação de Substantivos É melhor especificar em excesso um modelo conceitual com muitos conceitos de granulosidade fina do que subespecificá-lo Conceitos • Objetos físicos ou tangíveis: TPV, Carro,Aeronave • Especificação de Projetos ou descrição de coisas: EspecificaçãodeProduto, ListadeVerificação • Lugares: Loja, Aeroporto • Transações: Venda, Pagamento, Reserva • Linha de Itens de Transações: LinhaItemdeVenda • Papéis desempenhados por pessoas: Caixa • Contêineres de outras coisas: Depósito, Armário, Aeronave • Coisas em um contêiner: Item, Passageiro • Catálogos: Catálogo de Produtos, de Peças etc. Estudo de Caso: Identificação de Substantivos 1. Este caso de uso começa quando um Cliente chega a um ponto de pagamento equipado com um TPV com vários itens que deseja comprar. 2. 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 ATENÇÃO: Alguns dos substantivos são candidatos a conceitos e outros são candidatos a atributos A linguagem natural é imprecisa e essa definição depende do conhecimento e experiência do engenheiro de software, embora haja diretrizes disponíveis. Conceitos candidatos para o domínio PDV, restritos ao caso de uso Comprar Itens TPV Item Loja Venda Pagamento CatálogodeProdutos EspecificaçãodeProduto LinhadeItemdeVenda Caixa Cliente Gerente Objetos do tipo relatório: incluir no modelo? • Um recibo é um relatório (uma saída do sistema) de uma venda. A informação nele contida é derivada de outras fontes. Esta é uma razão para excluí-lo. • Um recibo desempenha um papel especial em termos das regras do negócio. Confere ao portador o direito de retornar o item comprado. Esta é uma razão para incluí-lo. • Uma vez que retornos não estão sendo tratados neste ciclo, Recibo será excluído. Diretrizes para construir um modelo conceitual • Liste os conceitos candidatos, usando a Lista de Categorias de Conceitos e a identificação de substantivos, relacionados com os requisitos que estão sendo considerados. • Desenhe-os em um modelo conceitual. • Registre as associações para as quais há necessidade de preservar alguma memorização. • Acrescente os atributos necessários para completar os requisitos de memorização. Como identificar um atributo • Regra Prática: se você não pensa em um conceito X como um número ou um texto no mundo real, então X é provavelmente um conceito e não um atributo. • Ex. Domínio de reserva de passagens aéreas Vôo Destino ou Vôo Aeroporto Nome • Em caso de dúvida, torne-o um conceito separado Como resolver o conflito de conceitos semelhantes • TPV ou Caixa Registradora ou Registro? • Regra prática: Um modelo conceitual não é absolutamente correto ou errado, mas, sim, mais útil ou menos útil; ele é uma ferramenta de comunicação. O que acontece quando o mundo é irreal, abstrato ? • Exemplo: software de telecomunicações. • Os conceitos são então abstratos, embora relacionados ao domínio de aplicação. • Exemplo: Mensagem, Conexão, Diálogo, Roteamento, Protocolo. O Conceito de Especificação, ou de Descrição • O que aconteceria se todas as TVs de 19” fossem vendidas ? • Como fazer para saber o preço desse item de venda ? Item Descrição Preço número série Produto Item 1 ou..? Descrição Preço * descreve número série Quando utilizar especificações • Acrescente um conceito de especificação ou descrição quando: – Estiver excluindo instâncias de coisas que elas descrevem e isso resulta numa perda de informação que necessita ser mantida, devido à associação incorreta da informação com a coisa excluída – Ele reduz informação redundante ou duplicada Termos em UML Classe é uma descrição de um conjunto de objetos que compartilham os mesmo atributos, operações, métodos, relacionamentos e semântica. Tipo é definido da mesma forma que classe, excluindo métodos. Uma operação é um serviço solicitado a um objeto para produzir um comportamento. Um método é uma implementação de uma operação que especifica o algoritmo ou procedimento usado pela operação. Termos em UML (cont.) • Em UML, uma classe implementada é chamada de uma “classe de implementação” • O termo interface é definido como um conjunto de operações externamente visíveis, podendo estar associados a tipos e classes. Como o livro usa os termos • O termo “conceito” será usado para se referir a coisas do mundo real e “classe” para se referir a especificações de software. • Conceito e tipo são usados como sinônimos. Modelo de Análise • É composto dos seguintes artefatos: – Modelo de análise de casos de uso • Casos de Uso: alto nível e essencial • Diagramas de Casos de Uso – Modelo Conceitual • Diagrama da Estrutura Estática para Conceitos do Domínio – Modelo de Comportamento do Sistema • Diagrama de Seqüências do Sistema • Contratos para Operações do Sistema – Modelo de Análise dos Estados • Diagrama de Estados Associações Capítulo 10 Definições • Associação é um relacionamento entre conceitos que indica uma conexão com significado e interesse. • Em UML são descritas como “relacionamentos estruturais entre objetos diferentes” associação PDV 1 Registra-a-corrente Notação: nome da associação, multiplicidade, direção de leitura (default, opcional) 1 Venda Multiplicidade zero ou mais * C Muitos (as) 1..* C um ou mais 1..40 C um a quarenta 5 C exatamente cinco 3,5,8 C exatamente três, cinco ou oito Critérios para incluir associações • Quando o conhecimento associado necessita ser preservado por algum tempo (minutos, dias, anos,...) (“necessário-serconhecida”) • É mais importante identificar conceitos do que associações. • Excesso de associações pode tornar o modelo conceitual confuso. • Evite mostrar associações redundantes ou deriváveis. Lista de Associações Comuns • A é uma parte física de B: Gaveta-TPV, AsaAeronave • A é uma parte lógica de B: LinhadeItemVenda-Venda, PernadeVôoRotadeVôo • A está fisicamente contida em/sobre B: TPVLoja, Item-Prateleira, VôoProgramaçãodeVôo • A está logicamente contida em B: DescriçãodoItem – Item, DescriçãodoVôoVoo • Etc. (ver livro, seção 10.4) Papéis • Cada extremo de uma associação é chamado de papel. • Os papéis podem ter, opcionalmente, as seguintes propriedades: – Nome – Expressão de multiplicidade – Navegabilidade Nomes de associações Armazém 1 Contém 1..* Captura Pago-por TPV Venda 1 1..* Pagamento 1 1 Associações múltiplas entre dois Tipos (conceitos) Aeroportochegada * Vôo voa-para 0..1 Aeroporto voa-de * 1 Aeroporto -saída Modelo conceitual para o domínio do PDV Registra-venda-de Descritos-por 1 Catálogo de Produtos 0..1 * 1 LinhadeItemdeVenda quantidade 1..* Contido-em 1 Venda data tempo Paga-por Usado-por Descreve * Estoca Item 1 * 1 * Possui 1..* Capturada-em Iniciada-por Pagamento quantia Especificação de Produto descrição preço UPC 1 v 1 1 1..* 1 * Loja 1..1 endereço nome Registra-Dados-da 1 1 Contém TPV 1 Iniciado por 1..* Gerente 1 1 1 Cliente < Registra-Vendas-do 1 Caixa