TRIBUNAL DE JUSTIÇA DE PERNAMBUCO SECRETARIA DE TECNOLOGIA DA INFORMAÇÃO E COMUNICAÇÃO PROSOFT Disciplina de Análise & Projeto Fevereiro/ 2011 Agenda Disciplina de Análise e Projeto Visão geral da disciplina de Análise e Projeto Conceitos Básicos Fundamentais Uso do RUP e UML em Análise e Projeto Atividades da Disciplina Analisar Impacto Definir Arquitetura Definir Componentes Projetar Interface Visual Projetar Modelo de Dados • Conceitos básicos de modelagem de dados Artefatos e Ferramentas Considerações Finais TJPE.SETIC.AGTIC.NGP 2 Visão Geral Análise e Projeto Disciplina de Análise e Projeto 5 atividades TJPE.SETIC.AGTIC.NGP 3 Visão Geral Análise e Projeto Disciplina de Análise e Projeto 4 papéis • Projetista • Analista De Negócios / Sistema • Arquiteto de Software • Administrador de Dados TJPE.SETIC.AGTIC.NGP 4 Visão Geral Análise e Projeto Disciplina de Análise e Projeto 8 artefatos • Solicitação Mantis • Documento de Arquitetura de Software • Modelo Lógico de Dados • Modelo Físico de Dados • Scripts (de BD) • Protótipo da Interface Visual • Especificação de Telas • Documento de Arquitetura de Referência atualizado TJPE.SETIC.AGTIC.NGP 5 Conceitos Básicos Disciplina de Análise e Projeto Visão geral da disciplina de Análise e Projeto Conceitos Básicos Fundamentais Uso do RUP e UML em Análise e Projeto Atividades da Disciplina Analisar Impacto Definir Arquitetura Definir Componentes Projetar Interface Visual Projetar Modelo de Dados • Conceitos básicos de modelagem de dados Artefatos e Ferramentas Considerações Finais TJPE.SETIC.AGTIC.NGP 6 RUP Disciplina de Análise e Projeto Principais Problemas no Desenvolvimento de Software Necessidades do usuário mal compreendidas • Requisitos (Guiado por casos de uso) Falta de habilidade para tratar mudanças de requisitos • Iterativo Incremental Descobrimento tardio problemas sérios • Centrado na Arquitetura Baixa qualidade de software • Guias, padrões e modelos. Problemas com papeis e responsabilidades • Processo bem definido; TJPE.SETIC.AGTIC.NGP 7 RUP Rational Disciplina de Análise e Projeto Unified Process – RUP Criado por Booch, Jacobson e Rumbaugh, e implementado pela Rational. Em 2003 a IBM compra a Rational. RUP continua sendo, ate hoje, o principal framework de processos no qual as metodologias se baseiam. TJPE.SETIC.AGTIC.NGP 8 RUP É Disciplina de Análise e Projeto uma plataforma de processos Adaptavel Deve ser configurada para selecionar os elementos apropriados as necessidades da organizacao Fornece atividades, artefatos e guias ligados As ferramentas IBM/Rational A linguagem UML TJPE.SETIC.AGTIC.NGP 9 RUP - Características Iterativo Disciplina de Análise e Projeto e Incremental O ciclo de vida do produto e dividido em iterações, cada uma entregando incrementos (partes acabadas) do software Guiado por casos de uso Os casos de uso conectam todas as fases e visões, sendo utilizados por todos os stakeholders TJPE.SETIC.AGTIC.NGP 10 RUP - Características Centrado Disciplina de Análise e Projeto na arquitetura Envolve aspectos estáticos e dinâmicos Evolui a partir das necessidades do produto Orientado a Objetos Componentes são construídos através de Objetos e estes colaboram entre si para realizar os casos de uso Planejado por riscos Os riscos são analisados continuamente e os de maior criticidade são tratados prioritariamente TJPE.SETIC.AGTIC.NGP 11 RUP – Príncipios Fundamentais Disciplina de Análise e Projeto Adaptar o processo O processo deve ser dimensionado e adaptado corretamente, de acordo com a necessidade da organização Balancear prioridades dos investidores Deve-se equilibrar necessidades conflitantes e reduzir a ”customização” Colaborar em equipe Ambientes de colaboração adequados devem ser criados para uma melhor comunicação da equipe TJPE.SETIC.AGTIC.NGP 12 RUP – - Príncipios Fundamentais Disciplina de Análise e Projeto Demonstrar valor iterativamente Reduzir riscos precocemente Aumentar a confiança dos investidores Elevar o nível de abstração Ferramentas de modelagem de alto nível devem ser utilizadas para reduzir o nível de complexidade e aumentar a produtividade Focar continuamente na qualidade E preciso acompanhar a qualidade ao longo de todo o ciclo de vida de desenvolvimento TJPE.SETIC.AGTIC.NGP 13 RUP - Gráfico das Baleias Disciplina de Análise e Projeto TJPE.SETIC.AGTIC.NGP 14 RUP - Dimensões Eixo Disciplina de Análise e Projeto horizontal Representa o aspecto dinâmico do processo Expresso em termos de fases, marcos e iterações Eixo vertical Representa o aspecto estático do processo Expresso em termos de componentes, disciplinas, atividades, artefatos, papeis... TJPE.SETIC.AGTIC.NGP 15 RUP - Componentes Disciplina de Análise e Projeto Modelos, Padrões e Guias Equipes Treinadas CMMI MPS.BR PMBOK Metodologia Linguagem Padrão Ferramentas Processo de Desenvolvimento Conjunto de métodos e práticas bem definidas TJPE.SETIC.AGTIC.NGP Rational JUDE ERWin Com responsáveis Entradas/Saídas Ordem de precedência 16 RUP - Fases Cada Disciplina de Análise e Projeto fase termina com um marco Concepção Elaboração Construção Transição Estabelecer o escopo, e estimar custos e riscos Assegurar que os principais riscos foram diminuídos e definir uma arquitetura executável Desenvolver de modo iterativo e incremental um produto completo para a Transição Disponibilizar o Software para seus usuários finais TJPE.SETIC.AGTIC.NGP 17 RUP - Iterações Disciplina de Análise e Projeto Cada passagem pela sequência de disciplinas do projeto se chama iteração TJPE.SETIC.AGTIC.NGP 18 RUP – Fases e Iterações Disciplina de Análise e Projeto Cada fase pode ser dividida em iterações TJPE.SETIC.AGTIC.NGP 19 RUP - Disciplinas Disciplina de Análise e Projeto São um conjunto de atividades relacionadas a uma “área de interesse” do projeto Cada disciplina possui um fluxo de trabalho TJPE.SETIC.AGTIC.NGP 20 RUP - Disciplinas Disciplina de Análise e Projeto Cada disciplina está associada a um conjunto específico de modelos TJPE.SETIC.AGTIC.NGP 21 RUP – Análise e Design Disciplina de Análise e Projeto Objetivos Transformar os requisitos em um projeto do sistema a ser criado Desenvolver uma arquitetura refinada para o sistema Adaptar o projeto para que corresponda ao ambiente de implementação, considerando restrições de tecnologia TJPE.SETIC.AGTIC.NGP 22 RUP – Visões Arquiteturais Disciplina de Análise e Projeto No RUP a arquitetura é representada por uma serie de visões de arquitetura diferentes Em sua essência, as Visões são fragmentos que ilustram os elementos “significativos em termos de arquitetura” É conhecido como o modelo de visão 4+1 TJPE.SETIC.AGTIC.NGP 23 RUP - Visões TJPE.SETIC.AGTIC.NGP Disciplina de Análise e Projeto 24 RUP – Visão de Casos de Uso Disciplina de Análise e Projeto Contém Casos de Uso e cenários que abrangem comportamentos significativos em termos de arquitetura, classes ou riscos técnicos É uma visão obrigatória do documento de arquitetura de software TJPE.SETIC.AGTIC.NGP 25 RUP – Visão Lógica Disciplina de Análise e Projeto Contém as classes de projeto mais importantes e sua organização em pacotes e subsistemas, e a organização desses pacotes em camadas É uma visão obrigatória do documento de arquitetura de software TJPE.SETIC.AGTIC.NGP 26 RUP – Visão de Implementação Disciplina de Análise e Projeto Contém uma visão geral do Modelo de Implementação e sua organização em termos de módulos em pacotes e camadas Detalha os pacotes e módulos da Visão Lógica (detalhes “fisicos”) E uma visão opcional do documento de arquitetura de software Deve ser usada apenas se a implementação não for derivada diretamente do modelo de projeto (isto é, há detalhes adicionais) TJPE.SETIC.AGTIC.NGP 27 RUP – Visão de Processos Disciplina de Análise e Projeto Contém a descrição das tarefas (processos e threads) envolvidas, suas interações e configurações e a alocação dos objetos e classes de projeto em tarefas E uma visão opcional do documento de arquitetura de software Só precisa ser usada se o sistema tiver alto grau de paralelismo TJPE.SETIC.AGTIC.NGP 28 RUP – Visão de Implantação Disciplina de Análise e Projeto Contém a descrição dos vários nós físicos do sistema e a alocação de tarefas atribuídas a eles É uma visão opcional do documento de arquitetura de software Só precisará ser usada se o sistema estiver distribuído em vários nós físicos TJPE.SETIC.AGTIC.NGP 29 RUP – Análise e Design Disciplina de Análise e Projeto Marco da Fase de Elaboração : Arquitetura do Ciclo de Vida Critérios de Avaliação (Checklist) : A arquitetura e estável e robusta, comportando requisitos atuais e futuros? Riscos críticos foram resolvidos? • Riscos Arquiteturais O planejamento esta bem definido em termos de cronograma, orçamento e níveis de qualidade? Devemos fechar o contrato? Principal Artefato : Documento de Arquitetura de Software • Realizações dos Casos de Uso TJPE.SETIC.AGTIC.NGP 30 RUP – Análise e Design Disciplina de Análise e Projeto Relação com outras disciplinas Modelagem de negocio • Fornece o contexto organizacional para o sistema Requisitos • Fornece a visão das funcionalidades criticas a serem implementadas Teste • Testa o sistema projetado durante a disciplina de Analise e Design Ambiente, Gerenciamento de Projeto TJPE.SETIC.AGTIC.NGP 31 UML TJPE.SETIC.AGTIC.NGP Disciplina de Análise e Projeto 32 UML – Unified Modeling Language Disciplina de Análise e Projeto Linguagem de Modelagem Unificada Linguagem • Usada para expressar e comunicar idéias • Não é uma metodologia! Modelagem • Descrever um sistema em um alto nível de abstração Unificada • Booch(OOAD) + Jacobson(OOSE) + Rumbaugh(OMT) + Outros • UML se tornou o padrão mundial para modelagem de sistemas - www.omg.org TJPE.SETIC.AGTIC.NGP 33 UML – O que é? Disciplina de Análise e Projeto Linguagem gráfica para especificar, visualizar, construir e documentar os artefatos de software Vantagens Usa notação gráfica: mais clara que a linguagem natural (imprecisa) e código (muito detalhado) Ajuda a obter uma visão geral do sistema Não é dependente de tecnologia Diminui a fragmentação, aumenta a padronização (comunicação) TJPE.SETIC.AGTIC.NGP 34 UML 2.2 - Diagramas TJPE.SETIC.AGTIC.NGP Disciplina de Análise e Projeto 35 UML 2.2 - Diagramas Diagramas Disciplina de Análise e Projeto estruturais Mostram a estrutura estática do sistema e suas partes em diferentes níveis de abstração e como elas se relacionam Não utilizam conceitos relacionados ao tempo Diagramas comportamentais Mostram a natureza dinâmica dos objetos do sistema, que pode ser descrita como uma serie de mudanças no sistema com o passar do tempo TJPE.SETIC.AGTIC.NGP 36 UML 2.2 - Diagramas Diagramas Disciplina de Análise e Projeto Estruturais (estáticos) Diagrama de Classes Diagrama de Objetos Diagrama de Componentes Diagrama de Pacotes Diagrama de Implantação Diagrama de Estrutura Composta Diagrama de Perfis (UML 2.2) TJPE.SETIC.AGTIC.NGP 37 UML 2.2 - Diagramas Disciplina de Análise e Projeto Diagramas Comportamentais (dinâmicos) Diagrama de Casos de Uso Diagrama de Atividade Diagrama de Máquina de Estados Diagramas de Interação • • • • TJPE.SETIC.AGTIC.NGP Diagrama de Seqüência Diagrama de Comunicação Diagrama de Tempo Diagrama de Interação Geral 38 UML – Diagrama De Classes Disciplina de Análise e Projeto É um diagrama estático da UML que reúne os elementos mais importantes de um sistema orientado a objetos Exibe um conjunto de classes, interfaces e seus relacionamentos As classes especificam tanto as propriedades quanto os comportamentos dos objetos TJPE.SETIC.AGTIC.NGP 39 UML – Estrutura da Classe Disciplina de Análise e Projeto Nome da Classe Atributos Operações TJPE.SETIC.AGTIC.NGP 40 UML – Estrutura da Classe Disciplina de Análise e Projeto Três Formas de Apresentação Nome Nome + Atributos Nome + Atributos + Operações TJPE.SETIC.AGTIC.NGP 41 UML – Estágios do Modelo de Classes Disciplina de Análise e Projeto Modelo de classe de análise Representa as classes de análise Foca a atenção sobre “o que” o sistema deve fazer Não leva em consideração restrições inerentes à tecnologia a ser utilizada na solução de um problema TJPE.SETIC.AGTIC.NGP 42 UML – Modelo de Classe de Análise Disciplina de Análise e Projeto TJPE.SETIC.AGTIC.NGP 43 UML – Estágios do Modelo de Classes Disciplina de Análise e Projeto Modelo de Classe de Projeto Detalhamento do modelo de classe de análise Foca a atenção em “como” o sistema deve funcionar Normalmente, neste momento, descobre-se a necessidade de criação de novas classes Adição de detalhes em função da solução de software escolhida (linguagem, arquitetura, etc.) TJPE.SETIC.AGTIC.NGP 44 UML – Modelo de Classe de Projeto Disciplina de Análise e Projeto TJPE.SETIC.AGTIC.NGP 45 UML – Diagrama de Sequência Disciplina de Análise e Projeto Captura o comportamento de um determinado cenário Mostra os objetos e as mensagens trocadas entre eles (interações) Enfatiza a ordem temporal das mensagens É o diagrama mais utilizado na etapa de Projeto OO (solucionar o problema) TJPE.SETIC.AGTIC.NGP 46 UML – Diagrama de Sequência Disciplina de Análise e Projeto TJPE.SETIC.AGTIC.NGP 47 UML – Diagrama de Sequência Disciplina de Análise e Projeto TJPE.SETIC.AGTIC.NGP 48 Atividades Disciplina de Análise e Projeto Visão geral da disciplina de Análise e Projeto Conceitos Básicos Fundamentais Uso do RUP e UML em Análise e Projeto Atividades da Disciplina Analisar Impacto Definir Arquitetura Definir Componentes Projetar Interface Visual Projetar Modelo de Dados • Conceitos básicos de modelagem de dados Artefatos e Ferramentas Considerações Finais TJPE.SETIC.AGTIC.NGP 49 Atividades Disciplina de Análise e Projeto Visão geral da disciplina de Análise e Projeto Conceitos Básicos Fundamentais Uso do RUP e UML em Análise e Projeto Atividades da Disciplina Analisar Impacto Definir Arquitetura Definir Componentes Projetar Interface Visual Projetar Modelo de Dados • Conceitos básicos de modelagem de dados Artefatos e Ferramentas Considerações Finais TJPE.SETIC.AGTIC.NGP 50 Analisar Impacto Papéis Projetista [P] Time SCRUM [S] Analista [Negócios / Sistema] [S] Administrador de Dados [S] Entrada Obrigatória Disciplina de Análise e Projeto Solicitação do Mantis Entradas Opcionais Documento de Requisitos Modelo Conceitual de Dados Script de Banco Código Fonte TJPE.SETIC.AGTIC.NGP 51 Analisar Impacto Disciplina de Análise e Projeto Saídas Solicitação do Mantis Atualizada Etapas Analisar Solicitação Reunião de Repasse da Mudança Solicitada Analisar Modelo de Dados Analisar Código Fonte Analisar Interfaces Externas Atualizar Solicitação do Mantis • • TJPE.SETIC.AGTIC.NGP Adicionar anotação com o resultado da análise Atribuir a solicitação para fábrica 52 Analisar Impacto Disciplina de Análise e Projeto Analisar Solicitação Análise para verificar a extensão das mudanças solicitadas pelo Analista de Negócio. Participantes : Projetista e Analista de Negócio. TJPE.SETIC.AGTIC.NGP Analisar Impacto Disciplina de Análise e Projeto Reunião de repasse da mudança solicitada O Analista de Negócios apresenta o sistema que será afetado e as mudanças solicitadas. pelo Mantis para o Projetista, o Administrador de Dados e a equipe da fábrica que desenvolverá a mudança. Participantes : Projetista, Desenvolvedores, Analista de Negócio e Administrador de Dados. TJPE.SETIC.AGTIC.NGP Analisar Impacto Disciplina de Análise e Projeto Analisar Modelo de Dados O Administrador de Dados verifica as mudanças necessárias no modelo de dados do sistema. O Administrador de Dados refletirá as alterações do sistema no BD. Participante : Administrador de dados. TJPE.SETIC.AGTIC.NGP Analisar Impacto Disciplina de Análise e Projeto Analisar Código Fonte Avaliar o impacto que as mudanças solicitadas causarão ao código fonte da aplicação. Participantes : Projetista e Desenvolvedores. TJPE.SETIC.AGTIC.NGP Analisar Impacto Disciplina de Análise e Projeto Analisar Interfaces Externas Analisar os pontos de contato que serão afetados (interfaces) deste sistema com outros; Caso encontre algum ponto, o Projetista documentará e indicará como ocorrerá a integração (Web Services, Procedures, etc...) através do item “Projeto de Interfaces Externas”, do Documento de Arquitetura do Sistema (DAS). Participante : Projetista. TJPE.SETIC.AGTIC.NGP Analisar Impacto Disciplina de Análise e Projeto Atualizar Solicitação do Mantis Adicionar anotação com o resultado da análise • O Projetista descreverá o seu parecer sobre a análise e as possíveis sugestões de implementação para os desenvolvedores. Atribuir a solicitação para fábrica • Liberação do caso para que a fábrica possa começar a trabalhar no desenvolvimento do caso. Participante : Projetista. TJPE.SETIC.AGTIC.NGP Atividades Disciplina de Análise e Projeto Visão geral da disciplina de Análise e Projeto Conceitos Básicos Fundamentais Uso do RUP e UML em Análise e Projeto Atividades da Disciplina Analisar Impacto Definir Arquitetura Definir Componentes Projetar Interface Visual Projetar Modelo de Dados • Conceitos básicos de modelagem de dados Artefatos e Ferramentas Considerações Finais TJPE.SETIC.AGTIC.NGP 59 Definir Arquitetura Disciplina de Análise e Projeto Papéis Projetista [P], Arquiteto de Software [S] , Administrador de Dados [S] Entradas Obrigatórias Documento de Visão do Negócio Documento de Visão do Sistema Especificação de Casos de Uso Especificação de Regras de Negócio Especificação de Telas Especificações Suplementares Modelo Conceitual de Dados Relação de Casos de Uso Solicitação do Mantis Arquitetura de Referência de Software TJPE.SETIC.AGTIC.NGP 60 Definir Arquitetura Disciplina de Análise e Projeto Saídas Documento de Arquitetura de Software Solicitação do Mantis Atualizada TJPE.SETIC.AGTIC.NGP 61 Definir Arquitetura Disciplina de Análise e Projeto Desenvolver a Visão Geral da Arquitetura Serve para transmitir para as equipes de desenvolvimento e outros envolvidos um entendimento inicial da estrutura de nível superior do sistema desejado; Descreve as hipóteses de trabalho e decisões iniciais sobre a implementação da Visão, bem como as decisões relativas à arquitetura física e lógica e aos requisitos não-funcionais do sistema. Elaborada pelo arquiteto de software, geralmente em colaboração com o patrocinador do projeto. TJPE.SETIC.AGTIC.NGP 62 Definir Arquitetura Disciplina de Análise e Projeto Desenvolver a Visão Geral da Arquitetura Apresentação – JSF, Facelets, XHTML, Ajax, CSS Negócio – EJB 3.0 Integração – JPA, Web Services Recursos – SGBDs, Sistema de Arquivos TJPE.SETIC.AGTIC.NGP 63 Definir Arquitetura Disciplina de Análise e Projeto Identificar Abstrações-Chave (Entidades) Identificação das abstrações-chave (representação de conceitos identificados durante as atividades de modelagem de negócios e requisitos) a serem tratadas pelo sistema. Descrever a organização da aplicação em classes, pacotes, subsistemas e/ou camadas • Utilização de figuras e diagramas para um melhor esclarecimento TJPE.SETIC.AGTIC.NGP 64 Definir Arquitetura Disciplina de Análise e Projeto Identificar Abstrações-Chave (Entidades) TJPE.SETIC.AGTIC.NGP 65 Definir Arquitetura Disciplina de Análise e Projeto Criar Realizações dos Casos de Uso Arquiteturalmente Significativos Descreve como um determinado caso de uso é realizado no modelo de análise em termos de objetos de colaboração (diagrama de sequência). Os diagramas de seqüência ilustram o fluxo de eventos de um caso de uso realizados por um conjunto de instâncias de classes (de projeto simplificadas) e de subsistemas. TJPE.SETIC.AGTIC.NGP 66 Definir Arquitetura Disciplina de Análise e Projeto Criar Realizações dos Casos de Uso Arquiteturalmente Significativos TJPE.SETIC.AGTIC.NGP 67 Definir Arquitetura Disciplina de Análise e Projeto Projetar Interfaces Externas (Opcional) Descreve as interfaces • Fornecidas para outros sistemas. • Consumidas pelo sistema Os possíveis tipos de interfaces que podem ser projetados são: • Layout de Arquivos • Layout de Mensagens / Procedures • Protocolos de comunicação TJPE.SETIC.AGTIC.NGP 68 Definir Arquitetura Disciplina de Análise e Projeto Projetar Interfaces Externas (Opcional) Antecedentes Web Cliente Web Service Client Web Service XML/SOAP Sistemas Internos Antecedentes Web Admin BD TJPE.SETIC.AGTIC.NGP 69 Definir Arquitetura Atualizar Disciplina de Análise e Projeto Solicitação do Mantis A solicitação do Mantis poderá ser quebrada em outras solicitações, de forma que a granularidade seja adequada para implementação. Atribuir a solicitação para fábrica. TJPE.SETIC.AGTIC.NGP 70 Atividades Disciplina de Análise e Projeto Visão geral da disciplina de Análise e Projeto Conceitos Básicos Fundamentais Uso do RUP e UML em Análise e Projeto Atividades da Disciplina Analisar Impacto Definir Arquitetura Definir Componentes Projetar Interface Visual Projetar Modelo de Dados • Conceitos básicos de modelagem de dados Artefatos e Ferramentas Considerações Finais TJPE.SETIC.AGTIC.NGP 71 Definir Componentes Disciplina de Análise e Projeto Papéis Projetista [P], Arquiteto de Software [S] Entradas Obrigatórias Documento de Arquitetura Documento de Visão do Negócio Documento de Visão do Sistema Especificação de Casos de Uso Especificação de Regras de Negócio Especificação de Telas Especificações Suplementares Modelo Conceitual de Dados Relação de Casos de Uso Solicitação do Mantis TJPE.SETIC.AGTIC.NGP 72 Definir Componentes Disciplina de Análise e Projeto Saídas Documento de Arquitetura de Software Solicitação do Mantis Atualização do documento da Arquitetura de Referência (Opcional) Etapas Identificar Componentes da Arquitetura de Referência do TJPE • Descreve os componentes definidos na Arquitetura de Referência e outros componentes próprios do TJPE que serão utilizados no projeto. TJPE.SETIC.AGTIC.NGP 73 Definir Componentes Disciplina de Análise e Projeto Etapas Identificar Componentes Padrões de Mercado • Elenca os componentes padrões de mercado para cada necessidade, informa o componente selecionado para a referida necessidade e justifica a escolha do determinado componente. Identificar Componentes de Terceiro • Em caso de utilização de componentes de terceiros (desenvolvidos por outros órgãos e empresas), deve ser descrita a necessidade e justificativa de utilização deste. TJPE.SETIC.AGTIC.NGP 74 Definir Componentes Disciplina de Análise e Projeto Etapas Identificar Novos Componentes (Opcional) • Sendo identificada a necessidade de desenvolver um componente, nessa etapa, será descrita em detalhes esta necessidade, bem como reusabilidade do componente e funcionalidades esperadas. Atualizar Solicitação do Mantis (Opcional) • Caso o Projetista julgue necessário, a solicitação do Mantis poderá ser quebrada em outras solicitações, de forma que a granularidade seja adequada para implementação. • Atribuir a solicitação para fábrica. TJPE.SETIC.AGTIC.NGP 75 Atividades Disciplina de Análise e Projeto Visão geral da disciplina de Análise e Projeto Conceitos Básicos Fundamentais Uso do RUP e UML em Análise e Projeto Atividades da Disciplina Analisar Impacto Definir Arquitetura Definir Componentes Projetar Interface Visual Projetar Modelo de Dados • Conceitos básicos de modelagem de dados Artefatos e Ferramentas Considerações Finais TJPE.SETIC.AGTIC.NGP 76 Projetar Interface Visual Disciplina de Análise e Projeto Papéis Analista [Negócios / Sistema] [P], Projetista [S] Entradas Obrigatórias Documento de Visão do Negócio Documento de Visão do Sistema Especificação de Casos de Uso Especificação de Regras de Negócio Especificações Suplementares Modelo Conceitual de Dados Relação de Casos de Uso Padrão de Interface Visual Solicitação do Mantis TJPE.SETIC.AGTIC.NGP 77 Projetar Interface Visual Disciplina de Análise e Projeto Entradas Opcionais Arquitetura de Referência de Software (sistemas em Java) Saídas Protótipo da Interface Especificação de Telas Etapas Analisar Requisitos Identificar o fluxo de informações e de eventos Produzir o layout e alternativas em programa apropriado TJPE.SETIC.AGTIC.NGP 78 Projetar Interface Visual Disciplina de Análise e Projeto Analisar Requisitos Verificar as informações consumidas e fornecidas; Verificar os atores que interagem com os processos descritos; Verificar o fluxo da informação (básico, alternativo e de exceção); Verificar as pré-condições e pós-condições; Verificar possíveis mensagens (positivas ou de sucesso; negativas ou de erro; advertência, notificação ou informação); Verificar as restrições do sistema (regras de negócio do sistema). TJPE.SETIC.AGTIC.NGP Projetar Interface Visual Disciplina de Análise e Projeto Identificar o fluxo de informações e de eventos Descreve como as informações (casos de uso) estão interrelacionadas e como devem ser agrupadas; Identificação dos processos-chave do sistema que podem ser organizados como uma seqüência visual das etapas do processo. Navegação Identificar quais caminhos o usuário pode seguir dentro do sistema e a conseqüência (condições e restrições) dessas escolhas TJPE.SETIC.AGTIC.NGP Projetar Interface Visual Disciplina de Análise e Projeto Produzir o layout e alternativas Apresentar ao cliente a idéia do sistema com maior precisão Photoshop Layout em HTML com uso de CSS Uso de efeitos visuais que mudam sob a ação do usuário Uso de botões e recursos dinâmicos Mesmo que os elementos, a composição e a descrição sejam satisfatórias em papel ou na imagem estática, a demonstração do uso permite uma percepção completa da solução, tanto sob o ponto de vista visual como funcional. TJPE.SETIC.AGTIC.NGP Atividades Disciplina de Análise e Projeto Visão geral da disciplina de Análise e Projeto Conceitos Básicos Fundamentais Uso do RUP e UML em Análise e Projeto Atividades da Disciplina Analisar Impacto Definir Arquitetura Definir Componentes Projetar Interface Visual Projetar Modelo de Dados • Conceitos básicos de modelagem de dados Artefatos e Ferramentas Considerações Finais TJPE.SETIC.AGTIC.NGP 82 Visão Geral TJPE.SETIC.AGTIC.NGP Disciplina de Análise e Projeto 83 Projetar Modelo de Dados Disciplina de Análise e Projeto Papéis Projetista [P], Analista de Negócio [S], Administrador de Dados [S] Entradas Obrigatórias Documento de Visão do Negócio Documento de Visão do Sistema Modelo Conceitual de Dados Entradas Opcionais Solicitação do Mantis TJPE.SETIC.AGTIC.NGP 84 Projetar Modelo de Dados Disciplina de Análise e Projeto Saídas Modelo Lógico de Dados Modelo Físico de Dados Scripts Etapas Desenvolver o modelo lógico de dados • Refinar o modelo lógico de dados com aplicação das regras normais • Aplicar até a 3FN para identificar eventuais anomalias no modelo lógico de dados. Validar a nomenclatura dos objetos segundo a Padronização de Nomenclatura de Objetos de Banco de Dados do TJPE TJPE.SETIC.AGTIC.NGP 85 Projetar Modelo de Dados Disciplina de Análise e Projeto Etapas Avaliar serviços da camada de dados canônicos • Identificar se existem tabelas modeladas que possam ser mapeadas para tabelas canônicas existentes ou se existem tabelas modeladas que possam ser candidatas a serem tabelas canônicas. Avaliar também a disponibilidade dos serviços de dados existentes e a necessidade de desenvolver novos serviços. Desenvolver o modelo físico de dados • Gerar scripts de criação / alteração das tabelas e colunas do banco de dados TJPE.SETIC.AGTIC.NGP 86 Conceitos Disciplina de Análise e Projeto Atividades Projetar Modelo de Dados Conceitos básicos de modelagem de dados TJPE.SETIC.AGTIC.NGP 87 Projeto de Banco de Dados Disciplina de Análise e Projeto •Processo de Análise dos Requisitos Organizacionais •Desenvolvimento de um Modelo Conceitual que represente esses requisitos •Realização do Modelo Conceitual num Modelo Lógico e Modelo Físico, utilizando uma tecnologia de Base de Dados TJPE.SETIC.AGTIC.NGP Projeto de Banco de Dados Disciplina de Análise e Projeto necessidades de informação modelo de dados da empresa Análise de requisitos especificação de requisitos Construção do modelo Conceitual estrutura Conceitual da informação necessidades de processamento características hw/so Construção do modelo lógico Construção do modelo estrutura físico lógica dos dados e aplicações características do SGBD TJPE.SETIC.AGTIC.NGP estrutura física dos dados Modelo Entidade-Relacionamento – M.E.R. Disciplina de Análise e Projeto O grande objetivo de um sistema de BD é oferecer uma visão “abstrata” dos dados aos usuários. Os detalhes referentes a forma como estes dados estão armazenados e mantidos não interessa aos usuários, mas a disponibilidade eficiente destes dados é que são fundamentais. Mundo real modelo Representação em computadores TJPE.SETIC.AGTIC.NGP Modelo Entidade-Relacionamento – M.E.R. Disciplina de Análise e Projeto • O conceito de abstração está associado à característica de se observar somente os aspectos de interesse, sem se preocupar com maiores detalhes envolvidos. • No contexto de abstração de dados, um banco de dados pode ser visto sem se considerar a forma como os dados estão armazenados fisicamente. TJPE.SETIC.AGTIC.NGP Modelo Entidade-Relacionamento – M.E.R. Disciplina de Análise e Projeto Um MER é um modelo formal, preciso, não ambíguo. Diferentes leitores de um mesmo MER devem sempre entender o mesmo modelo. O MER possui poder de expressão limitado. 1 Empregado n supervisionado supervisor Supervisão Algumas restrições precisam ser descritas à parte do MER. TJPE.SETIC.AGTIC.NGP Modelo Entidade-Relacionamento – M.E.R. Disciplina de Análise e Projeto - - Representação semântica das estruturas de dados mantidas num banco de dados Foi proposto por Peter Chen em 1976 Possui várias notações: Relacionamentos como objetos do Modelo (Chen) Relacionamentos apenas ligações (Codd, Martin) TJPE.SETIC.AGTIC.NGP como simples M.E.R. - ENTIDADE Disciplina de Análise e Projeto –Uma entidade é tudo aquilo sobre o qual se deseja manter informações. –Podendo representar: •objetos concretos: pessoas, livros, carros, … •conceitos abstratos: empresas, eventos, embarques, … –Possui propriedades que a distingue de outras entidades. –É um subconjunto de objetos (instâncias) que: •desempenha o mesmo papel semântico •possui os mesmos tipos de propriedades (atributos) TJPE.SETIC.AGTIC.NGP M.E.R. - ENTIDADE - Exemplos: Disciplina de Análise e Projeto • Conjunto de todas as contas correntes de um banco • Conjunto de todos os empregados de uma empresa • Conjunto de todos os processos do 1º Grau Representação de entidades no diagrama E-R (entidades e relacionamentos): Empregado Designa o conjunto de todos os empregados sobre as quais se deseja manter informações no banco de dados TJPE.SETIC.AGTIC.NGP Conta Corrente Processo M.E.R. - ENTIDADE Disciplina de Análise e Projeto Entidades devem ser descritas num Dicionário de Dados Entidade: EMPREGADO Descrição: Pessoa que mantém vínculo empregatício com a Empresa através de um contrato de trabalho de acordo com a legislação trabalhista Entidade: ENCOMENDA Descrição: Instrumento contratual de emissão unilateral pela empresa e aceitação, expressa ou tácita, pelo fornecedor do material. TJPE.SETIC.AGTIC.NGP M.E.R. - ATRIBUTOS Disciplina de Análise e Projeto São as propriedades que caracterizam ou descrevem uma entidade ou um relacionamento. Ex.: A entidade EMPREGADO poderia ter os seguintes atributos: Matricula, Nome, Data_Nascimento, Endereço, Email, Telefone. Cada atributo possui um domínio que identifica o conjunto de valores permitidos para aquele atributo. TJPE.SETIC.AGTIC.NGP M.E.R. - ATRIBUTOS Disciplina de Análise e Projeto Atributos devem também ser descritos no Dicionário de Dados: Entidade: EMPREGADO Atributo: Data de Admissão Descrição: data na qual foi assinado o contrato de trabalho entre a empresa e o empregado Domínio: data posterior a 03/01/78 (data de criação da empresa) e a data de nascimento do empregado TJPE.SETIC.AGTIC.NGP M.E.R. - RELACIONAMENTOS Disciplina de Análise e Projeto –São associações entre diversas entidades. –Ex.: “Um empregado trabalha num projeto” “Um cliente possui conta bancária” “Um filme possui vários atores” 1..N Empregado trabalha Projeto 1..N matricula salário horas nome Representado graficamente por um losango TJPE.SETIC.AGTIC.NGP M.E.R. – RELACIONAMENTOS - Exemplo Disciplina de Análise e Projeto Pessoa Lotação Departamento Relacionamento A figura expressa que o BD mantém informações sobre: Um conjunto de objetos classificados como pessoas (entidade Pessoa). Um conjunto de objetos classificados como departamentos (entidade Departamento). Um conjunto de associações, cada uma ligando um departamento a uma pessoa (relacionamento Lotação). TJPE.SETIC.AGTIC.NGP M.E.R. - RELACIONAMENTOS Disciplina de Análise e Projeto Quando nos referirmos a associações particulares dentro de um conjunto, vamos nos referir a ocorrências ou instâncias de relacionamentos: oNo caso do relacionamento Lotação, uma ocorrência seria um par específico, formado por uma determinada ocorrência da entidade Pessoa e por uma determinada ocorrência da entidade Departamento. p1 p2 p1d1 p3 p4 p2d1 d1 TJPE.SETIC.AGTIC.NGP p7 p6 p4d2 d2 p8 p5 p5d3 d3 M.E.R. - CARDINALIDADE de Relacionamentos Disciplina de Análise e Projeto Propriedade importante de um relacionamento: Quantas ocorrências de uma entidade podem estar associadas a uma determinada ocorrência através do relacionamento (Cardinalidade). PESSOA João Luiz Maria Afonso José Pedro TJPE.SETIC.AGTIC.NGP DEPARTAMENTO A B C M.E.R. - Especialização Disciplina de Análise e Projeto Através deste conceito é possível atribuir propriedades particulares a um subconjunto das ocorrências (especializadas=subclasse) de uma entidade genérica (superclasse). Representação Processo subclasses TJPE.SETIC.AGTIC.NGP n gráfica: n possui Pessoa Física CPF Nome Mãe superclasse código Parte nome Pessoa Jurídica CNPJ Inscrição Estadual Construindo Modelos ER Disciplina de Análise e Projeto Na construção de um MER não considerar um objeto isoladamente. É necessário conhecer o contexto. Modelagem sempre sujeita a alteração. O aprendizado sobre a realidade possibilita o refinamento e aperfeiçoamento do modelo. TJPE.SETIC.AGTIC.NGP Construindo Modelos ER Disciplina de Análise e Projeto Dúvida frequente: quando um objeto é Atributo e quando é uma Entidade? Automóvel Automóvel n OU Cor ? 1 Cor TJPE.SETIC.AGTIC.NGP Construindo Modelos ER Disciplina de Análise e Projeto Dúvida frequente: quando um objeto é um Atributo ou Especialização? Empregado código nome Empregado OU código nome categoria funcional ? Motorista Engenheiro data_validade_hab habilitação TJPE.SETIC.AGTIC.NGP CREA Construindo Modelos ER Disciplina de Análise e Projeto Dúvida frequente: Atributo Multivalorado ou Entidades/Relacionamentos? nome Empregado Empregado código código nome Dependente* Dependente E telefone ? nome TJPE.SETIC.AGTIC.NGP data de nascimento Verificação do modelo ER Disciplina de Análise e Projeto Após ser elaborado, o modelo ER deve ser verificado e validado. É importante verificar se: O modelo é correto O modelo é completo O modelo possui redundâncias O modelo reflete o aspecto temporal TJPE.SETIC.AGTIC.NGP Verificação do modelo ER Disciplina de Análise e Projeto O modelo é correto: Estabelecer associações incorretas: Órgão Emissor com Estado Civil. Utilizar uma entidade do modelo como atributo de outra entidade: Processo e Processo como atributo de Parte. Número incorreto de entidades em um relacionamento: ternários x agregação. TJPE.SETIC.AGTIC.NGP Verificação do modelo ER Disciplina de Análise e Projeto O modelo é completo: Todos os dados que devem ser obtidos do banco de dados estão presentes. Todas as transações de modificação do banco de dados podem ser executadas no modelo. TJPE.SETIC.AGTIC.NGP Verificação do modelo ER Disciplina de Análise e Projeto O modelo está livre de redundâncias: Um modelo deve ser mínimo, ou seja, não deve conter conceitos redundantes. Em geral, a redundância pode existir através de relacionamentos redundantes e de atributos redundantes. TJPE.SETIC.AGTIC.NGP Verificação do modelo ER Disciplina de Análise e Projeto Atributos redundantes Departamento código número de empregados TJPE.SETIC.AGTIC.NGP lotação Empregado nome nome do departamento Verificação do modelo ER Disciplina de Análise e Projeto O modelo reflete o aspecto temporal: Cliente Cliente 1 n locação locação n DVD n DVD Estatísticas e Históricos TJPE.SETIC.AGTIC.NGP data Modelo Relacional Disciplina de Análise e Projeto Representação tabular de uma relação R n-ária: Cada linha representa uma n-tupla de R. A ordem das linhas não é significante. Todas as linhas são distintas. A ordem das colunas é significante: Corresponde à ordem S1, S2, ..., Sn dos domínios* sobre os quais R é definido. Cada tabela possui um nome. Cada coluna (também chamada de atributo ou campo) possui um nome. . TJPE.SETIC.AGTIC.NGP Modelo Relacional Disciplina de Análise e Projeto Um banco de dados relacional é composto de Tabelas ou Relações: Tabela – termo mais empregado na prática. Relações – termo mais empregado na literatura formal da área de BD. Domínio de um atributo: é o conjunto de valores permitidos para um atributo. TJPE.SETIC.AGTIC.NGP Matricula Nome Fone 12345 Gilberto 6481 12346 Sandra 6444 12347 Isabela 6333 12349 Jonas 6233 Modelo Relacional Termo relacional formal Disciplina de Análise e Projeto Equivalentes informais Relação Tabela Tupla Linha Cardinalidade Número de linhas Atributo Coluna ou campo Grau Número de colunas Chave primária Identificador exclusivo Domínio Conjunto de valores válidos TJPE.SETIC.AGTIC.NGP Modelo Relacional Disciplina de Análise e Projeto Propriedades das relações Não existem tuplas duplicadas: Duas linhas, em uma relação, não podem ser iguais. Esta propriedade é derivada do conceito de conjunto matemático (um conjunto não permite a existência de elementos repetidos) SQL não obriga que uma tabela não possua linhas duplicadas. TJPE.SETIC.AGTIC.NGP Modelo Relacional Disciplina de Análise e Projeto Propriedades das relações Tuplas não são ordenadas de cima para baixo: Não existe nenhuma seqüência entre as tuplas. Esta propriedade também é derivada do conceito de conjunto matemático (os elementos de um conjunto não são ordenados). TJPE.SETIC.AGTIC.NGP Modelo Relacional Disciplina de Análise e Projeto Propriedades das relações Atributos não são ordenados da esquerda para a direita: Não existe nenhuma seqüência particular entre os atributos de uma relação. Este conceito decorre do fato de que o cabeçalho de uma relação é também um conjunto (de atributos). Os atributos de uma relação são sempre referenciados pelo nome, nunca pela posição. TJPE.SETIC.AGTIC.NGP Modelo Relacional Disciplina de Análise e Projeto Propriedades das relações Cada tupla contém exatamente um valor para cada atributo: Cada valor em uma tupla é um valor atômico, ou seja, um valor que não pode ser dividido. Portanto, atributos compostos e multivalorados não são permitidos. TJPE.SETIC.AGTIC.NGP Modelo Relacional Disciplina de Análise e Projeto Chaves Conceito básico de um banco de dados relacional que se aplica: Na identificação de linhas Estabelecimento de relações entre linhas de tabelas. Tipos de chaves: Primária (Primary Key – PK) Alternativa (Candidata) Estrangeira (Foreign Key – FK) TJPE.SETIC.AGTIC.NGP Modelo Relacional Disciplina de Análise e Projeto Chave Primária Coluna ou combinação de colunas cujos valores distinguem uma linha das demais dentro de uma tabela. Chave Primária Matricula 12345 12346 12347 Nome Gilberto Sandra Isabela Fone 6481 6444 6333 12349 Jonas 6481 Tabela: Alunos TJPE.SETIC.AGTIC.NGP Modelo Relacional Disciplina de Análise e Projeto Requisitos: Chave Mínima: todas as colunas são realmente necessárias para garantir o requisito de unicidade de valores da chave. A conotação dada a chave no modelo relacional é diferente da usada em organização de arquivos: Chave em outros conceitos é entendido como um caminho de acesso No modelo relacional estamos definindo uma restrição de integridade: unicidade de valores nas colunas que compõem a chave. TJPE.SETIC.AGTIC.NGP Modelo Relacional Disciplina de Análise e Projeto Chave Estrangeira Coluna ou combinação de colunas, cujos valores aparecem necessariamente na chave primária de uma tabela. Mecanismo que permite a implementação de relacionamentos em um banco de dados relacional. TJPE.SETIC.AGTIC.NGP Modelo Relacional Disciplina de Análise e Projeto Chave Estrangeira Aluno MATRICULA NOME CURSOID 98765 João MAT 67765 José BIO 84562 Maria ENG 34256 Luis INFO 3452672 Ana MAT 34529 Luana MAT TJPE.SETIC.AGTIC.NGP Obs.: Através do relacionamento, evitamos a repetição de informações. Relacionamento Curso CURSOID TITULO DURAÇÃO INFO Informática Indust. 4 BIO Biologia 4 ENG Engenharia Civil 5 MAT Licenciatura Mat. 4 Modelo Relacional Disciplina de Análise e Projeto Chave Estrangeira Observações: Uma chave estrangeira não precisa ter o mesmo nome do que a chave primária correspondente na outra tabela (apenas o mesmo domínio). TJPE.SETIC.AGTIC.NGP Modelo Relacional Disciplina de Análise e Projeto Chave Estrangeira Impõe restrições que devem ser garantidas ao serem executadas diversas operações no Banco de Dados: A inclusão de uma linha na tabela que contém a chave estrangeira: • Garantir que o valor da chave estrangeira exista na coluna da tabela da chave primária. Alteração do valor da chave estrangeira: • O novo valor deve aparecer na coluna da chave primária referenciada. TJPE.SETIC.AGTIC.NGP Modelo Relacional Disciplina de Análise e Projeto Chave Estrangeira Exclusão de uma linha da tabela que contém a chave primária referenciada por uma chave estrangeira: • Não se exclui a linha caso exista um valor na tabela com a chave estrangeira. • Remove-se também a linha com o valor de chave estrangeira. • Valor da chave estrangeira é ajustado como NULL. Alteração do valor da chave primária referenciada por alguma chave estrangeira: • Propagar a modificação • Não deixar que seja feita a modificação TJPE.SETIC.AGTIC.NGP Restrições de Integridade Disciplina de Análise e Projeto Uma das funcionalidades básicas que todo SGBD deve oferecer, sendo um de seus objetivos também. Restrição de integridade: É uma regra de consistência de dados que é garantida pelo SGBD. Tipos de Restrições: Chave Integridade Referencial Semântica TJPE.SETIC.AGTIC.NGP Restrições de Integridade Disciplina de Análise e Projeto Restrições de Chaves: cada atributo das chaves candidatas deve possuir valor único em todas as tuplas da relação. Restrição de Integridade de Entidade: uma chave primária não pode assumir valor nulo em qualquer tupla da relação. Restrição de Integridade Referencial: uma tupla em uma relação que se refere a outra relação, deve se referenciar a uma tupla existente nesta relação (chave estrangeira). Restrições de Integridade Semântica: se referem mais especificamente sobre valores ou características que determinados atributos podem assumir no contexto de uma determinada aplicação (por exemplo sexo). TJPE.SETIC.AGTIC.NGP Transformações entre Modelos Disciplina de Análise e Projeto MER – Voltado para a Modelagem de Dados independente do SGBD – Adequado para construção do Modelo Conceitual Modelo Relacional – Modela os dados no nível de SGBD Relacional (Modelo Lógico) Transformação entre MER e Modelo Relacional Projeto Lógico: transformação de um MER em um modelo lógico que implementa, em um SGBD Relacional, os dados representados abstratamente no MER. (Para outros tipos de SGBD outras regras são necessárias). TJPE.SETIC.AGTIC.NGP Transformações entre Modelos Disciplina de Análise e Projeto Passos: 1. Implementação de entidades e respectivos atributos 2. Implementação de relacionamentos e respectivos atributos 3. Implementação de generalizações especializações TJPE.SETIC.AGTIC.NGP Transformações entre Modelos Disciplina de Análise e Projeto Passo 1: Entidade = Tabela Atributo = Coluna Atributo identificador = Chave Primária Cliente data de nascimento endereço nome código TJPE.SETIC.AGTIC.NGP Cliente (CodigoCli, Nome, Endereco, DataNasc) Transformações entre Modelos Disciplina de Análise e Projeto Passo 2: Relacionamentos A tradução do relacionamento depende da cardinalidade (mínima e máxima) das entidades que participam do relacionamento. Formas básicas de tradução: Tabela própria Colunas adicionais dentro da tabela de entidade Fusão de Tabelas de entidades TJPE.SETIC.AGTIC.NGP Transformações entre Modelos Disciplina de Análise e Projeto Passo 3: Generalização/Especialização Alternativas de implementação: Uma tabela para toda hierarquia (generalização) Uma tabela para cada Entidade Especializada Subdivisão da Entidade Genérica TJPE.SETIC.AGTIC.NGP Normalização - Introdução Disciplina de Análise e Projeto Introduzida por E.F.Codd em 1970 (1FN) Objetivo Gerar um conjunto de esquemas de relações que permita: • Armazenar informações sem redundância desnecessária, e • Recuperar informações facilmente. Em resumo... • Evita anomalias de atualização e redundâncias no projeto do BDR • Permite representar eficientemente os dados do mundo real, tornando o modelo mais estável e de fácil manutenção Visão geral: Converter progressivamente uma tabela em tabelas menores, até que pouca ou nenhuma redundância de dados exista Processo sistemático de geração de tabelas TJPE.SETIC.AGTIC.NGP Normalização - Introdução Se Disciplina de Análise e Projeto a normalização é bem sucedida Economiza-se espaço de armazenamento A tabela pode ser atualizada mais rapidamente Pode ser usada para validação do modelo relacional gerado pelas transformações vistas anteriormente Seu benefício é melhor percebido quando aplicado em modelos relacionais obtidos por engenharia reversa de sistemas de arquivos TJPE.SETIC.AGTIC.NGP Normalização - Introdução Disciplina de Análise e Projeto É baseada no conceito de formas normais (regras) Existem 5 formas normais, mas a 1, 2 e 3 são as mais aplicadas Do ponto de vista prático e de desempenho, sua aplicação nem sempre é ideal. Proliferação de tabelas Usar o bom senso ! Inicialmente, usa-se o conceito de dependência funcional para expressar fatos acerca dos dados. TJPE.SETIC.AGTIC.NGP Normalização/Teoria das Dependências Disciplina de Análise e Projeto Dependência Funcional (DF) Dada uma tabela qualquer, diz-se que existe DF de uma coluna ou conjunto de colunas C1 sobre uma coluna C2, se para cada valor de C2 aparece o mesmo valor ou conjunto de valores de C1. Diz-se então: • C1 depende funcionalmente de C2 ou • C2 determina C1 (C2C1) EX: Empregado (CodEmp, Nome,DtNasc,Categoria,Salario) • CodEmpNome • CodEmpDtNasc • CodEmpCategoria • CodEmpSalario • CodEmp(Nome,Categoria,Salario) TJPE.SETIC.AGTIC.NGP Normalização 1a Forma Normal (1FN) Disciplina de Análise e Projeto Cada ocorrência da ch. primária deve corresponder a um e somente um valor de cada coluna • Não possui campos multivalorados Isto é, se todas as colunas da tabela são funcionalmente dependentes da ch. primária da mesma (CP (C1,C2,C3,...,Cn)). Como transformar uma tabela para a 1FN: • 1) Se a qtd. de valores é muito variável, desconhecida ou grande – Transformar atributos multivalorados em tabelas relacionadas » EX: Transformar Cliente (CodCli,Nome,Sexo,Carro,Cor,Tipo) em » Cliente(CodCli,Nome,Sexo) » Carro (CodCar,Carro,Cor,Tipo,CodCli) CodCli referencia Cliente • 2) Se a qtd. de valores é pequena e conhecia a priori – Transformar atributos multivalorados em uma lista definida de colunas, de mesmo domínio » EX: Transformar Paciente (CodPac, Nome, GrausDeLente) em » Paciente (CodPac, Nome, GrauLenteE, GrauLenteD) TJPE.SETIC.AGTIC.NGP Normalização/Teoria das Dependências Disciplina de Análise e Projeto Dependência Funcional Parcial (DFP) Ocorre quando uma coluna ou conjunto delas dependem apenas de parte das colunas da ch. primária composta • EX:EngProj(CodEng,CodProj,DtInicio,Nome,DtNas,Gratificacao,Carg o) Dependência Funcional Total (DFT) É o oposto da DFP • EX: (CodEng,CodProj) (Gratificacao,Cargo) TJPE.SETIC.AGTIC.NGP Normalização Disciplina de Análise e Projeto 2a Forma Normal (2FN) Uma tabela esta na 2FN quando: • Está na 1FN e • Não conter DFP. Ou seja, todas as colunas que não participam da ch. primária composta são dependentes da mesma (DFT) – EX: EngProj(CodEng,CodProj,DtInicio,Nome,DtNas,Gratificacao,Cargo) Como transformar uma tabela para a 2FN • Retira-se a(s) coluna(s) com DFP da tabela original • A partir dessa(s) coluna(s) retirada(s), cria-se uma ou mais tabelas compostas pela parte da ch. primária e suas colunas dependentes • A parte da ch. primária que gerou a dependência será a nova ch. primária da tabela criada. • Verifica-se a 1FN para cada nova tabela – EX:Engenheiro(CodEng,Nome,DtNasc) – Projeto(CodProj,DtInicio) – EngProj(CodEng,CodProj,Gratificacao,Cargo) TJPE.SETIC.AGTIC.NGP Normalização/Teoria das Dependências Disciplina de Análise e Projeto Dependência Funcional Transitiva (DFT) Dada uma tabela qualquer, diz-se que existe DFT quando uma coluna ou conjunto de colunas C1 dependem de uma coluna C2, que não é ch. primária, mas que depende funcionalmente da mesma (C3) Ou seja, se C1 depende de C2 e C2 não é ch. primária, mas depende de C3 que é ch. primária, então, C1 depende transitivamente de C3 • EX: 1) CodEmp (Nome,Categoria,Salario) • Diz-se que Salario é dependente transitivo de Categoria. Então, se Categoria é determinada por CodEmp, este, indiretamente (transitivamente) também determina Salario. TJPE.SETIC.AGTIC.NGP Normalização 3a Forma Normal (3FN) Disciplina de Análise e Projeto Uma tabela esta na 3FN quando: • Está na 2FN e • Não contém DFT. Ou seja, todas as colunas que não participam da ch. primária são exclusivamente dependentes da mesma. • EX: Empregado(CodEmp,Nome,Categoria,Salario) Como transformar uma tabela para a 3FN • Retira-se a(s) coluna(s) com DFT da tabela original • A partir dessa(s) coluna(s) retirada(s), cria-se uma ou mais tabelas compostas pela coluna determinante (como ch. primária) + suas colunas dependentes • Verifica-se a 1FN e a 2FN para cada nova tabela – EX:Empregado(CodEmp,Nome,Categoria) – Categoria(Categoria,Salário) • OBS: Além de não conter DFT, as tabelas na 3FN não devem possuir colunas com valores calculados (derivados) TJPE.SETIC.AGTIC.NGP Artefatos e Ferramentas Disciplina de Análise e Projeto Visão geral da disciplina de Análise e Projeto Conceitos Básicos Fundamentais Uso do RUP e UML em Análise e Projeto Atividades da Disciplina Analisar Impacto Definir Arquitetura Definir Componentes Projetar Interface Visual Projetar Modelo de Dados • Conceitos básicos de modelagem de dados Artefatos e Ferramentas Considerações Finais TJPE.SETIC.AGTIC.NGP 145 Artefatos e Ferramentas Disciplina de Análise e Projeto Ferramentas Modelagem de Dados • Indefinido (ERWin, DBDesigner, Visio, PowerDesigner, etc…) Acesso ao SGBD • Oracle : SQLDeveloper • Sybase : SQLDBx Modelagem de Sistemas • UML : JUDE TJPE.SETIC.AGTIC.NGP 146 Artefatos e Ferramentas Disciplina de Análise e Projeto Artefatos Principais Documento de Arquitetura de Software Especificação de Telas Documento de Arquitetura de Referência Atualizado Outros Artefatos Gerados Solicitação Mantis Modelo Lógico de Dados Modelo Físico de Dados Scripts (de BD) Protótipo da Interface Visual TJPE.SETIC.AGTIC.NGP 147 Considerações Finais Disciplina de Análise e Projeto Visão geral da disciplina de Análise e Projeto Conceitos Básicos Fundamentais Uso do RUP e UML em Análise e Projeto Atividades da Disciplina Analisar Impacto Definir Arquitetura Definir Componentes Projetar Interface Visual Projetar Modelo de Dados • Conceitos básicos de modelagem de dados Artefatos e Ferramentas Considerações Finais TJPE.SETIC.AGTIC.NGP 148 Dúvidas | Sugestões Disciplina de Análise e Projeto Núcleo de Gestão de Processos de TIC : [email protected] Unid. de Eng. de SW - Componentes e Servicos : [email protected] Unidade de Arquitetura de Dados : [email protected] Unidade de Arquitetura de SW : [email protected] Mantis: “Processo de Software” TJPE.SETIC.AGTIC.NGP 149