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
   252   253   254   255   256   257   258   259   260   261   262