FACULDADE FARIAS BRITO -...

100
FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃO JOÃO BATISTA DE SOUSA FILHO SISREQUI Sistema Especialista para Auxílio no Processo da Engenharia de Requisitos. Fortaleza, 2011

Transcript of FACULDADE FARIAS BRITO -...

FACULDADE FARIAS BRITO CIÊNCIA DA COMPUTAÇÃO

JOÃO BATISTA DE SOUSA FILHO

SISREQUI – Sistema Especialista para Auxílio no Processo

da Engenharia de Requisitos.

Fortaleza, 2011

JOÃO BATISTA DE SOUSA FILHO

SISREQUI – Sistema Especialista para Auxílio no Processo

da Engenharia de Requisitos.

Monografia apresentada para obtenção dos

créditos da disciplina Trabalho de Conclusão do

Curso da Faculdade Farias Brito, como parte das

exigências para graduação no Curso de Ciência

da Computação.

Orientador: José Helano Matos Nogueira, Msc.

Fortaleza, 2011

SISREQUI – SISTEMA ESPECILISTA PARA AUXÍLIO

NO PROCESSO DA ENGENHARIA DE REQUISITOS.

João Batista de Sousa Filho

PARECER __________________

NOTA: FINAL (0 – 10): _______

Data: / /

BANCA EXAMINADORA:

MSc. José Helano Matos Nogueira

Orientador

Dr. Paulo Benicio Melo de Sousa

Examinador

MSc. Ricardo Wagner Cavalcante Brito

Examinador

Dedico este trabalho à minha família, pois representa a

motivação central para a conclusão do mesmo.

AGRADECIMENTOS

Ao Orientador Msc. Helano Matos, por ter aceitado a ideia inicial deste trabalho e pela

paciência, coordenação, disponibilidade e ajuda.

A todos os colegas de trabalho (Alexsandro Dórea, Cassiano Mourão, Fernando Pinto,

Renan Sousa e Santana Magalhães) que me ajudaram na criação da base de conhecimento do

SISREQUI.

Aos professores e colegas da faculdade que ajudaram de maneira direta ou indireta para

a minha formação.

A minha mãe que sempre acreditou em mim e me apoio nos momentos que mais

precisei.

A Santana Magalhães que me indicou a fazer um curso com o Paulo Vieira, onde este

me ajudou a me conhecer melhor e assim tive a força e garra para terminar este trabalho e

assim realizar um de meus sonhos.

A Deus, meu grande e amado pai que ao meu lado vem me ajudando e me orientado nos

caminhos da vida.

E a todos que puderam contribuir de alguma forma.

RESUMO

As empresas desenvolvedoras de software estão cada vez mais tentando melhorar

os seus processos de desenvolvimento de software. Ao Adotar processos definidos por

instituições nacionais e/ou internacionais. Mas mesmo com a adoção de tais processos, os

projetos de software tendem a falhar. Pesquisas realizadas por instituições de avaliação de

risco e referenciadas por alguns autores apontam que os problemas que ocorrem nos projetos

estão relacionados à não utilização correta dos princípios da disciplina de engenharia de

requisitos. A disciplina tem uma série de conceitos desde a explicação do que são os

requisitos do software, requisitos de usuário e requisitos de sistema, como descrevê-los

corretamente nos documentos de requisitos, as formas de descobertas, validação, verificação e

analise de mudanças dos requisitos. Uma série de conceitos, que somados à complexidade dos

sistemas e à falta de experiência na área, acabam se tornando uma tarefa muito complexa.

Mas por outro lado, tem crescido nos últimos anos a criação e/ou utilização de softwares que

simulam o comportamento de especialistas humanos de uma determinada área, que resolvem

problemas complexos na resolução de problemas complexos, denominados Sistemas

Especialistas. Neste contexto inseriu-se esta monografia que apresenta uma proposta de

criação de um sistema especialista, com o auxílio de uma ferramenta de criação de sistemas

especialistas, para auxiliar a Analistas de Requisitos, Analistas de Sistemas e Analistas de

Negócio, na aplicabilidade dos conceitos da Engenharia de Requisitos. Este trabalho tem sua

contribuição no fornecimento de meio de aprendizado dos conceitos da disciplina, ressaltando

quais são as melhores alternativas a se tomar em determinadas situações.

SUMÁRIO

INTRODUÇÃO ..................................................................................................................................................... 1

1. A DISCIPLINA DE ENGENHARIA DE REQUISITOS .......................................................................... 5

1.1 Requisitos de Software........................................................................................................................ 5

1.1.1 Requisitos de Usuário ............................................................................................................................. 6

1.1.1.1 Requisitos Funcionais .................................................................................................................... 6

1.1.1.2 Requisitos Não Funcionais ............................................................................................................. 7

1.1.2 Requisitos de Sistema ............................................................................................................................ 7

1.2 Documentos de requisitos de software ............................................................................................... 8

1.2.1 RUP e seus artefatos ............................................................................................................................ 10

1.2.1.1 Visão ............................................................................................................................................ 11

1.2.1.2 Especificação Suplementar .......................................................................................................... 12

1.2.1.3 Glossário ...................................................................................................................................... 12

1.2.1.4 Regras de negócios ...................................................................................................................... 13

1.2.1.5 Caso de Uso ................................................................................................................................. 13

1.2.1.6 Especificação de Requisitos de Software ..................................................................................... 13

1.2.2 Extreme Programming (XP) e as estórias de usuários ......................................................................... 14

1.2.3 Scrum e o Backlog do produto ............................................................................................................. 14

1.2.4 Pontos Positivos e Negativos Sobre os Modelos .................................................................................. 16

2. PROCESSO DE ENGENHARIA DE REQUISITOS .............................................................................. 18

2.1 Elicitação de requisitos ....................................................................................................................... 18

2.1.1 Entrevistas ............................................................................................................................................ 19

2.1.2 Tempestade de idéias (Brainstorm) ..................................................................................................... 20

2.1.3 Cenários ............................................................................................................................................... 21

2.1.4 Etnografia ............................................................................................................................................ 22

2.2 Verificação e validação de requisitos.................................................................................................. 22

2.3 Gerenciamento de requisitos ............................................................................................................. 23

2.3.1 Rastreabilidade de requisitos ............................................................................................................... 24

3. SISTEMAS ESPECIALISTAS .................................................................................................................. 25

3.1 Introdução aos Sistemas Especialistas ................................................................................................ 25

3.2 Expert SINTA ...................................................................................................................................... 26

3.2.1 Arquitetura de um sistema especialista no Expert SINTA .................................................................... 27

3.2.2 Representação do Conhecimento ........................................................................................................ 28

3.2.2.1 Regras de Produção ..................................................................................................................... 29

3.2.2.2 Cálculo Probabilístico dos Sistemas Especialistas ....................................................................... 31

4. SISTEMA ESPECIALISTA PARA AUXÍLIO NO PROCESSO DA ENGENHARIA DE

REQUISITOS ...................................................................................................................................................... 37

4.1 Projeto SISREQUI ................................................................................................................................ 37

4.1.1 Estudo de viabilidades .......................................................................................................................... 38

4.1.2 Formalização do Especialista em Engenharia de Requisitos ................................................................ 39

4.1.3 Aquisição de conhecimento ................................................................................................................. 40

4.2 Implementação do SISREQUI .............................................................................................................. 41

4.2.1 Implementando o sistema.................................................................................................................... 42

4.2.1.1 Base de conhecimento................................................................................................................. 43

4.2.1.1.1 Variáveis ................................................................................................................................. 43

4.2.1.1.2 Objetivos ................................................................................................................................. 45

4.2.1.1.3 Interface com o usuário .......................................................................................................... 46

4.2.1.1.4 Regras ..................................................................................................................................... 47

4.2.1.2 Informações adicionais ................................................................................................................ 49

4.3 Consultando o SISREQUI ..................................................................................................................... 49

4.3.1 Consultas .............................................................................................................................................. 50

4.3.2 Acompanhamento................................................................................................................................ 52

4.3.3 Janela de Resultados Atingidos ............................................................................................................ 53

4.3.4 Garantindo a relevância do SISREQUI .................................................................................................. 56

5. CONCLUSÕES ........................................................................................................................................... 59

REFERÊNCIAS BIBLIOGRÁFICAS............................................................................................................... 61

ANEXOS I – QUESTIONÁRIO UTILIZADO NA CRIAÇÃO BASE DE CONHECIMENTO DO

SISREQUI ............................................................................................................................................................ 67

ANEXOS II – RESPOSTAS DO QUESTIONÁRIO UTILIZADO NA CRIAÇÃO BASE DE

CONHECIMENTO DO SISREQUI .................................................................................................................. 70

ANEXOS III – BASE DE CONHECIMENTO SISREQUI ............................................................................. 75

LISTA DE FIGURAS

Figura 1– Fatores na conclusão de projetos. Fonte: The Standish Group. .............................................. 2

Figura 2 – Fatores críticos para o sucesso dos projetos. Fonte: The Standish Group. ............................ 2

Quadro 1 – Especificação de requisito de sistema. Fonte: Sommerville, 2008, Modificado. ................. 8

Figura 3 - Interessados presentes na ERS. Fonte: Sommerville, 2008, pag. 91. ..................................... 9

Figura 4 – Rastreabilidade de requisitos. Fonte: Sayão e Leite, 2005. ................................................. 24

Figura 5 – Arquitetura Simplificada do Expert SINTA. Fonte: Lia, 1999. ........................................... 27

Figura 6 – Exemplo de tratamento probabilístico do caso 1. ................................................................ 32

Figura 7 - Exemplo de tratamento probabilístico do caso 2. ................................................................. 33

Figura 8 - Exemplo de tratamento probabilístico do caso 3. ................................................................. 34

Figura 9 - Exemplo de tratamento probabilístico do caso 4. ................................................................. 34

Figura 10 - Exemplo de regra com mais de um objetivo. ..................................................................... 35

Figura 11 – Ambiente do Expert SINTA. Fonte: Lia, 1999. ................................................................. 38

Figura 12 – Criando uma nova Base de Conhecimento no Expert SINTA. .......................................... 42

Figura 13 – Janela KIB. Fonte: Lia, 1999, Modificado. ....................................................................... 43

Figura 14 – Janela de criação de variáveis. Fonte: Lia, 1999, Modificado. .......................................... 44

Figura 15 – Janela de seleção de variáveis objetivos do SISREQUI. Fonte: Lia, 1999, Modificado. .. 45

Figura 16 – Janela de seleção de variáveis perguntas do SISREQUI. Fonte: Lia, 1999, Modificado. . 46

Figura 17 – Caixa de seleção de Ordem e modelo de regra. Fonte: Lia, 1999. ..................................... 47

Figura 18 – Tela de criação de regra de produção. Fonte: Lia, 1999. ................................................... 47

Figura 19 – Tela de inserção de premissas. Fonte: Lia, 1999. .............................................................. 48

Figura 20 – Tela de inserção de objetivos. Fonte: Lia, 1999. ............................................................... 48

Figura 21 – Janela de informações adicionais do SISREQUI. Fonte: Lia, 1999, Modificado. ............. 49

Figura 22 – Menu de controle de consultas. Fonte: Lia, 1999. ............................................................. 50

Figura 23 – Tela de abertura do SISREQUI.......................................................................................... 50

Figura 24 – Interface SISREQUI. ......................................................................................................... 51

Figura 25 – Resposta do SISREQUI com respectivo grau de confiança. ............................................. 51

Figura 26 – Tela de ajuda do SISREQUI. ............................................................................................. 52

Figura 27 – Execução do SISREQUI pelo modo depurador. ................................................................ 53

Figura 28 – Tela de Resultados. ............................................................................................................ 54

Figura 29 – Arvore de pesquisa............................................................................................................. 54

Figura 30 – Todos os resultados. ........................................................................................................... 55

Figura 31 – Regras do SISREQUI. ....................................................................................................... 55

Figura 32 – Gráfico de teste do SISREQUI em projetos concluídos. ................................................... 57

Figura 33 – Gráfico de teste do SISREQUI em projetos não concluídos. ............................................ 57

Figura 34 – Média de resultados. .......................................................................................................... 58

LISTA DE QUADROS

Quadro 1 – Especificação de requisito de sistema. Fonte: Sommerville, 2008, Modificado. ................. 8

Quadro 2 – Estória de Usuário .............................................................................................................. 14

Quadro 3 – Exemplo de um Backlog do produto .................................................................................. 15

LISTA DE SIGLAS

AR – Analista de Requisitos.

ASE – Arcabouços de Sistema Especialista.

CMMI - Modelo Integrado de Maturidade e de Capacidade.

IA – Inteligência Artificial.

IBM – International Business Machine.

MPS.Br - Melhoria de Processo do Software Brasileiro.

SE – Sistema Especialista.

XP – Extreme Programming.

GLOSSÁRIO

Analista de Requisitos (AR): Responsável pela coleta, análise, validação e documentação dos

requisitos junto ao cliente e passar esses requisitos coletados para os desenvolvedores (RUP, 2006).

Artefato: Artefatos são produtos de trabalhos, finais ou intermediários, produzidos e usados para

capturar e transmitir informações do projeto (RUP, 2006). Um artefato pode ser um dos seguintes

elementos:

Um documento, como Caso de Negócio ou Documento de Arquitetura de Software;

Um modelo, como o Modelo de Casos de Uso ou o Modelo de Projeto;

Um elemento do modelo, ou seja, um elemento existente em um modelo, como uma classe ou

um subsistema.

Ator: É uma entidade de fora do sistema que interage com o mesmo. Os atores podem ser os usuários

do sistema, outros sistemas de computador ou eventos externos (RUP, 2006).

Backlog do produto: É documento contendo todos os requisitos detalhadamente, com o tempo

estimado para desenvolvimento dos requisitos assim como os responsáveis pelo desenvolvimento dos

mesmos, agrupados de acordo com as suas prioridades.

CMMI: Modelo Integrado de Maturidade e de Capacidade, voltado à melhoria de processo, composto

pelas melhores práticas de desenvolvimento de projetos, abordando o ciclo de vida do produto desde a

concepção até a entrega e manutenção.

Documento de visão: Artefato RUP, que define as necessidades e características dos envolvidos e

usuários-alvo do projeto (RUP, 2006).

Documento Especificação de caso de uso: Consiste na descrição detalhada, mostrando passo a passo

uma funcionalidade do sistema e a comunicação com os atores (RUP, 2006).

Especificação de Requisitos de Software (ERS): Documento que descreve todos os requisitos de

software que o sistema terá ou parte deles. Quando a modelagem de casos de uso é utilizada, os casos

de uso aplicáveis estarão descritos no ERS (RUP, 2006).

Especificação suplementar: Artefato RUP, que conterá todos os requisitos não funcionais necessários

ao desenvolvimento do projeto (RUP, 2006).

Estórias de Usuário (User Stories): são descrições textuais sucintas a respeito das funcionalidades do

sistema.

Extreme Programming (XP): Processo ágil de desenvolvimento de software, que visa o trabalho em

equipe com foco a agilidade para se atingir a total satisfação do cliente.

Interessados (Stakeholders): Termo utilizado para designar todos aqueles que, de alguma maneira,

estão envolvidas no projeto (pessoas ou organizações).

Organização Internacional para a Padronização (ISO 9001 (2008)): Norma voltada em promover a

adoção de uma abordagem de processo para aumentar a qualidade no desenvolvimento,

implementação e melhoria no atendimento aos requisitos do cliente.

Melhoria de Processo do Software Brasileiro (MPS.Br): Em desenvolvimento desde dezembro de

2003, pela Associação para Promoção da Excelência do Software Brasileiro (SOFTEX). O programa

tem como base melhorar o processo de requisitos com base nos princípios da Engenharia de Software.

Metodologias Ágeis: Abordagens de desenvolvimento que buscam descobrir as melhores, mais

rápidas e eficientes maneiras de desenvolver softwares. As metodologias ágeis têm as seguintes

características:

Maior comunicação e participação do cliente, ao invés de negociações de contratos;

Maior interação entre pessoas do projeto, que processos e ferramentas;

Responder a mudanças mais que seguir um plano;

Software em funcionando ao invés de extensas documentações.

Processo Unificado (UP): Plataforma de processo de desenvolvimento de software desenvolvida

inicialmente pela Rational Software, Inc.; Hoje controlada pela IBM.

Rational Unified Process (RUP): O RUP é um processo de engenharia de software que tem uma

abordagem baseada em disciplinas para atribuir tarefas e responsabilidades dentro de uma organização

de desenvolvimento de software com foco em garantir a produção de software de alta qualidade que

atenda às necessidades dos usuários dentro de um cronograma e com orçamento previsível (RUP,

2006).

SCRUM: Metodologia ágil de projetos de software. No Scrum, os projetos são divididos em sprints,

que são ciclos mensais ou semanais.

SHELL: Shell é o nome dado a uma família de ferramentas e não à linguagens de programação, que

tem o objetivo de apoiar e simplificar o processo de construção de Sistemas Especialistas.

Standish group: Grupo de profissionais altamente dedicados com anos de experiência prática na

avaliação do risco, custo de retorno e valor de Tecnologia da Informação (TI) que tem como visão:

coletar informações sobre o caso na vida real, falhas em ambientes de TI e ajudar a mostrar o caminho

para melhorar as taxas de sucesso e aumentar o valor dos investimentos na TI das empresas.

Story Points: Unidade de estimativa utilizada no Scrum, para calcular a quantidade de dias que um

desenvolvedor trabalhou em uma determinada estória de usuário. Onde o cálculo da story points é

feito em cima da quantidade de dias levados para a conclusão de uma estória, multiplicado pela

quantidade de pessoas que trabalharam no desenvolvimento da estória.

Sistemas Especialistas: Conceito utilizado na IA para definir programas que auxiliam na resolução de

problemas de uma determinada área de conhecimento com a mesma qualidade e rapidez que um

especialista humano.

1

INTRODUÇÃO

Atualmente, as organizações estão buscando formas de melhorarem seus

processos, seja através de modelos nacionais ou internacionais, tais como CMMI, ISO 9001

(2008) ou MPS.BR (ZANETTI, MONTONI e ROCHA, 2009). O objetivo é ter um melhor

aperfeiçoamento dos seus serviços e produtos com maior qualidade (REINALDO, 2006).

Contudo, mesmo com a utilização de tais modelos, podem existir problemas decorrentes de

falhas na execução do processo ou manutenção de software, em grande parte devido à não

utilização correta dos princípios da análise de requisitos (MEDEIROS, BELCHIOR e

FARIAS, 2005). O processo de desenvolvimento de software se inicia a partir da fase de

Análise de requisitos (MEDEIROS, BELCHIOR e FARIAS, 2005). Nessa fase de

descobertas (PRESSMAN, 2005; CAMPELO, 2009), ocorre a elicitação de requisitos, onde

são identificadas as necessidades que o software tem que atender e a complexidade de um

problema do mundo real (SOMMERVILE, 2008; SWEBOK, 2004; CAMPELO, 2009).

Apesar de hoje os softwares desenvolvidos estarem cada vez mais sofisticados,

diminuindo a complexidade dos problemas do mundo real, os problemas que ocorrem no

processo de desenvolvimento ainda trazem enormes dificuldades aos envolvidos

(MEDEIROS, BELCHIOR e FARIAS, 2005). Oliveira (2008) comenta que, para minimizar

os problemas que ocorrem no ciclo de desenvolvimento de software, basta a utilização da

análise de requisitos, pois, segundo o mesmo, 37% dos problemas que ameaçam os projetos

estão relacionados a requisitos. Uma pesquisa anterior do Standish Group reforça as palavras

ditas por Oliveira (2008), pois segundo pesquisa realizada em 1995 por esta instituição,

apenas 16% dos projetos são finalizados com sucesso, 31% dos projetos fracassam por algum

motivo, enquanto mais de 53% dos projetos extrapolam o tempo, custos e/ou não satisfazem

os clientes conforme figura 1.

2

16%

53%

31%

ProjetosBem sucedidos Problemáticos Fracassados

Figura 1– Fatores na conclusão de projetos. Fonte: The Standish Group.

Essa pesquisa teve o intuito de identificar as falhas dos projetos de softwares, os

fatores causadores das falhas e os meios de se evitar as falhas dos projetos. O envolvimento

dos usuários no projeto, suporte da gerência executiva e estabelecimento claro dos requisitos,

foram apontados pela pesquisa como os fatores responsáveis pelo sucesso dos projetos,

conforme mostrados na figura 2.

16%

14%

13%

57%

Fatores de Sucesso

Envolvimento dos Usuários

Suporte da gerência executiva

Estabelecimento claro dos requisitos

Outros (planejamento apropriado, equipe competente comprometimento, outros)

Figura 2 – Fatores críticos para o sucesso dos projetos. Fonte: The Standish Group.

3

Nos projetos problemáticos e/ou fracassados os maiores problemas estão na falta

de um levantamento completo dos requisitos e/ou no não tratamento correto na mudança de

requisitos. Portanto, com o intuito de se chegar ao desenvolvimento correto de um software,

evitando ou reduzindo casos de falhas no processo de criação e gerando mais tarde gastos

com manutenção e correção de erros, é fundamental o correto entendimento e aplicação da

disciplina de Engenharia de Requisitos. Mas, entender e aplicar corretamente os princípios da

análise de requisitos para analistas que não sejam especialistas na área acaba se tornando uma

tarefa muito complexa.

Por outro lado, recentemente, tem crescido bastante a quantidade de softwares que

capturam e simulam o comportamento de especialistas humanos, estes denominados Sistemas

Especialistas (NOGUEIRA e SILVA, 1997; DIEHL, 2000). A utilização de sistema

especialista voltado para a área de engenharia de requisitos iria auxiliar os analistas a tratarem

de problemas complexos, onde a solução só seria alcançada com a ajuda de um especialista na

área de requisitos. Segundo os autores citados anteriormente, a utilização de um sistema

especialista se torna necessária devido a diversos fatores tecnológicos e econômico-sociais

tais como:

Dificuldade de acesso a especialistas humanos em determinadas regiões;

Armazenamento e formalização do conhecimento de vários especialistas

humanos;

Ferramenta de apoio à tomada de decisões por parte do especialista;

Treinamento de profissionais e imparcialidade na tomada de decisões.

Por essas razões este trabalho tem com objetivo principal a criação de um sistema

especialista com o auxílio do Expert SINTA para a área de engenharia de requisitos

denominado SISREQUI. O SISREQUI não tem o intuito de retirar do homem o trabalho

abordado na fase de requisitos, o objetivo do SISREQUI e o de auxiliar e/ou treinar analistas

de sistemas, analistas de requisitos e analistas de negócios no correto desenvolvimento e

aplicabilidade da engenharia de requisitos no processo de desenvolvimento de sistemas

computacionais, diminuindo assim a complexidade e facilitando a utilização eficiente e eficaz

dos conceitos de engenharia de requisitos.

4

Este trabalho está estruturado em quatro capítulos, onde o primeiro capítulo

aborda os conceitos da disciplina de engenharia de requisitos, explicando o que são requisitos

de softwares e quais os seus documentos. Já o segundo capítulo descreve o processo da

engenharia de requisitos abordando desde o levantamento dos requisitos junto ao cliente até a

validação dos requisitos e o gerenciamento dos mesmos. O terceiro capítulo comenta sobre o

uso de ferramentas automatizadas geradoras de sistema especialistas, onde é exemplificado o

uso do Expert SINTA1. Também é apresentada a arquitetura básica de um sistema especialista

com suas regras de produção. O quarto capítulo descreve o Sistema de Requisitos proposto,

SISREQUI. Neste capítulo é detalhado como será a base de conhecimento do sistema, quais

as variáveis, objetivos, regras e interfaces com o usuário o mesmo terá. Ao final do capítulo

são apresentados os resultados que foram atingidos com o sistema.

1 Ferramenta criada pelo Laboratório de Inteligência Artificial da Universidade Federal do Ceará – LIA/UFC

(www.lia.ufc.br)

5

1. A DISCIPLINA DE ENGENHARIA DE REQUISITOS

O objetivo deste capítulo é apresentar a disciplina de Engenharia de Requisitos,

mostrando o que são requisitos de software, abordados na seção 1.1 e mostrando os

documentos de requisitos, seção 1.2, com seus modelos definidos em processos de

desenvolvimento de software, tais como RUP, XP e SCRUM.

1.1 Requisitos de Software

Com a globalização do mercado e a alta competividade existente entre as

organizações desenvolvedoras de software tem crescido, nessas organizações, a necessidade

de se criar softwares em menos tempo e com poucos recursos, com maior qualidade que atinja

a satisfação dos clientes (ZANETTI; MONTONI e ROCHA, 2009). Meira (2008) comenta

que as organizações consideram as áreas de especificação de requisitos e a gerência de

requisitos do cliente como os principais focos de problemas no desenvolvimento do software.

Melhorar os processos de descobertas, documentação e controle de requisitos do cliente são

fatores críticos para o sucesso do negócio (PRESSMAN, 2005).

O sucesso no processo de engenharia de requisitos se torna possível quando se

consegue entender as diferenças entre os requisitos de usuário e dos requisitos de sistema

(SOMMERVILLE, 2008). Os requisitos de usuário e de sistema podem ser definidos da

seguinte maneira:

Requisitos de usuário são declarações, em uma linguagem natural,

contendo os serviços que são esperados pelo sistema e suas restrições.

Requisitos de sistema são descrições detalhadas de como serão exatamente

implementados as funções, serviços e as restrições do sistema.

6

A seguir tais modelos são mostrados e exemplificados com maiores detalhes.

1.1.1 Requisitos de Usuário

Os requisitos de usuário devem descrever os requisitos funcionais e não

funcionais do sistema. Estes requisitos devem ser descritos o mais próximo da linguagem

natural, evitando-se o máximo a utilização de termos técnicos, de modo que sejam

compreensíveis para a leitura de usuários que irão utilizar o sistema. Eles devem especificar

apenas detalhes externos do sistema, evitando-se características de projeto (SOMMERVILLE,

2008).

1.1.1.1 Requisitos Funcionais

Os requisitos funcionais detalham ações que o sistema deve ter, sem levar em

consideração as restrições físicas (SEWBOOK, 2004). Os requisitos funcionais dependem do

tipo de software que está sendo desenvolvido e dos usuários aos quais o software se destina.

Quando expressos como requisitos de usuários, eles são descritos de forma abstrata, mas,

como requisitos funcionais, eles devem ser descritos com maior nível de detalhamento,

descrevendo suas entradas, saídas e exceções. (SOMMERVILLE, 2008). Por exemplo, um

requisito funcional de funcionamento de um sistema de locadora de filmes, na rotina de

pesquisa de um filme pelo título poderia ser descrito como:

1. Quando o usuário solicitar a pesquisa de algum filme ele informa alguma

palavra como chave;

2. O sistema deve buscar no banco de dados todos os filmes que tenham no

título ou sinopse a palavra informada pelo usuário em seguida deve exibir

os 20 primeiros resultados em ordem alfabética.

Este requisito funcional foi um exemplo de como é feita a interação entre usuário

e sistema. Os requisitos podem ser descritos em diferentes níveis, como no exemplo acima,

contanto que seu entendimento fique claro a quem o ler. Geralmente, os requisitos funcionais

são descritos em um documento de casos de uso.

7

1.1.1.2 Requisitos Não Funcionais

Os requisitos não funcionais são relacionados às características restritivas dos

sistemas, tais como: confiabilidade, tempo de resposta, desempenho, interface, espaço de

armazenamento (RUP, 2006). Tais restrições podem afetar tanto na implementação dos

requisitos funcionais quanto nos componentes do sistema (SWEBOOK, 2004; OLIVEIRA,

2008).

Por exemplo, no mesmo sistema de locadora de filmes, um requisito não

funcional seria:

1. A interface do sistema deve ser leve, para que o acesso seja possível por

uma conexão de internet de no mínimo 60 kbps.

2. O tempo de resposta no sistema em uma pesquisa não poderá ser superior

a 60 milissegundos.

1.1.2 Requisitos de Sistema

O comportamento externo do sistema, bem como suas restrições operacionais, são

formas de descrição de requisitos de sistema (SWEBOOK, 2004). Sommerville (2008)

comenta que especificar completamente um sistema de software complexo no nível de detalhe

necessário é uma prática inviável, pois, em alguns casos, os sistemas terão de interagir com

outros sistemas existentes, restringindo o projeto e impondo requisitos ao novo sistema.

Para a descrição de requisitos de sistemas, como também de usuários, deve-se

utilizar a linguagem natural. Contudo, como os requisitos de sistemas são mais detalhados que

os requisitos de usuários, as especificações em linguagem natural podem acabar ficando mais

confusas e difíceis de serem compreendidas. Logo, pode-se escrever os requisitos de sistema

usando notações mais especializadas como casos de uso, diagramas de classes, sequencia ou

até formulários padrões (SOMMERVILLE, 2008).

8

Um exemplo de especificação de requisito de sistema utilizando um formulário

padrão para o sistema de locadora de filmes seria:

Função: Calcular o valor de filmes.

Descrição: Calcular o valor dos filmes solicitados para empréstimo.

Entradas: Código do Filme e Nome ou CPF do cliente.

Saídas: Valor calculado.

Destino: Controle financeiro.

Ação: O valor será calculado [ se o cliente não possuir nenhum débito negativo com a

empresa. Se o mesmo possuir algum débito, será impresso uma nota promissora informando

o valor que está em atraso.] Caso contrário o valor dos filmes e calculado e impresso.

Requer: Fornecimento do código do filme e o nome ou CPF do cliente.

Pré-Condição: O cliente possuir cadastro e não ter nenhum débito negativo com a locadora.

Pós-Condição: Valor calculado e nota promissória impressa.

Quadro 1 – Especificação de requisito de sistema. Fonte: Sommerville, 2008, Modificado.

1.2 Documentos de requisitos de software

A Especificação de Requisitos tem por finalidade estabelecer e manter um

entendimento comum sobre o sistema entre de todos os envolvidos (SOMMERVILLE, 2008).

Ela deve abranger todos os requisitos do sistema, definir a interface de usuário para o sistema,

determinar as fronteiras, custos e o tempo de desenvolvimento do sistema (RUP, 2006). Para

se conseguir atingir essas metas, é importante compreender o problema para saber se é

possível resolvê-lo com o sistema a ser construído. As solicitações dos usuários são

recolhidas, reunidas e analisadas, que posteriormente se tornarão os requisitos de software que

o sistema terá. Os requisitos de software são descritos em um documento chamado de

especificação de requisitos de software.

A Especificação de Requisitos de Software (ERS), também conhecida como

documento de especificação de software, é o documento que contém todos os requisitos de

software que envolvem o projeto, ou seja, é a declaração do que os desenvolvedores do

sistema devem implementar (SEWBOOK, 2004), podendo incluir também os casos de uso,

9

requisitos funcionais e não funcionais (RUP, 2006; CAMPELO, 2009). O documento de ERS

abrange vários tipos de usuários, desde os patrocinadores até os responsáveis pelo

desenvolvimento de software (SEWBOOK, 2004). A ERS controla a evolução do sistema em

toda a fase de desenvolvimento do projeto. Mesmo quando novos recursos são adicionados ou

modificados, eles são elaborados dentro da ERS (RUP, 2006).

A figura 3 ilustra alguns dos grupos de interessados que contribuem com a ERS e

seus respectivos focos de atenção.

Figura 3 - Interessados presentes na ERS. Fonte: Sommerville, 2008, pag. 91.

A quantidade de possíveis interessados presentes na ERS significa que a escrita da

mesma deve estar compreensível para todos. O nível de detalhamento do documento

dependerá das características do sistema que será desenvolvido e do processo de

desenvolvimento que está sendo utilizado. Sommerville (2008) explica que grandes

organizações como o IEEE definiram padrões para as ERS. Um dos mais conhecidos é

IEEE/ANSI 830-1998 o qual de acordo com Sommerville (2008), possui a seguinte estrutura:

1. Introdução

1.1. Propósito do documento de requisitos

1.2. Escopo do produto

1.3. Definições, acrônimos de abreviaturas

10

1.4. Referências

2. Descrição geral

2.1. Perspectiva do produto

2.2. Funções do produto

2.3. Características dos usuários

2.4. Restrições gerais

2.5. Suposições gerais

2.6. Suposições e dependências

3. Requisitos específicos abrangem requisitos funcionais, não funcionais e de interface.

4. Apêndices

5. Índice

Embora o padrão não seja o ideal, ele contém boas recomendações de como

descrever requisitos, evitando-se problemas futuros. O padrão é muito geral e acaba não

sendo pouco adotado pelas instituições. Todavia, pode ser adaptado e modificado para a

realidade de cada instituição (SOMMERVILLE, 2008).

A ERS é indispensável quando o sistema está sendo desenvolvido por uma equipe

externa. Os métodos ágeis de desenvolvimento apontam que os requisitos mudam tão

frequentemente que a ERS ficaria desatualizada rapidamente e mantê-la atualizada resultaria

em esforço inútil. Sommerville (2008) comenta que em situações como a descrita

anteriormente, a descrição de requisitos de usuário e mais aconselhável utilizar a abordagem

dos métodos ágeis, como a Extreme Programming (XP) e SCRUM onde se priorizam apenas

os requisitos que serão implementados.

1.2.1 RUP e seus artefatos

O RUP tem vários documentos a serem utilizados em processos de

desenvolvimento de softwares. Smith (2003) explica que para utilizar o RUP, as empresas não

necessitam utilizar todos os artefatos, pois a seleção e adaptação de artefatos é uma parte

11

necessária no processo. O próprio RUP oferece orientações sobre como adaptá-lo à realidade

da empresa desenvolvedora de software (SMITH, 2003).

Para o RUP, os objetivos da disciplina de requisitos são:

Estabelecer a concordância com todos os envolvidos sobre o que o sistema

a ser desenvolvido;

Oferecer aos desenvolvedores do sistema um entendimento sobre

requisitos do sistema;

Definir as fronteiras do sistema;

Fornecer uma base para planejar o conteúdo técnico das repetições;

Fornecer uma base para estimar o custo e o tempo de desenvolvimento do

sistema;

Definir uma interface de usuário para o sistema, com base nas

necessidades e metas dos usuários;

Artefatos necessários para se chegar esses objetivos são:

Documento de Visão;

Especificação suplementar;

Glossário;

Regras de negócios;

Casos de uso;

Especificação de requisitos de software.

Esses documentos são utilizados como formas de se descrever o sistema, em projetos

nos quais os interessados são vistos como fontes de informações (RUP, 2006).

1.2.1.1 Visão

O documento de visão tanto fornece uma visão completa do negócio a ser

atendido pelo desenvolvimento do sistema, como também serve de auxílio para o contrato

entre cliente e a organização de desenvolvimento. O documento de visão é uma referência que

12

contem as expectativas capturadas entre os envolvidos (RUP, 2006). A visão é escrita com

base nas perspectivas dos clientes, focalizando as características cruciais do sistema, os níveis

desejáveis de qualidade e descrição das características dos sistemas, tanto as que serão

incluídas, bem como aquelas que foram consideradas, mas não incluídas (RUP, 2006).

Ela também deve especificar as capacidades operacionais, como tempo de

resposta e os usuários que utilizarão o sistema. O documento de visão fornece uma base

contratual com os envolvidos para os requisitos visíveis que terá o sistema, podendo ser

modificada conforme os requisitos sejam entendidos com maiores detalhes. O documento de

visão pode também ser expresso em casos de uso (RUP, 2006).

1.2.1.2 Especificação Suplementar

A especificação suplementar é um modelo que contém todos os requisitos

funcionais e não funcionais essenciais para o sistema que não são descritos imediatamente nos

documentos de casos de uso (RUP, 2006). Entre os requisitos estão incluídos requisitos de

regulamentação e padrões de aplicativo, atributos de qualidade do sistema, requisitos de

usabilidade, confiabilidade, desempenho, suportabilidade, segurança, portabilidade, restrições

computacionais dentre outras, sistemas operacionais e ambientes (RUP, 2006).

1.2.1.3 Glossário

Nas fases de elicitação e/ou descrição dos requisitos, termos técnicos podem

surgir e para que esses requisitos possam ser entendidos, modelados e desenvolvidos, se torna

necessário que o significado dos mesmos sejam descritos em um glossário. Nele são descritos

todos os termos necessários para entender a modelagem do negócio e termos específicos do

projeto.

Com o glossário se cria um vocabulário que contem os termos e as expressões

mais comuns com todas as descrições textuais do negócio, evitando-se mal-entendidos entre

os envolvidos no projeto sobre o uso e o significado dos termos (RUP, 2006).

13

1.2.1.4 Regras de negócios

No documento de regras de negócios são descritas as regras de negócios impostas

com base em leis e regulamentos ou padrões da empresa utilizados para o correto

desenvolvimento dos requisitos que o software precisa atender. As regras de negócios são

descritas em uma linguagem rigorosa e formal (RUP, 2006). A descrição das regras de

negócios deve conter informações de como se obter alguma informação especifica para

alguma ação do sistema, regras de como deve ser feito algum cálculo específico,

comportamento e exibição de campos, dentre outras.

No documento de regras de negócios é descrito o comportamento dos requisitos

de negócios e das ferramentas de negócios, podendo estes requisitos e ferramentas serem leis

e regulamentos impostos ao negócio, como também arquitetura e o estilo de negócio

escolhidos para o sistema (RUP, 2006).

1.2.1.5 Caso de Uso

O documento de caso de uso é um modelo das funções pretendidas do sistema e

seu ambiente, uma descrição de como será a funcionalidade do sistema (RUP, 2006). Casos

de uso definem principalmente os requisitos funcionais do sistema refinados por fluxos de

eventos mais detalhados durante a fase de construção (RUP, 2006). Por ser um instrumento de

planejamento bastante importante, o documento de casos de uso é usado em todas as fases do

ciclo de desenvolvimento (RUP, 2006).

1.2.1.6 Especificação de Requisitos de Software

A Especificação de Requisitos de Software no RUP contem todos os requisitos de

software para o sistema ou para uma parte dele. O esquema de ERS é parecido com um

projeto que utiliza modelagem de casos de uso. A ERS consiste em um pacote contendo casos

de uso e Especificações Suplementares aplicáveis, além de outras informações de suporte

(RUP, 2006).

14

1.2.2 Extreme Programming (XP) e as estórias de usuários

Na Extreme Programming (XP), os requisitos são feitos a partir das estórias de

usuário, criadas pelos clientes. As estórias de usuário têm o mesmo propósito dos casos de

uso, mas possuem diferenças. Beck (2002) comenta que as estórias de usuário são utilizadas

em vez de um documento de requisitos, já que as mesmas são escritas pelos clientes com as

funcionalidades que o sistema precisa fazer por eles (BECK, 2002). Elas são semelhantes aos

casos de usos, exceto que elas não se limitam a descrever termos técnicos.

Estórias de usuário só fornecem detalhes suficientes para fazer uma estimativa de

quanto tempo ela levará para ser desenvolvida. No momento da implementação, o

desenvolvedor responsável pela estória de usuário, conversa com o cliente para receber uma

descrição mais detalhada dos requisitos (WELLS, 1999), conforme quadro 1.

Estória 01 Implementar a funcionalidade da pesquisa de filmes.

Estimativa Inicial: 4 horas

Quadro 2 – Estória de Usuário

Wells (1999), afirma que um dos maiores mal-entendidos com as estórias de

usuário é como elas diferem das especificações tradicionais. A maior diferença está no nível

de detalhe (WELLS, 1999). Outra diferença, segundo Wells (1999), entre as estórias de

usuário e um documento de requisitos está no foco nas necessidades do usuário evitando-se

detalhes de uma tecnologia específica, leiaute base de dados e algoritmos mantendo as

estórias focadas nas necessidades do usuário (WELLS, 1999).

1.2.3 Scrum e o Backlog do produto

O Scrum também utiliza estórias de usuário como forma de armazenar os

requisitos (MARTINS, SZALVAY, 2007), mas, diferente do XP, no Scrum as estórias de

usuário são descritas com maiores detalhes no Backlog do produto. O Backlog do produto é

uma lista de alto nível, definida pelo analista e/ou cliente, que contém todos os requisitos

15

funcionais, não funcionais e requisitos técnicos desejados pelo cliente para o sistema

(KNIBERG, 2007). No início do projeto, o Backlog do produto deve descrever apenas os

requisitos mais importantes. Com o tempo, o Backlog do produto cresce e muda à medida que

o cliente descreve melhor os requisitos (MARTINS, SZALVAY, 2007).

O documento é compartilhado com todos os membros da equipe, normalmente em

algum local da rede da empresa ou em planilhas na rede. No Backlog do produto, os requisitos

são numerados, batizados, priorizados e descritos. A lista do produto do backlog é estruturada

da seguinte maneira, conforme quadro 3:

ID Nome Estimativa Inicial Importância Descrição

01 Cadastro de Filmes 9 (Story Points) 120 O sistema deve pesquisar antes se

o filme que está sendo cadastrado

já possui cadastro. Caso possua, o

sistema deve exibir uma

mensagem avisando ao usuário.

Caso contrário, o sistema deve

efetuar o cadastro.

02 Cadastro de Cliente 9 (Story Points) 120 O sistema deve verificar se o

cliente já está cadastrado,

avisando ao usuário caso esteja.

Caso contrário, o sistema deve

efetuar o cadastro.

Quadro 3 – Exemplo de um Backlog do produto

Os tópicos do backlog do produto, segundo KNIBERG (2007), são os seguintes:

ID: Numeração da estória de usuário. Identificador utilizado para evitar

que se perca o controle sobre as estórias, caso o nome delas seja

modificado;

Nome: Frase que descreve o que é a estória de usuário;

Estimativa Inicial: Estimativa inicial em story points da quantidade de

tempo necessário para a implementação da estória de usuário. Exemplo:

Digamos que 3 dias é o tempo que 3 desenvolvedores trabalhando junto

levariam para desenvolver uma determinada estória. Então temos 3 dias

trabalhados X 3 pessoas = 9 story points. Os valores dependem muito do

processo adotado pela empresa;

16

Importância: Importância da estória de usuário para o Analista, quanto

maior o número, maior a importância;

Descrição: É a descrição em alto nível, linguagem natural, de como o

requisito deve se comportar.

O Backlog do produto geralmente é feito em uma planilha e é de responsabilidade do

AR, mas pode ser visualizado pelos demais membros e até editado, como por exemplo, um

desenvolvedor que deseje alterar a estimativa (KNIBERG, 2007).

1.2.4 Pontos Positivos e Negativos Sobre os Modelos

A utilização de todos os artefatos da disciplina de requisitos pelo RUP implica em

softwares de qualidade que atendem aos princípios da engenharia de software (RUP, 2006),

tendo como principais vantagens:

Rápida correção de problemas;

Rápido desenvolvimento de melhorias;

Melhor entendimento sobre o negócio;

Melhor visão sobre as funcionalidades do sistema;

Requisitos mais definidos e explicados.

Contudo, a utilização dos artefatos também possui suas desvantagens:

Necessidade de um conhecimento formal sobre como preencher e manter

os documentos;

Documentos muito extensos;

Os artefatos necessitam estar sempre atualizados.

Documentar requisitos através de estórias conforme utilizado no XP e SCRUM

resolve as principais desvantagens na utilização dos artefatos do RUP. Contudo, as estórias

não descrevem com maiores detalhes os requisitos e muitos detalhes acabam passando

despercebidos (RUP, 2006), o que acaba requerendo que o desenvolvedor tenha um vasto

conhecimento sobre o negócio a ser desenvolvido. Segundo Smith (2003), métodos ágeis não

17

proíbem a utilização de documentos ou outros artefatos com as estórias. Os métodos ágeis

apenas produzem os artefatos que realmente irão ser utilizados.

18

2. PROCESSO DE ENGENHARIA DE REQUISITOS

O objetivo deste capítulo e explicar as atividades presentes no processo de engenharia

de requisitos. São abordados pontos sobre a elicitação de requisitos e quais as principais

técnicas utilizadas para se coletar os requisitos. Será explicada a validação dos requisitos e

como se gerenciar os requisitos. O capítulo está organizado da seguinte maneira: A seção 2.1

aborda a elicitação de requisitos e as principais técnicas utilizadas para o correto

levantamento dos requisitos. Na seção 2.2 aborda o processo de verificação e validação de

requisitos. Finalmente o gerenciamento de requisitos é abordado na seção 2.3.

2.1 Elicitação de requisitos

A elicitação de requisitos é a atividade em que todos os (interessados) envolvidos

no projeto trabalham juntos com o intuito de aprender mais sobre como deve ser o sistema

(SOMMERVILLE, 2008). Na elicitação são identificados os requisitos do sistema, chegando-

se a um entendimento mais completo do software (OLIVEIRA, 2008). Oliveira (2008)

ressalta que a fase de elicitação de requisitos não consiste apenas em perguntar aos clientes o

que eles querem, e sim fazer um levantamento cuidadoso do domínio e do processo de

negócio que o sistema deverá ter. Todavia, a elicitação, segundo Sommerville (2008), acaba

se tornando difícil pelas seguintes razões:

Os interessados não sabem o que querem;

Os interessados utilizam seus próprios termos com conhecimento implícito

sobre os requisitos cabendo ao Analista de Requisitos o conhecimento e o

domínio para entender esses requisitos;

19

Diferentes interessados possuem diferentes formas de expressar os

requisitos. O AR deve saber entender os pontos em comum nos requisitos

expressados;

Fatores políticos podem influenciar nos requisitos do sistema. Por

exemplo, um secretário de saúde pode solicitar um requisito que

aumentará sua influência no estado;

Os requisitos mudam constantemente durante o processo, mudando

também a importância de determinados requisitos. Novos requisitos de

novos interessados podem surgir.

A elicitação de requisitos não se resume à simples transferência de conhecimento

das pessoas para documentos de requisitos. Na realidade, acaba se tornando um processo

muito mais complexo devido aos fatores descritos anteriormente. Portanto, a elicitação de

requisitos não é simplesmente “pescar” os requisitos, mas um complexo processo de

negociação envolvendo todos os interessados envolvidos no projeto (OLIVEIRA, 2008).

Para conseguir chegar ao entendimento completo do software são utilizadas

algumas técnicas, dentre as quais se destacam: entrevistas, tempestade de ideias, cenários e

etnografia.

2.1.1 Entrevistas

Entrevistas formais ou informais com todos os interessados, segundo Sommerville

(2008), ocorrem na maioria dos processos de engenharia de requisitos. Nessas entrevistas os

ARs formulam questões para os interessados sobre o sistema que eles usam e/ou o sistema

que será desenvolvido. Os requisitos vão sendo formulados conforme os interessados forem

respondendo as questões. As entrevistas, segundo Oliveira (2008), podem ser de dois tipos:

Entrevistas fechadas, onde os ARs perguntam aos interessados uma lista

de perguntas já elaboradas.

Entrevistas abertas, nas quais não existem perguntas predefinidas. Os ARs

exploram vários assuntos com os interessados, de forma a adquirir uma

compreensão maior sobre a necessidade dos mesmos.

20

Na prática, as entrevistas são uma mistura dos dois tipos. As entrevistas são úteis para

conhecer melhor as atividades dos interessados, como eles podem interagir com o sistema e as

dificuldades que eles têm com os sistemas atuais (OLIVEIRA, 2008). No entanto, as

entrevistas não são úteis para entender o domínio da aplicação (SOMMERVILLE, 2008).

Elicitar o domínio da aplicação com entrevistas e muito complicado, pois, os interessados

especialistas do domínio não conseguem explicar os requisitos sem termos específicos, ou

então acham que os domínios são tão fundamentais que não vale a pena mencioná-los o que

acaba provocando um mau entendimento ou não é levado em consideração por parte dos ARs

(SOMMERVILLE, 2008).

As informações obtidas através das entrevistas, que muitas vezes são a única forma de

conhecimento do sistema, complementam outras informações sobre o sistema, como

documentos. Para uma correta elicitação, Sommerville (2008) comenta que as entrevistas

devem ser aplicadas junto com outras técnicas para a elicitação de requisitos, pois apenas as

entrevistas, pode levar a perda de informações essenciais para o sistema.

2.1.2 Tempestade de idéias (Brainstorm)

A tempestade de idéias é uma das mais antigas técnicas para geração de idéias em

reuniões em grupo. O princípio básico consiste em reunir um conjunto de interessados

especialistas em sistemas e negócios (APARECIDO e CARVALHO, 2002). Na reunião,

todos os interessados dão ideias para contribuir para a resolução do problema, cabendo ao AR

filtrar as ideias sugeridas e exploradas nestes encontros. No início da fase de

desenvolvimento, quando se tem pouco conhecimento do negócio, a aplicação da técnica se

torna necessária para o surgimento de novas idéias (OLIVEIRA, 2008). Esta técnica é usada

para gerar novas ideias, deixando a mente livre para aceitar todas as ideias criativas que forem

sugeridas. O resultado de uma sessão bem-sucedida é a solução do problema com um

conjunto de ideias, propostas por todos que participaram da sessão (APARECIDO e

CARVALHO, 2002).

Em termos de tempo, a tempestade de idéias pode ter um custo baixo, já que uma

sessão não leva mais que uma hora, principalmente se os envolvidos já tiverem experiência

21

com a técnica e forem criativos. Já em termos de esforços, a tempestade de idéias pode ter um

custo relativamente alto, pois requer um número significativo de pessoas, o que não é

indicado. O aconselhável é incluir pessoas chaves com diferentes perfis (APARECIDA e

CARVALHO, 2002; OLIVEIRA, 2008). Entretanto, segundo Aparecido e Carvalho (2002),

levando-se em conta a quantidade de informação coletada com o custo para obtê-la, o uso da

técnica tempestade de idéias acaba sendo uma ótima escolha.

2.1.3 Cenários

Os usuários e demais interessados acham mais simples relatar os exemplos do trabalho

assim descrever as funcionalidades que deverão existir no sistema. No cenário, eles podem

interagir, compreendendo e/ou criticando como seriam as funcionalidades do sistema

(OLIVEIRA, 2008). A utilização de cenários para descrever os requisitos do sistema e como o

sistema poderá ser utilizada é bastante usado em metodologias ágeis com as estórias ou no

RUP com os casos de uso.

Um sistema muito grande terá também um número muito grande e complexo de

cenários. Os cenários devem incluir pelo menos uma das seguintes informações, segundo

Oliveira (2008) e Sommerville (2008):

Uma descrição do estado do sistema antes de entrar no cenário;

O fluxo normal de eventos no cenário;

Uma descrição dos possíveis fluxos de exceções;

Informações sobre outras atividades que podem ocorrer no mesmo

momento;

Uma descrição do estado do sistema após concluir o cenário.

Os cenários podem ser descritos na forma de textos, diagramas e imagens.

22

2.1.4 Etnografia

A etnografia é uma técnica de observação utilizada para obter os requisitos

organizacionais e os requisitos de sistema que podem ficar omitidos. A técnica consiste

basicamente em o Analista de Requisitos se inserir no ambiente de trabalho para o qual o

sistema será desenvolvido (OLIVEIRA, 2008).

O AR observa o dia a dia de trabalho das pessoas envolvidas, anotando e construindo

imagens de como é o trabalho delas. A etnologia ajuda o AR a descobrir e entender os

requisitos reais e implícitos que o sistema deverá ter (SOMMERVILE, 2008). Portanto, o

etnógrafo deve ser uma pessoa com boa habilidade de observação e transformação dessa

observação em cenários como casos de uso (OLIVEIRA, 2008). Oliveira (2008) comenta que

dentre as diretrizes para a etnografia, deve-se preocupar sempre em procurar formas não

padronizadas de trabalho, tomar nota de forma detalhada de todas as práticas de trabalho,

analisando-as e chegando a uma conclusão e, sempre que possível, combinar a etnografia com

entrevistas abertas e outras técnicas de elicitação.

2.2 Verificação e validação de requisitos

A validação de requisitos tem o intuito de mostrar que os requisitos atendem realmente

ao que o sistema precisa. A validação de requisitos está relacionada à descoberta de

problemas que os requisitos possam ter, evitando-se custos excessivos com retrabalho

(OLIVEIRA, 2008). O custo de correção de requisitos é o maior dentre as outras partes do

processo como projeto ou desenvolvimento, pois um erro de requisito implica que o projeto e

o desenvolvimento á que ser mudados e o sistema deverá ser novamente testado

(SOMMERVILLE, 2008).

Sommeville (2008) comenta que para se ter sucesso no processo de validação de

requisitos, se torna necessária a realização de verificações nos requisitos. Essas verificações

incluem alguns pontos como:

23

Verificar se o sistema está atendendo a todas as necessidades dos

interessados, pois o sistema terá diferentes usuários e cada usuário terá

necessidades diferentes;

Verificar se os documentos (de requisitos) descrevem todos os requisitos e

restrições dos usuários, não gerando conflito entre estes os requisitos;

Verificar se os requisitos podem realmente ser desenvolvidos com a

tecnologia escolhida no prazo e orçamento estipulados, e;

Verificar se a descrição dos requisitos está entendível.

Os problemas encontrados na validação de requisitos não podem ser subestimados.

Conflitos, contradições, erros e omissões nos requisitos devem ser apontados e negociados

entre os interessados para se chegar a uma solução para os problemas identificados

(SOMMERVILLE, 2008).

2.3 Gerenciamento de requisitos

Os requisitos de sistemas de software estão sempre mudando, conforme os

interessados têm novos entendimentos sobre os problemas existentes. Cabe aos ARs adaptar

os requisitos a esses novos entendimentos. Conforme os usuários utilizem os sistemas, novos

requisitos irão surgir (LUIZA e OLIVEIRA, 2008). Luiza e Oliveira (2008) comentam que o

gerenciamento de requisitos consiste em compreender e controlar as mudanças dos requisitos.

O controle deve ser iniciado a partir do momento que se tiver um documento de requisitos

pronto. Os requisitos devem ser acompanhados individualmente, mantendo as ligações dos

requisitos que dependem dos requisitos.

Sommerville (2008) comenta que a mudança de requisitos quando o sistema já está em

operação com o cliente é inevitável. Mudanças no ambiente de trabalho ocorrem e os

requisitos evoluem para atender a essas modificações. Para se gerenciar corretamente essas

mudanças, o planejamento deve ser feito. O AR deve verificar a validade da solicitação de

modificação, as dependências entre os requisitos que podem sofrer modificações, estimar os

custos das mudanças, acordar com os usuários os custos de tal mudança e utilizar ferramentas

para auxiliar na rastreabilidade destes requisitos (LUIZA e OLIVEIRA, 2008).

24

2.3.1 Rastreabilidade de requisitos

A rastreabilidade de requisitos é dita como o centro da atividade de gerenciamento de

requisitos. A técnica consiste em acompanhar o ciclo de vida do requisito. A dificuldade da

técnica, segundo Luiza e Oliveira (2008), está no grande volume de informações que

precisam ser levantadas, associadas e referenciadas, atividade muito complexa que sem o

auxílio de ferramentas não conseguirá ser concluída.

As informações da rastreabilidade são freqüentemente representadas por meio de

matrizes de rastreabilidade (LUIZA e OLIVEIRA, 2008). Nessas matrizes, requisitos são

registrados em uma linha e uma coluna da matriz. As dependências dos requisitos são

registradas na interseção da linha com a coluna (SOMMERVILLE, 2008). A matriz de

rastreabilidade auxilia na manutenção e acompanhamento de requisitos que são criados a

partir de planos de negócios e reuniões com os clientes, pré-rastreabilidade, e dos requisitos

que são criados a partir de artefatos já definidos e códigos, pós-rastreabilidade, (SAYAO e

LEITE, 2005), conforme mostrado na figura 4.

Figura 4 – Rastreabilidade de requisitos. Fonte: Sayão e Leite, 2005.

25

3. SISTEMAS ESPECIALISTAS

O objetivo deste capítulo é explicar o que são sistemas especialistas e sua utilização. É

abordada uma introdução sobre os sistemas especialistas, mostrando a utilização dos mesmos

e comentando o desafio de se criar um sistema especialista. O capítulo está organizado da

seguinte maneira: A seção 3.1 aborda os sistemas especialistas e suas áreas de aplicação do

conhecimento. A seção 3.2 aborda um software gerador de sistemas especialistas, chamado de

Expert Sinta, mostrando como é a sua arquitetura e como é dividido a sua base de

conhecimento.

3.1 Introdução aos Sistemas Especialistas

Sistemas Especialistas (SE’s) são programas capazes de resolver tarefas específicas de

uma área de conhecimento supostamente com a mesma qualidade que um especialista

humano. Os SE’s começaram a ser estudados por volta da década de 60 quando as pesquisas

na área da IA, segundo Reategui (1993), eram bastante audaciosas, pois visavam criar

“resolvedores de problemas” com interfaces em uma linguagem natural. Contudo os

resultados não eram muito satisfatórios. As pesquisas com a IA começaram a ter melhores

resultados a partir do momento em que o foco passou a ser tratar problemas mais restritos de

uma área de conhecimento (REATEGUI, 1993). Assim. começou a ser desenvolvido

programas que reproduzissem o comportamento humano na resolução de problemas do

mundo real (BITTENCOURT, 2006), armazenando, sequenciando informações e auto-

aprendendo com base nos experimentos práticos impostos pelas situações em estudo

(FIGUEIREDO, 2011).

Figueiredo (2011) comenta que para um SE entrar em funcionamento, o mesmo deve

ser “alimentado” com informações especificas e orientado a executar determinadas tarefas

para a qual se requer o seu uso como também devem ser construídas bases com o

26

conhecimento de um especialista da área ao qual o problema se relaciona, programando as

variáveis usadas e posteriormente simuladas com base no conhecimento do especialista, de tal

forma que ao final o SE seja capaz de oferecer sugestões e conselhos aos usuários e, também,

adquirir novos conhecimentos e heurísticas com essa interação (PY, 2006). Portanto, o estudo

dos problemas que o SE terá de tratar torna-se essencial. Um SE pode ser aplicado nas mais

diversas áreas do conhecimento, como: agricultura, química, sistemas de computadores,

eletrônica, engenharia, gerenciamento de informações, etc. (FIGUEIREDO, 2011).

Contudo, para se criar um SE, é necessário um software que auxilie no processo,

segundo Nogueira e Silva (1997), a construção de um software para a geração de sistemas

especialistas não é fácil, pois o software deve ser capaz de tratar e resolver os problemas da

mesma maneira que um especialista humano quando se depara com algum problema

equivalente. O software também deverá permitir que a captura do conhecimento através de

sua interface seja de fácil utilização, que para manusear o mesmo não seja necessário ter um

conhecimento aprofundado em informática. O Expert SINTA possui todas estas

características e muitas outras, conforme descrito na seção seguinte.

3.2 Expert SINTA

O Expert SINTA é, segundo LIA (1999), uma ferramenta utilizada para geração

automática de sistemas especialistas com o auxílio de técnicas de Inteligência Artificial. Esta

ferramenta possibilita a criação de modelos de representação do conhecimento baseados em

regras de produção e probabilidades, possibilitando uma economia de tempo e simplificação

do trabalho aos desenvolvedores de sistemas especialistas, construção automática de telas e

menus, tratamento das regras de produção e criação de menus de ajuda com explicações sobre

a base de conhecimento modelada (LIA, 1999). Um sistema especialista com este tipo de

modelo é bastante útil em problemas de classificação, pois o usuário responde a uma

sequência de menus e o sistema se encarrega de fornecer respostas que se encaixem no quadro

apontado pelo usuário.

Mendes (1997), afirma que a grande diferença entre um sistema especialista e um

simples programa de banco de dados está no uso de raciocínio lógico para resolução de

problemas. Os sistemas especialistas utilizam regras de produção SE e ENTÃO, seguido por

27

conectivos relacionados dentro do âmbito do assunto em questão e o uso da probabilidade. A

estrutura básica de um sistema especialista é a interface com o usuário, o motor de inferência,

e a base de conhecimento.

3.2.1 Arquitetura de um sistema especialista no Expert SINTA

O Expert SINTA tem como objetivo simplificar as etapas de criação de um SE

completo, oferecendo uma máquina de inferência básica, fundamentada no encadeamento

para trás. O encadeamento para trás é utilizado em problemas que possuem um número muito

grande de soluções, mas os meios pelos quais as respostas são alcançadas são restritos (LIA,

1999).

Os SE’s gerados no Expert SINTA tem sua arquitetura composta basicamente pelos

seguintes componentes:

Bases de conhecimentos;

Editor de bases;

Máquina de inferência;

Banco de dados global.

Tais componentes estão interligados, conforme exemplificado na figura 5.

Figura 5 – Arquitetura Simplificada do Expert SINTA. Fonte: Lia, 1999.

28

Flores (2003) e LIA (1999) definem cada um dos componentes da seguinte maneira:

Base de conhecimento: encontra-se o conhecimento do especialista,

dividido entre fatos e regras, modelado de acordo com o domínio de

representação computacional;

Editor de bases: é o meio em que ocorre a implementação das bases

desejadas. É responsável pela atualização da base de conhecimentos;

Máquina de inferência: é a parte do SE responsável pelas deduções sobre a

base de conhecimentos, examinando o conteúdo da base de conhecimentos

e decidindo a ordem das inferências;

Banco de dados global: Possui as evidências apontadas pelo usuário do

sistema especialista durante uma consulta.

3.2.2 Representação do Conhecimento

Parte mais sensível e crítica no desenvolvimento de um SE (NOGUEIRA e SILVA,

1997; BITTENCOURT, 2006), a representação do conhecimento não se limita apenas a

adicionar novos elementos à base de conhecimentos, mesclando os novos conhecimentos,

com os conhecimentos já armazenados na base (BITTENCOURT, 2008). A representação do

conhecimento, segundo Diehl (2000), constitui de um conjunto de mecanismos utilizados no

armazenamento e manipulação do conhecimento, modelando de forma eficiente ao ponto de

serem utilizados em um sistema inteligente.

Existem várias formas de se modelar o conhecimento de um especialista, tais como,

lógica matemática, regras de produção, raciocínio baseado em casos, redes probabilísticas,

entre outros (FLORES, 2003; DIEHL, 2000). As mais utilizadas, segundo Nogueira e Silva

(1997), são as regras de produção (ou regras de realização), que utilizam a teoria das

probabilidades, garantindo assim uma maior legibilidade da base de conhecimentos.

29

3.2.2.1 Regras de Produção

Uma regra em si é um conjunto de premissas, normalmente escritas com sintaxe

próxima à linguagem natural, que realizam as conclusões indicadas na mesma. Estas regras

têm o formato SE - ENTÃO, permitindo-se o uso dos conectivos lógicos (E, OU, NÃO, e

outros desejados).

Como por exemplo:

1. SE cliente tem cadastro em outras locadoras = sim

2. OU reside no mesmo endereço a mais de 5 anos = sim

3. E situação = adimplente

4. ENTÃO crédito = liberado sem perdas [90%]

O “SE” é o corpo da regra, também conhecido como parte antecedente ou lado

esquerdo, avaliado em relação à base de conhecimento como um todo. Existindo o ajuste, é

feito uma busca no mecanismo de avaliação pela ação correspondente especificada no lado

direito, ou a parte consequente, é executada. As condições na parte antecedente da regra

devem ser satisfeitas para que a ação, na parte consequente, seja considerada. Se qualquer

premissa falhar, o lado direito também falha (DIEHL, 2000; NOGUEIRA e SILVA, 1997).

As regras de produção possuem algumas vantagens, segundo LIA (1999), como:

Modularidade: cada regra pode ser considerada como uma peça de

conhecimento independente;

Facilidade de edição: novas regras podem ser incluídas e regras antigas

podem modificadas com relativa independência;

Transparência do sistema: garante maior legibilidade das bases de

conhecimentos.

Resumindo, uma regra é um par ordenado de símbolos que representa algum

conhecimento sobre um determinado assunto (DIEHL, 2000). Uma das grandes vantagens da

30

utilização de regras é a facilidade na demonstração de como se chega à solução através do

rastreamento das regras pela máquina de inferência (NOGUEIRA e SILVA, 1997).

Quando se estiver criando bases de conhecimento com o Expert SINTA devem ser

levados em consideração alguns critérios na estrutura das premissas e conclusão das regras,

conforme descrito por Diehl (2000):

O modelo para cada premissa deve seguir a seguinte estrutura:

<CONECTIVO> <ATRIBUTO> <OPERADOR> <VALOR>

Conectivo: São os elementos (E, NÃO, OU) utilizados para unir a

sentença ao conjunto de premissas que formam a seção de

antecedentes de uma regra;

Atributo: É uma variável capaz de assumir um ou uma lista de

valores no decorrer da consulta à base de conhecimento;

Operador: São as ligações entre o atributo e o valor da premissa,

definindo o tipo de comparação a ser realizada. Os operadores

podem ser: =, >, <=, >=, <>, entre outros;

Valor: é um item de uma lista, a qual foi previamente criada e

relacionada a um atributo.

Já a estrutura da conclusão deve seguir o seguinte modelo, conforme

Nogueira e Silva (1997):

<ATRIBUTO> = <VALOR> <GRAU DE CONFIANÇA>

Atributo: Mesmo atributo utilizado nas premissas;

“=”: é um operador de atribuição. O atributo receberá o valor que

lhe está sendo atribuído;

Valor: Mesmo valor utilizado nas premissas;

Grau de confiança: Percentual indicando a confiabilidade da

conclusão da regra com base nas premissas. Varia de 0% à 100%.

31

3.2.2.2 Cálculo Probabilístico dos Sistemas Especialistas

Para se efetuar o tratamento do raciocínio, evidência e aquisição automática de

conhecimento, um sistema especialista necessita de um mecanismo para se tratar destes

problemas. Nogueira e Silva (1997) exaltam o Expert SINTA como a ferramenta ideal para

este tipo de situação, pois segundo os mesmos, o Expert Sinta utiliza a teoria das

probabilidades em conjunto com a teoria das possibilidades na resolução dos problemas de

forma automática e transparente ao usuário.

Examinando uma das cabeças da regra mostrada como exemplo na seção anterior,

verifica-se a presença de um grau de confiança na decisão de que a liberação do crédito pode

ser efetuada. Contudo um ponto critico está no grau de confiabilidade da regra imposto pela

da base de conhecimento estar apenas em 90%, sem levar em consideração a confiabilidade

das demais premissas, levantando assim a dificuldade de se representar a confiabilidade das

seguintes informações, segundo Lia (1999):

Os especialistas humanos não utilizam estimativas definidas

matematicamente;

Os resultados gerados através de cálculos matemáticos de probabilidade

nem sempre são a melhor resposta para aquela aplicação prática.

O Expert SINTA modela os tratamentos probabilísticos utilizando quatro casos como

base onde o cálculo varia de acordo com o objetivo que se deseja podendo ser para se

descobrir o valor final atribuído a uma regra, calcular o grau de confiança quando se tem o

operador E embutido na regra ou calcular o grau de confiança quando se tem o operador OU

na regra. Para melhor exemplificar os casos disponíveis no Expert SINTA, será mostrado o

cálculo utilizando as regras retiradas da base do Sistema Especialista de Requisitos,

SISREQUI.

32

Caso 1: Quando queremos saber o valor final atribuído às variáveis na conclusão de

um regra (LIA, 1999).

O grau de confiança de uma regra R, será o número atribuído a C1 ao final da

premissa de R, onde na conclusão de R, temos expressões como “Var = value CNF C2”.

Onde:

Var é uma variável;

value é um termo qualquer que pode ser substituído pela variável;

C2 é um número real no intervalo de 0 a 100, que representa o grau de

confiança da atribuição;

O resultado final e dependente da premissa, pois “C2” é apenas uma referência. Assim

a operação a ser realizada é “Var = value CNF C1*C2”.

Como por exemplo:

Figura 6 – Exemplo de tratamento probabilístico do caso 1.

Então, na execução da regra mostrada na figura 6, o usuário digitando o grau de

confiança da premissa “Problemas no desenvolvimento do sistema” = sim com 80%, tem-se

que o atributo “Para esta situação o mais indicado é” receberá o valore “Verificar se o

documento de Requisitos está claro”, com o respectivo grau de confiança da regra de 60%. O

valor final da regra atribuída pelos valores fornecidos e obtido pelo cálculo = 0.80 * 0.60 =

0.48 = 48%.

33

Caso 2: Cálculo do grau de confiança com o conectivo E (LIA, 1999).

A regra possuindo duas igualdades var1 = value1 e var2 = value2, com os respectivos

graus de confiança c1 e c2, temos a sentença var1 = value1 E var2 = value2, ficando como

valor de confiança o resultado a multiplicação de C1 por C2.

Como por exemplo:

Figura 7 - Exemplo de tratamento probabilístico do caso 2.

Ao executar a regra da figura 7, digamos que o grau de confiança para “Projeto

Complexo” = Sim é 60% e o grau de confiança pra “Problemas no desenvolvimento do

sistema” = sim é 90%. Chega-se ao valor de 56%, obtido pelo seguinte cálculo 0.60*0.90 =

0.54. Com o valor do cálculo entre as premissas, agora se multiplica pelo grau de confiança

da regra de 80%, ficando o valor final da regra em 43,2%.

Caso 3: Cálculo do grau de confiança com o conectivo OU (LIA, 1999).

Possuindo duas igualdades var1 = value1 e var2 = value2, com seus respectivos graus

de confiança c1 e c2, obtêm-se a sentença var1 = value1 OU var2 = value2. O valor de

confiança é obtido com o seguinte cálculo c1 + c2 – (c1* c2).

Como por exemplo:

34

Figura 8 - Exemplo de tratamento probabilístico do caso 3.

Na execução da regra exemplificada na figura 8, digamos que o valor para o grau de

confiança da igualdade “Projeto Complexo” = sim é 80% e o grau de confiança da igualdade

“Requisitos Claros” = sim é 90%, então obtêm-se um valor de 98%, através do seguinte

cálculo ((0.80 + 0.90) – (0.80 * 0.90)) = (1.7 - 0.72) = 0.98. Como valor das premissas, o

passo seguinte e multiplica-lo com o grau de confiança da regra de 70%, obtendo o valor final

da regra de 68,6%.

Caso 4: Cálculo do grau de confiança com o conectivo NÃO (MATOS, 2011).

Negando uma ou mais igualdades var = value, com seus respectivos graus de

confiança c, obtêm-se a sentença “NÃO var = value”. O valor de confiança é obtido com o

seguinte cálculo: (1 – c).

Como por exemplo:

Figura 9 - Exemplo de tratamento probabilístico do caso 4.

35

A regra mostrada na figura 9 possui o grau de confiança de 90% fornecido pelo

usuário para o atributo “Cliente tem certeza sobre os Requisitos” = Sim, mas como a premissa

foi negada inicialmente com o operador NÃO, o valor real da premissa será 10%, de acordo

com o cálculo 1 – 0.90. Com o resultado da premissa, aplicasse a regra do caso 2, pois na

premissa seguinte possui o conectivo E. O valor do atributo “Envolvidos no projeto com total

entendimento” e de 60%. Ao final do calculo entre as premissas, 0.10 * 0.60, chegasse ao

valor de 6%. Já o valor final da regra será o valor o grau de confiança das premissas 6%

multiplicado pelo grau de confiança da regra de 40%. Chegando ao valor final de 24%.

A partir dos casos base de modelagem de tratamento probabilístico, mostrados,

podem-se criar vários outros casos simplesmente acrescentando conectivos diferentes em uma

mesma regra, lembrando que a ordem de prioridade dos conectivos é: NÃO primeiro, seguido

do E, e após o OU. Vale lembrar também que toda regra possui um objetivo final, mas com o

Expert SINTA é possível ter mais de um objetivo na mesma regra. A ferramenta efetua o

cálculo do grau de confiança das premissas e, ao final, multiplica o valor encontrado por cada

um dos objetivos da regra. Como por exemplo, na regra abaixo retirada da base de

conhecimento do SISREQUI.

Figura 10 - Exemplo de regra com mais de um objetivo.

Conforme mostrado na figura 10, a regra 50 possui três objetivos onde cada um possui

seu respectivo grau de confiança. Para exemplificar melhor daremos para cada atributo os

36

seguintes valores na mesma ordem dos atributos: 80 %, 90%, 50 % e 70%. Para o cálculo das

premissas, como em todas possui apenas o conectivo E, se aplica apenas a regra do caso 2,

obtendo em seguida o valor de 25,2 %. Em seguida, o Expert SINTA irá multiplicar o valor

de 25,2 % por cada um dos objetivos da regra, chegando ao seguintes valores:

Para esta situação o mais adequado

Negociar mais tempo com o cliente. 17,64%, referente ao cálculo

de 25,2% * 70%;

Validar com o cliente o requisito coletado. 17, 64 %, referente ao

cálculo de 25,2% * 70%;

Técnica de Elicitação de Requisitos mais adequada

Etnografia. 22,68%, referente ao cálculo de 25,2% * 90%.

37

4. SISTEMA ESPECIALISTA PARA AUXÍLIO NO PROCESSO DA ENGENHARIA

DE REQUISITOS

O objetivo deste capítulo e mostrar o processo de criação do sistema especialista para

a disciplina de requisitos, discutindo as etapas básicas na elaboração do sistema especialista, a

implementação do sistema e as consultas do mesmo. O capítulo está organizado da seguinte

maneira: A seção 4.1 aborda sobre o projeto do SISREQUI, com o estudo de viabilidade e a

formalização do conhecimento. A seção 4.2 aborda sobre a implementação do SISREQUI e a

seção 4.3 aborda os resultados alcançados com o SISREQUI.

4.1 Projeto SISREQUI

Os Sistemas que são da área científica não possuem uma usabilidade e interface

amigável com o usuário. Nos dias atuais as ferramentas que possibilitam uma fácil interação

entre homem e máquina, ajudam no aumento da produtividade e no rápido desenvolvimento

no processo de criação de um software. Boa parte das ferramentas hoje disponíveis para a

criação de sistemas especialistas, não possibilitam que ocorra uma maior comunicação entre o

responsável pela criação do sistema especialista.

A ferramenta que irá auxiliar na criação de um sistema especialista deve ter uma fácil

utilização, possuindo uma interface autoexplicativa, permitindo que qualquer pessoa

familiarizada com um computador possa criar o conhecimento especializado de acordo com a

linguagem de representação do conhecimento disponível (BITTENCOURT, 2006).

Com o Expert SINTA é possível criar rapidamente todas as variáveis e seus possíveis

valores, como também os objetivos do sistema para, em seguida, iniciar a criação das regras

de produção, conforme verificado na figura 11.

38

Figura 11 – Ambiente do Expert SINTA. Fonte: Lia, 1999.

Assim como o Expert SINTA, existem outras ferramentas que ajudaram segundo

Bittencourt (2006), na disseminação dos sistemas especialistas, denominadas Arcabouços de

Sistemas Especialistas, ASE. Os ASE’s dividem os SE’s entre a ferramenta de criação do

conhecimento que define as regras e aspectos operacionais, do conhecimento de domínio.

4.1.1 Estudo de viabilidades

Criar um sistema especialista para auxiliar em processos complexos como o da

disciplina de Engenharia de Requisitos não pode ser resolvido facilmente. Por isso serão

utilizados como base na criação do sistema as metodologias utilizadas por autores que tem um

embasamento muito mais profundo sobre sistemas especialistas, tais como Nogueira e Silva

(1997), LIA (1999) e Bittencourt (2006).

As metodologias utilizadas pelos autores consistem em saber se “o sistema especialista

é a resposta na resolução de um problema”. Nogueira e Silva (1997) afirmam que se torna

necessário na definição da resposta, os seguintes parâmetros:

39

A tarefa não necessita de senso comum? Já que computadores têm uma

enorme dificuldade em lidar com senso comum. Mas sistemas

especialistas são quase que totalmente desprovidos de bom senso, então

não sofrem grandes prejuízos ao tratarem do assunto (NOGUEIRA E

SILVA, 1997);

Existem modos de formalização para o conhecimento desejado? O sistema

deve ser validado por diversos especialistas no assunto (NOGUEIRA E

SILVA, 1997);

Existem especialistas disponíveis que possam colaborar com o

desenvolvimento do sistema? Presença ativa de profissionais com alto

grau de conhecimento do problema em estudo é vital para obtenção de

resultados funcionais (NOGUEIRA E SILVA, 1997);

A aplicação é relevante? O sistema só valerá a pena se o mesmo não for

para resolução de tarefas triviais ou de pouca importância (NOGUEIRA E

SILVA, 1997).

Também deve ser levado em consideração o público alvo, afinal de contas o sistema

tem como missão validar uma informação da mesma forma que um especialista humano,

treinar novos analistas com as melhores respostas dos principais problemas já vivenciados por

outros especialistas. Para se chegar a estes objetivos se torna necessária uma boa

formalização do conhecimento, conforme descrito a seguir.

4.1.2 Formalização do Especialista em Engenharia de Requisitos

O grande problema na criação de um sistema especialista está na dificuldade de se

conseguir elaborar corretamente o conhecimento dos especialistas. Nogueira e Silva (1997)

indicam uma boa entrevista com os especialistas da área em que esteja querendo coletar as

informações, pois segundo os mesmos é difícil se criar regras com base nas conclusões feitas

pelos Especialistas, quando os mesmos lidam com novas situações, onde se torna necessário,

uma boa experiência ou até mesmo na dificuldade de comunicação quando se utiliza muitos

termos técnicos.

40

Por causa dos problemas descritos acima, foram utilizados na formalização do

conhecimento para a base do SISREQUI, dois métodos para extração do conhecimento dos

especialistas em requisitos. Os métodos são os seguintes:

O Método da Observação, onde o desenvolvedor do sistema especialista

deve assistir ao dia a dia de trabalho de um especialista na resolução dos

problemas (NOGUEIRA E SILVA, 1997);

Método Intuitivo, onde é feito um estudo e interação tanto com o

especialista em requisitos quanto com a literatura básica sobre o assunto

(NOGUEIRA E SILVA, 1997).

Além dos métodos de observação e intuitivo descritos acima, também foi elaborado

um questionário com alguns problemas típicos do dia a dia de um analista de sistema, e

enviados a alguns Analistas para que os mesmos dessem suas contribuições. A formalização

do conhecimento utilizado na criação da base de conhecimento do SISREQUI é descrita com

maiores detalhes na seção 4.1.3.

4.1.3 Aquisição de conhecimento

O SISREQUI é um sistema especialista voltado a suporte na resolução de problemas

relacionados a conceitos da engenharia de requisitos. Seu principal objetivo e o de auxiliar a

analista de requisitos, analistas de sistemas e analistas de negócio na correta aplicabilidade

dos conceitos da engenharia de requisitos, podendo também ser utilizado como treinamento a

novos membros de uma equipe responsável pela coleta de requisitos. A modelagem do

conhecimento requer uma série de refinamento (NOGUEIRA E SILVA, 1997) aumentando a

imparcialidade das respostas do sistema.

O refinamento do conhecimento, obtido com as técnicas descritas na seção 4.1.2,

sobre requisitos utilizados na versão inicial do SISREQUI feito da seguinte maneira:

Método da Observação

41

Foi observado durante um período de 5 meses a rotina de trabalho

de especialistas em requisitos nas empresas de desenvolvedoras de

software, analisando e documentando o trabalho dos especialistas.

Método Intuitivo

A partir do levantamento bibliográfico sobre a disciplina de

requisitos de software foi feito um documento com as melhores

práticas sobre o assunto descrito pelos autores. O Documento

possuía algumas frases, que se tornaram as variáveis da

SISREQUI, que abordavam diversos temas relacionados a

disicplina.

Questionário

As perguntas contidas no questionário eram voltadas as melhores

práticas no processo de requisitos, abordando sobre as técnicas de

elicitação, validação e gerenciamento. O questionário serviu como

base para a criação do grau de confiança atribuído aos objetivos

das regras.

4.2 Implementação do SISREQUI

Em LIA (1999), é descrito a praticidade e facilidade que o Expert SINTA, proporciona

ao desenvolvedor do sistema especialista na implementação da base de conhecimento

desejada. Uma base de conhecimento no Expert SINTA envolve os seguintes conjuntos de

atributos que devem ser criados na base:

Variáveis são os atributos que serão utilizados nas regras;

Regras são formadas por um conjunto de premissas com um grau de

confiança;

Perguntas são variáveis que irão aparecer ao usuário como forma de

perguntas;

Objetivos são variáveis que irão estar na conclusão das regras;

Informações adicionais, local onde são colocados as informações de

apresentação do sistema especialista, nome do sistema e nome dos autores.

42

Só quando esses elementos estiverem definidos, se torna possível utilizar o sistema

especialista.

4.2.1 Implementando o sistema

Com a base de conhecimento já levantada, deve-se abrir o Expert SINTA e criar uma

nova base de conhecimento, através do Menu Arquivo Nova base. Conforme figura 12.

Figura 12 – Criando uma nova Base de Conhecimento no Expert SINTA.

O Expert SINTA, inicialmente irá abrir uma nova janela, denominada Knowledge-in-

a-box, KIB (LIA, 1999). Com a KIB aberta, é possível elaborar todos os elementos

necessários para o Sistema Especialista. Conforme figura 13.

43

Figura 13 – Janela KIB. Fonte: Lia, 1999, Modificado.

4.2.1.1 Base de conhecimento

Na criação da base de conhecimento do SISREQUI, é necessária primeiramente a

criação das variáveis que serão utilizadas no sistema. Dessas variáveis devem ser separadas as

que irão se tornar objetivos e as que serão as perguntas, para finalmente dar início a criação

das regras de produção que serão utilizadas no sistema. Todo o processo de criação das

variáveis, separação das variáveis objetivos das variáveis perguntas e criação das regras será

explicado na seção seguinte.

4.2.1.1.1 Variáveis

A criação de variáveis do SISREQUI pelo Expert SINTA é bastante simples. Após ter

definido quais serão os problemas ou situações mais vivenciadas por especialistas em

requisitos de software, basta a partir da janela KIB, selecionar o botão Variáveis. Logo em

seguida irá ser carregada a janela de criação e edição de variáveis conforme figura 14.

44

Figura 14 – Janela de criação de variáveis. Fonte: Lia, 1999, Modificado.

Onde:

1: Referisse a campo onde serão exibidas as variáveis que o sistema terá;

2: Será exibido o valor referente a uma determinada variável;

3: Campo de descrição com o nome da variável;

4: Campo com o valor que a variável terá;

5: O botão com formato de “V”, serve para confirmar a inclusão ou alteração

da variável. Enquanto o no formato de “X” cancela a alteração ou

inclusão;

6: Tipos das variáveis, onde:

Numérica: Não podem ter valores pré-definidos. Será exibido o

intervalo de números reais no formato a;b. Onde “a” deve ser

menor ou igual a “b”;

Multivalorada: São variáveis que podem assumir vários valores,

onde estes valores são exibidos em forma de listagem ao lado do

nome da variável;

Univalorada: Variáveis lógicas que só podem receber um valor por

vez, 0-Sim, 1-Não. Por padrão o Expert SINTA cria as variáveis

como univaloradas;

7: Botões de criação e exclusão de variáveis e seus valores.

45

LIA (1999), aconselha a nunca mudar o tipo de uma variável não numérica para

numérica, pois pode implicar em perda de valores ou mesmo excluir alguma variável ou seu

valor, pois esta exclusão irá invalidar qualquer regra que esteja com aquela variável.

Após definir todas as variáveis, seus tipos e valores, o próximo passo na criação do

SISREQUI é separar das variáveis criadas, quais serão os objetivos nas regras.

4.2.1.1.2 Objetivos

O objetivo em uma regra, é a resposta que um especialista daria como solução a

determinado problema (LIA, 1999). A diferença é que no Expert SINTA os problemas são

representados por variáveis que por sua vez se tornam variáveis objetivos. O SISREQUI,

assim como qualquer sistema especialista, antes de sua execução necessita que sejam

definidas quais são as suas variáveis objetivos, pois sem esta definição, seria o mesmo que

perguntar alguma coisa a um especialista e o mesmo não a responder (LIA, 1999).

A determinação dos objetivos é feita a partir da janela KIB, selecionado a opção

Objetivos. Em seguida aparecerá uma janela com uma lista contendo as variáveis comuns e

outra com as variáveis objetivos, conforme mostrado na figura 15.

Figura 15 – Janela de seleção de variáveis objetivos do SISREQUI. Fonte: Lia, 1999, Modificado.

46

Ao definir as variáveis objetivos, o próximo passo é a criação da interface com o

usuário. A interface é a forma como as variáveis irão ser exibidas aos usuários do sistema, e

como serão feitas as perguntas aos usuários.

4.2.1.1.3 Interface com o usuário

O SISREQUI se comunica com o usuário final através de menus de múltipla escolha.

Os menus são construídos automaticamente pelo Expert SINTA, restando apenas ao criador

do sistema especialista definir as variáveis perguntas e para cada variável pergunta criar uma

questão e um motivo de ajuda, que irá auxiliar o usuário quando o mesmo não souber sobre

do que se trata a pergunta (LIA, 1999).

Na janela de seleção e criação de perguntas do Expert SINTA, figura 16 aparece as

variáveis criadas em um lado e as variáveis perguntas do outro. O Expert SINTA não proíbe

que uma variável definida como objetivo se torne uma variável pergunta, ele não permite e

que esta mesma variável seja referenciada em uma regra como variável pergunta e objetivo.

Figura 16 – Janela de seleção de variáveis perguntas do SISREQUI. Fonte: Lia, 1999, Modificado.

Com a seleção das variáveis, a criação das perguntas e definição dos motivos para o

SISREQUI, o próximo passo e o mais complexo é a criação das regras de produção com seus

respectivos graus de confiança.

47

4.2.1.1.4 Regras

A modelagem do conhecimento no Expert SINTA é feita através das regras de

produção. Na janela KIB, aparecem todas as regras que o sistema tem. A criação de regras é

iniciada a partir da seleção da opção “Nova Regra” na janela KIB (LIA, 1999), surgindo em

seguida uma tela informando a ordem da regra, que se refere ao número da regra, e o modelo,

referente à criação de uma nova regra com as mesmas informações de uma já criada,

conforme figura 17.

Figura 17 – Caixa de seleção de Ordem e modelo de regra. Fonte: Lia, 1999.

A tela seguinte, caso não seja selecionado nenhum modelo de regra, virá apenas com a

estrutura “SE”, “ENTÃO”, conforme figura 18.

Figura 18 – Tela de criação de regra de produção. Fonte: Lia, 1999.

48

A partir dela, se torna possível a criação da regra que irá compor o sistema.

Lembrando que a criação da regra, deve possuir a mesma estrutura abordada na seção de

regras de produção do capítulo anterior. No Expert SINTA, as variáveis criadas e definidas

como perguntas, serão os atributos das regras. E são inseridas no bloco correspondente à

silaba “SE”. As variáveis Objetivos devem ser inseridas no bloco correspondente à silaba

“ENTÃO”. Para incluir uma variável, primeiramente deve-se selecionar a opção “Incluir”.

Após a escolha, será exibida uma caixa de seleção com o item de regra, onde o mesmo é uma

lista contendo todas as variáveis criadas, o operador e o valor que irá receber aquela variável.

Após ser inserida a primeira premissa da regra, o Expert SINTA permite que sejam inseridos

os conectivos “E” e “OU”; o “NÃO” já é liberado para ser utilizado na primeira premissa.

Figura 19 – Tela de inserção de premissas. Fonte: Lia, 1999.

Inseridas todas as premissas do bloco “SE”, o próximo passo é inserir o objetivo da

regra, bloco “ENTÃO”. A caixa de seleção do bloco é um pouco parecida com a anterior, só

que nesta tela é selecionado apenas o objetivo da regra, o seu respectivo valor e seu graus de

confiança, conforme figura 20.

Figura 20 – Tela de inserção de objetivos. Fonte: Lia, 1999.

Se por ventura se chegar a errar na criação de alguma regra, seleciona-se a premissa e

clica na opção alterar. Após a criação das regras, o SISREQUI já esta com sua base de

conhecimento completa, restando apenas consulta-la e verificar os resultados alcançados.

49

4.2.1.2 Informações adicionais

Antes de executar o SISREQUI, se torna necessário criar uma tela de abertura para o

sistema. A criação da tela foi através da opção Informações da janela KIB. A opção abriu uma

tela onde foi possível inserir o nome do Sistema, assim como os autores e uma breve

descrição sobre o SISREQUI, conforme figura 21.

Figura 21 – Janela de informações adicionais do SISREQUI. Fonte: Lia, 1999, Modificado.

LIA (1999), comenta que também é possível a criação de arquivos de ajuda online,

definir preferências na execução dos conectivos, formulas matemáticas e proteção por senha

para o sistema especialista.

Em uma versão futura do SISREQUI, poderá ser agregada algumas destas

funcionalidades presentes no Expert SINTA.

4.3 Consultando o SISREQUI

Antes de mostrar as consultas, primeiramente serão mostrados alguns comandos

básicos do Expert SINTA, ou, conforme Lia (1999), um conjunto de operações básicas.

50

Existem dois menus de acompanhamento de consultas no Expert SINTA (LIA, 1999), mas

este trabalho se focou em explicar o menu já presente na barra de ferramentas do Expert

SINTA, conforme mostrado na figura 22.

Figura 22 – Menu de controle de consultas. Fonte: Lia, 1999.

4.3.1 Consultas

Iniciando a consulta, a primeira tela que irá aparecer será a tela de abertura do sistema.

A tela mostra uma pequena descrição sobre o SISREQUI, figura 23.

Figura 23 – Tela de abertura do SISREQUI.

51

Após a tela de abertura irão aparecer as perguntas criadas. A base de conhecimento do

SISREQUI possui 50 regras e foi elaborada com variáveis univaloradas, então as perguntas

irão aceitar apenas uma opção a ser selecionada, que conforme seja selecionada permite ao

sistema solicitar qual o grau de confiança naquela resposta, conforme mostrado nas figuras 24

e 25.

Figura 24 – Interface SISREQUI.

Figura 25 – Resposta do SISREQUI com respectivo grau de confiança.

Contudo, caso o analista que esteja utilizando o SISREQUI, não saiba o que a

pergunta significa, basta consultar a ajuda selecionando a opção “Por que?”. O SISREQUI irá

mostrar ao analista o porque de estar fazendo aquela pergunta, conforme figura 26.

52

Figura 26 – Tela de ajuda do SISREQUI.

Mas se mesmo com a tela de ajuda o Analista não souber como responder a pergunta,

simplesmente poder passar a pergunta só escolhendo a opção “OK”. Independente da escolha,

o SISREQUI irá auxiliar o Analista na melhor maneira.

4.3.2 Acompanhamento

O acompanhamento das consultas do SISREQUI pode ser feito através do depurador.

O depurador exibe uma caixa de listagem com todas as regras que formam a base de

conhecimento do sistema (LIA, 1999), destacando a premissa que está sendo analisada pela

maquina de inferência naquele momento, conforme mostrado na figura 27.

53

Figura 27 – Execução do SISREQUI pelo modo depurador.

Para utilizar o modo depurador o analista deve executar o SISREQUI apertando a tecla

F8, e para cada resposta efetuada, continuar apertando a tecla. Assim e possível ver como o

SISREQUI funciona na escolha das regras.

4.3.3 Janela de Resultados Atingidos

Ao final de uma busca de objetivos, o SISREQUI apresenta uma janela de resultados.

LIA (1999), comenta que esta janela se divide em quatro partes:

A de resultados, onde são apresentados todos os objetivos atingidos, com

seus respectivos graus de confiança, conforme mostrado na figura 28;

Histórico: onde é exibido todo o caminho realizado pelo sistema

especialista até atingir a solução, conforme mostrado na figura 29;

Todos os valores: que é uma generalização da primeira página, pois exibe

todos os valores de todas as variáveis do SISREQUI, conforme figura 30;

54

O sistema: onde exibe todas as regras contidas no SISREQUI, mostrado na

figura 31.

Figura 28 – Tela de Resultados.

Figura 29 – Arvore de pesquisa.

55

Figura 30 – Todos os resultados.

Figura 31 – Regras do SISREQUI.

56

O SISREQUI possui em sua versão atual, quatro objetivos onde os tópicos abordados

em cada um deles e o seguinte:

Para esta situação o mais adequado é, trata as melhores práticas sobre

requisitos de software definidas por autores consagrados como

Sommeville (2008) e Pressman (2005);

Técnica de Elicitação Requisitos mais adequada, aborda sobre as melhores

técnicas de elicitação de requisitos de acordo com levantamento feito por

especialistas na área e autores consagrados como Sommeville (2008) e

Pressman (2005);

Validação de Requisitos mais adequada, trata sobre as melhores técnicas

de validação de requisitos de acordo com levantamento feito por

especialistas na área e autores consagrados como Sommeville (2008) e

Pressman (2005);

Técnica de Gerenciamento de requisitos mais adequada, aborda sobre as

melhores técnicas de gerenciamento de requisitos de acordo com

levantamento feito por especialistas na área e autores consagrados como

Sommeville (2008) e Pressman (2005).

A disciplina de requisitos por ser muito complexa e lidar muito com o senso comum,

se torna necessário garantir a relevância da base do SISREQUI.

4.3.4 Garantindo a relevância do SISREQUI

A garantia da funcionalidade na versão atual do SISREQUI tem o intuito de verificar

se os objetivos sugeridos pelo sistema realmente ajudaram os analistas em suas rotinas de

trabalho. Para efetuar os testes, foram aplicados a partir de projetos complexos já concluídos

ou em processos de conclusão.

O primeiro teste, figura 32, efetuado com o sistema foi em relação a um projeto já

concluído. O intuito foi verificar se os objetivos que SISREQUI chegou, atingiram qual o

porcentagem em relação à solução adotada pelos analistas para se chegar à conclusão do

sistema. No momento do teste foram levadas em consideração as situações que ocorreram na

57

época que o projeto estava sendo elicitado e desenvolvido. O segundo teste, figura 33, foi

aplicado em um projeto ainda em desenvolvimento. O intuito do teste foi verificar se os

objetivos atingidos pelo SISREQUI satisfazem as necessidades nos analistas no projeto.

Figura 32 – Gráfico de teste do SISREQUI em projetos concluídos.

Figura 33 – Gráfico de teste do SISREQUI em projetos não concluídos.

58

Após analisar os resultados dos testes detectaram-se quais os objetivos do SISREQUI

estão mais próximos dos utilizados pelos analistas e quais precisam ser melhorados, conforme

figura 34.

Figura 34 – Média de resultados.

59

5. CONCLUSÕES

A popularização dos sistemas especialistas vem da facilidade na construção dos

mesmos. Tudo isso graças a criação das ferramentas que auxiliam no processo de construção

dos sistemas. Estas ferramentas que possuem mecanismos de raciocínio incerto despertou o

interesse de estudos e pesquisas. No decorrer dos estudos e criação do projeto, foi possível

perceber que existem poucas ferramentas que deem suporte na criação dos sistemas

especialistas e modo interativo com o usuário. O curto tempo necessário também

impossibilitou que fosse sugerida a criação de uma melhoria para a ferramenta utilizada na

criação do sistema especialista. No entanto para se conseguir gerar a primeira versão do

sistema, foram necessários estudos relacionados a sistema especialistas, como sua história,

seus principais conceitos. Também foi necessário pesquisar sobre engenharia de requisitos,

estudo esse que forneceu as bases do conhecimento necessárias para conclusão do trabalho.

Para se chegar aos objetivos finais do trabalho foi necessária uma série de entrevistas com

especialistas na área, além-observações e estudo dos principais autores sobre o assunto além

de testes para garantir a funcionalidade da base do SISREQUI.

Como contribuições acadêmicas e científicas, este trabalho abordou a criação de

um sistema especialista para a disciplina de requisitos de software com o auxílio de uma

ferramenta geradora de Sistemas especialistas, com base em um referencial teórico e prático

que contempla os principais conceitos da disciplina. É válido destacar que o sistema necessita

sempre ter sua base de conhecimento alimentada, com novas informações, conforme for

sendo utilizado e corrigido as suas falhas. Papel este que rende estudos aprofundados em

várias universidades e centros de pesquisas do mundo inteiro tanto na área de requisitos de

softwares como em sistemas especialistas. É esperado que este trabalho possa auxiliar

também esses estudantes e pesquisadores.

60

Como trabalhos futuros sugerem-se melhorar a base de conhecimento do

SISREQUI melhorando a imparcialidade de seus objetivos e incluir novos objetivos que na 1ª

versão acabaram não sendo tratados.

61

REFERÊNCIAS BIBLIOGRÁFICAS

APARECIDO, Edinelson Batista; CARVALHO, Ariadne M. B. R. Uma Taxonomia

Facetada para Técnicas de Elicitação de Requisitos. 2002. Disponível em: <

http://wer.inf.puc-rio.br/WERpapers/artigos/artigos_WER03/edinelson_batista.pdf>.

Acessado em 09 Set. 2010.

BECK, K. Et al. Manifesto for Agile Software Development. 2001. Disponível em:

<http://www.agilemanifesto.org/>. Acesso em: 12 Agos. 2010.

BITTENCOURT, Guilherme. Inteligência Artificial: Ferramentas e Teorias. 3. ed. UFSC:

Florianópolis, 2006. 371 p..

BITTENCOURT, Guilherme. Sistemas Especialistas. 2008. Disponível em: <

https://disciplinas.dcc.ufba.br/pastas/MATA64/Tutoriais/siesp.pdf>. Acesso em: 12 Fev.

2011.

CAMPELO, Pablo Rodrigo Alves. Engenharia de Requisitos para Aplicações WEB.

Recife: UFPE, 2009. 28 p. Trabalho de Pós-Gaduação, Centro de Informática, Universidade

Federal de Pernambuco, Recife, 2009. Disponível em: <

http://www.cin.ufpe.br/~in1020/arquivos/monografias/2009_1/pablo.pdf>. Acesso em: 15

Abr. 2010.

DIEHL, Vera Alice. Protótipo para Gerenciamento de programa da qualidade (5s)

utilizando Sistemas Especialistas. Blumenau: FERB, 2000. 71 p. Trabalho de Conclusão de

Curso, Universidade Reginal de Blumenau, Blumenau, 2000. Disponível em: <

http://campeche.inf.furb.br/tccs/2000-II/2000-2veraalicediehlvf.pdf>. Acesso em: 15 fev.

2011.

FIGUEIREDO, Ciro Jardim et al. Uso de Sistemas Especialistas para a avaliação de um

processo agroindustrial. 2011. Disponível em: <

62

http://ojs.ingepro.com.br/index.php/ingepro/article/download/344/303>. Acesso em: 12 Fev.

2011.

FLORES, Cecília Dias. Fundamentos dos Sistemas Especialistas. In: Dante Augusto Couto

Barone. (Org.). Sociedades Artificiais: A Nova Fronteira da Inteligência nas Máquinas. 1 ed.

Porto Alegre, 2003, v. 1, p. 127-154.

FRANÇA, Juliana Baptista dos Santos; MORAES, Karla Luraschy. Um estudo sobre

levantamento de informações para modelagem de processos de negócio. Rio de Janeiro:

UNIRIO, 2009. 95 p. Trabalho Conclusão de Curso, Universidade Federal do Estado do Rio

de Janeiro, Rio de Janeiro, 2009. Disponível em:

<http://np2tec.uniriotec.br:9093/np2tec/publicacoes/Projeto%20Final%20-

%20Juliana%20Baptista%20dos%20Santos%20Franca%20e%20Karla%20Luraschy%20de%

20Moraes%20-%202009.pdf >. Acesso em: 20 Set. 2010.

KNIBERG, Henrik. Scrum e XP direto das Trincheiras. C4Media, Publicado por

InfoQ.com, 2007. 145 p. Disponível em: <http://www.infoq.com>. Acesso em: 24 fev. 2011.

LIA, Laboratório de Inteligência Artificial. Expert SINTA : uma ferramenta para criação

de sistemas especialistas. 1999. Disponível em: <http://www.lia.ufc.br>. Acessado em 10

Jan. 2011.

LUIZA, Ana Ávila; OLIVEIRA, Rodrigo Spinola. Introdução à Engenharia de Requisitos.

Revista Engenharia de Software [online]. Março de 2008. Disponível em: <

http://sites.google.com/site/pasqueline/EngenhariadeRequisitosDevMedia.pdf >. Acesso em:

14 Ago. 2010.

MARTINS. José Carlos Cordeiro. Técnicas para Gerenciamento de Projetos de Software.

Rio de Janeiro: Brasport, 2007. 552 p.

MATOS, Helano. Sistemas Especialistas. Inteligência Artificial. Outubro de 2010.

Disponível em: <http://ffb.virtual.ufc.br/solar/>. Acesso em: 14 fev. 2011.

63

MEDEIROS, Raul de Abreu Junior; BELCHIOR, Arnaldo Dias; FARIAS, Pedro Porfirio

Muniz. Uma Ontologia para Engenharia de Requisitos de Software. Disponível em: <

http://www.sbc.org.br/bibliotecadigital/download.php?paper=298>. Acesso em: 10 Jun. 2010.

MEIRA, Aliny Figueirêdo. Melhoria do Processo de Engenharia de Requisitos. Recife:

UFPE, 2008. 46 p. Trabalho de Pós-Gaduação, Centro de Informática, Universidade Federal

de Pernambuco, Recife, 2008. Disponível em: <

http://www.cin.ufpe.br/~in1020/arquivos/monografias/2007-2/monografiaAlinyMeira.doc >.

Acesso em: 15 Abr. 2010.

MENDES, Raquel Dias. Inteligência Artificial: Sistemas Especialistas no Gerenciamento da

Informação. Disponível em: < http://www.scielo.br/scielo.php?pid=S0100-

19651997000100006&script=sci_arttext>. Acesso em: 14 Fev. 2011.

NOGUEIRA, José Helano Matos; SILVA, Ricardo Bezerra A. Geração Automática de

Aplicações Especialistas Usando o Expert SINTA. Anais do Simpósio Brasileiro de

Engenharia de Software, São Carlos, 1997.

OLIVEIRA, Alexandre José Henrique Luna. Abordagem da engenharia de requisitos em

projetos de desenvolvimento de software para telessaúde/telemedicina. Recife: UFPE,

2008. 79 p. Trabalho de Pós-Gaduação, Centro de Informática, Universidade Federal de

Pernambuco, Recife, 2008. Disponível em: <

http://www.cin.ufpe.br/~in1020/arquivos/monografias/2008-

1/IN1020_EngRequisitos_Monografia_EngRequisitos%20na%20Telemedicina%20e%20Tele

ssaude_Alexluna_v1.15.pdf >. Acesso em: 15 Abr. 2010.

OLIVEIRA, Susana Brunoro C.; TANAKA, Astério K.; VIANA, Dalessandro S. Avaliação

de Ferramentas para Controle Automatizado de Versões de Artefatos de Requisitos de

Software. Workshop de Engenharia de Requisitos - WER 2006, 2006, Rio de Janeiro.

Disponível em: < http://wer.inf.puc-

rio.br/WERpapers/pdf_counter.lua?wer=WER06&file_name=susana_oliveira.pdf>. Acesso

em: 14 Set. 2010.

64

PÁDUA, Silvia Inês Dallavalle. Investigação do Processo de Desenvolvimento de Software

a partir da Modelagem Organizacional, enfatizando regas de negócio. São Carlos: USP,

2001. 156 p. Tese de mestrado, Escola de Engenharia de São Carlos, Universidade de São

Paulo,São Carlos, 2001. Disponível em: <

http://www.teses.usp.br/teses/disponiveis/18/18140/tde-09122008-

154855/publico/DissertacaoSilviaInesDallavallePadua.pdf >. Acesso em: 25 Set. 2010.

PRESSMAN, Roger S. Engenharia de software. São Paulo: Pearson Makron Books, 2005.

1056 p. ISBN 85-346-0237-9. Português.

PY, Mônica Xavier. Sistemas Especialistas: uma Introdução. 2006. Disponível em: <

http://www.inf.ufrgs.br/gppd/disc/cmp135/trabs/mpy/sistemasespecialistas.pdf>. Acesso em:

12 Fev. 2011.

REATEGUI, Elisio Berni. Um modelo para Sistemas Especialistas Conexionistas

Híbridos. Universidade Federal do Rio Grande do Sul, 1993. 123 p. Tese de mestrado,

Instituto de Informática, Universidade Federal do Rio Grande do Sul, Porto Alegre, 1993.

Disponível em: <

http://www.lume.ufrgs.br/bitstream/handle/10183/25522/000060983.pdf?sequence=1>.

Acesso em: 25 Jan. 2011.

REINALDO, Leonardo Monteiro. Abordagem comparativa entre modelos de melhoria

para processo de software. Recife: UFPE, 2006. 71 p. Trabalho de Conclusão de Curso,

Centro de Informática, Universidade Federal de Pernambuco, Recife, 2006. Disponível em:

<http://www.cin.ufpe.br/~tg/2006-2/lmr.pdf>. Acesso em: 05 Abr. 2010.

ROVER, Aires J. Sistemas Legais: Uma solução inteligente para o direito. Disponível em: <

http://www.scribd.com/doc/15097015/Sistemas-especialistas-legais-uma-solucao-inteligente-

para-o-direito>. Acesso em: 14 de Fev. 2011.

RUP. Rational Unified Process. Disponível em: <http://www.wthreex.com/rup/>. Acesso

em: 14 Agost. 2010.

65

SAYAO, Miriam; LEITE, Julio Cesar Sampaio do Prado. Rastreabilidade de Requisitos.

Monografias em Ciência da Computação Nº 20/05. 2005. Disponível em: <

http://www.dbd.puc-rio.br/depto_informatica/05_20_sayao.pdf >. Acesso em: 20 Agost.

2010.

SILVA, Carlo Giovano Pires; SOUZA, Gabriela Telles; BELCHIOR, Arnaldo Dias. Padrões

de Requisitos para Especificação de Casos de Uso em Sistemas de Informação.

Disponível em: < http://www.atlantico.com.br/sites/default/files/biblioteca/padroes-de-

requisitos-para-especificacao-de-casos-de-uso-em-sistemas-de-informacao.pdf>. Acesso em:

14 Agost. 2010.

SILVA, Marco Aurélio Graciotto. Uma ferramenta Web colaborativa para apoiar a

engenharia de requisitos em software livre. São Carlos: USP, 2005. 164 p. Tese de

Mestrado, Instituto de Ciências Matemáticas e de Computação, Universidade de São Paulo,

São Carlos, 2005. Disponível em: < http://www.teses.usp.br/teses/disponiveis/55/55134/tde-

28042006-080550/pt-br.php>. Acesso em: 20 Set. 2010.

SMITH, John. A Comparison of the IBM Rational Unified Process and eXtreme

Programming. 2003. Disponível em:

<ftp://ftp.software.ibm.com/software/rational/web/whitepapers/2003/TP167.pdf>. Acesso em:

12 Agos. 2010.

SOMMERVILLE, Ian. Engenharia de software. 8. ed. São Paulo: Pearson Education do

Brasil, 2008. 552 p.

SWEBOK, Guide to the Software Engineering Body of Knowledge. Disponível em: <

http://www.computer.org/portal/web/swebok >. Acesso em: 10 Ago. 2010.

SZALVAY. Victor. Glossary os Scrum Terms. 2007. Disponível em: <

http://www.scrumalliance.org/articles/39-glossary-of-scrum-terms>. Acesso em: 20 Agost.

2010.

66

WELLS, Don. eXtreme Programming: A gentle introduction. 1999. Disponível em: <

http://www.extremeprogramming.org/>. Acesso em: 12 Agos. 2010.

ZANETTI, David; MONTONI, Mariano; ROCHA, Ana Regina. Benchmarking em

Iniciativas de Melhorias em Processos de Software. Disponível em:

<http://www.cin.ufpe.br/~tg/2006-2/lmr.pdf>. Acesso em: 14 Agost. 2010.

67

ANEXOS I – Questionário utilizado na criação base de conhecimento do SISREQUI

PROCESSO PARA CRIAÇÃO DA BASE DE CONHECIMENTO DO SISREQUI

As respostas das perguntas a seguir, serão utilizadas para a criação da base de conhecimento do

sistema especialista SISREQUI que estou desenvolvendo para o meu trabalho de conclusão de curso.

O SISREQUI é um sistema especialista que terá como missão auxiliar no processo de requisitos de

software.

1) Em um projeto onde os requisitos mudam constantemente, que metodologia você

utilizaria no processo de desenvolvimento?

RUP

Metodologias ágeis

Outro

2) Por quê?

3) Das técnicas de elicitação de requisitos, selecione a que você acha a mais completa? A

elicitação de requisitos se resume à simples transferência de conhecimento das pessoas

para documentos de requisitos.

Entrevistas

Tempestade de idéias (Brainstorm)

Cenários

Etnografia

Mapa Mental

68

Junção de algumas das técnicas descritas acima

4) Você está reunido com vários usuário com o intuito de entender o problema do cliente

e coletar os requisitos necessários para resolução do mesmo. Mas os vários usuários

tem diferentes formas de enxergar o problema e descrever os requisitos. Como você

sairia dessa situação?

5) Qual a melhor maneira de validação dos requisitos? A validação de requisitos tem o

intuito de mostrar que os requisitos atendem realmente ao que o sistema precisa.

Verificar se todos os requisitos coletados estão descritos nos documentos de

requisitos

Verificar se o sistema atende a todas as necessidades dos interessados

Verificar se os novos requisitos não irão conflitar com os requisitos já

existentes

6) O cliente utiliza os artefatos do RUP como forma de validação dos requisitos. E com

no decorrer do processo um novo requisito foi incluindo. Você terá tempo para

desenvolvê-lo, mas não terá como inclui-lo em todos os artefatos que sofrerão

modificações. Como você negociaria com o cliente o tempo para atualizar os

artefatos?

7) Digamos que o cliente não entende nada sobre termos técnicos da área de informática

e você precisa mostra-lo os requisitos coletados, para que o mesmo os valide e aprove.

De que forma você apresentaria os requisitos a este cliente? A validação representa a

atividade em que obtemos o aceite do cliente.

Através de documentos de Casos de Uso (Metodologia RUP)

Diagramas de Casos de uso

69

User Storys (Metodologias ágeis)

Diagrama de Fluxo de Dados (DFD)

Fluxogramas

Outro

8) Que técnicas você utilizaria para ter um total controle no gerenciamento dos

requisitos? Requisitos são por natureza voláteis. Diversos fatores contribuem para sua

instabilidade ao longo do tempo.

Baseline

Rastreabilidade

Outro

9) O que faria se no momento da entrega das novas funcionalidades ao cliente, você

percebesse que faltou um requisito ser implementado. E este requisito é necessário

para o correto funcionamento das demais funcionalidades do sistema?

70

ANEXOS II – Respostas do questionário utilizado na criação base de conhecimento

do SISREQUI

1) Em um projeto onde os requisitos mudam constantemente, que metodologia você

utilizaria no processo de desenvolvimento?

2) Por quê?

“O RUP engessa os processos e faz com que as entregas demorem.”

“Metodologias ágeis trabalham com foco em metas e resultados efetivos, reduzindo o

re-trabalho.”

“São as metodologias que mais se aplicam à requisitos modificados constantemente.”

“RUP por exemplo, engessa demasiadamente todas as etapas (doc e a&p).”

“Devido ao menor impacto de mudança, tanto dos artefatos de desenvolvimento,

quanto no custo. Por que não segue um padrão.”

71

3) Das técnicas de elicitação de requisitos, selecione a que você acha a mais completa? A

elicitação de requisitos se resume à simples transferência de conhecimento das pessoas

para documentos de requisitos.

4) Você está reunido com vários usuários com o intuito de entender o problema do

cliente e coletar os requisitos necessários para resolução do mesmo. Mas os vários

usuários têm diferentes formas de enxergar o problema e descrever os requisitos.

Como você sairia dessa situação?

“Faça os usuários escreverem o que querem, e o mais importante: tenha especialistas

da área de negócio do cliente trabalhando no seu time.”

“Procurando definir um novo padrão para os clientes onde eles tenham um resultado

satisfatório e produtivo de automação.”

“Tomando as rédeas da discussão e destacando algumas idéias, citando pontos

positivos e negativos, implicitamente sugerindo uma delas.”

72

“Coletava todas informações mesmo as divergentes, e no final apresentaria uma

solução os pontos importantes consolidados. Inclusive apresentando o fluxo de

funcionamento na forma que entendi.”

“Entender tudo e tentar a melhor forma de resolução.”

5) Qual a melhor maneira de validação dos requisitos? A validação de requisitos tem o

intuito de mostrar que os requisitos atendem realmente ao que o sistema precisa.

6) O cliente utiliza os artefatos do RUP como forma de validação dos requisitos. E com

no decorrer do processo um novo requisito foi incluindo. Você terá tempo para

desenvolvê-lo, mas não terá como inclui-lo em todos os artefatos que sofrerão

modificações. Como você negociaria com o cliente o tempo para atualizar os

artefatos?

“Ou o prazo para entrega é estendido, ou o cliente ficará com algo incompleto.

Simples assim, e eu não trabalho mais de oito horas por dia a menos que seja muito

bem recompensado por isso.”

73

“Conversa franca com o cliente, contrabalanceando informações boas com

informações ruins.”

“Não há muito o que negociar, é NECESSÁRIO que o requisito seja replicado nos

artefatos, justamente devido à utilização do RUP. A proposta seria basicamente: ou a

atualização será feita no decorrer do processo ou imediatamente antes do

desenvolvimento (o que não é aconselhável).”

“A depender da necessidade do cliente e do grau de importância deste novo requisito,

negociaria uma única entrega com todo o software desenvolvido”.

“Vale ressaltar que se o novo requisito não impactasse no correto funcionamento do

software, sendo apenas informações adicionais, poderíamos sim entregar de forma

particionada.”

7) Digamos que o cliente não entende nada sobre termos técnicos da área de informática

e você precisa mostra-lo os requisitos coletados, para que o mesmo os valide e aprove.

De que forma você apresentaria os requisitos a este cliente? A validação representa a

atividade em que obtemos o aceite do cliente.

74

8) Que técnicas você utilizaria para ter um total controle no gerenciamento dos

requisitos? Requisitos são por natureza voláteis. Diversos fatores contribuem para sua

instabilidade ao longo do tempo.

9) O que faria se no momento da entrega das novas funcionalidades ao cliente, você

percebesse que faltou um requisito ser implementado. E este requisito é necessário

para o correto funcionamento das demais funcionalidades do sistema?

“Devolveria ao cliente todo o dinheiro investido e demitiria o responsável pelo erro.”

“Diria pra ele é fudeu...”

“Jogo de cintura: ou o prazo é esticado para implementação do requisito ou, caso seja

um requisito que não será imediatamente utilizado pelo cliente, entra no escopo de

uma entrega à parte, após a atual entrega.”

“Mais uma vez depende da importância deste requisito para o funcionamento do

sofware.”

75

ANEXOS III – Base de Conhecimento SISREQUI

A seguir, as regras que compõem a base de conhecimento do SISREQUI.

Objetivos:

Para esta situação o mais adequado é

Técnica de Elicitação Requisitos mais adequada

Validação de Requisitos

Técnica de Gerenciamento de requisitos mais adequada

Regras:

REGRA 01

SE Problemas no desenvolvimento do sistema= Sim

ENTÃO Para esta situação o mais adequado é = Verificar se o documento de

Requisitos está claro. CNF [60%]

REGRA 02

SE Projeto Complexo = Sim

E Problemas no desenvolvimento do sistema= Sim

ENTÃO Para esta situação o mais adequado é = Verificar se o documento de

Requisitos está claro. CNF [80%]

REGRA 03

SE Projeto Complexo = Não

OU Requisitos claros = Sim

ENTÃO Para esta situação o mais adequado é = Validar com o cliente o requisito

coletado. CNF [70%]

REGRA 04

SE NÃO Documento de requisito abordando todos os requisitos = Sim

ENTÃO Validação dos requisitos = Leitura do documento de requisitos. CNF

[40%]

76

REGRA 05

SE Requisitos claros = Não

E Documento de requisito abordando todos os requisitos = Sim

OU dificuldades na comunicação entre cliente e analista = Sim

ENTÃO Técnica de Elicitação Requisitos mais adequada = Etnografia. CNF

[80%]

REGRA 06

SE NÃO Cliente tem certeza sobre os Requisitos = Sim

E Envolvidos no projeto com total entendimento = Não

ENTÃO Técnica de Elicitação Requisitos mais adequada = Tempestade de idéias.

CNF [85%]

REGRA 07

SE NÃO Cliente tem certeza sobre os Requisitos = Não

OU contato direto com cliente = Não

ENTÃO Técnica de Elicitação Requisitos mais adequada = Cenários. CNF [70%]

REGRA 08

SE NÃO contato direto com cliente = Sim

E Envolvidos no projeto com total entendimento = Sim

OU dificuldades na comunicação entre cliente e analista = Não

ENTÃO Técnica de Elicitação Requisitos mais adequada = Entrevista. CNF

[70%]

REGRA 09

SE novas solicitações = Sim

E conhecimento dos requisitos = Não

OU conhecimento dos requisitos = Desconhecido

ENTÃO Técnica de Gerenciamento de requisitos mais adequada =

Rastreabilidade de requisitos. CNF [90%]

REGRA 10

77

SE novas solicitações = Não

E conhecimento dos requisitos = Sim

E cliente tem certeza sobre os requisitos = Sim

ENTÃO Validação = Verificar se a descrição dos requisitos está entendível. CNF

[90%]

REGRA 11

SE novas solicitações = Desconhecido

E requisitos claros = Sim

OU projeto complexo = Desconhecido

E dificuldades na comunicação entre cliente e analista = Desconhecido

ENTÃO Técnica de Elicitação Requisitos mais adequada = Cenários. CNF [80%]

REGRA 12

SE projeto complexo = Sim

E Envolvidos no projeto com total entendimento = Sim

E Requisito invalida outro requisito = Sim

ENTÃO Para esta situação o mais adequado é = Negociar mais tempo com o

cliente. CNF [80%]

REGRA 13

SE Documento de requisitos criado = Sim

E Requisitos validados = Não

ENTÃO Validação de requisitos = Criar um mapa mental com todos os requisitos.

CNF [70%]

REGRA 14

SE Documento de requisitos criado = Sim

E Requisitos validados = Não

ENTÃO Validação de requisitos = Criar um mapa mental com todos os requisitos.

CNF [70%]

REGRA 15

SE Cliente conhecimento Técnico = Não

78

OU Documento de requisitos criado = Desconhecido

ENTÃO Para esta situação o mais adequado é = Criar o documento de requisitos.

CNF [70%]

REGRA 16

SE Requisitos estáticos = Não

E Conhecimento dos requisitos = Não

OU dificuldades na comunicação entre cliente e analista = Desconhecido

ENTÃO Técnica de Elicitação Requisitos mais adequada = Etnografia. CNF

[70%]

REGRA 17

SE Requisitos estáticos = Sim

OU Conhecimento dos requisitos = Sim

OU dificuldades na comunicação entre cliente e analista = Não

OU Projeto complexo = Não

E Requisitos validados = Desconhecido

ENTÃO Validação = Verificar se a descrição dos requisitos está entendível. CNF

[70%]

REGRA 18

SE Projeto complexo = Sim

OU NÃO Requisito complexo = Sim

E Requisito depende outro requisito = Sim

ENTÃO Técnica de Gerenciamento de requisitos mais adequada = Baseline dos

requisitos. CNF [60%]

REGRA 19

SE Projeto complexo = desconhecido

E Requisito depende outro requisito = Não

E Requisito invalida outro requisito = Sim

ENTÃO Para esta situação o mais adequado é = Negociar mais recursos com o

cliente. CNF [60%]

79

REGRA 20

SE Requisito depende outro requisito = Desconhecido

E Requisito invalida outro requisito = Desconhecido

ENTÃO Técnica de Gerenciamento de requisitos mais adequada =

Rastreabilidade de requisitos. CNF [80%]

REGRA 21

SE Requisito invalida outro requisito = Não

E NÃO Novas solicitações = Sim

OU Envolvidos no projeto com total entendimento = Desconhecido

ENTÃO Validação de Requisitos = Verificar se a descrição dos requisitos está

entendível. CNF [80%]

REGRA 22

SE Problemas no desenvolvimento do sistema = Não

E Requisitos claros = desconhecido

ENTÃO Para esta situação o mais adequado é = criar documento de requisitos.

CNF [50%]

REGRA 23

SE Problemas no desenvolvimento do sistema = Desconhecido

E Documento de requisito abordando todos os requisitos = Não

ENTÃO Para esta situação o mais adequado é = Refazer documento de requisitos.

CNF [70%]

REGRA 24

SE Documento de requisito abordando todos os requisitos = Desconhecido

E Envolvidos no projeto com total entendimento = Não

ENTÃO Para esta situação o mais adequado é = Verificar se o documento de

Requisitos está claro. CNF [60%]

REGRA 25

SE Conhecimento dos requisitos = Desconhecido

E cliente tem certeza sobre os requisitos = Não

80

ENTÃO Técnica de Elicitação Requisitos mais adequada = etnografia. CNF [90

%]

REGRA 26

SE novas solicitações = Não

E Cliente conhecimento Técnico = Sim

ENTÃO validação = Leitura do documento de requisitos. CNF [50%]

REGRA 27

SE Requisitos validados = Sim

E Requisitos estáticos = desconhecido

ENTÃO Técnica de Gerenciamento de requisitos mais adequada =

Rastreabilidade de requisitos. CNF [60%]

REGRA 28

SE Cliente conhecimento Técnico = Desconhecido

E projeto complexo = Não

ENTÃO Técnica de Elicitação Requisitos mais adequada = Cenários. CNF [70%]

REGRA 29

SE cliente tem certeza sobre os requisitos = Desconhecido

E Documento de requisitos criado = Não

ENTÃO Técnica de Elicitação Requisitos mais adequada = Etnografia. CNF

[80%]

REGRA 30

SE Requisitos validados = Sim

E análise e negociação de requisitos concluída = Não

ENTÃO Validação de requisitos = Checklist com questões sobre os requisitos.

CNF [80%]

REGRA 31

SE Sistema aborda as necessidades dos clientes = Sim

E O Sistema irá realmente suporta a automatização do trabalho = Não

81

ENTÃO Para esta situação o mais adequado é = Refazer documento de requisitos.

CNF [60%]

REGRA 32

SE Sistema aborda as necessidades dos clientes = Desconhecido

E O cliente já aprovou o protótipo = Não

ENTÃO Validação de requisitos = Checklist com questões sobre os requisitos.

CNF [50%]

REGRA 33

SE análise e negociação de requisitos concluída = Sim

E O Sistema irá realmente suporta a automatização do trabalho = Desconhecido

ENTÃO Validação de requisitos = Checklist com questões sobre os requisitos.

CNF [75%]

REGRA 34

SE O cliente já aprovou o protótipo = Sim

E Sistema aborda as necessidades dos clientes = Não

ENTÃO Para esta situação o mais adequado é = Refazer documento de requisitos.

CNF [70%]

REGRA 35

SE análise e negociação de requisitos concluída = Desconhecido

OU O cliente já aprovou o protótipo = Desconhecido

E O Sistema irá realmente suporta a automatização do trabalho = Sim

ENTÃO Validação de requisitos = Verificar se o sistema está atendendo a todas

as das necessidades dos interessados. CNF [80%]

REGRA 36

SE O cliente já aprovou o protótipo = Não

E O Sistema irá realmente suporta a automatização do trabalho = Não

ENTÃO Para esta situação o mais adequado é = Verificar se o documento de

Requisitos está claro. CNF [50%]

82

Para esta situação o mais adequado é = Refazer documento de requisitos.

CNF [50%]

REGRA 37

SE Cliente tem certeza sobre os Requisitos = Não

E Projeto Complexo = Não

E Problemas no desenvolvimento do sistema= Sim

OU análise e negociação de requisitos concluída = Não

ENTÃO Técnica de Elicitação Requisitos mais adequada = Etnografia. CNF

[80%]

Técnica de Elicitação Requisitos mais adequada = Cenários. CNF [80%]

Técnica de Elicitação Requisitos mais adequada = Entrevistas [60%]

REGRA 38

SE Cliente tem certeza sobre os Requisitos = Não

E Envolvidos no projeto com total entendimento = Não

E dificuldades na comunicação entre cliente e analista = Sim

ENTÃO Técnica de Elicitação Requisitos mais adequada = Tempestade de idéias.

CNF [50%]

Para esta situação o mais adequado é = Negociar mais tempo com o

cliente. CNF [50%]

Para esta situação o mais adequado é = criar documento de requisitos.

CNF [50%]

REGRA 39

SE análise e negociação de requisitos concluída = Sim

E O cliente já aprovou o protótipo = Sim

E Novas solicitações = Sim

E Requisito invalida outro requisito = Desconhecido

OU Requisito depende outro requisito = Desconhecido

ENTÃO Técnica de Gerenciamento de requisitos mais adequada = Baseline dos

requisitos. CNF [60%]

Técnica de Gerenciamento de requisitos mais adequada = Efetuar a

rastreablidade dos requisitos. CNF [60%]

83

Para esta situação o mais adequado é = Refazer documento de requisitos.

CNF [70%]

REGRA 40

SE requisitos claros = Sim

OU Conhecimento dos requisitos = Sim

E Requisitos validados = Sim

E Novas solicitações = Sim

E requisitos claros = Não

E Conhecimento dos requisitos = Desconhecido

ENTÃO Técnica de Gerenciamento de requisitos mais adequada = Efetuar a

rastreablidade dos requisitos. CNF [60%]

Técnica de Elicitação Requisitos mais adequada = Tempestade de idéias.

CNF [40%]

REGRA 41

SE análise e negociação de requisitos concluída = Sim

OU O cliente já aprovou o protótipo = Sim

E O Sistema irá realmente suporta a automatização do trabalho = Sim

E Novas solicitações = Sim

ENTÃO Técnica de Elicitação Requisitos mais adequada = Tempestade de idéias.

CNF [60%]

Técnica de Elicitação Requisitos mais adequada = Etnografia. CNF

[60%]

REGRA 42

SE O cliente já aprovou o protótipo = Desconhecido

E O Sistema irá realmente suporta a automatização do trabalho = Sim

ENTÃO Validação de requisitos = Verificar se o sistema está atendendo a todas

as das necessidades dos interessados. CNF [40%]

REGRA 43

SE O Sistema irá realmente suporta a automatização do trabalho = Sim

E Sistema aborda as necessidades dos clientes = Sim

84

E Documento de requisito abordando todos os requisitos = Não

ENTÃO Para esta situação o mais adequado é = Refazer documento de requisitos.

CNF [95%]

REGRA 44

SE O cliente já aprovou o protótipo = Desconhecido

E Documento de requisito abordando todos os requisitos = Sim

ENTÃO Validação de requisitos = Verificar se o sistema está atendendo a todas

as das necessidades dos interessados. CNF [70%]

REGRA 45

SE Projeto Complexo = Não

E Requisitos validados = Sim

E novas solicitações = Sim

E Projeto Complexo = Sim

ENTÃO Para esta situação o mais adequado é = Negociar mais recursos com o

cliente. CNF [80%]

Para esta situação o mais adequado é = Negociar mais tempo com o

cliente. CNF [80%]

REGRA 46

SE contato direto com cliente = Sim

E Cliente tem certeza sobre os Requisitos = Sim

E dificuldades na comunicação entre cliente e analista = Sim

ENTÃO Técnica de Elicitação Requisitos mais adequada = Entrevistas. CNF

[80%]

Técnica de Elicitação Requisitos mais adequada = Cenários. CNF [80%]

REGRA 47

SE Documento de requisito abordando todos os requisitos = Sim

E Cliente tem certeza sobre os Requisitos = Sim

E Cliente conhecimento Técnico = Não

ENTÃO Validação dos requisitos = Protótipo do sistema. CNF [40%]

85

Validação dos requisitos = Leitura do documento de requisitos. CNF

[50%]

REGRA 48

SE Documento de requisito abordando todos os requisitos = Desconhecido

OU Cliente tem certeza sobre os Requisitos = Sim

E Cliente conhecimento Técnico = Sim

ENTÃO Validação dos requisitos = Leitura do documento de requisitos. CNF

[80%]

REGRA 49

SE Cliente tem certeza sobre os Requisitos = Desconhecido

OU Cliente conhecimento Técnico = Desconhecido

E Documento de requisitos criado = Não

ENTÃO Técnica de Elicitação Requisitos mais adequada = etnografia. CNF [90

%]

Para esta situação o mais adequado é = Criar o documento de requisitos.

CNF [90%]

REGRA 50

SE Requisitos validados = Sim

E análise e negociação de requisitos concluída = Não

E O Sistema irá realmente suporta a automatização do trabalho = Não

E Novas solicitações = Sim

ENTÃO Para esta situação o mais adequado é = Negociar mais tempo com o

cliente. CNF [70%]

Técnica de Elicitação Requisitos mais adequada = Etnografia. CNF [90%]

Para esta situação o mais adequado é = Validar com o cliente o requisito

coletado. CNF [70%]