<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>30 Enwntro Nacianal para a Qualidade masTecnologias de Informao Umiversidade do Minho 46 de Novembro 1998</institution>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>e ComunicaSes</institution>
        </aff>
      </contrib-group>
      <fpage>75</fpage>
      <lpage>96</lpage>
      <abstract>
        <p>________________________________________________________________________</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>.^"</p>
    </sec>
    <sec id="sec-2">
      <title>Pedro Rez'sdos Santos</title>
    </sec>
    <sec id="sec-3">
      <title>Rui Gustavo Crespo</title>
      <p>Instituto Superior Tcnico
Resume
0 desenvolvimento de software</p>
      <p>ainda uma tarefa exigente para os engenheiros
de software apesar das ferramentas e ambientes de desenvolvimento existentes. A escolha
de
componentes
para
reutilizao,
quando
existem
solu6es
alternativas,
frequentemente intuitiva com base em critrios subjectivos com origem na experincia
anterior. Este trabalho prop5e a utilizo
de identificadores, obtidos nos diversos
componentes candidatos a reutilizao,</p>
      <p>classificando"os por forma a realizar testes
comparativos Quepermitam urns escolha mais esclarecida A mesma tcnica
utilizada
para permitir detectar inconsistncias,</p>
      <p>entre diversas fases do mesmo processo de
desenvolvimento, pol comparaVo dos atributos usados na classificao.
assifica4!;;:geoSelao
mProjectos de gofrware
llntmdul!;;:do</p>
      <sec id="sec-3-1">
        <title>A reutilizao de software 6 quase to antiga como o pr6prio software. Os</title>
        <p>sistemas operativos so um dos primeiros exemplos de reutilizao em larga escala. A
reutilizao de software pode aumentar significativamente a qualidade e a produtividade</p>
        <p>Factores dominantes na reutilizao de software incluem a existncia de
componentes de alta qualidade e de confiana, a exist8ncia de um processo de
desenvolvimento de software comum e um ensino que promova a reutilizao. O ensino
da reutiliza5o pode ser visto como o motor de todo o processo, mas no pode s6 por Si
produzir resultados significativos, necessitando de suporte apropriado. Esse suporte deve
ser construido em tomo de um processo de desenvolvimento de software comum por
forma a poder guiar um engenheiro de software experiente (treinado). No entanto, a
existSncia de componentes de alta qualidade no depende Dem do processo de
desenvolvimento de software Dem do engenheiro. Contudo, o processo de
desenvolvimento de software deve ajudar o engenheiro na tarefa de identificar Os
componentes de alta qualidade. Desta forma, o maior esforo deve ser colocado em
______________________________________________________________________
30 Emcontro Nacional para
2 a Qualidade masTecnologias de Informal!;do e Comunica9Ses
UnJversidade do Minho
46 de Novembro 1998
treinado aumentar a reutilizao</p>
        <p>e a qualidade da mesma atravs da correcta identificao|I
A represent&amp;o
e especificao
de componentes de software reutilizveis
exige
t6cnicas de classificaVo Que permitam de uma forma automtica ou assistida a seleco
dos mesmos. A seleco</p>
        <p>s6 poder set automatic&amp; se os requisitos corresponderem
precisamente s caracteristicas dos componentes. Caso contro,
ter-se
de encontrar os
componentes Quemais se aproximam dos requisitos e alteros
subsequentemente. Por
vezes as caracteristicas
que descrevem
os componentes esto
incorrectamente</p>
      </sec>
      <sec id="sec-3-2">
        <title>Existe pois uma necessidade para um motor de busca que permit&amp;seleccionar um dos sintomas do doente.</title>
        <p>30 Encontro Nacional para
a Qualidade nas Tecnologias de Informa5o e ComunicaC6es
Universidade do Minho
46 de Novembro 1998</p>
      </sec>
      <sec id="sec-3-3">
        <title>O objectivo deste trabalho reside em descrever componentes de software por</title>
        <p>3
ssificaCSae Seleca de Campanentes
Prajectas de Saare
orma a perruitir pesquisas automaticas e buscas manuals esclarecidas, a fim de
;eleccionar o componente Que melhor se adapte necessidades. A componente
humana foi especialmente tida em conta uma vez que pessoas ou t6cnicas de trabalhos</p>
        <p>Os componentes de software podem ser descritos a diversos mveis Que podem ir
desde os requisitos ao c6digo propriamente dito. A forma mais simples de descrever um
componente 6 textualmente, em portugues ou ingls, normalmente sob a forma de
manual. Esta pode ser uma forma aceitvel para componentes de alta qualidade e que
exibam uma elevada estabilidade temporal. No entanto, mesmo nestes casos, frequentes
erros de interpretao conduzem no s6 a uma selec5o menos boa como a uma utilizao
incorrecta [7], Mais frequente contudo, a discrepcia entre a conteddo do manual e o
Que o software realmente faz. Este facto 6 especialmente preocupante quando surge em
produtos ditos de qualidade. A documentao representa frequentemente aquilo Que Se
Pretende Que o produto realize e no aquilo Que ele efectinamente faz. For outro lado,
pouco software se pode considerar completamente estavel e no sujeito a alterao,
excepto quando j est completamente ultrapassado e consequentemente intil. Embora
existam tcnicas que permitam manter a documentao sincronizada com o c6digo, estas
exigem vastos recursos humanos o Que aumenta o custo e o tempo de desenvolvimento
do produto. For outro lado, a documentag5o 6 dificil de analisar com o auxnio de_____
4
30 Encantra Nacianal para
a Qualidade masTecnalogias de Infarmai!;;ga e CamunicaCSes
Universidade do Minha
46 de Novembro 1998
ferramentas, com o objectivo de identificar certos paretros</p>
      </sec>
      <sec id="sec-3-4">
        <title>Chane.</title>
        <p>Tcnicas
de classificao</p>
        <p>oferecem uma forma simples e titil de catalogar
componentes de software. Esquemas de classificao
simples recorrem
a t6cnicas
enumeratinas, tal como o sistema decimal de Dewey, mas so
muito vagas para
de assinaturas, For outro lado,
uma aproximao
mais formal,
beneficiando do facto de o software, mesmo que possa ser visto como texto,
de facto
bastante
estruturado.</p>
      </sec>
      <sec id="sec-3-5">
        <title>A ideia baseia"se em descrever os componentes</title>
        <p>ao nivel da
interface.
de uma form&amp; simplista, a comparao
limita-se
a
caractensticas sintacticas do componente. Um pouco
semelhana dos mecanismos
3o Encontro Nacional para
a Qualidade nas Tecnologias de InformaS5o e ComunicaSes
Universidade do Minho
6 de Novembro 1998
assificagSo e Seto</p>
        <p>de Componerdes
n Projedos de Soare
usados pelas linguagens para oferecer compilao
separada. Solu6es menos restritivas
tSm sido propostas [25] por forma a eliminar restri6es sintacticas tais como a ordem
dos paretros,
composi8o de tipos agregados ou subtipifica&amp;o. A comparao
de tipos
agregados definidos pelo utilizador, hierarquias de tipos, paretros
opcionais ou
paretros</p>
        <p>gen6ricos toma-se muito complicada sendo diflcil chegar a conclus6es
trabalho descrito neste documento pode ser incluido neste grupo.
[
30 Encontro NacionaE para
a Qualidade nas Tecnologias de Informai;;go e ComunicaC:Ses
Universidade do Minho
46 de Novembro 1998</p>
        <p>Numa primeira aproximao
toma-se necesso
determinar qual a informao
re}evante e Que deve ser utilizada na descrio
do componente. A informao
relevante
deve depois ser representada
de uma forma
compacta
de tal forma
que seja
significativamente mais fcil analisa</p>
        <p>qua analisar o componente propriamente dito.</p>
      </sec>
      <sec id="sec-3-6">
        <title>A abstraco</title>
        <p>uma tcnica fundamental para compreender e resolver problemas
suprimem informao</p>
      </sec>
      <sec id="sec-3-7">
        <title>Que pode vir a ser importante. Alm disso, o realismo e pormenor</title>
      </sec>
      <sec id="sec-3-8">
        <title>A aproximaao</title>
        <p>descrita no</p>
        <p>usa, em princfpio, identificadores ou vistas
prdefinidos. Na realidade, alguns identificadores, utilizados como pontos de entradas, so
necessios.</p>
        <p>Desta forma os identificadores utilizados, no necessitam ser aqueles Que
melhor Se aproximarn de entre Os disponiveis, mas os identificadores efectivarnente
utilizados. A ansncia</p>
        <p>de estereotipos permite maior realismo e expressividade,
facilitando a seleco
manual mas dificultando a utilizaVo de mtodos
automticos
ou
serni-automticos. Como o processo de classificaVo tern em conta o contexto em Que o__
30 Encontro Nacional para
a Qualidade nos Tecnologias de InformsG8o e Comunicaq;;Ses
Universidade do Minho
46 de Novembro 1998
identificador 6 utilizado, mesmo que Se utilizem terrnos diferentes para descrever o
mesmo conceito estes sero armazenados em zonas adjacentes- Este facto facilita a
inspeco manual pois existe o conceito de localidade.
compo:nente.</p>
        <p>8</p>
      </sec>
      <sec id="sec-3-9">
        <title>No entanto, o identificador pode no ser s6 por si esclarecedor, mesmo que o</title>
        <p>Horne Que Ihe es associado o seja. De ial forma a informsVo de contexto onde o
identificador se situ&amp; pode no ser suficientemente esclarecedora. Para tal deve ser
pOSSj[vel utilizar atributos que permitam esclarecer o comportamento ou a funcionalidade
do identificador num dado contexto. Os atributos, apesar da sua funVo particular, podem
36 Encontro Nacional para
a Qualidade nas Tecnologias de Informao
Universidade do Minho
46 de Novembro 1998</p>
        <p>e Comunica(;;Ses
tamb6m ser tratados como identificadores</p>
      </sec>
      <sec id="sec-3-10">
        <title>Que caracterizam</title>
        <p>outros identificadores e cujol</p>
      </sec>
      <sec id="sec-3-11">
        <title>Desta forma e possivel obter um modelo Que apresenta grande uniformidade e</title>
        <p>economia de conceitos. A uniformidade
dtil pois
de mais fcil
compreenso
e</p>
      </sec>
      <sec id="sec-3-12">
        <title>As hierarquias so</title>
        <p>estruturas organizadas onde diferentes niveis de abstraco
Os identificadores usados na descrio
dos objectos so
model&amp;dos numa
ore,
retendo uma referncia</p>
        <p>para a sua posiVo original no objecto. Estes identificadores,
depois de caracterizados, continuam a exibir as associa6es dos objectos originais [31. As
equivalncias representam, mama segunda fase, essas mesmas associa5es na
ore Que</p>
      </sec>
      <sec id="sec-3-13">
        <title>Se transform&amp;num grafo [10]. So as equivalncias</title>
      </sec>
      <sec id="sec-3-14">
        <title>Que permitem descrever rela6es de partilha barn como definir objectos como extens6es de outros [16]. Desta forma, enquanto os identificadores designam as entidades originais e os sens valores, as</title>
        <p>30 Encontro Nacional para
a Qualidade nas Tecnologias de Informai;:8n e ComunicaC:5es
Universidade do Minho
4-6 de Novembro 1998
assificaq!;:a-eoSeto
n Projectos de Soare
equival8ncias permitem a um identificador referir outro identificador.</p>
      </sec>
      <sec id="sec-3-15">
        <title>Alm dos identificadores e das equival6ncias que trabalham no doII1inio dos</title>
        <p>Domes existem ainda as referncias e os tipos Que trabalham no dominio doS valores.
Uma refer6ncia permite a uma entidade referir outra e por vezes designada porponteiro"
O tipo perrllite a uma entidade no dormnio dos vaiores referir um identificador no
dornfnio dos Domes. Quer as referncias quer os tipos podem, normaimente, ser inferidos
a partir dos dados originals. No entanto, caso estes estejam incompletos ou incorrectos
PC
in
dz
OE
de
cc
re
Va
de
qt:</p>
      </sec>
      <sec id="sec-3-16">
        <title>Como o sistema baseado na repeti80 de um conjunto de esmr simples,</title>
        <p>com origem numa ore de Domes, as ferramentas so tambm simples e compactas.
Embora as ores produzidas sejam a partida excessivamente grandes para permitir uma
anise manual esclarecida s8o pequenas dadas as velocidades de qualquer modesto
computador pessoal. Para obter sub.-arVores de menores dimens5es que permitam
responder a perguntas especlflcas, so fundamentals trs opera6es base: determinao do
contexto, qualificao do identiBcador e localizao- Uma quarta operao de busca pode</p>
      </sec>
      <sec id="sec-3-17">
        <title>OperaBes destinadas a obter o contexto de um identificador devolvem o</title>
        <p>conjunto de identificadores que constituem o caminho desde a raiz da arvore at6 ao
identificador em questo. Estas opera5es permitem construir uma nova vole em Queo
mesmo identificador surge em vOs contextos, para os poder comparar.
Alternativamente, podem-se seleccionar vos identificadores de uma mesma vista com
o prop6sito de obter urn&amp;representao mais compacta da mesma. Uma operao de
qualificao de um identificador permite determinar os seus atributos, ou seja, os
identificadores do nine! imedintamente abaixo daquele onde Se situa. Desta forma
podeSeenriquecer alguns identiflcadores com informaV8oadicional em detrimento de outros
menos importantes para uma dada perspectiva de anise. A operao de localizaVo
oferece o conjunto de identiflcador Que existem no mesmo nfvel de um dado
________________________________________________________________________
a3U0nQiEuvnaeclrisodinaddbaeodemNdaaodsoTMneiacnlnhooploargaias de Informao e Comunica5es 11
4-6 de Novembro 1998
assificacao e gelecofffode ComDonent
identificador, para um determinado contexto. Consegue-se, com esta operao,
obter
uma viso</p>
        <p>mais riEorosa dos identificadores com cue este Se relaciona e entre Osauais
existe, quase certamente, uma forte dependencia.</p>
      </sec>
      <sec id="sec-3-18">
        <title>Enquanto alguns modelos optam por oferecer um elevado nl{:imerode constru6es e de operaBes [2], neste trabalho optou'-se por oferecer um conjunto de primitivas Que</title>
        <p>S
I
12</p>
      </sec>
      <sec id="sec-3-19">
        <title>Nem toda a informao do documento original convertida na representao ____________________________________________________________________ de</title>
        <p>3o Encontro Nacional para
a Qualidade nas Tecnologias de Informao
Unfversidade do Minho
de Novembro 1998
e ComunicaC:Ses
identificadores. Em primeiro Ingar, parte da informao
no est directarnente associadal
pode no extrair a totalidade da informaVo, quer por limitaV5es do conversor quer por
op6es de analise. Assim, podera, por nezes, ser necesso recorrer ao c6digo, mas</p>
      </sec>
      <sec id="sec-3-20">
        <title>O dorninio dos identificadores nciona como uma sinara complexa do componente. Alis esta tmica uma extenso a m6todos de assinaturas, que usam tcnicas muito mais simples com base em menos informaVo. Contudo, estas assinaturas</title>
      </sec>
      <sec id="sec-3-21">
        <title>Uma anSe simples de contexto pode ser efectuada extraindo o conjunto de</title>
      </sec>
      <sec id="sec-3-22">
        <title>Se extendeOs o conceito terior a v vist, on conjuntos de contextos um</title>
        <p>para cada vista, obteremos um sub-conjunto de contextos para o mesmo identificador.
Pode-"se, assim, comparar alteraBes de ambiente de utilizao de um dado identificador
nas vas situaBes. Se estas varias vistas representarem vlas fases do
desenvolvimento, estas varia5es podem ser indicativas de um determinado conceito estar
a ser utihzado com um objectivo numa fase inicial de especificaVo, mas medida Que o
projecto evolui, ele vai sendo utilizado em situaJes diversas.
30 Encontro Nacional para
a Qualidade Has Tecnotogias de Informao
Universidade do Minke
46 de Novemblo 1998
e ComunicacBes</p>
        <p>Quando o ntimero de identificadores que nos conduzem desde a origem do
sistema at6 um dado identificador, ou seja o caminho at esse identificador 6 bastante
grande, temos uma informo dethada sobre o sen contexto de ulizao. For ouo
lado, se esse caminho for curto a informso disponibilizada pode ser manifestamente
insuficiente, Neste ti}timo caso poder ser necessio utilizar opera6es adicion&amp;is para
determinar o contexto de utilizao do identificador. Uma operao Que pode ser
efectuada 6 a operao de qualifico, Quepermite obter um conjunto de atributos para
esse identificador. Pode-se desta forma determinar atravs dos sens componentes qual a
sua utilizao, Uma outra forma de determinar complementarmente a inform&amp;o de
contexto usa uma operao de localizao para obter o conjunto de identificadores Que
so usados no mesmo contexto. Estes identificadores podem permitir inferir atrav6s do
ambiente qu&amp;I a utilizao dads ao identificador em questo. Se nenhuma desta
inform&amp;o for suficiente para determinar a funcionalidade do identificador ento geld</p>
        <p>Al6m da inform&amp;o de contexto poderemos obter infoao ms complexa,
nomeadamente recorrendo a compara6es entre conjuntos de identicadores. A
comparao dos atributos de um `determinado identiflcador em dois contextos, pol
exemplo duas vistas, podemos determinar Se alguma informsVio est a ser perdida ou
adicionada. Nesta tiItimo co, necesso verific se o aento do nmero de abutos
contraria os requisitos ou no. E natural Quecom a evoluio do sistema, e a medida Que
opV!desvko sendo tomadas, o ndmero de atributos vd reflectindo esse enriquecimento pol
um aumento significativo do seu ndmero. Note-Se Que o sistema s6 por Si no permite</p>
        <p>Este sistema nko oferece resultados quantitativos, no 6 baseado em nenhuml
gerada ou no compmento do co de um idenflcador no represent mtc
vidas. Estas observaJes podem depender de factores como estilo de programao ou a
lingnagem utilizada. Esta aproximo baseada numa anise manual sendo precedida
de um Ceo automatismo pa seleccion a ioao relevte, evitdo a consulta
exaustiva dos documentos. Como qualquer sistema Que seja dependente da experi8ncia
humana, o sen sucesso esta directamente ligada com o treino e a capacidade de
interpretao do engenheiro de soare Que o utiliza [14]. Por ontro lade, oferece nm
grande manancial de informao de uma forma compacta e Que pode ser manipulada de
A mesma especificao foi dada aos vOs grupos, tendo cada grupo entregue uma
especificaVAoem UML [4,51com uma representao grflea das fases de anise e
duas partes. A parte de verificao de consistncia procurou identificar inconsistncias
com a especificao. A parte de inter-'operabilidadepermitiu detectar qnal a facilidade de
trocar os m6dulos, entre as aproximaBes dispomveis. Da perspectiva dos estudantes
estes testes representam uma medida da capacidade de interpretao da especifico e da
modularidade do c6digo produzido. O teste consistiu, numa primeira fase, na extrao das
soluGJes de anise e desenho. Esta extraAo foi efectuada manualmente, embora a
linguagem UML tenha sido desenhada para permitir um processamento automatico- Ou__
30 Encontro Nacional para
a Qualidade nas Tecnologias de Inform&amp;o e ComunicaSos
Univers5dade do Minho
4-6 de Novembro 1998
lassificao
m Projes
e Seleco
de Soare
seja pode ser compilada para efeitos de verifica6es de consistncia. No entanto, ainda
no foi escrito nenhum extractor para tal. A segunda lase da extrao do c6digo, em
C++, utilizou um parser simples que extrai apenas algumas caracteristicas da lingua&amp;em.
Note-se Que as ores obtidas a partir da extra5o do C++ s80 muito maiores Que as Que
tm origem em UML, mas a linguagem especialmente complexa e modela uma fase
final de desenvolvimento.</p>
      </sec>
      <sec id="sec-3-23">
        <title>O primeiro resultado foi obtido pela anSe directa da ore resultante. A</title>
        <p>dimenso das arvores, embora no seja a partida uma mtfica valid perruite especular
Quanto complexidade e repetitividade da soluo. Assim, ores anorfflalmente
glandes estavam associadas a c6digo de fraca qualidade enquanto ores muito
reduzidas representavam, norrflalmente, o incumprimento total dos requisitos. No entanto,
casos houve em Que arvores de pequena dimenso representavam soluBes especialmente
trabalhadas e de boa qualidade.</p>
      </sec>
      <sec id="sec-3-24">
        <title>A localizao de identificadores especfficos foi extremamente importante para ter</title>
        <p>uma ideia precisa da funcionalidade. No entanto, determinar quais cram os
identificadores mais importantes e ficos em informao pode no ser simples, excepto em
casos frequentemente estudados. Neste caso, a experincia anterior pefrfutia-nos saber de
ante-mo quais seriam os pontos crfticos. A sua anlise foi, de facto, conclusiva para</p>
      </sec>
      <sec id="sec-3-25">
        <title>Esta aproximao provou ser especialmente dtil nos casos hem comportados, que representam a maiofia das soluJes apresentadas. No entanto, a perspectiva pouco usual</title>
        <p>16
30 Encontro Nacional para
a Qualidade nas Tecnologias de Informao
UnJversidade do Minho
46 de Novembro 1998
dos restantes casos on era inconclusiva ou indnzia conclns6es menos correctas e precisas.
pouca aten5o aos problemas de engenharia de software, nomeadamente aqueles que
envolvem a reutilizao.</p>
        <p>6 Conclus8es</p>
        <p>A escolha de uma hierarquia provou ser igualmente acertada pois perrnite de uma
forrna simples e intuitiva obter a informaVo da sitnao. A comparaVo dessa informao
entre os vios casos permite obter respostas com significado real. Esta soluo iambm
especialmente atractiva pois a maioria dos engenheiros de software es familiarizado
com grandes estruturas de dados deste tipo como o caso dos sistemas de ficheiros. A
existncia de vos niveis de profundidade e o significado fisico do caminho da origem
at um deterrninado ficheiro so analogias especimente teis na utilizao do sistema.
Uma representso grca da hierarquia poder contudo, vir a melhorar_____________
30 Encontro Nacional para
a Qualidade nas Tecnologias de InformaCSo e Comunicac6es
Universidade do Minho
6 de Novembro 1998
17
assiflcaGgo e Selecg6o de Componentes
n Projecfos de Soffvmre
significativamente, no futuro, a sensibilidade e poder de assimilao.</p>
        <p>O sistema proposto permite obter resultados conclusivos de uma forma rdpida,
uma vez que o processo de extrao pode ser feito de uma forma automtica e a analise Se
limita a um sub-conjunto da informao extlaida. No caso dos projectos serem
excessivamente glandes a informao pode ser muito vasta para que uma primeira anise
possa ser conclusiva, levando mais tempo a obter respostas I:iteis~No entanto, nestes
casos a anise do c6digo propriamente dito Selia tambm muito mais morosa. Esperamos
que a experincia na utilizao do sistema permita identificar um conjunto de opera6es
mais complexas, mas que permitam obter resultados mais rapidamente. No entanto,
pretende-Se que a anise no Se baseie numa s6 busca mas que o engenheiro de software
tenha a oportunidade de obter uma viso geral do componente pol forma a realizar uma
escolha mais esclarecida.</p>
        <p>,8
30 Encontro Nacional para
a Qualidade nas Tecnologias de Informa(!;;6oe ComunicaC6es
Universidade do Minho
4-6 de Novembro 1998</p>
        <p>[3] Daniel Bardou e Christophe Deny. Split objects: a disciplined use of
delegation within objects. In Object-Oriented Programming Systems and Applications,
1996.</p>
        <p>[4] G. Booch, I. Jacobson, e J. Rumbaugh. The Unified Modeling Language for
Object-Oriented Development. Rational Software Coporation, edio 0.91, Setembro
1996.</p>
        <p>[51 G. Booch, I. Jacobson, e J. Rumbaugh. Unified</p>
      </sec>
      <sec id="sec-3-26">
        <title>Semantics. Rational Software Coporation. edio 1.0, Janeiro 1997. Modeling Language [6] David Boundy. A taxonomy of programmers. Software Engineering Notes, 16(4):23-30, Outubro 1991.</title>
        <p>e ComunicaBes
iassifica1i;;dae Seleel;;dode Companentes
n Prajectos de Softwa</p>
        <p>[9] Pedro Reis Santos. Identifier based representation and management of
software components. Em Workshop on Modeling Software Processes and Artifacts, Ila</p>
      </sec>
      <sec id="sec-3-27">
        <title>ECOOP, Junho 1997.</title>
        <p>[10] Jeffrey R- Van Dyke. Link Architecture for a Global Inforrnation
Infrastructure. Tese de doutoramento, Massachutts Institute of Technology, Jumbo 1995.</p>
        <p>
          [11] William B. Frakes e Christopher J. Fox. Sixteen questions about software
reuse. Communications of the ACM, 38(
          <xref ref-type="bibr" rid="ref3">6</xref>
          ):75-87, Junho 1995.
        </p>
        <p>[12] Stanley B. Lippman. C++ Primer. Addison-Wesley,Reading, MA, USA, 2a
ediVo, 1991.</p>
        <p>[13] Steve McConnell. Keep it simple. IEEE Software, 13(ll), Novembro 1996.
[14] 'Michael C. McFarland. The social implications of computarization: Making
the technology more humane. Em 26aACM/IEEE Design Automation Conference, pages
129-134, 1989.</p>
        <p>[15] Rubn Pietro'Di. Implementing faceted classification for software reuse.</p>
      </sec>
      <sec id="sec-3-28">
        <title>Communications of the ACM, 34(5):89-97, Maio 1991</title>
        <p>[161 Hem Astudillo R. Reorganizing split objects. Em</p>
      </sec>
      <sec id="sec-3-29">
        <title>Programming Systems and Applications, 1996.</title>
      </sec>
      <sec id="sec-3-30">
        <title>Object-Oriented</title>
        <p>[17] Jerzy W. Rozenblit e Sanjaya Kumar. Toward synergistic engineering of
20
3D Encontro Nacionat para
a Qualidade nas Tecnologias de Informao
Universidade do Minho
4-6 de Novemblo 1998</p>
        <p>e ComunicaC6es
distributed applications with separation of concerns. Em</p>
      </sec>
      <sec id="sec-3-31">
        <title>Engineering Conference, Digital Equipment Corporation 1995.</title>
      </sec>
      <sec id="sec-3-32">
        <title>Asia-Pacific</title>
      </sec>
      <sec id="sec-3-33">
        <title>Software</title>
        <p>[19] Bjarne Stroustrup. The C++ Programming Language. Addison-Wesley,</p>
      </sec>
      <sec id="sec-3-34">
        <title>Reading, MA, USA, 2a edio, 1991.</title>
        <p>
          [20] Anneliese non Mayrhauser e A. Marie Vans. Program comprehension during
software maintenance and evolution"IEEE Computer, 28(
          <xref ref-type="bibr" rid="ref6">8</xref>
          ):44-55, Agosto 1995.
        </p>
        <p>[21] Anthony I. Wasserman. Toward a discipline of software engineering. IEEE
Software, 13(11), Novembro 1996.</p>
        <p>[22] M. Wein, Wm Cowan e W. M. Gentleman. Visual support for version
management. Em Symposium on Applied Computing ACM/SIGAPP, pginas
12171233, Maro 1992.</p>
        <p>[23} Pedro Reis dos SantoS e Rui Gustavo Crespo. Assisted Selection of
Components using Classified Identifiers. 7th Conference on Information Processing and</p>
      </sec>
      <sec id="sec-3-35">
        <title>Management of Uncertainty in Knowledged-based Systems, 740-747, Julho 1998</title>
        <p>[24] R. T. Mittermeir, H. Pozewauning, A. Mili e R. Mill. Uncertainty Aspects in
Component Retrieval. 7th Conference on Information Processing and Management of</p>
      </sec>
      <sec id="sec-3-36">
        <title>Uncertainty in Knowledged-based Systems. 564-571, Julho 1998</title>
        <p>
          [25} A..M. Zaremsk:i e J~M. Wing, Signature matching: a tool for using software
libraries. ACM Transactions on Software Engineering and Methodology, 4(
          <xref ref-type="bibr" rid="ref2">2</xref>
          ):146-170,
30 Emcontro Nacional Pam
a Qualidade mas Tecnologias de Informao
Universidade do Minho
46 de Hovembro 1998
e Comunicec:aes
21
n Projecms de Softvmre
        </p>
        <p>Ab11995.
integrability. Journal of Systems Inteation, 3(3):273-302, Setembro 1993.</p>
        <p>temas da confere^ncz.abrangz.dos:
a Qualidade nas Tecnologias de Informao
Universidade do Minho
4-6 de Novembro1998</p>
        <p>e ComunicaC5es</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          .[1]
          <string-name>
            <given-names>Thomas</given-names>
            <surname>Ball e Stephen</surname>
          </string-name>
          <string-name>
            <given-names>G.</given-names>
            <surname>Eick</surname>
          </string-name>
          .
          <article-title>Software visualization in the large</article-title>
          .
          <source>IEEE Computer</source>
          ,
          <volume>29</volume>
          (
          <issue>4</issue>
          ):
          <fpage>33</fpage>
          -
          <lpage>43</lpage>
          ,
          <year>Abril 1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>Sergio</surname>
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Bandinelli</surname>
          </string-name>
          , Alfonso Fuggetta, e Carlo Ghezzi.
          <article-title>Software process model evolution in the spade environment</article-title>
          .
          <source>IEEE Transactions on Software Engineering</source>
          ,
          <volume>19</volume>
          (
          <issue>12</issue>
          )..
          <fpage>1128</fpage>
          -
          <lpage>1144</lpage>
          ,
          <year>Dezembro 1993</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>David</given-names>
            <surname>Boundy</surname>
          </string-name>
          .
          <article-title>A taxonomy of programmers</article-title>
          .
          <source>Software Engineering Notes</source>
          ,
          <volume>16</volume>
          (
          <issue>4</issue>
          ):
          <fpage>23</fpage>
          -
          <lpage>30</lpage>
          ,
          <year>Outubro 1991</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [71 Greg Butler e Pierre Denomme.
          <article-title>Documenting frameworks</article-title>
          .
          <source>Em 8th Annual Workshop on Software Reuse</source>
          ,
          <string-name>
            <surname>MarGo</surname>
          </string-name>
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>30 Enconbo Nacional para a Qualidade nas Tecnologias de Informao Universidade do Minho 46 de Novembro 1998</mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>Gianluigi</given-names>
            <surname>Caldiera e Victor</surname>
          </string-name>
          <string-name>
            <given-names>R.</given-names>
            <surname>Basin</surname>
          </string-name>
          .
          <article-title>Identifying and qualifying reusable software components-</article-title>
          IEEE Computer,
          <volume>24</volume>
          (
          <issue>2</issue>
          ):
          <fpage>61</fpage>
          -
          <lpage>70</lpage>
          ,
          <year>Fevereiro 1991</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>