Processos de
Desenvolvimento de
Software – Parte 2
Análise de Sistemas de Software
Prof. Rodrigo Ribeiro
Atividades de um Processo

Na aula passada...


Diferentes modelos de processos de software
Atividades
 Especificação
 Projeto
e Implementação
 Validação
 Evolução

Variam na forma em que são executadas
 Dependem
do modelo de processo...
Especificação de Software

Fases
 Estudo
de viabilidade
É possível fazer o que o usuário deseja?
 Considera prazos e custos

 Elicitação
e análise de requisitos
 Especificação de requisitos

Separar requisitos em:
Requisitos de usuário
 Requisitos de sistema

 Validação

de requisitos
Está tudo ok e é possível fazer?
Especificação de Software
Estudo de
viabilidade
Elicitação e
análise
Especificação
Relatório de
viabilidade
Validação
Modelos de
Sistema
Req. Usuário
e de sistema
Documento
Requisitos
Projeto e Implementação

Fases
 Projeto de Arquitetura
 Relacionamentos entre subsistemas
 Especificação Abstrata
 Quais serviços devem ser oferecidos por um subsistema?
 Projeto de interface
 Projeto de interface entre subsistemas.

Especificação formal
 Projeto de componente
 Quais serviços serão oferecidos
 Projeto
de estrutura de dados
 Projeto de algoritmos
Projeto e Implementação
Especificação
de requisitos
Projeto de
Arquitetura
Arquitetura de
sistema
Especificação
abstrata
Especificação
de software
Projeto de
interface
Projeto de
componente
Especificação
de interface
Projeto de
algoritmo
Especificação
de algoritmo
Especificação
de componente
Projeto de
Estr. de dados
Especificação
de Estr. Dados
Validação

Objetivo
 Código

está de acordo com requisitos?
Ferramentas
 Inspeções
 Revisões
 Testes

Fases
 Teste
de unidade
 Teste de sistema
 Teste de aceitação

Diferença entre teste alfa e beta
Validação
Especificação
de requisitos
Especificação
de sistema
Teste de
aceitação
Operação
Projeto de
Teste aceit.
Projeto
de sistema
Teste de
sistema
Projeto
detalhado
Teste de
subsistema
Projeto de
Teste sist.
Código e
Teste unit.
Projeto de
Teste subsist.
Evolução

Evolução (manutenção)
 Incorporar
novas características
 Integração
 Migração

Evolução é muito mais cara que desenvolver
 Porquê?
 Evolução
envolve:
Possível compreensão do código existente
 Re-projeto de código existente para acomodar mudanças

Evolução
Definir
requisitos
Avaliar
Sistemas exist.
Propor
mudanças
Modificar
sistemas
Sistemas
novos
Sistemas
existentes
Exemplos de Processos

Vimos até agora...
 Diversos
modelos de processos
 Etapas comuns a diversos modelos

Exemplos
software process – PSP
 Team software process – TSP
 Unified Process
 Personal
Rational Unified Process – RUP
 PRocesso para Aplicativos eXtensíveis e InterativoS PRAXIS

Personal Software Process

Processo para desenvolvimento “solo”
 Educacional

Define vários níveis
 Processos

pessoais básicos
Registro de tempo, defeitos
 Processos
pessoais com planejamento
Estimativas de tamanho, relatórios de testes
 Cronogramas

 Processos

pessoais com gestão de qualidade
Modelo de desenho e revisões
Team Software Process

Evolução natural do PSP
 Possui
fins educacionais
Baseado no modelo espiral
 Times pequenos de desenvolvedores

 Duração
média de 15 semanas (3 ciclos)
 Desenvolvedores fazem mais de um papel

Qualidade, testes, gerência de projeto...
 Assim

como o PSP
Controle de tamanho, esforço, prazos, etc...
Team Software Process

Fases
 Lançamento

Ativação do projeto.
 Estratégia
Seleção da estratégia de desenvolvimento
 Estimativa de tamanho

 Planejamento
Produção de planos de tarefas
 Produção de planos de qualidade

Team Software Process

Fases
 Requisitos
Produção de documento de requisitos
 Revisão de requisitos por usuários

 Desenho
Desenho de alto nível
 Documentação do desenho

 Implementação
Desenho detalhado
 Inspeção do desenho
 Codificação e testes de unidade

Team Software Process

Fases
 Testes

Planejamento de testes
Integração
 Sistemas

Realização de testes
 Documentação de testes

 Post-mortem
Avaliação do processo
 Documentação dos resultados

Unified Process

História da UML e U.P.
 Jackobson,

Booch, Rumbaugh
Características
 Dirigido
por casos de usos
 Centrado na arquitetura
 Iterativo e incremental

Baseado no modelo espiral
 Produto:
resultado final da espiral
 Projeto: um ciclo na espiral
 Não trata do que acontece nos ciclos.
Unified Process

Arcabouço para diversos processos
 RUP

Muito abstrato para ser utilizado...
 Deve

e Praxis
ser “instanciado” para utilização
Dividido em
 Fases
(phases): foco gerencial
 Fluxos (disciplines): foco técnico
Unified Process

Fases
 Concepção

Porquê desenvolver isso?
 Elaboração

Planejamento da construção
 Construção

Produção de um produto operacional
 Transição

Produto colocado à disposição de usuários.
Unified Process

Fluxos
 Requisitos

Obter um conjunto de requisitos com o cliente
 Análise

Validar, detalhar e estruturar requisitos
 Desenho

Elaboração de um modelo estrutural
 Implementação

Codificação
 Testes
Unified Process
Rational Unified Process

Outros modelos de processo...
 Apresentam

visão única
R.U.P. pode ser visto de 3 perspectivas
 Perspectiva

Fases do modelo ao longo do tempo
 Perspectiva

estática
Atividades realizadas ao longo do processo
 Perspectiva

dinâmica
prática
Boas práticas a serem adotadas durante o
processo
Rational Unified Process

Perspectiva dinâmica


Corresponde a fases do U.P.
Perspectiva estática


Corresponde a fluxos do U.P.
Acrescidos de fluxos





Modelagem de negócios
Gestão de configurações
Implantação(Deployment)
Infra-estrutura (environment)
Perspectiva prática






Desenvolvimento iterativo
Gerenciar requisitos
Usar arquiteturas baseadas em componentes
Modelar software visualmente: UML
Verificar qualidade
Controlar mudanças
Rational Unified Process

Processo completo e extensível
 Às
vezes, completo demais...
 Número de artefatos produzido elevado
 RUP

Produto comercializado pela Rational
Consultoria em processos
 Ferramentas
 Rational Rose
 Rational Enterprise Architect


Utilizaremos o Praxis
 Próxima
aula...
Download

Processos de Desenvolvimento de Software – Parte 2