Buscar

IES-09-Projeto de Software-resumo

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Projeto de Software
2013-2sem Material IES - Prof. Dr. José OSCAR F. de Carvalho 1
Introdução à Engenharia de Software 
(IES)
AULA 09
Ciclos de Vida de Software
Modelo Clássico (Cascata)
Projeto de Software
Projetar é o processo de aplicar várias técnicas e princípios
com o propósito de se definir um dispositivo, processo
ou sistema, com detalhes suficientes para permitir sua
realização física. (Taylor-59).
O Projeto de software é o núcleo técnico da EngenhariaO Projeto de software é o núcleo técnico da Engenharia
de Software. É a única maneira de se traduzir "com
precisão", os requisitos do usuário para um produto ou
sistema acabado.
Meta: Traduzir requisitos numa representação de software.
Projeto de Software
Projeto de Software
�� ProjetoProjeto ProcedimentalProcedimental: descrição da funcionalidade do
software => (algoritmos).
�� ProjetoProjeto dede DadosDados: definição das estruturas de dados
=> (BD).
ProjetoProjeto ArquiteturalArquitetural: associação entre os principais�� ProjetoProjeto ArquiteturalArquitetural: associação entre os principais
elementos estruturais do software (árvore dos módulos,
mensagens entre objetos, Nivelamento em Camadas).
�� ProjetoProjeto dasdas InterfacesInterfaces: Layouts e mecanismos de
interface humano-computador.
Projeto de Software
Projeto de Software:
Fundamentos do Projeto de Software
FundamentosFundamentos::
1.1. AbstraçãoAbstração: Concentrar-se no problema com um certo nível de
generalização.
Abstração procedimental
(entre numa porta)
Abstração de dados
(recibo de pagamento)
� Alto nível de abstração = Especificação de requisitos
� Baixo nível de abstração = Código fonte equivalente
Abstração do Projeto
e de seu ambiente
Fundamentos do Projeto de Software
FundamentosFundamentos::
2.2. RefinamentoRefinamento sucessivosucessivo: É um processo de
elaboração que parte de uma declaração de
função (ou descrição de informação), que é
definida em um nível de abstração elevado, e
vai em direção a um nível mais baixo de
abstração, passando por sucessivos
refinamentos, cada um incorporando mais
detalhes.
Fundamentos do Projeto de Software
FundamentosFundamentos::
33.. ModularidadeModularidade: O software é dividido em
componentes separadamente nomeados e
endereçáveis, denominados módulos, que são
integrados para atender aos requisitos ditados
pelo problema.
Fundamentos do Projeto de Software
3.3. ModularidadeModularidade:
componente
Fundamentos do Projeto de Software
ComponenteComponente::
“Bloco construtivo modular para software de computador”
Pressman, 2006 p.239
REUSOREUSO
“Parte modular possível de ser implantada e substituívelsubstituível de
um sistema, que encapsula implementação e exibe
conjunto de interfaces”
Unified Modeling Specification
OMG-Object Management Group, V.1.4, setembro de 2001
Fundamentos do Projeto de Software
Projeto de Software
Projeto Arquitetural de Software
Arquitetura do Produto de Software
Arquitetura de Software é:
� a organização fundamental do sistema
� o empacotamento de seus componentes
� o relacionamento de cada um com o ambiente� o relacionamento de cada um com o ambiente
� os princípios que governarão o projeto e sua
evolução
IEEE 1471-2000
Arquitetura do Produto de Software
Arquitetura do Produto de Software
� Arquitetura estabelece o contexto para a implementação do produto de 
software 
arquitetura
Decisões sobre arquitetura são
fundamentais. Mudanças na
arquitetura provocam efeitos
Códigoimplementação
projeto
arquitetura provocam efeitos
de grande monta no projeto.
Decisão: o módulo
abaixo pode ou não
receber o controle
(decisão).
Chamada repetida
(iterativa)
Projeto Arquitetural de Software 
Hierarquia dos Módulos
(iterativa)
Passagem de dados
entre módulos
Passagem de controle
entre módulos
DFD - Nível 0 (Contexto)
Projeto Arquitetural de Software
Do DFD para o Projeto Arquitetural
DFD - Nível 1 (Geral – todos os processos)
Projeto Arquitetural de Software
Do DFD para o Projeto Arquitetural
DFD - Nível 2 ( detalhamento de “6 - Monitorar sensores”)
Projeto Arquitetural de Software
Do DFD para o Projeto Arquitetural
Estrutura do módulo “Monitorar Sensores”
Projeto Arquitetural de Software
Do DFD para o Projeto Arquitetural
Projeto de Dados
Projeto de Dados
Projeto de Dados 
� Representação do relacionamento lógico entre
elementos de dados individuais. Determina a
organização, métodos de acesso, associações e
alternativas de processamento.
� Parte dos dados levantados e representados na
fase de análise:
� Dicionário de Dados
� Fluxo
� Conteúdo
� Estrutura
Projeto de Dados
Atividades do Projeto de Dados:
� Selecionar representações de dados
� Estudar e escolher estruturas de dados que
permitam a implementação mais adequada
� Caracterizar a Abrangência (escopo) dos Dados� Caracterizar a Abrangência (escopo) dos Dados
� Local (componente), Partes do software ou Global
� Caracterizar a Persistência dos Dados
� Persistentes (B.Dados)
� Não Persistentes (Dados em memória, estruturas de
manipulação/intermediária)
Projeto de Dados
Estruturas/Elementos de Dados
� Itens Elementar (Tipos 
Primitivos)
� Listas Lineares
� Gerais
� Pilhas 
� Filas
� Lista não lineares 
� Árvores
� Grafo
� etc.
Projeto de Dados Persistentes
Modelo Entidade-Relacionamento (MER)
Entidades Relacionamentos
Atributos
Projeto de Software 
Heurísticas de Projetos
Heurísticas de Projeto
Heurísticas de Projeto:
Modularidade desejável: Independência funcional e Módulos com um só propósito.
Avalie a estrutura do programa para reduzir acoplamentos e melhorar a coesão
Relação desejável entre componentes:
• Forte coesão (interna)
• Fraco acoplamento (externo)
Heurísticas de Projeto
Heurísticas de Projeto:
Ligação entre módulos (FAN-IN e FAN-OUT)
Número de módulos 
diretamente controlados 
por outro módulo
Número de módulos que Número de módulos que 
controlam diretamente 
determinado módulo
Heurísticas de Projeto
Heurísticas de Projeto:
2. Tente minimizar estruturas com elevado FAN-OUT.
Esforce-se para ter FAN-IN à medida que a profundidade
do projeto aumentar.
Fan-out
Fan-out
Fan-in
Heurísticas de Projeto
Heurísticas de Projeto:
3. Mantenha o alcance dos efeitos de um módulo dentro
do alcance de controle desse módulo;
Heurísticas de Projeto
Heurísticas de Projeto:
4. Avalie as interfaces modulares para reduzir a
complexidade e a redundância e melhorar a consistência;
5. Defina módulos cujas funções sejam previsíveis mas não
crie módulos exageradamente restritos;
6. Lute por módulos com uma única entrada e uma única
saída (sem acoplamentos patológicos);
7. Empacote o software tendo como base os requisitos de
portabilidade e as restrições de projeto (por exemplo a
plataforma do ambiente de operação).
Transição da Análise para o Projeto
Análise
� Especificação de 
Requisitos
� Modelos 
Lógicos
Projeto
Arquitetura Dados
e e Revisão 
Interface Procedimental
Lógicos
� Dicionário de 
Dados
(REVISADOS)
Interface Procedimental
Projeto orientado a
Fluxo de Dados ou
Orientado a Objetos
Projeto de Software
Projeto Orientado a Fluxo de Dados
Projeto Orientado a Fluxo de Dados
Análise
� Especificação 
de Requisitos
Diagrama de 
Projeto
� Diagrama de 
Fluxo de 
Dados (DFD)
� Dicionário de 
Dados
Arquitetura Dados
e e Revisão
Interface Procedimental
Projeto Orientado a Fluxo de Dados
Seqüência:
1. Revisar os modelos de Análise (DFDs, Diag.Dados).
2. Identificar Funções que agrupadas formam subsistemas
ou partes do sistema
maior.
3. Identificar as Funções que podem ser decompostas,3. Identificar as Funções que podem ser decompostas,
fatoradas (ou explodidas).
3. Efetuar as Fatorações das Funções.
4. Obter da fatoração a primeira versão do Diagrama
Hierárquico de Estrutura, contendo os dados que são
passados de um módulo para outro.
Projeto Orientado a Fluxo de Dados
Fatoração das Funções:
Projeto Orientado a Fluxo de Dados
Projeto Orientado a Fluxo de Dados
Seqüência (cont):
5. Obter a primeira versão do modelo de Dados do Sistema
6. Refinar o projeto
7. Especificar e Documentar cada Módulo (PDL, Tabelas de
Decisão) e cada estrutura de dados (Listas, tabelas doDecisão) e cada estrutura de dados (Listas, tabelas do
bancos dados)
8. Projetar Interface para cada módulo de E/S
9. Revisar Projetos de Dados e Procedimental
Projeto de Software
Projeto Orientado a Objetos
Projeto Orientado a Objetos
Análise
� Especificação 
de Requisitos
� Diagrama de 
Casos de Uso
Projeto
Arquitetura Dados
Casos de Uso
� Descrição dos
Casos de Uso
� Dicionário de 
Dados
Arquitetura Dados
e e Revisão
Interface Procedimental
Projeto Orientado a Objetos
Análise
� Especificação 
de Requisitos
� Diagrama de 
Casos de Uso
Projeto
Arquitetura Dados
ObjetoObjeto
Casos de Uso
� Descrição dos
Casos de Uso
� Dicionário de 
Dados
Arquitetura Dados
e e Revisão
Interface Procedimental
Projeto Orientado a Objetos
Seqüência:
1. Revisar os modelos de Análise: Casos de uso c/ 
descrição (funcionalidades) e Dicionário Dados
2. Obter Diagrama de Classes Conceitual - Classes do 
Domínio do Problema, seus atributos, operações, 
associações, especializações e generalizações (herança)associações, especializações e generalizações (herança)
3. Obter a Percepção de como cada Caso de Uso será 
implementado no sistema, através dos Diagrama de 
Interação
4. Obter os Modelos de Comportamento do Sistema -
Estados dos Objetos
Projeto Orientado a Objetos
Seqüência (cont.):
5. Identificar e projetar as classes de Interface (E/S) 
obtendo Diagrama de Classes Detalhado
6. Refinar os modelos de classes, interação e Estados 
(Projetar aspectos de reutilização)
7. Especificar e Documentar cada Classe:
Operações, Atributos, Domínio, Persistência, etc.
8. Projetar Diagramas de Componentes e Implementação
9. Revisar o Projeto Orientado a Objetos 
Bibliografia
� Material de Engenharia de Software do Prof. 
Dr. José OSCAR F. de Carvalho.
2013-2sem Material IES - Prof. Dr. José OSCAR F. de Carvalho 45

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando