Presentation is loading. Please wait.

Presentation is loading. Please wait.

24/06/2015Dr Andy Brooks1 MSc Software Maintenance MS Viðhald hugbúnaðar Fyrirlestur 41 Maintainability of OSS OSS Open Source Software CSS Closed Source.

Similar presentations


Presentation on theme: "24/06/2015Dr Andy Brooks1 MSc Software Maintenance MS Viðhald hugbúnaðar Fyrirlestur 41 Maintainability of OSS OSS Open Source Software CSS Closed Source."— Presentation transcript:

1 24/06/2015Dr Andy Brooks1 MSc Software Maintenance MS Viðhald hugbúnaðar Fyrirlestur 41 Maintainability of OSS OSS Open Source Software CSS Closed Source Software Viðhaldsþægni opins hugbúnaðar

2 24/06/2015Dr Andy Brooks2 Case Study Dæmisaga Reference Open Source Software Development Should Strive for EVEN GREATER CODE MAINTAINABILITY, Ioannis Samoladas, Ioannis Stamelos, and Lefteris Angelis, Communications of the ACM, Volume 47, Number 10, pp 83-87 2004. ©ACM

3 OSS Product evolution is usually coordinated by the creators of the first version. Project coordinators are responsible for: –configuration management –release scheduling –deciding which code contributions to accept –deciding which bug fixes to accept Success strongly depends on how well the project is coordinated. 24/06/2015Dr Andy Brooks3

4 OSS Advantages/OSS Kostir It is claimed that it is possible to produce reliable, high quality, and low-cost software in a short time. It is claimed that the large pool of developers and testers results in a “true peer review” of the code, facilitating bug detection and debugging. “However, few empirical studies have been available to support or reject these claims.” –People simply refer to a few worthy systems like Linux, Apache, Firefox, and Perl. 24/06/2015Dr Andy Brooks4

5 Absence of complete documentation. Absence of technical support. Suited for projects with clear and widely accepted specifications such as those for operating systems. 24/06/2015Dr Andy Brooks5 OSS Disadvantages/OSS Ókostir

6 OSS: perpetual maintenance “A ready interpretation of the OSS development process is that of a perpetual maintenancee task.” Adding new functionality –perfective maintenance Debugging existing functionality –corrective maintenance “We contend maintainability is the core quality issue in OSS development.” 24/06/2015Dr Andy Brooks6... so measure maintainability

7 Software metrics used Number of lines of code (LOC) –excluding blank lines and comments Percentage of lines of comments with respect to the number of lines of code (PerCM) –percentage comments per module Cyclomatic Complexity V(g) –the number of independent paths in the control flow graph of a program component 24/06/2015Dr Andy Brooks7 v refers to the cyclomatic number in graph theory

8 24/06/2015Dr Andy Brooks8 Cyclomatic Complexity (CC) The cyclomatic complexity of a program graph may be calculated in 3 ways. 1. Number of regions no. bounded areas + the unbounded area surrounding graph 2. Number of edges - number of nodes + 2 3. Number of predicate nodes + 1 switch is not a predicate node extra from MS Prófun

9 24/06/2015Dr Andy Brooks9 Cyclomatic Complexity is 5. At least 5 test cases are needed to ensure statement coverage and that every predicate has been evaluated true and false at least once. Code with high complexity (high CC) may get targeted for additional tests. But note that there are disagreements over the theoretical foundation and usefulness of the CC metric. MAXV is the maximum cyclomatic complexity value for any single method within a class. extra from MS Prófun

10 Halstead Volume V V = N * LOG 2 n program vocabulary n = n1 + n2 –n1 the number of distinct operators –n2 the number of distinct operands program length N = N1 + N2 –N1 is the total number of operators –N2 is the total number of operands 24/06/2015Dr Andy Brooks10 Software metrics used

11 Maintainability Index MI avgV –average Halstead Volume per module avgV(g) –average cyclomatic complexity per module avgLOC –average lines of code per module avgPerCM –average percent lines of comments per module 24/06/2015Dr Andy Brooks11 Software metrics used “coefficients calibrated by Oman[9]” “high MI values indicate high maintainability”

12 Five active and popular OSS projects studied project anonymity for ethical reasons 24/06/2015Dr Andy Brooks12 ©ACM

13 Figure 1. MI for PrA ©ACM Both projects developed similar functionality over the study period. Maintainability deteriorates with time but the OSS version does “significantly better”. 24/06/2015Dr Andy Brooks13

14 MI for PrA Andy says: The deterioration in MI for the commercial spin-off largely took place over one release (version 4→5). Knowing the reasons for this particular deterioration would be useful. 24/06/2015Dr Andy Brooks14

15 Figure 2. MI for PrB ©ACM “...switching from CSS to OSS did not deteriorate maintainability” 24/06/2015Dr Andy Brooks first version was CSS

16 Figure 3. MI for PrC, PrD, PrE ©ACM Three typical OSS projects Maintainability drops gradually 24/06/2015Dr Andy Brooks16

17 Conclusions “OSS code quality appears to be at least equal and sometimes better than the quality of CCS code implementing the same functionality.” Maintainability deteriorates over time for OSS just as it does for CSS. “Preventative maintenance may be the third type of maintenance that must be taken into account by OSS proponents.” More empirical work is needed “to consolidate the findings of this study.” 24/06/2015Dr Andy Brooks17

18 Maintainability Andy says: Maintainability is ultimately measured by the effort required to fulfill a change request. Many would view with skepticism findings based solely on the value of the MI metric. 24/06/2015Dr Andy Brooks18


Download ppt "24/06/2015Dr Andy Brooks1 MSc Software Maintenance MS Viðhald hugbúnaðar Fyrirlestur 41 Maintainability of OSS OSS Open Source Software CSS Closed Source."

Similar presentations


Ads by Google