Automated Collection of Software Sizing Data

Similar documents
Headquarters U.S. Air Force

Producing Production Quality Software Lecture 14: Group Programming Practices Data Prof. Arthur P. Goldberg Fall, 2005

Software Estimation Experiences at Xerox

COCOMO II Demo and ARS Example

Software Engineering

A Software Metric Set for Program Maintenance Management

Communication Model for Cooperative Robotics Simulator. Project Plan. Version 1.0

Value-Based Software Engineering

Software Technology Conference

Improving Parametric Software Cost Estimation Through Better Data Collection

ASHTON-TATE AND DIGITAL EQUIPMENT CORPORATION ANNOUNCE dbase IV FOR VAX VMS SYSTEMS

Managing Projects through a Corporate Repository

Figure 1 Function Point items and project category weightings

Determining How Much Software Assurance Is Enough?

Software Cost Metrics Manual

Course Information. Course Topics

Chapter-3. Software Metrics and Reliability

Software Quality Management

Software Process and Project Metrics

Sri Vidya College of Engineering & Technology-Virudhunagar

The Rosetta Stone: Making COCOMO 81 Files Work With COCOMO II

COSYSMO: A Systems Engineering Cost Model

Fighting the WAR on BUGs A Success Story. Duvan Luong, Ph.D. Operational Excellence Networks

IBM Tivoli Endpoint Manager for Lifecycle Management

Manual Techniques, Rules of Thumb

Agile Software Development Cost Modeling for the US DoD

A Lightweight Incremental Effort Estimation Model For Use Case Driven Projects

Introduction to. Software. Business. Software

Personal Software Process SM for Engineers: Part I

COSYSMO: A Systems Engineering Cost Model

IBM Tivoli Workload Scheduler

A Comparative study of Traditional and Component based software engineering approach using models

Cost Model Comparison Report

DRAFT. Effort = A * Size B * EM. (1) Effort in person-months A - calibrated constant B - scale factor EM - effort multiplier from cost factors

We manage the technology that lets you manage your business.

IBM WebSphere Service Registry and Repository, Version 6.0

Defining and Understanding Software Measurement Data 1

IBM Tivoli Monitoring

How Raytheon Meets the Challenge of Developing Systems with Evolving Requirements

Exploration into Costs and Mitigation Strategies for Invalid Defects in Systems Development

A Software Metrics Primer 1

Focus Area Level Report Including Knowledge and Skills, and Performance Indicators

Focus Area Level Report Including Knowledge and Skills, and Performance Indicators

Applying the Personal Software Process (PSP) sm with Ada

feature Validating and Improving Test-Case Effectiveness

Significance of Quality Metrics during Software Development Process

Darshan Institute of Engineering & Technology for Diploma Studies Rajkot Unit-1

ESTIMATION OF ASPECT ORIENTED PROGRAMMING USING DIFFERENT METRICES

Location: S.R.M.E.C Tech Park. Faculty Details. Section A B C D E. Day. Hour Timing Hour Timing Hour Timing Hour Timing Hour Timing

Solutions Manual. Object-Oriented Software Engineering. An Agile Unified Methodology. David Kung

Software metrics. Jaak Tepandi

White Paper. Code Maintenance Best Practices. 4 Essential Skills for Lean Times

Software Cost Estimation Models and Techniques: A Survey

Software Metrics: An Essential Tool for determining software success

Project Plan: MSE Portfolio Project Construction Phase

SOFTWARE QUALITY IMPROVEMENT THROUGH STATISTICAL ANALYSIS ON PROCESS METRICS

Quality Assurance Analyst II

Software Engineering

Concepts of Project Management. All projects have followings.

Software Project Risk Assessment and Effort Contingency Model Based on COCOMO Cost Factors

Altiris IT Management Suite 7.1 from Symantec

Lessons to be learnt from students software estimation exercises

Software Quality Management

Measuring Test Execution Complexity

Software Data Analytics. Nevena Lazarević

Inspections : A Flexible Method to Increase Software Quality

CA Virtual Performance Management

User Manual Automated Event Scheduling Assistant

MODERNIZATION PLATFORM AS A SERVICE (MODPAAS)

Management of Software Engineering. Ch. 8 1

Cost Estimation for Secure Software & Systems Workshop Introduction

CSSE 372 Software Project Management: SW Estimation Case Study and COCOMO-II

Chapter 26. Quality Management

Given the competitive importance of

Automating System i Disk Management Better System Performance & Improved Resource Utilization

December 30, Christopher A. Hart National Transportation Safety Board Washington, DC 20954

SOFTWARE QUALITY ASSURANCE (SQA) Chapter 1

A Study on Factors Affecting Maintainability and Maintainability Models

Defense Technical Information Center Compilation Part Notice

PSM. Practical Software and Systems Measurement A foundation for objective project management. COSYSMO Requirements Volatility Workshop

Quality Assessment Method for Software Development Process Document based on Software Document Characteristics Metric

IBM Tivoli Configuration Manager

Object-Oriented Estimation Techniques

Software Engineering. Lecture 2: The Personal Software Process

T Software Testing and Quality Assurance Test Planning

On Some Quality Issues of Component Selection in CBSD

Application of DO-254 Level A (Appendix B) Design Assurance Objectives of. Elemental Analysis. Mixed Signal (Analog/Digital) Discrete Circuitry

IMS Health Information Services Published Specifications (April 2015)

Title: Introducing Enterprise Discovery 2.1 Session #: 537 Speakers: Matt Schvimmer, Matthew Darwin Company: HP

DECISIVE POINT FOR REENGINEERING OF OBJECT-ORIENTED SOFTWARE SYSTEMS

Course 3. Software Quality Assurance & Software Quality Models. S. Motogna - Software Quality

Workshop Summary. Process Support of Software Product Lines

A Comparative Study on Software Development Life Cycle Models

Software Modeling & Analysis. - Fundamentals of Software Engineering - Software Process Model. Lecturer: JUNBEOM YOO

C S E USC. University of Southern California Center for Software Engineering

Project Planning. COSC345 Software Engineering 2016 Slides by Andrew Trotman given by O K

DATAPATH CASE STUDY EXECUTIVE SUMMARY THE RESULT THE SOLUTION THE CHALLENGE

Cooperative Software: ETI Data System Library Products Allow Incompatible Systems to Exchange Information

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

Management and MDD. Peter Dolog dolog [at] cs [dot] aau [dot] dk E2-201 Information Systems March 6, 2007

Transcription:

Automated Collection of Software Sizing Data Briefing at the University of Southern California - Center for Software Engineering USC - CSE Annual Research Review March, 1997

THE MANY USES OF SIZING DATA Software Cost Models cost estimation project post-mortem Metrics Programs historical project data productivity defect rate Development Projects amount of reuse software estimated / actuals overall project size Software Quality Assurance amount of commentation in source code product use of language constructs defect rate calculations Re-Engineering Activities language translation platform translation Compiler Efficiency Analysis Who? What? How? When? Maturity of SW?

WHAT TO COUNT? LANGUAGE-LEVEL - Deliverable Source Instructions - Machine Instructions - Semicolons - Logical Source Statements - Executable Lines - Data Declarations - Comments - Compiler Directives LOC Definitions & Language-Level Counting Rules PROJECT-LEVEL - Include Files - Generics - Reuse Code - Unused Code, Dead Code - Deleted Code - Support Software - Patch Files, Data Files - Test Software, Command Files - Multiple Language Implementations - Off-The-Shelf Software - Non-Deliverable Software - Modified Software Project-Level Counting Rules

QUEST FOR AUTOMATION Automation of collection of software sizing data : decreases subjectivity (guestimates) improves accuracy and consistency of information reduction in time and effort required to gather data Solution : Let s go make / buy a tool How will it be used? What will it count? What resources are available for its development? Who s tool? What does it do? How can I use it? Suitability for multiple uses?

PROBLEMS WITH AUTOMATED LOC COUNTING TOOLS Developed to satisfy a short-term project specific need no documentation no visibility into LOC definition used use of rule-of-thumb conversion factor(s) incorrect counting» misclassification of language constructs produced ambiguous output developed using substandard practices un-validated, un-maintainable not portable» duplication of effort» proliferation of poor quality use at your own risk LOC counting tools Variances in validity and interpretation of sizing data across enterprise

HOW TO BUILD A BETTER LOC COUNTING TOOL LOC definition utilized must : span multiple programming languages» 3GL HOL (mixed language implementations)» assembly» microcode» test languages be easily interpreted provide for project utility be compatible with software cost model use be amenable to automation Deliverable Source Instruction (DSI) concept utilized easy to understand & automate may be applied consistently across programming languages does not require subclassification of language constructs incorporated into many software cost models

PROJECT-LEVEL COUNTING RULES What to count is often dependent on end-use of sizing data count all source code count all new source code count reuse and off-the-shelf software count deleted code count support software The process of collecting sizing information should not be coupled to project-level concerns concentrate on automation of language-level collection processes project-level concerns addressed as a post process

LOC COUNTING TOOLSET Set of automated LOC counting tools (CodeCount ) Programming languages analyzed : Ada (Mil-Std-1815A and Ada95) Jovial J73 (Mil-Std-1589B) Mil-Std-1750A Assembler two proprietary microcode languages FORTRAN ANSI-C and C++ Pascal others Share common operational requirements set up of input files operation / execution information content & format of output produced Developed and successfully used for over a decade Satisfies variety of end-user requirements (p.#3) Basis of metrics data collection process

CodeCount TM Installation Procedure INITIALIZATION Load ada_lines.c & ada_lines_environment.dat Files Compile & Link ada_lines.c Edit & Set User-Defined Parameters ada_lines_environment.dat Files contain inclusive documentation EXECUTION Use Directory Command to Create Input File of Filenames ada_list.dat Execute ada_lines.exe Review Results ada_outfile.dat

CodeCount TM Context Diagram File of Filenames ada_list.dat File of User Definable Data ada_lines_environment.dat SLOC COUNTING TOOL Progress Indicator & Error Messages File to be Analyzed <filename>.ada File of Results ada_outfile.dat

BENEFITS OF LOC COUNTING TOOLS REALIZED Elimination of language-level counting discrepancies Elimination of need to use conversion factors Provides apples-to-apples LOC comparisons across multiple software development projects across multiple programming languages Portability issues achieved VAX (VMS & Ultrix) SGI (UNIX) SUN (Sun OS & Solaris) HP (HP-UX) PC (Windows NT) Significant reduction in data gathering effort Increased accuracy and consistency in sizing information

LESSONS LEARNED Develop/Acquire software sizing tools that consistently applies the same LOC definition across programming languages Proliferate the same data gathering toolset across the enterprise Differentiate language-level counting rules (automated in tool) from project-level counting rules (policy & procedures) decouple operation of LOC counting from project-level issues Subclassification of language constructs leads to : difficulty in automation decrease in understanding, confusion upon interpretation misclassification lower enterprise-wide utility Programming Languages will be revised automated LOC counting tools must be enhancable

LESSONS LEARNED Limit complexity of software sizing tools reduce parsing complexity via restricting analysis to source code that successfully compiles decouple parsing / counting algorithms from coding standards & style requirements decouple parsing / counting algorithms from tools that preprocess the source code input decouple operation of the tool from project-level issues» what code to count» when to count the code» what is the efficiency or quality of the code limit amount of LOC subclassifications to detect and report upon separately Software sizing tool should be : easy to use portable support multiple end-user requirements

SOURCES OF INFORMATION CONSULTED Robert E. Park, Software Engineering Institute Donald J. Reifer, Reifer Consultants Inc. Establishing Enterprise Software Productivity and Quality Programs, Capers Jones, Software Productivity Research, Inc. 1986-1987. Standard for Software Productivity Metrics, IEEE Computer Society, Aug. 1990. Software Engineering A Practitioner s Approach, Roger S. Pressman, McGraw- Hill, 1987. Software Engineering Economics, Barry W. Boehm, Prentice-Hall, 1981. Software Metrics : Establishing a Company-Wide Program, Robert G. Grady & Deborah L. Caswell, Prentice-Hall, 1987. The Pursuit of Accurate Source Lines of Code Sizing, George E. Kalb, Proceedings of NAECON 88, (May 1988), vol. II, pp. 698-700. Lines of Code Counting Tools, George E. Kalb, Proceedings of the Second REVIC User s Group Conference, (Jan. 1990), pp. 225-232. Counting Lines of Code, Confusions, Conclusions, and Recommendations, George E. Kalb, Proceedings of the Third REVIC User s Group Conference, (Feb. 1991), pp. R-1 to R-28.