You are on page 1of 24

C&L: Uma Ferramenta de Apoio Engenharia de Requisitos

Lyrene Fernandes da Silva


e-mail: lyrene@inf.puc-rio.br

Julio Cesar Sampaio do Prado Leite

e-mail: julio@inf.puc-rio.br

Karin Koogan Breitman

e-mail: karin@inf.puc-rio.br
PUC-RioInf.MCC25/04 Julho, 2004
Abstract. This paper presents an experimental tool to support requirements engineering activities. This tool,
called C&L, is based on two techniques to model software requirements, Scenarios and the Extend Lexicon
of the Language. C&L supports a cooperative process to edit Scenarios and the Lexicon. It aims to maintain
the traceability between requirements and code. C&L is one of the Requirements Engineering Groups
research projects at PUC-Rio
Keywords: Requirements engineering, Scenarios, Lexicon, Traceability.
Resumo. Este trabalho apresenta uma ferramenta experimental para dar apoio engenharia de requisitos.
Essa ferramenta, denominada C&L, est centrada nas tcnicas de modelagem de requisitos, Cenrios e Lxico
Ampliado da Linguagem (LAL). C&L uma ferramenta para edio cooperativa de cenrios e lxico
preocupada com a rastreabilidade entre requisitos e cdigo. Esta ferramenta parte de um projeto de pesquisa
do grupo de Engenharia de Requisitos da PUC-Rio. Neste projeto temos estudado algumas tcnicas baseadas
em cenrios e lxicos de maneira a construir uma ferramenta que d apoio ao desenvolvimento de software
guiado por requisitos
Palavras-chave: Engenharia de requisitos, Cenrios, Lxico, Rastreabilidade.
1. Introduo
A atividade de engenharia de requisitos responsvel por fazer a interface entre os desejos e necessidades
dos clientes e a posterior implementao em forma de software. Em outras palavras, faz o mapeamento entre o
informal (requisitos) e o formal (modelos e cdigo). Estes requisitos devem guiar o processo de desenvolvimento
de maneira a garantir que o software construdo corresponda ao desejado. O vnculo entre requisitos e modelos
desenvolvidos no decorrer do processo de desenvolvimento chamado de rastreabilidade. Manter a
rastreabilidade uma tarefa difcil visto que os diferentes modelos evoluem durante o processo e que os
requisitos tambm mudam.
Pesquisadores da rea de Engenharia de Requisitos tm desenvolvido mtodos, tcnicas e ferramentas que
do apoio s tarefas associadas ao processo de requisitos. Entretanto, muitos destes mtodos e tcnicas no esto
em prtica no mercado devido, em parte, carncia de ferramentas. No mercado h algumas ferramentas para
gerncia de requisitos, tais como RequisitePro [RequisitePro], Doors [Doors], e CaliberRM [CaliberRM]. Todas
so proprietrias e no fundamentadas em processos ou tcnicas especficas. Esta caracterstica necessria para
atender um maior nmero de usurios, mas por outro lado, dificulta o trabalho do desenvolvedor, pois este tem
que definir seu prprio processo, mesmo que ele no esteja apto a faz-lo devido ferramenta s permitir uma
modelagem parcial dos mtodos desejados ou pela falta de integrao dela com outras ferramentas utilizadas
pela equipe.
A adoo de software livre por empresas est comeando a ser considerada uma alternativa devido ao
baixo custo na aquisio e acesso ao cdigo fonte. Este acesso permite desenvolver ou melhorar componentes
que no satisfaam as necessidades desejadas. Neste contexto o grupo de Engenharia de Requisitos da PUC-Rio
vem trabalhando ao longo de dois anos em um projeto de pesquisa denominado C&L. C&L uma ferramenta
para modelar requisitos atravs de cenrios e lxico. Cenrios e Lxico compem uma estratgia para modelar
requisitos utilizando o vocabulrio do Universo de Informao (UdI) e focando em situaes conforme
percebidas pelos clientes e usurios [Leite97]. Esta estratgia utiliza linguagem natural semi-estruturada de
maneira a amenizar os problemas resultantes da ambigidade inerente linguagem natural.
A ferramenta C&L est em evoluo. Atualmente, C&L permite a edio de cenrios, lxico e parte de
ontologias. Atravs da ferramenta, os interessados visualizam a rastreabilidade entre cenrios, entre termos do
lxico e entre cenrios e termos do lxico. Este projeto tem sido a base para diferentes provas de conceito de
alunos de ps-graduao. C&L tem sido utilizada para validar estudos sobre desenvolvimento de software livre
[Holanda04], gerao de ontologias a partir do Lxico Ampliado da Linguagem [Breitman03][Felicissimo03],
cenrios como padro para comentar o cdigo [Silva03], verificao de cenrios [Sayo03], evoluo de
software, ensino em cursos de engenharia de software [Silva04].
Uma das metas da ferramenta C&L manter e disponibilizar a rastreabilidade entre requisitos e cdigo. A
idia integrar cenrios e cdigo de maneira a permitir que os diferentes interessados trabalhem em um conjunto
compartilhado de informaes sem precisar conhecer detalhes que no so de sua responsabilidade. Por
exemplo, permitir que os usurios/clientes tenham acesso aos cenrios para validar o sistema, o gerente do
projeto possa acompanhar o projeto, os engenheiros de requisitos possam modelar os requisitos e comunic-los
aos desenvolvedores, os desenvolvedores possam entender detalhes da arquitetura do software, os testadores
possam criar os testes de aceitao, dentre outros.
Neste artigo apresentamos as principais funcionalidades da ferramenta C&L. Organizamos o artigo da
seguinte maneira: na Seo 2 descrevemos o contexto em que este trabalho est inserido, apresentando o
embasamento terico que permitiu a construo da ferramenta; na Seo 3 apresentamos as funcionalidades e
arquitetura da ferramenta C&L; na Seo 4 descrevemos trabalhos relacionados a este e as vantagens de nossa
abordagem; na Seo 5 resumimos nossas contribuies, concluses e planos para o futuro.
2. Fundamentao Terica
Pesquisas na rea de engenharia de software tm focado tcnicas que minimizem o gap existente entre o
mundo real (Universo de Informao - UdI) e os modelos computacionais que o implementam. Muitas destas
tcnicas se baseiam na criao de modelos e de linguagens menos ou mais formais, tentando oferecer ao
1
desenvolvedor uma maneira gradual de transformar requisitos em software, e assim retratar de maneira fiel uma
realidade pretendida.
A engenharia de requisitos responsvel por entender o UdI e identificar quais e como as tarefas da
aplicao devem ser automatizadas. Mais que isto, responsvel por comunicar estas informaes para os outros
integrantes da equipe de desenvolvimento e garantir que o software sendo construdo o software requisitado.
As atividades da engenharia de requisitos podem ser resumidas em: Elicitao, Modelagem, Anlise e Gerncia.
Para entender, registrar e comunicar as informaes do UdI e para acompanhar o andamento do projeto
faz-se uso de modelos. H vrios modelos utilizados pelos engenheiros de requisitos para dar apoio s suas
atividades, tais como: lista de requisitos, cenrios, casos de uso, glossrios, lxico, diagrama de classes, MER,
SADT, DFD, matrizes de rastreabilidade, listas de prioridades e i* entre outros. Assim, o engenheiro de
requisitos deve selecionar os modelos mais apropriados para o tipo de projeto, processo, e equipe a desenvolver
o software.
Glossrios ou lxico e cenrios ou casos de uso tm sido bastante utilizados em fases iniciais do
desenvolvimento de software porque so modelos razoavelmente simples e de fcil entendimento por parte dos
usurios. Eles utilizam linguagem natural para representar suas informaes. A linguagem natural desempenha
um papel fundamental visto que ajuda a comunicao entre diferentes tipos de interessados, ajuda o
desenvolvedor a entender o UdI e ajuda o usurio a validar os requisitos do sistema sendo construdo.
Neste artigo relatamos uma ferramenta para modelagem de requisitos baseada no uso de cenrios e do
lxico. A idia inicial de construir esta ferramenta era permitir que uma equipe de desenvolvedores trabalhasse
colaborativamente (via Web) na definio dos requisitos de um projeto. Para chegar aos requisitos, a equipe deve
ser capaz de identificar a linguagem utilizada no UdI e os cenrios percebidos pelos usurios. Assim, a equipe
trabalha em colaborao para definir o lxico e os cenrios da aplicao.
A utilizao de cenrios durante o desenvolvimento de software um tpico que tem ganhado bastante
destaque na comunidade de Engenharia de Software [Weidenhaupt98][Rolland98]. O desenvolvimento de
software baseado em cenrios se apia no conceito de que a utilizao da linguagem do problema (domnio do
usurio) benfica interao entre usurios e desenvolvedores [Leite95]. Entendemos por cenrios a descrio
de situaes comuns ao cotidiano dos interessados [Zorman95]. Eles devem levar em conta aspectos de
usabilidade e permitir o aprofundamento do conhecimento do problema, a unificao de critrios, a obteno do
compromisso de clientes e/ou usurios, a organizao de detalhes e o treinamento de pessoas [Carroll94].

Figura 1. Representao para cenrios proposta por Leite [Leite00]
Cada cenrio descreve, atravs de linguagem natural semi-estruturada, uma situao especfica da
aplicao, priorizando seu comportamento. Cenrios podem ser detalhados e utilizados como desenho de
maneira a auxiliar a programao. Existem vrias propostas para a representao de cenrios, desde a mais
informal, em texto livre [Carroll94] at representaes formais [Hsia94]. Optamos por uma representao
intermediria que, ao mesmo tempo em que facilita a compreenso atravs da utilizao de linguagem natural,
fora a organizao da informao atravs de uma estrutura bem definida. A notao para cenrios escolhida a
proposta em [Leite97] e est ilustrada na Figura 1.
Esta estrutura composta por elementos que expressam o objetivo, o contexto, recursos, atores,
atividades bem como restries e excees. Descrevemos brevemente esses elementos a seguir:
Ttulo - o identificador do cenrio.


2
Objetivo - a descrio da finalidade do cenrio. Deve ser concreto e preciso.
Contexto - a descrio do estado inicial do cenrio, atravs de pr-condies, localizao geogrfica e/ou
localizao temporal.
Recursos so entidades passivas necessrias realizao do cenrio. Devem ser referidos em pelo menos
um dos episdios.
Atores - so entidades (sistema, organizao ou pessoa), que se envolvem ativamente no cenrio. Devem ser
referidos em pelo menos um dos episdios.
Episdios - seqncia de sentenas simples, condicionais ou opcionais, correspondente a aes e decises
com participao dos atores. Obedecem a uma ordem temporal e utilizam recursos. O conjunto de episdios
atende ao objetivo do cenrio.
Restries so aspectos no-funcionais que podem estar relacionados ao contexto, recursos ou a episdios
especficos.
Excees correspondem a situaes que podem impedir que o objetivo do cenrio seja atingido e o
tratamento correspondente a tal situao.
Os cenrios apresentam de maneira objetiva as entidades ativas e passivas necessrias em determinada
situao (atores e recursos, respectivamente). Atravs do contexto possvel identificar em que situao o
cenrio acontece. Tais informaes do uma viso global do contexto em que o cenrio est inserido e sua
interao com as entidades do sistema. A descrio do contexto, das restries, dos episdios e das excees d
suporte elaborao de casos de testes. Em particular, as restries permitem a identificao e a descrio de
aspectos no-funcionais. Desta maneira, os cenrios podem ser utilizados para validar os requisitos elicitados.
O processo de construo de cenrios est relacionado existncia do Lxico Ampliado da Linguagem
(LAL). O LAL um hiper-documento que descreve os smbolos da linguagem do Universo de Informao.
utilizado para facilitar a comunicao e a compreenso de palavras ou frases peculiares ao UdI [Leite93]. Cada
termo do lxico possui dois tipos de descrio. O primeiro tipo, noo, a denotao do termo ou expresso, i.e.,
seu significado. O segundo tipo, impacto ou resposta comportamental, descreve a conotao do termo ou
expresso, i.e., prov informao extra sobre o contexto.
Dicionrios e glossrios, de modo geral, s representam a denotao dos termos. Como o LAL representa
tambm os relacionamentos entre os termos, atravs dos impactos, temos uma representao muito mais
detalhada da organizao do UdI. Os termos do lxico so classificados em quatro categorias: objeto, sujeito,
estado e verbo. H dois princpios fundamentais no LAL. O primeiro maximizar o uso dos outros termos do
lxico quando descrevemos a noo e o impacto de um novo termo, denominado princpio da circularidade. O
segundo, minimizar o uso de termos externos ao UdI, denominado de princpio do vocabulrio mnimo.
O LAL escrito em linguagem natural. Desta forma, o prprio usurio, com a ajuda do engenheiro de
requisitos, pode escrev-lo e valid-lo. Atravs do LAL o engenheiro de requisitos consegue compartilhar,
analisar e reutilizar o conhecimento do UdI. A Figura 2 ilustra a representao para lxico proposta em
[Leite00].

Figura 2. Representao para lxico ampliado da linguagem proposta por Leite [Leite00]
Os termos do LAL so utilizados na descrio dos cenrios, retratando uma relao entre elementos do
UdI e os requisitos do usurio. A integrao entre cenrios e LAL permite a rastreabilidade entre termos do
LAL, entre cenrios, e entre termos do LAL e cenrios. Esta rastreabilidade ajuda o engenheiro de requisitos a
identificar mais rpido o impacto de mudanas. Mudanas em um termo do LAL (ou seja, algum termo do UdI
no estava claro ou foi mal compreendido) podem implicar em mudanas em: outros termos do LAL e nos
3
cenrios que fazem referncia quele. Mudanas em um cenrio podem implicar em mudanas: nos cenrios que
esto direta ou indiretamente relacionados quele, com maior e com menor freqncia, respectivamente.
Para viabilizar a rastreabilidade entre cenrios e cdigo temos trabalhado com a possibilidade de inserir
os prprios cenrios no cdigo. Desta maneira criamos um documento nico com dois tipos de informao: os
cenrios representando os requisitos, e o cdigo representando a operacionalizao destes. Para trabalhar com
este documento nico necessrio apoio automatizado para tornar possvel extrao das diferentes vises deste
documento.
S com o apoio de ferramentas podemos garantir que as mudanas realizadas nos cenrios dentro do
cdigo sero visveis para os outros interessados que no esto trabalhando com o cdigo. Tambm necessrio
oferecer um indicativo de mudana para os desenvolvedores. Temos experimentado esta abordagem no contexto
de software livre, gerando automaticamente uma documentao a partir do cdigo comentado com cenrios. Na
Seo 2.1 resumimos esta abordagem.
Um outro tpico de interesse do nosso grupo de pesquisa a modelagem de ontologias. Em [Breitman03]
foi definido um processo de construo de ontologias baseado no LAL. O LAL utilizado como ponto de partida
para a construo da ontologia. Nesta abordagem consideramos a gerao de ontologias uma atividade de
responsabilidade do engenheiro de requisitos, principalmente quando se trata de ontologias no contexto da Web
semntica [Hendler01]. Este processo foi implementado no C&L de maneira semi-automtica e resumido na
Seo 2.2.
2.1 Enriquecendo o Cdigo com Cenrios
Comentar o cdigo com cenrios uma nova abordagem para a construo de cdigo guiada por cenrios.
Isto fornece a rastreabilidade entre requisitos (registrados atravs dos cenrios) e componentes de cdigo,
evidenciando as dependncias entre requisitos. Esta simbiose entre cenrios e cdigo passa a ser um guia para a
construo, manuteno e evoluo de programas.
Cenrios fornecem uma representao uniforme da informao, promovem o reuso facilitando a
identificao de funcionalidades, agilizam a manuteno e a identificao de partes do cdigo que seriam
afetadas no caso de mudanas. Alm disto, a padronizao oferecida pelos cenrios permite a automao de
parte destas tarefas. As principais vantagens [Silva03] dos cenrios quando comparados a comentrios no
estruturados so:
cenrios so representados atravs de uma estrutura bem definida, oferecendo organizao e padronizao
na apresentao da informao;






a estrutura episdica dos cenrios facilita a enumerao das funcionalidades encapsuladas em cada poro
de cdigo. De forma semelhante, a identificao de episdios similares em diferentes cenrios serve de
indicativo de redundncia de cdigo;
os cenrios so descritos utilizando um subconjunto da linguagem natural, registrado no Lxico Ampliado
da Linguagem (LAL). No LAL definimos um nmero limitado de vocbulos que podem ser utilizados na
descrio dos cenrios, de forma a garantir a consistncia de vocabulrio, i.e., utilizar sempre o mesmo
termo e minimizar ambigidades. A utilizao de um vocabulrio controlado facilita a implementao de
mecanismos que permitem a identificao de outros cenrios que compartilham os mesmos termos. O
casamento destes cenrios serve como indicativo de acoplamento entre as respectivas pores de cdigo;
cenrios contm descries explcitas de pr e ps condies, facilitando a visualizao de possveis
encadeamentos entre os cenrios e seus respectivos cdigos;
o conjunto de todos os cenrios pode servir como documento explicativo do funcionamento do software
para o usurio;
a descrio de cenrios em linguagem natural semi-estruturada permite que usurios no especialistas sejam
capazes de entend-los e valid-los.
Nossa proposta semelhante ao trabalho de Knuth [Knuth84]; a "web" referida por ele corresponde s
ligaes entre cenrios e cdigo. Cada mdulo do sistema contm cdigo e o cenrio correspondente; os cenrios
de um mdulo fazem referncias a termos que tambm so utilizados em outros cenrios, que por sua vez esto
localizados em outros mdulos. Isto possibilita a rastreabilidade entre requisitos (expressos atravs dos cenrios)
e cdigo. A ligao entre cenrios acontece por referncia explcita a sub-cenrios ou atravs de termos
constantes no LAL.


4

<?php
/**
@title Gerar documentao
@goal Inicia o processo de gerar a documentao
@context Precondition O usurio clicou na opo de Gerar documentao na pgina de Informaes sobre o projeto
@actor usurio
@resource
dir @constraint passada pelo formulario. Define o valor do arquivo submetido;
project_name @constraint passado pelo formulrio. Define o nome do projeto submetido;
types @constraint passado pelo formulrio. Define os tipos de arquivo de cdigo;
description @constraint passado pelo formulrio. Define um descrio textual do projeto;
CELdoc_library.php @constraint define as funes utilizadas para criar a documentao;
CELdoc_config.php @constraint define variveis de configurao que devem ser modificadas de acordo com o
servidor;
httprequest.inc @constraint script que recebe as variveis passadas por POST ou GET;
size @constraint tamanho do arquivo submetido;
type @constraint tipo do arquivo submetido;
project_path @constraint caminho em que o projeto foi copiado e onde ser colocada a documentao;
*************************************************************/
include ("CELdoc_library.php");
include ("CELdoc_config.php");
include ("httprequest.inc");
/** @episode Receber as variveis file, project_name, description e types fornecidas pelo usurio
@constraint Todas as variveis so obrigatrias.
Dependendo da verso do PHP httprequest.inc indispensvel **/
$size = $_FILES['file']['size'];
$type = $_FILES['file']['type'];
$nomearq = $project_name . ".zip";
/** @episode Fazer UPLOAD DO ARQUIVO SUBMETIDO para o servidor
@constraint O arquivo submetido deve ser uma arquivo zipado **/
$project_path = upload_file ($size, $type, $project_name, $types);
/** @episode DESCOMPACTAR ARQUIVO SUBMETIDO **/
unpack_file($nomearq, $project_path);
/** @episode COPIAR ARQUIVOS DEFAULT para o diretrio do projeto cuja documentao est sendo criada **/
copy_default_files($project_path);
/** @episode Identificar quais so os tipos de arquivos do cdigo com base nos types fornecido pelo usurio **/
$types = preg_split ("/[\s,;]/", $types);
$dir_code = $project_path . "code/";
$dir_document = $project_path . "document/";
$files = read_file($dir_code, $types);
/** @episode CRIAR XML DE RELACIONAMENTOS entre cenrios e mdulos do cdigo submetido
@constraint so necessrios os dados: caminho de onde est o cdigo,
caminho de onde deve ser colocada a documentao, tipos de arquivos a serem lidos,
nome do projeto e descrio, vetor com as informaes de todos os arquivos, respectivamente **/
$except1 = create_xml_relation ($dir_code, $dir_document, $types, $project_name, $description, $files);
.
Titulo
Objetivo
Contexto
Ator
Recurso
Restries
Episodios
Referncias a
sub-cenrios

Figura 3. Exemplo de cdigo comentado com cenrios
Na Figura 3 ilustramos um exemplo de cenrio encapsulado no cdigo. Definimos uma notao para
delimitar os elementos do cenrio, e.g., @title, @goal, @context, @constraint, @actor etc. As referncias a
outros cenrios ns escrevemos em maisculo de modo a evidenciar que aquela referncia est implementada em
um outro componente, mas isto no levado em considerao para a gerao automtica dos links, ou seja,
mesmo que as referncias no estejam em maisculo os relacionamentos entre cenrios e sub-cenrios so
identificados pelo parser descrito na Seo 3.2.
Encapsular as informaes oferecidas pelo cenrio no cdigo prov uma maneira simples de obter e
atualizar estas informaes. Desta forma, acreditamos que o programador pode compreender mais rapidamente a
funcionalidade de cada mdulo e perceber o impacto que mudanas em um mdulo provocam no restante do
sistema, pois ele tem em mos informaes sobre como este mdulo est inserido na arquitetura do sistema.
Esta abordagem propicia maior colaborao durante o processo de desenvolvimento de software livre,
visto que neste contexto a qualidade das descries crtica, quer sejam descries de cdigo ou relativas a
outros artefatos. Na Seo 3.2 detalhamos como geramos a documentao baseada em cenrios automaticamente
atravs de um mdulo do C&L.
2.2 Modelar Ontologias a partir do LAL
Nos ltimos anos, notamos uma crescente necessidade em categorizar os conceitos do UdI no contexto da
Web. Esta necessidade ocasionada, principalmente, devido a grande quantidade de dados disponvel na Web
no dispor de semntica explcita. Isto leva s pessoas a terem um trabalho extra na seleo das informaes
5
relevantes e s mquinas a armazenarem e tratarem os dados redundantes. A categorizao taxonmica oferecida
pelas ontologias surgiu para mudar este cenrio.
Como descrito em [Noy01], as principais razes para se construir ontologias so: compartilhar o
entendimento da estrutura da informao entre pessoas e agentes de software; possibilitar o reuso de
conhecimento do domnio; tornar as verdades absolutas do domnio explcitas; separar o conhecimento do
domnio do conhecimento operacional; e analisar o conhecimento do domnio.
Do ponto de vista conceitual, as ontologias so compatveis ao LAL porque oferecem uma organizao
explcita dos conceitos e relacionamentos existentes em um dado Universo de Informao. Ontologias so
especificaes formais dos termos do UdI e as relaes entre eles [Noy01]. Na literatura h vrias definies
para ontologias. Neste trabalho adotamos a definio proposta em [Maedche02]. Nesta estrutura, uma ontologia
descrita pela tupla:
O := {C, R, H
C
, rel, A
O
}:
C (conceitos) e R (relaes) so dois conjuntos disjuntos;
H
C
uma relao direcionada H
C
C x C que chamada hierarquia de conceitos ou taxonomia. Por
exemplo, H
C
(C1, C2) significa que C1 um subconjunto de C2;
rel uma funo rel : R C x C que relaciona os conceitos no taxonomicamente;
A
O
um conjunto de axiomas expresso em linguagem lgica apropriada.
Em nossa viso, a modelagem de ontologias deve ser realizada durante a fase de requisitos. Para apoiar
o desenvolvimento de ontologias, foi proposto em [Breitman03] um processo baseado no LAL. A maior
vantagem deste enfoque poder contar com um mtodo maduro para auxiliar na tarefa de elicitao, modelagem
e validao dos conceitos e relacionamentos do Universo de Informao partindo-se da linguagem da aplicao.
O processo de construo do lxico estruturado e segue princpios slidos de engenharia de Software e
tcnicas j estabelecidas para a captura, modelagem e posterior anlise da informao modelada [Kaplan00]. O
LAL prov a linguagem comum para a comunicao informal entre os interessados no processo de
desenvolvimento de software, i.e., clientes, usurios e desenvolvedores, enquanto ontologias fornecem este
modelo de modo mais formal, permitindo o compartilhamento de informaes entre mquinas e agentes de
software.
Breitman e Leite em [Breitman03], definem um processo para gerar ontologias a partir do LAL, levando
em conta as tarefas de elicitao, modelagem e anlise para explicitar e comunicar o conhecimento do UdI. Este
processo mapeia os termos do LAL nos elementos da ontologia: os termos do tipo objeto e sujeito so mapeados
em conceitos; os termos do tipo verbo so mapeados em propriedades; os termos do tipo estado so mapeados
em conceitos ou propriedades; a noo de cada termo mapeada na descrio do respectivo conceito; e
atravs da lista de impactos de cada termo do lxico mapeia-se o verbo em propriedades e o predicado em
conceitos ou restries dos conceitos. Na Tabela 1, resumimos o conjunto de mapeamentos entre termos do
LAL e elementos da ontologia.
Tabela 1. Mapeamento entre os elementos do LAL e os da ontologia definido por Breitman e Leite em
[Breitman03]
Elementos do LAL Elementos da Ontologia
Termo (ou smbolo)
- Tipo
- Objeto e Sujeito
- Estado
- Verbo


Conceitos
Conceito ou axioma
Propriedade
- Noo Descrio
- Impacto
- Verbo
- Predicado (termos)


Propriedade
Conceitos ou Axiomas
De modo a prover apoio semi-automtico ao processo de construo de ontologias a partir do LAL,
desenvolvemos um componente para a ferramenta C&L em [Felicssimo03]. Este componente utiliza como
dados de entrada o lxico de um projeto j editado e, gera como sada, uma ontologia em um arquivo do tipo
daml, padro [W3Consortium03]. Na Seo 3.1 detalhamos como a gerao de ontologias a partir do LAL
apoiada na ferramenta C&L.


6
3. Descrio da Ferramenta C&L
A primeira verso da ferramenta C&L foi desenvolvida por um grupo de alunos de engenharia de
computao da PUC-Rio. Depois desta verso inicial elaboramos um plano de evoluo para disponibilizar a
ferramenta como software livre. Desde ento C&L est disponvel no endereo http://sl.les.inf.puc-rio.br/cel/
para uso e download. Na pgina inicial disponibilizamos a verso atual da ferramenta, o script de criao do
banco de dados, a lista de erros, artigos relacionados a cenrios e lxico, manual do usurio, cenrios da
ferramenta, arquitetura e casos de teste.
Temos evoludo C&L de maneira a acomodar os resultados de pesquisa do grupo de Engenharia de
Requisitos da PUC-Rio. Esta ferramenta utilizada sistematicamente no ensino de dois cursos, engenharia de
software e evoluo de software. Em ambos, a ferramenta desempenha papel fundamental por que empregada
no ensino das tcnicas de modelagem, cenrios e lxico, e utilizada como estudo de caso no trabalho prtico da
disciplina.
Como estudo de caso, os alunos utilizam a ferramenta como projeto de software livre para modelar os
requisitos e como fonte de componentes reusveis para novas verses da prpria ferramenta. Em [Silva04],
descrevemos o mtodo utilizado para ensinar engenharia de software. O mtodo visa despertar o interesse dos
alunos em engenharia de software, apresentando os aspectos tericos e oferecendo uma experincia prtica da
aplicao destes conceitos. Para a experincia prtica adotamos uma filosofia de desenvolvimento cooperativo,
calcado no processo Extreme Programming (XP).
Com o uso da ferramenta pelos alunos das duas disciplinas realizamos a validao de C&L sobre dois
aspectos: sob a viso de usurio e sob a viso de desenvolvedor. Desta forma, temos evoludo C&L de maneira a
tentar atender as necessidades levando-se em conta as mudanas solicitadas.
C&L funciona segundo uma arquitetura cliente-servidor em que a parte cliente apenas a interface em
HTML visualizada atravs do browser. Todas as solicitaes via browser so tratadas no servidor web onde est
instalada a ferramenta. Os dados dos projetos so armazenados em um banco de dados MySQL. Na Figura 4
mostramos a arquitetura global de C&L; A interface visualizada no browser do cliente foi implementada,
principalmente, em HTML e as funcionalidades da ferramenta C&L em PHP.
DB server
Web server
Banco
de
dados
C&L
C&L
Cliente
browser
Cliente
browser
...

Figura 4. Arquitetura cliente-servidor da ferramenta C&L
Browser C&L
Banco de
dados C&L
sl.les.inf.puc-rio.br
submit (user)
submit (user)
query (user)

Figura 5. Diagrama de interaes entre clientes e servidor
Na Figura 5, ilustramos a seqncia de interaes que ocorrem para acessar um servio oferecido por
C&L. Por exemplo, a partir do browser o usurio requisita que a pgina de C&L seja acessada, digitando o
endereo WEB da ferramenta. O servidor responde mostrando a pgina de login da ferramenta, o usurio
submete suas informaes, se o formulrio no tiver sido preenchido integralmente o usurio recebe uma
7
mensagem avisando-o, caso o usurio preencha todas as informaes a ferramenta busca as informaes do
usurio no banco e reponde ao usurio com a devida interface.
A interao entre cliente e servidor realizada atravs do protocolo http. O uso de sesses se faz
necessrio para atender vrios clientes ao mesmo tempo. A gerncia destas sesses realizada pelo APACHE. A
ferramenta depende de seu banco de dados, visto que todas as funcionalidades do C&L utilizam informaes
armazenadas no banco de dados. Os servidores WEB e de banco de dados podem est fisicamente em uma
mesma mquina ou em mquinas diferentes sendo a conexo realizada atravs de ODBC.
Na interface com o usurio alguns scripts em Java foram implementados apenas para verificar se os
formulrios foram preenchidos integralmente pelo usurio antes que uma chamada ao servidor seja realizada.
Assim, C&L est implementado com as linguagens PHP, HTML, e JavaScript; utiliza a verso livre do banco de
dados MySQL e est em um servidor APACHE. Atualmente, a verso disponvel funciona inteiramente no
browser Microsoft Internet Explorer, mas estamos fazendo as devidas alteraes para torn-lo disponvel em
outros browsers.
C&L
main.php
index.php
heading.php code.php
del_project.php add_scenario.php add_lexico.php add_project.php
funcoes_genericas.php
removeProjeto inclui_cenario inclui_lexico inclui_projeto
...
... CELdoc_library.p
hp
Componentes da
interface - estes
componentes
interagem com os
usurios e enviam
mensagens para a
segunda camada
de componentes
Segunda
camada - estes
componentes
executam
funcionalidades,
eles fazem as
queries ao BD
O pacote
funcoes_generi
cas.php uma
biblioteca de
funes.
Banco
de
dados
C&L

Figura 6. Arquitetura interna do C&L
O pacote C&L, ilustrado nas Figuras 4 e 5, pode ser visualizado conforme uma arquitetura em duas
camadas: interface e funcionalidade. A Figura 6 ilustra essa organizao para alguns de seus componentes. O
processo que temos utilizado no desenvolvimento do C&L e as condies intrnsecas de suas plataformas de
software (JavaScript, HTML, PHP) tem dificultado a utilizao de uma arquitetura padro. No entanto, estamos
trabalhando para fatorar da parte de funcionalidade os aspectos de banco de dados e tambm para explicitar os
componentes de integrao (controle) entre as camadas. O uso dessa estrutura (MVCDB) em cdigo PHP


8
apresenta alguns desafios, face s restries de organizao da linguagem. nossa inteno, tratar esse problema
nos trabalhos futuros.
C&L est em sua quarta verso, a interface principal da ferramenta ilustrada na Figura 7. A interface
estruturada em trs frames: frame superior apresenta o menu com o conjunto de funes que podem ser
realizadas por usurios comuns e usurios administradores; frame do lado esquerdo, apresenta uma estrutura em
rvore com os cenrios, termos do lxico e conceitos da ontologia criados para um projeto; e frame central, onde
os cenrios e termos do lxico so mostrados para navegao ou alterao.
No frame central da Figura 7 ilustramos um cenrio. A estrutura do cenrio composta pelos elementos:
ttulo, objetivo, contexto, atores, recursos, episdios e excees. As restries e os tipos de contextos (pr-
condio, localizao geogrfica e localizao temporal) no foram distinguidos dos outros elementos ainda. O
cenrio corrente Organizar reunies do projeto Agendador de Reunies. Os links (na figura esto em negrito)
so criados ou excludos automaticamente a medida em que os usurios adicionam ou removem cenrios ou
termos do lxico, respectivamente.
Frame
superior
Frame da
direita
Frame
central
Links para
sub-cenrios
Links para
termos do
lxico
Projeto
escolhido

Figura 7. Interface da Ferramenta C&L: navegando pelos cenrios
Na Figura 8, ilustramos um termo do lxico deste mesmo projeto, iniciador da reunio. Os termos do
lxico possuem um nome, noo, classificao, impacto e sinnimos. Este termo do lxico mencionado pelos
cenrios Organizar a reunio, Modificar data de reunio, Requisitar equipamento necessrio e Faz
chamada para reunio e pelos termos Data da reunio, Intervalo de datas e Conjunto de preferncia,
vistos na parte inferior do frame central

9
Links para
cenrios que
fazem
referncia ao
termo corrente
Links para
termos do
lxico que
fazem
referncia ao
termo corrente

Figura 8. Interface da ferramenta C&L: navegando pelos termos do lxico
Este menu est
disponvel
apenas para o
usurio
administrador

Figura 9. Interface da Ferramenta C&L: menu acessado pelo usurio administrador
Alm das funes disponveis no frame superior, usurios administradores podem acessar as funes
ilustradas pelo frame central da Figura 9. A idia que rege a modelagem de requisitos no C&L que uma equipe
de desenvolvimento possa trabalhar, em paralelo, descrevendo cenrios e termos do lxico no C&L. O usurio


10
administrador (no C&L aquele que cria o projeto) o nico que tem o poder de validar os pedidos de
alteraes. Sendo assim, o administrador do projeto pode associar usurios, estejam eles j cadastrados ou no no
C&L, a um projeto.
Cada alterao realizada nos termos do lxico ou nos cenrios, antes de ser efetivada, fica em uma lista de
pedidos de alterao, aguardando a validao do administrador. Este recebe mensagens eletrnicas avisando
quando h pedidos pendentes a serem validados. A gerao do XML e da ontologia so duas funcionalidades
disponveis tambm apenas para o administrador do projeto. A gerao do XML disponibiliza um arquivo XML
com as informaes dos cenrios e do lxico de um projeto, na seo 3.4 detalhamos como isto realizado e o
seu propsito. A gerao da ontologia foi implementada como um processo semi-automtico conforme
detalhamos na Seo 3.5.
C&L
Editar
cenrios
Criar
ontologia
Gerenciar
usurios e
projetos
Criar XML
Criar
documentao
Editar
Lxico

Figura 10. Estrutura funcional da ferramenta C&L
Para explicar quais funcionalidades so oferecidas pela ferramenta C&L, criamos as seguintes categorias:
gerenciar usurios e projetos, editar lxico e cenrios, gerar ontologia, gerar XML, gerar documentao a partir
do cdigo. Na Figura 10 ilustramos as interaes existentes entre estas categorias. Nas sub-sees seguintes
detalhamos as funcionalidades de cada categoria e como elas esto implementadas.
3.1 Gerncia de Usurios e Projetos
Para acessar as funcionalidades da ferramenta C&L necessrio se cadastrar, passar por um processo de
autenticao atravs de login e senha. Todo usurio (pessoa cadastrada no C&L) pode criar seus prprios
projetos escolhendo a opo Adicionar Projeto do menu no frame superior, passando ele a ser o usurio
administrador do projeto.
Ao criar um projeto o nico usurio relacionado a este o prprio administrador. Como administrador
este usurio pode relacionar outros usurios ou outras pessoas no cadastradas no C&L. No ultimo caso, a pessoa
passa a ser um usurio do C&L e passa a ter acesso aos projetos aos quais ele est relacionado. Assim, um
usurio pode estar relacionado a vrios projetos exercendo em cada um ou o papel de administrador ou de
usurio comum.
As funcionalidades agrupadas neste componente so:
acessar o sistema - o usurio acessa o sistema mediante login e senha, o sistema gerencia os diferentes tipos
de permisses dos usurios, disponibilizando diferentes menus;
lembrar senha - o usurio fornece seu login e o sistema envia uma mensagem para seu endereo eletrnico
informando qual a senha cadastrada para ele;
cadastrar usurio - o sistema no permite que dois usurios tenham o mesmo login;
adicionar projeto - o sistema no permite que o mesmo usurio adicione dois projetos com o mesmo nome;
relacionar usurio existente ao projeto - o sistema disponibiliza uma relao com todos os usurios
cadastrados. O usurio seleciona aqueles a serem relacionados ao projeto;
relacionar usurio no cadastrado ao projeto - o sistema disponibiliza interface para que novos usurios
sejam adicionados;
apagar projeto - o sistema apaga do banco de dados todas as informaes referentes a um projeto;
acessar projeto - no frame superior da interface disponibilizada uma lista com todos os projetos aos quais
o usurio corrente est relacionado. Ao selecionar um projeto o sistema disponibiliza a interface ilustrada
nas Figuras 4 e 5. A estrutura em rvore disponibilizada no frame esquerdo apresenta os cenrios, lxico e
ontologia do projeto aberto. Na Figura 7 o cenrio Organizar a reunio foi selecionado, ele mostrado no
frame central. Os sub-cenrios deste cenrio so mostrados em caixa alta no frame central e so mostrados
como ramos da rvore no frame esquerdo. O ttulo dos cenrios em caixa alta so links que podem ser
percorridos para navegao entre cenrios. As outras palavras que no aparecem em caixa alta, mas esto
grifadas so termos definidos no lxico do mesmo projeto, e tambm so links para navegao. Os cenrios
11
contm links para sub-cenrios e para termos do lxico. Os termos do lxico contm links apenas para os
termos do lxico. Isto permite a rastreabilidade entre cenrios, entre cenrios e termos do lxico e entre
termos do lxico. Alm desta rastreabilidade, a rastreabilidade avante, prpria da definio de Cenrios e
lxico, a ferramenta C&L disponibiliza a rastreabilidade reversa, ou seja, quais cenrios e termos do lxico
fazem referncia ao cenrio corrente ou quais termos do lxico fazem referncia ao termo do lxico corrente.
Na Figura 8, no frame central, ilustramos a rastreabilidade reversa atravs dos links para cenrios e termos
do lxico que fazem referncia ao termo corrente. Todos os links so definidos automaticamente pela
ferramenta, na Seo 3.2 detalhamos as funcionalidades relacionadas com a gerao dos links.
3.2 Edio de Lxico e Cenrios
Ao escolher um projeto o sistema disponibiliza as funes para editar o lxico e o conjunto de cenrios
daquele projeto. As informaes do lxico so complementares s informaes dos cenrios, mas no so
dependentes um do outro. Um projeto est relacionado a: zero ou um conjunto de cenrios e zero ou um lxico.
As funcionalidades englobadas neste grupo so:
adicionar cenrio - o sistema disponibiliza um formulrio para que o usurio adicione as informaes do
cenrio, aquelas definidas na Figura 1. Ao inserir um cenrio, a ferramenta procura em todos os cenrios do
projeto por referncias ao novo cenrio e cria o link quando encontra. Similarmente, ele procura na
descrio do cenrio includo referncias aos termos do lxico e aos cenrios do projeto e cria os links
apropriados;
alterar cenrio - o sistema disponibiliza o mesmo formulrio de adicionar cenrio com as informaes
recuperadas do banco de dados, para que o usurio modifique o desejado. Ao modificar um cenrio a
ferramenta verifica se todos os links antes criados se mantiveram e cria os novos links necessrios;
remover cenrio - o sistema remove todas os links para aquele cenrio e em seguida remove o prprio
cenrio do banco de dados;
adicionar termo no lxico - o sistema disponibiliza um formulrio para que o usurio escreva as
informaes do termo, aquelas definidas na Figura 2. Ao inserir um termo, a ferramenta procura em todos os
cenrios e todos os termos do projeto por referncias ao novo termo e cria o link quando encontra.
Similarmente ele procura na descrio do termo includo referncias aos termos do lxico e cria os links
apropriados;
alterar termo do lxico - o sistema disponibiliza o mesmo formulrio de adicionar termo no lxico com as
informaes recuperadas do banco de dados, para que o usurio modifique o desejado. Ao modificar um
termo a ferramenta verifica se todos os links antes criados se mantiveram e cria os novos links necessrios;
remover termo do lxico - o sistema remove todas os links para aquele termo e em seguida remove o
prprio termo do banco de dados;
As funes de adicionar cenrio e adicionar termo no lxico so disponibilizadas no frame superior da
interface, na Figura 9. As funcionalidades de alterar e remover cenrios e alterar e remover termos do lxico so
disponibilizadas no frame central da interface, para o cenrio ou termo corrente, respectivamente.


12
Nome do usurio
Ttulo do cenrio
Mudanas
sugeridas
O
administrador
deve escolher
entre aprovar
ou no.

Figura 11. Lista de mudanas acessada pelo usurio administrador que o permite aprovar ou no mudanas requisitadas por
outros usurios
Como dissemos anteriormente, as informaes editadas s estaro disponveis para alterao ou
visualizao quando o usurio administrador aprova as mudanas no projeto, ou seja, elas ficam primeiramente
em uma lista de mudanas. Se as mudanas forem feitas pelo prprio usurio administrador ento elas so
efetivadas imediatamente, exceo das mudanas do tipo remoo de termo do lxico e remoo de cenrio. Na
Figura 11, ilustramos a lista de mudanas que o usurio administrador tem acesso para aprovar ou no as
mudanas requisitadas.
3.3 Gerao de Ontologia
A funcionalidade de gerao de ontologia disponibilizada apenas para o usurio administrador no
frame central acessado atravs do menu Info do frame superior. Para gerar uma ontologia em C&L necessrio
que os termos do lxico do projeto tenham sido definidos. O processo para gerar ontologia segue o processo
definido em [Breitman03] e explicado em resumo na Seo 2.2.
As funcionalidades deste grupo so:
gerar ontologia - o sistema mapeia os termos do LAL classificados como objeto e sujeito para conceitos
da ontologia, a noo de cada um mapeado para a descrio do respectivo conceito. Depois disso, o
sistema analisa os impactos de cada um destes termos; Para isto o sistema identifica o verbo do impacto
automaticamente e a partir da, sugere ao usurio a adio deste verbo lista de relaes da ontologia,
como ilustrado na Figura 12. O usurio deve identificar se na descrio do impacto h conceitos ainda no
cadastrados na ontologia. Nesta figura ilustramos a interface da ferramenta C&L para o processo de
sugesto automtica de adio de propriedade, descrito anteriormente. Depois de analisar os impactos o
usurio deve informar se o termo corrente disjunto a algum outro termo, na verso atual de C&L este o
nico tipo de axioma gerado. Aps a anlise dos termos dos tipos objeto e sujeito, o sistema mapeia os
termos do tipo verbo para propriedades na ontologia gerada; necessria a interveno do usurio caso a
propriedade ainda no esteja cadastrada. O algoritmo passa ento a mapear os termos do LAL do tipo
estado; cabe ao usurio escolher entre classificar estes termos como conceito ou como propriedade; Caso a
classificao seja conceito, ento, a ferramenta o conduzir da mesma forma se o termo fosse originalmente
sujeito ou objeto; caso a classificao seja propriedade, a ferramenta o conduzir como se o termo fosse
originalmente verbo. Por fim, o sistema disponibiliza uma interface para que o usurio relacione os
conceitos de maneira a estabelecer a hierarquia entre eles.
13
Conceito
Impacto
Lista de relaes
identificadas
Lista de
conceitos
identificados
Se o verbo no
est na lista de
relaes ento o
usurio deve
inserir

Figura 12. Interface do C&L quanto extrao dos elementos da ontologias do Impacto dos termos do LAL: identificando
conceitos e relaes

rastrear entre conceito da ontologia e termos do lxico - quando uma ontologia gerada, seus elementos
ficam disponveis para visualizao na estrutura em rvore do frame esquerdo, podendo o usurio visualiz-
los no frame central. Alm da descrio dos conceitos da ontologia, no frame central disponibilizada a lista
de relaes usadas pelo conceito corrente e os conceitos com os quais ele se relaciona, e em sua descrio,
se houver referncias para os termos do lxico, estas tero links para navegao. Na Figura 13, ilustramos a
interface do C&L mostrando a rastreabilidade entre conceitos da ontologia e termos do lxico.
remover conceito, relao ou axioma da ontologia - o sistema permite que conceitos, relaes e axiomas
sejam removidos da ontologia gerada atravs do frame central;
gerar daml - uma vez que a ontologia tenha sido criada, o usurio pode gerar o arquivo daml da ontologia.
Este arquivo daml segue o padro determinado pela 3WC.
recuperar ontologia em daml gerada anteriormente cada vez que uma arquivo daml gerado,
versionado e armazenado. Nesta funcionalidade o sistema disponibiliza uma lista de arquivos daml gerados
anteriormente para que o usurio selecione um para ser exibido.
Links para
smbolos do
lxico
Relaes entre o
conceito corrente
e outros
smbolos
Conceitos
Relaes
Smbolos
do lxico

Figura 13. Interface do C&L: rastreabilidade entre ontologia e LAL


14
3.4 Gerao de XML
Esta funcionalidade disponibilizada pelo menu Info do frame superior, no frame central e acessada
apenas pelo usurio administrador. A gerao de XML tem um papel fundamental na ferramenta C&L. Ele serve
como protocolo de exportao do C&L para leitura por outras pessoas e de interface com o componente de
gerao de documentao. As funcionalidades deste grupo so:
gerar XML - o sistema recupera do banco de dados as informaes referentes ao lxico e ao conjunto de
cenrios do projeto e gera um arquivo XML. Este arquivo XML escrito segundo as regras gramaticais
definidas por uma DTD (Data Type Document). Entretanto, como o banco de dados no foi criado j
seguindo a estrutura da DTD necessrio identificar e separar seus elementos. Por exemplo, os links que
representam referncias aos termos do lxico e a outros cenrios precisam ser identificados e separados de
maneira a constituirem as tags <symbol_name_reference id= ...> e <scenario_title_reference id=..>
no documento XML, respectivamente. Ao pedir para gerar XML o usurio deve informar qual a verso do
XML e se ele deseja o XML formatado ou no. Esta formatao dada por um arquivo XSL.
recuperar XML criado anteriormente - o sistema disponibiliza uma lista dos arquivos XML gerados do
projeto corrente. A partir desta lista o usurio pode visualizar qualquer das verses disponveis. Esta lista de
arquivos XML representa o histrico de mudanas realizadas no projeto;
importar XML - permite que o usurio indique um arquivo XML e extrai dele as informaes do lxico e
cenrios de um projeto incluindo-as no banco de dados. O arquivo XML indicado pelo usurio tem que est
de acordo com as regras definidas pela ferramenta. Estas regras so descritas atravs da DTD, descrita a
seguir. Esta funcionalidade est em fase de desenvolvimento;
recuperar uma verso do projeto - as duas funcionalidades anteriores, recuperar XML e importar XML
permitem, em conjunto, retornar a uma verso anterior do projeto e reedit-la;
apagar arquivo XML - ao listar as verses dos arquivos XML geradas para um projeto, o sistema
disponibiliza a funo de apagar arquivo XML. Esta funo remove do banco de dados a verso escolhida
do XML.
A DTD criada para lxico e cenrios define os tipos de dados permitidos nestes dois artefatos. Nos
baseamos em [Leite00] para criar as regras gramaticais. Alm disto, acrescentamos s regras as informaes
referentes navegao entre cenrios e lxico. Nas Figuras 14 e 15 apresentamos as DTDs definidas para o
lxico e para o conjunto de cenrios, respectivamente.
<!ENTITY % sentence "symbol_name_reference | text ">
<!ELEMENT lexicon (symbol)+>
<!ELEMENT symbol ((symbol_name), (synonym)*, (notion)+,
(behavioral_response)+)>
<!ATTLIST symbol
type (subject | object | verb | state) "object" >
<!ELEMENT symbol_name (#PCDATA)>
<!ATTLIST symbol_name
id ID #REQUIRED >
<!ELEMENT synonym (#PCDATA)>
<!ATTLIST synonym
id ID #REQUIRED>
<!ELEMENT text (#PCDATA)>
<!ELEMENT notion (%sentence;)*>
<!ELEMENT behavioral_response (%sentence;)*>
<!ELEMENT symbol_name_reference (#PCDATA)>
<!ATTLIST symbol_name_reference
id IDREF #REQUIRED>
Figura 14. DTD para o lxico
<!ENTITY % sentence "(symbol_name_reference | text)*">
<!ENTITY % episode_sentence "(symbol_name_reference | text |
scenario_title_reference)*">
<!ENTITY % basic_sentence "(simple_sentence | conditional_sentence |
optional_sentence), (exception)*">
<!ELEMENT scenarios (scenario)+>
<!ELEMENT scenario (title, goal, context, (resource)+, (actor)+,
(episode))>
<!ELEMENT title (#PCDATA)>
<!ATTLIST title
id ID #REQUIRED
>
<!ELEMENT goal %sentence;>
<!ELEMENT context ((geographical_location) | (temporal_location) |
(precondition))+>
<!ELEMENT geographical_location (%sentence;, (constraint)*)>
<!ELEMENT temporal_location (%sentence;, (constraint)*)>
<!ELEMENT precondition (%episode_sentence;, (constraint)*)>
<!ELEMENT text (#PCDATA)>
15
<!ELEMENT constraint %sentence;>
<!ELEMENT resource (%sentence;, (constraint)*)>
<!ELEMENT actor %sentence;>
<!ELEMENT episode ((sequential_group) | (non_sequential_group))+>
<!ELEMENT sequential_group ((%basic_sentence;), (%basic_sentence;)+)>
<!ELEMENT non_sequential_group ((pound_symbol), (%basic_sentence;),
(%basic_sentence;)+, (pound_symbol))>
<!ELEMENT simple_sentence (%episode_sentence;, (constraint)*)>
<!ELEMENT conditional_sentence ((if, %episode_sentence;, then,
%episode_sentence;), (constraint)*)>
<!ELEMENT optional_sentence ((bracket_open), %episode_sentence;,
(constraint)*, (bracket_close))>
<!ELEMENT symbol_name_reference (#PCDATA)>
<!ATTLIST symbol_name_reference
id NMTOKENS #REQUIRED
>
<!ELEMENT scenario_title_reference (#PCDATA)>
<!ATTLIST scenario_title_reference
id IDREF #REQUIRED
>
<!ELEMENT exception (%episode_sentence;)>
<!ELEMENT pound_symbol EMPTY>
<!ELEMENT if EMPTY>
<!ELEMENT then EMPTY>
<!ELEMENT bracket_open EMPTY>
<!ELEMENT bracket_close EMPTY>
Figura 15. DTD para o conjunto de cenrios
3.5 Gerao de Documentao a partir do Cdigo - C&Ldoc
Este grupo de funcionalidade um componente externo ao C&L que gera documentao navegvel entre
cenrios e cdigo. Este componente foi desenvolvido segundo as idias descritas em [Silva03] e apresentadas
resumidamente na Seo 2.1. A documentao criada a partir dos cenrios extrados do cdigo fonte. No
cdigo fonte eles so escritos em forma de comentrios utilizando alguns delimitadores para identificao de
seus elementos. Toda documentao disponibilizada atravs de arquivos XML e apresentada de maneira
formatada por um XSL. As principais funcionalidades deste componente so:
realizar upload de um conjunto de arquivos de cdigo - C&Ldoc disponibiliza um formulrio para que o
usurio indique em seu computador um arquivo zipado contendo todos os arquivos de cdigo fonte do
projeto e informe os seguintes dados: nome do projeto, descrio, tipos de arquivos do cdigo fonte. Feito
isto, o sistema copia o arquivo zipado para o servidor e descompacta o arquivo;
analisar os arquivos copiados - o sistema verifica os arquivos de maneira a encontrar vrus, arquivos
corrompidos e identificar os arquivos dos tipos indicados pelo usurio;
gerar o rastreamento entre cenrios e cdigo fonte - o sistema identifica o relacionamente entre cenrios
e cdigo fonte e os registra em um arquivo XML, as infomaes identificadas aqui so utilizadas para
definir o rastro (navegabilidade) entre cenrios e cdigo quando o sistema estiver gerando os outros
documentos;
gerar documentao - tendo selecionado os arquivos de cdigo apropriados o sistema inicia o processo de
extrao de cenrios do cdigo. Neste processo, para cada arquivo de cdigo criado um arquivo XML, a
menos que no haja cenrios no arquivo de cdigo. Os arquivos XML obedecem a DTD utilizada no C&L
para gerao de XML. Entretanto, nos arquivos XML aqui gerados tem-se uma informao a mais, o cdigo
referente a cada episdio ou exceo do cenrio. O cdigo foi inserido no arquivo XML atravs do tipo
CDATA;
disponibilizar a documentao para que o usurio faa download - a documentao zipada e um link
para ela disponibilizado para o usurio.
criar um arquivo para registro de erros - C&Ldoc relata todos os erros ou excees encontradas no
arquivo exceptionsC&Ldoc.txt disponibilizado junto a documentao no final do processo. Este arquivo
pode ser utilizado pelo desenvolvedor para detectar que cenrios esto incompletos ou incorretos segundo
alguns critrios estabelecidos a partir da gramtica definida, e que arquivos de cdigo no foram
comentados com cenrios. Um exemplo deste arquivo de excees ilustrado na Figura 16.


16
*******************************************************
Inicio do processo de criao do xml de relacionamentos.
*******************************************************
No h cenrios no arquivo - CELdoc_config.php
No h cenrios no arquivo - CELdoc_regularExpr.php
Fim do processo de gerao do xml de relacionamentos.
*******************************************************
Inicio do processo de criao do xml dos arquivos de cdigo.
*******************************************************
File Name: CELdoc_config.php
Attention: No h cenrios no arquivo - CELdoc_config.php.
File Name: CELdoc_help.htm
Scenario: 1
Error: No h EPISODE.
File Name: CELdoc_library.php
Scenario: 1
Scenario: 2
Error: No h EPISODE.
Scenario: 3
Error: No h EPISODE.
Scenario: 4
Scenario: 5
Scenario: 6
Error: No h EPISODE.
Scenario: 7
Error: No h EPISODE.
Scenario: 8
Error: No h EPISODE.
Scenario: 9
Scenario: 10
Scenario: 12
Error: No h EPISODE.
Scenario: 13
Scenario: 14
Scenario: 15
Scenario: 16
Scenario: 17
Scenario: 18
Scenario: 19
Scenario: 20
Scenario: 21
Scenario: 22
Scenario: 23
Error: No h EPISODE.
File Name: CELdoc_main.php
Scenario: 1
File Name: CELdoc_regularExpr.php
File Name: CELdoc_result.php
Scenario: 1
File Name: CELdoc_tool.php
Scenario: 1
Fim do processo de criao do xml dos arquivos de cdigo.
Criar o arquivo XML de
relacionamentos: Nos arquivos
CELdoc_config.php e CELdoc-
regularExpr.php no h cenrios
Criar os arquivos XML dos arquivos de
cdigo:
- No h episdios no primeiro cenrio
do arquivo CELdoc_help.htm.
- No h episdios no segundo,
terceiro, sexto, stimo, oitavo dcimo
segundo e terceiro do cenrio do
arquivo CELdoc_library.php.
- Nos arquivos CELdoc_main.php,
CELdoc_regularExpr.php,
CELdoc_result.php e CELdoc_tool.php
no h excees.

Figura 16. Exemplo do arquivo de excees gerado pelo C&Ldoc
A documentao gerada composta dos arquivos seguintes. Os trs primeiros itens so arquivos
previamente criados, ou seja, para qualquer projeto eles so os mesmos:
1. HTM - O arquivo index.htm integra a documentao. Este o arquivo por onde o usurio deve comear a
navegao pela documentao criada. Ele define os frames da documentao.
2. DTDs - Trs DTDs integram a documentao:
scenarios.dtd - determina o formato dos arquivos de cdigo comentados com cenrios, veja na Figura 15.
lexicon.dtd - determina o formato do arquivo com o Lxico Ampliado da Linguagem (LAL) , veja na
Figura 14.
relationScenarioCode.dtd - determina o formato dos arquivos de relacionamentos entre cdigo e cenrios.
3. XSLs - Quatro XSLs integram a documentao:
scenarios.xsl - determina o formato que os arquivos de cdigo (nome_do_arquivo_de_codigo.XML) sero
apresentados para o usurio (no browser).
lexicon.xsl - determina o formato que o arquivo do lxico (lexicon.XML) ser apresentado para o usurio
(no browser).
home.xsl - determina o formato que o arquivo de abertura da documentao (home.XML) ser
apresentado para o usurio (no browser).
relationCodeScenario.xsl - determina o formato que o arquivo de relacionamentos entre cdigo e cenrio
(relationCodeScenario.XML) ser apresentado para o usurio (no browser).
relationScenarioCode.xsl - determina o formato que o arquivo de relacionamentos entre cenrio e cdigo
(relationScenarioCode.XML) ser apresentado para o usurio (no browser).
4. XMLs - No mnimo trs XMLs integram a documentao:
relationScenarioCode.XML, relationCodeScenario.XML e home.XML. Estes trs arquivos esto no
formato definido em relationScenarioCode.dtd e possuem basicamente o mesmo contedo variam apenas
o formato em que so apresentados para o usurio, utilizando relationScenarioCode.xsl,
relationCodeScenario.xsl e home.xsl, respectivamente.
17
Se no arquivo submetido pelo usurio no contiver arquivos no formato determinado ou no tiver
cenrios neles ento C&Ldoc no gera nenhum outro arquivo XML. Caso contrrio, C&Ldoc cria um
arquivo XML para cada arquivo de cdigo comentado com cenrio. Estes arquivos esto de acordo com a
DTD scenario.dtd e so apresentados segundo o arquivo scenarios.xsl.
5. TXT - O arquivo exceptionsC&Ldoc.txt integra a documentao. Ele relata algumas das excees ocorridas
durante o processo de gerao da documentao.
Cenrios + Cdigo
Links para outros
cenrios + cdigo

Figura 17. Exemplo de documentao gerada pelo C&Ldoc
Na Figura 17 ilustramos um exemplo de documentao gerada pelo componente C&Ldoc. No lado
esquerdo da Figura 17, h a lista de cenrios encontrados nos arquivos do projeto e a lista de arquivos de cdigo
do projeto. No lado direito est o cenrio Gerar documentao. Este cenrio comentrio do mdulo
CELdoc_tool.php. As informaes do cenrio so intercaladas com o cdigo. O cdigo mostrado ainda no est
no formato apropriado, mas estamos providenciando esta formatao.
4. Trabalhos Relacionados
Apesar de no haver uma ferramenta que d suporte total atividade de engenharia de requisitos, h
algumas ferramentas que de alguma maneira a apiam. Algumas ferramentas para requisitos so produtos
comerciais, produtos acadmicos ou experimentais, software livre, outros esto relacionados a uma ou um
conjunto de tcnicas ou modelos tais como produtos relacionados a ontologias, a casos de uso ou cenrios, a
glossrios e a geradores automticos de documentao.
Exemplos de ferramentas comerciais especficas para Engenharia de Requisitos so Doors [Doors] e
RequisitePro [RequisitePro]. Elas permitem a definio de requisitos e seus atributos como exemplo, tipo do
requisito, status, rastreabilidade entre requisitos. Estas ferramentas tambm possibilitam registrar o rationale
associado a mudanas em requisitos. Ferramentas como Rational Rose [RationalRose] e Together [Together] que
do apoio ao processo de desenvolvimento, apesar de no focarem na atividade de requisitos do suporte
modelagem de casos de uso. Entretanto, no oferecem tcnicas para melhorar a descrio de casos de uso nem


18
integrao entre estes e o cdigo ou outros diagramas da UML. Ferramentas ainda mais genricas como editores
de texto tambm so utilizadas nesta atividade. O Microsoft Word, por exemplo, ainda uma das ferramentas
mais utilizadas para apoiar as atividades de Requisitos.
Todas estas ferramentas so produtos com um alto padro de qualidade com propsitos um pouco
diferentes da ferramenta C&L. C&L, alm de ser uma ferramenta experimental que atende tanto a modelagem de
requisitos quanto a criao do lxico e do rastreamento entre eles, distribuda como software livre. C&L
fundamentada nas tcnicas de cenrios e lxico para dar apoio ao desenvolvimento de software.
O crescente interesse pelas tcnicas de cenrios e lxico tem impulsionado o surgimento de tcnicas
para o desenvolvimento de software fundamentadas nelas. Exemplos so, validao de requisitos [Sutcliffe02],
verificao de requisitos [Duran02][McCoy03][Doorn98][Kaplan00], derivao de objetos [Fresno98], gerao
de documentao [Silva03], gerncia por requisitos [Kroll03][Cockburn00], dentre outras. Essas tcnicas esto
mais ou menos bem desenvolvidas dependendo do conceito de cenrio e lxico considerado. Mesmo para as
tcnicas bem estabelecidas h poucas ferramentas que dem apoio e principalmente que permitam a edio de
cenrios e lxico em conjunto.
REM [REM][Duran02] e RUT [RUT][McCoy03] so ferramentas para gerncia de requisitos que
permitem a descrio de casos de uso e a verificao dos requisitos, usando templates prprios. REM utiliza
XML e XSLT como modelos exportados da ferramenta se assemelhando a abordagem utilizada no C&L. RUT
est integrada ao Rational Rose e prov algumas mtricas para obter informaes sobre os relacionamentos
existentes entre casos de uso. RUT uma ferramenta para Web desenvolvida usando as tecnologias de software
livre PHP e MySQL. Elas esto relacionadas ferramenta C&L devido ao enfoque em um tipo de cenrio e ao
uso de algumas tecnologias tais como XML, XSLT, PHP e MySQL. Alm disso, ambas tem funcionalidades
referentes verificao de casos de uso, esta uma funcionalidade que est sendo acrescentada a C&L.
Hear [Petersen00] uma ferramenta para a descrio de documentao navegvel de um baseline que
utiliza a definio de cenrios e lxico descritas na Seo 2. Ela foi desenvolvida em Java e utiliza o banco de
dados MySQL. Esta abordagem foi um ponto de partida para o desenvolvimento da ferramenta C&L. Alm das
funcionalidades de edio, C&L promove o desenvolvimento colaborativo, automatiza a rastreabilidade entre
lxico e cenrios, gera ontologias e est integrada com um mdulo para gerar documentao automaticamente,
como apresentamos na Seo 3.
Quanto edio de ontologias, existe no mercado uma srie de ferramentas. No entanto, no encontramos
nenhuma que fornea apoio a um processo completo de forma que pessoas que no so especialistas em
ontologias possam desenvolv-las. A maioria das ferramentas disponvel guia o usurio apenas na modelagem do
conhecimento do domnio esquecendo que necessrio antes elicitar este conhecimento. Tratam-se,
basicamente, de editores de ontologias.
Exemplos so: OilEd [OilEd03] um simples editor de ontologias. Ele utiliza as linguagens DAML+OIL;
OntoEdit [OntoEdit03] um ambiente de engenharia de ontologias que d suporte a um processo (no
automtico) para gerar ontologias. No OntoEdit armazenado o modelo conceitual da ontologia de forma que
seja possvel fazer a transformao dessa representao conceitual para a maioria das linguagens de
representao de ontologias como RDF(s), XML, DAML+OIL ou F-Logic; Protg-2000 [Protege2000] um
ambiente de plataforma independente e extensvel para criao e edio de ontologias e bases de conhecimento;
Chimaera [Chimaera03] um sistema de software que apia o usurio na criao e manuteno de ontologias
distribudas na Web. Suas duas principais funes so: combinao de mltiplas ontologias e diagnstico de
ontologias individuais ou mltiplas.
Estas ferramentas se diferenciam de C&L porque nela temos o LAL como uma base madura para o
processo proposto em [Breitman03] de forma a automatizar a gerao de ontologias, tendo a interveno do
usurio apenas naquelas em que haja absoluta necessidade. No entanto, ainda falta nesse ambiente uma interface
grfica amigvel para a visualizao das ontologias geradas e exportadores para as demais linguagens de
representao. A idia que o C&L seja um front-end para outras ferramentas especficas para ontologias.
Quanto gerao automtica de documentao, na literatura h algumas propostas para documentar o
cdigo fonte. Em [Knuth84], prope-se a programao literria em que comentrios estruturados so inseridos
no cdigo fonte e posteriormente tratados por um pr-processador. Estes comentrios tm como objetivo facilitar
a compreenso de um sistema complexo atravs da rede de ligaes (denominada WEB) entre um componente e
os outros que esto relacionados a ele diretamente. Staa em [Staa00] define um padro para comentrios e
19
marcadores tendo em vista a possibilidade de utilizar ou desenvolver ferramentas para gerao da documentao
tcnica a partir dos arquivos de cdigo. Este padro no s define normas para mostrar a estruturao do
programa como tambm para manter informaes histricas de evoluo. O uso de arquiteturas para re-
construo de documentao foi explorado por Braga [Braga88] na reunio de um navegador de hipertexto com
um sistema transformacional; o sistema Documentu possibilita a gerao a partir de cdigo legado de uma
documentao baseada em hipertexto.
Algumas linguagens de programao possuem aplicativos para apoio documentao de cdigo fonte. A
documentao JavaDoc gerada pelo uso de um aplicativo da linguagem Java que utiliza comentrios e tags
HTML inseridos no cdigo fonte com esta finalidade. O aplicativo percorre o cdigo fonte identificando seus
componentes (classes, interfaces, atributos, mtodos), gerando pginas HTML com hyperlinks aos objetos,
mtodos e classes relacionados. A navegao nas janelas de documentao do software viabilizada atravs dos
hyperlinks exibidos nas prprias pginas do JavaDoc. As pginas geradas refletem o trabalho de documentao
realizado pela equipe de programao envolvida no projeto. PHPDoc uma adaptao do JavaDoc para a
linguagem PHP. A linguagem PHP possibilita ainda que o cdigo do mdulo a ser executado seja exibido ao
usurio atravs de sua funo show_source() [Php03].
O gerador de documentao do C&L assemelha-se as propostas de Knuth, Staa, Braga e Javadoc para
criar uma documentao baseada em cenrios e lxico. Os hiperlinks gerados pela ferramenta retratam o rastro
existente entre cdigo e cenrios. Desta forma, possvel fazer a rastreabilidade entre cdigo e requisitos
expressos nos cenrios. Ter uma documentao baseada em cenrios permite o desenvolvedor entender mais
rapidamente a arquitetura do software e o impacto que mudanas em um requisito pode ocasionar em seus
mdulos. No contexto de software livre, isto pode favorecer a entrada de novos participantes em um projeto.
5. Concluses e Trabalhos Futuros
Neste artigo apresentamos uma ferramenta experimental que parte de um projeto de pesquisa na PUC-
Rio. A ferramenta C&L d apoio atividade de modelar requisitos de software utilizando as tcnicas de cenrios
e lxico. Alm disso, C&L est integrada s tcnicas de gerao de ontologias a partir do LAL, descrita em
[Breitman03], e de gerao de um documento hiper-textual de rastreabilidade entre cdigo e cenrios, descrita
em [Silva03].
O uso de C&L viabiliza o trabalho cooperativo entre engenheiros de requisitos, geograficamente
separados, sobre um mesmo projeto. A gerao automtica do rastro entre cenrios, entre cenrios e lxico, entre
termos do lxico, entre lxico e ontologia e entre cdigo e cenrios agiliza as tarefas de evoluo de software,
pois possibilita ao desenvolvedor entender mais rapidamente o UdI, os requisitos do usurio, a estrutura do
cdigo e como estes esto relacionados. Com a rastreabilidade o desenvolvedor torna-se mais apto a identificar o
impacto que mudanas nos requisitos podem ocasionar no projeto. C&L tem sido utilizada como estudo de caso
para vrios experimentos do grupo de engenharia de requisitos da PUC-Rio. No momento estamos realizando
estudos sobre sua interface, sobre evoluo de software, sobre a aplicabilidade do processo extreme
programming e no ensino da engenharia de software.
Como trabalhos futuros, sugerimos trs conjuntos de evolues: a elaborao de componentes que
realizem novas funcionalidades, tais como, gerao e visualizao de diagramas de cenrios, extrao da lista de
requisitos a partir dos cenrios, elaborao de cronogramas, planejamento para evoluo do projeto,
componentes que dem suporte ao reuso de projetos ou partes de projetos (cenrios e lxico); funcionalidades
que apiem os processos de verificao e validao, tais como, inspeo de cenrios e gerao de casos de teste;
e a melhoria da usabilidade, tais como, exportao de todas as informaes do projeto para diferentes formatos, o
desenvolvimento de um instalador e configurador de ambiente automtico para ferramenta, e algumas melhorias
na interface, no tratamento de excees e na documentao disponvel.


20
C&L
Editar
cenrios
Criar
ontologias
Gerenciar
usurios e
projetos
Criar XML
Criar
documentao
CELdoc
Editar lxico
Inspecionar
cenrios
Criar casos
de teste
Criar
diagrama de
cenrios
Exportar
documentao
Planejar
iteraes do
projeto

Figura 18. Estrutura funcional de futuras verses do C&L
Ilustramos alguns destes componentes na Figura 18. Os componentes de cor cinza-escuro so os que
atualmente esto implementados na verso disponvel do C&L, os de cor cinza-claro esto em desenvolvimento,
e os de cor branca so os componentes que pretendemos implementar nas prximas verses da ferramenta.
Acreditamos que a disponibilizao de ferramentas integradas que dem apoio ao desenvolvimento de software
guiado por requisitos necessria e promove um melhor nvel de qualidade aos produtos de software gerados.
Agradecimentos
A ferramenta C&L resultado do trabalho colaborativo entre os alunos das disciplinas Princpios de
Engenharia de Software e Evoluo de Software da PUC-Rio (Pontifcia Universidade Catlica do Rio de
Janeiro), desde o primeiro semestre de 2002
Referncias
[Beck99] Beck, K. Extreme Programming Explained. 1st edition. Addison-Wesley Publishing Company, 1999.
[Braga88] Braga, C., von Staa, A., Leite, J. Documentu: A Flexible Architecture for Documentation Production
Based on a Reverse-engineering Strategy. Journal of Software Maintenance: Research and Practice, Vol.
10, Issue 4, p.p. 279 303, John Wiley & Sons, Ltd., July 1998.
[Breitman02] Breitman, K., Leite, J. Managing User Stories. International Workshop on Time Constrained
Requirements Engineering, 2002.
[Breitman03] Breitman, K.K; Leite, J.C.S.P.- Lexicon Based Ontology Construction - 2nd. International
Workshop on Software Engineering for Large Scale Multi Agent Systems - SELMAS - ACM computer
Press, Portland Oregon, 2003.
[CaliberRM] Disponvel em http://www.borland.com/caliber/.
[C&L] Disponvel em <http://sl.les.inf.puc-rio.br/cel>.
[Chimaera03] Disponvel em <http://www.ksl.stanford.edu/software/chimaera>.
[Cockburn00] Cockburn A. Writing Effective Use Cases. 1st edition,
Addison-Wesley, 2000.
[DBdesigner] Disponvel em <http://www.fabforce.net/dbdesigner4/index.php>.
[Doors] <http://www.teLALogic.com/products/doorsers/doors/index.cfm>
[Doorn98] Doorn, J., Kaplan, G., Hadad, G., Leite, J.C.S.P. Inspeccion de Escenarios, WER 98-Workshop de
Engenharia de Requisitos, Departamento de Informtica PUC-Rio, pp. 58-69, 1998.
[Duran02] Durn A., Ruiz-Corts A., Corchuelo R. and Toro M. Supporting Requirements Verification Using
XSLT. Proceedings of IEEE Joint International Conference on Requirements Engineering (RE'02), pp.165,
Essen, Germany, September 09 - 13, 2002.
21
[Felicissimo03] Felicssimo C., Silva L., Breitman K., Leite J. Gerao de Ontologias Subsidiada pela
Engenharia de Requisitos. Proceedings of WER03 - Workshop em Engenharia de Requisitos, Piracicaba-SP,
Brasil, Novembro 27-28, 2003, pp 255-269.
[Fresno98] Fresno M., Mauco V., Ridao M., Doorn J., Rivero L. Derivacin de objetos utilizando LAL y
Escenarios en un caso real. Proceedings of WER98 - Workshop em Engenharia de Requisitos, Maring-PR,
Brasil, Outubro 12, 1998, pp 89-98.
[Petersen00] Petersen L., Tornabene S., Leonardi M., Doorn J. HeAR, Una herramienta de Adquisicin de
Requistos. Anais do WER00 - Workshop em Engenharia de Requisitos, Rio de Janeiro-RJ, Brasil, Julho 13-
14, 2000, pp 38-52.
[Hendler01] Hendler, J. Agents and the Semantic Web IEEE Intelligent Systems. pp.30-37, March/April - 2001.
[Holanda03] Christoph R. Engenharia de software para software livre, Dissertao de mestrado. Departamento
de Informtica da PUC-Rio, 2004.
[IEEE98] IEEE Transactions on Software Engineering, Scenario Management edition, Vol.24, N. 12, Dec 1998.
[Kaplan00] Kaplan, G.; Hadad, G.; Doorn, J.; Leite, J.C.S.P. Inspeccin del Lexico Extendido del Lenguaje In
Proceedings of the Workshop de Engenharia de Requisitos ER00 Rio de Janeiro, Brazil 2000.
[Kroll03] Kroll P., Kruchten P. The Rational Unified Process Made Easy: A Practitioner's Guide to Rational
Unified Process, 1st edition, Addison-Wesley, 2003.
[Leite93] Leite, J.C.S.P. and Franco, A.P.M. A Strategy for Conceptual Model Acquisition. First International
Symposium on Requirements Engineering. Proceedings. IEEE Computer Society Press, 1993. pp. 243-246.
[Leite97] Leite, J.C.S.P, Rossi, G., Balaguer, F., Maiorana, V., Enhancing a requirements baseline with
scenarios. In: Third IEEE International Symposium on Requirements Engineering - RE97, Proceedings. IEEE
Computer Society Press, January, 1997, pp 44-53.
[Leite00] Leite, J.C.S.P., Hadad, G., Doorn, J., Kaplan, G. A Scenario Construction Process. Requirements
Engineering Journal: Vol. 5, N. 1, Pags. 38 -- 61, (2000), Springer-Verlag London Limited.
[Maedche02] Maedche, A.; Ontology Learning for the Sematic Web Kluwer Academic Publishers, 2002.
[McCoy03] McCoy, J. Requirements Use case Tool (RUT). OOPSLA 2003 conference in Anaheim, CA in
October 2003.
[Noy01] Noy, N.; McGuiness, D.; Ontology Development 101 A guide to creating your first ontology KSL
Technical Report, Standford University, 2001.
[OilED03] Disponvel em <http://oiled.man.ac.uk/>.
[OntoEdit03] Disponvel em <http://www.ontoprise.de/products/ontoedit_en>.
[Protg2000] Disponvel em <http://protege.stanford.edu/>.
[RationalRose] Disponvel em <http://www-306.ibm.com/software/awdtools/developer/modeler/ >
[REM] Disponvel em <http://rem.lsi.us.es/REM/REM_english_main.html>
[Requisite-Pro] Disponvel em < http://www-306.ibm.com/software/awdtools/reqpro/>
[Rolland98] Rolland, C.; Achour, B.; Cauvet, C.; Ralyt, J.; Sutcliffe, A.; Maiden, N.; Jarke, M.; Haumer, P.;
Pohl, K.; Dubois, E.; Heymans, P. A proposal for a scenario classification framework. Journal of
Requirements Engineering vol. (3) Springer Verlag, 1998. pp. 23-47.
[RUT] Disponvel em <http://satc.gsfc.nasa.gov/tools/rut/>.
[Sayo03] Sayo, M.; Inspeo de cenrios. Relatrio tcnico realizado na disciplina Projeto Final de
Programao, Departamento de Informtica- PUC-Rio, 2003.
[Silva03] Silva, L., Sayo M., Leite J.C.S.P., Breitman, K. Enriquecendo o Cdigo com Cenrios. Simpsio
Brasileiro de Engenharia de Software (SBES), 2003.
[Silva04] Silva, L., Leite J.C.S.P., Breitman, K. Ensino de Engenharia de Software: Relato de Experincias.
Workshop de Educao em Computao (XII - WEI ), Agosto - 2004.
[Sommerville01] Sommerville, Ian. Software Engineering, 6th edition, Addison-Wesley, 2001.


22
23
[Staa00] Staa, Arndt von. Programao Modular: Desenvolvendo programas complexos de forma organizada e
segura. Campus, Rio de Janeiro, 2000.
[Sutcliffe02] Sutcliffe A.G. & Gregoraides A. Validating Functional System Requirements with Scenarios,
Proceedings 11
th
International Conference on Requirements Engineering, IEEE Computer Society Press,
181-188, 2002.
[Together] Disponvel em <http://www.borland.com/together/ >.
[W3Consortium03] Disponvel em <http://www.w3.org>.
[Weidenhaupt98] Weidenhaupt, K.; Pohl, K.; Jarke, M.; Haumer, P. Scenario Usage in system development:
current practice IEEE Software Vol. 15 No.2 March, 1998. pp.34-45.

You might also like