análise e gerenciamento de requisitos com casos de uso módulo 1 melhores práticas da engenharia...

34
Análise e Gerenciamento de Requisitos com Casos de Uso Módulo 1 Melhores Práticas da Engenharia de Software

Upload: internet

Post on 17-Apr-2015

112 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Análise e Gerenciamento de Requisitos com Casos de Uso Módulo 1 Melhores Práticas da Engenharia de Software

Análise e Gerenciamento de Requisitos com Casos de Uso

Módulo 1Melhores Práticas da

Engenharia de Software

Page 2: 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.

Page 3: Análise e Gerenciamento de Requisitos com Casos de Uso Módulo 1 Melhores Práticas da Engenharia de Software

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).

Page 4: Análise e Gerenciamento de Requisitos com Casos de Uso Módulo 1 Melhores Práticas da Engenharia de Software

Mapeamento dos Sintomas para causas raiz

Necessidades erradas

Requisitos Mutantes

Módulos isolados

Difícil manter

Tarde demais

Baixa qualidade

Baixa performance

Equipe descoordenada

Problemas de Build-e-release

Requisitos insuficientes

Comunicação Ambígua

Arquiteturas fragmentadas

Complexidade desnecessária

Inconsistências

Testes insuficientes

Avaliação subjetiva

Desenvolvimento em cascata

Mudanças não controladas

Automação Insuficiente

Sintomas Causas Raiz Melhores Práticas

Desenvolver iterativamente

Gerenciar Requisitos

Arquiteturas componentizadas

Modelar Visualmente (UML)

Verificação de Qualidade

Gerenciar Mudanças

Gerenciar Requisitos

Verificação da Qualidade

Gerenciar Mudanças

Gerenciar Requisitos

Verificação da Qualidade

Gerenciar Mudanças

Requisitos insuficientes

Comunicação ambígua

Mudanças não controladas

Requisitos insuficientes

Comunicação ambígua

Mudanças não controladas

Requisitos mutantes

Requisitos mutantes

Page 5: Análise e Gerenciamento de Requisitos com Casos de Uso Módulo 1 Melhores Práticas da Engenharia de Software

Melhores PráticasProcesso Prático

Melhores PráticasProcesso Prático

Desenvolver IterativamenteGerenciar Requisitos

Arquiteturas Componentizadas

Modelar Visualmente (UML)Verificar Qualidade

Gerenciar Mudanças

Desenvolver IterativamenteGerenciar Requisitos

Arquiteturas Componentizadas

Modelar Visualmente (UML)Verificar Qualidade

Gerenciar Mudanças

Desenvolver Iterativamente

Page 6: Análise e Gerenciamento de Requisitos com Casos de Uso Módulo 1 Melhores Práticas da Engenharia de Software

Características do Desenvolvimento em Cascata

• 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.Código e Teste

Design

Integraçãodos Módulos

Teste de Sistema

Processo CascataProcesso Cascata

Análise de Requisitos

Planejamento

Page 7: Análise e Gerenciamento de Requisitos com Casos de Uso Módulo 1 Melhores Práticas da Engenharia de Software

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.

T E M P OT E M P O

Iteração 1 Iteração 2 Iteração 3 P

RD

CI

T

PR

DC

IT

PR

DC

IT

Page 8: Análise e Gerenciamento de Requisitos com Casos de Uso Módulo 1 Melhores Práticas da Engenharia de Software

Desenvolvimento Iterativo

Page 9: Análise e Gerenciamento de Requisitos com Casos de Uso Módulo 1 Melhores Práticas da Engenharia de Software

Comportamento dos Riscos

TempoTempo

Ris

coR

isco

Risco no Processo Cascata

Risco no Processo Iterativo

Redução de RiscoRedução de Risco

Page 10: Análise e Gerenciamento de Requisitos com Casos de Uso Módulo 1 Melhores Práticas da Engenharia de Software

Gerenciar Requisitos

Melhores PráticasProcesso Prático

Melhores PráticasProcesso Prático

Desenvolver IterativamenteGerenciar Requisitos

Arquiteturas Componentizadas

Modelar Visualmente (UML)Verificar Qualidade

Gerenciar Mudanças

Desenvolver IterativamenteGerenciar Requisitos

Arquiteturas Componentizadas

Modelar Visualmente (UML)Verificar Qualidade

Gerenciar Mudanças

Page 11: Análise e Gerenciamento de Requisitos com Casos de Uso Módulo 1 Melhores Práticas da Engenharia de Software

• 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.

Gerenciamento de Requisitos

Page 12: Análise e Gerenciamento de Requisitos com Casos de Uso Módulo 1 Melhores Práticas da Engenharia de Software

Use Arquiteturas Componentizadas

Melhores PráticasProcesso Prático

Melhores PráticasProcesso Prático

Desenvolver IterativamenteGerenciar Requisitos

Arquiteturas Componentizadas Modelar Visualmente (UML)

Verificar QualidadeGerenciar Mudanças

Desenvolver IterativamenteGerenciar Requisitos

Arquiteturas Componentizadas Modelar Visualmente (UML)

Verificar QualidadeGerenciar Mudanças

Page 13: Análise e Gerenciamento de Requisitos com Casos de Uso Módulo 1 Melhores Práticas da Engenharia de Software

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.

Page 14: Análise e Gerenciamento de Requisitos com Casos de Uso Módulo 1 Melhores Práticas da Engenharia de Software

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 Repositórios

Integração

Escopo deNegócio

Escopo de Aplicação

Arquitetura baseada em componentes

distribuídos em camadas

Page 15: Análise e Gerenciamento de Requisitos com Casos de Uso Módulo 1 Melhores Práticas da Engenharia de Software

Modelar Visualmente (UML)

Melhores PráticasProcesso Prático

Melhores PráticasProcesso Prático

Desenvolver IterativamenteGerenciar Requisitos

Arquiteturas Componentizadas

Modele Visualmente (UML)Verificar Qualidade

Gerenciar Mudanças

Desenvolver IterativamenteGerenciar Requisitos

Arquiteturas Componentizadas

Modele Visualmente (UML)Verificar Qualidade

Gerenciar Mudanças

Page 16: Análise e Gerenciamento de Requisitos com Casos de Uso Módulo 1 Melhores Práticas da Engenharia de Software

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 Estáticos

Diagramas deAtividade

Modelos

Diagramas de Seqüência

Diagramas de Colaboração

Diagramasde Estado

Diagramas deDeployment

Diagramas de Componente

Diagramas deObjetos

Diagramas de ClassesDiagramas de

Casos de Uso

Diagramas Dinâmicos

UML, uma linguagem padronizada.

Page 17: Análise e Gerenciamento de Requisitos com Casos de Uso Módulo 1 Melhores Práticas da Engenharia de Software

Verificar Qualidade Continuamente

Melhores PráticasProcesso Prático

Melhores PráticasProcesso Prático

Desenvolver IterativamenteGerenciar Requisitos

Arquiteturas Componentizadas

Modelar Visualmente (UML)Verificar Qualidade

ContinuamenteGerenciar Mudanças

Desenvolver IterativamenteGerenciar Requisitos

Arquiteturas Componentizadas

Modelar Visualmente (UML)Verificar Qualidade

ContinuamenteGerenciar Mudanças

Page 18: Análise e Gerenciamento de Requisitos com Casos de Uso Módulo 1 Melhores Práticas da Engenharia de Software

Teste das Dimensões de Qualidade

ConfiabilidadeConfiabilidadeTeste a aplicação em Teste a aplicação em sua consistência de sua consistência de comportamento.comportamento.

PerformancePerformanceTeste o tempo de Teste o tempo de

resposta da aplicação resposta da aplicação on-line e com picos on-line e com picos elevados de uso.elevados de uso.

FuncionalidadeFuncionalidadeTeste a aderência Teste a aderência de cada cenário de cada cenário de caso de uso.de caso de uso.

UsabilidadeUsabilidadeTeste a aplicação Teste a aplicação sob a perspectiva sob a perspectiva

de conveniência de de conveniência de uso pelo usuário.uso pelo usuário.

SuportabilidadeSuportabilidadeTeste a capacidade da Teste a capacidade da

aplicação ser mantida aplicação ser mantida em produção.em produção.

Page 19: Análise e Gerenciamento de Requisitos com Casos de Uso Módulo 1 Melhores Práticas da Engenharia de Software

Verificação Contínua da Qualidade do SoftwareC

usto

TransiçãoConstruçãoElaboraçãoConcepção

Problemas de Software são de100 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

Page 20: Análise e Gerenciamento de Requisitos com Casos de Uso Módulo 1 Melhores Práticas da Engenharia de Software

Mo

de

lo U

ML

e A

plic

açã

o T

est

es

Iteração 1Iteração 1

Test Suite 1Test Suite 1

Iteração 2Iteração 2

Test Suite 2Test Suite 2

Iteração 3Iteração 3

Test Suite 3Test Suite 3

Teste cada iteração

Test Suite 4Test Suite 4

Iteração 4Iteração 4

Page 21: Análise e Gerenciamento de Requisitos com Casos de Uso Módulo 1 Melhores Práticas da Engenharia de Software

Gerenciar Mudanças

Melhores PráticasProcesso Prático

Melhores PráticasProcesso Prático

Desenvolver IterativamenteGerenciar Requisitos

Arquiteturas Componentizadas

Modelar Visualmente (UML)Verificar Qualidade

Gerenciar Mudanças

Desenvolver IterativamenteGerenciar Requisitos

Arquiteturas Componentizadas

Modelar Visualmente (UML)Verificar Qualidade

Gerenciar Mudanças

Page 22: Análise e Gerenciamento de Requisitos com Casos de Uso Módulo 1 Melhores Práticas da Engenharia de Software

Requisições de Mudanças vêm de várias fontes durante o ciclo

de vida do sistema.

Gerenciamento das Requisições de Mudanças

Entradas do Help Desk

Entradas dos Desenvolvedores e Testadores

Entradas dos Usuários e Clientes

Marketing

Nova Característica

Novo Requisito

Bug

Processo deAprovação

das Requisiçõesde Mudança

Comitê de Controle

(CCM)

Canal Único de Aprovação

Requisição de Mudança (RM)

Req

Design

Código

Teste

Manut

Weinberg, ‘95

Page 23: Análise e Gerenciamento de Requisitos com Casos de Uso Módulo 1 Melhores Práticas da Engenharia de Software

As melhores práticas reforçam umas as outras

Envolvimento dos usuários no desenv. dos requisitos

Melhores PráticasMelhores Práticas

Desenvolver Iterativamente

Gerenciar Requisitos

Utilizar Arquiteturas Componentizadas

Modelar Visualmente (UML)

Verificar Qualidade

Gerenciar Mudanças

Desenvolver Iterativamente

Gerenciar Requisitos

Utilizar Arquiteturas Componentizadas

Modelar Visualmente (UML)

Verificar Qualidade

Gerenciar Mudanças

Validação antecipada das decisões arquiteturais

Ataca complexidade deDesign / Implementação

incrementalmente

Mede qualidade freqüentemente

Desenvolvimento incremental de baselines

Page 24: Análise e Gerenciamento de Requisitos com Casos de Uso Módulo 1 Melhores Práticas da Engenharia de Software

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

Page 25: Análise e Gerenciamento de Requisitos com Casos de Uso Módulo 1 Melhores Práticas da Engenharia de Software

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

Requisitos

Novo ou alterado

Sistema

Processo de Processo de

RequisitosRequisitos

Page 26: Análise e Gerenciamento de Requisitos com Casos de Uso Módulo 1 Melhores Práticas da Engenharia de Software

Concepção Elaboração Construção Transição

Estrutura do Processo – Fases

Tempo

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”

Lidar com riscos relacionados à logística de entrega da aplicação para o ambiente de produção

Page 27: Análise e Gerenciamento de Requisitos com Casos de Uso Módulo 1 Melhores Práticas da Engenharia de Software

Fronteiras (ou Marcos) das Fases

ConcepçãoConcepção ElaboraçãoElaboração ConstruçãoConstrução TransiçãoTransição

Objetivos doCiclo de Vida e Decisão de Viabilidade do Projeto

Ciclo de Vida da ArquiteturaValidada

CapacidadeOperacionalInicial

ReleaseFinal doProduto

Page 28: Análise e Gerenciamento de Requisitos com Casos de Uso Módulo 1 Melhores Práticas da Engenharia de Software

Iterações e Fases

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).

Iteração PreliminarIteração Preliminar IteraçãoIteraçãoArquiteturalArquitetural

Iteração de Iteração de ConstruçãoConstrução

Iteração de Iteração de TransiçãoTransição

IteraçãoIteraçãode Trans.de Trans.

ConcepçãoConcepção ElaboraçãoElaboração ConstruçãoConstrução TransiçãoTransição

Marcos e Objetivos Menores: Releases

Iteração Iteração ArquiteturalArquitetural

Iteração de Iteração de ConstruçãoConstrução

Page 29: Análise e Gerenciamento de Requisitos com Casos de Uso Módulo 1 Melhores Práticas da Engenharia de Software

Evolução dos Artefatos Através do Ciclo de Vida

Artefatos do Projeto são produzidos iterativamente.

Page 30: Análise e Gerenciamento de Requisitos com Casos de Uso Módulo 1 Melhores Práticas da Engenharia de Software

Colocando tudo junto

Disciplinas agrupam

atividades logicamente.

Em uma iteração, você passa por todas as disciplinas.

Page 31: Análise e Gerenciamento de Requisitos com Casos de Uso Módulo 1 Melhores Práticas da Engenharia de Software

Disciplinas produzem modelos

Modelos

Modelo de Caso de Uso de Negócio

Implementado por

Modelo de Objetos de Negócio

Modelo deDesign

Modelo de Implementação

Modelo deCaso de Uso

Realizado por

Automatizado por

Realizado por

Disciplinas ImplementaçãoImplementaçãoAnálise &Análise &DesignDesign

RequisitosRequisitosModelagemModelagemde Negóciode Negócio

Page 32: Análise e Gerenciamento de Requisitos com Casos de Uso Módulo 1 Melhores Práticas da Engenharia de Software

Guia das DisciplinasWorkflow da

Modelagem de Negócios

Workflow de Requisitos

Page 33: Análise e Gerenciamento de Requisitos com Casos de Uso Módulo 1 Melhores Práticas da Engenharia de Software

Visão Geral dos Conceitos do Processo Unificado

Page 34: Análise e Gerenciamento de Requisitos com Casos de Uso Módulo 1 Melhores Práticas da Engenharia de Software

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.