ANÁLISE E PROJETO ORIENTADO A OBJETO

Documentos relacionados
Modelo Conceitual. SSC 526: Análise e Projeto Orientados a Objetos Profa. Dra. Elisa Yumi Nakagawa

UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA

Modelagem de Casos de Uso (Parte 1)

Universidade de São Paulo, Instituto de Ciências Matemáticas e de Computação

Casos de Uso. SSC-121 Engenharia de Software I. Profa. Dra. Elisa Yumi Nakagawa 2º semestre de 2012

Modelo Conceitual. Prof. Seiji Isotani Slides baseados no material da Profa Dra Rosana T. V. Braga

Modelos de Sistemas Casos de Uso

DIAGRAMAS DE CLASSE UML

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

Análise e Projeto Orientados a Objetos

Análise e Projeto Orientados a Objetos

Introdução. à UML. Histórico (cont.) Histórico Definição Benefícios Notação Diagrama de Classes Diagramas de Interação Conclusões Revisão

Análise e Projeto de Sistemas

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

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

PROJETO DE ARQUITETURA

Requisitos de Software e UML Básico. Janaína Horácio

Casos de Uso. Análise e Projeto Orientados a Objetos. Profa Dra Rosana T. V. Braga

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

Diagrama de Casos de Uso

Engenharia de Software I

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

Tópicos da Aula. A Linguagem UML. A Linguagem UML. De onde surgiu? Fundadores da UML. Introdução à UML e Diagrama de Casos de Uso.

Descrição de Casos de Uso (Casos de Uso Textuais) SSC 124: Análise e Projeto Orientados a Objetos Profa. Dra. Elisa Yumi Nakagawa

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

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

ANÁLISE E PROJETO ORIENTADO A OBJETO (Parte 3)

UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA

Contratos O diagrama de sequência não menciona a funcionalidade das operações. Isto é, o comportamento do sistema Contrato é um documento que

Processo de Desenvolvimento de Software

O Processo Unificado (PU) SSC 121 Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012

FUNDAÇÃO UNIVERSIDADE ESTADUAL DE MARINGÁ

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

Modelagem de Software

Departamento de Sistemas de Computação Universidade de São Paulo Análise e Projeto Orientados a Objetos Aula 2 O Processo Unificado (PU)

Projeto Integrador II. Princípios de Análise e Projeto de Sistemas com UML (livro de Eduardo Bezerra)

Requisitos de sistemas

A Linguagem UML. A Linguagem UML. De onde surgiu? Fundadores da UML. História da UML. O que é modelagem?

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

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

ENGENHARIA DE SOFTWARE. Aula 07 UML - Diagrama de Casos de Uso

Aula 7 Visibilidade entre objetos e Diagramas de Classes

Diagramas de Sequência do Sistema e Contratos de Operações. SSC-121 Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2º semestre de 2012

Análise do Sistema Casos de Uso

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

Modelagem de dados usando o modelo Entidade- Relacionamento (ER)

Análise de Sistemas. Aula 5

Aula 5 Diagramas de Seqüência do Sistema e Contratos de Operações

Unidade 4 Projeto de Banco de Dados

Programação para Games II. Professor Ariel da Silva Dias Orientação a Objetos

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

Metodologias de Desenvolvimento (I)

ID do documento: Data documento: / / Responsável pelo documento:

Diagrama de Casos de Uso

Use Cases e Fluxo de Eventos. Use Case e Ator. Objetivos. Algumas Definições. Algumas Definições

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

Engenharia de Software II

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

Diagrama de Classes. Prof. Maikel Linares

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

Linguagem de Modelagem Unificada UML

RAD Desenvolvimento de Sistemas de Informação

Notas de Aula 03: Introdução a Orientação a Objetos e a UML

Diagramas de Classes. Diagramas de Classes. Diagramas de Classes. Análise e Projeto de Sistemas OO

Modelagem de Casos de Uso. Sistemas de Informação

Departamento de Engenharia Industrial. ENG Sistemas de Informação Gerenciais Caso de Uso - Exercícios

A modelagem é tida como a parte central de todas as atividades para a construção de um bom sistema, com ela podemos:

Análise e Projeto de Software Parte II. Marcos Dósea

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

Processo de Desenvolvimento

INF1013 MODELAGEM DE SOFTWARE

Modelagem Orientada a Objeto

Fatec Ipiranga - Engenharia de Software I 18/02/2013. Agenda. 0. Relembrando os Relacionamentos do Diagrama de Classes

Modelagem de Casos de Uso (Parte 2)

INF1404 MODELAGEM DE SISTEMAS

5 Processo de Reificação e de Desenvolvimento com ACCA

Processo Unificado. Leonardo Gresta Paulino Murta

Introdução a UML. Aula 04 Analise de Sistemas Profª Rita de Cassia Gaieski

Processos de Software by Pearson Education Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1

MODELAGEM DE SISTEMAS. Introdução a Computação e Engenharia de Software. Profa. Cynthia Pinheiro

Modelagem Usando Orientação à Objetos (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus

UML Aula I Diagramas de Caso de Uso. Ricardo Argenton Ramos

ANÁLISE DE SISTEMAS UML. por. Antônio Maurício Pitangueira

2 Fluxos no Ciclo de Vida do Processo Unificado. O Processo Unificado consiste da repetição de uma série de ciclos durante a vida de um sistema.

Engenharia de Software. Herbert Rausch Fernandes

Modelagem de Casos de Uso

RUP Unified Process. Profª Jocelma Rios

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

Fase de Concepção. Levantamento e Organização de Requisitos

MDS II Aula 04. Concepção Requisitos Diagrama de Casos de Uso (Use Cases)

Introdução. Diagramas de Interação. Introdução. Introdução. Introdução. Introdução. Os modelos de análise não respondem a algumas perguntas:

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

Modelo conceitual Aula 08

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

Documento de Especificação de Requisitos

Transcrição:

ANÁLISE E PROJETO ORIENTADO A OBJETO Profª Andrea Padovan Jubileu Desenvolvimento Iterativo de Software (LARMAN, 2007) Modelo de Domínio

O que aconteceu na fase de Concepção? Duração: no máximo semana Os artefatos criados são curtos e incompletos A investigação é feita por alto, determinando a viabilidade, risco e escopo básicos para decidir se o projeto merece investigação mais séria Algumas atividades realizadas e artefatos criados: Um seminário curto de requisitos A maioria dos atores, objetivos e casos de uso deve ser nomeada A maioria dos casos de uso deve ser escrita em formato resumido; 0 a 20% dos casos de uso devem ser escritos com detalhes completos para melhorar a compreensão do escopo e da complexidade Devem ser identificados os requisitos mais influentes e mais arriscados quanto à qualidade A versão da Visão e da Especificação Suplementar deve ser escrita. Lista de riscos São feitos protótipos para demonstração de conceitos técnicos, bem como outras investigações para explorar a viabilidade técnica de requisitos especiais São feitos protótipos voltados para a interface com o usuário para esclarecer a visão de requisitos funcionais Recomendações sobre quais componentes comprar/construir/reusar, que serão refinadas na fase de elaboração. Proposta em alto nível de uma arquitetura candidata e proposta de componentes Um plano para a primeira iteração Lista de ferramentas candidatas

ELABORAÇÃO - Processo Unificado - No início do desenvolvimento usando o PU, deve-se planejar quantas iterações serão necessárias para alcançar os objetivos do sistema; as partes mais importantes devem ser priorizadas e alocadas nas primeiras iterações. a primeira iteração deve estabelecer os principais riscos e o escopo inicial do projeto, de acordo com a funcionalidade principal do sistema. A fase de elaboração é a série inicial de iterações durante a qual: A arquitetura central e de alto risco do software é programada e testada A maioria dos requisitos é descoberta e estabilizada Os principais riscos são mitigados ou retirados Freqüentemente, essa fase consiste de duas ou mais iterações Recomenda-se que cada iteração tenha entre duas a seis semanas

ELABORAÇÃO - Processo Unificado - Algumas idéias-chave e melhores práticas para a fase de elaboração: Escrever a maioria dos casos de uso e outros requisitos em detalhes Fazer iterações curtas dirigidas pelos riscos Começar a programar e testar cedo Projetar de maneira adaptativa, implementar e testar a parte central e as partes de risco da arquitetura Adaptar de acordo com a realimentação obtida dos testes, usuários e desenvolvedores

ELABORAÇÃO - Processo Unificado - Artefatos iniciados nessa fase: Modelo de Domínio: visualização dos conceitos do domínio; é similar a um modelo estático de informação das entidades do domínio. Modelo de Projeto: conjunto de diagramas que descreve o projeto lógico. Inclui, dentre outros, diagramas de classes de software e de interações. Documento de Arquitetura de Software: resume os problemas-chave de arquitetura e sua solução no projeto. Modelo de Dados: incluiu os esquemas de banco de dados e as estratégias de mapeamento entre as representações de objetos e não-objetos. Modelo de Teste: uma descrição do que será testado e como. Storyboards de Casos de Uso e Protótipos IU: uma descrição da interface do usuário, de trajetórias de navegação, modelos de utilização, etc.

ELABORAÇÃO - Processo Unificado - Disciplina Artefato Iteração -> Concepção C Elaboração E...En Construção Ct...Ctn Transição T...Tn Modelagem de Negócio Modelo de domínio (*) Requisitos Modelo de casos de uso (*) i r i Visão i r Especificações suplementares (*) i r Glossário i r Projeto Modelo de projeto (*) i r Documento de arquitetura do software i Implementação... Modelo de dados i r

Modelo de Domínio Um modelo de domínio é uma representação visual de classes conceituais, ou objetos do mundo real, em um domínio e de associações entre esses conceitos. Também denominado Modelo Conceitual, Modelo de Objetos do Domínio e Modelos de Objetos da Análise. Ajuda a esclarecer a terminologia ou vocabulário do domínio. A idéia é entender os principais elementos do domínio que estão envolvidos no sistema a ser desenvolvido. Não mostra artefatos de software ou classes. Está limitado, na sua primeira versão, pelos cenários de caso de uso em desenvolvimento na atual iteração. 7

Modelo Conceitual (cont.) Na UML, ilustrado com diagramas de estruturas estáticas contendo: Objetos do domínio ou classes conceituais (conceitos) Associações entre conceitos Atributos de conceitos UML usa o termo genérico classe para denotar tanto entidades do domínio da aplicação quanto classes na POO Uma classe na POO é chamada mais especificamente de classe de implementação 8

Modelo Conceitual (cont.) Entradas para o modelo conceitual: Conceitos dos casos de uso relacionados e Visão aprofundada dos especialistas Utilização do modelo conceitual: Contratos de operação Glossário Modelo de projeto (especialmente os objetos de software na camada de domínio) 9

Como identificar conceitos? Método Reusar ou modificar os modelos existentes. Existem modelos de domínio e modelos de dados já publicados que foram bem concebidos para vários domínios comuns, como controle de estoque, financeiro, etc. 0

Como identificar conceitos? Método 2 Passo : Isole, no documento de requisitos ou na descrição dos casos de uso elaboradas, todos os substantivos presentes no texto

Como identificar conceitos? (cont.) Exemplo. 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 um deles, informa ao sistema o código de identificação do livro. 8. O Sistema informa a data de devolução de cada livro. 2

Como identificar conceitos? (cont.) Lista de candidatos: Exemplo Leitor Balcão Biblioteca Atendente Livros Opção Empréstimo Carteirinha Estudante Professor Sistema Identificação de leitor Nome do leitor Código de identificação do livro Data de devolução... 3

Como identificar conceitos? (cont.) Método 2 Passo 2: Para cada substantivo verifique se é relacionado a assuntos importantes no domínio do sistema. Descarte: os que fogem do escopo do sistema os que são similares a outros conceitos já identificados os que são propriedades de outros substantivos 4

Como identificar conceitos? (cont.) Lista de candidatos: Exemplo Leitor Balcão Biblioteca Atendente Livros Opção Empréstimo Carteirinha Estudante Professor Sistema Identificação de leitor Nome do leitor Código de identificação do livro Data de devolução... 5

Como identificar conceitos? (cont.) Método 2 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. 6

Como identificar conceitos? (cont.) Exemplo. 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 um deles, informa ao sistema o código de identificação do livro. 8. O Sistema informa a data de devolução de cada livro. 7

Como identificar conceitos? (cont.) Exemplo Lista de candidatos: Emprestar Adicionar Informar... Já foi selecionado pelo substantivo empréstimo 8

Como identificar conceitos? (cont.) Método 2 Passo 4: Para cada candidato a conceito, verifique se ele é composto de outras partes que sejam de interesse do sistema, mesmo que essas não apareçam explicitamente no texto. Por exemplo, um empréstimo normalmente referese a vários livros emprestados em uma mesma ocasião para um mesmo leitor. Assim, Linha Do Empréstimo é um outro conceito (Obs: poderia ser também Item Do Empréstimo ) 9

Como identificar conceitos? (cont.) Substantivos sublinhados a partir do texto do caso de uso podem ser candidatos a atributos dos conceitos já identificados Cautela: não torne o modelo conceitual muito complexo desnecessariamente Limite-se a adicionar os atributos importantes para compreender o conceito, ou atributos que serão importantes para o futuro projeto do sistema 20

Como identificar conceitos? (cont.) Exemplo 2

Conceitos Cuidado! Idéias, coisas, ou objetos do mundo real não representam componentes de software! evitar BancodeDados Artefato de software; não faz parte do modelo evitar data hora Venda imprimir() Classe de software; não faz parte do modelo conceitual 22

Lista de Categoria de Conceitos Método 3 : usar uma Lista de Categoria de Conceitos Típicos Categoria Exemplos Objetos físicos Especificação de projetos ou descrição de coisas Lugares Transações de negócio Itens de transação Papéis de pessoas Container de coisas POST Avião Especificação de produto Descrição de vôo Loja Aeroporto Venda, Pagamento Reserva Itens de venda Operador Piloto Depósito, Armário, Aeronave 23

Lista de Categoria de Conceitos (cont.) Categoria Coisas em um container Sistemas externos Item Passageiro Exemplos Sistema de Autorização de Crédito Conceitos e substantivos abstratos Organizações Eventos Regras e políticas Fome Aerofobia Departamento de vendas Companhia aérea Venda, Roubo, Reunião Vôo, Decolagem Política de reembolso Política de cancelamento 24

Modelo Conceitual Método 3 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 Acrescente as associações necessárias para registrar os relacionamentos para os quais existe a necessidade de preservar alguma memorização Acrescente os atributos necessários para completar os requisitos de informação 25

Modelo Conceitual (cont.) Erro comum: atributo ao invés de conceito Atributos normalmente correspondem a um texto ou número no mundo real A especificação ou descrição de um objeto deve ser representada como um conceito em separado evita perda de informação quando o objeto é excluído reduz informações redundantes ou duplicadas Muito comum no domínio de produtos e vendas pior Item descrição preço número serial UPC melhor EspecificaçãoProduto descrição preço UPC Descreve * Item Número serial 26

Modelo Conceitual (cont.) outro exemplo: Vôo Data Número hora * Voa-para Aeroporto nome pior data hora Vôo * Descrito-por Descrição-Vôo número * melhor Descreve-vôo-para Aeroporto nome 27

Conceitos Candidatos para o Sistema POST Post Item Loja Venda Item de Venda Operador Cliente Gerente Pagamento Catálogo Produtos Especificação de Produtos Conceitos restritos ao caso de uso Comprar Itens - Versão expandida (3 próximos slides) 28

Casos de Uso Exemplo de um caso de uso expandido: Caso de uso: Atores: Finalidade: Visão Geral: Tipo: Referências Cruzadas: Comprar Itens com Dinheiro Cliente, Operador Capturar uma venda e seu pagamento em dinheiro. Um Cliente chega no caixa, com itens que deseja comprar. O Operador registra os itens de compra e recebe um pagamento em dinheiro. Ao final, o Cliente deixa a loja com os itens. Primário e Essencial Funções: R., R.2, R.3, R.7, R.9, R2. 29

Casos de Uso Seqüência Típica de Eventos Ação do Ator. Este caso de uso começa quando um Cliente chega no caixa (equipado com um POST) com itens que deseja comprar. 2. O Operador registra o identificador de cada item. Se houver mais de um exemplar do mesmo item, o Operador também pode informar a quantidade. 4. Após processar o último item, o Operador indica ao POST que a entrada de itens terminou. 6. O Operador informa o total ao Cliente. Resposta do Sistema 3. Determina o preço do item e adiciona informação sobre o item à transação de venda corrente. Mostra a descrição e o preço do item corrente. 5. Calcula e mostra o valor total da venda. 30

Casos de Uso Seqüência Típica de Eventos Ação do Ator 7. O Cliente entrega um pagamento em dinheiro, possivelmente maior do que o valor total. 8. O Operador registra o valor recebido em dinheiro. 0. O Operador deposita o dinheiro e retira o troco devido. O Operador entrega o troco e o recibo ao Cliente. 2. O Cliente sai com os itens comprados. Resposta do Sistema 9. Mostra o troco devido e emite um recibo.. Registra a venda no log de vendas completadas Seqüências Alternativas Linha 7: Cliente não tem dinheiro suficiente. Cancelar transação. 3

Modelo Conceitual Parcial Sistema POST Conceito Item de Venda Registra-venda-de Item quantidade..* 0.. * Associação Contido-em Armazenado-em Venda Depósito Atributos data hora endereço nome Aloja Pago-por..* Pagamento quantia Capturado-no POST 32

Associações Uma associação é um relacionamento entre conceitos que indica uma conexão com significado e interesse Indicam conhecimento de um relacionamento que precisa ser preservado durante algum tempo Duração de milisegundos ou anos, dependendo do contexto Entre quais objetos necessitamos ter alguma memória de um relacionamento? 33

Identificando Associações Regra : Um conceito que, fisicamente ou logicamente, faz parte de outro. Por exemplo, um livro que está fisicamente armazenado em uma estante ou um Item de Empréstimo que logicamente faz parte do Empréstimo. Regra 2: Um conceito que serve para descrever ou qualificar outro conceito. Por exemplo, um Livro pode ser classificado em diversas Categorias ou por Autor; um Item de Estoque que é descrito por uma Especificação de Produto. Regra 3: Um conceito que é responsável por registrar ou manter informações sobre outro. Por exemplo, o Atendente é quem registra e atende o Leitor; a Bibliotecária é responsável pelos Livros. 34

Identificando Associações Regras úteis: Focaliza-se naquelas associações para as quais o conhecimento do relacionamento necessita ser preservado por algum tempo É mais importante identificar conceitos do que identificar associações O excesso de associações tende a tornar um modelo conceitual confuso, ao invés de esclarecê-lo 35

Lista de Categoria de Associações Típicas Categoria A é uma parte física de B (*) A é uma parte lógica de B (*) A está fisicamente contido em/sobre B (*) A está logicamente contido em B (*) A é uma descrição de B A é um item de uma transação ou relatório B A é conhecido/registrado/reportado/capturado em B (*) Gaveta - POST Asa Avião Exemplos Item de Venda - Venda Escala Vôo POST - Loja Passageiro Avião Descrição-Item - Catálogo Vôo - Roteiro de Viagem Descrição-Item - Item Descrição-Vôo Vôo Item de Venda - Venda Opção de Reserva Reserva Venda - POST Reserva - Terminal de Reserva 36 (*) alta prioridade

Lista de Categoria de Associações Típicas (cont.) Categoria A é um membro de B A é uma sub-unidade organizacional de B A usa ou gerencia B A se comunica com B A está relacionado com uma transação B A é uma transação relacionada com outra transação B A é possuído por B Operador - POST Piloto Avião Exemplos Operador - Loja Piloto - Companhia Aérea Departamento - Loja Manutenção - Companhia Aérea Cliente - Operador Agente de Reserva Passageiro Cliente - Pagamento Passageiro Bilhete Pagamento - Venda Reserva Cancelamento POST - Loja Avião - Companhia Aérea 37

Associações Notação na UML Uma linha entre dois conceitos mais um nome Inerentemente bidirecional Pode conter um seta de direção de leitura Pontas podem conter expressões de multiplicidade EspecificaçãoProduto Descrição Preço UPC descreve * Item Númeroserial 38

Papéis de uma Associação Cada extremidade de uma associação é chamada de um papel Um papel pode ter: Nome Expressão de multiplicidade Navegabilidade Loja Estoca * Item 39

Associações na UML É interessante nomear uma associação com base no formato NomeDaClasse-FraseComVerbo-NomeDaClasse. Atendente-Registra-Leitor 40

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

Associações na UML 42

Associação Reflexiva 43

Especialização/Generalização Herança é um mecanismo que permite que características comuns a diversos tipos sejam colocadas em um tipo base, ou supertipo. A partir de um tipo base, outros tipos podem ser especificados (os subtipos). Cada subtipo apresenta as características (estrutura e atributos) do supertipo e acrescenta a ele novas características. Dizemos que um subtipo herda todas as propriedades do supertipo e acrescenta suas características próprias e exclusivas. As propriedades do supertipo não precisam ser repetidas em cada subtipo. 44

Especialização/Generalização 45

Regras de Herança A regra é-um estabelece que todos os membros do conjunto de um subtipo devem ser membros do conjunto do supertipo, ou seja o subtipo é um supertipo. Por exemplo, podemos dizer que um microondas digital é um forno, e por isso possui todos os atributos (e comportamentos) esperados de um forno. 46

Regras de Herança A regra dos 00% estabelece que 00% da definição do supertipo dever ser aplicado ao subtipo Se o supertipo possui um dado atributo, é necessário garantir que todos os subtipos também o possuam, ou seja, ele deve fazer sentido para elas e deve ser importante conhecer seu conteúdo. O mesmo vale para as associações do supertipo, que devem ser aplicáveis aos subtipos. 47

Agregação Agregação é um mecanismo pelo qual um tipo inclui atributos (e comportamento) de outros tipos a ele agregados, indicando a existência de um todo, composto por partes. Um exemplo de agregação é um carro: consiste de 4 rodas, um motor, chassis, caixa de câmbio, e assim por diante. 48

Agregação Compartilhada A destruição de um objeto todo não implica necessariamente a destruição do objeto parte. Pacote de UML referencia * Elemento de UML Equipe 2..N Jogador Ex.: se uma das equipes das quais um jogador é membro for extinta por algum motivo, este jogador ainda poderá continuar membro de outras equipes. 49

Agregação Composta As partes pertencem a um único todo. As partes são criadas e destruídas com ele. Pedido ItensPedido..N Tabuleiro 40 Casa 50

Tipo Associativo É uma associação que também possui propriedades de tipo (ou um tipo que tem propriedades de uma associação). É mostrada como um tipo e é ligada por uma linha tracejada a uma associação. 5

Tipo Associativo Indícios de que um tipo associativo pode ser útil em um modelo conceitual: Um atributo está relacionado com uma associação As instâncias do tipo associativo têm um 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 52

Exemplo 53

Exemplo 2 Aplicando a lista de Associações Típicas Sistema Post Categoria Sistema POST A é uma parte física de B (*) Não aplicável A é uma parte lógica de B (*) A está fisicamente contido em/sobre B (*) A está logicamente contido em B (*) A é uma descrição de B A é um item de uma transação ou relatório B A é conhecido/registrado/reportado/capturado em B (*) Item de Venda Venda POST Loja Item Loja EspecificaçãoProduto CatálogoProdutos CatálogoProdutos Loja EspecificaçãoProduto Item ItemVenda Venda Venda (corrente) POST Vendas (completada) Loja 54

Aplicando a lista de Associações Típicas - Sistema Post Categoria Sistema POST A é um membro de B Operador - Loja A é uma sub-unidade organizacional de B A usa ou gerencia B A se comunica com B A está relacionado com uma transação B A é uma transação relacionada com outra transação B A é possuído por B Não aplicável Operador POST Gerente POST Cliente Operador Cliente Pagamento Operador Pagamento Pagamento Venda POST Loja 55

Adicionando Associações ao Modelo Conceitual - Sistema S POST Relacionamentos fundamentais Venda Capturada-em POST Para conhecer a venda corrente, calcular total e imprimir recibo Venda Paga-por Cliente Para saber se a venda foi paga, calcular troco, e imprimir recibo Catálogo-Produto Contém Especificação-Item Para obter a especificação de um item, dado um UPC 56

Eliminando associações redundantes ou desnecessárias Associações cujo conhecimento não precisa ser preservado podem ser removidas do modelo: Associação Venda iniciada-por Operador Operador registra-vendas-em POST Consideração Conhecimento não exigido nos requisitos; derivável da associação Operador registra-vendas-em POST. Conhecimento não exigido nos requisitos. POST inicializado-por Gerente Conhecimento não exigido nos requisitos. Venda iniciada-por Cliente Conhecimento não exigido nos requisitos. Loja armazena Item Conhecimento não exigido nos requisitos. ItemVenda registra-venda-de Item Conhecimento não exigido nos requisitos. 57

Conceitos e Associações candidatos para o POST registra-venda-de descrito-por Catálogo de Produtos contém..* Especificação de Produto Pagamento 0.. contido-em paga-por Item Venda..* Venda * * capturada-por iniciada-por Cliente log-vendas realizadas * Loja usado-por * estoca Item * possui..* POST iniciado-por Gerente registra-venda-no iniciada-por Operador descreve 58

Preservando Associações de Compreensão Preservar apenas associações de conhecimento pode resultar em um modelo que não transmite um completo entendimento do domínio: Exemplo: venda iniciada-por cliente Remoção deixa de fora um aspecto importante do domínio - o fato de que um cliente gera uma venda Regra geral é enfatizar associações de conhecimento, mas preservar associações que enriquecem o entendimento do domínio 59

Atributos Um atributo é um dado lógico de um objeto do domínio Definidos para conceitos cujos requisitos (casos de uso) sugerem a necessidade de preservar algum tipo de informação Ex.: atributos data e hora para o conceito Venda Atributos devem preferencialmente representar tipos primitivos de dados ou de valores simples Ex.: Data, Número, Texto, Hora, Endereço, etc. Notação na UML Atributos data hora Venda 60

Atributo Derivado Um atributo derivado é um atributo cujo valor pode ser deduzido a partir de outras informações Ex.: quantidade em Item Venda - pode ser deduzido a partir da multiplicidade da associação entre Item Venda e Item Na UML, indicado com o símbolo / 6

Adicionando Atributos aos Conceitos Candidatos do Sistema POST Conceito Atributos e justificativa Pagamento EspecificaçãoProduto Venda ItemVenda Loja quantia - Para determinar se pagamento é suficiente e calcular troco. descrição - Para mostrar na tela e imprimir no recibo. UCP - Para localizar especificação do item. preço - Para calcular o total da venda. data, hora - Para imprimir no recibo e registrar no log de vendas. quantidade - Para registrar a quantidade digitada quando há mais de um do mesmo item. nome, endereço - Para imprimir no recibo. 62

Modelo Conceitual Inicial do POST Registra-venda-de Um item da venda pode estar associado a vários itens, portanto, quantidade pode ser obtida através da multiplicidade do relacionamento ItemVenda e Item 0.. Contido-em Paga-por LinhaDeItem DeVenda /quantidade Venda *..* * Captada-em 0.. Iniciada-por Registratérmino-de Descrito-por Catálogo de Produtos Loja Registradora Usado-por * Abriga..* Contém..* Estoca * Inicializada-por Trabalha-em Descrição do Produto * Item Gerente Descreve..* Pagamento Cliente Caixa 63

Referências Bibliográficas BOOCH, Grady; RUMBAUGH, James; JACOBSON, Ivar. UML: Guia do Usuário. Rio de Janeiro: Elsevier, 2000. LARMAN, Craig. Utilizando UML e Padrões: Uma introdução à análise e ao projeto orientados a objetos e ao desenvolvimento iterativo. Porto Alegre: Bookman, 2007. WAZLAWICK, Raul Sidnei. Análise e Projeto de Sistemas de Informação Orientados a Objetos. Rio de Janeiro: Elsevier, 2004. BRAGA, R. V. Notas de Aula. ICMC-USP, º semestre, 2007. DÓRIA, E. S. Notas de Aula. FIPP-UNOESTE, 2006. 64