Course Documents
     Main Page
     Contact Information
     Course Announcement
     Schedule and Syllabus
     Course Participants
     Discussion Forum
     Swiki Chat Area
     Lecture Material
     Independent Research
     Previous Course
Swiki Features:
  View this Page
  Edit this Page
  Printer Friendly View
  Lock this Page
  References to this Page
  Uploads to this Page
  History of this Page
  Top of the Swiki
  Recent Changes
  Search the Swiki
  Help Guide
Related Links:
     Atlas Program
     Center for LifeLong Learning and Design
     Computer Science Department
     Institute of Cognitive Science
     College of Architecture and Planning
     University of Colorado at Boulder
Randel Rivadeneira
Assignment 13

1. what do you consider the main message of the paper?

The main message of this paper is the issues concerning how software programmers can reuse components. It shows that a system that provides reusability of components must deliver information in an autonomous way and present the software developer with task-relevant and personalized components.

2. how is this work applicable to your own

2.1. work?

It is very much applicable. I am software programmer that would be greatly benefited with a system that can provide me with reusable components when needed. Currently, I reuse components in two ways: I know them or know of their existence and search them in websites, documentation and data sources. Or some coworker makes notice that I could reuse a component that I had not known, or knew but did not remember it existed.

2.2. interests?

Currently I deal with high-level tools of software design. I occasionally have to program, but most of the time I spend it in design. I would be interested in seeing how a tool such as CodeBroker can be extended for software design and not just programming.

3. do you have ideas how the work in the paper could or should be further developed?

As mentioned above, it would be nice to extend this application to be used on Software Design phases. Maybe be able to run under Unified Modeling Languages (UML) and instead of just looking for component, also be able to look for patterns.

4. have you used any reuse libraries

Yes, I have used Java libraries and packages, MSDN C++ and C classes and others. Also libraries developed by the company where I work.

4.2. if yes: which ones? did the libraries have any particular strengths and weaknesses?

As mentioned above. The libraries were helpful because they reduced my programming time. Some times I was limited by method signatures and had to program the method anyways, but that could mean two things: the method I wanted did not existed or I was not able to find it. Some times it is very difficult to find the correct component because they have names that do not fit very well to what they do.

5. How does Codebroker infer the "task-at-hand"?

It does it in a two step stage. It reads for the comment that the user writes just before he defines a method. And then when defining a method it looks at the signature for the method. It then uses LSA to find out what libraries are available for the task in hand.

6. what are the trade-offs between

6.1. to let the systems infer the task-at-hand

This would be completely autonomous and the user does not need worry about looking for reusable components. Some other benefits noted by the paper are:

  • Reusing unanticipated components.
  • Snowball effects of deliveries.
The problem would be that the user is constantly shown components when he might not want to see them. That is, the system becomes too intrusive.

6.2. versus that the users specifies the task at hand?

This in the other hand would allow for the user to request information whenever he wants it. Therefore the system is not intrusive and the user can search for components when he needs it. The problem would be that the user might not know when he needs to search; he might assume that a component does not exist and code it himself. Also he might forget to search when he knows a component, but that component might not be as optimal as another component.

View this PageEdit this PagePrinter Friendly ViewLock this PageReferences to this PageUploads to this PageHistory of this PageTop of the SwikiRecent ChangesSearch the SwikiHelp Guide