1 Cap 2 – Processo de Software Ricardo L Schneider FES – 2002/1.
Transcript of 1 Cap 2 – Processo de Software Ricardo L Schneider FES – 2002/1.
1
Cap 2 – Processo de Software
Ricardo L Schneider
FES – 2002/1
2
Engenharia de Software Aplicação das ciências:
Computação; Matemática; Economia; Administração; Sociologia; Psicologia, ….
3
… Na construção produtos profissionais de Software: Programas; Documentos; Documentação; e Dados.
4
Processo da Eng de Software
Foco na Qualidade
Processo
Métodos
Ferramentas
5
Visão genérica da Eng de Soft Qual é o problema a resolver? Que da entidade resolve o problema? Como a entidade pode ser realizada? Como poderá ser construida? Como descobrir erros no design e
construção? Como fazer a manutenção?
6
Fases genéricas: Definição (O Quê) Desenvolvimento (Como) Manutenção:
Correção Adaptação Melhoria Prevenção
7
Maturidade do Processo
CMM – Capability Maturity Model
SEI – Software Engineering Institute (Carnegie Mellon University – Pittsburgh – USA)
8
Níveis do CMM: 1 – Inicial: ad hoc, esforço individual 2 – Repetitível: gerência de projeto, repetir
sucesso de projetos anteriores 3 – Definido: documentado, padronizado e
integrado com os padrões da organização 4 – Gerenciado: medidas detalhadas do processo
e do produto 5 – Otimizado: melhorias contínuas pelo
feedback do processo. Idéias inovadoras
9
KPA – Key process area Objetivos Compromissos Habilidades Atividades Métodos de monitoramento da
implementação Métodos de verificação da implementação
10
Modelo de Processo
‘Status quo’
Definição do Problema
Integração daSolução
DesenvolvimentoTécnico
11
Modelo Linear Sequencial(‘cascata’ ou clássico)
Modelagem
Análise
Design
Codificação
Testes
Instalação
12
Problemas do ciclo clássico Os projetos reais raramente seguem o fluxo
sequencial que o modelo propõe Muitas vezes é difícil para o cliente
declarar todas as exigências explicitamente Uma versão do sistema só estará disponível
em um ponto muito tardio do cronograma do projeto
13
Coleta e Refinamento dos RequisitosFim
Início
Engenharia do Produto
Refinamento do Protótipo
Avaliação do Protótipo peloCliente
Construção do Protótipo
ProjetoRápido
Desenvolvimento por Protótipos
14
Protótipo Desenvolver pelo menos 2 vezes
Protótipos técnicos Protótipos funcionais
15
RAD (Rapid Application Development)Modelagemdo negócio
Modelagemdos dados
Modelagemdos processos
Geraçãoda aplicação
Testes &modificações60-90 dias
Equipe #1 Equipe #2
16
Problemas do RAD
Equipes suficientes Comprometimento dos usuários e técnicos Nem todos os sistemas são adequados:
Baixa modularidade Requisitos de alta performance
Riscos técnicos elevados
17
Modelo Incremental
Análise Design Codificação Testes
Análise Design Codificação Testes
Análise Design Codificação Testes
1o increm.
2o inc
18
Modelo Espiral
Planejamento Análise dos Riscos
Avaliação do Cliente
Engenharia
Análise dos riscos baseada nos requisitos iniciais
Análise dos riscos baseada na reação do cliente
Decisão de Prosseguir ou não
Na direção de um sistema concluido
Coleta inicial dos Requisitos e Planejamento do Projeto
Planejamento baseadonos comentários do cliente
Avaliação do cliente
Protótipo de Software inicial
Protótipo de nível seguinte
Sistema construido pela engenharia
19
Regiões de tarefas:
Comunicação com o cliente Planejamento Análise de riscos Engenharia do produto Construção e liberação do produto Avaliação do cliente
20
Modelo WINWIN (espiral) “Negociação com o cliente”:
1. Identificação dos ‘acionistas’
2. Determinação das condições de ganho dos acionistas
3. Negociação com os acionistas para reconciliar as suas condições de ganho com os ganhos do projeto
21
Desenvolvimento baseado em componentes
IdentificarComponentes
candidatos
Colocar novosComponentesNa biblioteca
Construir Na
Interação dosistema
Extrair Componentes se
disponíveis
Procurar componentes na Biblioteca
ConstruirComponentes se
indisponíveis
22
Métodos Formais Cleanroom software engineering
Modelos matemáticos
Dificuldades: Tempo e custo maior Conhecimento e treinamento Modelos difíceis de os usuários entenderem
23
Linguagens de 4a geração (4GL) Linguagens não procedurais para consultas a
bancos de dados Geradores de relatórios Gerenciadores de dados Interfaces gráficas Geradores de código Planilhas eletrônicas Geradores de HTML