Engenharia de
Software
Processos de Software
Felipe Cunha; Yugo Alencar
Tópicos 1. Objetivos e conceitos
2. Modelos de Processo de SW
1. Modelo Cascata
2. Modelo Incremental
3. Modelo Orientado a Reuso
3. Atividades do Processo de SW
1. Especificação
2. Projeto e implementação
3. Validação
4. Evolução
4. Lidando com mudanças
1. Prototipação
2. Entrega incremental
3. Modelo espiral de Boehm
5. Rational Unified Process-RUP
321 54
Objetivos e conceitos
Conjunto de atividades relacionadas que levem à
Produção de software
Atividades Básicas à todos os Processos
 Especificação de Software
 Projeto e Implementação de Software
 Validação de Software
 Evolução de Software
Categorias de Processos de Softwares
 Dirigidos a planos
 Ageis
321 54
Modelos de Processos de SW
Modelo Cascata
Modelo Incremental
Modelo Orientado a Reuso
Modelo Cascata
Dirigido a plano
Foi o primeiro a ser adotado pelos desenvolvedores
Possui um conjunto de fases bem definidas que correspondem às
etapas do ciclo de vida do software
Não há mistura de fases: uma fase só começa quando a anterior
Termina
Ao final de cada fase, um ou mais documentos devem ser
aprovados pela equipe de desenvolvimento
Estágios
 Análise e definição de requisitos
 Projeto de sistema
 Implementação e testes unitarios
 Integração e testes do sistemas
 Operação e manutenção
Principais Problemas
 Projetos reais raramente seguem o fluxo seqüencial
 Dificuldade em congelar os requisitos no início e
em acomodar mudanças dinâmicas
 O cliente precisa ter paciência
Modelo Incremental
Desenvolver uma implementação inicial, apresentar
ao cliente e continuar por meio de varias versões
até o fim do sistema.
Vantagens
 Menor custo de mudanças nos requisitos
 O cliente pode avaliar o sistema em estágio inicial
(feedback mais fácil)
 Existe um risco menor de fracasso completo do
sistema
Problemas
 Processo não visível
 A estrutura tende a se degradar
321 54
Atividades do Processo de Software
Processo de software: inclui atividades:
Objetivo:
especificar
projetar
implementar
testar
evoluir
Técnicas
GerênciaColaboração
Especificação Projeto e
implementação
Validação Evolução
Como organizar essas atividades ?
Especificação
Especificação de software é a atividade de
compreensão e definição dos serviços
requisitados do sistema e de identificação de
restrições relativas à operação e ao
desenvolvimento do sistema
Estudo de
viabilidade
Elicitação e
análise de
requisitos
Especificação de
requisitos
Validação de
requisitos
Relatório de
viabilidade
Modelos de
sistema Requisitos de
usuários e de
sistema
Documentação de
requisitos
Especificação
Projeto e implementação de software
É o processo de conversão de uma especificação
do sistema em um sistema executável, isso inclui
o projeto do software e a programação do
software.
Informação de
plataforma
Especificação
de requisitos
Descrição de
dados
Arquitetura de
sistema
Especificação de
Banco de dados
Especificação de
interface
Especificação de
componentes
Projeto de
arquitetura
Projeto de
interface
Projeto de
componentes
Projeto de Banco de dados
Entradas de projeto
Atividades de projeto
Saídas de projeto
Projeto e implementação
Validação de software
É o processo de verificação que objetiva mostrar
que um software se adéqua a suas
especificações ao mesmo tempo que satisfaz as
especificações do cliente.
Teste de
componente
Teste de sistema Teste de aceitação
Validação
Especificação
dos requisitos
Especificação
do sistema
Projeto do
sistema
Projeto
detalhado
Serviço Teste de
aceitação
Teste de
integração do
sistema
Teste de
integração do
sub-sistema
Código e teste
unitário e de
módulo
Plano de testes
de aceitação
Plano de testes
de integração do
sistema
Plano de teste
de integração do
sub-sistema
Fases de testes dirigido a planos
Evolução do software
É o processo de evoluir o software durante seu
período de vida em resposta às mudanças de
requisitos e às necessidades do cliente.
Definir
requisitos de
sistema
Avaliar sistemas
existentes
Propor
mudanças de
sistema
Modificar
sistemas
Sistemas
existentes
Novo sistema
Evolução do software
321 54
Lidando com mudanças
Lidando com mudanças
•Mudanças de negócios levar a requisitos novos e
alterados do sistema
•As novas tecnologias abrem novas possibilidades para
melhorar as implementações
•Plataformas novas exigem alterações de aplicativos
Mudança leva a reformular de modo que os custos de
mudança incluem tanto retrabalho, bem como os custos
de implementação de novas funcionalidades
321 54
Rational Unified Process-RUP
Rational Unified Process-RUP
É um modelo constituido quatro fases distintas
no processo de software
Concepção
Definir o escopo do software
Descobrir os casos de uso críticos
Estimar por alto o custo e o cronograma de todo
o projeto
Levantar os potenciais riscos
Elaboração
Detalhar a maioria dos requisitos
Construir a arquitetura do sistema
Produzir protótipos evolucionários ou
descartáveis
Elaboração
Detalhar a maioria dos requisitos
Construir a arquitetura do sistema
Produzir protótipos evolucionários ou
descartáveis
Construção
Produzir a versão para testes
Ênfase na produção de software operacional
Envolve análise, projeto e implementação dos
requisitos
Transição
Validar o sistema em relação às expectativas dos
usuários
Testes e operacionalização do software
(geralmente, em paralelo com o sistema legado)
Treinamento de usuários
Correção de erros, pequenas melhorias, pequenos
ajustes
Obrigado!
Referências
Ian Sommerville. Engenharia de Software, 9a. Edição. 2011

Es capítulo 2 - processos de software