You are on page 1of 66

VOLDAY II – Viva o Linux

SIGERAR – SIstema de GERenciamento


de Requisitos
Visualize esta Apresentação em:
http://www.scribd.com/doc/36953087
http://sigerar.org
jcampos@sigerar.org
Apresentação
• Motivação:
• Aprendizado
• SIGERAR é o meu laboratório ;)
• Acredito que a ferramenta pode ajudar no meu
dia a dia;
• “Social Coding”;
• Sobre mim:
• Jefferson Campos aka foguinho.peruca (VOL)
• Formado em Processamento de Dado pela Fatec-Sorocaba (SP)
• Estudando o SIGERAR desde 2008
• Participo do VOL desde 2007
• “Pra mim o Tux fica do lado esquerdo do peito”.
Apresentação
• Introdução
• Um Pouco de História...
• Objetivo da Pesquisa
• Importância
• Justificativas
• Resultados Esperados

• A Engenharia de Requisitos (ER)


• Definição de Requisitos
• Requisitos Funcionais / Não Funcionais
• Definições de Engenharia de Requisitos
• Fases da Engenharia de Requisitos
• Gerenciamento de Requisitos (GR)
Apresentação
• Ferramenta Automatizada para Gerenciamento de
Requisitos
• Contexto da Ferramenta
• Elicitação de Requisitos da Ferramenta
• Projeto da Ferramenta
• Implementação da Ferramenta
• Validação da Ferramenta
• Conclusão

• Referências Bibliográficas
Introdução
• Um pouco de história....
• Tese de mestrado do profº José Inácio de Grande –
jigrande@sigerar.org
• Desenvolvida em 2006 na UNIMEP
• Desde então foi formado um grupo de estudo na
FATEC-SO
• Tragédia de 2008:
• Perca dos fontes (2 anos de trabalho)
• Saída dos membros do grupo
• Novos colaboradores:
• Eu (ex-aluno), profº Sérgio Bernardo e Marcos
(ex-estagiário), Anderson (estagiário atual) e
profº Levi Munhoz
Introdução
• Um pouco de história....
• Re-implementação de melhorias e atualizações
tecnológicas
• v1.6 :
• mysql e melhora no código porém tecnologia
ainda defasada
• Bugs (versão de requisito)
• Relatórios
• v2:
• Novas tecnologias (Vraptor, hibernate, etc)
• Ainda implementando correção dos bugs,
versão do requisito e relatórios
Introdução

Objetivo da Pesquisa
Especificar e implementar uma ferramenta
automatizada para documentação e Gerenciamento
de Requisitos (GR), durante todo o ciclo de vida do
software.

Importância
GR é fundamental no processo da ER, para
organizar o controle das mudanças, permitindo
subsídios para a análise de impacto e custos em
tempo e dinheiro, que estas trarão para a
organização.
Introdução
Justificativa

• Escassez de ferramentas brasileiras disponíveis no


mercado;

• Dificuldades que uma ferramenta internacional pode


trazer:

• Custos de aquisição e treinamento;

• Dificuldades dos stakeholders com línguas


estrangeiras;

• Falta de representantes e especialistas no mercado.


Introdução

Resultados Esperados
• Espera-se os seguintes benefícios às organizações que
venham adotá-la:

• Proporcionar controle sobre as mudanças ocorridas


nos requisitos;

• Permitir análise do risco, impacto e custos dessas


mudanças;

• Sem haver investimentos na aquisição da


ferramenta e do banco de dados.
A Engenharia de Requisitos

Definição de Requisitos

• Kotonya e Sommerville [KOT98] definem requisito


como sendo uma declaração de um serviço ou
restrição de um sistema a ser desenvolvido;

• São usualmente classificados em Requisitos


Funcionais (RF) e Requisitos Não Funcionais (RNF).
A Engenharia de Requisitos
Requisitos Funcionais
• RF são descrições das funções que os usuários
necessitam que o software ofereça;
• Devem determinar o que se espera que o software
faça, sem se preocupar como ele irá fazê-lo.
Requisitos Não Funcionais
• Determinam características desejáveis de um
software, quanto a desempenho, confiabilidade,
segurança, portabilidade etc.;

• Mylopoulos e outros [MYL99], definem RNF como


atributos de qualidade normalmente descritos de
maneira informal, que geram alguma controvérsia e
são difíceis de validar.
A Engenharia de Requisitos
Definições de ER

• Ridao e outros [RID00] entendem ER como o processo


de definição dos requisitos no qual se elicita, modela e
analisa o que deve ser feito;

• Para Kotonya e Sommerville [KOT98], ER implica no


uso de técnicas sistemáticas e repetitivas, para
assegurar que os requisitos do sistema sejam
completos, consistentes e relevantes.
A Engenharia de Requisitos
Contexto da ER no desenvolvimento de
sistemas

Engenharia
de Sistemas Engenharia
de Requisitos

Análise

Projeto

Implementação

Teste

Manutenção
A Engenharia de Requisitos
Fases da Engenharia de Requisitos
• Kotonya e Sommerville [KOT98] apresentam o
processo de ER, ocorrendo de forma iterativa em quatro
atividades ou fases: Elicitação, Análise, Especificação e
Validação de Requisitos:

Declaração informal dos requisitos

Especificação
de requisitos
e relatório de
Elicitação Análise Requisitos
validação
acordados

Validação Especificação
Ponto de decisão:
documento de
especificação
aceito ou espiral
executada
novamente Esboço da Especificação de requisitos
A Engenharia de Requisitos
Gerenciamento de Requisitos
• É o processo de compreender e controlar as
mudanças nos requisitos de sistemas, e ocorre em
conjunto com outros processos da ER [SOM03];

• Principais objetivos [KOT98]:


• Gerenciar mudanças nos requisitos acordados;
• Gerenciar o relacionamento entre requisitos;
• Gerenciar as dependências entre os
documentos de requisitos e outros documentos
produzidos no processo de Engenharia de Software.
A Engenharia de Requisitos
Gerenciamento de Requisitos
Gerenciamento de mudanças
• O processo de gerenciamento de mudanças nos
requisitos consiste de um conjunto de atividades para
documentar, reportar, analisar, definir custos e
implementar mudanças de um conjunto de requisitos
[KOT98]
A Engenharia de Requisitos
Gerenciamento de Requisitos
Processo de mudanças e custos [KOT98]
A Engenharia de Requisitos
Gerenciamento de Requisitos
Ferramentas
• Identificamos no mercado, algumas ferramentas
para gerenciamento de requisitos:

• RequisitePro (Rational)

• Doors (Telelogic)

• CaliberRM (Borland)
Ferramenta
Ferramenta Automatizada
Automatizada para
para GR
GR
Contexto da Ferramenta
• Desenvolvimento de uma ferramenta para
Gerenciamento de Requisitos, que envolve:
• Coletar, armazenar e manter os requisitos
acordados entre os desenvolvedores e usuários;
• Gerenciar as mudanças nos requisitos registrados
(controle de versões de requisitos);
• Criar mecanismos de rastreabilidade, que
garantam:
• Relacionamentos entre requisitos;
• Gerenciamento da dependência entre os
requisitos e outros documentos produzidos no
processo de engenharia de sistemas.
Ferramenta
Ferramenta Automatizada
Automatizada para
para GR
GR
Contexto da Ferramenta
• Ambiente

• A ferramenta foi desenvolvida para operar via


interface Web;

• Linguagem Java com JSP (Java Server Pages);

• SGBD:

• Mysql (Stable)

•Firebird (Old Stable).


Ferramenta Automatizada para GR
Implementação da Ferramenta

• Eclipse - foi o ambiente escolhido para


desenvolvimento integrado (IDE). Os programas
foram desenvolvidos em Java com JSP, utilizando o
SGBD Firebird. (inicial)
• Netbeans – ambiente atual de desenvolvimento,
em conjunto com o MYSQL. Também utilizamos
VRaptor2, Hibernate 3+, YUI 2.7, JSTL, EL, Apache-
commons e Junit.
http://www.youtube.com/watch?v=B2osv86OZIc
Ferramenta Automatizada para GR
Estrutura para aplicações Web em 3 camadas

2ª Camada 3ª Camada
1ª Camada
Servidor de regras de negócio Servidor de dados
Servidor Web

Gerencia o acesso às informações. Abriga a base de dados


Gerencia as requisições
que alimenta todo o
vindas da Internet.
As aplicações são componentizadas sistema.
Software: em classes JAVA que realizam uma
rotina específica. Softwares:
Apache Server
Firebird/Mysql
Software:
Jakarta TomCat
Ferramenta Automatizada para GR
Contexto da Ferramenta
• Principais Funcionalidades
• Gerenciamento de Mudanças
• Rastreabilidade
• Controle de Acessos e Permissões
• Glossário
• Estruturação dos Requisitos
• Histórico / Baselines
• Notificações
• Fóruns de Discussão
Ferramenta Automatizada para GR

Projeto da Ferramenta
• Os projetos (lógico e físico) foram desenvolvidos
utilizando técnicas de orientação a objeto:

• Elicitação de Requisitos
• Lista dos Requisitos Funcionais e Não Funcionais

• sigerar/trunk/docs/requirements/requirements.ods
Ferramenta Automatizada para GR
INT_idREQUI CD_COMPLE Name
SITO, TO,

1 Funcional1 Manutenção de Projetos'


2 Funcional1.1 Exclusão de Projeto'
3 Funcional1.2 Desativação de Projeto'
4 Funcional2 Manutenção de Usuários'
5 Funcional2.1 Exclusão de Usuários'
6 Funcional3 Manutenção de Glossários'

7 Funcional3.1 Exclusão/desativação de Glossários'


8 Funcional4 Manutenção de Departamento'
9 Funcional4.1 Exclusão de Departamento'
10 Funcional5 Tipos de Requisitos'
Ferramenta Automatizada para GR
INT_idREQUISI CD_COMPLE Name
TO, TO,
11 Funcional5.1 Exclusão de Tipo Requisito'

12 Funcional5.2 Ativação/Desativação de Tipo Requisito'

13 Funcional6 Manutenção do Motivo da Versão do


Requisito'
14 Funcional6.1 Exclusão do Motivo da Versão do
Requisito'
15 Funcional7 Manutenção da Volatilidade do Requisito'

16 Funcional7.1 Exclusão da Volatilidade do Requisito'

17 Funcional8 Manutenção de Cadastros Auxiliares'

18 Funcional9 Manutenção de Alçada'


19 Funcional10 Manutenção dos Requisitos do Projeto'

20 Funcional11 Manutenção de Cadastro de Sub-


requisitos'
Ferramenta Automatizada para GR
INT_idREQUISI CD_COMPLET Name
TO, O,
21 Funcional12 Rastreabilidade dos Requisitos'

22 Funcional13 Versão do Requisito'

23 Funcional14 Rastreabilidade dos Requisitos'

24 Funcional15 Notificação dos Envolvidos na Alteração


do Requisito'
25 Funcional16 Níveis de Maturidade das Alterações de
Requisitos'
26 Produto1 Controle de Acesso'
27 Organizacional1 Figura do Administrador'
28 Produto2 Implementar Sessão'
29 Produto3 Portabilidade'
30 Externo1 Interoperabilidade'
Ferramenta Automatizada para GR
Requisito De Origem Depende de

COD_COMP ID COD_COMPLETO
ID LETO
2 Funcional1.1 1 Funcional1
3 Funcional1.2 1 Funcional1
5 Funcional2.1 4 Funcional2
7 Funcional3.1 6 Funcional3
9 Funcional4.1 8 Funcional4
11 Funcional5.1 10 Funcional5
12 Funcional5.2 10 Funcional6
14 Funcional6.1 13 Funcional7
16 Funcional7.1 15 Funcional1
Ferramenta Automatizada para GR

Projeto da Ferramenta
• Casos de Uso
• Módulo Administração

• Módulo Requisitos

• Módulo Versão de Requisitos


Ferramenta Automatizada para GR
Ferramenta Automatizada para GR
Ferramenta Automatizada para GR
Ferramenta Automatizada para GR

Projeto da Ferramenta
• Atividades
• Proposta de alteração de requisitos

• Análise de alteração de requisitos


Ferramenta Automatizada para GR
Proposta de alteração de
requisito

Inclusão de proposta de
alteração de requisito

Define outras atribuições ao


requisito

Atribui custo à alteração


dos requisito

Identifica requisitos
dependentes

Gerência verifica
viabilidade inicial

[ Alteração viável ]
Atualiza situação
para em análise

Notifica envolvidos / abre [ Alteração inviável ]


fórum de discussões

Rejeita alteração
do requisito
Ferramenta Automatizada para GR
Análise de alteração de
requisito

Identifica requisitos
dependentes

Encontra requisito
dependente

( Necess ita alteração )

Define alterações no
requisito dependente
[ Falta tratar requisito ] [ Não necessita alteração ]

Define outras atribuições ao


requisito dependente

Atribui custo à alteração


dos requisito dependente

[ Todos os requisitos tratados ]

Define custo total da


alteração do requisito

Gerência analisa contexto


total para alteração

[ Alteração aprovada ]
Atualiza situação
para aprovada
[ Alteração reprovada ]

Rejeita alteração
do requisito
Ferramenta Automatizada para GR

Projeto da Ferramenta
• Diagrama de Classes
UsuarioProje
Diagrama de Classes Alcada
to
Gerenciamento de Requisitos id
idUsuario
nome
idProjeto 1 1 interno
idalcada

1..n participa 1..n

Usuario
id Projeto
idDepartamento Termo
Departamento id Glossario
nome id
idGerente
id cargo id idGlossario
nome
nome pertence f one gerencia nome nome
descricao
observ acao email descricao descricao
1 1..n login 1 1..n 1 1..n
cadastrar() 1..n 1..n
cadastrar() senha cadastrar() cadastrar()
alterar()
alterar() conhecimento alterar() alterar()
excluir()
excluir() excluir() excluir()
alocar Glossario()
cadastrar()
alocar gerente()
alterar() 1
exclui() 1
1 responsável
solicita 1..n
1..n
TipoRequisito
Motiv o Requisito
VersaoRequisito id
id id
id nome
descricao 1 idTipo
idRequisito descricao
padrao idVolatilidade
idUsuarioSolicitante 1
padraoOriginal nome
IdUsuarioResponsav el 1..n cadastrar()
inclusao idUsuario
descricao alterar()
alteracao idProjeto
1 IdMotiv o excluir()
ordem
idRisco 0..n
cadastrar() codigoCompleto
1..n idImpacto
alterar() idRequisitoPai
IdPrioridade decompõe-se
excluir() sub
idImportancia
0..n
custo
cadastrar()
situacao
Risco alterar()
id excluir() 1..n
cadastrar()
descricao def inir tipo()
1..n alterar() 1
peso 1 atribuir v olatilidade() Volatilidade
excluir()
1 atribuir usuario responsav el()
atribuir m otiv o() id
cadastrar() atribuir risco() 0..n 0..n descricao
alterar() atribuir impacto() quantidadeMinima
excluir() atribuir prioridade() quantidadeMaxima
atribuir importancia() mesesAConsiderar
1..n
atribuir documentos() 1..n RequisitoDependente peso
Impacto
atribuir custo() idRequisito
id 1 1..n
atribuir situacao() cadastrar()
idRequisitoSuperior
descricao alterar()
peso excluir()
1..n 1..n
calcularVolatilidade()
cadastrar()
alterar() 1..n
excluir()
1 Documentos AlteracaoVersao
id id
1 TipoDoc
idRequisito idRequisito
Prioridade Importancia idVersãoRequisito id idVersao
id id nomeDoc nomeTipo idVersaoAnterior
descricao descricao localização idAlteracaoPai
peso peso cdTipoDoc cadastrar()
1 1
alterar() cadastrar()
cadastrar() cadast rar() cadastrar() excluir() alterar()
alterar() alterar() alterar() excluir()
excluir() excluir() excluir()
Ferramenta Automatizada para GR

Validação da Ferramenta
• Escolha do Estudo de caso (Home Care,
PCMSO, Farmácias) – original do Mestrado;

• Atualmente utilizamos os requisitos do próprio


SIGERAR como validação da ferramenta.
Ferramenta Automatizada para GR

Validação da Ferramenta
• Teste e validação do Módulo Administração

• Login do Administrador

• Cadastrando Glossários e seus termos

• Cadastrando Usuários

• Cadastrando o Projeto Farmácias (estudo


de caso)

• Demais Cadastros
Ferramenta Automatizada para GR
Ferramenta Automatizada para GR
Ferramenta Automatizada para GR
Ferramenta Automatizada para GR
Ferramenta Automatizada para GR
Ferramenta Automatizada para GR

Validação da Ferramenta
• Teste e validação do Módulo Principal

• Login do Gerente / Analista / Usuário

• Alocação dos Usuários ao Projeto Farmácias

• Correio interno
Ferramenta Automatizada para GR
Ferramenta Automatizada para GR
Ferramenta Automatizada para GR

Validação da Ferramenta
• Os dados obtidos durante o desenvolvimento
do Sistema de Gestão de Farmácias foram
incluídos na ferramenta.
• Cadastrando Requisitos do Projeto

• Cadastrando Dependências dos Requisitos


Ferramenta Automatizada para GR
Ferramenta Automatizada para GR
Ferramenta Automatizada para GR

Validação da Ferramenta
• Os dados das alterações dos requisitos,
alimentaram a ferramenta, buscando testar sua
potencialidade e corretitude.
Ferramenta Automatizada para GR
Ferramenta Automatizada para GR

Validação da Ferramenta
• Conclusões dos Testes e validações da
ferramenta

• Módulo Administração

• Os Cadastros foram efetuados sem


maiores problemas;

• Há necessidade de desenvolvimento de
relatórios específicos.
Ferramenta Automatizada para GR
Validação da Ferramenta
• Conclusões dos Testes e validações da
ferramenta

• Módulo Principal
• Houve sucesso na alocação dos usuários ao
projeto;

• As inclusões dos requisitos iniciais e as


dependências dos requisitos foram efetuadas com
sucesso;

• Falta de dados históricos como risco, impacto,


custos e importância, prejudicaram a alimentação
da versão 1 dos requisitos;
Ferramenta Automatizada para GR
Validação da Ferramenta
• Conclusões dos Testes/validações da ferramenta

• Módulo Principal
• Foi necessário alterar o sistema para permitir
edição de datas;

• Deve-se melhorar o tratamento de alterações


genéricas que envolvam grande número de
requisitos;

• Foi positiva a validação do tratamento da


volatilidade do requisito;

• Há necessidade de fomentar relatórios específicos.


Desenvolvimento v2

Infra:
• Acesso ao DB/ scripts do DB

• Ajax/YUI/javascript

• Internacionalização

• Testes unitários (poucos ainda)

• Interfaces (poucos ainda)

• Exceptions (poucos ainda)


Desenvolvimento v2

Funcionalidades:
• Cadastros de Apoio (Motivo, Risco, Impacto,
Prioridade, Importancia, etc)

• Requisitos, Tipo Requisito, Requisito Dependente

• Versão Requisito

• Usuários/Departamento

• Glossário/Termo

• Projetos/ Alocar usuário ao Projeto


Desenvolvimento v2
O que precisa ser trabalhado ainda:
• Fix bugs!

• Refatoração

• Web (design), ajax, YUI;

• Server-side: VRaptor (v3), testes (junit)

• Tradução/internacionalização

• Documentação

• Ampliação do Glossário/ Dicionário de Dados

• Requisito e versão
Desenvolvimento v2
O que precisa ser trabalhado ainda:
• Implementação de funcionalidades:

• Fórum/Ajuda

• Implementação interfaces/exceptions

• Interoperabilidade

• Segurança/Alçada (Java Security API)

• Sub-requisito/rastreabilidade

• Divulgação/feedback

• E o mais importante: uso!


Contribuições

Getting Started:
• Subversion:

http://sigerar.svn.sourceforge.net/viewvc/sigerar/

• branches/v2

• Código fonte (testes, scripts, .java, web)

• Documentação atual

• trunk/docs

• Wiki
Contribuições
Conhecimentos:
• JavaEE: Java, junit, servlets;

• Apostilas da Caelum:

• Vraptor;

• Hibernate;

• Web: html/css/javascript

• http://www.caelum.com.br/apostilas/

• FJ21 e especialmente FJ28

• Enga Requisitos
Conclusão

• Este trabalho colabora no sentido de:


• Propor uma ferramenta de uso livre e de código
fonte aberto (open source);

• Controlar e gerenciar os requisitos durante todo o


ciclo de vida do sistema;

• Proporcionar através da rastreabilidade, subsídios


aos Gerentes de Projeto para tomadas de decisões
envolvendo as alterações dos requisitos;

• Gerenciar os documentos relacionados aos


requisitos;
Conclusão

• Trabalhos Futuros
• Desenvolver relatórios específicos tanto no módulo
administração quanto no módulo principal;

• Evoluir a ferramenta com a adição de “Links” a


outros softwares de apoio (Documento de texto /
Planilhas / Casos de Uso / etc.);

• Criar mecanismos para a própria ferramenta tratar o


atributo “Peso” dos cadastros de risco, impacto,
importância, volatilidade e custo, de forma a auxiliar o
Gerente na tomada de decisão das alterações
propostas.
Conclusão

• Trabalhos Futuros
• Manutenção de caso de uso (v2.1);

• Suporte ao design de diagramas em geral (caso de


uso, classe, DB, etc);

• Ampliar a rastreabilidade aos outros artefatos do


projeto (executáveis, código-fonte, testes, etc)

• And last but not least:

• Ajudar a v2 chegar no estágio STABLE.


Referências Bibliográficas
[BOO99] BOOCH, G., RUMBAUGH, J. e JACOBSON, I, “The Unified Modeling
Language User Guide”, Addison Wesley, 1999.
[BRE00] BREITMAN, K. K., “Evolução de Cenários”, PUC-Rio, Maio de 2000.
Tese de Doutorado apresentada ao Departamento de Informática da PUC/RJ.
[CAS00] CASTRO, J., ALENCAR, F. e CYSNEIROS, G., “Closing the GAP Between
Organizational Requirements and Object Oriented Modeling”, Journal of the
Brazilian Computer Society, Nº 1, Vol. 7, July 2000, pp. 5-16.
[CHU99] CHUNG, L.; NIXON, B.; YU, E. e MYLOPOULOS, J., “Non-Functional
Requirements to Systematically Support Change”, 2nd IEEE Symposium on
Requirements Engineering, March 1995, York, England.
[CYS01] CYSNEIROS, L. M., “Requisitos Não Funcionais: Da Elicitação ao
Modelo Conceitual”, PUC-Rio, Fevereiro de 2001. Tese de Doutorado
apresentada ao Departamento de Informática da PUC/RJ.

[DAV90] DAVIS, A. M., “The Analisys and Specification of System and


Software Requirements”, Systems and Software Requirements Engineering,
IEEE Computer Society Press, 1990, pp. 119-144.
Referências Bibliográficas
[GOT94] GOTEL, O. e FINKELSTEIN, A., “An analysis of the Requirements
Traceability Problem,” in Proceedings of the First International Conference on
Requirements Engineering, (Colorado springs, CO), pp. 94-101, April 1994.
[JAR98] JARKE, M., “Requirements Tracing”, Communications of the ACM, v.
41, n. 12, dec. 1998.
[KOT98] KOTONYA, G.e SOMMERVILLE, I., “Requirements Engineering:
Processes and Techniques”, John Wiley and Sons, 1998.
[MYL99] J. MYLOPOULOS, CHUNG, L. e YU, E., "From Object-Oriented to Goal-
Oriented Requirements Analysis", Communications of the ACM, Vol. 42 No. 1,
January 1999, pp.31-37.
[PRE95] PRESSMAN, R. S., “Engenharia de Software”, Makron Books, 1995.
[RID00] RIDAO, M., DOORN, J. e LEITE, J.C.S.P., “Uso de Patrones en la
Construcción de Escenarios” III Workshop de Engenharia de Requisitos
(WER2000), Rio de Janeiro, Brasil.

[SOM03] SOMMERVILLE, I,. “Engenharia de Software”, 6ª edição. Pearson


Education do Brasil, 2003.

You might also like