7

Click here to load reader

Human-Machine Interaction in a CASE Environmentlalab.gmu.edu/miis/papers/Gomes-Paulo.pdf · Human-Machine Interaction in a CASE Environment ... Centro de Inform´atica e Sistemas

  • Upload
    dangnhi

  • View
    212

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Human-Machine Interaction in a CASE Environmentlalab.gmu.edu/miis/papers/Gomes-Paulo.pdf · Human-Machine Interaction in a CASE Environment ... Centro de Inform´atica e Sistemas

Human-Machine Interaction in a CASE Environment

Paulo Gomes, Francisco C. Pereira, Paulo Paiva, Nuno Seco, Paulo Carreiro,Jose L. Ferreira and Carlos Bento

CISUC - Centro de Informatica e Sistemas da Universidade de CoimbraDepartamento de Engenharia Informatica - Polo II

Universidade de Coimbra - [email protected]

Abstract

The complexity of software design raised the needfor intelligent design assistants, especially in Com-puter Aided Software Engineering tools. But an ef-ficient and effective design system capable of help-ing the software designer must address importantissues in human-machine communication. At theAI Lab of Coimbra University we are developingan Intelligent Computer Aided Software Engineer-ing tool intended to work like a design assistant.In this paper we address several issues in human-system interaction, which we explore in the contextof our work.

1 IntroductionDesign is a complex and ill-defined task[Tong and Sriram,1992]. Most of the times designers have to deal with sev-eral different types of knowledge and reasoning processes,leading to a design process that has no well defined devel-opment rules. These findings are also true for the area ofsoftware design, especially in the last decade, where the com-plexity and dimension of software systems has increased sig-nificantly. One of the first solutions to this problem wasthe development of Computer Aided Software Engineering(CASE) tools. These tools can help the automation and man-agement of some basic design processes, functioning morelike an electronic paper and pencil tool. But the pressure onthe development companies has increased due to competition,making them to develop software in less time and resources.

Several solutions have been proposed to the softwaredevelopment problem, software reuse[PrietoDiaz, 1993;Coulange, 1997] was one of them. The reuse of previousdeveloped software was one of the big promises made bythe software engineering area. But it did not work as it wasplanned, which in our opinion was due to several issues. Oneof the reasons for this failure was the lack of integration ofthe reuse tools with CASE tools used for development. Reusetools need to be a ’natural’ part of a CASE environment, sothat a designer can use them in the normal development en-vironment. In this paper we focus in the interaction betweenthe software designer and the CASE tool.

Designers tend to improve with experience. Most of theexperienced designers reuse old solutions in new projects

in innovative ways, developing creative artifacts. We thinkthat Case-Based Reasoning (CBR[Aamodt and Plaza, 1994;Kolodner, 1993; Maheret al., 1995]) is a good reason-ing mechanism for implementing an Intelligent CASE tool.Some of our initial assumptions, is that in order for a sys-tem to be used, it must have to be integrated in a commonCASE tool, and it would have to be human-centered. An-other important issue is the tool flexibility and control. Thisissue required that the tool would have an adequate reasoningframework that would be flexible enough for the designer touse. The control of these tools would have to be made by thedesigner. Basically the designer would have to decide whenand how she would like to use the design assistants.

To achieve these requirements we have used the reasoningframework provided by the CBR methodology. This frame-work is flexible enough to combine and integrate differenttypes of reasoning and design subtasks. It also can integratedifferent types of knowledge. The CASE tool developed iscalled REBUILDER.

In this paper we explore the interaction between membersof the design team, which involves: the software designer,REBUILDER and the Knowledge Base Administrator, whichwill be described later on. In the next section we describeREBUILDER focusing in it’s architecture, knowledge base,CASE environment and knowledge base maintenance mod-ule. Along with the presentation of these modules we dis-cuss several issues related with mixed-initiative intelligentsystems. Section 3 describes and example of REBUILDER’suse, from the designer’s viewpoint, and the next section com-pares our system with related systems. The paper ends with aconclusion section summarizing the most important points ofour system and presenting some future plans.

2 REBUILDER

REBUILDER has two main goals: centralize the corpora-tion’s design knowledge, and provide the software designerwith a design environment capable of promoting software de-sign reuse. This is achieved with CBR as the main reasoningprocess, and with cases as the main knowledge pieces. Thissection describes REBUILDER, detailing it’s architecture,knowledge base (KB), CASE environment and KB mainte-nance module.

Page 2: Human-Machine Interaction in a CASE Environmentlalab.gmu.edu/miis/papers/Gomes-Paulo.pdf · Human-Machine Interaction in a CASE Environment ... Centro de Inform´atica e Sistemas

Manager Client

UML Editor

CBR Engine

KB Manager Module

Knowledge Base WordNet Server

WordNet Case

Indexes

File Server

Design Cases

Data Type Taxonomy

Designer Client

UML Editor

CBR Engine

Software Designers KB Administrator

Figure 1: REBUILDER’s Architecture.

2.1 ArchitectureREBUILDER is based on a client-server architecture com-prising two servers and two clients (see Figure 1). The KBused in REBUILDER comprises the WordNet server and thefile server, while the clients comprise similar modules. Themain difference between clients is that the manager clienthas an extra module allowing the KB maintenance. Therecan only be one server of each type, and only one managerclient. The number of designer clients is limited by hardwareresources.

The WordNet[Miller et al., 1990] server comprises theWordNet ontology and the Case Indexes. WordNet is a gen-eral ontology used in REBUILDER to index cases using se-mantics. It also enables the assessment of semantic similar-ity between concepts, used in REBUILDER for case similar-ity. The case indexes are used for fast retrieval of cases fromthe case library. These indexes are associated to cases and topieces of cases also, enabling flexible retrieval.

Clients request cases from the file server, which are in acentralized repository called case library. Each file representsan Unified Modelling Language (UML,[Rumbaughet al.,1998]) design. This enables the client to work only with thestrictly necessary cases. For the optimization of this processthe case indexes play a crucial role. The data type taxonomyis used for comparing data types, and is a simple taxonomyof the main Java data types.

The UML editor, the KB manager module and CBR engineconstitute the manager client (the designer client is equal tothis client except that it does not have the manager module).

The CBR Engine is the reasoning module of REBUILDER.This module comprises six different parts: Retrieval, De-sign Composition, Analogy, Design Patterns, Verification,and Learning. All these modules are detailed in subsection2.3.

As defined before there are two types of system users: KBadministrator and software designers. While there should beonly one KB administrator (or a KB administration team),there can be several software designers. The KB adminis-

trator has the responsibility of keeping the KB updated, con-sistent and functioning with a good performance level. Thesoftware designers use the system to develop software mod-els. The system tries to be a design assistant for both type ofusers. For the administrator it acts by providing advices andsuggestions about what cases should be added or deleted fromthe case library, or providing other KB maintenance opera-tions. The designer and the system work more like a designteam.

REBUILDER is very flexible, providing the designer sev-eral design actions, like: retrieving similar designs, reusingdesigns, verifying or evaluating designs. The main logic forthis cooperation, is to delegate in REBUILDER tasks that thedesigner has some problems to achieve (or are even impossi-ble), like searching for similar designs in a huge design repos-itory. The same happens with the KB administrator, it wouldvirtually impossible for the administrator to inspect all thecases in a case-base with several dozens of design cases, oreven to compute the coverage of the case-base. These moredemanding tasks are left to the system, and final decisionsbased on the information provided by the system are made bythe human parts of the team.

2.2 Knowledge BaseThe Knowledge Base (KB) module comprises two differentservers: file server and WordNet server, reflecting the maintype of requests to the KB: WordNet related requests and caselibrary requests. Most frequent client requests to WordNetserver are: retrieving case indexes and computing conceptualdistances between software objects. Predominant requests tothe file server are: computing data type similarities and re-trieving case files.

REBUILDER uses UML to describe the design cases.UML is a software design specification language that has var-ious types of diagrams. These diagrams are used to describedifferent aspects of a software system. In our system we haveselected to focus on class diagrams, since they are one of themost used type of UML diagrams. Class diagrams can havefour type of elements: packages, classes, interfaces and rela-tions. A case comprises a package that can have several otherclass diagram objects. An example of a design case describ-ing part of a public library application is shown in figure 2.Cases are stored in a case library in a linear way.

Communication is a very important point in the develop-ment of REBUILDER. Most of approaches to software reuseuse specific or design languages that are not standard in soft-ware development. We have decided to use one of the mostused software specification language: UML. The system mustadapt to the designer and not the opposite. So, one of the ini-tial requisites of REBUILDER was that it could work withUML diagrams. For the software designer the system look asan UML editor with some additional functions and tools thatmanipulate UML, making the system usage natural and easy.This is related to the issue that the system must be used bydesigners, otherwise it can be a very good system, but if it isnot used then it is worthless.

WordNet is used in REBUILDER as a common sense on-tology. It uses a differential theory where concept meaningsare represented by symbols that enable a theorist to distin-

Page 3: Human-Machine Interaction in a CASE Environmentlalab.gmu.edu/miis/papers/Gomes-Paulo.pdf · Human-Machine Interaction in a CASE Environment ... Centro de Inform´atica e Sistemas

LoanManager

+ closeAccount() : void

+ loanItem() : void

+ printLoanInformation() : void

+ reloanItem() : void

+ reserveItem() : void

+ returnItem() : void

+ setAccount() : void

+ setItemManager() : void

+ setMessageHandler() : void

+ setReportWriter() : void

Selector

ItemSelector

ItemManager

+ getItem() : void

ReservationList

Reservation

+ creationDate : Date

Loan

+ creationDate : Date

+ returnDate : Date

+ noOfExtensions : boolean

Account

+ MaxNoOfLoans : int

+ id : int

Item

+ id : int

+ isLoanable : boolean

+ title : String

1..*

1..*

0..1

1..* 1..*

1..*

Figure 2: Example of an UML class diagram.

Figure 3: WordNet server front-end.

guish among them. Symbols are words, and concept mean-ings are called synsets. WordNet is built around the conceptof synset. Basically it comprises a list of word synsets, anddifferent semantic relations between synsets. The first part isa list of words, each one with a list of synsets that the wordrepresents. The second part, is a set of semantic relations be-tween synsets, likeis-a relations,part-of relations, and otherrelations. REBUILDER uses the word synset list and four se-mantic relations:is-a, part-of, substance-of, andmember-of.Synsets are classified in four different types: nouns, verbs,adjectives, and adverbs. REBUILDER uses synsets for cat-egorization of software objects. Each object has a contextsynset representing the object meaning. The object’s contextsynset can be used for computing object similarity (using theWordNet semantic relations), or it can be used as a case in-dex, allowing the rapid access to objects with the same clas-sification. A screen shot of the WordNet server front-end isshown in figure 3. It shows part of the WordNet structure withsynsets identified by nine digit numbers.

Cases are the fundamental knowledge pieces in RE-BUILDER, which makes case storage and manipulation, crit-

ical issues for the system performance. Since each case isa file representing an UML model comprising also graphi-cal information, an index mechanism was developed to keepgood performance levels. These indexes can index three dif-ferent types of case objects: packages, classes and interfaces.Each index has the file name of the case to which the indexedobject belongs. Since an object has a context synset, we usethis synset to index the object in WordNet. This way, the re-trieval of cases is performed as WordNet being an indexingstructure, and then the client can request the file server for theretrieved cases.

The data type taxonomy is a hierarchy of data types usedin REBUILDER. Data types are used in the definition of at-tributes and parameters. The data taxonomy is used to com-pute the conceptual distance between two data types.

2.3 CASE EnvironmentThe CASE environment comprises two parts: the UML ed-itor and the CBR engine. The UML editor is the front-endof REBUILDER and the environment where the software de-signer develops designs. Apart from the usual editor com-mands to manipulate UML objects, the editor integrates newcommands capable of reusing design knowledge. These com-mands are directly related with the CBR engine capabilities.

The CBR engine is the responsible module for all the cog-nitive functionalities of REBUILDER. It comprises six differ-ent submodules, each one implementing a different cognitiveprocess that helps the software designer. These submodulesare:

Retrieval The retrieval submodule selects from the case basea set of cases ranked by similarity with the designer’squery. It enables the software designer to browsethrough the most similar designs in the case library, ex-ploring different designs alternatives and reusing piecesof cases if wanted. This module works like an intelligentsearch assistance, which first retrieves the relevant casesfrom the case library and then ranks them by similaritywith the query. The cases are presented to the designeronly after the cases are ranked. For more details see[Gomeset al., 2002a].

Analogy The analogy submodule generates new solutionsusing analogical reasoning, which involves selectingcase candidates from the case library, then mappingthem with the query diagram, and finally transferringknowledge from the source case to the problem diagram,yielding a new diagram. This mechanism generates so-lutions using only one case, which constraints the typeof solutions that it can generate. For more details see[Gomeset al., 2002b].

Design Composition The design composition submodulealso generates new solutions from cases in the case li-brary. The main difference to analogy generated solu-tions is that it can use more than one case to generate asolution. This mechanism can select pieces of cases andthen compose them in a new diagram, yielding a solutionto the designer’s query.

Design Patterns The design patterns submodule appliessoftware design patterns to diagrams using CBR to auto-

Page 4: Human-Machine Interaction in a CASE Environmentlalab.gmu.edu/miis/papers/Gomes-Paulo.pdf · Human-Machine Interaction in a CASE Environment ... Centro de Inform´atica e Sistemas

mate the selection process. This functionality is a main-tenance or evolution mechanism that can be used by thesoftware designers to expand or modify an existing sys-tem. For a more complete description see[Gomeset al.,2002c].

Verification and Evaluation This submodule comprisestwo functionalities: verification and evaluation. Whileverification checks the design coherence and correct-ness. The evaluation mechanism is used to assess thediagram’s properties. The verification is manly usedin combination with analogy or design composition tolook for errors in the generated diagram and to correctthem. The evaluation mechanism is at the designer’sdisposal for listing the design properties, trying toidentify shortcomings in a diagram. See[Gomesetal., 1998] and[Gomeset al., 2003a] for more on caseverification. REBUILDER does not have an awarenessabout the cognitive state of the human designer. Butif it had, then it could have a proactive behavior or actaccording to the designer preferences. There is oneaspect of REBUILDER that has some similarities withawareness, and that is the verification mechanism. Inthe verification process the systems learns through thestorage of verification cases what the designer considersto be correct or incorrect semantically. Every designerhas its own verification case-base, which allows theCASE environment to adapt to the designer preferences.This was one way to cope with the different ways inwhich software designers model the same problem.

Learning The learning submodule implements several case-based maintenance strategies that can be used by theKB administrator to manage the case library contents.This submodule presents several assessment measuresof the case library performance, which provide an im-portant advice to the administrator regarding the addi-tion or deletion of cases. See[Gomeset al., 2003b] formore on the learning mechanisms of REBUILDER.

The main philosophy of REBUILDER is that it should actas an intelligent assistant and that all the main decisions aretaken by the human users (designers or administrator). RE-BUILDER can provide the software designer several toolsthat help her/him to develop the software model. The usageof these tools is very flexible, and there is no imposition of amethodology for using these tools. This is how we view thedesign process, like a cognitive task that has no rigid or pre-defined steps that must be taken (if there were then it can bepartially automated or even fully). The tools provide designalternatives to the designer helping him to explore the designspace. Or they can also perform verification and evaluationtasks providing mechanisms for verification. The system hasno proactive behavior, but it is a good direction for future im-provements.

2.4 KB Maintenance ModuleThe KB Manager module is used by the administrator to man-age the KB, keeping it consistent and updated. This mod-ule comprises all the functionalities of the UML editor, andit adds case-base management functions to REBUILDER.

Figure 4: The initial diagram used by the designer as targetproblem.

These are used by the KB administrator to update and modifythe KB. The list of available functions are:

KB Functions Create, open and close a new KB.

Case Library Manager Opens the Case Library Manager,which comprises functions to manipulate the cases in thecase library, like adding new cases, removing cases, orchanging the status of a case.

Activate Learning Gives the KB administrator an analysisabout the contents of the case library. REBUILDER usesseveral case-base maintenance techniques to determinewhich cases should be added or removed from the caselibrary.

Settings Adds extra configuration settings which are notpresent in the normal UML editor version used by thesoftware designers. It also enables the KB administratorto configure the reasoning mechanisms.

One last issue that we think it is important, is the maintenanceof REBUILDER, which is essential in order to the system towork properly and efficiently. This task is responsibility ofthe KB administrator that uses the KB manager module to doit, together they form another team, the maintenance team.

3 Example of UseThis section describes an example of how the system canbe used, focusing the most important modules of the CBREngine. This example is about the designer client of RE-BUILDER, showing how the designer can be aided by thesystem.

Suppose that a designer is starting the design of a infor-mation system for a high school. She has already the sys-tem’s analysis done, in the form of use cases1. From these usecases, some initial entities are extracted by the designer anddrawn in the REBUILDER system. Figure 4 shows the ini-tial class diagram, representing one of the system’s modules(scheduling). This module is responsible for handling the in-formation data about teachers, classes and rooms timetables.

One of the tools available to the designer is the retrievalof similar designs from the case library. The designer can

1It is a UML diagram type used for describing functional require-ments.

Page 5: Human-Machine Interaction in a CASE Environmentlalab.gmu.edu/miis/papers/Gomes-Paulo.pdf · Human-Machine Interaction in a CASE Environment ... Centro de Inform´atica e Sistemas

Figure 5: The most similar case from the retrieved ones, thenumber in brackets is the similarity score.

retrieve three types of objects: packages (a complete classdiagram, what we call a case), classes or interfaces. Imaginethat she selects the package object and clicks on the retrievalcommand. REBUILDER retrieves the number of diagramsdefined by the designer (in this situation three cases). Figure5 presents part of one of the retrieved cases (the most similarone), notice that in the diagram’s name there is the similarityscore with the target design.

The retrieved designs can help the designer exploring thedesign space, aiding the assessment of the different alterna-tive designs. Or she can go further and use the adaptationmechanisms of REBUILDER to generate new designs. Theadaptation mechanisms are: analogy, design composition andsoftware design patterns. Suppose that the designer selectsdesign composition, figure 6 shows part of a diagram gener-ated by this mechanism. As can be seen, it used the mostsimilar case (case in figure 5) to build this new case, and thencompleted it with the missing objects.

Generated diagrams can have some inconsistencies, whichcan be fixed using the verification module. For example, sup-pose that, in the generated diagram (figure 6) the relation be-tween classTeacherand classTimetableis out of context. Theverification module checks four different knowledge sourcesto assess the relation’s validity: WordNet, design cases andverification cases. In WordNet the system looks for a relationbetween theTeachersynset and theTimetablesynset, if it isfound then the relation is considered valid. Otherwise, thesystem searches the design cases for a similar relation (a rela-tion of the same type between the synsets of classesTeacherandTimetable). If the algorithm fails to find it, the next step islooking in the verification cases. It searches for a verificationcase describing the validity of a similar relation. A verifica-tion case can have two outcomes: success or fail. This way,if the algorithm finds a similar verification case and the out-

Figure 6: Part of a diagram generated by design composition.

come is success, the relation is considered valid, otherwiseis considered invalid. If in the end the relation is consideredinvalid, then the designer is asked for a judgement about therelation and a new verification case is generated and stored inthe case library.

After verification, if the designer considers the diagramcorrect and ready for being stored in the KB, for later reuse,then she can submit the diagram to the KB administrator.This new diagram goes into a list of unconfirmed cases of thecase library. The KB administrator has the task of examiningthese diagrams more carefully, deciding which are going tobe transformed into cases, going to the list of confirmed cases(ready to be reused by REBUILDER), and which are going tothe list of obsolete cases not being used by the system.

4 Related WorkOne main difference of REBUILDER to other research workson CBR for software reuse is that most of previous works areon code reuse and do not address design reuse. Neverthelessthere are some systems that can be considered related.

Deja vu[Smyth and Cunningham, 1992] is a CBR systemfor code generation and reuse using hierarchical CBR. Thiswork is tailored for a very specific type of software reuse:plant vehicle control software. Thus dealing with a differenttype of programming paradigm (procedural one). CAESER[Fouque and Matwin, 1993] is another code reuse CBR tool.It works at the code level and uses data-flow analysis to ac-quire functional indexes. CAESER is also developed for pro-cedural code, thus not dealing with Object-Oriented design.

Another CBR system was developed by Gonzalez[Fernandez-Chamizoet al., 1996], which presents a CBR ap-proach for software reuse based on the reuse and design ofObject-Oriented code. This system does some design reuse,but it’s main focus is on code reuse, design reuse is as abyproduct of code reuse. Besides this difference, Gonzalezwork is based on a specific description language, while ourapproach is based on UML, which is a standard and widelyused software design language.

The approach developed by Althoff and Tautz[Tautz andAlthoff, 1997] is one of the few approaches that address allthe phases of software development. They reuse system re-

Page 6: Human-Machine Interaction in a CASE Environmentlalab.gmu.edu/miis/papers/Gomes-Paulo.pdf · Human-Machine Interaction in a CASE Environment ... Centro de Inform´atica e Sistemas

quirements and associated software development knowledge,in the form of electronic documents. This approach is verydifferent from the previous ones and from our approach also,because it deals with document retrieval and indexing, thushaving a more knowledge management approach. One im-portant limitation of Althoff’s approach is the lack of reuseor revise reasoning phases.

5 ConclusionsThis paper presents REBUILDER, a design system that formsa design development team with the software engineers. Wehave described it’s architecture and various reasoning mod-ules. Several issues concerning the mixed-initiative on intel-ligent systems have also been discussed from REBUILDERpoint of view.

Two important functional rules of REBUILDER are: thedesigner has always the decision power, and the control se-quence of events is flexible but is decided by the designer.These rules stem from the view of REBUILDER as an in-telligent design assistant. Though we think that the decisioncapabilities should always be on the designer side, the systemcan gain with a more proactive behavior. This behavior couldhelp the human-machine communication, because it wouldmodel the designer’s cognitive state and will try to suggestactions based on it. Another future development is to developmore cognitive tools that could help the designer in her/histask, trying to perform tasks that are hard for the human (dueto an overload of knowledge or due to the repetitive aspect),leaving she more time for creative tasks.

AcknowledgmentsThis work was partially supported by POSI - Programa Op-eracional Sociedade de Informacao of Fundacao Portuguesapara a Ciencia e Tecnologia and European Union FEDER,under contract POSI/33399/SRI/2000, by program PRAXISXXI. REBUILDER homepage is http://rebuilder.dei.uc.pt.

References[Aamodt and Plaza, 1994] Agnar Aamodt and Enric Plaza.

Case–based reasoning: Foundational issues, methodolog-ical variations, and system approaches.AI Communica-tions, 7(1):39–59, 1994.

[Coulange, 1997] Bernard Coulange. Software Reuse.Springer Verlag, London, 1997.

[Fernandez-Chamizoet al., 1996] Carmen Fernandez-Chamizo, Pedro Gonzalez-Calero, Mercedes Gomez-Albarran, and Luis Hernandez-Yanez. Supporting objectreuse through case-based reasoning. In I. Smith andB. Faltings, editors,Third European Workshop on Case-Based Reasoning (EWCBR’96), volume 1168, pages150–163, Lausanne, Suisse, 1996. Springer-Verlag.

[Fouque and Matwin, 1993] G. Fouque and S. Matwin.Compositional software reuse with case-based reasoning.In 9th Conference on Artificial Intelligence for Applica-tions (CAIA’93), Orlando, FL, USA, 1993. IEEE Com-puter Society Press.

[Gomeset al., 1998] Paulo Gomes, Carlos Bento, and PedroGago. Learning to verify design solutions from failureknowledge.Artificial Intelligence for Engineering Design,Analysis and Manufacturing, 12(2):107–115, 1998.

[Gomeset al., 2002a] Paulo Gomes, Francisco C. Pereira,Paulo Paiva, Nuno Seco, Paulo Carreiro, Jose L. Ferreira,and Carlos Bento. Case retrieval of software designs usingwordnet. In F. van Harmelen, editor,European Conferenceon Artificial Intelligence (ECAI’02), Lyon, France, 2002.IOS Press, Amsterdam.

[Gomeset al., 2002b] Paulo Gomes, Francisco C. Pereira,Paulo Paiva, Nuno Seco, Paulo Carreiro, Jose L. Ferreira,and Carlos Bento. Combining case-based reasoning andanalogical reasoning in software design. InProceedingsof the 13th Irish Conference on Artificial Intelligence andCognitive Science (AICS’02), Limerick, Ireland, Septem-ber 2002. Springer-Verlag.

[Gomeset al., 2002c] Paulo Gomes, Francisco C. Pereira,Paulo Paiva, Nuno Seco, Paulo Carreiro, Jose L. Ferreira,and Carlos Bento. Using CBR for automation of softwaredesign patterns. In Susan Craw and Alun D. Preece, ed-itors, 6th European Conference on Case-Based Reason-ing (ECCBR’02), volume 2416, pages 534–??, Aberdeen,Scotland, UK, 2002. Springer.

[Gomeset al., 2003a] Paulo Gomes, Francisco C. Pereira,Paulo Paiva, Nuno Seco, Paulo Carreiro, Jose L. Ferreira,and Carlos Bento. Solution verification in software design:A CBR approach. In Derek Bridge and Kevin Ashley, ed-itors, Fifth International Conference on Case-Based Rea-soning (ICCBR’03), Trondheim, Norway, 2003. Springer.

[Gomeset al., 2003b] Paulo Gomes, Francisco C. Pereira,Paulo Paiva, Nuno Seco, Paulo Carreiro, Jose L. Ferreira,and Carlos Bento. Evaluation of case-based maintenancestrategies in software design. In Derek Bridge and KevinAshley, editors,Fifth International Conference on Case-Based Reasoning (ICCBR’03), Trondheim, Norway, 2003.Springer.

[Kolodner, 1993] Janet Kolodner. Case-Based Reasoning.Morgan Kaufman, 1993.

[Maheret al., 1995] Mary Lou Maher, M. Balachandran,and D. Zhang. Case-Based Reasoning in Design.Lawrence Erlbaum Associates, 1995.

[Miller et al., 1990] George Miller, Richard Beckwith,Christiane Fellbaum, Derek Gross, and Katherine J.Miller. Introduction to wordnet: an on-line lexicaldatabase.International Journal of Lexicography, 3(4):235– 244, 1990.

[PrietoDiaz, 1993] R. PrietoDiaz. Status report: Softwarereusability.IEEE Software, 3(May), 1993.

[Rumbaughet al., 1998] J. Rumbaugh, I. Jacobson, andG. Booch. The Unified Modeling Language ReferenceManual. Addison-Wesley, Reading, MA, 1998.

[Smyth and Cunningham, 1992] Barry Smyth and PadraigCunningham. Deja vu: A hierarchical case-based rea-soning system for software design. In B. Neumann, ed-

Page 7: Human-Machine Interaction in a CASE Environmentlalab.gmu.edu/miis/papers/Gomes-Paulo.pdf · Human-Machine Interaction in a CASE Environment ... Centro de Inform´atica e Sistemas

itor, 10th European Conference on Artificial Intelligence(ECAI’92), Vienna, Austria, 1992. John Wiley and Sons.

[Tautz and Althoff, 1997] Carsten Tautz and Klaus-DieterAlthoff. Using case-based reasoning for reusing soft-ware knowledge. In David Leake and Enric Plaza, edi-tors, International Conference on Case-Based Reasoning(ICCBR’97), pages 156–165, Providence, RI, USA, 1997.Springer-Verlag.

[Tong and Sriram, 1992] C. Tong and D. Sriram.ArtificialIntelligence in Engineering Design, volume I. AcademicPress, 1992.