Software Sustainment of Mission-Critical Systems: Wringing Value out of Legacy Assets. IEEE STC March 29 April 3, 2014

Similar documents
This resource is associated with the following paper: Assessing the maturity of software testing services using CMMI-SVC: an industrial case study

Advantages and Disadvantages of. Independent Tests. Advantages. Disadvantages

0 Introduction Test strategy A Test Strategy for single high-level test B Combined testing strategy for high-level tests...

Independent Verification and Validation (IV&V)

Project Management Institute (PMI) Practice Standard for Configuration Management

INF 3121 Software Testing - Lecture 05. Test Management

PART THREE: Work Plan and IV&V Methodology (RFP 5.3.3)

Using static code analysis for Agile software development

Oracle Systems Optimization Support

IMPLEMENTATION, EVALUATION & MAINTENANCE OF MIS:

DEPARTMENT OF DEFENSE HANDBOOK ACQUISITION OF SOFTWARE ENVIRONMENTS AND SUPPORT SOFTWARE

Pass4sure.ITIL-F.347.QA

Software Development Life Cycle:

Object-Oriented and Classical Software Engineering

Session 11E Adopting Agile Ground Software Development. Supannika Mobasser The Aerospace Corporation

MEETING THE CHALLENGE OF TRANSFORMATIONAL CHANGE:

Testing 2. Testing: Agenda. for Systems Validation. Testing for Systems Validation CONCEPT HEIDELBERG

Subject : Computer Science. Paper : Software Quality Management. Module : Quality Management Activities Module No: CS/SQM/15

Project and Process Tailoring For Success

SOLUTION BRIEF RSA ARCHER PUBLIC SECTOR SOLUTIONS

Top 10 Signs You're Ready (or Not)

Maximizing The Value Of Your Smart Grid Investment

NCOVER. ROI Analysis for. Using NCover. NCover P.O. Box 9298 Greenville, SC T F

From configuration management database (CMDB) to configuration management system (CMS)

Risk Mitigation in a Core Banking Conversion

UNCLASSIFIED. Exhibit R-2, RDT&E Budget Item Justification Date: February 2005 APPROPRIATION/BUDGET ACTIVITY DEFENSE WIDE RDT&E BA 6

Chapter 3 Agile Software Development

Number: DI-IPSC-81427B Approval Date:

A lifecycle approach to systems quality: because you can t test in quality at the end.

Passit4Sure.OG Questions. TOGAF 9 Combined Part 1 and Part 2

Supply Management Three-Year Strategic Plan

Seminar 06 Chapter 5 - Part 1

Object-Oriented and Classical Software Engineering THE SOFTWARE PROCESS 9/17/2017. CHAPTER 3 Slide 3.2. Stephen R. Schach. Overview Slide 3.

An Application of Causal Analysis to the Software Modification Process

WORK PLAN AND IV&V METHODOLOGY Information Technology - Independent Verification and Validation RFP No IVV-B

Mainframe Development Study: The Benefits of Agile Mainframe Development Tools

STREAM Integrated Risk Manager. ISO Application. How STREAM supports compliance with ISO 27001

CHAPTER 2 LITERATURE SURVEY

Service Virtualization

CGEIT Certification Job Practice

BMC - Business Service Management Platform

How To Evolve a Context-Driven Test Plan

Agile Acquisition. Peter Modigliani 10 Dec 12. Presented to: Mr. Koen Gijsbers. General Manager NATO Communications and Information Agency

EXIN ITIL Exam Questions & Answers

Applying Systems Engineering to ITS Projects: Advancing Beyond Federal Rule 940. INCOSE IW Transportation Working Group January 27, 2015

reasons to invest in a CMMS

18-642: Software Development Processes

SYSTEM MODERNIZATION BEST PRACTICES

Development Environment Definition

Risk Management Beyond CMMI Level 5

Software Maintenance, Sustaining Engineering, and Operational Support

Chapter 6: Software Evolution and Reengineering

The Dirty Little Secret of Software Pricing

CHAPTER 4 PRODUCT DEVELOPMENT LIFE CYCLE

Information Technology Services Project Management Office Operations Guide

A W I P R O W H I T E PA P E R

Command and Control Software Development Lessons Learned. Lt Col Michael D. Sarchet Deputy Director, Space Systems Command and Control Division

Product Modeling and Model Testing SAP s Product Modeling Environment (PMEVC) + espline s Avenue Enhancements

Choosing Between Private and Public Clouds: How to Defend Which Workload Goes Where

Reporting for Advancement

Continuous Quality Assurance

The Basics of ITIL Help Desk for SMB s

Project Plan. CxOne Guide

David. Director of Rational Requirements and Quality Management Products

QuEST Forum. TL 9000 Quality Management System. Requirements Handbook

Protecting Information Assets - Week 13 - Application Development Security. MIS 5206 Protecting Information Assets

ISO whitepaper, January Inspiring Business Confidence.

Business Alignment Through the DevOps Loop

Program Lifecycle Methodology Version 1.7

A Paradigm Shift for Dispatch Consoles From hardware consoles to a licensed, evergreen software platform

Five DevOps CM Practices

Software Quality Engineering where to find it in Software Engineering Body of Knowledge (SWEBOK)

An Epicor White Paper. Best Practices for ERP Implementation Success

CMMI and FPA. the link and benefit of using FPA when rolling out CMMI. Christine Green IFPUG - Certified Function Point Specialist EDS

Contents. viii. List of figures. List of tables. OGC s foreword. 6 Organizing for Service Transition 177. Chief Architect s foreword.

Effective Test Automation of SAP Implementations

UPGRADE CONSIDERATIONS Appian Platform

Integration and Testing

The SAM Optimization Model. Control. Optimize. Grow SAM SOFTWARE ASSET MANAGEMENT

Configuration Management

Agile and Secure Can We Be Both? San Antonio AITP. August 15 th, 2007

THE IMPORTANCE OF IMPLEMENTING SUSTAINABLE OPERATIONS MANAGEMENT SOFTWARE

Team #1: Information Technology Software. Team Leads: Ms. Amanda Graham, Boeing Mr. Jody Cox ODASD (SCI)

Systems Engineering, Program Management conjoined Disciplines over the Project Life Cycle

USING PILOTS TO ASSESS THE VALUE AND APPROACH OF CMMI IMPLEMENTATION. Goddard Space Flight Center (GSFC)

Risk Analysis (Project Impact Analysis)

ISTQB CTFL BH QuestionsAnswers with Explanation

Tech-Clarity Insight: Integrating PLM and MES. Realizing the Digital Factory

Simulation Governance:

7. Model based software architecture

Optimizing resource efficiency in Microsoft Azure

Capabilities Statement

BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 6 Professional Graduate Diploma in IT SOFTWARE ENGINEERING 2

INTEGRITY MANAGEMENT CONTINUOUS IMPROVEMENT. Foundation for an Effective Safety Culture

Introduction of RUP - The Rational Unified Process

Choose an Agile Approach

ISTQB Sample Question Paper Dump #11

Building an Enterprise QA Centre of Excellence Best Practices Discussion IBM Corporation

PDM/PLM BUYER S GUIDE PDM/ PLM BUYER S GUIDE FOR COMPANIES SEEKING TO STREAMLINE ENGINEERING PROCESSES & MANAGEMENT

Transcription:

Software Sustainment of Mission-Critical Systems: Wringing Value out of Legacy Assets IEEE STC March 29 April 3, 2014 0

Wringing Value out of Legacy Code Legacy systems tempt both acquisition and development communities alike Mission owners (usually) appreciate their fielded systems See the value from historical development Development teams see them as new markets and new capabilities Significant up-front work has already been done Both parties can reach the conclusion that adding new missions to existing systems is a Win/Win situation Savings provided by sustaining existing systems Infrastructure and foundational pieces are already written Labs, testing environments and facilities are often already stood up Certification and accreditation approaches are already vetted System already works There is nothing left to do but highly visible and rewarding stuff! 1

The Economic Case For Sustainment Very capable legacy systems are still vital, essential systems Support national defense, power transmission, and processing and manufacturing Risky systems to replace due to impact of any failures Some systems will take decades to replace with modern ones May not be cost effective to replace all at once Numerous opportunities for a capable developer 60 50 40 30 20 10 0 Department of The Navy Budget by Category Military Personnel Operations and Maintenance Procurement RDT&E O&M activities outpace historically flat RDT&E ones 2

Types of Software Sustainment Software sustainment is not a one-size-fits-all activity* Corrective Sustainment diagnosis and correction of program errors after its release. Perfective Sustainment the addition of new capabilities and functionality to existing software. Adaptive Sustainment modification of software to interface with a changing environment. Preventive Sustainment modification of software to improve future maintainability or reliability. Understanding which flavor(s) of sustainment will be performed is crucial to project success *Program Manager s Guide for Managing Software, 0.6, 29 June 2001, Chapter 12: www.geia.org/sstc/g47/swmgmtguide%20rev%200.4.doc as quoted in http://www.stsc.hill.af.mil/resources/tech_docs/gsam4/chap16.pdf. Orig. link broken 3

Sustainment is Far from Simple Sustainment of legacy systems presents a developer with a unique set of challenges Software that wasn t organically developed, and not very well understood May have limited-to-no visibility into what is running inside the legacy system Often written in an older language, and at a different place in time There are significant potential gotchas in any sustainment phase Under-estimation of effort Addition of updated or additional requirements Limited availability of hardware, software and licenses 4

Software Sustainment Overview There are five phases to our software sustainment approach Artifact Delivery Analyze The start of the cycle depends on the origin of the software In a sustainment model, the cycle begins when initial artifacts are accounted for, such as Requirements/Documentation Source Code Test Plans IA, software assurance and security plans Deliver Software Sustainment Cycle Develop Model Organize Having a sustainment approach prior to actually performing the work is vital 5

Entering the Sustainment Cycle Catalog all system artifacts This is often the most time-consuming phase Significant risk to cost and schedule if done incorrectly This process should begin prior to start of project Identify any missing artifacts (and there will be missing artifacts) Documentation and models Source code and testing artifacts Plans and procedures, configuration management artifacts Any documentation gaps need to be accounted for in the development plan They will likely affect cost and schedule Prioritize gap-filling efforts; not all artifacts are created equal Artifact Delivery 6

Analysis Gather a fundamental understanding of the system Requirements and their traceability to existing components Organization of the system What interfaces exist, and how are they used? What file system organizational techniques were employed? How the system fulfilled the requirements that it was designed against Intent of the system s designers and developers Software engineering tools aid in the understanding of both the software code and the executable content Integrated Development Environment tools, code profilers, component modeling approaches Great way to fill gaps in documentation and ground development efforts to reality Don t forget about performance requirements! Analyze 7

Analysis Tools Valgrind Runtime tool suite to detect and debug memory management and software threading issues OProfile Provides an understanding of software behavior by displaying execution frequency of software threads NightTrace Interactive debugging and performance analysis tool that displays kernel and application software activity Analyze Insight Toolsuite to assess operability of critical processes and interfaces in the computing environment, and validate the configuration of operating environment components Ntop Network probe and GUI to display interactive network usage and status Example Output: FILE LINE# ERROR CATEGORY ERROR TYPE file1.cpp : 21 memory leak : dynamic_buffer file2.cpp : 110 resource leak : file_descriptor file10.cpp : 204 (error) overlapping data buffer : copy_destination CPPCheck Static analysis of source code for various software vulnerabilities, such as memory leak detection Doxygen and other documentation tools Automatically document source code for existing systems. Collectd and DDA Ability to monitor and analyze CPU, memory and network utilization at the system and component level, correlated with Data Recording Extraction Points A full range of COTS, FOSS, and developed tools can assist analysis activities through automation 8

Organization Optimizes the organization of the system to facilitate easier sustainment Focus is placed on maintainability and reproducibility, as opposed to rapid capability development Organization and structure of the software is oriented towards repeatable, incremental deliveries Documentation artifacts are aligned with the software deliverables Requirements and traceability Test plans and procedures Information assurance plans Process tailoring occurs in this phase Ensures that processes align with expectations and deliverables Organize A plan to fill existing gaps is key to phase success. 9

Model Modeling of software and systems artifacts greatly enhances productivity and reduces overall development costs There are a variety of modeling tools that can automate the process These tools provide a variety of modeling services in addition to modelbased development Reverse Engineering of existing source System, component, and source code modeling Database Schema modeling and development Interface design and model-based interface management Modeling reports and model-based documentation Enable refactoring These model-based artifacts become a part of the software deliverable process To support forward-, round-trip, and any subsequent reverse-engineering Can replace existing documentation artifacts and/or fill CDRL gaps Model 10

Develop Don t underestimate the need for legacy and specialty language experience and expertise Ada, CMS-2, JOVIAL, and FORTRAN Assembly language, and proprietary hardware-specific languages C, C++, C#,.NET, Real-Time Java, J2SE, and J2EE Analysis languages, including MatLab and LabView Maintain data on productivity and performance specific to sustainment Modernization/development during sustainment will likely yield different data than your green field development process Develop heuristics to guide development (the 25% rule) Track and respond to the unique sustainment metrics Look to quality standards (e.g., CMMI and ISO) for metrics and quality guidance Remember, some types of developers are getting scarce! Laws of supply and demand apply Develop 11

Costs of Performing Sustainment Work Historical sustainment metrics show a decline in productivity using legacy languages Working population shifted to new technologies Decrease in available lab time and computing resources Heavy reliance on direct code and patching Driving force in determining whether to modernize CMS-2 Productivity 2003-2010 250 230 200 195 198 197 163 161 154 146 150 2003 100 2010 50 0 CMS-2 CMS-2 CMS-2 CMS-2 Elem 1 Elem 2 Elem 3 Elem 4 Across-the-board reduction in productivity from 2003-2010 Legacy software developers and sustainers have relatively expensive skillsets 12

Increase in Modern Language Productivity Modern language productivity increased even as legacy language productivity decreased 400 350 300 250 C++/Java Productivity 2003-2010 Modern language developers are more readily available and cost-effective Reinforces the shift away from legacy languages 200 2003 150 2010 100 50 0 C++ C++ C++ JAVA Elem 1 Elem 2 Elem 3 Elem 4 Across-the-board increase in productivity from 2003-2010 Modern language developers have higher productivity and are often more cost-effective 13

Planning and Pricing Sustainment Development Accept that sustainment is a different discipline than development Development metrics may not be suitable for planning sustainment activities Consider the impact to the bottom line Look before you leap, and record metrics along the way SLOCS - Productivity 400 350 300 250 200 150 100 50 0 Development with Intermittent Sustainment - Java 2006 - (D) 2007 - (D) 2007 - (S) 2010 - (D) Time - (Phase) Actual SLOCS Planned SLOCS Where did sustainment of 3 rd -party software occur? 14

Development Testing Historical test plans are a big aid to testing a newly sustained system Foundation for development test plans Now is a good time to modernize the approach Test results need to be evaluated differently in a sustainment model Additional information needs to be acquired and maintained May require a process change Source of software defects needs to be determined and recorded Track and respond to testing metrics differently than you would during new development Develop Testing process may need to focus more on regression testing, and be more manual than development testing 15

Deliver A variety of skill-sets is represented in this phase Deliver Quality Assurance engineers ensure that the development artifacts and content match expectations Verification and Validation testers ensure that the capabilities are ready for delivery Performance engineering specialists ensure that the software can perform Software security specialists ensure that Information Assurance (IA) requirements are still met CM baseline delivery should bridge traditional artifacts with new artifacts Some legacy customers may have never seen a model of the system Mitigate this risk early on in the process. Communicate! Documentation delivery is vital to ending the vicious cycle of poor documentation 16

Information Assurance Implications Many systems have been deployed for decades Not hardened against IA threats Grandfathered acceptance due to age and necessity Assurance, certification and accreditation documentation may be incomplete or incorrect STEPs, C&A plans, technical baselines, drawings Be aware that there may be some serious IA implications with sustainment, and plan accordingly Customer may expect compliance, even though their RFP just references IA and DIACAP documents A lot of the newer IA guidance may have to be translated to apply to legacy systems and networks Modernization may be the only solution to fixing these issues Hardware and software are enablers Deliver 17

Significant Gotchas in Sustainment Under-estimation of effort Certain systems readily lend themselves to this sort of mistake Vigilance, rigor, and organization are keys to avoiding it Remember to account for additional skillsets when legacy languages are concerned Addition of updated or additional requirements Additional expensive and time-consuming requirements are sometimes levied on sustainers Many legacy systems have been grand-fathered over time Availability of hardware, software and licenses ebay is running out of old motherboards! Software licenses for legacy products can be very expensive! Sustainment provides the best opportunity to modernize. Take advantage of technological enablers Virtualization, modern emulators, porting capabilities Deliver 18

Questions? Questions? Artifact Delivery Analyze Deliver Software Sustainment Cycle Organize Develop Model 19