An Initial Ontology for System Qualities: Elaborating on Maintainability Barry Boehm, USC CS 577, Fall 2015 10-18-20151.

Slides:



Advertisements
Similar presentations
Ninth Lecture Hour 8:30 – 9:20 pm, Thursday, September 13
Advertisements

Software Engineering CSE470: Process 15 Software Engineering Phases Definition: What? Development: How? Maintenance: Managing change Umbrella Activities:
Tradespace, Affordability, and COCOMO III Barry Boehm, USC CSSE Annual Research Review 2014 April 30,
Proposed Unified “ility” Definition Framework Andrew Long
Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department of Defense © 1998 by Carnegie Mellon.
CMMI – Continuous as well as staged model CMMI capability levels – Incomplete, performed, managed, defined, quantitatively managed, optimized Example.
Using UML, Patterns, and Java Object-Oriented Software Engineering Royce’s Methodology Chapter 16, Royce’ Methodology.
Rational Unified Process
Software Quality Engineering Roadmap
University of Southern California Center for Software Engineering CSE USC COSYSMO: Constructive Systems Engineering Cost Model Barry Boehm, USC CSE Annual.
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
Fundamentals of Information Systems, Second Edition
Valuing System Flexibility via Total Ownership Cost Analysis Barry Boehm, JoAnn Lane, USC Ray Madachy, NPS NDIA Systems Engineering Conference October.
System-of-Systems Cost Modeling: COSOSIMO July 2005 Workshop Results Jo Ann Lane University of Southern California Center for Software Engineering.
University of Southern California Center for Software Engineering CSE USC 9/14/05 1 COCOMO II: Airborne Radar System Example Ray Madachy
University of Southern California Center for Software Engineering C S E USC Agile and Plan-Driven Methods Barry Boehm, USC USC-CSE Affiliates’ Workshop.
Software Process and Product Metrics
1 CMPT 275 Software Engineering Requirements Analysis Process Janice Regan,
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Case Studies Instructor Paulo Alencar.
Architecture Tradeoff Analysis Method Based on presentations by Kim and Kazman
Enterprise Architecture
Software Project Management Fifth Edition
Achieving Better Reliability With Software Reliability Engineering Russel D’Souza Russel D’Souza.
COCOMO-SCORM: Cost Estimation for SCORM Course Development
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities:
An Introduction to Software Architecture
CS3100 Software Project Management Week 26 - Quality Dr Tracy Hall.
Feasibility Study.
Ilities Tradespace and Affordability Analysis Barry Boehm, USC
 CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
IT Requirements Management Balancing Needs and Expectations.
Software Engineering Principles Principles form the basis of methods, techniques, methodologies and tools Principles form the basis of methods, techniques,
Question To know that quality has improved, it would be helpful to be able to measure quality. How can we measure quality?
University of Southern California Center for Systems and Software Engineering Top Enablers and Inhibitors of Affordable Systems Supannika Koolmanojwong,
University of Palestine software engineering department Testing of Software Systems Testing throughout the software life cycle instructor: Tasneem.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Fifth Lecture Hour 9:30 – 10:20 am, September 9, 2001 Framework for a Software Management Process – Life Cycle Phases (Part II, Chapter 5 of Royce’ book)
Systems Analysis and Design in a Changing World, Fourth Edition
1 EE29B Feisal Mohammed EE29B: Introduction to Software Engineering Feisal Mohammed Ph: x3156.
March 2004 At A Glance NASA’s GSFC GMSEC architecture provides a scalable, extensible ground and flight system approach for future missions. Benefits Simplifies.
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
Estimating “Size” of Software There are many ways to estimate the volume or size of software. ( understanding requirements is key to this activity ) –We.
Effort Estimation In WBS,one can estimate effort (micro-level) but needed to know: –Size of the deliverable –Productivity of resource in producing that.
CSE 303 – Software Design and Architecture
Riding Herd on Total Ownership Costs: Herding Sheep vs. Herding Cats Barry Boehm, USC STC 2015 Keynote Address October 13, /21/20111.
Overview of RUP Lunch and Learn. Overview of RUP © 2008 Cardinal Solutions Group 2 Welcome  Introductions  What is your experience with RUP  What is.
Balancing System and Software Qualities Barry Boehm, USC STC 2015 Tutorial October 12, 2015 Fall
The COCOMO model An empirical model based on project experience. Well-documented, ‘independent’ model which is not tied to a specific software vendor.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
The Criticality of Systems Maintainability and the Need for Software-Intensive System (SIS) System Maintainability Readiness Levels Barry Boehm, USC USC-CSSE.
LECTURE 5 Nangwonvuma M/ Byansi D. Components, interfaces and integration Infrastructure, Middleware and Platforms Techniques – Data warehouses, extending.
CS 389 – Software Engineering Lecture 2 – Part 2 Chapter 2 – Software Processes Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.
Project Cost Management
COCOMO III Workshop Summary
Riding Herd on Total Ownership Costs: Herding Sheep vs
Cost Estimation with COCOMO II
Tutorial: Software Cost Estimation Tools – COCOMO II and COCOTS
Pongtip Aroonvatanaporn CSCI 577b Spring 2011 March 25, 2011
Welcome and Agenda Barry Boehm, USC CSSE ARR 2018 March 13-14, 2018
Affordability-Based Engineering
Chapter 2 – Software Processes
Cost Estimation with COCOMO II
Cost Estimation with COCOMO II
Cost Estimation with COCOMO II
Balancing System and Software Qualities Barry Boehm, USC STC 2015 Tutorial October 12, 2015 Fall 2015.
Presentation transcript:

An Initial Ontology for System Qualities: Elaborating on Maintainability Barry Boehm, USC CS 577, Fall

Outline Critical nature of system qualities (SQs) – Or non-functional requirements (NFRs); ilities – Major source of project overruns, failures – Significant source of stakeholder value conflicts – Poorly defined, understood – Underemphasized in project management Need for and nature of SQs ontology – Nature of an ontology; choice of IDEF5 structure – Stakeholder value-based, means-ends hierarchy – Synergies and Conflicts matrix and expansions Initial elaboration of Maintainability

Importance of SQ Tradeoffs Major source of DoD, other system overruns SQs have systemwide impact – System elements generally just have local impact SQs often exhibit asymptotic behavior – Watch out for the knee of the curve Best architecture is a discontinuous function of SQ level – “Build it quickly, tune or fix it later” highly risky – Large system example below $100M $50M Required Architecture: Custom; many cache processors Original Architecture: Modified Client-Server Response Time (sec) Original Spec After Prototyping Original Cost 3

Example of SQ Value Conflicts: Security IPT Single-agent key distribution; single data copy – Reliability: single points of failure Elaborate multilayer defense – Performance: 50% overhead; real-time deadline problems Elaborate authentication – Usability: delays, delegation problems; GUI complexity Everything at highest level – Modifiability: overly complex changes, recertification

Proliferation of Definitions: Resilience Wikipedia Resilience variants: Climate, Ecology, Energy Development, Engineering and Construction, Network, Organizational, Psychological, Soil Ecology and Society Organization Resilience variants: Original-ecological, Extended-ecological, Walker et al. list, Folke et al. list; Systemic-heuristic, Operational, Sociological, Ecological-economic, Social-ecological system, Metaphoric, Sustainabilty-related Variants in resilience outcomes – Returning to original state; Restoring or improving original state; Maintaining same relationships among state variables; Maintaining desired services; Maintaining an acceptable level of service; Retaining essentially the same function, structure, and feedbacks; Absorbing disturbances; Coping with disturbances; Self-organizing; Learning and adaptation; Creating lasting value – Source of serious cross-discipline collaboration problems

Example of Current Practice “The system shall have a Mean Time Between Failures of 10,000 hours” What is a “failure?” – 10,000 hours on liveness – But several dropped or garbled messages per hour? What is the operational context? – Base operations? Field operations? Conflict operations? Most management practices focused on functions – Requirements, design reviews; traceability matrices; work breakdown structures; data item descriptions; earned value management What are the effects of or on other SQs? – Cost, schedule, performance, maintainability?

Outline Critical nature of system qualities (SQs) – Or non-functional requirements; ilities – Major source of project overruns, failures – Significant source of stakeholder value conflicts – Poorly defined, understood – Underemphasized in project management Need for and nature of system SQs ontology – Nature of an ontology; choice of IDEF5 structure – Stakeholder value-based, means-ends hierarchy – Synergies and Conflicts matrix and expansions Initial elaboration of Maintainability

Need for SQs Ontology Oversimplified one-size-fits all definitions – ISO/IEC 25010, Reliability: the degree to which a system, product, or component performs specified functions under specified conditions for a specified period of time – OK if specifications are precise, but increasingly “specified conditions” are informal, sunny-day user stories. Satisfying just these will pass “ISO/IEC Reliability,” even if system fails on rainy-day user stories – Need to reflect that different stakeholders rely on different capabilities (functions, performance, flexibility, etc.) at different times and in different environments Proliferation of definitions, as with Resilience Weak understanding of inter-SQ relationships – Security Synergies and Conflicts with other qualities

Nature of an ontology; choice of IDEF5 structure An ontology for a collection of elements is a definition of what it means to be a member of the collection For “system qualities,” this means that an SQ identifies an aspect of “how well” the system performs – The ontology also identifies the sources of variability in the value of “how well” the system performs Functional requirements specify “what;” NFRs specify “how well” After investigating several ontology frameworks, the IDEF5 framework appeared to best address the nature and sources of variability of system SQs – Good fit so far

Initial SERC SQs Ontology Modified version of IDEF5 ontology framework – Classes, Subclasses, and Individuals – Referents, States, Processes, and Relations Top classes cover stakeholder value propositions – Mission Effectiveness, Resource Utilization, Dependability, Flexibiity Subclasses identify means for achieving higher-class ends – Means-ends one-to-many for top classes – Ideally mutually exclusive and exhaustive, but some exceptions – Many-to-many for lower-level subclasses Referents, States, Processes, Relations cover SQ variation Referents: Sources of variation by stakeholder value context: States: Internal (beta-test); External (rural, temperate, sunny) Processes: Operational scenarios (normal vs. crisis; experts vs. novices) Relations: Impact of other SQs (security as above, synergies & conflicts)

Example: Reliability Revisited Reliability is the probability that the system will deliver stakeholder-satisfactory results for a given time period (generally an hour), given specified ranges of: – Stakeholders: desired and acceptable ranges of liveness, accuracy, response time, speed, capabilities, etc. – System internal and external states: integration test, acceptance test, field test, etc.; weather, terrain, DEFCON, takeoff/flight/landing, etc. – System internal and external processes: security thresholds, types of payload/cargo; workload volume, diversity – Effects of other SQs: synergies, conflicts

Set-Based SQs Definition Convergence RPV Surveillance Example Effective ness (pixels/ frame) Efficiency (E.g., frames/second) Phase 1 Phase 2 Phase 3 Phase 1. Rough ConOps, Rqts, Solution Understanding Phase 2. Improved ConOps, Rqts, Solution Understanding Phase 3. Good ConOps, Rqts, Solution Understanding Desired Acceptable Desired

Stakeholder value-based, means-ends hierarchy Mission operators and managers want improved Mission Effectiveness – Involves Physical Capability, Cyber Capability, Human Usability, Speed, Accuracy, Impact, Endurability, Maneuverability, Scalability, Versatility, Interoperability Mission investors and system owners want Mission Cost-Effectiveness – Involves Cost, Duration, Personnel, Scarce Quantities (capacity, weight, energy, …); Manufacturability, Sustainability All want system Dependability: cost-effective defect-freedom, availability, and safety and security for the communities that they serve – Involves Reliability, Availablilty, Maintainability, Survivability, Safety, Security, Robustness In an increasingly dynamic world, all want system Changeability: to be rapidly and cost-effectively changeable – Involves Maintainability (Modifiability, Repairability), Adaptability

Outline Critical nature of system qualities (SQs) – Or non-functional requirements; ilities – Major source of project overruns, failures – Significant source of stakeholder value conflicts – Poorly defined, understood – Underemphasized in project management Need for and nature of SQs ontology – Nature of an ontology; choice of IDEF5 structure – Stakeholder value-based, means-ends hierarchy – Synergies and Conflicts matrix and expansions Initial elaboration of Maintainability

7x7 Synergies and Conflicts Matrix Mission Effectiveness expanded to 4 elements – Physical Capability, Cyber Capability, Interoperability, Other Mission Effectiveness (including Usability as Human Capability) Synergies and Conflicts among the 7 resulting elements identified in 7x7 matrix – Synergies above main diagonal, Conflicts below Work-in-progress tool will enable clicking on an entry and obtaining details about the synergy or conflict – Ideally quantitative; some examples next Still need synergies and conflicts within elements – Example 3x3 Dependability subset provided

Software Development Cost vs. Reliability 0.8 Very Low NominalHigh Very High Relative Cost to Develop COCOMO II RELY Rating MTBF (hours) , ,

Software Ownership Cost vs. Reliability 0.8 Very Low NominalHigh Very High Relative Cost to Develop, Maintain, Own and Operate COCOMO II RELY Rating % Maint VL = 2.55 L = 1.52 Operational-defect cost at Nominal dependability = Software life cycle cost Operational - defect cost = 0 MTBF (hours) , ,

Legacy System Repurposing Eliminate Tasks Eliminate Scrap, Rework Staffing, Incentivizing, Teambuilding Kaizen (continuous improvement) Work and Oversight Streamlining Collaboration Technology Early Risk and Defect Elimination Modularity Around Sources of Change Incremental, Evolutionary Development Risk-Based Prototyping Satisficing vs. Optimizing Performance Value-Based Capability Prioritization Composable Components,Services, COTS Cost Improvements and Tradeoffs Get the Best from People Make Tasks More Efficient Simplify Products (KISS) Reuse Components Facilities, Support Services Tools and Automation Lean and Agile Methods Evidence-Based Decision Gates Domain Engineering and Architecture Task Automation Model-Based Product Generation Value-Based, Agile Process Maturity Affordability and Tradespace Framework Reduce Operations, Support Costs Streamline Supply Chain Design for Maintainability, Evolvability Automate Operations Elements Anticipate, Prepare for Change Value- and Architecture-Based Tradeoffs and Balancing 19

Costing Insights: COCOMO II Productivity Ranges Productivity Range Product Complexity (CPLX) Analyst Capability (ACAP) Programmer Capability (PCAP) Time Constraint (TIME) Personnel Continuity (PCON) Required Software Reliability (RELY) Documentation Match to Life Cycle Needs (DOCU) Multi-Site Development (SITE) Applications Experience (AEXP) Platform Volatility (PVOL) Use of Software Tools (TOOL) Storage Constraint (STOR) Process Maturity (PMAT) Language and Tools Experience (LTEX) Required Development Schedule (SCED) Data Base Size (DATA) Platform Experience (PEXP) Architecture and Risk Resolution (RESL) Precedentedness (PREC) Develop for Reuse (RUSE) Team Cohesion (TEAM) Development Flexibility (FLEX) Scale Factor Ranges: 10, 100, 1000 KSLOC Staffing Teambuilding Continuous Improvement 20

Legacy System Repurposing Eliminate Tasks Eliminate Scrap, Rework Staffing, Incentivizing, Teambuilding Kaizen (continuous improvement) Work and Oversight Streamlining Collaboration Technology Early Risk and Defect Elimination Modularity Around Sources of Change Incremental, Evolutionary Development Risk-Based Prototyping Satisficing vs. Optimizing Performance Value-Based Capability Prioritization Composable Components,Services, COTS Affordability Improvements and Tradeoffs Get the Best from People Make Tasks More Efficient Simplify Products (KISS) Reuse Components Facilities, Support Services Tools and Automation Lean and Agile Methods Evidence-Based Decision Gates Domain Engineering and Architecture Task Automation Model-Based Product Generation Value-Based, Agile Process Maturity Tradespace and Affordability Framework Reduce Operations, Support Costs Streamline Supply Chain Design for Maintainability, Evolvability Automate Operations Elements Anticipate, Prepare for Change Value- and Architecture-Based Tradeoffs and Balancing 21

COCOMO II-Based Tradeoff Analysis Better, Cheaper, Faster: Pick Any Two? -- Cost/Schedule/RELY: “pick any two” points (RELY, MTBF (hours)) For 100-KSLOC set of features Can “pick all three” with 77-KSLOC set of features 22

Value-Based Testing: Empirical Data and ROI — LiGuo Huang, ISESE 2005 (a) (b) 23

Outline Critical nature of system qualities (SQs) – Or non-functional requirements; ilities – Major source of project overruns, failures – Significant source of stakeholder value conflicts – Poorly defined, understood – Underemphasized in project management Need for and nature of SQs ontology – Nature of an ontology; choice of IDEF5 structure – Stakeholder value-based, means-ends hierarchy – Synergies and Conflicts matrix and expansions Initial elaboration of Maintainability

Problem and Opportunity (%O&M costs) US Government IT: ~75%; $59 Billion [GAO 2015] Hardware [Redman 2008] – 12% -- Missiles (average) – 60% -- Ships (average) – 78% -- Aircraft (F-16) – 84% -- Ground vehicles (Bradley) Software [Koskinen 2010] – 75-90% -- Business, Command-Control – 50-80% -- Complex platforms as above – 10-30% -- Simple embedded software Primary current emphasis minimizes acquisition costs 2/21/201126

Maintainability Challenges and Responses Maintainability supports both Dependability and Changeability – Distinguish between Repairability and Modifiability – Elaborate each via means-ends relationships Multiple definitions of Changeability – Distinguish between Product Quality and Quality in Use (ISO/IEC 25010) – Provide mapping between Product Quality and Quality in Use viewpoints Changeability can be both external and internal – Distinguish between Maintainability and Adaptability Many definitions of Resilience – Define Resilience as a combination of Dependability and Changeability Variability of Dependability and Changeability values – Ontology addresses sources of variation – Referents (stakeholder values), States, Processes, Relations with other SQs Need to help stakeholders choose options, avoid pitfalls – Qualipedia, Synergies and Conflicts, Opportunity Trees

Maintainability Opportunity Trees Address Modifiability, Repairability Modifiability Opportunity Tree – Anticipate Modifiability Needs – Design, Develop for Modifiability – Improve Modification V&V – Address Potential Conflicts Repairability Opportunity Tree – Anticipate Repairability Needs – Design, Develop for Repairability – Improve Repair Diagnosis – Improve Repair, V&V Processes – Address Potential Conflicts

Product Quality View of Changeability MIT Quality in Use View also valuable Changeability (PQ): Ability to become different product – Swiss Army Knife, Brick Useful but not Changeable Changeability (Q in Use): Ability to accommodate changes in use – Swiss Army Knife does not change as a product but is Changeable – Brick is Changeable in Use (Can help build a wall or break a window?) Changeability Adaptability Maintainability Self-Diagnosability Self-Modifiability Self-Testability Internal External Modifiability Repairability Defects Changes Testability Means to End Subclass of Understandability Modularity Scalability Portability Diagnosability Accessibility Restorability

A B A BC,D Means to End Subclass of Dependability, Availability Reliability Maintainability Defect Freedom Survivability Fault Tolerance Repairability Test Plans, Coverage Test Scenarios, Data Test Drivers, Oracles Test Software Qualitities Testability Complete Partial Robustness Self-Repairability Graceful Degradation Choices of Security, Safety … Modifiability Dependability, Changeability, and Resilience Testability, Diagnosability, etc Changeability Resilience 30

Maintainability Opportunity Tree: Modifiability Anticipate Modifiability Needs Design/Develop for Modifiability Improve Modification V&V Evolution requirements Trend analysis Hotspot (change source) analysis Modifier involvement Spare capacity; product line engineering Domain-specific architecture in domain Regression test capabilities Address Potential Conflicts Service-orientation; loose coupling Modularize around hotspots Enable user programmability Modification compatibility analysis Prioritize, Schedule Modifications, V&V

Maintainability Opportunity Tree: Repairability Anticipate Repairability Needs Design/Develop for Repairability Improve Repair Diagnosis Repair facility requirements Repair-type trend analysis Repair skills analysis Repair personnel involvement Replacement parts logistics development Replacement accessibility deaign Multimedia diagnosis guides Fault localization Address Potential Conflicts Repair compatibility analysis Regression test capabilities Address Potential Conflicts Improve Repair, V&V Processes Smart system anomaly, trend analysis Informative error messages Replacement parts trend analysis Repair facility design, development Address Potential Conflicts Switchable spare components Prioritize, Schedule Repairs, V&V

Elaborating Modifiability Benefits - I Evolution Requirements – Keep, prioritize below-the-line IOC requirements – Use to determine modularization around sources of change, reduce ripple effects of changes Trend Analysis – Identify, prioritize responses to sources of change Marketplace, competition, usage trends, mobility trends – Use to refine, evolve architecture Agile Methods, User Programmability – Enable rapid response to rapid change Hotspot Analysis – Gather data on most common sources of change – Use to modularize architecture, reduce ripple effects of changes 2/21/201133

343/27/2013 Use of Empirical Data in TOC Models: Pareto Cost-to-fix Distribution Contracts: Fixed cost and nominal-case requirements; 90 days to PDR

Rework Sources Analysis: Projects A and B - Change processing over 1 person-month = 152 person-hours 3/27/ CategoryProject AProject B Extra long messages = 5045 Network failover = 3040 Hardware-software interface = = 2832 Encryption algorithms = 1615 Subcontractor interface = 2060 GUI revision =2550 Data compression algorithm 910 External applications interface = 1460 COTS upgrades = = 1461 Database restructure = 1860 Routing algorithms = 692 Diagnostic aids = 979 TOTAL:

C4ISR Project C: Architecting for Change USAF/ESC-TRW CCPDS-R Project* 3/27/ When investments made in architecture, average time for change order becomes relatively stable over time… * Walker Royce, Software Project Management: A Unified Framework. Addison-Wesley, 1998.

Relative* Total Ownership Cost (TOC) For single system life cycle (TOC-SS) 3/27/ * Cumulative architecting and rework effort relative to initial development effort ~5% architecture investment ~25% architecture investment

Elaborating Modifiability Benefits – II and Repairability Benefits Service-Oriented Architecture improves Interoperability Product-Line Engineering improves Total Ownership Cost (TOC) – Identify, modularize around product line Commonalities – Develop domain architecture, interfaces to Variabilities – Fewer components to modify, repair Improved Repairability improves Availability, TOC – Availability = MTBF / (MTBF + MTTR) Stakeholder Value-Based V&V improves Cost, Mission Effectiveness – Prioritizing inspection, test activities – Balancing level of inspection, test activities vs. rapid fielding 2/21/201138

08/04/ Reuse at HP’s Queensferry Telecommunication Division Time to Market (months) Non-reuse Project Reuse project

Repairability Value: Cost of Downtime Survey Industry SectorRevenue/Hour Energy$2.8 million Telecommunications $2.0 million Manufacturing $1.6 million Financial Institutions $1.4 million Information Technology $1.3 million Insurance $1.2 million Retail $1.1 million Pharmaceuticals $1.0 million Banking $996,000 Source: IT Performance Engineering & Measurement Strategies: Quantifying Performance Loss, Meta Group, October /21/201140

Initial Empirical Study: Evaluate SW Maintainability Index on Open Source Projects Evaluate MI across 97 open source projects – 3 programming languages: Java, PHP, Python – 5 domains: Web development framework, System administration, Test tools, Security/Encryption, Audio-Video Test MI invariance across languages, domains Evaluate completeness of MI vs. other sources – COCOMO II Software Understandability factors Structuredness (cohesion, coupling) Self-descriptiveness (documentation quality) Application clarity (software reflects application content) – Other maintainability enablers (architecture, V&V support) Repairability: Diagnosability, Accessibility, Testability, Tool support Search for similar defects; root cause analysis

Widely Used Software Maintainability Index Oman and Hagemeister, 1991 Halstead Volume (HV) Cyclomatic complexity (CC) Count of logical lines (LLOC) Percent of lines of comments (CM)

Open Source Software Data Analysis Celia Chen, Lin Shi, Kam Srisopha LanguageAverage LLOC Metrics Collection Tools PHP18643Phpmetrics Java33871CodePro, LocMetrics Python6644Radon 97 OSS projects, three languages, five domains, 1,899,700 LLOC in total.

Results – Null Hypothesis 1 MI does not vary across PHP, Java and Python OSS projects One-way ANOVA Results for language analysis ● P-Value 0.05 ● Strongly suggestive rejection of null hypothesis for OSS projects

Results – Null Hypothesis 2 MI of PHP, Java and Python OSS projects does not vary by domain One-way ANOVA for domains Null hypothesis rejected with P-Value well below 0.05 (Definitive for OSS)

MI Variation among domains Web Development Framework has shown the highest medians and the highest maximum value. Audio and Video has both the lowest maximum value and the lowest median value PHP may be a good option for projects that desires higher maintainability within Web Development Framework, Security/Cryptography and Audio and Video domain, Python may be a good option for System Administrative Software Java may be a good option for Software Testing Tools.

Conclusions System qualities (SQs) are success-critical – Major source of project overruns, failures – Significant source of stakeholder value conflicts – Poorly defined, understood – Underemphasized in project management SQs ontology clarifies nature of system qualities – Using value-based, means-ends hierarchy – Identifies variation types: referents, states, processes, relations – Relations enable SQ synergies and conflicts identification Initial exploratory maintainability data analyses suggest empirical studies of SQs an attractive field of study

Backup charts