Anticipatory development processes for reducing total ownership costs and schedules
Corresponding Author
Barry Boehm
Department of Computer Science, University of Southern California, Los Angeles, California
Corrspondence
Barry Boehm, Computer Science Department, University of Southern California, Los Angeles, CA 90089.
Email: [email protected]
Search for more papers by this authorPooyan Behnamghader
Department of Computer Science, University of Southern California, Los Angeles, California
Search for more papers by this authorCorresponding Author
Barry Boehm
Department of Computer Science, University of Southern California, Los Angeles, California
Corrspondence
Barry Boehm, Computer Science Department, University of Southern California, Los Angeles, CA 90089.
Email: [email protected]
Search for more papers by this authorPooyan Behnamghader
Department of Computer Science, University of Southern California, Los Angeles, California
Search for more papers by this authorAbstract
Many systems and software processes overfocus on getting a project and product from an initial set of requirements to an Initial Operational Capability (IOC). Examples are most waterfall and V models. Projects following such processes may pass acceptance tests for functionality and performance, but may leave the product with serious maintainability shortfalls. Many agile processes focus on users' initial usage priorities, but often make development commitments for earlier needs that are incompatible with achieving later critical needs (eg, security, safety). Incremental development process models can do better, but often later increments may find that the earlier increments have not prepared them for ease of modification and repair. Besides increasing Total Ownership Costs (TOCs), long mean times to repair result in long downtimes, which can be critical to an organization's income and reputation. Furthermore, many of these shortfalls take the form of Technical Debt (TD), in that the later they are fixed, the more slow and expensive will be the fixes. This paper summarizes three process frameworks and tools providing more anticipatory ways to improve systems and software maintainability and life-cycle cost-effectiveness. The first framework is an Opportunity Tree for identifying and anticipating such ways. The second framework, Software Quality Understanding by Analysis of Abundant Data (SQUAAD), is a toolset for tracking a software project's incremental code commits, and analyzing and visualizing each commit's incremental and cumulative TD. The third framework is a Software/Systems Maintenance Readiness Framework (SMRF), that identifies needed maintenance readiness levels at development decision reviews, similar to the Technology Readiness Levels (TRLs) framework.
REFERENCES
- 1Dodaro GL. Government Efficiency and Effectiveness: Opportunities to Reduce Fragmentation, Overlap, and Duplication and Achieve Other Financial Benefits. Washington, DC: Government Accountability Office; 2015.
- 2Redman Q. Weapon System Design Using Life Cycle Costs. Raytheon Presentation; 2008.
- 3Koskinen J. Software maintenance fundamentals. In: P Laplante, ed. Encyclopedia of Software Engineering. London: Taylor & Francis Group; 2009.
- 4Boehm B, Chen C, Srisopha K, Shi L. The key roles of maintainability in an ontology for system qualities. INCOSE Int Symp. 2016; 26(1): 2026–2040. http://doi.org/10.1002/j.2334-5837.2016.00278.x
10.1002/j.2334-5837.2016.00278.x Google Scholar
- 5 INCOSE, Walten DD. Systems Engineering Handbook: A Guide for System Life Cycle Processes and Activities. 4th ed. Hoboken, NJ: John Wiley & Sons Inc.; 2015.
- 6Haimes YY. Systems-based guiding principles for risk modeling, planning, assessment, management, and communication. Risk Anal. 2012; 32(9): 1451–1467.
- 7 Defense Science Board DoD. Design and Acquisition of Software for Defense Systems. Under Secretary of Defense for Research and Engineering (USD(R&E)); 2018. https://apps.dtic.mil/dtic/tr/fulltext/u2/1048883.pdf
- 8Abts C, Boehm BW, Clark EB. COCOTS: a COTS software integration cost model - model overview and preliminary data findings. Proceedings of ESCOM-SCOPE Conference; 2000: 325–333.
- 9Parnas DL. Designing software for ease of extension and contraction. IEEE Trans Softw Eng. 1979;(2): 128–138.
- 10Royce W. Software Project Management—A Unified Approach. Reading, MA: Addison-Wesley Longman; 1998.
- 11Sundbo J, Gallouj F. Innovation as a loosely coupled system in services. Int J Serv Technol Manag. 2000; 1(1): 15–36.
10.1504/IJSTM.2000.001565 Google Scholar
- 12Boehm B, Bhuta J. Balancing opportunities and risks in component-based software development. IEEE Softw. 2008; 25(6): 56–63.
- 13Borges B, Holley K, Arsanjani A. Delving into Service-Oriented Architecture. 2004. www.developer.com/java/data/article.php/3409221/Delving-into-Service-Oriented-Architecture.htm
- 14Bernstein JI. Design Methods in the Aerospace Industry: Looking for Evidence of Set-Based Practices. Massachusetts Institute of Technology; 1998.
- 15Reinertsten DG. The Principles of Product Development Flow: Second Generation Lean Product Development. Redondo Beach: Celeritas; 2009.
- 16Chen C, Alfayez R, Srisopha K, Shi L, Boehm B. Evaluating human-assessed software maintainability metrics. In: Software Engineering and Methodology for Emerging Domains. Singapore: Springer; 2016: 120–132.
10.1007/978-981-10-3482-4_9 Google Scholar
- 17Bullock J. Calculating the value of testing from an executive's perspective, software testing is not a capital investment in the physical plant, an acquisition, or another readily accepted business expense. A Quality Assurance Manager describes how to present testing as a business-process investment. Softw Test Qual Eng. 2000; 2: 56–63.
- 18Li Q. Value-Based, Dependency-Aware Inspection and Test Prioritization. University of Southern California; 2012.
- 19Mexim B, Kessentini M. An introduction to modern software quality assurance. In: Software Quality Assurance: In Large Scale and Complex Software-Intensive Systems. Waltham, MA: Morgan Kaufmann; 2015: 19–46.
- 20Pinto G, Torres W, Fernandes B, Castor F, Barros RSM. A large-scale study on the usage of Java's concurrent programming constructs. J Syst Softw. 2015; 106: 59–81. http://www.sciencedirect.com/science/article/pii/S0164121215000849.
- 21Godfrey MW, Tu Q. Evolution in open source software: a case study. In: Proceedings of International Conference on Software Maintenance. IEEE; 2000: 131–142.
10.1109/ICSM.2000.883030 Google Scholar
- 22Ganpati A, Kalia A, Singh H. A comparative study of maintainability index of open source software. Int J Emerg Technol Adv Eng. 2012; 2(10): 228–230.
- 23D'Ambros M, Gall H, Lanza M, Pinzger M. Analysing software repositories to understand software evolution. In: Software Evolution. Berlin, Heidelberg: Springer; 2008: 37–67.
10.1007/978-3-540-76440-3_3 Google Scholar
- 24Le DM, Behnamghader P, Garcia J, Link D, Shahbazian A, Medvidovic N. An empirical study of architectural change in open-source software systems. In: Proceedings of the 12th Working Conference on Mining Software Repositories. IEEE Press; 2015: 235–245.
10.1109/MSR.2015.29 Google Scholar
- 25Tufano M, Palomba F, Bavota G, et al. When and why your code starts to smell bad (and whether the smells go away). IEEE Trans Softw Eng. 2017; 43(11): 1063–1088.
- 26Dyer R, Nguyen HA, Rajan H, Nguyen TN. Boa: ultra-large-scale software repository and source-code mining. ACM Trans Softw Eng Methodol. 2015; 25(1): 7:1–7:34. https://doi.acm.org/10.1145/2803171
- 27Diamantopoulos T, Thomopoulos K, Symeonidis A. QualBoa: reusability-aware recommendations of source code components. In: Proceedings of the 13th International Conference on Mining Software Repositories. ACM; 2016: 488–491.
10.1145/2901739.2903492 Google Scholar
- 28Tiwari NM, Upadhyaya G, Nguyen HA, Rajan H. Candoia: a platform for building and sharing mining software repositories tools as Apps. In: 2017 IEEE/ACM 14th International Conference on Mining Software Repositories (MSR); 2017: 53–63.
10.1109/MSR.2017.56 Google Scholar
- 29Gousios G, Vasilescu B, Serebrenik A, Zaidman A. Lean GHTorrent: GitHub data on demand. In: Proceedings of the 11th Working Conference on Mining Software Repositories. ACM; 2014: 384–387.
10.1145/2597073.2597126 Google Scholar
- 30Rozenberg D, Beschastnikh I, Kosmale F, et al. Comparing repositories visually with RepoGrams. In: IEEE/ACM 13th Working Conference on Mining Software Repositories (MSR); 2016: 109–120.
10.1145/2901739.2901768 Google Scholar
- 31Kaur A, Chopra D. GCC-Git Change Classifier for Extraction and Classification of Changes in Software Systems. Singapore: Springer Singapore; 2018: 259–267. https://doi.org/10.1007/978-981-10-5523-2_24
- 32Sokol FZ, Aniche MF, Gerosa MA. MetricMiner: supporting researchers in mining software repositories. In: 2013 IEEE 13th International Working Conference on Source Code Analysis and Manipulation (SCAM); 2013: 142–146.
10.1109/SCAM.2013.6648195 Google Scholar
- 33Trautsch F, Herbold S, Makedonski P, Grabowski J. Addressing problems with replicability and validity of repository mining studies through a smart data platform. Empir Softw Eng. 2018; 23(2): 1036–1083. https://doi.org/10.1007/s10664-017-9537-x
- 34Trautsch F, Herbold S, Makedonski P, Grabowski J. Addressing problems with external validity of repository mining studies through a smart data platform. In: MSR '16: Proceedings of the 13th International Conference on Mining Software Repositories. New York, NY, USA: ACM; 2016: 97–108. http://doi.acm.org/10.1145/2901739.2901753
10.1145/2901739.2901753 Google Scholar
- 35Alexandru CV, Panichella S, Gall HC. Reducing redundancies in multi-revision code analysis. In: IEEE 24th International Conference on Software Analysis, Evolution and Reengineering (SANER); 2017: 148–159.
10.1109/SANER.2017.7884617 Google Scholar
- 36Garcia J, Ivkovic I, Medvidovic N. A comparative analysis of software architecture recovery techniques. In: IEEE/ACM 28th International Conference on Automated Software Engineering (ASE). IEEE; 2013: 486–496.
10.1109/ASE.2013.6693106 Google Scholar
- 37Tzerpos V, Holt RC. ACDC: an algorithm for comprehension-driven clustering. In: Proceedings of the Seventh Working Conference on Reverse Engineering (WCRE '00). Washington, DC, USA: IEEE Computer Society; 2000: 258. http://dl.acm.org/citation.cfm?id=832307.837118.
10.1109/WCRE.2000.891477 Google Scholar
- 38Ayewah N, Hovemeyer D, Morgenthaler JD, Penix J, Pugh W. Using static analysis to find bugs. IEEE Softw. 2008; 25(5): 22–29.
- 39Malaiya YK, Li MN, Bieman JM, Karcich R. Software reliability growth with test coverage. IEEE Trans Reliab. 2002; 51(4): 420–426.
- 40Behnamghader P, Alfayez R, Srisopha K, Boehm B. Towards better understanding of software quality evolution through commit-impact analysis. In: 2017 IEEE International Conference on Software Quality, Reliability and Security (QRS); 2017: 251–262.
10.1109/QRS.2017.36 Google Scholar
- 41Campbell A. SonarQube: Open Source Quality Management. 2015. Website: tiny.cc/2q4z9x
- 42Behnamghader P, Boehm B. Towards better understanding of software maintainability evolution. In: 2018 Conference on Systems Engineering Research (CSER 2018). Charlottesville, USA; 2018.
- 43Behnamghader P, Meemeng P, Fostiropoulos I, Huang D, Srisopha K, Boehm B. A scalable and efficient approach for compiling and analyzing commit history. In Proceedings of the 12th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement, ESEM.18. New York, NY, USA: ACM; 2018; 27: 1–27:10. https://doi.acm.org/10.1145/3239235.3239237
10.1145/3239235.3239237 Google Scholar
- 44Behnamghader P, Le DM, Garcia J, Link D, Shahbazian A, Medvidovic N. A large-scale study of architectural evolution in open-source software systems. Empir Softw Eng. 2017; 22(3): 1146–1193. https://doi.org/10.1007/s10664-016-9466-0
- 45Alfayez R, Behnamghader P, Srisopha K, Boehm B. How does contributors involvement influence open source systems. In: IEEE 28th Annual Software Technology Conference (STC); 2017: 1–8.
10.1109/STC.2017.8234462 Google Scholar
- 46Alfayez R, Behnamghader P, Srisopha K, Boehm B. An exploratory study on the influence of developers in technical debt. In: Proceedings of the International Conference on Technical Debt; 2018.
10.1145/3194164.3194165 Google Scholar
- 47Kruchten P, Nord RL, Ozkaya I. Technical debt: from metaphor to theory and practice. IEEE Softw. 2012; 29(6): 18–21.
- 48Akao Y. Development history of quality function deployment. In: The Customer Driven Approach to Quality Planning and Deployment. Tokyo: Asian Productivity Organization; 1994; 339: 90.
- 49Glass RL. Software Runaways: Monumental Software Disasters. Prentice Hall Englewood Cliffs, NJ; 1997.
- 50Haffa R, Datla A. Learning from acquisition history. Aerosp Am. 2016; 54(1): 30–33.
- 51Elssamadisy A, Schalliol G. Recognizing and responding to “bad smells” in extreme programming. In: ICSE '02: Proceedings of the 24th International Conference on Software Engineering; 2002: 617–622.
10.1145/581417.581418 Google Scholar
- 52Leffingwell D. Scaling Software Agility: Best Practices for Large Enterprises. Pearson Education; 2007.
- 53Anderson DJ. Kanban: Successful Evolutionary Change for Your Technology Business. Sequim: Blue Hole Press; 2010.
- 54Davis J, Daniels R. Effective DevOps: Building a Culture of Collaboration, Affinity, and Tooling at Scale. Sebastopol: O'Reilly Media, Inc.; 2016.
- 55Bosch J. Speed, Data, and Ecosystems: Excelling in a Software-Driven World. Boca Raton, FL: CRC Press; 2017.
10.1201/9781315270685 Google Scholar
- 56 DoD. Technology Readiness Assessment (TRA) Guidance. Revision posted; 2011: 13.
- 57Cundiff D. Manufacturing readiness levels (MRL). Unpublished white paper. 2003.
- 58Sauser B, Verma D, Ramirez-Marquez J, Gove R. From TRL to SRL: the concept of systems readiness levels. In: Conference on Systems Engineering Research, Los Angeles, CA; 2006: 1–10.
- 59Sauser BJ. System Maturity Metrics for Decision Support in Defense Acquisition, Users Guide: Version 1.0. 2007.
- 60Vitasek K, Ledyard M. Vested Outsourcing: Five Rules That will Transform Outsourcing. Springer; 2013.
10.1057/9781137321183 Google Scholar
- 61 Software & Systems Engineering Standards Committee ICS. ISO/IEC TR 24748-1: Systems and Software Engineering–Life Cycle Management–Part 1: Guide for Life Cycle Management. ISO; 2011. https://standards.ieee.org/standard/24748-1-2011.html.
- 62Boehm BW, Madachy R, Steece B, et al. Software Cost Estimation with Cocomo II with Cdrom. Upper Saddle River, NJ: Prentice Hall PTR; 2000.