Baseline Code Analysis Using McCabe IQ
|
|
|
- Agnes Casey
- 10 years ago
- Views:
Transcription
1 White Paper Table of Contents What is Baseline Code Analysis? Importance of Baseline Code Analysis...2 The Objectives of Baseline Code Analysis...4 Best Practices for Baseline Code Analysis...4 Challenges of Baseline Code Analysis...7 McCabe IQ Functionality for Baseline Code Analysis...8 The McCabe IQ Advantage...10 Appendix A: McCabe IQ Metrics By Category Who Should Read This Paper? Software managers who are: In need of accurate, profitable representations of the code they manage Establishing or restructuring their company s QA department and who want to equip it with state of the art software management technologies. Baseline Code Analysis Using McCabe IQ Software managers are always looking for better and innovative ways to make software development more efficient and effective throughout the product life cycle. Development and quality assurance (QA) managers often ask questions such as: How can I get the code into production faster? What code should I refactor? How should I best assign my limited resources to different projects? How do I know if code is getting better or worse as time goes on? Such questions are especially difficult to answer in today s business environment. Answering them with any degree of confidence presumes intimate knowledge of the code being managed, something that is becoming less and less feasible for managers without the help of additional tools. For example, software is growing to previously unimaginable levels of size and complexity, and it is more and more common for the code being managed to have been developed by someone else, such as a third party vendor or a different department within the company. In either case, the code resists comprehensibility: What are its components? How are they all related? Which are the critical ones for maintenance, enhancement, and testing initiatives? DeMarco s insight in 1982 has now become a well-known adage in software engineering: Managers cannot control or manage what they cannot measure. What managers need are measurements that makes the source code comprehensible in terms of structure (showing how all the different modules fit together) and quality (revealing the relative size, complexity, and testedness of the various modules). Baseline code analysis, the subject of this paper, is a method of establishing such measurements in order to help managers make more informed decisions about the product throughout its life cycle. Purpose of this Paper This document has been written to provide the answer to three basic questions: What is baseline code analysis and why is it important? What are the challenges of baseline code analysis? How can baseline code analysis with McCabe IQ be used to add value to Development and QA processes? Page 1 of 12
2 What is Baseline Code Analysis? Any kind of comprehensive analysis of source code can be considered baseline code analysis. In essence, baseline code analysis identifies and quantifies the elemental building blocks of a given program, for example, its various lines of code, modules, and logical paths. With this data, baseline code analysis can provide structural and metrical representations of the code. Structural Representations Baseline code analysis can provide a map of the program s components, from the highest-level view of all modules and their calling hierarchy to the lowestlevel view of an individual path (decision sequence) within a module. As programs grow in size and complexity, structural representations make them instantly comprehensible and therefore more manageable. Metrical Representations Baseline code analysis can provide software metrics - quantitative data on various measurable elements of source code. Metrics are either collected (by measuring such things as lines of code, the number of logical paths, and the number of children ) or calculated (derived from measurements using mathematical formulas). Meaningful Thresholds Numerous independent studies as well as standards published by the National Institute of Standards and Technology (NIST) have established threshold guidelines that turn source code metrics into reliable indicators of software quality Metrics are generally collected and calculated on a module-by-module basis, they are used to highlight areas of code that exhibit significantly low or high values vis-à-vis established threshold values. For example, independent studies indicate that the likelihood of introducing a defect into a module you are modifying increases exponentially if that module has more than 10 logical paths. Baseline code analysis can highlight the modules that have more than 10 logical paths, allowing managers to flag them as particularly risky modules to modify. Other characteristics that metrics can reveal on a module-bymodule basis are maintainability, reusability, redundancy, complexity, and testedness. Importance of Baseline Code Analysis The primary importance of baseline code analysis is that it helps managers to understand, in software engineering terms, the code they have to manage. Further, baseline code analysis provides objective representations of the structure and quality of the code being managed. This means that the code Page 2 of 12
3 itself is the final reference point for management decisions, taking guesswork, intuition, and other unreliable methodologies out of the picture. Baseline code analysis is also important for the following reasons. Increased Effectiveness of Development and QA Efforts The Rule It is well known that on average 20% of the code accounts for 80% of the resource usage, problems, and errors - i.e., the sum of expenditures - spent throughout the product cycle. That 20% is comprised precisely of the most complex segments of the code, and baseline code analysis is the best tool available for isolating it. With baseline code analysis, that critical 20% can be recognized from the beginning of the product cycle and taken into account in all decisions throughout the QA process. Baseline code analysis objectively identifies the most complex areas of the code - that 20% of the code that accounts for 80% of the problems. With this knowledge, managers can allocate appropriate resources. They can be assured that their most experienced developers are assigned to the most critical areas of the program; they can focus testing resources where modifications to a program are most likely to have introduced defects. The ability to pinpoint problematic code early in the production cycle is also an important feature of baseline code analysis. Studies have shown that the cost of finding and fixing a defect increases as software is promoted through its life cycle. By targeting problematic code from the beginning of its life cycle, baseline code analysis encourages early defect detection and prevention. In short, baseline code analysis allows software managers to allocate the most cost-effective resources to the most critical parts of the code at the most advantageous points in the product cycle. Increased Efficiency of Development and QA Effort Baseline code analysis provides managers with crucial information for streamlining development and QA efforts. For example, it allows QA managers to instantly identify untested areas of a program under test. With this knowledge, managers can streamline test plans, short-cutting the quest for meaningful tests and preventing such common problems as overtesting (spending excessive time on areas of the program that are at low risk for defects) and redundant testing (testing the same functions over and over again). More on Trend Analysis is Historical Trend Analysis For a more detailed discussion of McCabe I Q and trend analysis, read the McCabe paper titled, McCabe Recommended Approach to Code Reviews. As the program evolves from revision to revision, it changes in terms of size and quality. Baseline code analysis provides a historical record of each revision s metric values so that managers can be sure the trends are not moving in undesirable directions - for example, getting unnecessarily complex and difficult to test, or getting more and more unstructured and costly to maintain (the hallmark of spaghetti code ). Page 3 of 12
4 A Typical Scenario In today s market, software is often produced through third party arrangements, or purchased from other companies. Baseline code analysis provides valuable insight into the code that is being transferred. Maintenance departments that often take the ownership of the developed code can perform baseline code analyses to become familiar with the code characteristics of inherited programs in order to allocate appropriate resources for future enhancements and bug fixing. The Objectives of Baseline Code Analysis Given the structural representations and the range of metrics it provides, the fundamental objectives of baseline code analysis can be summarized as follows: To objectively identify the most complex and unstructured parts of the code. Baseline code analysis can be used to highlight the parts of the code that exceed given metrics thresholds. Managers get answers to such questions as: Where is the code going to be particularly difficult to maintain? Where are the segments of the code most at risk for introducing defects? How has a change that has been made impacted the quality of the module? To evaluate the scope of software modifications. Structural analysis can reveal all modules of a program that are related in the calling hierarchy to a module that is targeted for modifications. Managers get answers to such questions as: How widespread is a proposed change s potential influence? What parts of the code need regression testing (and which parts do not need regression testing!) as the result of a change? To assist managers in making informed decisions about allocating resources for testing. Baseline code analysis can identify a collection of testable areas of the program, and it can determine which areas have and have not been covered by a given set of tests. Managers get answers to such questions as: How much testing should be performed? How much testing is left to be done? On which parts of the code should testing be focused? To facilitate software refactoring/reengineering efforts. Metrics can reveal areas of the code that are good candidates for refactoring - that is, areas that, if refactored, would mean substantial savings in time and resources down the road. Managers get answers to such questions as: Which parts of the software are redundant or reusable? Which parts are costly to maintain, or overly complex ( spaghetti code)? Best Practices for Baseline Code Analysis This section outlines practices shared by companies that have profitably incorporated baseline code analysis into their development and QA processes. The most successful baseline code analysis enterprises tend to: Develop a measurement program Streamline and continuously improve Development and QA processes Automate! Page 4 of 12
5 Best Practice #1 Develop a Measurement Program There are two primary imperatives for establishing a measurement program: To identify metrics of interest for your development environment To establish a set of policies for the regular generation of reports. Identify Metrics of Interest It is crucial to identify a set of metrics that can be used compositely to represent the code in certain ways in order to address specific management goals. In developing a set of metrics of interest, focus on four major characteristics of the software: size, quality, risk, and readiness. McCabe IQ Metric s For a list of specific metrics returned by McCabe IQ in each category - size, quality, risk, and readiness - refer to Appendix A at the end of this document. Size. Use a set of metrics that represent the size of the program. Software size can be measured with a variety of metrics (for example, line and branch counts) and is a good initial indicator of code complexity. Quality. Good quality code is code that is well structured and therefore easy to understand, modularize, and maintain. Use a set of metrics that provide a measure of unstructured code segments. For example, an excessive number of class couplings can be an indicator of unstructuredness. Risk. Use a set of metrics that indicate the likelihood of finding or introducing defects in the various code segments. Advanced indicators of code complexity are essential here. Whenever code gets exceedingly complex - for example, deeper in the inheritance hierarchy, or less cohesive due to the dissimilarity between methods in a class - it can be considered at greater risk for defects. Readiness. Use a set of metrics that measure tested segments of the code. Metrics can be acquired, for example, that indicate tested lines, branches, and paths. Metrics that measure tested segments of the code can be used to determine the readiness of branches and paths - that is, the extent to which they can be considered stable and defect-free. Establish Policies for Continuous Reporting Once you have isolated a set of metrics that address your specific management needs, it is important to consider baseline code analysis place within the Development and QA process. At what intervals should reports be generated to monitor software metrics? Or, what events should trigger the generation of what reports? Ideally, baseline code analysis is not only used to provide a one-time insight into the code of interest but is also used regularly to provide a means for monitoring the code at intervals throughout the development cycle. Page 5 of 12
6 Another Best Practice: Take Control of the Software Development Process Once problematic code is identified by baseline code analysis, management is faced with a welcome challenge - cost-effective choices in the interests of a reliable and stable product. For example, should appropriate resources be allocated to accommodate it? Or should the code be targeted for refactoring? Choosing the former can often be a time saver up front, but it trades-off on maintainability down the road. On the other hand, depending on the development environment, choosing the latter may be both ideal and feasible. Best Practice #2 Streamline & Continuously Improve Development and QA Processes The information baseline code analysis provides can be used to make software development, maintenance, and testing efforts more efficient and effective. Some proven strategies for streamlining and improving these areas of production are discussed below.1 Improve Software Change Initiatives Make decisions about scheduling based on an assessment of the scope of proposed changes. Make decisions about resource allocations based on the complexity of modules targeted for change. Assign more experienced resources and more time to design, change, and review the complex code. Establish a change/version control process. As the program changes in development, perform code analyses at certain milestones, and compare the results with the baseline code analysis to evaluate the trend in code complexity and other aspects of the software. Improve Testing Establish a threshold for the completion of testing using the determination baseline code analysis makes of testable units of code. Use metrics that indicate tested paths and branches of code to streamline test plans and track the degree of 'readiness' of the code. Use risk and complexity analyses to establish guidelines for how much testing should be performed for different components of the software. Perform more rigorous path coverage testing for the parts of the program most at risk from defects. Streamline Software Redevelopment Efforts Use customized reports and code visualization to identify the outliers - code segments that register metrics values outside the normal range for the software. Outliers identify code that is hard-to-maintain and error-prone. 1 McCabe provides white papers specifically addressing the benefits of baseline code analysis for the three Development and QA processes discussed in this section (software change initiatives, testing/qa, and reengineering). For a more in-depth treatment of how baseline code analysis can help in these areas, refer to the appropriate white paper: McCabe Recommended Approach to Software Change Analysis, Improved Testing Using McCabe IQ Coverage Analysis, or McCabe Recommended Approach to Code Reviews. Page 6 of 12
7 Focus redevelopment efforts on the outliers, particularly when they are functionally critical. Simplify and restructure such code segments to make them less costly and more stable. Use detailed architectural analysis to pinpoint redundant code. Target redundant code to reduce the system s overall complexity and size, easing overall maintenance requirements and increasing the performance. Best Practice #3 Automate! Use automated tools to collect metrics and to generate reports. And use automated tools that are flexible and can be adapted to your analysis needs - that is, tools that do not force you to adapt your analysis environment to their functionality. Challenges of Baseline Code Analysis Baseline code analysis can be difficult to implement for many reasons. To begin with, management is faced with the need of selecting useful metrics and establishing meaningful thresholds. What, for example, is an objective and useful definition for code complexity? A meaningful answer to this question will reflect a great deal of research into which metrics can be used as indicators of what aspects of code quality. Once a dependable set of metrics and thresholds is acquired, how can the cavalcade of numeric data be presented such that it gives a comprehensive picture of the code under analysis? Visualizing the results of baseline code analyses is another high-order challenge, because a greater amount of information can cause more problems than it solves if it cannot be channeled into understandable and meaningful representations. In other ways companies are challenged with making the most out of the information baseline code analysis provides. Every stage of the product life cycle can benefit from greater knowledge of the code in production, from planning to development to testing. These efforts are often undertaken by different managers, all devising different applications for the same fundamental set of metrics. Integrating baseline code analysis across various Development and QA groups cohesively and uniformly is important because it insures the greatest communicability between stages in the development process. Achieving cohesiveness and uniformity, however, can be difficult. Page 7 of 12
8 McCabe IQ Functionality for Baseline Code Analysis McCabe IQ is a tool that can be used to perform baseline code analysis. Its key functionality for the purposes of baseline code analysis includes: Metrics Reports Visualization Automation Integration McCabe Metrics Custom Metrics and Reports If a user requires metrics not provided by McCabe IQ, he or she can import them from other systems. McCabe IQ also allows users to define custom formulae in order to acquire specialneeds derived metric values. Custom measurements and derived metrics can be included in the baseline code analysis to highlight aspects of the code not otherwise counted by McCabe IQ. Similarly, custom reports can be designed to show specific ranges of metrics values, to factor in custom metrics, to sort data according to user specifications, and so on. McCabe IQ can record up to 105 metrics for a given program. These metrics are gathered at the module (function/method/perform Range) level, Program Level (one or more source files), or System Level (one or more programs). Some standard metrics that McCabe IQ returns are described in Appendix A of this paper.2 All metrics returned by McCabe IQ come with default threshold values, that is, the high and low values of what constitutes a normal or ideal range for the given measurement. System-supplied thresholds represent industry standards, but they can be adjusted, as needed. McCabe Reports McCabe IQ provides about 35 predefined reports from which users can choose. McCabe IQ reports range from simple spreadsheets to graphical representations of data that can be granulated for local (modular) and system analyses. To enhance the comprehensibility of the results of the baseline code analysis, all reports have hypertext capabilities that allow users to move easily between related data sets and system components. 2 Appendix A does not describe all of McCabe IQ s metrics. For more information, refer to the McCabe paper entitled, Metrics and Thresholds in McCabe IQ. Page 8 of 12
9 McCabe Visualization McCabe IQ provides extensive visualization capabilities at all levels of analysis. The basic McCabe IQ visualization tools are battlemaps and flowgraphs. Battlemaps Battlemaps display a structure chart that graphically represents the functional hierarchy of the program. The exclude tool of the Battlemap gives you the ability to focus on specific segments of the program. Battlemap uses color- coding to overlay code complexity on the structure chart, allowing managers to immediately visualize the complex and critical parts of the code. Flowgraphs Flowgraphs graphically display the control structure of the code and Battlemap. The rectangles represent modules; each module is color-coded to indicate whether its value for the selected metric is above (red), below (yellow), or within (green) the threshold. path of execution inside each module (method, function, or subroutine.) Flowgraphs facilitate code comprehension and are used quite often for code reviews. They highlight unstructured behavior of the code, and the user can graphically see the cause of increased code complexity. Each flowgraph is accompanied by an Annotated Source Listing (ASL) that provides a mapping between the flowgraph and the lines of code. The ASL allows users to view the specific lines of code that tend to contribute to the increased complexity of the code. Automation McCabe metrics and graphical displays can be obtained with the click of a mouse. You simply tell McCabe IQ the source code that you want it to analyze, and it Reads the source code using powerful parsers Identifies and measures the program s various components Renders metrics and visuals. Page 9 of 12
10 Other McCabe IQ Functionality Class Editor Interface for viewing, modifying, and creating classes. With Battlemap, allows users to group modules based on userdefined criteria in order to analyze the relationship among them. Data Dictionary Tool for tracking data use in programs. It provides a view of local data, global data, parameters, and module declarations. Users can analyze complexity of code with respect to specific data usage. Metric Snapshots Takes a picture of program metrics at various times in the development cycle and saves it to a repository - a critical tool for trend graphing. Integration McCabe IQ is a fully integrated suite of code analysis products, each designed for addressing the specific needs of different stages in the product cycle. There are many tools on the market that can help you with specific software development tasks. But McCabe IQ s integrated suite of products is designed to manage your full software development needs within a single framework. From planning to development to testing, McCabe IQ brings simplicity, cohesiveness, and uniformity. IQ means Integrated Quality. The McCabe IQ Advantage McCabe IQ is highly flexible, customizable, and configurable to most development environments and management needs. It fits itself to the manager s real-world analysis requirements, rather than fitting the analysis to its functionality. McCabe IQ s source code analysis is automated, and platform and language independent. Source code from any platform can be brought to the platform on which McCabe IQ is installed for analysis. Additionally, McCabe IQ can analyze most programming languages and dialects. The complete list can be obtained from the McCabe & Associates web site,. Above all, McCabe & Associates bring 23 years of experience and research in the area of source code metrics and baseline code analysis. Through documentation and training, McCabe IQ pinpoints the relevance and applicability of available metrics to the challenges of management decisionmaking. Compare Tool for identifying functionally similar modules. Useful for identifying modules in which a found error might be repeated. Useful for identifying redundant code and dead code. Page 10 of 12
11 Appendix A. McCabe Metrics by Category The following table contains a list of the primary predefined and derived metrics returned by McCabe IQ. The category (or categories) of software characteristics to which each metric belongs is indicated. 8 Metrics 0 Description 0 Actual Complexity Count of paths tested - Branch Code Count of decision branches Count of source lines Comments Count of comment lines - 6 Coupling between Count of distinct non-inherited 3 objects classes on which a class 1 depends 6 Cyclomatic Complexity Count of logical paths w Cyclomatic Density Cyclomatic Complexity divided w by lines of executable code w. Depth of Inheritance Maximum number of steps m from the class node to the root c of the tree and is measured by c the number of ancestor classes a Essential Complexity Measure of structured-ness of the code b e. Essential Density Essential Complexity c normalized by Cyclomatic o Complexity m Global Data Complexity Quantifies the complexity of a module s structure as it relates to global and parameter data Global Data Density Lack of Cohesion Number of Children Number of Parents Global Data Complexity normalized by Cyclomatic Complexity Measures of the dissimilarity of methods in a class by instance variable or attributes Count of immediate subclasses subordinate to a class in the hierarchy Count of classes from which a class is derived Size Quality - Comprehensibility T : P a g e 1 1 o f Quality - Maintainability Quality - Reusability Risk 1 Readiness Page 11 of 12
12 Operands Operators Pathological Complexity Percent Comments Public Access Public Data Count of the operands in the code Count of the operators in the code Measure of extremely unstructured coding behavior Comments divided by the source number of lines Count of access for class s public and protected data Percentage of public and protected data in a class Response for Class Count of the set of all methods that can be invoked in response to a message to an object of the class or by some method in the class Tested Branches Count of branches tested Tested Lines Weighted Methods per Class Count of source lines of code tested Count of the methods implemented within a class Page 12 of 12
Improved Software Testing Using McCabe IQ Coverage Analysis
White Paper Table of Contents Introduction...1 What is Coverage Analysis?...2 The McCabe IQ Approach to Coverage Analysis...3 The Importance of Coverage Analysis...4 Where Coverage Analysis Fits into your
Chap 4. Using Metrics To Manage Software Risks
Chap 4. Using Metrics To Manage Software Risks. Introduction 2. Software Measurement Concepts 3. Case Study: Measuring Maintainability 4. Metrics and Quality . Introduction Definition Measurement is the
Reducing Technical Debt Using Maintainability Index
Reducing Technical Debt Using Maintainability Index Too much debt can be bad for business. We are all familiar with the negative repercussions that financial debt can cause. Technical debt, and the cost
Fundamentals of Measurements
Objective Software Project Measurements Slide 1 Fundamentals of Measurements Educational Objective: To review the fundamentals of software measurement, to illustrate that measurement plays a central role
Using Code Quality Metrics in Management of Outsourced Development and Maintenance
Using Code Quality Metrics in Management of Outsourced Development and Maintenance Table of Contents 1. Introduction...3 1.1 Target Audience...3 1.2 Prerequisites...3 1.3 Classification of Sub-Contractors...3
EVALUATING METRICS AT CLASS AND METHOD LEVEL FOR JAVA PROGRAMS USING KNOWLEDGE BASED SYSTEMS
EVALUATING METRICS AT CLASS AND METHOD LEVEL FOR JAVA PROGRAMS USING KNOWLEDGE BASED SYSTEMS Umamaheswari E. 1, N. Bhalaji 2 and D. K. Ghosh 3 1 SCSE, VIT Chennai Campus, Chennai, India 2 SSN College of
tools that make every developer a quality expert
tools that make every developer a quality expert Google: www.google.com Copyright 2006-2010, Google,Inc.. All rights are reserved. Google is a registered trademark of Google, Inc. and CodePro AnalytiX
Measuring Software Complexity to Target Risky Modules in Autonomous Vehicle Systems
Measuring Software Complexity to Target Risky Modules in Autonomous Vehicle Systems M. N. Clark, Bryan Salesky, Chris Urmson Carnegie Mellon University Dale Brenneman McCabe Software Inc. Corresponding
Using TechExcel s DevSuite to Achieve FDA Software Validation Compliance For Medical Software Device Development
Using TechExcel s DevSuite to Achieve FDA Software Validation Compliance For Medical Software Device Development The FDA requires medical software development teams to comply with its standards for software
An Introduction to. Metrics. used during. Software Development
An Introduction to Metrics used during Software Development Life Cycle www.softwaretestinggenius.com Page 1 of 10 Define the Metric Objectives You can t control what you can t measure. This is a quote
Analysis Of Source Lines Of Code(SLOC) Metric
Analysis Of Source Lines Of Code(SLOC) Metric Kaushal Bhatt 1, Vinit Tarey 2, Pushpraj Patel 3 1,2,3 Kaushal Bhatt MITS,Datana Ujjain 1 [email protected] 2 [email protected] 3 [email protected]
Coverity White Paper. Effective Management of Static Analysis Vulnerabilities and Defects
Effective Management of Static Analysis Vulnerabilities and Defects Introduction According to a recent industry study, companies are increasingly expanding their development testing efforts to lower their
Modernized and Maintainable Code. Frank Weil, Ph.D. UniqueSoft, LLC
Modernized and Maintainable Code Frank Weil, Ph.D. UniqueSoft, LLC UniqueSoft is a provider of next-generation software development tools and services specializing in modernizing legacy software using
Improving Business Insight
Improving Business Insight A GUIDE FOR SMALL AND MID-SIZED BUSINESSES Why Does Understanding Business Data Matter for Your Company? You know your business better than anyone else, and making decisions
The Practical Organization of Automated Software Testing
The Practical Organization of Automated Software Testing Author: Herbert M. Isenberg Ph.D. Quality Assurance Architect Oacis Healthcare Systems PO Box 3178 Sausalito, CA. 94966 Type: Experience Report
Application Test Management and Quality Assurance
SAP Brief Extensions SAP Quality Center by HP Objectives Application Test Management and Quality Assurance Deliver new software with confidence Deliver new software with confidence Testing is critical
Self-Service Business Intelligence
Self-Service Business Intelligence BRIDGE THE GAP VISUALIZE DATA, DISCOVER TRENDS, SHARE FINDINGS Solgenia Analysis provides users throughout your organization with flexible tools to create and share meaningful
Business Intelligence and Reporting
Business Intelligence and Reporting With an immense amount of data located in a variety of systems, one of the great challenges organizations face is how to collect, categorize, understand, and make decisions
Webinar. Feb 23 2012
An Feb 23 2012 Webinar David White Senior Product Manager [email protected] Tel: +972-54-6750323 Shir Goldberg Co-Founder & VP Biz Dev [email protected] Tel: +1 919 827 1194 This presentation
Improving Quality with Software Metrics
61-04-59 Improving Quality with Software Metrics Ian S. Hayes TO SUCCESSFULLY MANAGE INFORMATION SYSTEMS in the cost-conscious 1990s and beyond, IS managers must become more effective in delivering their
METHODOLOGIES AND TOOLS FOR THE SOFTWARE QUALITY ASSURANCE COURSE *
METHODOLOGIES AND TOOLS FOR THE SOFTWARE QUALITY ASSURANCE COURSE * Vladimir V. Riabov Department of Mathematics and Computer Science Rivier College Nashua, NH, 03060 603 897-8613 [email protected] ABSTRACT
Definitions. Software Metrics. Why Measure Software? Example Metrics. Software Engineering. Determine quality of the current product or process
Definitions Software Metrics Software Engineering Measure - quantitative indication of extent, amount, dimension, capacity, or size of some attribute of a product or process. Number of errors Metric -
Troubleshooting PHP Issues with Zend Server Code Tracing
White Paper: Troubleshooting PHP Issues with Zend Server Code Tracing Technical January 2010 Table of Contents Introduction... 3 What is Code Tracing?... 3 Supported Workflows... 4 Manual Workflow... 4
Key Factors to Consider When Selecting a Web Content Management Solution
to Consider When Selecting a Web Content Management Solution Web content management solutions deliver several sizable benefits. First, they empower subject matter experts, content authors and editors with
Aspire's Approach to Test Automation
WHITE PAPER Aspire's Approach to Test Automation by Ujjawal Bagaria, Aspire Systems Automation has been seen as the long term solution for cost reduction of manual testing across the globe. A successfully
Key Features of Meter Data Management Systems
Itron White Paper Meter Data Management Key Features of Meter Data Management Systems Sharelynn Moore Product Line Manager Meter Data Management Itron, Inc. 2006, Itron Inc. All rights reserved. 1 Introduction
Software Project Audit Process
Software Project Audit Process Version 1.2 Information and Communication Technology Agency of Sri Lanka July 2013 Copyright 2011 ICTA Software Project Audit Process-v-1.2 Revision History Date Version
Testing Metrics. Introduction
Introduction Why Measure? What to Measure? It is often said that if something cannot be measured, it cannot be managed or improved. There is immense value in measurement, but you should always make sure
Foundations for Systems Development
Foundations for Systems Development ASSIGNMENT 1 Read this assignment introduction. Then, read Chapter 1, The Systems Development Environment, on pages 2 25 in your textbook. What Is Systems Analysis and
1. Introduction. Annex 7 Software Project Audit Process
Annex 7 Software Project Audit Process 1. Introduction 1.1 Purpose Purpose of this document is to describe the Software Project Audit Process which capable of capturing different different activities take
AiM User Guide Property Module
AiM User Guide 2010 AssetWorks Inc. 1777 NE Loop 410, Suite 1250 San Antonio, Texas 78217 (800) 268-0325 Table of Contents AiM User Guide INTRODUCTION... 4 CHAPTER 1: PROPERTY PROFILE SCREEN... 5 CHAPTER
Quality Analysis with Metrics
Rational software Quality Analysis with Metrics Ameeta Roy Tech Lead IBM, India/South Asia Why do we care about Quality? Software may start small and simple, but it quickly becomes complex as more features
PRODUCTIVITY IN FOCUS PERFORMANCE MANAGEMENT SOFTWARE FOR MAILROOM AND SCANNING OPERATIONS
PRODUCTIVITY IN FOCUS PERFORMANCE MANAGEMENT SOFTWARE FOR MAILROOM AND SCANNING OPERATIONS Machine Productivity Track equipment productivity by active run time and total wall clock time. Compare machine
Introducing ConceptDraw PROJECT
Introducing ConceptDraw PROJECT Introducing ConceptDraw PROJECT Contents Introducing ConceptDraw PROJECT... 1 What is ConceptDraw PROJECT?... 6 Visualize Project Data...6 Plan Projects and Manage Change...7
How Silk Central brings flexibility to agile development
How Silk Central brings flexibility to agile development The name agile development is perhaps slightly misleading as it is by its very nature, a carefully structured environment of rigorous procedures.
What s New Guide. Active Administrator 6.0
What s New Guide Active Administrator 6.0 2011 ScriptLogic Corporation ALL RIGHTS RESERVED. ScriptLogic, the ScriptLogic logo and Point,Click,Done! are trademarks and registered trademarks of ScriptLogic
Software Engineering 1
THE BCS PROFESSIONAL EXAMINATIONS Diploma April 2006 EXAMINERS REPORT Software Engineering 1 General Comments Most of the scripts produced by candidates this year were well structured and readable, showing
Cloud Self Service Mobile Business Intelligence MAKE INFORMED DECISIONS WITH BIG DATA ANALYTICS, CLOUD BI, & SELF SERVICE MOBILITY OPTIONS
Cloud Self Service Mobile Business Intelligence MAKE INFORMED DECISIONS WITH BIG DATA ANALYTICS, CLOUD BI, & SELF SERVICE MOBILITY OPTIONS VISUALIZE DATA, DISCOVER TRENDS, SHARE FINDINGS Analysis extracts
WebSphere Business Monitor
WebSphere Business Monitor Dashboards 2010 IBM Corporation This presentation should provide an overview of the dashboard widgets for use with WebSphere Business Monitor. WBPM_Monitor_Dashboards.ppt Page
Rational Team Concert. Guido Salvaneschi Dipartimento di Elettronica e Informazione Politecnico di Milano [email protected].
Rational Team Concert Guido Salvaneschi Dipartimento di Elettronica e Informazione Politecnico di Milano [email protected] Project Areas The project area is the system's representation of a software
Product Review: James F. Koopmann Pine Horse, Inc. Quest Software s Foglight Performance Analysis for Oracle
Product Review: James F. Koopmann Pine Horse, Inc. Quest Software s Foglight Performance Analysis for Oracle Introduction I ve always been interested and intrigued by the processes DBAs use to monitor
Functional and LoadTest Strategies
Test Automation Functional and LoadTest Strategies Presented by: Courtney Wilmott April 29, 2013 UTD CS6367 Software Testing and Validation Definitions / Overview Software is a set of programs, procedures,
P6 Analytics Reference Manual
P6 Analytics Reference Manual Release 3.2 October 2013 Contents Getting Started... 7 About P6 Analytics... 7 Prerequisites to Use Analytics... 8 About Analyses... 9 About... 9 About Dashboards... 10 Logging
Performance Management Solutions Drive Results in Financial Institutions
Performance Management s Drive in Financial Institutions Why Banks and Credit Unions are Turning to Performance Management s Enterprise Performance Management...Corporate Performance Management...Business
CA Service Desk Manager
PRODUCT BRIEF: CA SERVICE DESK MANAGER CA Service Desk Manager CA SERVICE DESK MANAGER IS A VERSATILE, COMPREHENSIVE IT SUPPORT SOLUTION THAT HELPS YOU BUILD SUPERIOR INCIDENT AND PROBLEM MANAGEMENT PROCESSES
Quality Management. Managing the quality of the software process and products
Quality Management Managing the quality of the software process and products Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 24 Slide 1 Objectives To introduce the quality management process
The «SQALE» Analysis Model An analysis model compliant with the representation condition for assessing the Quality of Software Source Code
The «SQALE» Analysis Model An analysis model compliant with the representation condition for assessing the Quality of Software Source Code Jean-Louis Letouzey DNV IT Global Services Arcueil, France [email protected]
Software Engineering. So(ware Evolu1on
Software Engineering So(ware Evolu1on 1 Software change Software change is inevitable New requirements emerge when the software is used; The business environment changes; Errors must be repaired; New computers
AGILE SOFTWARE TESTING
AGILE SOFTWARE TESTING Business environments continue to rapidly evolve, leaving many IT organizations struggling to keep up. This need for speed has led to an increased interest in the Agile software
ElegantJ BI. White Paper. Key Performance Indicators (KPI) A Critical Component of Enterprise Business Intelligence (BI)
ElegantJ BI White Paper Key Performance Indicators (KPI) A Critical Component of Enterprise Business Intelligence (BI) Integrated Business Intelligence and Reporting for Performance Management, Operational
Kaseya Traverse. Kaseya Product Brief. Predictive SLA Management and Monitoring. Kaseya Traverse. Service Containers and Views
Kaseya Product Brief Kaseya Traverse Predictive SLA Management and Monitoring Kaseya Traverse Traverse is a breakthrough cloud and service-level monitoring solution that provides real time visibility into
Engineering Process Software Qualities Software Architectural Design
Engineering Process We need to understand the steps that take us from an idea to a product. What do we do? In what order do we do it? How do we know when we re finished each step? Production process Typical
Co-Presented by Mr. Bill Rinko-Gay and Dr. Constantin Stanca 9/28/2011
QAI /QAAM 2011 Conference Proven Practices For Managing and Testing IT Projects Co-Presented by Mr. Bill Rinko-Gay and Dr. Constantin Stanca 9/28/2011 Format This presentation is a journey When Bill and
Taleo Enterprise. Taleo Onboarding User Guide
Taleo Enterprise Taleo Onboarding Feature Pack 11B September 14, 2011 Confidential Information and Notices Confidential Information The recipient of this document (hereafter referred to as "the recipient")
How mobility improves the insurance sales process
How mobility improves the insurance sales process White Paper Stephanie Wolf Business consultant, IBM Business Consulting Services Page 2 Page 3 Contents 3 Executive summary 3 Becoming an on demand business
Chapter 24 - Quality Management. Lecture 1. Chapter 24 Quality management
Chapter 24 - Quality Management Lecture 1 1 Topics covered Software quality Software standards Reviews and inspections Software measurement and metrics 2 Software quality management Concerned with ensuring
II. TYPES OF LEVEL A.
Study and Evaluation for Quality Improvement of Object Oriented System at Various Layers of Object Oriented Matrices N. A. Nemade 1, D. D. Patil 2, N. V. Ingale 3 Assist. Prof. SSGBCOET Bhusawal 1, H.O.D.
Cisco Performance Visibility Manager 1.0.1
Cisco Performance Visibility Manager 1.0.1 Cisco Performance Visibility Manager (PVM) is a proactive network- and applicationperformance monitoring, reporting, and troubleshooting system for maximizing
STATISTICA. Clustering Techniques. Case Study: Defining Clusters of Shopping Center Patrons. and
Clustering Techniques and STATISTICA Case Study: Defining Clusters of Shopping Center Patrons STATISTICA Solutions for Business Intelligence, Data Mining, Quality Control, and Web-based Analytics Table
NNMi120 Network Node Manager i Software 9.x Essentials
NNMi120 Network Node Manager i Software 9.x Essentials Instructor-Led Training For versions 9.0 9.2 OVERVIEW This course is designed for those Network and/or System administrators tasked with the installation,
CSTE Mock Test - Part I - Questions Along with Answers
Note: This material is for Evaluators reference only. Caters to answers of CSTE Mock Test - Part I paper. 1. A branch is (Ans: d) a. An unconditional transfer of control from any statement to any other
IndustrialIT System 800xA Engineering
IndustrialIT System 800xA Engineering Overview Features and Benefits Integrated Engineering Environment: Supports the engineering of the entire extended automation system from field devices to plant management
How To Calculate Class Cohesion
Improving Applicability of Cohesion Metrics Including Inheritance Jaspreet Kaur 1, Rupinder Kaur 2 1 Department of Computer Science and Engineering, LPU, Phagwara, INDIA 1 Assistant Professor Department
Quality Management. Objectives
Quality Management Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 27 Slide 1 Objectives To introduce the quality management process and key quality management activities To explain the
Quality Management. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 27 Slide 1
Quality Management Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 27 Slide 1 Objectives To introduce the quality management process and key quality management activities To explain the
Analysis of Object Oriented Software by Using Software Modularization Matrix
Analysis of Object Oriented Software by Using Software Modularization Matrix Anup 1, Mahesh Kumar 2 1 M.Tech Student, 2 Assistant Professor, Department of Computer Science and Application, RPS College,
Roadnet. Performance Dashboard. Information That Powers Your Business
Roadnet Performance Dashboard Information That Powers Your Business Big Picture Information, Made Easy Let s face it: You re always seeking more transportation intelligence, especially when it comes to
BCS HIGHER EDUCATION QUALIFICATIONS Level 6 Professional Graduate Diploma in IT. March 2013 EXAMINERS REPORT. Software Engineering 2
BCS HIGHER EDUCATION QUALIFICATIONS Level 6 Professional Graduate Diploma in IT March 2013 EXAMINERS REPORT Software Engineering 2 General Comments The pass rate this year was significantly better than
Scalability and Performance Report - Analyzer 2007
- Analyzer 2007 Executive Summary Strategy Companion s Analyzer 2007 is enterprise Business Intelligence (BI) software that is designed and engineered to scale to the requirements of large global deployments.
VisCG: Creating an Eclipse Call Graph Visualization Plug-in. Kenta Hasui, Undergraduate Student at Vassar College Class of 2015
VisCG: Creating an Eclipse Call Graph Visualization Plug-in Kenta Hasui, Undergraduate Student at Vassar College Class of 2015 Abstract Call graphs are a useful tool for understanding software; however,
Framework for SOA services
Advisory Services Business Systems Integration Framework for SOA services Service-oriented architecture can transform the IT landscape by increasing efficiencies and decreasing costs. But the architecture
Contents. Introduction... 1
Managed SQL Server 2005 Deployments with CA ERwin Data Modeler and Microsoft Visual Studio Team Edition for Database Professionals Helping to Develop, Model, and Maintain Complex Database Architectures
NASCIO EA Development Tool-Kit Solution Architecture. Version 3.0
NASCIO EA Development Tool-Kit Solution Architecture Version 3.0 October 2004 TABLE OF CONTENTS SOLUTION ARCHITECTURE...1 Introduction...1 Benefits...3 Link to Implementation Planning...4 Definitions...5
Chapter 9 Software Evolution
Chapter 9 Software Evolution Summary 1 Topics covered Evolution processes Change processes for software systems Program evolution dynamics Understanding software evolution Software maintenance Making changes
29200 Northwestern Hwy Suite 350 Southfield, MI 48034. 1-866-4WINSPC winspc.com
29200 Northwestern Hwy Suite 350 Southfield, MI 48034 1-866-4WINSPC winspc.com 2016 DataNet Quality Systems. All rights reserved. WinSPC is a registered trademark of DataNet Quality Systems. Document Version:
QUEST The Systems Integration, Process Flow Design and Visualization Solution
Resource Modeling & Simulation DELMIA QUEST The Systems Integration, Process Flow Design and Visualization Solution DELMIA QUEST The Systems Integration, Process Flow Design and Visualization Solution
A collection of Safran Project report samples for project professionals
A collection of Safran Project report samples for project professionals Safran Software Solutions Global Offices: Houston, London, Oslo, Stavanger www.safran.com Contents Introduction... 2 About the Reports
Metrics Dashboard Design
Metrics Dashboard Design Designing Effective Metrics Management Dashboards Designers of metrics management dashboards need to incorporate three areas of knowledge and expertise when building dashboards.
Welcome to the topic on creating key performance indicators in SAP Business One, release 9.1 version for SAP HANA.
Welcome to the topic on creating key performance indicators in SAP Business One, release 9.1 version for SAP HANA. 1 In this topic, you will learn how to: Use Key Performance Indicators (also known as
White Paper Combining Attitudinal Data and Behavioral Data for Meaningful Analysis
MAASSMEDIA, LLC WEB ANALYTICS SERVICES White Paper Combining Attitudinal Data and Behavioral Data for Meaningful Analysis By Abigail Lefkowitz, MaassMedia Executive Summary: In the fast-growing digital
(Refer Slide Time: 01:52)
Software Engineering Prof. N. L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture - 2 Introduction to Software Engineering Challenges, Process Models etc (Part 2) This
Oracle Real Time Decisions
A Product Review James Taylor CEO CONTENTS Introducing Decision Management Systems Oracle Real Time Decisions Product Architecture Key Features Availability Conclusion Oracle Real Time Decisions (RTD)
SECTION 4 TESTING & QUALITY CONTROL
Page 1 SECTION 4 TESTING & QUALITY CONTROL TESTING METHODOLOGY & THE TESTING LIFECYCLE The stages of the Testing Life Cycle are: Requirements Analysis, Planning, Test Case Development, Test Environment
Automating Marketing Localization
Bridging the Gap between Corporate and Distributed Marketers With traditional brand marketing channels rapidly declining in effectiveness, a successful, collaborative relationship between corporate marketing
White Paper. Thirsting for Insight? Quench It With 5 Data Management for Analytics Best Practices.
White Paper Thirsting for Insight? Quench It With 5 Data Management for Analytics Best Practices. Contents Data Management: Why It s So Essential... 1 The Basics of Data Preparation... 1 1: Simplify Access
Evaluating Data Warehousing Methodologies: Objectives and Criteria
Evaluating Data Warehousing Methodologies: Objectives and Criteria by Dr. James Thomann and David L. Wells With each new technical discipline, Information Technology (IT) practitioners seek guidance for
CSC408H Lecture Notes
CSC408H Lecture Notes These lecture notes are provided for the personal use of students taking Software Engineering course in the Summer term 2005 at the University of Toronto. Copying for purposes other
INSIGHT NAV. White Paper
INSIGHT Microsoft DynamicsTM NAV Business Intelligence Driving business performance for companies with changing needs White Paper January 2008 www.microsoft.com/dynamics/nav/ Table of Contents 1. Introduction...
Formal Software Testing. Terri Grenda, CSTE IV&V Testing Solutions, LLC www.ivvts.com
Formal Software Testing Terri Grenda, CSTE IV&V Testing Solutions, LLC www.ivvts.com Scope of Testing Find defects early Remove defects prior to production Identify Risks Unbiased opinion When Should Testing
7^\ E^XijgZ >c[dgbvi^dc! BVYZ :Vhn GdVYcZi EZg[dgbVcXZ 9Vh]WdVgY AZiÉh [VXZ ^i/ NdjÉgZ ValVnh
especially when it comes to seeing your businesses big picture and measuring what you ve done and how well you ve done it. Sure, you ve got spreadsheets with scattered data that takes your valuable time
Kronos. Workforce Ready for small and midsize businesses. It s enterprise-class workforce management. Simplified.
Kronos Workforce Ready for small and midsize businesses It s enterprise-class workforce management. Simplified. How can you best grow in today s tough economic climate? A key strategy in the current economic
Model Manage Monitor Maximize your Data Center
NetZoomDC is the most feature rich, fully-scalable, enterprise Data Center Infrastructure Management (DCIM) software application. It enables data center professionals to Model, Manage, Monitor and Maximize
Measurement Information Model
mcgarry02.qxd 9/7/01 1:27 PM Page 13 2 Information Model This chapter describes one of the fundamental measurement concepts of Practical Software, the Information Model. The Information Model provides
Get it together: six ways to effectively integrate phone, web, and email surveys
Get it together: six ways to effectively integrate phone, web, and email surveys 2015 Qualtrics International, Inc. Executive Summary Researchers today face budget and time pressures as decision-makers
How to increase Marketing Efficiency to Gain and Retain Customers
How to increase Marketing Efficiency to Gain and Retain Customers How marketing automation and CRM can help a midsized business consolidate data, improve customer information, streamline marketing efforts,
