Software Metrics Analysis Group 2. Description of the program used for the analysis Understand 2.0 is the tool we have chosen for the analysis.

Slides:



Advertisements
Similar presentations
Chapter 14 Software Testing Techniques - Testing fundamentals - White-box testing - Black-box testing - Object-oriented testing methods (Source: Pressman,
Advertisements

Path Analysis Why path analysis for test case design?
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
Metrics Project and Process Metrics. Why do we measure? Assessing project status Allows us to track risks Before they go critical Adjust workflow See.
VBA Modules, Functions, Variables, and Constants
Complexity Analysis (Part I)
March R. McFadyen1 Software Metrics Software metrics help evaluate development and testing efforts needed, understandability, maintainability.
IMSE Week 18 White Box or Structural Testing Reading:Sommerville (4th edition) ch 22 orPressman (4th edition) ch 16.
Copyright © 1998 Wanda Kunkle Computer Organization 1 Chapter 2.1 Introduction.
Software Metrics Testing MINIX 3. Introduction What is Metrics Analysis? Metrics Analysis is a field of Static Analysis. Show us structural attributes.
Testing an individual module
Computer Science: A Structured Programming Approach Using C1 Objectives ❏ To understand the structure of a C-language program. ❏ To write your first C.
The Program Design Phases
Adding Automated Functionality to Office Applications.
Testing Dr. Andrew Wallace PhD BEng(hons) EurIng
Cyclomatic Complexity Dan Fleck Fall 2009 Dan Fleck Fall 2009.
Introduction to High-Level Language Programming
University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec22 1 Lecture 22: Software Measurement Basics of software measurement.
CIS Computer Programming Logic
Data Structures & AlgorithmsIT 0501 Algorithm Analysis I.
Chapter 6 : Software Metrics
Flow of Control. 2 Control Structures Control structure: An instruction that determines the order in which other instructions in a program are executed.
Goals of Course Introduction to the programming language C Learn how to program Learn ‘good’ programming practices.
Lecture Set 5 Control Structures Part D - Repetition with Loops.
BTEC Unit 06 – Lesson 08 Principals of Software Design Mr C Johnston ICT Teacher
Software Engineering 2003 Jyrki Nummenmaa 1 SOFTWARE PRODUCT QUALITY Today: - Software quality - Quality Components - ”Good” software properties.
Agenda Introduction Overview of White-box testing Basis path testing
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Lecture 23 Instructor Paulo Alencar.
Extended Prelude to Programming Concepts & Design, 3/e by Stewart Venit and Elizabeth Drake Chapter 2: Flowcharts.
/* Documentations */ Pre process / Linking statements Global declarations; main( ) { Local Declarations; Program statements / Executable statements; }
OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties.
Sharda University P. K. Mishra (Asst.Prof) Department of Computer Science & Technology Subject Name: Programming Using C Sub Code: CSE-106 Programming.
INTRUDUCTION TO SOFTWARE TESTING TECHNIQUES BY PRADEEP I.
Property of Jack Wilson, Cerritos College1 CIS Computer Programming Logic Programming Concepts Overview prepared by Jack Wilson Cerritos College.
Programming at a high level. Developing a Computer Program Programmer  Writes program in source code (VB or other language) Compiler  Converts source.
Software Metrics Cmpe 550 Fall Software Metrics.
The Software Development Process
Software Engineering 2004 Jyrki Nummenmaa 1 SOFTWARE PRODUCT QUALITY Today: - Software quality - Quality Components - ”Good” software properties.
Software Engineering – University of Tampere, CS DepartmentJyrki Nummenmaa SOFTWARE PRODUCT QUALITY Today: - Software quality -
General Information & Proc.c General Information & Proc.c Juan Luis Pardo González Javier Lara Valtueña.
White Box Testing Arun Lakhotia University of Southwestern Louisiana P.O. Box Lafayette, LA 70504, USA
Software Metric Tools Joel Keyser, Jacob Napp, Carey Norslien, Stephen Owings, Tristan Paynter.
Agent program is the one part(class)of Othello program. How many test cases do you have to test? Reversi [Othello]
Controlling Computers with Programs When you create a computer program you are creating a set of instructions that tell the computer exactly and completely.
White Box Testing by : Andika Bayu H.
Software Design Derived from Dr. Fawcett’s slides CSE784 – Software Studio Fall 2009.
Microsoft® Small Basic Conditions and Loops Estimated time to complete this lesson: 2 hours.
Csontos Péter, Porkoláb Zoltán Eötvös Loránd Tudományegyetem, Budapest ECOOP 2001 On the complexity of exception handling.
Structure Based Test Design
INTRO. To I.T Razan N. AlShihabi
Complexity Analysis (Part I)
Topics to be covered Instruction Execution Characteristics
Software Metrics 1.
Cyclomatic complexity
PROGRAM CONTROL STRUCTURE
Chapter 5 Decisions. Chapter 5 Decisions ssential uestion: How are Boolean expressions or operators used in everyday life?
Chapter 4: Decision Structures and Boolean Logic
Pseudo-code Komate AMPHAWAN.
Introduction to the C Language
Control Structures (Structured Programming) for controlling the procedural aspects of programming CS1110 – Kaminski.
Unit# 9: Computer Program Development
Algorithm An algorithm is a finite set of steps required to solve a problem. An algorithm must have following properties: Input: An algorithm must have.
Flow of Control.
Control Structures (Structured Programming) for controlling the procedural aspects of programming CS1110 – Kaminski.
Basic Concepts of Algorithm
Complexity Analysis (Part I)
Lesson 3. Controlling program flow. Loops. Methods. Arrays.
Complexity Analysis (Part I)
Introduction To Software Development Environment
Presentation transcript:

Software Metrics Analysis Group 2

Description of the program used for the analysis Understand 2.0 is the tool we have chosen for the analysis

Description of the program used for the analysis semantic change analysis advanced metrics multi-scenario source code maintenance estimation combined language analysis custom architecture creation creation of code analysis snapshots Understand helps programmers to quickly comprehend, measure, maintain and document their source code. For many, especially those working on large, multiple MSLOC projects, it has become an indispensable tool

Description of the program used for the analysis

Process manager code analysis We have chosen the process manager files to obtain some general metrics about this part of the MINIX 3 source code,according to the other projects.

Program Size Metrics CountDeclFile (Number of files) > 13 CountDeclFunction (Number of functions) > 76 CountLine (Number of all lines) > CountLineBlank (Number of blank lines) > 425 CountLineCode (Number of source code lines) >1.987 CountLineComment (Number of lines of comments) -->1.335 CountLineInactive (number of inactive from the view of the preprocessor) > 72 CountStmtDecl (Number of declarative statements) -->301 CountStmtExe (Number of executable statements) -->1.317 RatioCommentToCode (Ratio of number of comment lines to number of code lines) > 0,67

Analysis of main.c We also took some particular metrics of the file main.c like cyclomatic complexity to have a deeper idea of the source code properties. This file contains the main program of the process manager and some related procedures. When MINIX starts up, the kernel runs for a little while, initializing itself and its tasks, and then it runs PM and FS. Both PM and FS initialize themselves as far as they can. PM asks the kernel for all free memory and starts serving requests.

About the cyclomatic complexity. The cyclomatic complexity of a section of source code is the count of the number of linearly independent paths through the source code. For instance, if the source code contained no decision points such as IF statements or FOR loops, the complexity would be 1, since there is only a single path through the code. If the code had a single IF statement containing a single condition there would be two paths through the code, one path where the IF statement is evaluated as TRUE and one path where the IF statement is evaluated as FALSE.

Results of metrics on main.c AvgCyclomatic > 6 (Average cyclomatic complexity for all nested functions or methods) MaxCyclomatic > 15 (Maximum cyclomatic complexity of all nested functions or methods) SumCyclomatic > 43 (Sum of cyclomatic complexity of all nested functions or methods)

Summarizing the results According to the table we could say that this file is part of a simple program because its average cyclomatic complexity of 6. It has a ratio comment to code of 67% that makes the code easier to understand.