1
0
UAHCode/CPE455/lab08/mode-s_15.met

512 lines
25 KiB
Plaintext
Raw Normal View History

2022-08-28 21:12:16 +00:00
********************************************************************
****** ******
****** LDRA Testbed (R) Quality Review Report ******
****** ******
****** File : /home/student/anw0044/CPE455/lab08/mode-s.c ******
****** ******
********************************************************************
Report Production
-----------------
* C/C++ LDRA Testbed Version: 9.8.2
* Report Produced On: Tue Mar 29 2022 at 10:19:30
* Metrics Data File: /apps/ldra2019/ldra_toolsuite/metpen.dat
Report Configuration
--------------------
* Report Format: By Metric
* Procedures Reported: All Procedures
* Show Metric Passes: Yes
* Show Metric Fails: Yes
* Reporting Scope: Source file and associated header
Analysis Phases Completed
-------------------------
* Static: Yes
* Complexity: Yes
* Dataflow: Yes
--------------------------------------------------------------------------------
Contents
--------
Metrics
* List of File and Procedure Metrics
Procedure Table
Results
* Results for each Metric
List of Metrics to be Displayed
-------------------------------
Reformatted Code Information for File
-------------------------------------
* Total reformatted Lines, Total comments in ref. Code, Executable ref. Lines, Non-executable ref. Lines
Number of Procedures, Total source Lines, Expansion Factor.
Procedure Information
---------------------
* Executable reformatted Lines, Number of Basic Blocks, Average Length of Basic Blocks, Procedure Entry Points
Procedure Exit Points.
Comments Associated with Procedures (% of total)
------------------------------------------------
* Total Comments, Comments in Headers, Comments in Declarations, Comments in Executable Code
Blank Lines.
Ratio of Comments to Executable lines (%)
-----------------------------------------
* Executable reformatted Lines, Total Comments/Exe. Lines, Header Comments/Exe. Lines, Declaration Comments/Exe. Lines
Code Comments/Exe. Lines.
Complexity Metrics
------------------
* Knots, Cyclomatic Complexity, Essential Knots, Essential Cyclomatic Complexity
Procedure Structured (SPV).
Halsteads Metrics
-----------------
* Total Operators, Total Operands, Unique Operators, Unique Operands
Vocabulary, Length, Volume.
Loop/Interval Analysis
----------------------
* Number of Loops, Depth of Loop Nesting, Number of Order 1 Intervals, Maximum Interval Nesting
Reducible (Intervals).
LCSAJ and Unreachability
------------------------
* Total LCSAJs, Reachable LCSAJs, Unreachable LCSAJs, Maximum LCSAJ Density
Unreachable Lines, Unreachable Branches.
Dataflow Information
--------------------
* Globals in Procedure, File Fan in, Fan Out.
--------------------------------------------------------------------------------
**************
* *
* mode-s.c *
* *
**************
*****************************************************
* *
* Overall Results - Percentage of metrics passing *
* *
*****************************************************
Total Metrics: 48
Clarity Metrics: 14 (of which 4 are whole file only)
Maintainability Metrics: 11 (of which 7 are whole file only)
Testability Metrics: 15 (of which 7 are whole file only)
===============================================================================================
PROCEDURE ALL METRICS CLARITY MAINTAINABILITY TESTABILITY
===============================================================================================
mode_s_init 85 ######### 70 ######## 75 ######## 88 #########
mode_s_checksum 96 ########## 90 ########## 100 ########### 100 ###########
mode_s_msg_len_by_type 74 ######## 40 ##### 100 ########### 88 #########
fix_single_bit_errors 74 ######## 70 ######## 50 ###### 75 ########
fix_two_bits_errors 74 ######## 80 ######### 25 ### 75 ########
icao_cache_has_addr 81 ######### 50 ###### 100 ########### 100 ###########
add_recently_seen_icao_addr
78 ######## 40 ##### 100 ########### 100 ###########
icao_addr_was_recently_seen
81 ######### 50 ###### 100 ########### 100 ###########
brute_force_ap 89 ######### 90 ########## 100 ########### 88 #########
decode_ac13_field 78 ######## 70 ######## 75 ######## 88 #########
decode_ac12_field 85 ######### 70 ######## 100 ########### 88 #########
mode_s_decode 78 ######## 90 ########## 50 ###### 38 ####
mode_s_compute_magnitude_vector
85 ######### 60 ####### 100 ########### 100 ###########
detect_out_of_phase 81 ######### 60 ####### 100 ########### 88 #########
apply_phase_correction 96 ########## 90 ########## 100 ########### 100 ###########
mode_s_detect 63 ####### 90 ########## 0 38 ####
Total for mode-s.c 89 ######### 100 ########### 82 ######### 80 #########
--------------------------------------------------------------------------------
**************************************************
* *
* File and Procedure Results, Metric by Metric *
* *
**************************************************
Reformatted Code Information for File (mode-s.c)
------------------------------------------------
==============================================================================================================================
FILE TOTAL REF. TOTAL EXECUTABLE NON-EXECUTABLE NUMBER OF TOTAL EXPANSION
LINES COMMENTS REF. LINES REF. LINES PROCEDURES SRC. LINES FACTOR
==============================================================================================================================
Total for mode-s.c 1407 (P) 242 (P) (17%) 918 (P) (65%) 247 (P) (18%) 16 (P) 740 (P) 1.90 (P)
--------------------------------------------------------------------------------
Procedure Information (mode-s.c)
--------------------------------
=================================================================================
PROCEDURE EXECUTABLE BASIC AVE. BLOCK PROCEDURE PROCEDURE
LINES BLOCKS LENGTH ENTRIES EXITS
=================================================================================
mode_s_init 35 (P) 11 (P) 3.18 (P) 1 (P) 1 (P)
mode_s_checksum 27 (P) 10 (P) 2.70 (P) 1 (P) 1 (P)
mode_s_msg_len_by_type 23 (P) 11 (P) 2.09 (P) 1 (P) 3 (F)
fix_single_bit_errors 38 (P) 8 (P) 4.75 (P) 1 (P) 2 (F)
fix_two_bits_errors 49 (P) 12 (P) 4.08 (P) 1 (P) 2 (F)
icao_cache_has_addr 9 (P) 1 (P) 9.00 (F) 1 (P) 1 (P)
add_recently_seen_icao_addr
7 (P) 1 (P) 7.00 (F) 1 (P) 1 (P)
icao_addr_was_recently_seen
14 (P) 4 (P) 3.50 (P) 1 (P) 1 (P)
brute_force_ap 42 (P) 13 (P) 3.23 (P) 1 (P) 2 (F)
decode_ac13_field 25 (P) 8 (P) 3.12 (P) 1 (P) 2 (F)
decode_ac12_field 16 (P) 6 (P) 2.67 (P) 1 (P) 3 (F)
mode_s_decode 285 (F) 69 (F) 4.13 (P) 1 (P) 1 (P)
mode_s_compute_magnitude_vector
28 (P) 9 (P) 3.11 (P) 1 (P) 1 (P)
detect_out_of_phase 39 (P) 13 (P) 3.00 (P) 1 (P) 5 (F)
apply_phase_correction 26 (P) 8 (P) 3.25 (P) 1 (P) 1 (P)
mode_s_detect 255 (F) 90 (F) 2.83 (P) 1 (P) 1 (P)
Total for mode-s.c 918 (P) 274 (P) 3.35 (P) 1 (P) 13 (F)
--------------------------------------------------------------------------------
Comments Associated with Procedures (% of total) (mode-s.c)
-----------------------------------------------------------
======================================================================================================
PROCEDURE TOTAL IN IN IN BLANK
COMMENTS HEADERS DECLARATIONS EXECUTABLE CODE COMMENTS
======================================================================================================
mode_s_init 9 (F) 1 (F) (11%) 0 (P) (0%) 8 (P) (89%) 1 (P)
mode_s_checksum 20 (P) 18 (P) (90%) 0 (P) (0%) 2 (P) (10%) 5 (P)
mode_s_msg_len_by_type 2 (F) 2 (F) (100%) 0 (P) (0%) 0 (F) (0%) 0 (P)
fix_single_bit_errors 6 (F) 3 (F) (50%) 0 (P) (0%) 3 (P) (50%) 0 (P)
fix_two_bits_errors 11 (P) 3 (F) (27%) 0 (P) (0%) 8 (P) (73%) 0 (P)
icao_cache_has_addr 4 (F) 2 (F) (50%) 2 (P) (50%) 0 (F) (0%) 0 (P)
add_recently_seen_icao_addr
3 (F) 3 (F) (100%) 0 (P) (0%) 0 (F) (0%) 0 (P)
icao_addr_was_recently_seen
3 (F) 3 (F) (100%) 0 (P) (0%) 0 (F) (0%) 0 (P)
brute_force_ap 23 (P) 15 (P) (65%) 0 (P) (0%) 8 (P) (35%) 5 (P)
decode_ac13_field 7 (F) 2 (F) (29%) 0 (P) (0%) 5 (P) (71%) 0 (P)
decode_ac12_field 5 (F) 2 (F) (40%) 0 (P) (0%) 3 (P) (60%) 0 (P)
mode_s_decode 51 (P) 2 (F) (4%) 2 (P) (4%) 47 (P) (92%) 4 (P)
mode_s_compute_magnitude_vector
3 (F) 1 (F) (33%) 2 (P) (67%) 0 (F) (0%) 0 (P)
detect_out_of_phase 6 (F) 6 (P) (100%) 0 (P) (0%) 0 (F) (0%) 1 (P)
apply_phase_correction 29 (P) 26 (P) (90%) 0 (P) (0%) 3 (P) (10%) 6 (P)
mode_s_detect 60 (P) 3 (F) (5%) 22 (P) (37%) 35 (P) (58%) 3 (P)
Total for mode-s.c 242 (P) 92 (P) (38%) 28 (P) (12%) 122 (P) (50%) 25 (P)
--------------------------------------------------------------------------------
Ratio of Comments to Executable lines (%) (mode-s.c)
----------------------------------------------------
===================================================================================
PROCEDURE EXECUTABLE TOTAL IN IN IN
LINES COMMENTS(%) HEADERS(%) DECL.(%) CODE(%)
===================================================================================
mode_s_init 35 (P) 26 (P) 3 (P) 0 (F) 23 (P)
mode_s_checksum 27 (P) 74 (P) 67 (P) 0 (F) 7 (P)
mode_s_msg_len_by_type 23 (P) 9 (F) 9 (P) 0 (F) 0 (F)
fix_single_bit_errors 38 (P) 16 (P) 8 (P) 0 (F) 8 (P)
fix_two_bits_errors 49 (P) 22 (P) 6 (P) 0 (F) 16 (P)
icao_cache_has_addr 9 (P) 44 (P) 22 (P) 22 (P) 0 (F)
add_recently_seen_icao_addr
7 (P) 43 (P) 43 (P) 0 (F) 0 (F)
icao_addr_was_recently_seen
14 (P) 21 (P) 21 (P) 0 (F) 0 (F)
brute_force_ap 42 (P) 55 (P) 36 (P) 0 (F) 19 (P)
decode_ac13_field 25 (P) 28 (P) 8 (P) 0 (F) 20 (P)
decode_ac12_field 16 (P) 31 (P) 13 (P) 0 (F) 19 (P)
mode_s_decode 285 (F) 18 (P) 1 (P) 1 (P) 16 (P)
mode_s_compute_magnitude_vector
28 (P) 11 (P) 4 (P) 7 (P) 0 (F)
detect_out_of_phase 39 (P) 15 (P) 15 (P) 0 (F) 0 (F)
apply_phase_correction 26 (P) 112 (P) 100 (P) 0 (F) 12 (P)
mode_s_detect 255 (F) 24 (P) 1 (P) 9 (P) 14 (P)
Total for mode-s.c 918 (P) 26 (P) 10 3 (P) 13 (P)
--------------------------------------------------------------------------------
Complexity Metrics (mode-s.c)
-----------------------------
======================================================================================
PROCEDURE CYCLOMATIC ESSENTIAL ESS. CYCL. STRUCTURED
KNOTS COMPLEXITY KNOTS COMPLEXITY PROC (SPV)
======================================================================================
mode_s_init 8 (F) 4 (P) 0 (P) 1 (P) Yes (P)
mode_s_checksum 5 (P) 4 (P) 0 (P) 1 (P) Yes (P)
mode_s_msg_len_by_type 3 (P) 6 (P) 0 (P) 1 (P) Yes (P)
fix_single_bit_errors 7 (F) 3 (P) 4 (F) 3 (P) No (F)
fix_two_bits_errors 13 (F) 4 (P) 7 (F) 4 (F) No (F)
icao_cache_has_addr 0 (P) 1 (P) 0 (P) 1 (P) Yes (P)
add_recently_seen_icao_addr
0 (P) 1 (P) 0 (P) 1 (P) Yes (P)
icao_addr_was_recently_seen
0 (P) 3 (P) 0 (P) 1 (P) Yes (P)
brute_force_ap 2 (P) 9 (P) 2 (P) 3 (P) No (F)
decode_ac13_field 4 (P) 3 (P) 3 (F) 3 (P) No (F)
decode_ac12_field 3 (P) 2 (P) 0 (P) 1 (P) Yes (P)
mode_s_decode 7 (F) 34 (F) 0 (P) 1 (P) Yes (P)
mode_s_compute_magnitude_vector
4 (P) 4 (P) 0 (P) 1 (P) Yes (P)
detect_out_of_phase 4 (P) 5 (P) 0 (P) 1 (P) Yes (P)
apply_phase_correction 5 (P) 3 (P) 0 (P) 1 (P) Yes (P)
mode_s_detect 36 (F) 42 (F) 13 (F) 6 (F) No (F)
Total for mode-s.c 101 (F) 113 (P) 29 (P) 15 (P) No (F)
--------------------------------------------------------------------------------
Halsteads Metrics (mode-s.c)
----------------------------
============================================================================================================
FILE TOTAL TOTAL UNIQUE UNIQUE
OPERATORS OPERANDS OPERATORS OPERANDS VOCABULARY LENGTH VOLUME
============================================================================================================
Total for mode-s.c 952 (F) 908 (P) 33 (P) 174 (P) 207 (P) 1860 (P) 14309 (P)
--------------------------------------------------------------------------------
Loop/Interval Analysis (mode-s.c)
---------------------------------
=======================================================================================
PROCEDURE NUMBER OF NESTING ORDER 1 MAX. INT. REDUCIBLE
LOOPS DEPTH INTERVALS NESTING (INTERVALS)
=======================================================================================
mode_s_init 2 (P) 2 (P) 4 (P) 3 (P) Yes (P)
mode_s_checksum 1 (P) 1 (P) 2 (P) 2 (P) Yes (P)
mode_s_msg_len_by_type 0 (P) 0 (P) 1 (P) 1 (P) Yes (P)
fix_single_bit_errors 1 (P) 1 (P) 2 (P) 2 (P) Yes (P)
fix_two_bits_errors 2 (P) 2 (P) 4 (P) 3 (P) Yes (P)
icao_cache_has_addr 0 (P) 0 (P) 1 (P) 1 (P) Yes (P)
add_recently_seen_icao_addr
0 (P) 0 (P) 1 (P) 1 (P) Yes (P)
icao_addr_was_recently_seen
0 (P) 0 (P) 1 (P) 1 (P) Yes (P)
brute_force_ap 0 (P) 0 (P) 1 (P) 1 (P) Yes (P)
decode_ac13_field 0 (P) 0 (P) 1 (P) 1 (P) Yes (P)
decode_ac12_field 0 (P) 0 (P) 1 (P) 1 (P) Yes (P)
mode_s_decode 0 (P) 0 (P) 1 (P) 1 (P) Yes (P)
mode_s_compute_magnitude_vector
1 (P) 1 (P) 2 (P) 2 (P) Yes (P)
detect_out_of_phase 0 (P) 0 (P) 1 (P) 1 (P) Yes (P)
apply_phase_correction 1 (P) 1 (P) 2 (P) 2 (P) Yes (P)
mode_s_detect 4 (P) 2 (P) 6 (F) 3 (P) Yes (P)
Total for mode-s.c 12 (P) 2 (P) 16 (P) 3 (P) Yes (P)
--------------------------------------------------------------------------------
LCSAJ and Unreachability (mode-s.c)
-----------------------------------
=================================================================================================
FILE TOTAL REACHABLE UNREACHABLE MAX. LCSAJ UNREACHABLE UNREACHABLE
LCSAJS LCSAJS LCSAJS DENSITY LINES BRANCHES
=================================================================================================
Total for mode-s.c 387 (P) 376 (P) 11 (F) 18 (P) 0 (P) 6 (P)
--------------------------------------------------------------------------------
Dataflow Information (mode-s.c)
-------------------------------
=====================================================
PROCEDURE GLOBALS IN FILE FAN
PROCEDURE FAN IN OUT
=====================================================
mode_s_init 0 (P) 0 (P) 3 (P)
mode_s_checksum 1 (P) 4 (P) 0 (P)
mode_s_msg_len_by_type 0 (P) 2 (P) 0 (P)
fix_single_bit_errors 1 (P) 1 (P) 2 (P)
fix_two_bits_errors 1 (P) 1 (P) 2 (P)
icao_cache_has_addr 0 (P) 2 (P) 0 (P)
add_recently_seen_icao_addr
0 (P) 1 (P) 2 (P)
icao_addr_was_recently_seen
0 (P) 1 (P) 2 (P)
brute_force_ap 1 (P) 1 (P) 3 (P)
decode_ac13_field 0 (P) 1 (P) 0 (P)
decode_ac12_field 0 (P) 1 (P) 0 (P)
mode_s_decode 1 (P) 1 (P) 11 (F)
mode_s_compute_magnitude_vector
0 (P) 0 (P) 0 (P)
detect_out_of_phase 0 (P) 1 (P) 0 (P)
apply_phase_correction 0 (P) 1 (P) 0 (P)
mode_s_detect 1 (P) 0 (P) 7 (F)
Total for mode-s.c 6 (P) 18 (P) 32 (P)
--------------------------------------------------------------------------------
******************
* *
* Key to Terms *
* *
******************
Clarity
-------
Metrics that indicate how easy it is likely to be
to read and understand the purpose of a source code module or procedure:
* Executable ref. Lines
* Total Comments
* Comments in Headers
* Comments in Declarations
* Comments in Executable Code
* Blank Lines
* Total Comments/Exe. Lines
* Declaration Comments/Exe. Lines
* Code Comments/Exe. Lines
* Average Length of Basic Blocks
* Unique Operands
* Total LCSAJs
* Depth of Loop Nesting
* Expansion Factor
Testability
-----------
Metrics that indicate the amount testing that will be required,
particularly with respect to achieving high Dynamic Coverage :
* Knots
* Cyclomatic Complexity
* Executable reformatted Lines
* Number of Basic Blocks
* Total Operands
* Number of Loops
* Procedure Exit Points
* Number of Procedures
* Total LCSAJs
* Unreachable LCSAJs
* Maximum LCSAJ Density
* Unreachable Lines
* Unreachable Branches
* File Fan in
* Fan Out
Maintainability
---------------
Metrics that indicate the level of consideration that must be given
to modifying a source code module or procedure:
* Essential Knots
* Essential Cyclomatic Complexity
* Knots
* Cyclomatic Complexity
* Vocabulary
* Number of Procedures
* Total LCSAJs
* Unreachable LCSAJs
* Maximum LCSAJ Density
* Unreachable Lines
* Unreachable Branches
Metric results Pass/Fail indicators.
------------------------------------
The display of Pass and Fail indicators is controlled by two environment variables:
=====================================================================
RESULT ENVIRONMENT FLAG INDICATOR
=====================================================================
Pass SHOW_METRIC_PASS (P)
Fail SHOW_METRIC_FAIL (F)
Upper and lower limits for a "Total for <file>" metric can be derived from the
upper and lower limits for a procedure where appropriate.
This is achieved using the 'c' marker in the Metrics Data File.
The base for this calculation is currently variable between files:
(Number of procedures in each source file)
--------------------------------------------------------------------------------
===========================================================
* *
* End of Quality Review Report *
* *
* Copyright (C) 2019 Liverpool Data Research Associates *
* *
===========================================================