1-- This file contains rules to be used as input data for the SQALE method 2-- For information about the method, and how it is applied to Ada, please 3-- refer to J-P Rosen's paper: 4-- The SQALE Quality and Analysis Models for Assessing the Quality of Ada Source Code 5-- Lecture Notes in Computer Science, n� 6652, proceedings of the 16th Ada-Europe 6-- International Conference on Reliable Software Technologies, Springer-Verlag, 2011 7-- The paper is also accessible from http://www.adalog.fr/publica2.htm 8 9 SQALE_01: check Parameter_Declarations (all_parameters, max 7); 10--SQALE_02: check 11--SQALE_03: check 12--SQALE_04: check 13--SQALE_04: check 14--SQALE_05: check 15 SQALE_06: check simplifiable_statements (dead); 16 SQALE_07: check units (unreferenced); 17 SQALE_08: check max_call_depth (finite); 18--SQALE_09: check 19 SQALE_10: check declarations (public variable, public tagged_type, public record_type); 20 SQALE_11: check dependencies (direct, max 50); 21--SQALE_12: check 22--SQALE_13: compile time 23--SQALE_14: compile time 24--SQALE_15: compile time 25 SQALE_16: check entities (unchecked_conversion, ada.unchecked_conversion); 26 SQALE_17: check improper_initialization (variable); 27--SQALE_18: check 28 SQALE_19: check statements (function_return, procedure_return); 29--SQALE_20: compile time 30--SQALE_21: compile time 31--SQALE_22: compile time 32--SQALE_23: compile time 33--SQALE_24: compile time 34 SQALE_25: check expressions (real_equality); 35--SQALE_26: compile time 36 SQALE_27: check expressions (mixed_operators); 37 SQALE_28: check global_references (multiple, procedure, function, task, protected); 38--SQALE_29: check 39--SQALE_30: check 40--SQALE_31: check 41--SQALE_32: compile time 42--SQALE_33: compile time 43 SQALE_34: check exception_propagation (interface, c); 44--SQALE_35: check 45--SQALE_36: compile time 46--SQALE_37: compile time 47 SQALE_38: check local_hiding (not_operator overloading); 48--SQALE_39: check 49--SQALE_40: check 50--SQALE_41: compile time 51 SQALE_42: check style (exposed_literal, integer, 0, 1), 52 check style (exposed_literal, real, 0.0, 1.0), 53 check style (exposed_literal, string, "^$"); 54 SQALE_43: check reduceable_scope (no_blocks to_body variable, 55 no_blocks to_body constant, 56 no_blocks to_body type, 57 no_blocks to_body use); 58--SQALE_44: check 59 SQALE_45: check usage (object, not read); 60--SQALE_46: check 61--SQALE_47: check 62 SQALE_48: check simplifiable_statements; 63 SQALE_49: check comments (pattern, "if.*then"); --etc. 64--SQALE_50: compile time 65--SQALE_51: check 66--SQALE_52: check 67--SQALE_53: check 68--SQALE_54: check 69--SQALE_55: check 70--SQALE_56: check 71--SQALE_57: check 72 SQALE_58: check style (casing_Attribute, Uppercase), -- To be adjusted to project 73 check style (casing_identifier, Original), -- To be adjusted to project 74 check style (casing_keyword, Lowercase), -- To be adjusted to project 75 check style (casing_pragma, Uppercase); -- To be adjusted to project 76 SQALE_59: check naming_convention (all, case_sensitive "^[A-Z][a-z0-9]*(_[A-Z0-9][a-z0-9]*)*$"); 77 -- To be adjusted to project 78--SQALE_60: check 79--SQALE_61: check 80--SQALE_62: compile time 81--SQALE_63: compile time 82 SQALE_64: check statements (goto); 83--SQALE_65: check 84--SQALE_66: check 85