SWEN 256 Software Process & Project Management

Similar documents
CTIS 359 Principles of Software Engineering SOFTWARE QUALITY MANAGEMENT

Software Quality Management

Chapter 24 - Quality Management. Chapter 24 Quality management

A Study on Software Metrics and Phase based Defect Removal Pattern Technique for Project Management

Quality Management. Managing the quality of the design process and final

Improvement of The Fault-Prone Class Prediction Precision by The Process Metrics Use

Introduction to Software Metrics

CHAPTER 2 PROBLEM STATEMENT

Chapter 6. Software Quality Management & Estimation

Lecture 2: Software Quality Factors, Models and Standards. Software Quality Assurance (INSE 6260/4-UU) Winter 2016

12/04/ : Course Overview. Review to 1 st Exam. Process-based Software Quality. 2: Introduction to SQM. Software Standards

Software Project Management

THE BCS PROFESSIONAL EXAMINATION BCS Level 6 Professional Graduate Diploma in IT September 2018 EXAMINERS REPORT. Software Engineering 2

GQM: Goal Question Metrics

Scientific Journal Impact Factor: (ISRA), Impact Factor: 2.114

Lecture 1: Software Measurement. Marlon Dumas

Personal Software Process SM for Engineers: Part I

ESTIMATION OF ASPECT ORIENTED PROGRAMMING USING DIFFERENT METRICES

Software Reliability and Testing: Know When To Say When. SSTC June 2007 Dale Brenneman McCabe Software

Introduction to Software Metrics

Software metrics. Jaak Tepandi

Chapter 26 Process improvement

Lecture 1. In practice, most large systems are developed using a. A software process model is an abstract representation

Process Improvement. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 28 Slide 1

R.POONKODI, ASSISTANT PROFESSOR, COMPUTER SCIENCE AND ENGINEERING, SRI ESHWAR COLLEGE OF ENGINEERING, COIMBATORE.

Transaction versus transform flow. Wednesday, September 19, :32 PM

Unit-II Measures, Metrics and Indicators

Assessment of software quality metrics. Elisabetta Ronchieri, INFN CNAF Maria Grazia Pia, INFN - Genova CERN, 11/23/2016

Workshop 1: Software Measurement. Marlon Dumas

Fundamental estimation questions. Software cost estimation. Costing and pricing. Software cost components. Software pricing factors

Significance of Quality Metrics during Software Development Process

Software Processes. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 1

AGILE DEVELOPMENT AND ITS IMPACT ON PRODUCTIVITY

Why Measure Software?


EMPIRICAL EVALUATION OF METRICS FOR COMPONENT BASED SOFTWARE SYSTEMS Abhikriti Narwal 1 Lecturer, S.D.I.T,M, Israna, Panipat

Retrofitting Legacy Systems with Unit Tests

QUESTIONS AND ANSWERS ON SOFTWARE PROCESS AND PRODUCT METRICS

Software Processes. Objectives. Topics covered. The software process. Waterfall model. Generic software process models

Objectives. The software process. Topics covered. Waterfall model. Generic software process models. Software Processes

2IS55 Software Evolution. Software metrics (3) Alexander Serebrenik

Chapter 4 Software Process and Project Metrics

Object-Oriented & Classical Soft Engineering

2IS55 Software Evolution. Software metrics (3) Alexander Serebrenik

So#ware Architecture

An Agent-Based Approach to the Automation of Risk Management in IT Projects

Topics covered. Software process models Process iteration Process activities The Rational Unified Process Computer-aided software engineering

Software cost estimation

The software process

GEARING FACTORS. The A FLEXIBLE SIZING APPROACH

Chapter 6: Software Evolution and Reengineering

Software Process and Project Metrics

Activity Metrics. (book ch 4.3, 10, 11, 12) RIT Software Engineering

AUDITING CONCEPTS. July 2008 Page 1 of 7

Introduction to software testing and quality process

Agenda. Measuring in Traditional vs. Agile. The Human Side of Metrics

CPSC 310 Software Engineering. Quality

Lecture 6: Non-Functional Requirements (NFRs)

Chapter 26. Quality Management

More than 2000 organizations use our ERM solution

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for controlling, tracking, and monitoring a comple

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

9. Verification, Validation, Testing

Example # 1: 8 to 18 function points per person-month

On the Use of Software Quality Metrics to Improve Physical Properties of Embedded Systems

Project Management Processes A process is a set of interrelated actions and activities performed to create a product, service, or result

Quality 24 Process Improvement 26 Real processes. Product Quality. Quality Management. Quality Management. Quality Plan

Software Processes 1

Software Metrics. Practical Approach. A Rigorous and. Norman Fenton. James Bieman THIRD EDITION. CRC Press CHAPMAN & HALIVCRC INNOVATIONS IN

4-3 Software Measurement

Software Architecture Evaluation Framework The Aerospace Corporation

FOR OWNERS: MANAGING VENDOR ACCRUALS AND VENDOR INVOICE MATCHING ON LARGE CONSTRUCTION PROJECTS

Chapter 1 The Systems Development Environment

I Have Had My CMMI Appraisal What Do I Do Now? How to Establish a Process Improvement WBS

Test Workflow. Michael Fourman Cs2 Software Engineering

Concepts of Project Management. All projects have followings.

Source-code quality. Part 1. Software Metrics. Andy Kellens. Monday 22 April 13

Note 6. Software Metrics

Technische Universität München. Software Quality. Management. Dr. Stefan Wagner Technische Universität München. Garching 18 June 2010

To get the most out of this tutorial, it is good to have a basic understanding of the Software Development Life Cycle (SDLC).

Software Metrics Software Engineering 2007

engineering and measurement

Software Measurement. Software Economics 2009

Tutorial Software is the differentiating characteristics in many computer based products and systems. Provide examples of two or three products

Developers have a tough charter: Given

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

Glossary of Performance Measurement Terms Ontario Public Service Reference Document for Provincial Ministries

Capability Maturity Model for Software (SW-CMM )

SOFTWARE MEASUREMENT GUIDEBOOK. Revision 1

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

Reducing Architecture Complexity with AADL

Software Testing(TYIT) Software Testing. Who does Testing?

Chapter 3 Influence of Lean Startup

Chapter 4 Document Driven Approach for Agile Methodology

SOFTWARE QUALITY IMPROVEMENT THROUGH DEFECT PREDICTION

Lecture 28: Software metrics

Software Quality. Unit 6: System Quality Requirements

Schedule. Complexity of software systems. McCabe s cyclomatic complexity

A Software Measurement Case Study Using GQM

Transcription:

SWEN 256 Software Process & Project Management

Not everything that can be counted counts, and not everything that counts can be counted. - Albert Einstein

Software measurement is concerned with deriving a quantitative (numeric) value for an attribute of a software product or process (largely qualitative) This allows for objective comparisons between techniques and processes Although some companies have introduced measurement programs, the systematic use of measurement is still uncommon There are few standards in this area

Measure provides a quantitative indication of the size of some product or process attribute Measurement the act of obtaining a measure Metric a quantitative measure of the degree to which a system, component, or process possesses a given attribute

Any type of measurement which relates to a software system, process or related documentation o Lines of code in a program, number of person-days required to develop a component Allow the software and the software process to be quantified Measures of the software process or product May be used to predict product attributes or to control the software process

Product o Assess the quality of the design and construction of the software product being built. Process & Project o Quantitative measures that enable software engineers to gain insight into the efficiency of the software process and the projects conducted using the process framework

Private process metrics (e.g., defect rates by individual or module) are only known to by the individual or team concerned. Public process metrics enable organizations to make strategic changes to improve the software process. Metrics should not be used to evaluate the performance of individuals. Why? Statistical software process improvement helps and organization to discover where they are strong and where they are weak

A quality metric should be a predictor of product quality Classes of product metric o o o Dynamic metrics which are collected by measurements made of a program in execution Static metrics which are collected by measurements made of the system representations Dynamic metrics help assess efficiency and reliability; Static metrics help assess complexity, understandability and maintainability

A software team can use software project metrics to adapt project workflow and technical activities Project metrics are used to avoid development schedule delays, to mitigate potential risks, and to assess product quality on an on-going basis Every project should measure its inputs (resources), outputs (deliverables), and results (effectiveness of deliverables)

George Santayana

A software property can be measured The relationship exists between what we can measure and what we want to know This relationship has been formalized and validated It may be difficult to relate what can be measured to desirable quality attributes

Many software developers do not collect measures. Without measurement it is impossible to determine whether a process is improving or not Baseline metrics data should be collected from a large, representative sampling of past software projects Getting this historic project data is very difficult, if the previous developers did not collect data in an on-going manner

Direct measures of a software engineering process include co$t and effort Direct measures of the product include lines of code (LOC), execution speed, memory size, defects reported over some time period Indirect product measures examine the quality of the software product itself (e.g., functionality, complexity, efficiency, reliability, maintainability)

A software measurement process may be part of a quality control process Data collected during this process should be maintained as an organisational resource Once a measurement database has been established, comparisons across projects become possible

Choose measurements to be made Analyse anomalous components Select components to be assessed Identify anomalous measurements Measure component char acteristics

A metrics program should be based on a set of product and process data Data should be collected immediately (not in retrospect) and, if possible, automatically Three types of automatic data collection o o o Static product analysis Dynamic product analysis Process data collation

Don t collect unnecessary data o The questions to be answered should be decided in advance and the required data identified Tell people why the data is being collected o It should not be part of personnel evaluation Don t rely on memory o Collect data when it is generated not after a project has finished

Software process Software product Control measurements Predictor measurements Management decisions

It is not always obvious what data means o Analysing collected data is very difficult Professional statisticians should be consulted if available Data analysis must take local circumstances into account

Derived by normalizing (dividing) any direct measure (e.g., defects or human effort) associated with the product or project by LOC Size-oriented metrics are widely used but their validity and applicability is a matter of some debate

Function points are computed from direct measures of the information domain of a business software application and assessment of its complexity Once computed function points are used like LOC to normalize measures for software productivity, quality, and other attributes The relationship of LOC and function points depends on the language used to implement the software

Number of static Web pages (Nsp) Number of dynamic Web pages (Ndp) Customization index: C = Nsp / (Ndp + Nsp) Number of internal page links Number of persistent data objects Number of external systems interfaced Number of static content objects Number of dynamic content objects Number of executable functions

Fan in/fan-out Fan-in is a measure of the number of functions that call some other function (say X). Fan-out is the number of functions which are called by function X. A high value for fan-in means that X is tightly coupled to the rest of the design and changes to X will have extensive knock-on effects. A high value for fan-out suggests that the overall complexity of X may be high because of the complexity of the control logic needed to coordinate the called components. Length of code This is a measure of the size of a program. Generally, the larger the size of the code of a program s components, the more complex and error-prone that component is likely to be. Cyclomatic complexity This is a measure of the control complexity of a program. This control complexity may be related to program understandability. The computation of cyclomatic complexity is covered in Chapter 20. Length of identifiers This is a measure of the average length of distinct identifiers in a program. The longer the identifiers, the more likely they are to be meaningful and hence the more understandable the program. Depth of conditional nesting This is a measure of the depth of nesting of if-statements in a program. Deeply nested if statements are hard to understand and are potentially error-prone. Fog index This is a measure of the average length of words and sentences in documents. The higher the value for the Fog index, the more difficult the document may be to understand.

Depth of inheritance tree This represents the number of discrete levels in the inheritance tree where sub-classes inherit attributes and operations (methods) from super-classes. The deeper the inheritance tree, the more complex the design as, potentially, many different object classes have to be understood to understand the object classes at the leaves of the tree. Method fan-in/fan-out This is directly related to fan-in and fan-out as described above and means essentially the same thing. However, it may be appropriate to make a distinction between calls from other methods within the object and calls from external methods. Weighted methods per class This is the number of methods included in a class weighted by the complexity of each method. Therefore, a simple method may have a complexity of 1 and a large and complex method a much higher value. The larger the value for this metric, the more complex the object class. Complex objects are more likely to be more difficult to understand. They may not be logically cohesive so cannot be reused effectively as super-classes in an inheritance tree. Number of overriding operations These are the number of operations in a superclass which are over-ridden in a sub-class. A high value for this metric indicates that the super-class used may not be an appropriate parent for the sub-class.

Most software organizations have fewer than 20 software engineers. Best advice is to choose simple metrics that provide value to the organization and don't require a lot of effort to collect. Even small groups can expect a significant return on the investment required to collect metrics, IFF this activity leads to process improvement.

Maintainability Number of procedur e par ameters Cyclomatic complexity Reliability Portability Usability Program size in lines of code Number of error messages Length of user manual

Number Metric Percentage 1 Number of defects found after a release 61% 2 Number of changes or change requests 55% 3 User or customer satisfaction 52% 4 Number of defects found during development 50% 5 Documentation completeness/accuracy 42% 6 Time to identify/correct defects 40% 7 Defect distribution by type/class 37% 8 Error by major function/feature 32% 9 Test coverage of specifications 31% 10 Test coverage of code 31%

Number Metric Percentage 1 Module/design complexity 24% 2 Number of source lines delivered 22% 3 Documentation size/complexity 20% 4 Number of reused source lines 16% 5 Number of function points 10%