fds@inf.furb.br Karly Schubert Vargas (FURB) karly@inf.furb.br Christian Rogrio Cmara de Abreu (FURB) crca@inf.furb.br Resumo. O presente artigo apresenta uma ferramenta para o gerenciamento de requisitos via web, cuja nfase est no uso de matrizes de rastreabilidade como forma de implementar ligaes entre requisitos de software. A atravs destas ligaes possvel apresentar ao analista as conseqncias de uma alterao ou excluso de requisitos no projeto. Palavras-chave: Gerenciamento de Requisitos, Rastreabilidade. 1 Introduo O software de computadores tornou-se uma fora motora. o motor que dirige a tomada de deciso nos negcios. Serve de base moderna investigao cientfica e s solues de problemas de engenharia. um fator chave que diferencia os produtos e servios modernos. Est embutido em sistemas de todas as naturezas: de transportes, mdicos, de telecomunicaes, militares, de processos industriais, de produtos de escritrio,... a lista quase sem fim (Pressman, 2002, p.3). A tendncia um crescimento ainda maior, pois a busca de melhorias no desenvolvimento de produtos e servios vem exigindo um grau cada vez maior de automao. Devido a isto o desenvolvimento de software tem se tornado mais complexo por atingir reas que demandam de um conhecimento mais aprofundado. Com este aumento da complexidade dos projetos de software, tornou-se imprescindvel um completo acompanhamento e planejamento de todas as etapas do projeto, como forma de garantir que o software atenda as necessidades levantadas. Dentro das diversas reas da engenharia de software, destaca-se a rea de engenharia de requisitos que Sommerville (2003) define como o processo de descobrir, analisar, documentar e verificar as funes e restries de um sistema. Esta etapa de fundamental importncia, pois faz o levantamento dos objetivos do projeto, descrevendo quais as funes que o software dever possuir, bem como as restries de cada funo. Caso ocorra algum problema nesta etapa, falhas iro ocorrer durante o desenvolvimento do software. Mas existe uma dificuldade para este acompanhamento quando as equipes de desenvolvimento e os analistas possuem uma distncia geogrfica que os separa. Pois uma alterao tem que ser vista por todos os envolvidos no momento em que ocorre para que seja mantida a consistncia das informaes. Para ajudar nisso, surge internet como forma de interligar todas as pessoas envolvidas no projeto do software. Este artigo tem por objetivo apresentar uma ferramenta para o gerenciamento de requisitos com o diferencial de que sua utilizao feita via web, possibilitando que equipes alocadas em locais diferentes possam ter sempre a sua disposio, informaes atualizadas. Alm disto, a ferramenta oferece flexibilidade para a confeco das matrizes de rastreabilidade, e permite a visualizao do impacto das alteraes de determinados requisitos sobre os requisitos do projeto.
2 Requisitos de Software 2.1 Requisitos Segundo Peters (2001) um requisito de software uma descrio dos principais recursos de um produto de software, seu fluxo de informaes, comportamento e atributos. Em suma, um requisito de software fornece uma estrutura bsica para o desenvolvimento do produto de software. Os requisitos mostram as caractersticas que o cliente deseja no produto final,. Definem os critrios de aceitao de um produto, e so captados na fase de elicitao do projeto, onde so levantadas todas as necessidades do sistema. Seu levantamento deve ser feito de forma bastante cuidadosa, consultando a todas as pessoas que estaro envolvidas no uso do produto final. Com isso possvel evitar vrios problemas posteriores ao desenvolvimento do software. Porm, mesmo que seu levantamento seja feito de forma cuidadosa, um problema comum a instabilidade dos requisitos, uma vez que os mesmos sofrem alteraes no decorrer do desenvolvimento. Aqui entra a importncia de haver uma ferramenta que permita uma manipulao destes requisitos, podendo haver um controle de quais so os requisitos atuais, quem responsvel pelo requisito e quais os seus atributos. Os requisitos podem ser agrupados em trs principais tipos, sendo que sua nomenclatura varia de acordo com o autor (Peters, 2001): a) Funcional (aes principais): Descreve as atividades do sistema, o que ele deve fazer. b) Comportamental (atividades de controle): Descreve a hierarquia das funes e atividades do sistema, faz o controle do sistema. c) No-Comportamental (atributos): Descreve as regras de funcionamento e condies necessrias para a execuo de algumas funes. Trata tambm da garantia da qualidade. Independente de sua classificao, um requisito possui atributos que definem as caractersticas do requisito. Os atributos especificam a prioridade, o status do requisito e seu autor, entre outras informaes. Mas no basta somente possuir a descrio dos requisitos, preciso criar ligaes entre eles. Estas ligaes permitem a anlise do grau de influncia que uma alterao pode causar no restante do projeto. Aqui entra a rastreabilidade dos requisitos. 2.2 Rastreabilidade Existem muitas relaes entre requisitos e outros requisitos entre os requisitos e o projeto do sistema. H tambm elos entre os requisitos e as razes bsicas da proposio desses requisitos. (Sommerville, 2003, p. 120). Uma parte crtica do gerenciamento de alteraes a avaliao do impacto da mudana no restante do sistema. Se a mudana proposta enquanto os requisitos esto sendo desenvolvidos, deve ser identificado como a alterao afeta outros requisitos. Se a alterao proposta enquanto o sistema est em implementao, o impacto de alterao envolve verificar como a alterao afeta os requisitos, o design do sistema e sua implementao. Se a alterao proposta depois que o sistema foi colocado em operao, deve haver tambm uma verificao adicional a fim de identificar como todos os stakeholders do sistema podem ser afetados pela alterao. Marquioni (2004) define alguns tipos de rastreabilidade, mostrados na tabela 1.
Tipo de rastreabilidade Descrio Requisitos Fontes Link do requisito s pessoas ou documentos que especificaram o requisito. Requisitos Razo Link do requisito com uma descrio de porque foi especificado. Pode ser uma destilao de informaes de vrias fontes. Requisitos Requisitos Link do requisito com outros requisitos que sejam, de alguma maneira, dependentes dele. Deve ser um link de mo dupla (depende e dependente de). Requisitos Arquitetura Link do requisito com os subsistemas onde estes requisitos esto implementados. Particularmente importante se os subsistemas estiverem sendo desenvolvidos por subcontratados diferentes. Requisitos Design Link do requisito com hardware ou componentes de software especficos no sistema que so usados para implementar o requisito. Requisitos Interface Link do requisito com as interfaces de sistemas externos que sero usados na proviso dos requisitos. Tabela 1: Tipos de rastreabilidade Para facilitar este rastreamento de requisitos, freqentemente so utilizadas tabelas de rastreabilidade, que criam associaes entre os requisitos. Uma forma de visualizao grfica desta rastreabilidade uma matriz de rastreabilidade, que mostra a ligao entre os requisitos, onde a linha dependente da coluna e a coluna depende da linha. Est matriz demonstra de que forma um requisito influencia em outro, possibilitando uma anlise do impacto de uma alterao do requisito. Na ferramenta desenvolvida, foi implementado a rastreabilidade do tipo Requisito-Requisito, e utilizada como forma de visualizao a matriz de rastreabilidade, com a utilizao de flechas indicando a direo da dependncia. A tabela 2 apresenta um exemplo de uma matriz de rastreabilidade retirada do artigo de Marquioni (2004).
R1 R2 R3 R4 R5 R6 R1
X X
R2
X X R3
X X
R4
X
R5
X R6
Tabela 2: Matriz de rastreabilidade No exemplo, R1 dependente de R3 e R4; R2 dependente de R5 e R6, etc. Se for proposta uma alterao no requisito R4, a leitura da coluna R4 aponta que R1 e R3 dependem de R4. Deve ser avaliado com isso o impacto em R1 e R3 com relao alterao proposta a R4.
O volume de dados que sero controlados pela matriz significativo, por isso este tipo de controle no recomendado para um projeto muito grande, nestes casos deve optar-se por outra forma de visualizao, como uma lista de rastreabilidade (Marquioni, 2004). 3 Desenvolvimento da Ferramenta A ferramenta desenvolvida, denominada Requisite Online, prope-se a auxiliar analistas de sistema no gerenciamento de requisitos de projetos de software. Para isto, a ferramenta permite o cadastramento de projetos de software. Em cada projeto, devem ser cadastrados os requisitos do mesmo. Estes requisitos so agrupados de acordo com seus tipos (por exemplo: requisitos funcionais, requisitos no funcionais, ...), tipos estes que tambm so cadastrados pelo analista. Tambm possvel montar diversas matrizes de rastreabilidade para um mesmo projeto, sendo estas matrizes definidas em funo dos tipos de requisitos. A ferramenta tambm disponibiliza ao analista um relatrio com as informaes cadastradas no projeto (requisitos e matrizes). Na figura 1 apresentado o diagrama de casos de uso com a representao das funcionalidades do sistema, e na seqncia, um descritivo das mesmas. Requisitos Montar mat riz Projetos Tipo de requi sito Efeitos alteraes Anali sta Vi sual izar Relat ri o
Figura 1: Diagrama de casos de uso Projetos: Este um caso de uso secundrio e trata do cadastro de um novo projeto. Tipo de requisito: Este um caso de uso secundrio e trata do cadastro dos tipos de requisitos (funcionais, no funcionais, regras de negcio, etc.). O cadastro de tipos de requisitos pode ser feito de duas formas: a primeira o cadastro de um tipo geral, que ser utilizado em todos os projetos; a segunda forma o cadastro de um tipo de requisito especfico para um projeto. Requisitos: Este um caso de uso secundrio, e s ocorre aps o caso de uso Projetos. Trata do cadastro dos requisitos do projeto de software e seus atributos. Montar matriz: Para este caso acontecer necessrio que tenham ocorrido os seguintes casos de uso: Projetos, Requisitos, Tipo de requisito. Trata da montagem da matriz de rastreabilidade,
feita com base nos requisitos cadastrados. O analista define quais tipos de requisitos iro compor a rastreabilidade, em seguida define a dependncia entre os requisitos. A matriz pode ser visualizada aps sua confeco. O analista pode montar quantas matrizes achar necessrio. Efeitos alteraes: Este caso s acontece aps a ocorrncia do caso de uso Montar matriz. Com a matriz de rastreabilidade montada, o analista pode simular alteraes nos requisitos e verificar suas conseqncias. Visualizar Relatrio: Este caso s ocorre aps o caso de uso Projetos. Neste caso o analista pode visualizar e imprimir as informaes sobre o projeto, sendo elas: nome, requisitos e matriz(es) de rastreabilidade do projeto. 3.1 Ferramentas Utilizadas Para o desenvolvimento da ferramenta, foi utilizada a linguagem de programao PHP em conjunto com JavaScript. Para persistncia dos dados, utilizou-se o sistema gerenciador de banco de dados MySQL. 3.1.1 PHP Soares (2001) afirma que PHP uma combinao de linguagem de programao e servidor de aplicaes. Voc pode programar em PHP como em qualquer outra linguagem, definindo variveis, criando funes, realizando loops, enfim tudo o que necessrio no mundo da programao. Mas o que realmente difere PHP das outras linguagens de programao a sua capacidade de interagir com o mundo WEB, transformando pginas estticas em verdadeiras fontes de informao. As caractersticas que foram observadas para a escolha da linguagem de programao so apresentadas por Soares (2001), dentre as quais cita-se que o PHP roda no servidor, portvel, possui cdigo nativo para muitos bancos de dados, entre eles o MySQL e pode ser embutido no HTML. 3.1.2 MySQL Conforme Soares (2001), o MySQL um gerenciador de banco de dados mais utilizado no mundo Linux, seno for o mais utilizado, pois uma ferramenta muito poderosa, segura e fcil de utilizar. Alm disto, o MySQL gratuito.[...] Uma das vantagens do MySQL a sua disponibilizao em vrias plataformas. Os fatores determinantes na escolha do MySQL para persistncia dos dados foram a sua gratuidade e facilidade de uso. A gratuidade garante que nenhum custo precise ser criado ou mantido para utilizao do sistema, e a facilidade de uso permitiu que o desenvolvimento se desse de forma consistente e rpida. 3.1.3 JavaScript De acordo com Feather et al (1997), JavaScript uma linguagem de script (ou roteiro) orientada a objetos, usada para desenvolver aplicaes clientes e para Intranets/Internet. Recebe comandos de uma pgina HTML e, em resposta, pode executar uma ao diferente. No desenvolvimento desta ferramenta, JavaScript foi utilizado para validaes em campos de entrada de dados e tambm para exibio de dilogos de confirmao, quando necessrio.
3.2 Implementao Na figura 2, temos o diagrama entidade-relacionamento das entidades desenvolvidas para a persistncia dos dados e implementao da ferramenta.
AGREGA POSSUI REQ_DESTINO REQ_ORIGEM PROPOE COMPOSICAO_LINHAS COMPOSICAO_COLUNAS TIPO_COLUNAS TIPO_LINHAS PERTENCE REVISA PARTICIPA REVISADO DEFINE REQUISITO CD_REQUISITO DS_REQUISITO DIFICULDADE ESTABILIDADE NM_REQUISITO PRIORIDADE STATUS <pi > N5 TXT1024 TXT TXT TXT TXT TXT <M> <M> REQUISITO_PK <pi > PROJETO CD_PROJETO DS_PROJETO DT_INICIO DT_FIM <pi > N5 TXT512 D D <M> <M> <M> <M> PROJETO_PK <pi > TIPO_REQUISITO_PROJETO CD_TIPO_REQ DS_TIPO_REQ <pi > I VA100 <M> <M> TIPO_REQUISITO_PK <pi> RELACIONAMENTO MATRIZ CD_MATRIZ DS_MATRIZ <pi > I VA100 <M> <M> MATRIZ_PK <pi > TIPO_REQ_LINHAS_MATIZ TIPO_REQ_COLUNAS_MATRIZ TP_REQUISITO_SISTEMA CD_REQ DS_TIPO_REQ <pi > I VA100 <M> TP_REQUISITO_SISTEMA_PK <pi > AUTOR CD_AUTOR NM_AUTOR <pi > I TXT <M> AUTOR_PK <pi > REVISAO CD_REVISAO ETIQUETA DS_REVISAO DT_REVISAO HR_REVISAO <pi > I TXT TXT D T <M> REVISAO_PK <pi >
Figura 2: Diagrama entidade-relacionamento da ferramenta desenvolvida. Para cada projeto cadastrado, armazenado na entidade PROJETO, seu nome, sua data de inicio, e sua data de concluso. Um projeto agrega vrios requisitos, e estes so mantidos na entidade REQUISITO. Cada requisito composto dos seguintes atributos: nome, autor (do requisito e revises), prioridade (nvel de importncia do requisito), status (estado em que o requisito se apresenta), dificuldade (dificuldade no desenvolvimento do requisito), estabilidade (estabilidade que apresenta o requisito em relao ao projeto), descrio e revises (alteraes efetuadas no requisito, se houverem).
Cada requisito cadastrado agrupado em um determinado tipo de requisito. Um projeto pode apresentar vrios tipos de requisitos, e estes so armazenados na entidade TIPO_REQUISITO_PROJETO. O analista tem ainda a possibilidade de cadastrar no sistema os tipos de requisitos que o mesmo considera padro para todo novo projeto (criando tipos de requisitos globais). Estes tipos so salvos na entidade TP_REQUISITO_SISTEMA, e a cada novo projeto criado o sistema realiza a insero automtica destes tipos de requisitos no novo projeto. Para um projeto, o analista pode propor/montar diversas matrizes de rastreabilidade. Para cada nova matriz criada uma entrada na entidade MATRIZ. Estas matrizes so montadas em funo dos tipos de requisitos que so selecionados para suas linhas e para suas colunas (por exemplo, requisitos funcionais versus requisitos no funcionais). Estes tipos, so armazenados nas entidades TIPO_REQ_LINHAS_MATRIZ e TIPO_REQ_COLUNAS_MATRIZ, respectivamente. A implementao de matrizes de rastreabilidade desta maneira, alm de permitir grande flexibilidade ao analista possibilitando a construo de diversas matrizes de rastreabilidade, elimina a necessidade de que cada novo requisito seja adicionado manualmente na(s) matriz(es), pois a mesma relaciona tipos de requisitos, e no simplesmente requisitos. 4 O Requisite Online A ferramenta desenvolvida acessada atravs de um browser, sendo necessrio que o usurio esteja conectado a internet durante o uso da ferramenta. O usurio, depois de conectado a ferramenta, pode navegar pelo browser e executar todas as funes do sistema. Aps realizar todas as suas tarefas, o usurio pode desconectar-se da ferramenta apenas fechando o browser. O Requisite Online est disponvel na internet, no seguinte endereo: http://campeche.inf.furb.br/phps/crca/requisitos/conteudo. 4.1 Comeando seu uso A figura 3 mostra a tela inicial, que vista pelo usurio assim que o mesmo abre a ferramenta.
Figura 3: Tela inicial Nesta tela, o analista cria um novo projeto e define tipos de requisitos globais para os projetos. Os tipos de requisitos globais sero inseridos automaticamente em todo novo projeto. A
grande vantagem do uso destes tipos de requisitos globais, que isto torna possvel padronizar os tipos de requisitos de todos os novos projetos desenvolvidos. Para iniciar um novo projeto o analista deve selecionar Novo Projeto, informando um nome e a data de inicializao do mesmo, aps este passo o projeto ser criado na rea de Projetos Cadastrados, podendo ser iniciada sua manipulao. 4.2 Principais Funcionalidades Nas sees a seguir, sero apresentadas as principais funcionalidades da ferramenta e de que forma elas podem ser utilizadas. 4.2.1 Cadastro de requisitos O primeiro passo de um projeto o cadastro dos requisitos. Estes requisitos devem representar as necessidades do software que esta sendo gerenciado. Cada requisito possui um tipo especfico, tendo o analista a possibilidade de cadastrar os tipos que considerar necessrio, no sendo limitado aos tipos apresentados por Peters (2001). A figura 4 Apresenta a tela para o cadastro do requisito. solicitado um nome para o mesmo, o autor do requisito, a prioridade, o status do desenvolvimento, o grau de dificuldade, a estabilidade, e uma descrio completa do requisito. A tela a mesma para todo novo requisito, independente de tipo.
Figura 4: Cadastro de requisito 4.2.2 Matriz de Rastreabilidade A forma escolhida para gerenciar os requisitos nesta ferramenta foi o uso de matriz de rastreabilidade, onde o analista cria ligaes entre os requisitos. O tipo de rastreamento utilizado
o de requisitos-requisitos, ou seja, vnculo do requisito com outros requisitos que sejam, de alguma forma dependentes dele (Marquioni, 2004). O sistema gera uma matriz de rastreabilidade simples, que permite registrar as dependncias entre os requisitos. Na primeira linha e coluna desta matriz so dispostos os nomes dos requisitos. A dependncia entre os requisitos registrada com um clique na clula de interseco dos requisitos. Para visualizao das dependncias, so utilizadas setas que indicam qual(is) o(s) requisito(s) que dependem de um requisito e quais o(s) requisito(s) que so dependentes deste requisito. A leitura da dependncia deve ser feita em funo da direo da seta. Por exemplo, se a seta parte do requisito A e aponta para o requisito B, l-se que o requisito B dependente do requisito A. Devido a visualizao da rastreabilidade ser feita com matriz de rastreabilidade, deve- se somente gerenciar projetos com um nmero pequeno de requisitos, recomendvel no mximo 250. (Marquioni, 2004). A figura 5A mostra o processo para a criao de uma matriz. necessrio um nome e quais tipos de requisitos sero rastreados. Os requisitos dos tipos escolhidos so automaticamente includos na matriz de rastreabilidade. A figura 5B mostra a matriz que o analista pode criar, com o relacionamento entre os requisitos. Depois de montada, possvel realizar simulaes com a matriz para verificar o efeito de alterao de requisitos. (A) (B) Figura 5: Montando Matriz de rastreabilidade A figura 6 mostra a utilizao prtica da matriz de rastreabilidade. Trata-se da possibilidade de verificar os efeitos de alteraes em requisito(s). Para isto, o analista seleciona, a partir da lista de requisitos que compem uma matriz, quais destes requisitos sero alterados (figura 6A). Em seguida, o sistema apresenta a visualizao, na forma de matriz, dos impactos (em outros requisitos) que a alterao ir causar. Estes impactos so indicados com cores, onde a coluna/linha do requisito alterado colorida de amarelo, e a coluna/linha do requisito dependente do alterado colorida de vermelho. A clula de interseco entre os requisitos colorida de laranja (figura 6B).
(A) (B) Figura 6: Simulao de alterao de requisito 5 Concluses A linguagem PHP alm de ser de fcil manipulao mostrou-se bastante eficiente e eficaz no que diz respeito ao tempo de resposta nas requisies ao banco de dados. O gerenciamento de requisitos poder ser realizado remotamente, ou seja, o analista no depende de sua estao de trabalho para executar as atividades que necessita, no havendo portanto, limitaes geogrficas para uma equipe de desenvolvimento. Alm da vantagem de ser independente de plataforma. A ferramenta desenvolvida possui algumas vantagens em relao a outras ferramentas disponveis no mercado. Uma delas o fato de sua utilizao ser via web, proporcionando uma maior agilidade no gerenciamento dos requisitos. Outra vantagem o fato de que possvel construir diversas matrizes de rastreabilidade, e suas linhas e colunas no ficam restritas a um nico tipo de requisito, podendo assim, rastrear diferentes tipos de requisitos em uma nica matriz, o que no permitido na ferramenta Rational RequisitePro. Com a construo de diversas matrizes de rastreabilidade, surge a possibilidade de gerenciar um nmero maior de requisitos, superando o limite de 250 requisitos por projeto. O uso de uma ferramenta para o gerenciamento dos requisitos auxilia o analista na organizao e controle dos requisitos. Porm fundamental lembrar a importncia da etapa de elicitao dos requisitos pois, em nada adianta uma boa ferramenta de gerenciamento se os requisitos no forem captados de forma correta, refletindo todas as funes que o sistema deve realizar.
Referncias FEATHER, Stephen; CASSADY-DORION, Luke. JavaScript em exemplos. So Paulo : Makron Books, 1997. xxv, 357 p. MARQUIONI, Eduardo. Os processos tpicos da engenharia de requisitos parte 5, So Paulo, 2004. Disponvel em <http://www.choose.com.br/infochoose/artigos/45art03.htm>. Acessado em 8 de julho de 2004. PETERS, James F; PEDRYCZ, Witold. Engenharia de software : teoria e prtica. Rio de Janeiro: Campus, 2001. xvii, 602 p. PRESSMAN, Roger S. Engenharia de software. 5.ed. So Paulo : McGraw-Hill, 2002. xxvii, 843 p. SOARES, Walace. MySQL : conceitos e aplicaes. So Paulo : rica, 2001. 294 p. SOMMERVILLE, Ian. Engenharia de software. 6.ed. So Paulo : Addison Wesley, 2003. xiv, 592 p.