gerência de requisitos de software. problemas comuns em desenvolvimento de software

57
Gerência de Requisitos de Software

Upload: internet

Post on 18-Apr-2015

109 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

Gerência de Requisitos de Software

Page 2: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

Problemas comuns em desenvolvimento de Software

Page 3: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

Melhorando o trabalho com requisitos:

Page 4: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

Alguns Números

Fatores de Sucesso de um Projeto % de Respostas

1. Envolvimento do Usuário 15.9%

2. Suporte do Gerente Executivo 13.9%

3. Requerimentos Bem Elicitados 13.0%

4. Planejamento Apropriado 9.6%

5. Expectativas Realistas 8.2%

6. Pequenos Marcos de Projeto 7.7%

7. Equipe Competente 7.2%

8. Domínio 5.3%

9. Visão Clara e Objetivos Definidos 2.9%

10. Trabalho Duro e Pessoal Focado 2.4%

11. Outros 13.9%

THE STANDISH GROUP REPORT 1995

Fatores que Mais Prejudicam um Projeto % de Respostas

1. Requerimentos Incompletos 13.1%

2. Quebra do envolvimento do Usuário 12.4%

3. Corte de recursos 10.6%

4. Expectativas irrealistas 9.9%

5. Falta de apoio do Gerente Executivo 9.3%

6. Mudança de Requerimentos e Especificações 8.7%

7. Falta de Planejamento 8.1%

8. Dimensionamento Maior que o Necessário 7.5%

9. Falta de gerenciamento de TI 6.2%

10. Falta de Conhecimento Tecnológico 4.3%

11. Outras 9.9%

Page 5: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

Antes de Qualquer Coisa....

“Nem sempre as Pessoas compram o que precisam, mas sempre desejam o que compram, mesmo que esse desejo seja transitório.”

Donald Gause e Gerald Weinberg

“Não faz sentido ser exato em relação a algo se você nem mesmo sabe o contexto do que está falando.”

John Von Neumann

“Ninguém possui uma verdade absoluta. A verdade é tão vasta que todas as verdades acabam sendo relativas.”

Osho

Page 6: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

Elicitação de Requisitos

Page 7: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

Elicitação de Requisitos

Elicitar: descobrir, tornar explicito, obter o máximo de informações para o conhecimento do objeto em questão.

Objetivos do Negócio

Descrição do

Problema

Restrições do Negócio

Estrutura da

Organização

Contexto da

Aplicação

Sistemas Existentes

Identificação dos

Stakeholder

Priorização dos Objetivos

Contexto do Conheciment

o

Requisitos dos

Stakeholder

Requisitos do Produto

Requisitos da Organização

Estabelecimento dos Objetivos

Entendimento do Contexto

Conhecimento da Organização

Coleta dos Requisitos

Page 8: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

Elicitação de Requisitos

• Entrevista• JAD - Joint Application Design • Leitura de Documentos• Questionários• Cenários• Etnografia (Observação)• Prototipagem

Page 9: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

Focinho, Olhos, Ouvidos. Nesta ordem… (Cesar Millan)

Page 10: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

Comunicação Não Verbal

• 7% verbal• 38% vocal (Incluindo o tom de voz,

inflexões e outros sons);• 55% não-verbal (gestos e movimentos)

Pesquisas mostram que o impacto total de uma mensagem é:

Page 11: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

Desenvolvimento de um Sistema

Como foi Pedido Como foi Levantado

Como foi Projetado

Page 12: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

Desenvolvimento de um Sistema

Como foi Aprovado Como foi Implementado

Page 13: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

Desenvolvimento de um Sistema

Como foi Documentado

Como está em produção

Como está sendo vendido

Page 14: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

Domínios das Informações dos Projetos

Universo de Informações

Domínio doProblema

Domínio daSolução

NecessidadeRequisito

s de Negócio

Requisito de Produto

Page 15: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

Definições

Requisito

Requisitos de Negócio Requisito de Produto

Necessidade

Req

uis

ito

Fu

nci

on

al

Req

uis

ito

Não

Fu

nc i

on

al

Req

uis

ito

sIn

v er s

os

Req

uis

ito

Fu

nci

on

al

Req

uis

ito

Não

Fu

nc i

on

al

Req

uis

ito

sIn

v er s

os

Page 16: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

Papeis Dentro do Processo

Responsável Técnico

Lider de Projeto

GerenteDe Configuração

Responsável pelo projeto. Faz a abertura do projeto e seu acompanhamento junto ao cliente. É ele que conduz as reuniões de aceitação do produto pelo cliente.

Responsável pelo desenvolvimento do software e pela interface entre o Líder de Projeto e a equipe do DS. Faz o acompanhamento das tarefas ligadas ao desenvolvimento do Software.

Responsável pelo versionamento dos artefatos gerados durante o desenvolvimento do software e pela guarda dos fontes ao final do projeto.

Page 17: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

Papéis

Analista deRequisito

Analista deNegócio

Responsável pela elicitação dos requisitos de negócio. Ë ele que cria o documento de visão, documento de regras de negócio e caso necessário desenvolve casos de uso a partir de cenários de negócio.

Responsável por elicitar os requisitos de produto, ligados a arquitetura da solução proposta. Os registros destes requisitos é feito através de casos de uso desenvolvidos a partir de cenários que levam em conta o software que será desenvolvido.

Administrador de Requisite Pro

Responsável pela criação de projetos e concessão de permissões dentro do ReqPro. Também faz o Transport das bases temporárias Access para o Oracle e mantém os templates dos documentos atualizados.

Page 18: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

Papéis

Equipe de Desenvolvimento

Equipe de Qualidade

Responsável por inspecionar os artefatos gerados em cada uma das fases do ciclo de desenvolvimento do software e realizar os testes no software construído. Considerei que o analista de teste faz parte desta equipe, ele é responsável por desenvolver os casos de teste.

Responsável por desenvolver os produtos relativos as fases de Análise, Projeto e Construção do software. Pode ser uma equipe interna ou uma fabrica de software externa.

Infra-estrutura

Responsável por criar os ambientes de desenvolvimento, teste, homologação e produção e colocar o software em produção. Em alguns casos realiza testes de liberação.

Page 19: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

Nec

essi

dade

Doc

umen

to d

e S

oluç

ão

Req

uisi

to d

e P

rodu

to

Aná

lise

Pro

jeto

Impl

emen

taçã

o

I nsp

eção

eT

e ste

s

Hom

olog

ação

Itens de Homologação

Casos de Teste

GC GC GC GC GC

Sempre que houver renegociação por mudança de escopo será necessário versionar os requisitos.

GC

Req

uisi

tos

de

Neg

ócio

Page 20: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

Desenvolvimento de um novo projeto:

Page 21: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

Necessidade

Documentode Visão

DemandaDocumentode Solução

NTI NTI

RequisitePro(Access)

NTI

Aprovaçãodo Cliente

Aprovaçãodo Cliente

ResponsávelPela Solução

Analista deNegócio

Líder de Projeto

Casos de UsoP/ Homologação

RequisitePro(Access)

Uso do SODA para formatação

do Relatório

Page 22: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

Documentode Visão

VOB/ViewDocumentode Solução(Aprovada)

NTI RequisitePro(Access)

Clear Case

Documentode Visão

RequisitePro(Oracle)

Documentode VisãoVersionado

Clear Case

RequisitePro(Oracle)

ResponsávelPela Solução

Administradorde ReqPro

Gerência deConfiguração

Page 23: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

Casos de UsoProduto

RequisitePro(Oracle)

Documentode VisãoVersionado

Clear Case

RequisitePro(Oracle)

Casos de UsoProdutoInspecionados

RequisitePro(Oracle)

Casos de UsoProdutoVersionados

Clear Case

RequisitePro(Oracle)

Aprovaçãodo Cliente

Analista deRequisitos

Equipe deQualidade

Gerência deConfiguração

Casos deTeste

CQTM

Page 24: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

Artefatos deAnálise

RSA

Casos de UsoProduto Versionados

Clear Case

RequisitePro(Oracle)

Artefatos deAnáliseInspecionados

RSA

Artefatos de AnáliseVersionados

Clear Case

RSA

Equipe deDesenvolvimento

Equipe deQualidade

Gerência deConfiguração

Page 25: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

Artefatos deProjeto

RSA

Artefatos deAnáliseVersionados

Clear Case

RSA

Artefatos deProjetoInspecionados

RSA

Artefatos deProjetoVersionados

Clear Case

RSA

Aprovaçãodo Cliente

Equipe deDesenvolvimento

Equipe deQualidade

Gerência deConfiguração

Page 26: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

SoftwareCodificado

Eclipse

Artefatos deProjetoVersionados

Clear Case

RSA

Software Testado

Eclipse

SoftwareVersionado

Clear Case

Eclipse

Criação doAmbiente de

Desenvolvimento

Criação doAmbiente de

Teste

Equipe deDesenvolvimento

Equipe deQualidade

Gerência deConfiguração

Casos deTeste

Page 27: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

SoftwareCodificadoHomologado

SoftwareVersionado

Clear Case

Eclipse

Software emProdução

Relatório deFechamento

NTI

Criação doAmbiente deHomologação

Criação doAmbiente de

Produção

ResponsávelPela Solução

Infra-estrutura Líder de Projeto

Casos de UsoP/ Homologação

Page 28: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

Tratando uma mudança de requisito:

Page 29: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

Alteraçãode Requisitode Negócio

Documentode VisãoAlterado

Checkout do Documento de

Visão

Casos de Usode ProdutoAlterados

Casos de UsoP/ Homologação

RequisitePro(Oracle)

Clear CaseRequisite Pro(Oracle)

Aprovaçãodo Cliente

Casos de UsoProdutoInspecionados

RequisitePro(Oracle)

Casos deTesteAlterados

CQTM

ResponsávelPela Solução

Analista deNegócio

Equipe deQualidade

Page 30: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

TratarMudança

Casos de UsoProdutoInspecionados

RequisitePro(Oracle)

Casos deTesteAlterados

CQTM

Aprovaçãodo Cliente

NTI

Documentos de RequisitoVersionados

Clear CaseRequisit Pro

ResponsávelPela Solução

Administradorde ReqPro

Gerência deConfiguração Líder de Projeto

Page 31: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

Rastreabilidade

Requisitode Negócio

Requisitode Produto

Análise, Projeto e

Construção

TestesExecutados

Necessidade

Pro

cess

ode

Neg

ócio Visão da

Demanda

Gerencia daMudança

Page 32: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

Estrutura Física

ReqProClear Case

ReqProClear Case

ReqProClear Case

ReqProClear Case

ReqProClear Case

ReqProClear Case

ReqProClear Case

TI-BAN

TI-SPS

ADS

TI-BC

TIDT-SEALRequisitos

TI-ES

TI-NE

Page 33: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

Fabrica de Software

Fabrica deSoftware

Escritório Da Fabrica

Escritório daPetrobras

Escritório Da Fabrica

Escritório daPetrobras

. . .

Page 34: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

Fabrica de Software

Ambiente de Desenvolvimento

Ambiente de Teste

Servidor de Aplicação

Site Seguro Clear CaseCQTMRequisit ProRSA/RSM

Page 35: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

Situação Atual

• Requisite Pro Disponível– Templates– Instrução de Instalação

• Procedimentos Definidos– Padrões no SINPEP– Descrição de Casos de Uso

• Capacitação– Treinamento Realizado (Administradores e Usuários)– Mentoring

Page 36: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

O que falta fazer?

• (Re) Apresentar o processo para todos os participantes;

• Criar projetos pilotos com todas as Agilidades;

• Definir a atuação dos mentores em cada local;

• Definir uma solução de arquitetura que permita a consulta de todas as bases de requisitos;

Page 37: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

Gerência de Requisito de Software

TI-SPS/DS -- Patricia Nishimura Guerra – CWBJ TI-SPS/DS -- Edmilson Galinari Miranda -- TSN0TI-BAN/DS -- Carlos Henrique Magalhães Oest -- CN7UTI-BAN/DS -- Tersia Pacheco de Almeida -- CWD9TI-BC/DS -- Afonso Carlos Tavares Pinheiro -- RMUUTI-RIO/DS -- Bruno Peixoto Alvarenga -- CYB2SERV-TI/SSE -- Cassiano Ebert -- CWG1TI-NE/DS -- Paulo Ivan Benigno Pereira -- PIB1SERV-TI/SES -- Silezia Gomes dos Anjos -- CWI1

Grupo de Trabalho de Gerência de Requisitos:

Patrocinadora: Janice – TI-SPS/DS

Page 38: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

Referências

• http://gts.petrobras.com.br/main.asp• SINPEP

– PR-1T1-00132 - Gerenciamento de Requisitos– TI - NF-1T1-00059 – Glossário– TI - NF-1T1-00105 – Regras de Negócio– TI - NF-1T1-00060 – Documento de Visão– TI - NF-1T1-00058 – Especificação Suplementar– TI -NF-1T1-00057 – Especificação de Casos de Uso– Casos de Uso de Novo desenvolvimento e

manutenção

Page 39: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

Considerações Especiais

Page 40: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

Sete Pecados Capitais• Confiança Cega (no parceiro)

• Cinismo e Desconfiança (com o parceiro)

• O Contrato é “a Bíblia” (falta de flexibilidade)

• Falta de Comunicação (com o seu pessoal)

• “Ir Dormir Aborrecido” (fazer bola de neve)

• Má Prática de Métricas (ambas as partes devem entender os critérios)

• Cobiça e Oportunidade (explorar falhas do contrato)

Dekkers, C., Management of Outsourcing: How to Avoid Common Mistakes, Software Management Conference, San Jose, February 2000

Page 41: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

Qualidade

““Você pode obrigarVocê pode obrigarum louco a aceitarum louco a aceitarum prazo,um prazo,mas não pode mas não pode obriga-lo a cumpri-lo”obriga-lo a cumpri-lo”

Page 42: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

VantagemGlobal doSistema

Vantagem Global de Um Sistema

Din

heiro

Data de Entrega

Custo do Desenvolvimento

Valor do Sistema

Fonte: Meillir Page-Jones

Inicio doProjeto

Primeiraprevisãode entrega

O projeto passaa custar mais doque vale

l

Page 43: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

Evitando a Região Impossível

To : é a capacidade para a qual o custo unitário médio esteja no mínimo;. Td : é o melhor prazo para um custo aceitável em função do beneficio

esperado.

Cu

sto

do

Esf

orç

o

Tem po de D esenvolvim ento

Td To

Região Im possível(75% de Td)

Page 44: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

Boa Sorte!!!

Page 45: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software
Page 46: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

Necessidade

Manter a ANP informada da produção de gás e óleo da Petrobras.

Page 47: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

Requisito de Negócio – Requisito Funcional

O sistema deve fornecer informação da vazão de óleo e gás até o quinto dia útil de cada mês.

Page 48: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

Requisito de Negócio – Requisito Não Funcional

O sistema deve proteger as informações enviadas para a ANP de acessos não autorizados.

Page 49: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

Requisito de Produto – Requisito Não Funcional

O sistema deve armazenar os arquivos de vazão de óleo e gás em uma pasta dentro do Firewall da Petrobras.

O sistema deve usar um algoritmo de chave publica para encriptografar os arquivos de vazão de óleo e gás.

Page 50: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

Requisito de Produto – Requisito Funcional

Gerar um arquivo compactado com a vazão de óleo e gás conforme o formato e descrição de campos determinados pela ANP.

Page 51: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

Definição de RequisitoRequisitos expressam as características e restrições do produto se software do ponto de vista da satisfação das necessidades do usuário.

Manter o registro de todos os livros e periódicos da biblioteca;

Permitir ao usuário pesquisar os livros e periódicos por: título, autor, editora e palavra-chave;

Ter o tempo máximo de espera para apresentação de uma página menor ou igual a 4 segundos;

Suportar no mínimo 50 usuários concomitantes sem comprometer a performance do sistema;

Exem

plo

s

Funcional Não Funcional Inverso

Page 52: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

Requisitos de Negócio

Descrevem as atividades que os usuários deverão ser capazes de executar com a utilização do sistema, delimitando o domínio do problema.

Page 53: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

Requisitos do Produto

Descrevem características associadas a implementação da solução. Estão associados ao domínio da solução.

Page 54: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

Requisito Funcional

• Descrevem a funcionalidade e os serviços do sistema;

• Dependem do tipo de software dos prováveis usuários e do tipo de sistema onde o software é usado;

• Podem ser do usuário (descrição de alto nível), ou do produto (comportamento do software).

Page 55: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

Requisitos Não Funcionais

• Definem as propriedades e restrições do sistema.

• São características desejadas pelos clientes;

• Como se fossem adjetivos ou advérbios;• Dois produtos podem ter exatamente as

mesmas funções, mas seus atributos podem torná-los produtos inteiramente diferentes.

Page 56: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

Requisitos Inversos

Os requisitos inversos são situações que não podem ocorrer. São de certa forma restrições de alcance geral. Descrevem o espaço fora da fronteira do sistema.

Page 57: Gerência de Requisitos de Software. Problemas comuns em desenvolvimento de Software

Requisito de Negócio – Requisito Inverso

O sistema não altera os dados que foram obtidos das bases de dados do E&P.