|
|
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.
http://www.cetus-links.org/oo_patterns.html
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.
|
|