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 (C2C1)
 EX: Empregado (CodEmp, Nome,DtNasc,Categoria,Salario)
• CodEmpNome
• CodEmpDtNasc
• CodEmpCategoria
• CodEmpSalario
• 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
Download

Disciplina de Análise e Projeto