Variable Message Format Test Tool (VTT) Modernization October 2007



Similar documents
Chapter 1. Dr. Chris Irwin Davis Phone: (972) Office: ECSS CS-4337 Organization of Programming Languages

Visionet IT Modernization Empowering Change

Modernized and Maintainable Code. Frank Weil, Ph.D. UniqueSoft, LLC

What is a life cycle model?

Using WebLOAD to Monitor Your Production Environment

1/20/2016 INTRODUCTION

Appendix M INFORMATION TECHNOLOGY (IT) YOUTH APPRENTICESHIP

AQA GCSE in Computer Science Computer Science Microsoft IT Academy Mapping

Managing and Maintaining Windows Server 2008 Servers

AGILE SOFTWARE TESTING

U.S. Navy Automated Software Testing

Exhibit F. VA CAI - Staff Aug Job Titles and Descriptions Effective 2015

Programming Language Inter-conversion

The Project Management Plan will be used to guide, communicate and coordinate project efforts.

Web. Studio. Visual Studio. iseries. Studio. The universal development platform applied to corporate strategy. Adelia.

Chapter 13: Program Development and Programming Languages

Language Evaluation Criteria. Evaluation Criteria: Readability. Evaluation Criteria: Writability. ICOM 4036 Programming Languages

JOB DESCRIPTION APPLICATION LEAD

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

USE OF PYTHON AS A SATELLITE OPERATIONS AND TESTING AUTOMATION LANGUAGE

Paper Robert Bonham, Gregory A. Smith, SAS Institute Inc., Cary NC

Introduction to Software Paradigms & Procedural Programming Paradigm

Online Transaction Processing in SQL Server 2008

Migrating to vcloud Automation Center 6.1

Standard Glossary of Terms Used in Software Testing. Version 3.01

Building Applications Using Micro Focus COBOL

Chapter 12 Programming Concepts and Languages

Your Software Quality is Our Business. INDEPENDENT VERIFICATION AND VALIDATION (IV&V) WHITE PAPER Prepared by Adnet, Inc.

Federated, Generic Configuration Management for Engineering Data

Base One's Rich Client Architecture

Improving database development. Recommendations for solving development problems using Red Gate tools

Dynamic Web Programming BUILDING WEB APPLICATIONS USING ASP.NET, AJAX AND JAVASCRIPT

Migrating Legacy Software Systems to CORBA based Distributed Environments through an Automatic Wrapper Generation Technique

Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives

Please Note: Temporary Graduate 485 skills assessments applicants should only apply for ANZSCO codes listed in the Skilled Occupation List above.

For more information about UC4 products please visit Automation Within, Around, and Beyond Oracle E-Business Suite

A Review of an MVC Framework based Software Development

A Mind Map Based Framework for Automated Software Log File Analysis

Product Review: James F. Koopmann Pine Horse, Inc. Quest Software s Foglight Performance Analysis for Oracle

WHITEPAPER. Improving database development

Introduction to Automated Testing

R3: Windows Server 2008 Administration. Course Overview. Course Outline. Course Length: 4 Day

MAGENTO HOSTING Progressive Server Performance Improvements

Integrating TAU With Eclipse: A Performance Analysis System in an Integrated Development Environment

Microsoft SQL Server for Oracle DBAs Course 40045; 4 Days, Instructor-led

Chapter 13: Program Development and Programming Languages

System Structures. Services Interface Structure

Resource Utilization of Middleware Components in Embedded Systems

MicroStrategy Course Catalog

OKLAHOMA SUBJECT AREA TESTS (OSAT )

An Automated Testing Tool Using UI Structure

Migrating Microsoft s ASP.NET and IIS.NET Community Websites to Microsoft Azure

Analytic Modeling in Python


ASP &.NET. Microsoft's Solution for Dynamic Web Development. Mohammad Ali Choudhry Milad Armeen Husain Zeerapurwala Campbell Ma Seul Kee Yoon

Surveying and evaluating tools for managing processes for software intensive systems

Firewall Builder Architecture Overview

Complexities of Simulating a Hybrid Agent-Landscape Model Using Multi-Formalism

Chapter 13 Computer Programs and Programming Languages. Discovering Computers Your Interactive Guide to the Digital World

HP OO 10.X - SiteScope Monitoring Templates

Monitoring Infrastructure (MIS) Software Architecture Document. Version 1.1

Software Engineering. So(ware Evolu1on

Java Programming (10155)

Instructor Özgür ZEYDAN BEU Dept. of Enve. Eng. CIV 112 Computer Programming Lecture Notes (1)

Chapter 6: Programming Languages

Office Business Applications (OBA) for Healthcare Organizations. Make better decisions using the tools you already know

Skynax. Mobility Management System. System Manual

Table of Contents. CHAPTER 1 Web-Based Systems 1. CHAPTER 2 Web Engineering 12. CHAPTER 3 A Web Engineering Process 24

Using TechExcel s DevSuite to Achieve FDA Software Validation Compliance For Medical Software Device Development

Improvement of Software Quality and Productivity Using Development Tools

Planning a Successful Visual Basic 6.0 to.net Migration: 8 Proven Tips

zen Platform technical white paper

8. Master Test Plan (MTP)

Toad for Oracle 8.6 SQL Tuning

Programming and Software Development CTAG Alignments

Microsoft SQL Server on Stratus ftserver Systems

Using In-Memory Computing to Simplify Big Data Analytics

Selection Criteria for ZigBee Development Kits

Applications to Computational Financial and GPU Computing. May 16th. Dr. Daniel Egloff

What Is the Java TM 2 Platform, Enterprise Edition?

Chapter 1. Introduction to ios Development. Objectives: Touch on the history of ios and the devices that support this operating system.

Rotorcraft Health Management System (RHMS)

DITA Adoption Process: Roles, Responsibilities, and Skills

SCADA/HMI MOVICON TRAINING COURSE PROGRAM

White Paper: 5GL RAD Development

Agile Business Process Automation

Using Story Points to Estimate Software Development Projects in the Commercial Phase

California Department of Technology, Office of Technology Services WINDOWS SERVER GUIDELINE

Pattern Insight Clone Detection

Input Output. 9.1 Why an IO Module is Needed? Chapter 9

Cross-platform IL code manipulation library for runtime instrumentation of.net applications

Chapter 9 Software Evolution

Transcription:

Variable Message Format Test Tool (VTT) Modernization October 2007 CECOM Life Cycle Management Command Software Engineering Center (SEC) Information Technology Engineering Directorate (ITED)

Table of Contents Variable Message Format Test Tool (VTT) Modernization...1 October 2007...1 CECOM Life Cycle Management Command...1 Software Engineering Center (SEC)...1 1.Abstract...1 2.Introduction...1 3.Preparation for Conversion...2 4.The Conversion Process Using the JANUS Studio TM...2 4.1.Set-Up...3 4.2.Legacy Documentation...3 4.3.Transformation...3 4.4.System Integration...3 4.5.System Testing...3 4.6.Automatic Re-factoring...4 4.7.Semi-Automatic Re-factoring...4 4.8.Engineering Support...5 4.9.Final Documentation...5 5.Lessons Learned...5 5.1.Performance Description...5 5.2.Budgeting...8 5.3.Scheduling...8 5.4.Technical...8 6.Summary...9 i

Variable Message Format Test Tool (VTT) Modernization By Giang Ngo U.S. Army Communications-Electronics Life Cycle Management Command (C-E LCMC) Software Engineering Center (SEC) Ft. Monmouth, NJ 07703, USA Phone: (732) 427-0100 Fax: (732) 532-3398 giang.ngo@us.army.mil 1. Abstract The Software Engineering Center (SEC) owns and maintains a large volume of missioncritical, legacy software systems that are difficult to support and susceptible to security risks. A manual effort to redesign, develop, and deploy legacy software systems, potentially overwhelms SEC s resource planning and budgeting. The following issues affect these legacy systems supportability and maintainability: Lack of legacy language software management skills Lack of legacy language programming expertise Diminishing support and availability of legacy software developmental tools Introduction of new, emerging technologies (i.e. Windows Forms 1 ) Increased maintenance costs Compliance with current army capabilities maturity model integration (CMMI) standards This paper describes an automated technique that converted the Variable Message Format (VMF) Test Tool (VTT) from Ada to C++. The metrics established by this project enable SEC and other organizations to better plan language conversion processes and to accurately estimate conversion project schedule and budget details. 1 Windows Forms is a general user interface (GUI) that replaces the old Microsoft Foundation Class (MFC) 2. Introduction The SEC initially planned to have its own staff manually convert the VTT code from Ada to C++. Given the limited manpower and budget, a plan was laid out that allowed portions of the VTT software to be recoded over a span of two years. The plan s steps were as follows: Identify functional modules of the VTT (e.g., parser, validator, file input/output, etc.). Restructure/Recode the existing Ada logic modules to make the functional modules Windows Dynamic Load Libraries (DLLs). Recode a functional module and make it a C++ DLL. Remove the Ada DLL and replace it with the C++ DLL. SEC software engineers started the conversion process and identified the VTT Parser as a candidate module for conversion. During this time, SEC management discovered The Software Revolution, Inc. (TSRI), a company that specializes in converting code from one language to another. Since 1995, TSRI has used the JANUS Studio TM to automatically convert legacy code to more modern languages with minimal human intervention. It should be noted that while the JANUS Studio TM does produce code with minimal intervention, achieving system response time and code readability project goals still, required substantial human intervention. TSRI had already successfully completed numerous other DoD code conversion projects. The processes that the JANUS Studio TM used for 1

the Ada to C++ conversion are applicable, but not restricted to the following legacy languages: COBOL, Assembler, CMS-2, FORTRAN, C, and VAX Basic. TSRI achieves this language portability by converting each source language to a proprietary pseudo-language representation. Finally, TSRI converts this pseudo-code to the target language. The following is TSRI s description of their transformational process: The TSRI transformational process begins with the automatic identification of candidate classes and objects. These candidates are mapped into an Intermediate Object Model *IOM). The IOM model is a relatively complete transformation of the input source code into an IOM model that is consistent wit the structure of object-oriented C++. This transformation into the IOM form locates redundant, duplicate, and similar data processes, and abstracts those detected items into classes and methods. The classes, relationships, attributes, and operations of the derived IOM model conform to the Universal Modeling Language (UML) standards The overall process for transforming from a procedural to an object-oriented application starts with input of legacy application programs, and produces as output a completely integrated and modernized system. The output system consists of object classes and their instances. These object class instances are complete with regard to data typing, methods and IOM processes (executable mission-oriented C++ functions, which refer to Class member element, and member functions or methods). These constructs possess a derived architecture and control structure methods associated with an object-oriented paradigm. The IOM application contains calls to derived methods associated with desired classes. The design documentation extracted from the IOM model is a hybrid between conventional object-oriented modeling languages and eventdriven programming models. The mapping from procedural code into object-oriented code is functionally faithful to the original procedural system. However, this IOM model follows the semantic and syntactic rules of the objectoriented languages, C++ and Java. After a careful assessment of risk, schedule issues, and budget issues, SEC abandoned their manual conversion efforts and contracted TSRI to perform the entire conversion effort. The TSRI contract was firm fixed price, except for the semi-automatic re-factoring task. Semi-automatic re-factoring is defined by TSRI as, the identification of situations within the code where customer-provided Domain Experts could opt to make engineering changes to the system. Since the time required to complete semi-automatic re-factoring was difficult to estimate, SEC contracted this task with TSRI using the firm fixed rate contract mechanism. The difficulty in estimating the level of effort to be applied to this project occurred because at the commencement of the project it was unknown what re-factoring operations would be specified by the SEC. The SEC conversion team consisted of a SEC project lead, a SEC subject matter expert (SME), and a SEC test engineer. Prior to the conversion process onset, the SME provided technical support to TSRI staff in their planning phases. The SME provided support to TSRI in the set-up phase, explaining several obscure areas of the source code. Prior to the integration phase, the SME analyzed the converted code and identified areas that could be re-factored. During the integration phase, the SME assisted TSRI by discovering misaligned pointers and by assisting TSRI to restore database connectivity. In the system integration phase, the SME concentrated his system testing on high-risk areas. The SME prioritized the semi-automatic refactoring effort so limited funds would be well spent. Budget constraints forced the SME to participate in troubleshooting and problem resolution during the semi-automatic re-factoring phase. Future projects should note that such participation helps ensure success as the system SME is familiar with all aspects of the code and can swiftly detect errors. On the TSRI side, the significant players were as follows: the JANUS Studio TM TSRI staff knowledgeable in the source language 2

TSRI target language expert. This document describes the successes and challenges of this conversion process methodology. The experiences encountered in this project may assist other government project managers with similar conversion projects to better estimate their cost and schedule. 3. Preparation for Conversion Ada-based VTT code was prepared for the conversion effort by the addition of a trace log. The log recorded data exchange among modules and between modules and the database. The VTT database contains tables describing various VMF standard baselines. A site visit was conducted by the SEC SME and the SEC project lead. The SME conducted a code walkthrough with TSRI personnel in attendance. During the code walkthrough, the SME clarified TSRI s understanding of the VTT source code logic and identified, to TSRI, potential conversion problem areas. 4. The Conversion Process Using the JANUS Studio TM The conversion process using the JANUS Studio TM entails the following sequential nine steps: Set-up Legacy documentation TSRI identified only four steps as essential. These steps are set-up, transforming, system integration and system testing. Subsequent challenges in system response made it clear that any conversion effort must execute all nine steps to assure comparable system response and maintainability. 4.1. Set-Up The JANUS Studio TM inputs legacy code with embedded comments and parses the legacy source code. No hand-editing shall be required in this step. TSRI successfully modified their parser and added rules to the JANUS Studio TM so that it properly mapped Ada source code to its intermediate object model (IOM). 4.2. Legacy Documentation The JANUS Studio TM produces a detailed presentation of the structure and flow of the legacy code. TSRI used JANUS Studio TM to successfully generate flow control diagrams, structure charts, data element tables, and hyper-linked source code in an HTML format that represented the structure and flow of the VTT software system. Transformation System integration System testing Automatic re-factoring Semi-automatic re-factoring Engineering support Final documentation 4.3. Transformation The JANUS Studio TM translates, compiles and links legacy code into the target language. JANUS Studio TM successfully transformed VTT source code into compilable 3

and linkable C++ code with all external calls stubbed out. JANUS Studio TM also automatically generated HTML-based documentation reflecting the legacy system s design. The documentation generated by JANUS Studio TM shows calling hierarchies; each variable s use and type; and each module s dependencies. 4.4. System Integration Converted code modules successfully reintegrate into a test-ready application. The working application contains an equivalent user interface, performs equivalent functions, and utilizes equivalent external hooks to the original legacy software package. VTT source code was successfully integrated into a test-ready application package. 4.5. System Testing TSRI tests C++ VTT source code with SEC test scripts and with the Joint Interoperability Test Command (JITC) test plan. TSRI corrects errors revealed during testing. TSRI corrects any additional errors discovered by SEC. C++ VTT source code is free of errors and fully operational. 4.6. Automatic Re-factoring System testing proves that C++ VTT source code is fully operational and free of dead and redundant code. TSRI utilized the JANUS Studio TM to analyze the converted code and then identified and eliminated the dead/redundant code. More than 15,000 lines (fifteen percent) of dead and redundant code were successfully removed from the source code. This improved overall system response time by a corresponding fifteen percent. 4.7. Semi-Automatic Refactoring Semi-automatic re-factoring is the most crucial phase of the conversion process. During semi-automatic re-factoring, the SME identifies each area in the code that can be improved with respect to performance, maintainability, readability, and extensibility. The SME s input was critical in this phase. In this phase of the contract, reimbursement was firm fixed rate rather than firm fixed price. The project manager needed to provide adequate advanced budget allocation and careful schedule-monitoring. It should be noted that the schedule was most impacted by re-factoring itself, not by regression testing required in each phase of the re-factoring. Due to funding constraints, SEC conducted the second round of regression testing and most of the subsequent troubleshooting and error correction. Each semi-automatic re-factoring task must either remove superfluous and redundant code layers (i.e. function calls or generic classes) to ease maintenance; or must improve the code s performance by utilizing the more efficient, built-in standard language libraries. Regression testing follows each semiautomatic re-factoring task listed below. VTT software equipped with C++ Common Language Infrastructure (CLI) 4

TSRI compiles and executes VTT software from Visual Studio 2005 instead of Visual Studio 2003. The JANUS Studio TM produces a detailed presentation of the structure and flow of the converted C++ code. The C++ STL strings replaced TSRI-type 2 strings. TSRI in-out templates were removed. The Microsoft Application Program Interface (API) replaced Boost Threads (third party library that provides a set of features that can be utilize across platforms) and other Boost dependencies. The Microsoft STL (third party library that implement C++ standard library) replaced the C++ STL port. The Ada translated, now superfluous, Win32 wrappers were removed. The C++ comparable built-in data structure and TSRI customize pointers replaced Ada linked list structure. A software switch permits VTT to run in the C++ Common Language Interface. With the C++ Language interface, VTT makes use of the.net environment that enables just in time compilation, thread management, exception handling, and garbage collection. 4.8. Engineering Support TSRI provides prompt support as required. Funding exists, obligated prior to the conversion process. This support shall be delivered on demand. 4.9. Final Documentation TSRI used JANUS Studio TM to successfully generate flow control diagrams, structure charts, data element tables, and hyper-linked source code in an HTML format that represented the structure and flow of the VTT software system. 5. Lessons Learned System response time issues required budget reprogramming and project schedule realignments. Recommendations for improved software project planning in future programs follow: Set-up Legacy Documentation Transformation System Integration System Testing Automatic Re-factoring Semi-automatic Re-factoring Engineering Support Final Documentation 5.1. Performance Description The intent of the code conversion was operational equivalence to the original product; however the original wording of the task description was legally ambiguous and unclear to the contractor. The phrase, operational equivalency, failed to clearly delineate all governmental operational requirements. Issues encountered: 2 C++ representation of Ada string structure 5

Systems Response Time (minutes) Prior to semi-automatic re-factoring, the converted software s response time was degraded by thirty-nine percent in comparison to the legacy software s response time. Line-forline implementation of Ada s data structures as non-native processes in C+++ produced inefficiencies in the following areas: String Implementations Input/Output processes Intermediary TSRI templates Intermediary TSRI function wrappers As expected, the performance of the converted code gradually began to improve as refactoring progressed. Many modifications were made to the converted VTT s string manipulations. Due to budgetary constraints, optimization of the I/O processes was never addressed. VTT Response Time Before, During and After Code Conversion Process 40 35 30 25 20 22.9 19.3 15 10 5 0 14.5 2.5 2.5 2.0 13.2 5.0 4.0 3.4 3.3 2.4 2.5 4.0 3.3 2.2 Encode Convert Import Validate Figure 1. 3 VTT Response Time Before, During, and After Code Conversion Process. 3 Validated, imported and converted results were based upon one-thousand seven-hundred messages JITC test messages. Encoding builds a virtual display that is used to test the VTT GUI and to log test results., Encoded measurements were based upon ninety messages 6

Recommendation: The Statement of Work (SOW) should specify the following details for each thread: thread inputs and outputs, thread response time, resource usage (e.g. memory, CPU, operating system resources), general user interface fonts/colors, etc. These details in the SOW reduce the government s risks 5.2. Budgeting Initial government cost estimates were unable to foresee the extent of semi-automatic re-factoring required to meet system performance speed objectives. In hindsight, SEC engineers have concluded that re-factoring time is a totally unpredictable process. Since this was a firm fixed rate type contract in the most critical task, and since the initial SOW did not specify system response times clearly, the government had to obligate additional funding to insure delivery of a usable product. Issues encountered In this conversion process, due to the budget challenges mentioned in Section 4.2, troubleshooting and error correction were performed by SEC personnel, not by the TSRI. Recommendation Perform comprehensive pre-conversion assessment/research. It can reveal potential tasks for semi-automatic re-factoring. Ensure that 20% to 25% of total project cost is allocated for the semi-automatic refactoring phase. Plan on having a government SME involved in the re-factoring process, both in deciding on the re-factorings to be executed and in any follow-on troubleshooting. 5.3. Scheduling Issues encountered Risk mitigating action SEC requested that TSRI add an additional two weeks to the test schedule before beginning re-factoring. The extra test time reduced the risk of existing errors propagating into the automatic re-factoring phase. SEC closely monitored the re-factoring tasks to ensure the schedule was not delayed by any single task. SEC prioritized re-factoring tasks by comparing their technical risk with the benefit they bring. 5.4. Technical Issues encountered: SEC found a serious error in VTT during linked-list re-factoring. The error was identified and corrected due to close collaboration between the VTT SME and TSRI s personnel. Risk mitigating action: The analysis was performed by personnel with expertise in both languages. 6. Summary TSRI s automated code conversion system economically produced a faster, more maintainable, and more reliable application. Availability of a capable SEC SME was critical to TSRI s success in each and every phase. Despite the success of this project and the quality of metrics generated, the scalability of the semi-automatic re-factoring effort is unclear. Semi-automatic re-factoring is an inherently unpredictable process. Larger sized recoding efforts may scale in a linear manner or in an exponential manner. Reduced Risk: No issues encountered.

Code conversion is TSRI s primary business. TSRI uses the JANUS Studio TM, a mature automated conversion tool developed in 1995. TSRI s process does not change the design or layout of the code. JANUS Studio TM conducts straight translation from Ada to C++. Therefore, SEC incurred no new developmental risks. Shortened Development Time: TSRI s JANUS Studio TM conversion required eight months as opposed to the originally proposed manual conversion by SEC that required two years. Reduced Cost SEC saved fourteen percent or $88,000 in conversion costs. See Table 1. Since this savings compares actual costs to projected costs, true savings may be greater. Improved Maintainability: Automatic re-factoring removed the obvious dead and redundant code. Semi-Automatic re-factoring removed redundant generic function call layers and replaced slow string and I/O manipulations with optimized C++ standard library calls. No Added Manpower: The conversion required no additional manpower. Documentation: TSRI s conversion process generated complete documentation of both the legacy and the converted code. The documentation included calling hierarchy and list of variable type, location, and uses. Pilot program: The time and money savings of this code conversion effort suggest that SEC model code conversion projects of comparable size and complexity upon this project s successes. In House Development Leverage on TSRI Capability Schedule 24 Months 8 Months Level of Effort 2.5 0.4 Staff Year for SME Support Cost $ 625 K Total: $537 K includes On Contract SME Support L-3 Overhead Government s Overhead Travel and Equipments Table 1. Comparison Chart for In-house Development Versus Using TSRI 8