Page 257 - DCAP305_PRINCIPLES_OF_SOFTWARE_ENGINEERING
P. 257
Unit 12: Refactoring
The simplified VCs were those that needed human intervention to prove. After block 1, the Notes
maximum VC length was over 10,000 lines, far beyond what a human could manage. In the final
refectories code, the maximum was 68 lines. When the implementation annotation was complete,
the maximum length of VCs needing human intervention was only 126 lines.
We extracted a skeleton specification from the code after applying each block of transformations.
These specifications were skeletons because they were obtained before the code had been
annotated and so contained none of the detail from the annotations. We compared the structure
of the skeleton extracted specification with that of the original specification by visually inspection
and evaluated a match-ratio metric. This is defines as the percentage of key structural element
data types, operators, functions and tables in the original specification that had direct counterparts
in the extracted specification. We hypothesize that this measure is an indication of the likelihood
of success fully establishing the implication proof.
The values of the match ratio are shown in Figure 12.4(f). The ratio increased gradually from
25.9% to 96.3% as the transformation blocks were applied. There is only a small increase in its
value after the block 8 transformations were applied, and the implication proof could have
been attempted at that point. However, although some metrics had stabilized after the block 8
transformations, the time required for the SPARK analysis was still declining.
Impact of Refactoring On Quality and
Productivity in an Agile Team
he object under study is a software project in an agile, close-to-industrial development
environment (“close-to industrial” refers to an environment where the development
Tteam is composed of both professional software engineers and students). The result is
a commercial software product developed at VTT in Oulu, Finland, to monitor applications
for mobile, Java enabled devices. The programming language was Java (version 1.4) and the
IDE was Eclipse 3.0. The project was a full business success in the sense that it delivered on
time and on budget the required product. Four developers formed the development team.
Three developers had an education equivalent to a BSc and limited industrial experience. The
fourth developer was an experienced industrial software engineer. The development process
followed a tailored version of the Extreme Programming practices, which included all the
practices of XP but the “System Metaphor” and the “On-site Customer”; there was instead
a local, on-site manager that met daily with the group and had daily conversations with
the off-site customer. In particular, the team worked in a collocated environment and used
the practice of pair programming. The project lasted eight weeks and was divided into five
iterations, starting with a 1-week iteration, which was followed by three 2-weeks iterations,
with the project concluding in final 1-week iteration. Throughout the project, mentoring was
provided on XP and other programming issues according to the XP approach. Since the team
was exposed for the first time to an XP-like process, a brief training of target XP practices was
given before the start of the project. The total development effort per developer was about
192 hours (6 hours per day for 32 days). Since with PROM we monitored all the interactions
of the developer with different applications, we are able to differentiate between coding and
other activities: About 75% of the total development effort was spent for pure coding activities
inside the IDE while the remaining 25% was spent for other assignments like working on text
documents, reading and writing emails, browsing the web and similar tasks. The developed
software consists of 30 Java classes and a total of about 1770 Java source code statements
(LOC counted as number of semicolons in a Java program). During development two user
stories have been explicitly written for refactoring activities: One at the end of iteration two
Contd...
LOVELY PROFESSIONAL UNIVERSITY 251