Search |
||
Do we need any tool to assist reuse process?Posted by giovanisalvador on January 4, 2009 at 1:44 PM PST
I have achieved one important milestone for my personal and professional life, which is master’s degree graduation. My master degree's thesis was related to software reuse, more specifically, about a language projected during a doctor’s degree of a professor. This language, called Reuse Description Language (RDL), has been projected to assist developers during what is called framework instantiation, which is to explore the extension points (AKA variability points) of frameworks and to drive developers to a correct sequence of steps on software reuse activities. Using RDL, developers wouldn't need to understand all the framework's variability points. They would rely on a RDL script created to explore those points to help the developer to create applications based on that framework. RDL was written in Java and works basically this way: Here is a simple RDL script.
instantiation cookbook Simple;
recipe main();
myintf: interface;
simple : class;
newSimple : class;
classImpl : class;
simple := get_class("Simple");
newSimple := class_extension(simple, ? );
myintf := get_interface("MyInt");
classImpl := interface_implementation(myintf, ? );
new_method(classImpl, ? );
new_method(classImpl, ? );
end_recipe
end_cookbook
All the "get" commands are retrieving from the XMI (loaded in memory by the RDL engine) a reference to the classes and interfaces of the framework so it is possible to perform commands such as extension and implementation commands. All the question marks are points where the developer (or anybody running the script) is asked to provide input like names of classes and methods. So the questions are: To answer these questions, as part of my thesis I performed an experiment (I also modified RDL code a litle to prepare it for this experiment) where a set of developers coded a specific use case using Java with Eclipse and another set of developers coded the same use case but using RDL to assist the creation of the necessary classes plus the coding activity also using Java with Eclipse. All developers coded the same use case using the same framework, especially built for this experiment. How did I collect the data to analyze it? If you see the questions above again you will notice that they are related to time (productivity), dependency on a documentation (number of accesses to the framework’s documentation) and errors (both business logic as well as misuse of the framework). The Time was related to the total time of development. Number of accesses to the documentation were counted when developer stopped doing his/her activity to check the documentation. And finaly, errors were logged and counted using automated test classes (JUnit classes). After running the experiment and collected all the data, I inserted the data into SPSS (see references) tool, which is a very useful tool to make statistical analysis. The Conclusion of the Experiment In this experiment RDL didn’t add any value from productivity, dependency or errors perspective. That means the developers that were assisted by RDL were not more productive then the ones without it. Also, the developers that were assisted by RDL didn’t reduce their dependency on a good documentation. Finally, errors were not reduced. The experiment shown they were very similar. Final Comments Despite I could not generalize this experiment to other tools with the same purpose as RDL I have questions in my mind: Do developers need tools to help or to guide them in the correct sequence of steps of software reuse? Or all we need is good documentation and good communication between team members so we can build reliable code, achieving business needs? From what this experiment showed me (for RDL in the context studied) developers don't need those tools. References »
Related Topics >>
Tools Comments
Comments are listed in date ascending order (oldest first)
Submitted by felipegaucho on Mon, 2009-01-05 04:53.
Parabéns pelo mestrado :)
|
||
|
|