Análise e Gerenciamento de
Requisitos com Casos de Uso
Módulo 1
Melhores Práticas da
Engenharia de Software
Objetivos
• Lista de sintomas dos problemas encontrados no
Desenvolvimento de Software.
• Definição das Seis Melhores Práticas.
• Descrição das Atividades para resolver os
problemas da Engenharia de Software para cada
Melhor Prática.
• Apresentação do Processo Unificado (UP),
dentro do contexto das Seis Melhores Práticas.
Problemas do Desenvolvimento de Software
 SINTOMAS:









Necessidades de Negócio e Usuário não atendem.
Muitas mudanças de requisitos.
Módulos não integram.
Difícil de manter.
Descoberta tardia das falhas.
Baixa qualidade e iteratividade com o usuário.
Baixa performance sob condições normais.
Esforço não coordenado da equipe.
Problemas de build-e-release (construção e lançamento de
versão).
Mapeamento dos Sintomas para causas raiz
Sintomas
Causas Raiz
Necessidades erradas
Requisitosinsuficientes
insuficientes
Requisitos
mutantes
Requisitos Mutantes
ComunicaçãoAmbígua
ambígua
Comunicação
Módulos isolados
Arquiteturas fragmentadas
Difícil manter
Complexidade desnecessária
Tarde demais
Inconsistências
Baixa qualidade
Testes insuficientes
Baixa performance
Avaliação subjetiva
Equipe descoordenada
Desenvolvimento em cascata
Problemas de Build-erelease
Mudançasnão
nãocontroladas
controladas
Mudanças
Automação Insuficiente
Melhores Práticas
Desenvolver iterativamente
Gerenciar Requisitos
Arquiteturas componentizadas
Modelar Visualmente (UML)
de Qualidade
Verificação da
Gerenciar
Gerenciar Mudanças
Mudanças
Desenvolver Iterativamente
Melhores Práticas
Processo Prático
Desenvolver Iterativamente
Gerenciar Requisitos
Arquiteturas
Componentizadas
Modelar Visualmente (UML)
Verificar Qualidade
Gerenciar Mudanças
Características do Desenvolvimento em Cascata
Processo Cascata
Planejamento
Análise de
Requisitos
Design
Código e Teste
• Demora na confirmação e
resolução de Riscos.
• Mensura progresso por
produto-entregue que são
indicadores ruins.
• Demora nas integrações e
testes.
• Implantações só no final.
• A maioria dos resultados ocorre
em iterações não planejadas.
Integração
dos Módulos
Teste de Sistema
Características do Desenvolvimento Iterativo
•
•
•
•
•
Resolve os maiores riscos antes que haja custos elevados.
Facilita maior participação e feedback do usuário.
Faz testes e integração contínua.
Foca em marcos de projeto curtos e objetivos.
Torna possível a entrega parcial de executáveis.
Iteração 1
Iteração 2
P
Iteração 3
P
R
P
R
D
D
C
D
C
I
C
I
T
TEMPO
R
I
T
T
Desenvolvimento Iterativo
Comportamento dos Riscos
Risco
Risco no Processo Cascata
Redução de Risco
Risco no Processo Iterativo
Tempo
Gerenciar Requisitos
Melhores Práticas
Processo Prático
Desenvolver Iterativamente
Gerenciar Requisitos
Arquiteturas
Componentizadas
Modelar Visualmente (UML)
Verificar Qualidade
Gerenciar Mudanças
Gerenciamento de Requisitos
• Tenha certeza que está resolvendo o problema
certo e entregando o sistema certo.
• Para ter uma ação completa:
– Entenda o Problema.
– Detalhe, organize, e documente os requisitos.
– Gerencie mudanças de requisitos do sistema.
Use Arquiteturas Componentizadas
Melhores Práticas
Processo Prático
Desenvolver Iterativamente
Gerenciar Requisitos
Arquiteturas Componentizadas
Modelar Visualmente (UML)
Verificar Qualidade
Gerenciar Mudanças
Arquitetura Robusta Baseada em Componentes
• Robusta
–
–
–
–
Atende aos requisitos atuais e futuros.
Melhora a extensibilidade da aplicação.
Permite reuso de funcionalidades.
Encapsula funções e dados do sistema.
• Baseado em componentes
– Reuso e customização de componentes.
– Escolha de componentes comerciais disponíveis.
– Integra o sistema existente incrementalmente.
Arquitetura Baseada Em Componentes
• Base para Reuso
– Componentes
– Bibliotecas de Componentes
• Base para Gerência de Projetos
– Planejamento
– Otimização de Recursos
– Entregas
• Controle Intelectual
– Emcapsulamento
– Mantém integridade
das regras
Arquitetura baseada
em componentes
distribuídos em
camadas
Escopo de
Aplicação
Escopo de
Negócio
Integração
Repositórios
Modelar Visualmente (UML)
Melhores Práticas
Processo Prático
Desenvolver Iterativamente
Gerenciar Requisitos
Arquiteturas
Componentizadas
Modele Visualmente (UML)
Verificar Qualidade
Gerenciar Mudanças
Por que modelar visualmente?
•
•
•
•
•
•
Captura estrutura e comportamento.
Apresenta a colaboração entre os elementos.
Mantém design e implementação consistentes.
Esconde ou expõe detalhes.
Promove a comunicação não ambígua.
Facilita a evolução do conhecimento.
Diagramas de
Seqüência
Diagramas de
Colaboração
Diagramas
Dinâmicos
Diagramas
de Estado
Diagramas de
Casos de Uso
Diagramas
de Classes
Modelos
Diagramas de
Atividade
Diagramas de
Objetos
Diagramas de
Componente
Diagramas de
Deployment
Diagramas
Estáticos
UML, uma
linguagem
padronizada.
Verificar Qualidade Continuamente
Melhores Práticas
Processo Prático
Desenvolver Iterativamente
Gerenciar Requisitos
Arquiteturas
Componentizadas
Modelar Visualmente (UML)
Verificar Qualidade
Continuamente
Gerenciar Mudanças
Teste das Dimensões de Qualidade
Usabilidade
Teste a aplicação
sob a perspectiva
de conveniência de
uso pelo usuário.
Funcionalidade
Teste a aderência
de cada cenário
de caso de uso.
Confiabilidade
Teste a aplicação em
sua consistência de
comportamento.
Suportabilidade Performance
Teste a capacidade da
aplicação ser mantida Teste o tempo de
resposta da aplicação
em produção.
on-line e com picos
elevados de uso.
Custo
Verificação Contínua da Qualidade do Software
Problemas de Software são de
100 a 1000 vezes mais caros
se encontrados e consertados
depois de instalados
 Custo para consertar Software
 Custo com a perda de
oportunidades
 Custo com a perda de clientes
Concepção
Elaboração
Construção
Transição
Teste cada iteração
Iteração 2
Iteração 3
Iteração 4
Test Suite 1
Test Suite 2
Test Suite 3
Test Suite 4
Testes
Modelo UML
e Aplicação
Iteração 1
Gerenciar Mudanças
Melhores Práticas
Processo Prático
Desenvolver Iterativamente
Gerenciar Requisitos
Arquiteturas
Componentizadas
Modelar Visualmente (UML)
Verificar Qualidade
Gerenciar Mudanças
Gerenciamento das Requisições de Mudanças
Requisições de Mudanças vêm
de várias fontes durante o ciclo
de vida do sistema.
Canal Único
de Aprovação
Nova
Característica
Entradas dos
Usuários e Clientes
Req
Marketing
Processo de
Aprovação
das
Requisições
de Mudança
Comitê de
Controle
(CCM)
Novo Requisito
Bug
Requisição de
Mudança (RM)
Design
Código
Teste
Entradas dos
Desenvolvedores e
Testadores
Entradas do Help
Desk
Manut
Weinberg, ‘95
As melhores práticas reforçam umas as outras
Melhores Práticas
Desenvolver Iterativamente
Gerenciar Requisitos
Utilizar Arquiteturas
Componentizadas
Modelar Visualmente (UML)
Envolvimento dos usuários no
desenv. dos requisitos
Validação antecipada das
decisões arquiteturais
Ataca complexidade de
Design / Implementação
incrementalmente
Verificar Qualidade
Mede qualidade
freqüentemente
Gerenciar Mudanças
Desenvolvimento incremental
de baselines
Processo Unificado e as Melhores Práticas
•
•
•
•
Abordagem Iterativa
Guias para atividades e artefatos
Foco do Processo na Arquitetura
Casos de uso que direcionam o projeto
de arquitetura e a implementação
• Modelos que abstraem o sistema
Definição de Processo
O processo define Quem está fazendo O que,
Quando, e Como a fim de chegar a um
determinado objetivo.
Novo ou alterado Processo de Novo ou alterado
Requisitos
Requisitos
Sistema
Estrutura do Processo – Fases
Concepção
Elaboração
Construção
Lidar com
riscos
relacionados
ao negócio.
(notação
financeira do
projeto)
Lidar com
riscos
relacionados
aos
assuntos
técnicos do
projeto.
Lidar com
riscos
relacionados
a “ter a
massa de
trabalho
pronta”
Tempo
Transição
Lidar com
riscos
relacionados à
logística de
entrega da
aplicação para
o ambiente de
produção
Fronteiras (ou Marcos) das Fases
Concepção
Elaboração
Construção
Objetivos do
Ciclo de Vida
Ciclo de Vida e da Arquitetura
Decisão de
Validada
Viabilidade do
Projeto
Transição
Capacidade Release
Operacional Final do
Inicial
Produto
Iterações e Fases
Concepção
Iteração Preliminar
Elaboração
Iteração
Arquitetural
Iteração
Arquitetural
Construção
Transição
Iteração de Iteração de Iteração de Iteração
Construção Construção Transição de Trans.
Marcos e Objetivos
Menores:
Releases
Uma iteração é uma seqüência distinta de atividades baseadas
em um plano existente e critérios de avaliação, resultando na
liberação de um artefato (produto - interno ou externo).
Evolução dos Artefatos Através do Ciclo de Vida
Artefatos do Projeto são produzidos
iterativamente.
Colocando tudo junto
Em uma
iteração,
você passa
por todas as
disciplinas.
Disciplinas
agrupam
atividades
logicamente.
Disciplinas produzem modelos
Disciplinas
Modelagem
de Negócio
Requisitos
Análise & Implementação
Design
Modelos
Modelo de
Caso de Uso
Realizado de Negócio
por
Modelo de
Caso de Uso
Automatizado
por
Modelo de
Objetos de Negócio
Realizado
por
Modelo de
Design
Implementado
por
Modelo de
Implementação
Guia das Disciplinas
Workflow da
Modelagem de Negócios
Workflow de
Requisitos
Visão Geral dos Conceitos do Processo Unificado
Revisão
• As melhores práticas são guias da Engenharia
de Software para atacar as causas dos problemas
do Desenvolvimento de Software;
• As melhores práticas reforçam umas as outras;
• Um processo guia a equipe de quem, o que,
quando e como fazer as atividades;
• Processo Unificado é uma forma de colocar em
ação as Melhores Práticas.
Download

melhores práticas