Development By The Numbers

Size: px
Start display at page:

Download "Development By The Numbers"

Transcription

1 Development By The Numbers

2

3

4

5

6 We Are Going To Measure Complexity

7 Why Should We Care About Complexity?

8 "The Central Enemy Of Reliability is Complexity" - Geer et al.

9 Complexity And Quality Are Strongly Related

10

11 Basic Metrics

12 Cyclomatic Complexity

13 Cyclomatic Complexity Number Of "Decision Points" In A Routine

14 function foo($a, $b) { $c = 0; if ($a) { $c = $a; elseif ($b) { $c = $b; if ($a && $b) { $c = $a + $b; return $c;

15 function foo($a, $b) { $c = 0; if ($a) { $c = $a; elseif ($b) { $c = $b; if ($a && $b) { $c = $a + $b; return $c;

16 function foo($a, $b) { $c = 0; if ($a) { $c = $a; elseif ($b) { $c = $b; if ($a && $b) { $c = $a + $b; return $c; 4

17 Simple Right?

18

19 Cyclomatic Complexity (Single Method) 1-4: Low Complexity 5-7: Moderate Complexity 8-10: High Complexity 11+: Very High Complexity

20 Cyclomatic Complexity (Average Per Method) 1-2: 2-4: 4-6: 6+: Low Complexity Moderate Complexity High Complexity Very High Complexity

21 Compare: Average CC per Method Wordpress: 6.28 Drupal 7: 3.02 Drupal 8: 2.10 Symfony 2: 1.81 Zend Framework 2: 2.62 Laravel: 1.79

22 Cyclomatic Complexity (Average Per Line Of Code) : : :.15+: Low Complexity Moderate Complexity High Complexity Very High Complexity

23 Compare: Average CC per LOC Wordpress: 0.20 Drupal 7: 0.04 Drupal 8: 0.07 Symfony 2: 0.06 Zend Framework 2: 0.10 Laravel: 0.07

24

25 N-Path Complexity

26 N-Path Complexity Number Of "Unique Paths" In A Routine

27 function foo($a, $b) { $c = 0; if ($a) { $c = $a; elseif ($b) { $c = $b; if ($a && $b) { $c = $a + $b; return $c;

28 function foo($a, $b) { $c = 0; if ($a) { $c = $a; elseif ($b) { $c = $b; if ($a && $b) { $c = $a + $b; return $c;

29 function foo($a, $b) { $c = 0; if ($a) { $c = $a; elseif ($b) { $c = $b; if ($a && $b) { $c = $a + $b; return $c;

30 function foo($a, $b) { $c = 0; if ($a) { $c = $a; elseif ($b) { $c = $b; if ($a && $b) { $c = $a + $b; return $c;

31 function foo($a, $b) { $c = 0; if ($a) { $c = $a; elseif ($b) { $c = $b; if ($a && $b) { $c = $a + $b; return $c;

32 function foo($a, $b) { $c = 0; if ($a) { $c = $a; elseif ($b) { $c = $b; if ($a && $b) { $c = $a + $b; return $c; 4

33 They Are The Same?

34 Not Generally!

35 function foo2($a, $b, $c) { $d = 0; if ($a) { $d += $a; if ($b) { $d += $b; if ($c) { $d += $c; return $d; CC: NPath:

36 function foo2($a, $b, $c) { $d = 0; if ($a) { $d += $a; if ($b) { $d += $b; if ($c) { $d += $c; return $d; CC: NPath:

37 function foo2($a, $b, $c) { $d = 0; if ($a) { $d += $a; if ($b) { $d += $b; if ($c) { $d += $c; return $d; CC: 4 NPath:

38 function foo2($a, $b, $c) { $d = 0; if ($a) { $d += $a; if ($b) { $d += $b; if ($c) { $d += $c; return $d; CC: 4 NPath:

39 function foo2($a, $b, $c) { $d = 0; if ($a) { $d += $a; if ($b) { $d += $b; if ($c) { $d += $c; return $d; CC: 4 NPath:

40 function foo2($a, $b, $c) { $d = 0; if ($a) { $d += $a; if ($b) { $d += $b; if ($c) { $d += $c; return $d; CC: 4 NPath:

41 function foo2($a, $b, $c) { $d = 0; if ($a) { $d += $a; if ($b) { $d += $b; if ($c) { $d += $c; return $d; CC: 4 NPath:

42 function foo2($a, $b, $c) { $d = 0; if ($a) { $d += $a; if ($b) { $d += $b; if ($c) { $d += $c; return $d; CC: 4 NPath:

43 function foo2($a, $b, $c) { $d = 0; if ($a) { $d += $a; if ($b) { $d += $b; if ($c) { $d += $c; return $d; CC: 4 NPath:

44 function foo2($a, $b, $c) { $d = 0; if ($a) { $d += $a; if ($b) { $d += $b; if ($c) { $d += $c; return $d; CC: 4 NPath:

45 function foo2($a, $b, $c) { $d = 0; if ($a) { $d += $a; if ($b) { $d += $b; if ($c) { $d += $c; return $d; CC: 4 NPath:

46 function foo2($a, $b, $c) { $d = 0; if ($a) { $d += $a; if ($b) { $d += $b; if ($c) { $d += $c; return $d; CC: 4 NPath: 8

47 function foo2($a, $b, $c) { $d = 0; if ($a) { $d += $a; if ($b) { $d += $b; if ($c) { $d += $c; return $d; CC: 4 NPath: 8 2^(CC-1)

48 N-Path Complexity <16: Low Complexity : Moderate Complexity : High Complexity 1025+: Very High Complexity

49

50 N-Path Complexity Minimum Number Of Tests Required To Completely Test A Routine

51

52

53 N-Path Complexity entity_load() CC: N-Path:

54 N-Path Complexity entity_load() CC: 2 N-Path:

55 Cyclomatic Complexity 1-4: Low Complexity 5-7: Moderate Complexity 8-10: High Complexity 11+: Very High Complexity

56 N-Path Complexity entity_load() CC: 2 N-Path: 2

57

58 N-Path Complexity drupal_http_request() CC: N-Path:

59

60

61

62

63 N-Path Complexity drupal_http_request() CC: 41 N-Path:

64 Cyclomatic Complexity 1-4: Low Complexity 5-7: Moderate Complexity 8-10: High Complexity 11+: Very High Complexity

65 N-Path Complexity drupal_http_request() CC: 41 N-Path: 25,303,344,960

66

67 To Completely Test drupal_http_request() At 1 Line Of Code Per Test Would Require 2 Terabytes Worth Of Tests

68 To Completely Test drupal_http_request() At 1 Line Of Code Per Test Would Require 412 DVD's Worth Of Tests

69 To Completely Test drupal_http_request() At 1 Line Of Code Per Test Would Require 670k Drupals Worth Of Tests

70 And That's Not The Worst One!

71

72 N-Path Complexity _date_repeat_rrule_process() CC: N-Path:

73 N-Path Complexity _date_repeat_rrule_process() CC: 81 N-Path:

74 N-Path Complexity _date_repeat_rrule_process() CC: 81 N-Path: 19,781,719,256

75 N-Path Complexity _date_repeat_rrule_process() CC: 81 N-Path: 19,781,719,256,250,000,000,000

76 N-Path Complexity _date_repeat_rrule_process() CC: 81 N-Path: 19,781,719,256,250,000,000,000,000,000,000

77 To Completely Test _date_repeat_rrule_process() At 1 Line Of Code Per Test Would Require 336T 2009's Worth Of Tests

78 To Completely Test _date_repeat_rrule_process() At 1 Line Of Code Per Test Would Require 1 Greenland Ice Cap of microsd cards Worth Of Tests

79

80 CRAP

81

82 CRAP (Change Risk Analysis Predictions)

83 CC = Cyclomatic Complexity (method) COV = Test Coverage (percent) CRAP = CC + (CC^2 * (1 - COV)^3)

84

85 CRAP Relates Complexity And Test Coverage

86 CRAP Increasing Test Coverage Lowers CRAP Decreasing Complexity Lowers CRAP

87 CRAP A Low Complexity Method With No Tests Is Good

88 CRAP A Low Complexity Method With Good Tests Is Great

89 CRAP A Moderate Complexity Method With Good Tests Is OK

90 CRAP A Moderate Complexity Method With No Tests Is CRAP

91 CRAP < 5: 5-15: 15-30: 30+: GREAT Code Acceptable Code Eih... Code CRAPpy Code

92

93 How Do We Apply These Metrics?

94

95

96

97 Sebastian Bergmann PHPUnit DbUnit PHPLOC PHPCPD PHPCOV hphpa

98 PHPLOC

99 PHPLOC By Sebastian Bergmann

100 PHPLOC By Sebastian Bergmann Command Line Tool

101 PHPLOC By Sebastian Bergmann Command Line Tool Summarizes An Entire Codebase

102 $ phploc path/to/drupal7/ Directories: 73 Files: 180 Lines of Code (LOC): Cyclomatic Complexity / Lines of Code: 0.04 Comment Lines of Code (CLOC): Non-Comment Lines of Code (NCLOC): 44026

103 Namespaces: 0 Interfaces: 1 Traits: 0 Classes: 38 Abstract: 2 (5.26%) Concrete: 36 (94.74%) Average Class Length (NCLOC): 197

104 Methods: 433 Scope: Non-Static: 378 (87.30%) Static: 55 (12.70%) Visibility: Public: 255 (58.89%) Non-Public: 178 (41.11%) Average Method Length (NCLOC): 17 Cyclomatic Complexity / Number of Methods: 3.02 Anonymous Functions: 0 Functions: 521 Constants: 22 Global constants: 15 Class constants: 7

105 PDepend

106 PDepend By Manuel Pichler (Also German)

107 PDepend By Manuel Pichler (Also German) Like PHPLOC, But Granular

108 PDepend By Manuel Pichler (Also German) Like PHPLOC, But Granular Lower Level Analysis

109

110 Fanout: Describes Outward Dependencies - Describes Dependence on Other Classes ANDC: Average Num of Derived Classes - Describes How Much Inheritance Is Used AHH: Average Hiearchy Height - Describes How Deep Of Inheritance Is Used

111 PHPMD (Mess Detector)

112 PHPMD By Manuel Pichler (German)

113 PHPMD By Manuel Pichler (German) Finds "Messy" Parts Of Code

114 PHPMD By Manuel Pichler (German) Finds "Messy" Parts Of Code Finds Rule Violations

115 PHPMD Rules CodeSize - (CC, NPath, Number of Methods, Size of Methods, etc) Design - (Eval, Goto, Exit(), Inheritance Depth) Naming - (Short names, Inconsistent Names) Unused Code Controversial - (Superglobal Access, Naming Conventions)

116

117 Prevent Complex Code From Even Getting In!

118 By Themselves Useful

119 Over Time

120 Over Time Invaluable

121 Drupal 8.x Branch Non-Comment Lines Of Code

122 Drupal 8.x Branch Number Of Classes

123 Drupal 8.x Branch Cyclomatic Complexity Per Method

124 Drupal 8.x Branch Cyclomatic Complexity Per Line

125 Drupal 8.x Branch

126

127

128

129 One More Thing To Keep In Mind

130

131

132 Anthony blog.ircmaxell.com github.com/ircmaxell youtube.com/ircmaxell

Reviewing PHP Code. Sebastian Bergmann July 27th sharing experience

Reviewing PHP Code. Sebastian Bergmann July 27th sharing experience Reviewing PHP Code Sebastian Bergmann July 27th 2011 Seba stian Why so negative? 2001 Columbia Pictures Industries, Inc. All Rights Reserved. Your code has been weighed, it has been measured, and it has

More information

Does Your Code Measure Up?

Does Your Code Measure Up? Does Your Code Measure Up? By: Adam Culp Twitter: @adamculp https://joind.in/13300 2 About me PHP 5.3 Certified Consultant at Zend Technologies Organizer SoFloPHP (South Florida) Organized SunshinePHP

More information

Design Quality Assessment in Practice

Design Quality Assessment in Practice Design Quality Assessment in Practice my two hats... Radu Marinescu radum@cs.upt.ro Associate Professor since 006 Co-Founder and Head since 003 http://www.intooitus.com/ Co-Founder (008) Assessment with

More information

FOR0383 Software Quality Assurance

FOR0383 Software Quality Assurance This method seems much, much bigger than all the other methods. FOR0383 Software Quality Assurance Lecture 15 Code metrics "You cannot control what you cannot measure." Tom DeMarco 2/11/2009 Dr Andy Brooks

More information

CHAPTER 4 OBJECT ORIENTED COMPLEXITY METRICS MODEL

CHAPTER 4 OBJECT ORIENTED COMPLEXITY METRICS MODEL 64 CHAPTER 4 OBJECT ORIENTED COMPLEXITY METRICS MODEL 4.1 INTRODUCTION Customers measure the aspects of the final product to determine whether it meets the requirements and provides sufficient quality.

More information

Effizientere WordPress-Plugin-Entwicklung mit Softwaretests. Martin Schütte

Effizientere WordPress-Plugin-Entwicklung mit Softwaretests. Martin Schütte Effizientere WordPress-Plugin-Entwicklung mit Softwaretests Martin Schütte About DECK36 Small team of 7 engineers Longstanding expertise in designing, implementing and operating complex web systems Developing

More information

[IT6004-SOFTWARE TESTING] UNIT 2

[IT6004-SOFTWARE TESTING] UNIT 2 1. List the two basic Testing strategies. UNIT 2 Black box testing. White box testing. 2. What are the knowledge sources for Black box testing? Requirements Document specification Domain knowledge Defect

More information

Software Metrics and Problem Detection

Software Metrics and Problem Detection Software Metrics and Problem Detection Oscar Nierstrasz Yuriy Tymchuk Selected material by Mircea Lungu Roadmap > Software Metrics Size / Complexity Metrics Quality Metrics > Metric-Based Problem Detection

More information

Effective Modular Design

Effective Modular Design CSC40232: SOFTWARE ENGINEERING Professor: Jane Cleland Huang Metrics sarec.nd.edu/courses/se2017 Department of Computer Science and Engineering Effective Modular Design Modular design Reduces complexity

More information

Static Metrics. Feature Brief

Static Metrics. Feature Brief SOFTWARE QUALITY ASSURANCE TOOLS & TECHNOLOGY PROFESSIONAL SERVICES ACADEMY P a g e 1 Feature Brief Static Metrics Cantata provides a full and unique suite of intelligent testing capabilities for the efficient

More information

MEASURE YOUR CODE USING CODE METRICS. CS 599 Software Metrics and Models Hana Alarifi

MEASURE YOUR CODE USING CODE METRICS. CS 599 Software Metrics and Models Hana Alarifi MEASURE YOUR CODE USING CODE METRICS CS 599 Software Metrics and Models Hana Alarifi Overview Quality code is the top priority for a good developer. The code must be not only bug free code but also understandable,

More information

ARiSA First Contact Analysis

ARiSA First Contact Analysis ARiSA First Contact Analysis Applied Research In System Analysis - ARiSA You cannot control what you cannot measure Tom DeMarco Software Grail Version 1.3 Programming Language Java 1.4 Date 2 nd of December,

More information

Software Metrics. Lines of Code

Software Metrics. Lines of Code Software Metrics Naveed Arshad Lines of Code The total number of lines of executable code in the software program or module being measured But lines of code could mean anything e.g. count only executable

More information

1 Visible deviation from the specification or expected behavior for end-user is called: a) an error b) a fault c) a failure d) a defect e) a mistake

1 Visible deviation from the specification or expected behavior for end-user is called: a) an error b) a fault c) a failure d) a defect e) a mistake Sample ISTQB examination 1 Visible deviation from the specification or expected behavior for end-user is called: a) an error b) a fault c) a failure d) a defect e) a mistake 2 Regression testing should

More information

Kostis Kapelonis Athens Greece, March 2010

Kostis Kapelonis Athens Greece, March 2010 Quality Metrics: GTE, CAP and CKJM Kostis Kapelonis Athens Greece, March 2010 Menu More Quality metrics: Google Testability Explorer (Starter) Code Analysis Plugin (Main Course) CKJM metrics (Dessert)

More information

An Empirical Study of PHP Feature Usage: A Static Analysis Perspective

An Empirical Study of PHP Feature Usage: A Static Analysis Perspective An Empirical Study of PHP Feature Usage: A Static Analysis Perspective Mark Hills, Paul Klint, and Jurgen J. Vinju CWI, Software Analysis and Transformation (SWAT) ISSTA 2013 Lugano, Switzerland July 16-18,

More information

Software Design & Evolution. Lecture 04. You cannot control what you cannot measure. Metrics & Problem Detection. Michele Lanza

Software Design & Evolution. Lecture 04. You cannot control what you cannot measure. Metrics & Problem Detection. Michele Lanza Software Design & Evolution Lecture 04 Michele Lanza Metrics & Problem Detection Metrics? Don t trust them Michele Lanza & Radu Marinescu Object-Oriented Metrics in Practice Using Software Metrics to Characterize,

More information

Unit Testen en embedded software Fout injectie en Software varianten

Unit Testen en embedded software Fout injectie en Software varianten Unit Testen en embedded software Fout injectie en Software varianten Gerard Fianen INDES Integrated Development Solutions BV Agenda Ontwikkelingen in Unit Test & Code Coverage - Software varianten test

More information

Review&Preview 1/23/15, 4:08:07 PM 1. 3rd edition - standardized, and standard library allows programmer to start from a higher level

Review&Preview 1/23/15, 4:08:07 PM 1. 3rd edition - standardized, and standard library allows programmer to start from a higher level Review&Preview 1/23/15, 4:08:07 PM 1 Stroustrup: All four prefaces, Ch. 1. Then read "Tour" chapters 2, 3, 4 and 5 but skip 5.3 Concurrency. Watch for new C++11 usage. H: Using using. Stroustrup Introduction:

More information

Building In Quality. Ten Years Later

Building In Quality. Ten Years Later Building In Quality Ten Years Later 2017 Iberle Consulting Group, Inc. 2 2017 Iberle Consulting Group, Inc. 3 Some software just has to work By Lothar Neumann, Gernsbach [1] - Karlsruhe:Bild:Philippsburg2.jpg,

More information

Introduction to software metics

Introduction to software metics Introduction to software metics Alexander Voigt Version_05_21 Technische Universität Dresden Institut für Kern- und Teilchenphysik /01234/546 78994:!"##$%&'$()*+,%&-,,$)*.$ IKTP Computing Kaffee 12 December

More information

TDD: TEST DRIVEN DRUPAL

TDD: TEST DRIVEN DRUPAL TDD: TEST DRIVEN DRUPAL BIT.LY/TDD-TEST-DRIVEN-DRUPAL DIAMOND SPONSOR PLATINUM SPONSORS GOLD SPONSORS Module and theme developers Want to know more about automated testing Looking to start writing your

More information

www.drupaleurope.org image No photos please Responsible disclosure, cross-project collaboration, and Drupal 8 security xjm Drupal & Technology http://bit.ly/drupal-europe-d8-security 17/3/2018 Drupal +

More information

Agenda. Introduce new members 5 minutes. CISQ status 5 minutes. AEFP work 45 minutes. Assignments and adjourn 5 minutes

Agenda. Introduce new members 5 minutes. CISQ status 5 minutes. AEFP work 45 minutes. Assignments and adjourn 5 minutes AEFP Meeting #4 1 2 Agenda Introduce new members 5 minutes CISQ status 5 minutes AEFP work 45 minutes Assignments and adjourn 5 minutes Status CISQ Quality Characteristic Measures: Reliability, Performance

More information

CS61A Notes 02b Fake Plastic Trees. 2. (cons ((1 a) (2 o)) (3 g)) 3. (list ((1 a) (2 o)) (3 g)) 4. (append ((1 a) (2 o)) (3 g))

CS61A Notes 02b Fake Plastic Trees. 2. (cons ((1 a) (2 o)) (3 g)) 3. (list ((1 a) (2 o)) (3 g)) 4. (append ((1 a) (2 o)) (3 g)) CS61A Notes 02b Fake Plastic Trees Box and Pointer Diagrams QUESTIONS: Evaluate the following, and draw a box-and-pointer diagram for each. (Hint: It may be easier to draw the box-and-pointer diagram first.)

More information

API Design in PHP. David Sklar Software Architect, Ning Inc. DC PHP Conference 2007

API Design in PHP. David Sklar Software Architect, Ning Inc. DC PHP Conference 2007 API Design in PHP David Sklar Software Architect, Ning Inc. david@ninginc.com DC PHP Conference 2007 Ning Platform Ning Platform Ning PHP API provides interface to our platform REST APIs Live since August

More information

Five Things. I wish they had told me before I started programming in PHP. Cal Evans

Five Things. I wish they had told me before I started programming in PHP. Cal Evans Five Things I wish they had told me before I started programming in PHP Cal Evans cal@calevans.com http://blog.calevans.com First Rule of Programming Programming is hard. If it looks easy when I do it,

More information

CSE 504: Compiler Design. Runtime Environments

CSE 504: Compiler Design. Runtime Environments Runtime Environments Pradipta De pradipta.de@sunykorea.ac.kr Current Topic Procedure Abstractions Mechanisms to manage procedures and procedure calls from compiler s perspective Runtime Environment Choices

More information

Computer-Aided Reengineering Environment. User Guide. Version August

Computer-Aided Reengineering Environment. User Guide. Version August CARE Computer-Aided Reengineering Environment User Guide Version 2.0.2 August 2004 http://www.atxsoftware.com CARE Users Guide Pág. 2 de 46 1. INTRODUCTION... 6 2. INSTALLATION... 7 SETUP... 7 CONFIGURATION...

More information

Classification of Procedurally Generated Textures

Classification of Procedurally Generated Textures Classification of Procedurally Generated Textures Emily Ye, Jason Rogers December 14, 2013 1 Introduction Textures are essential assets for 3D rendering, but they require a significant amount time and

More information

COP5621 Exam 4 - Spring 2005

COP5621 Exam 4 - Spring 2005 COP5621 Exam 4 - Spring 2005 Name: (Please print) Put the answers on these sheets. Use additional sheets when necessary. Show how you derived your answer when applicable (this is required for full credit

More information

METRIC ATTITUDE PLUG-IN FOR ECLIPSE USER GUIDE

METRIC ATTITUDE PLUG-IN FOR ECLIPSE USER GUIDE METRIC ATTITUDE PLUG-IN FOR ECLIPSE USER GUIDE Metric Attitude Pag. 0 CONTENTS CONTENTS... 1 INTRODUCTION... 2 ECLIPSE... 2 1. INSTALLING ECLIPS FOR WINDOWS SYSTEM... 3 2. INSTALLING METRIC ATTITUDE...

More information

Search-Based Software Testing & Test Data Generation for a Dynamic Programming Language

Search-Based Software Testing & Test Data Generation for a Dynamic Programming Language Search-Based Software Testing & Test Data Generation for a Dynamic Programming Language Stefan Mairhofer, Robert Feldt & Richard Torkar 14th of July 2011, GECCO, Dublin SBST for Complex Test Data & DynLang

More information

By V-cubed Solutions, Inc. Page1. All rights reserved by V-cubed Solutions, Inc.

By V-cubed Solutions, Inc.   Page1. All rights reserved by V-cubed Solutions, Inc. By V-cubed Solutions, Inc. Page1 Purpose of Document This document will demonstrate the efficacy of CODESCROLL CODE INSPECTOR, CONTROLLER TESTER, and QUALITYSCROLL COVER, which has been developed by V-cubed

More information

Measuring software size

Measuring software size Measuring software size a question to start with have you ever written a large program? if so how did you know it was large? 2 outline ideas and problems associated with measuring software size assessing

More information

Remote Entities: Past, Present & Future

Remote Entities: Past, Present & Future BADCamp, October 24th 2015 Remote Entities: Past, Present & Future Dave Bailey - steel-track Colan Schwartz - colan Licensed under Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) About Dave Drupal

More information

Getting Started with Code Coverage/Eclipse

Getting Started with Code Coverage/Eclipse Getting Started with Code Coverage/Eclipse Code Coverage/Eclipse is the modernized GUI for Compuware s Xpediter/Code Coverage product. With it, users can create reports detailing testing efficiency and

More information

WHY THE WORLD S LEADING.NET DEVELOPMENT TEAMS RELY ON CODE COVERAGE AND WHAT IT MEANS TO YOUR TEAM CODE COVERAGE FOR THE TEAM

WHY THE WORLD S LEADING.NET DEVELOPMENT TEAMS RELY ON CODE COVERAGE AND WHAT IT MEANS TO YOUR TEAM CODE COVERAGE FOR THE TEAM CODE COAGE FOR THE WHY THE WORLD S LEADING.NET S RELY ON CODE COAGE AND WHAT IT MEANS TO YOUR MISSION CRITICAL.NET CODE Quality code is a team effort Throughout the planning, development and testing process,

More information

Managed Make Project File Error Code Composer

Managed Make Project File Error Code Composer Managed Make Project File Error Code Composer Also, I checked to make sure that in Project Properties, the TivaWare installation Using the imported project simply called 'Project', I managed to get the

More information

Company Overview. Company based in the heart of Silicon Valley. Sources best talent around the world in order to deliver highest quality product.

Company Overview. Company based in the heart of Silicon Valley. Sources best talent around the world in order to deliver highest quality product. Game Development UE Company Overview Company based in the heart of Silicon Valley Sources best talent around the world in order to deliver highest quality product. Ensures projects are delivered in the

More information

Introduction to Software Engineering

Introduction to Software Engineering Introduction to Software Engineering (CS350) Lecture 17 Jongmoon Baik Testing Conventional Applications 2 Testability Operability it operates cleanly Observability the results of each test case are readily

More information

Die drei Dimensionen des Testens. Sebastian Bergmann 4. Juli 2015

Die drei Dimensionen des Testens. Sebastian Bergmann 4. Juli 2015 Die drei Dimensionen des Testens Sebastian Bergmann 4. Juli 2015 Sebastian Bergmann Hilft Teams, erfolgreich die richtige Software zu entwickeln. sharing experience "I'll take your brain to another dimension

More information

Chapter 9. Software Testing

Chapter 9. Software Testing Chapter 9. Software Testing Table of Contents Objectives... 1 Introduction to software testing... 1 The testers... 2 The developers... 2 An independent testing team... 2 The customer... 2 Principles of

More information

CERT C++ COMPLIANCE ENFORCEMENT

CERT C++ COMPLIANCE ENFORCEMENT CERT C++ COMPLIANCE ENFORCEMENT AUTOMATED SOURCE CODE ANALYSIS TO MAINTAIN COMPLIANCE SIMPLIFY AND STREAMLINE CERT C++ COMPLIANCE The CERT C++ compliance module reports on dataflow problems, software defects,

More information

CS350: Data Structures B-Trees

CS350: Data Structures B-Trees B-Trees James Moscola Department of Engineering & Computer Science York College of Pennsylvania James Moscola Introduction All of the data structures that we ve looked at thus far have been memory-based

More information

Feasibility of Testing to Code. Feasibility of Testing to Code. Feasibility of Testing to Code. Feasibility of Testing to Code (contd)

Feasibility of Testing to Code. Feasibility of Testing to Code. Feasibility of Testing to Code. Feasibility of Testing to Code (contd) Feasibility of Testing to Code (contd) Feasibility of Testing to Code (contd) An incorrect code fragment for determining if three integers are equal, together with two test cases Flowchart has over 10

More information

Software Design Fundamentals. CSCE Lecture 11-09/27/2016

Software Design Fundamentals. CSCE Lecture 11-09/27/2016 Software Design Fundamentals CSCE 740 - Lecture 11-09/27/2016 Today s Goals Define design Introduce the design process Overview of design criteria What results in a good design? Gregory Gay CSCE 740 -

More information

FS Future Series Quick Start Guide

FS Future Series Quick Start Guide FS Future Series Quick Start Guide Please read the following instructions for installation and activation of your Visualizer 3D software! 1. License agreement and limited warranty Read carefully all terms

More information

TRIO-TECH SOFTWARE CONTENTS

TRIO-TECH SOFTWARE CONTENTS 1 TRIO-TECH SOFTWARE CONTENTS Main VI... 2 1.1 Overview... 2 1.2 Temperature Collection... 2 1.3 Using the Graph... 3 1.4 Chuck Power... 3 Settings... 3 2.1 Set Ambient Temperature... 3 2.2 Controller

More information

HW/SW Codesign. WCET Analysis

HW/SW Codesign. WCET Analysis HW/SW Codesign WCET Analysis 29 November 2017 Andres Gomez gomeza@tik.ee.ethz.ch 1 Outline Today s exercise is one long question with several parts: Basic blocks of a program Static value analysis WCET

More information

Predicting Mutation Score Using Source Code and Test Suite Metrics

Predicting Mutation Score Using Source Code and Test Suite Metrics Predicting Mutation Score Using Source Code and Test Suite Metrics RAISE 2012 Kevin Jalbert and Jeremy S. Bradbury {kevin.jalbert,jeremy.bradbury}@uoit.ca Software Quality Research Group (sqrg.ca) University

More information

Course 55197A: Microsoft SharePoint Server 2016 for the Site Owner/Power User

Course 55197A: Microsoft SharePoint Server 2016 for the Site Owner/Power User Skip to main content Course 55197A: Microsoft SharePoint Server 2016 for the Site Owner/Power User - Course details Course Outline Module 1: The Role of the Site Owner This module provides an introduction

More information

Evolutionary Decision Trees and Software Metrics for Module Defects Identification

Evolutionary Decision Trees and Software Metrics for Module Defects Identification World Academy of Science, Engineering and Technology 38 008 Evolutionary Decision Trees and Software Metrics for Module Defects Identification Monica Chiş Abstract Software metric is a measure of some

More information

Wama Software Portfolio

Wama Software Portfolio M : +91 99133 24140 Skype: wsdeveloper E: wama.sompura@wamasoftware.com W: www.wamasoftware.com Wama Software Portfolio We are team of developers have 7+ years of experience. PHP and its frameworks like

More information

ActiveNET. #202, Manjeera Plaza, Opp: Aditya Park Inn, Ameerpet HYD wwww.activenetinformatics.

ActiveNET. #202, Manjeera Plaza, Opp: Aditya Park Inn, Ameerpet HYD wwww.activenetinformatics. ActiveNET #202, Manjeera Plaza, Opp: Aditya Park Inn, Ameerpet HYD-500018 98 48 111 2 88 activesurya@gmail.com wwww.activenetinformatics.com PHP Hypertext Pre-processor Developed by Rasmus Lerdorf in 1994.

More information

EmpAnADa Project. Christian Lange. June 4 th, Eindhoven University of Technology, The Netherlands.

EmpAnADa Project. Christian Lange. June 4 th, Eindhoven University of Technology, The Netherlands. EmpAnADa Project C.F.J.Lange@tue.nl June 4 th, 2004 Eindhoven University of Technology, The Netherlands Outline EmpAnADa introduction Part I Completeness and consistency in detail Part II Background UML

More information

Chapter 9 Quality and Change Management

Chapter 9 Quality and Change Management MACIASZEK, L.A. (2007): Requirements Analysis and System Design, 3 rd ed. Addison Wesley, Harlow England ISBN 978-0-321-44036-5 Chapter 9 Quality and Change Management Pearson Education Limited 2007 Topics

More information

Scripting Tutorial - Lesson 9: Graphical Shape Numbers

Scripting Tutorial - Lesson 9: Graphical Shape Numbers Home TI-Nspire Authoring TI-Nspire Scripting HQ Scripting Tutorial - Lesson 9 Scripting Tutorial - Lesson 9: Graphical Shape Numbers Download supporting files for this tutorial Texas Instruments TI-Nspire

More information

Get in Touch Module 1 - Core PHP XHTML

Get in Touch Module 1 - Core PHP XHTML PHP/MYSQL (Basic + Advanced) Web Technologies Module 1 - Core PHP XHTML What is HTML? Use of HTML. Difference between HTML, XHTML and DHTML. Basic HTML tags. Creating Forms with HTML. Understanding Web

More information

INF 212 ANALYSIS OF PROG. LANGS ELEMENTS OF IMPERATIVE PROGRAMMING STYLE. Instructors: Crista Lopes Copyright Instructors.

INF 212 ANALYSIS OF PROG. LANGS ELEMENTS OF IMPERATIVE PROGRAMMING STYLE. Instructors: Crista Lopes Copyright Instructors. INF 212 ANALYSIS OF PROG. LANGS ELEMENTS OF IMPERATIVE PROGRAMMING STYLE Instructors: Crista Lopes Copyright Instructors. Objectives Level up on things that you may already know Machine model of imperative

More information

Bridge Permissions. Best Practices

Bridge Permissions. Best Practices The Bridge roles and permissions feature allows for over 100 permission line items to be customized for any set of users. Bridge has five default user roles: Learner, Author, Admin, IT Admin, and Account

More information

Pearson Education 2007 Chapter 9 (RASD 3/e)

Pearson Education 2007 Chapter 9 (RASD 3/e) MACIASZEK, L.A. (2007): Requirements Analysis and System Design, 3 rd ed. Addison Wesley, Harlow England ISBN 978-0-321-44036-5 Chapter 9 Quality and Change Management Pearson Education Limited 2007 Topics

More information

package YourModule; require = = qw(munge frobnicate); # symbols to export on request

package YourModule; require = = qw(munge frobnicate); # symbols to export on request NAME SYNOPSIS Exporter - Implements default import method for modules In module YourModule.pm: require Exporter; @EXPORT_OK = qw(munge frobnicate); # symbols to export on request or use Exporter 'import';

More information

Zend Studio has the reputation of being one of the most mature and powerful

Zend Studio has the reputation of being one of the most mature and powerful Exploring the developer environment RAPID DEVELOPMENT PHP experts consider Zend Studio the most mature and feature-rich IDE for PHP. The latest version offers enhanced database manipulation and other improvements.

More information

Scaffold Documentation

Scaffold Documentation Scaffold Documentation Release 1.1 Alin Eugen Deac Oct 29, 2017 Contents 1 Contents 3 1.1 How to Install.............................................. 3 1.2 Install Scaffolds.............................................

More information

Application Discovery and Enterprise Metadata Repository solution Questions PRIEVIEW COPY ONLY 1-1

Application Discovery and Enterprise Metadata Repository solution Questions PRIEVIEW COPY ONLY 1-1 Application Discovery and Enterprise Metadata Repository solution Questions 1-1 Table of Contents SECTION 1 ENTERPRISE METADATA ENVIRONMENT...1-1 1.1 TECHNICAL ENVIRONMENT...1-1 1.2 METADATA CAPTURE...1-1

More information

CSCI2100B Data Structures Trees

CSCI2100B Data Structures Trees CSCI2100B Data Structures Trees Irwin King king@cse.cuhk.edu.hk http://www.cse.cuhk.edu.hk/~king Department of Computer Science & Engineering The Chinese University of Hong Kong Introduction General Tree

More information

Understanding Design Annotation. Contents

Understanding Design Annotation. Contents Understanding Design Annotation Contents Annotation defined Annotation in Altium Designer Which Annotation Tool? Schematic Level Annotation Order of Processing Schematic Sheets to Annotate Annotation Scope

More information

Software Testing Prof. Rajib Mall Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur. Lecture 13 Path Testing

Software Testing Prof. Rajib Mall Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur. Lecture 13 Path Testing Software Testing Prof. Rajib Mall Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture 13 Path Testing Welcome to this session and we will discuss about path

More information

API Design in PHP. David Sklar Software Architect, Ning Inc. Zend Conference 2007

API Design in PHP. David Sklar Software Architect, Ning Inc. Zend Conference 2007 API Design in PHP David Sklar Software Architect, Ning Inc. david@ninginc.com Zend Conference 2007 Ning Platform Ning Platform Ning PHP API provides interface to our platform REST APIs Live since August

More information

CS 350 : Data Structures B-Trees

CS 350 : Data Structures B-Trees CS 350 : Data Structures B-Trees David Babcock (courtesy of James Moscola) Department of Physical Sciences York College of Pennsylvania James Moscola Introduction All of the data structures that we ve

More information

Network+ Guide to Networks, Fourth Edition. Chapter 8 Network Operating Systems and Windows Server 2003-Based Networking

Network+ Guide to Networks, Fourth Edition. Chapter 8 Network Operating Systems and Windows Server 2003-Based Networking Network+ Guide to Networks, Fourth Edition Chapter 8 Network Operating Systems and Windows Server 2003-Based Networking Objectives Discuss the functions and features of a network operating system Define

More information

/633 Introduction to Algorithms Lecturer: Michael Dinitz Topic: Priority Queues / Heaps Date: 9/27/17

/633 Introduction to Algorithms Lecturer: Michael Dinitz Topic: Priority Queues / Heaps Date: 9/27/17 01.433/33 Introduction to Algorithms Lecturer: Michael Dinitz Topic: Priority Queues / Heaps Date: 9/2/1.1 Introduction In this lecture we ll talk about a useful abstraction, priority queues, which are

More information

OrgChart Now WordPress Org Chart Links. OfficeWork Software LLC

OrgChart Now WordPress Org Chart Links. OfficeWork Software LLC OrgChart Now WordPress Org Chart Links OfficeWork Software LLC Version 1.0.0 December 4, 2015 Introduction OrgChart Now charts can be embedded directly into your WordPress Site. This document details how

More information

Python Implementation Strategies. Jeremy Hylton Python / Google

Python Implementation Strategies. Jeremy Hylton Python / Google Python Implementation Strategies Jeremy Hylton Python / Google Python language basics High-level language Untyped but safe First-class functions, classes, objects, &c. Garbage collected Simple module system

More information

Formal Methods and their role in Software and System Development. Riccardo Sisto, Politecnico di Torino

Formal Methods and their role in Software and System Development. Riccardo Sisto, Politecnico di Torino Formal Methods and their role in Software and System Development Riccardo Sisto, Politecnico di Torino What are Formal Methods? Rigorous (mathematical) methods for modelling and analysing (computer-based)

More information

Evaluation Plan for Fearless Fitness Center Website

Evaluation Plan for Fearless Fitness Center Website Evaluation Plan for Fearless Fitness Center Website A three-step process will be used to prepare the Fearless Fitness website for use. First, at the outset of the project, Back-of-the-Envelope Task Analysis

More information

Securing the IBM Cognos 8 BI Environment

Securing the IBM Cognos 8 BI Environment Proven Practice Securing the IBM Cognos 8 BI Environment Product(s): IBM Cognos 8 BI Area of Interest: Security 2 Copyright Copyright 2008 Cognos ULC (formerly Cognos Incorporated). Cognos ULC is an IBM

More information

Programming Assignment IV

Programming Assignment IV Programming Assignment IV 1 Introduction In this assignment, you will implement the static semantics of Cool. You will use the abstract syntax trees (AST) built by the parser to check that a program conforms

More information

Software Testing. Lecturer: Sebastian Coope Ashton Building, Room G.18

Software Testing. Lecturer: Sebastian Coope Ashton Building, Room G.18 Lecturer: Sebastian Coope Ashton Building, Room G.18 E-mail: coopes@liverpool.ac.uk COMP 201 web-page: http://www.csc.liv.ac.uk/~coopes/comp201 Software Testing 1 Defect Testing Defect testing involves

More information

MEASURING AND QUANTIFYING WEB APPLICATION DESIGN

MEASURING AND QUANTIFYING WEB APPLICATION DESIGN University of Montana ScholarWorks at University of Montana Graduate Student Theses, Dissertations, & Professional Papers Graduate School 2012 MEASURING AND QUANTIFYING WEB APPLICATION DESIGN Craig A.

More information

XDebug Your Code Tips and Tricks for Writing Bug-Free High Impact Code. Brandon Savage, Applied Security, Inc

XDebug Your Code Tips and Tricks for Writing Bug-Free High Impact Code. Brandon Savage, Applied Security, Inc XDebug Your Code Tips and Tricks for Writing Bug-Free High Impact Code Brandon Savage, Applied Security, Inc Who Am I? PHP Developer for Applied Security in Reston, VA Former lead developer for The Pickens

More information

Programming in Lua Getting Started

Programming in Lua Getting Started Programming in Lua Getting Started Fabio Mascarenhas http://www.dcc.ufrj.br/~fabiom/lua Getting Lua The best way to get Lua for a beginner is through your operating system s package manager Make sure you

More information

Web development with PHP. Kore Nordmann, Tobias Schlitt, Jakob Westhoff Dortmund

Web development with PHP. Kore Nordmann, Tobias Schlitt, Jakob Westhoff Dortmund Web development with PHP Kore Nordmann, Tobias Schlitt, Jakob Westhoff Dortmund 29.06.09 Speaker Jakob Westhoff Kore Nordmann Tobias Schlitt Active in various

More information

Object Oriented Metrics. Impact on Software Quality

Object Oriented Metrics. Impact on Software Quality Object Oriented Metrics Impact on Software Quality Classic metrics Lines Of Code Function points Complexity Code coverage - testing Maintainability Index discussed later Lines of Code KLOC = 1000 Lines

More information

SYMFONY2 WEB FRAMEWORK

SYMFONY2 WEB FRAMEWORK 1 5828 Foundations of Software Engineering Spring 2012 SYMFONY2 WEB FRAMEWORK By Mazin Hakeem Khaled Alanezi 2 Agenda Introduction What is a Framework? Why Use a Framework? What is Symfony2? Symfony2 from

More information

goto considered not particularly harmful: defect analysis in a major numerical library"

goto considered not particularly harmful: defect analysis in a major numerical library Title Slide Kingston University CISM Faculty Research Seminar................................................................................... goto considered not particularly harmful: defect analysis

More information

Technical Debt in Large Systems: Understanding the cost of software complexity

Technical Debt in Large Systems: Understanding the cost of software complexity Technical Debt in Large Systems: Understanding the cost of software complexity Dan Sturtevant, Ph.D. dan.sturtevant@sloan.mit.edu INCOSE Webinar June th, 2013 With thanks to: Alan MacCormack, Steven Eppinger,

More information

ComPARE: A Generic Quality Assessment Environment for Component-Based Software Systems

ComPARE: A Generic Quality Assessment Environment for Component-Based Software Systems ComPARE: A Generic Quality Assessment Environment for Component-Based Software Systems Xia Cai, Michael R. Lyu, Kam-Fai Wong, Mabel Wong Dept. of Computer Science and Engineering Center of Innovation and

More information

Scope. CSC 4181 Compiler Construction. Static Scope. Static Scope Rules. Closest Nested Scope Rule

Scope. CSC 4181 Compiler Construction. Static Scope. Static Scope Rules. Closest Nested Scope Rule Scope CSC 4181 Compiler Construction Scope and Symbol Table A scope is a textual region of the program in which a (name-to-object) binding is active. There are two types of scope: Static scope Dynamic

More information

What and Why? Reverse Engineering. I. First Contact: the Forces. The Reengineering Life-Cycle

What and Why? Reverse Engineering. I. First Contact: the Forces. The Reengineering Life-Cycle What and Why? Reverse Engineering Definition Reverse Engineering is the process of analyzing a subject system! to identify the system s components and their interrelationships and! create representations

More information

Hacking by Numbers OWASP. The OWASP Foundation

Hacking by Numbers OWASP. The OWASP Foundation Hacking by Numbers OWASP Tom Brennan WhiteHat Security Inc. tom.brennan@whitehatsec.com 973-506-9303 skype: jinxpuppy Copyright The OWASP Foundation Permission is granted to copy, distribute and/or modify

More information

Testing Methods: White Box Testing II

Testing Methods: White Box Testing II Testing Methods: White Box Testing II Outline Today we continue our look at white box testing with more code coverage methods, and a data coverage method We ll look at : - code coverage testing - decision

More information

Project Development Steps using RP framework

Project Development Steps using RP framework RP Framework RP Web Application Framework is a proprietary web application development framework in PHP. It is a MVC (Model View Controller) framework based on Strut (Apache Group), the renowned MVC framework

More information

Introduction To Software Development CSC Spring 2019 Howard Rosenthal

Introduction To Software Development CSC Spring 2019 Howard Rosenthal Introduction To Software Development CSC 295-01 Spring 2019 Howard Rosenthal Course References Materials for this course have utilized materials in the following documents. Additional materials taken from

More information

Analysis of Various Software Metrics Used To Detect Bad Smells

Analysis of Various Software Metrics Used To Detect Bad Smells The International Journal Of Engineering And Science (IJES) Volume 5 Issue 6 Pages PP -14-20 2016 ISSN (e): 2319 1813 ISSN (p): 2319 1805 Analysis of Various Software Metrics Used To Detect Bad Smells

More information

Absent: Lecture 3 Page 1. def foo(a, b): a = 5 b[0] = 99

Absent: Lecture 3 Page 1. def foo(a, b): a = 5 b[0] = 99 1. A function is a procedural abstract (a named body of code to perform some action and return a resulting value). The syntax of a function definition is: def functionname([parameter [, parameter]*]):

More information

Kaltura Video Plugin for WordPress Quick Start Guide. Version: 2.5

Kaltura Video Plugin for WordPress Quick Start Guide. Version: 2.5 Kaltura Video Plugin for WordPress Quick Start Guide Version: 2.5 Kaltura Business Headquarters 5 Union Square West, Suite 602, New York, NY, 10003, USA Tel.: +1 800 871 5224 Copyright 2013 Kaltura Inc.

More information

SOFTWARE PRODUCT QUALITY SOFTWARE ENGINEERING SOFTWARE QUALITY SOFTWARE QUALITIES - PRODUCT AND PROCESS SOFTWARE QUALITY - QUALITY COMPONENTS

SOFTWARE PRODUCT QUALITY SOFTWARE ENGINEERING SOFTWARE QUALITY SOFTWARE QUALITIES - PRODUCT AND PROCESS SOFTWARE QUALITY - QUALITY COMPONENTS SOFTWARE PRODUCT QUALITY Today: - Software quality - Quality Components - Good software properties SOFTWARE ENGINEERING SOFTWARE QUALITY Today we talk about quality - but what is quality? Suitable Fulfills

More information