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.

Slides:



Advertisements
Similar presentations
Configuration Management
Advertisements

1 Ivan Marsic Rutgers University LECTURE 15: Software Complexity Metrics.
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
David Woo (dxw07u).  What is “White Box Testing”  Data Processing and Calculation Correctness Tests  Correctness Tests:  Path Coverage  Line Coverage.
1 Static Analysis Methods CSSE 376 Software Quality Assurance Rose-Hulman Institute of Technology March 20, 2007.
Software Metrics II Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
IMSE Week 18 White Box or Structural Testing Reading:Sommerville (4th edition) ch 22 orPressman (4th edition) ch 16.
BASIS PATH TESTING ● By Tom McCabe ● McCabe, T., "A Software Complexity Measure," IEEE Trans. Software Engineering, vol. SE-2, December 1976, pp
28/06/2015Dr Andy Brooks1 MSc Software Maintenance MS Viðhald hugbúnaðar Fyrirlestur 42 Maintainability Index Revisited.
28/06/2015Dr Andy Brooks1 MSc Software Maintenance MS Viðhald hugbúnaðar Fyrirlestrar 25 & 26 The Importance of Typographic Style “Hence, the book format.
Testing an individual module
COMP 6710 Course NotesSlide 11-0 Auburn University Computer Science and Software Engineering Course Notes Set 11: Software Metrics Computer Science and.
Unit Testing CS 414 – Software Engineering I Don Bagert Rose-Hulman Institute of Technology January 16, 2003.
Topics in Metrics for Software Testing [Reading assignment: Chapter 20, pp ]
A Complexity Measure THOMAS J. McCABE Presented by Sarochapol Rattanasopinswat.
Software Systems Verification and Validation Laboratory Assignment 3
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Prof. Mohamed Batouche Software Testing.
1 Debugging and Testing Overview Defensive Programming The goal is to prevent failures Debugging The goal is to find cause of failures and fix it Testing.
1 Software Quality CIS 375 Bruce R. Maxim UM-Dearborn.
Software Quality Applied throughout SW Engineering Process Encompasses ▫ Analysis, design, coding, testing, tools ▫ Formal tech reviews ▫ Multi-tiered.
Software Testing The process of operating a system or component under specified conditions, observing and recording the results, and making an evaluation.
Software Measurement & Metrics
By: TARUN MEHROTRA 12MCMB11.  More time is spent maintaining existing software than in developing new code.  Resources in M=3*(Resources in D)  Metrics.
Software Metrics Software Engineering.
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Lecture 23 Instructor Paulo Alencar.
OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties.
Software Metrics (Part II). Product Metrics  Product metrics are generally concerned with the structure of the source code (example LOC).  Product metrics.
Software Quality Metrics
White-box Testing.
Software Testing Łukasz Wojcieszek s2690 Tomasz Wyrzuc s2675.
1 Program Testing (Lecture 14) Prof. R. Mall Dept. of CSE, IIT, Kharagpur.
Creator: ACSession No: 7 Slide No: 1Reviewer: SS CSE300Advanced Software EngineeringSeptember 2005 Software Measurement – Estimation and Productivity CSE300.
Software Configuration Management (SCM). Product Developer Disciplines One view of the world is that there are three types of activities are required.
Software Metrics.
Software Testing White Box Testing. Agenda What is White Box Testing Correctness Tests and Path Coverage Correctness Tests and Line Coverage McCabe Cyclomatic.
Theory and Practice of Software Testing
SOFTWARE TESTING. Introduction Software Testing is the process of executing a program or system with the intent of finding errors. It involves any activity.
Agent program is the one part(class)of Othello program. How many test cases do you have to test? Reversi [Othello]
Cyclomatic complexity (or conditional complexity) is a software metric (measurement). Its gives the number of indepented paths through strongly connected.
CS223: Software Engineering Lecture 21: Unit Testing Metric.
Structural Coverage. Measurement of structural coverage of code is a means of assessing the thoroughness of testing. Such metrics do not constitute testing.
SOFTWARE TESTING LECTURE 9. OBSERVATIONS ABOUT TESTING “ Testing is the process of executing a program with the intention of finding errors. ” – Myers.
CHAPTER 9 - PART 2 Software Testing Strategies. Lesson Outlines ■ White box testing – Data processing and calculation correctness tests – Correctness.
1 Software Testing. 2 What is Software Testing ? Testing is a verification and validation activity that is performed by executing program code.
Software Development Module Code: CST 240 Chapter 6: Software Maintenance Al Khawarizmi International College, AL AIN, U.A.E Lecturer: Karamath Ateeq.
Software Test Metrics When you can measure what you are speaking about and express it in numbers, you know something about it; but when you cannot measure,
Static Software Metrics Tool
Configuration Management
Metrics of Software Quality
Software Metrics 1.
Software Testing.
White-Box Testing Pfleeger, S. Software Engineering Theory and Practice 2nd Edition. Prentice Hall, Ghezzi, C. et al., Fundamentals of Software Engineering.
Software Testing.
Cyclomatic complexity
Software Engineering (CSI 321)
Managing the System PPT SOURCE : Shari L. Pfleeger Joann M. Atlee.
Data Coverage and Code Coverage
Types of Testing Visit to more Learning Resources.
Celia Chen1, Lin Shi2, Kamonphop Srisopha1
UNIT-4 BLACKBOX AND WHITEBOX TESTING
Software Testing (Lecture 11-a)
Halstead software science measures and other metrics for source code
Structural Coverage.
Structural Coverage.
Software Testing “If you can’t test it, you can’t design it”
Whitebox Testing.
1. Cyclomatic complexity
UNIT-4 BLACKBOX AND WHITEBOX TESTING
Unit III – Chapter 3 Path Testing.
Presentation transcript:

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

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 ©ACM

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

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

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

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

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

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 Number of predicate nodes + 1 switch is not a predicate node extra from MS Prófun

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

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

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”

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

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

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

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

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

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

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