Module Call Tree |
Project: Cliente Correo SMTP.vbp |
Design quality report |
Project: Cliente Correo SMTP.vbp |
Complexity |
Lines of code | 10,7 |
Structural fan-out | 0,3 |
Informational fan-in x fan-out | 3,3 |
Informational complexity | 148,9 |
Nested loops | 0,17 |
Cyclomatic complexity |
Complexity | Procedures |
---|---|
0 - 4 | 44 |
5 - 9 | 1 |
10 - 14 | 0 |
15 - 19 | 1 |
20 - 24 | 0 |
25 - 29 | 0 |
30 - 34 | 0 |
35 - 39 | 0 |
40 - 44 | 0 |
45 - 49 | 0 |
50 - | 0 |
Understandability |
Distribution of lines |
Comments | 19% | |
Whitespace | 12% | |
Code | 69% | commentless 65%, commented 3% |
Total | 100% |
Comments per procedure |
Comments | Procedures | % |
---|---|---|
0 | 41 | 76% |
1-2 | 5 | 9% |
3-5 | 4 | 7% |
6 or more | 4 | 7% |
Total | 54 | 100% |
Average | 4,1 | comments |
Nested conditionals |
Average identifier length |
Variables | 6,8 characters |
Constants | 19,1 characters |
Procedures | 14,8 characters |
Control names | 7,0 characters |
Type/Enum names | 11,8 characters |
Total | 11,6 characters |
Reusability |
Structural fan-in | Procs | % |
---|---|---|
0-1 | 45 | 98% |
2-4 | 1 | 2% |
5-9 | 0 | 0% |
10- | 0 | 0% |
Average: 0,1 |
Problems |
Dead code |
Problematic | Total | % | |
---|---|---|---|
Dead procedures | 53 | 97 | 55% |
Removable code lines | 48 | 493 | 10% |
Dead variables | 27 | 84 | 32% |
Dead constants | 40 | 57 | 70% |
Dead Types | 0 | 3 | 0% |
Dead Enums | 0 | 1 | 0% |
Problems with declarations |
Problematic | Total | % | |
---|---|---|---|
Missing variable type | 13 | 59 | 15% |
Excess var/const scope | 5 | 116 | 4% |
No var/const scope | 18 | 116 | 16% |
Missing ByVal/ByRef | 5 | 25 | 48% |
Missing function type | 0 | 53 | 0% |
Excess procedure scope | 2 | 97 | 2% |
No procedure scope | 49 | 97 | 51% |
Naming standards |
Problematic | Total | % | |
---|---|---|---|
NameCheck failures | 223 | 319 | 70% |
Problem statistics |
Problems reported | 709 |
Lines of code | 670 |
Procedures | 97 |
Problems / LOC | 1,1 |
Problems / procedure | 7,3 |
Design quality report |
Project: Cliente Correo SMTP.vbp |
Files |
Total files | 24 | |
---|---|---|
Source files | 8 | (max approx. 400) |
File types | ||
Modules | 3 | |
Forms | 5 | |
Libraries | 4 | |
Binary Property Files | 5 | |
Control Libraries | 3 | |
Referenced Files | 2 | |
Project Workspaces | 1 | |
Project Files | 1 |
Code size |
Total size |
Lines of code | 670 | |
Lines of comment | 189 | |
Lines of whitespace | 117 | |
Total source lines | 976 | |
Total source size | 76 | kB |
Average size |
Procedure | 13 lines | 1696 bytes |
Module | 75 lines | 9753 bytes |
Max and min size |
Longest module | 310 | lines | frmMain (max 65534 lines) |
Shortest module | 13 | lines | pase |
Largest source module | 27,8 | kB | frmMain |
Smallest source module | 1,4 | kB | DecINI |
Number of identifiers |
Forms and controls |
Forms | 5 | (max 230) |
Controls | 74 |
Procedures |
Basic procedures | 46 |
DLL procedures | 51 |
Public procedures | 54 |
Private procedures | 43 |
Subs | 44 |
Functions | 53 |
Property procedures | 0 |
Dead procedures | 53 |
Live procedures | 44 |
Total | 97 |
Variables and constants |
Variables | Constants | Total | |
---|---|---|---|
Global | 22 | 40 | 62 |
Module-level | 3 | 17 | 20 |
Procedure-level | 34 | 0 | 34 |
Procedure parameters | 25 | 25 | |
Dead | 23 | 40 | 63 |
Live | 61 | 17 | 78 |
Total | 84 | 57 | 141 |
Types and Enums |
Types | Enums | Total | |
---|---|---|---|
Private | 0 | 1 | 1 |
Public | 3 | 0 | 3 |
Total | 3 | 1 | 4 |
Variable types |
Type | Count |
---|---|
String | 23 |
Integer | 13 |
[Variant] | 13 |
Long | 12 |
String * 256 | 8 |
Boolean | 4 |
Module1.datosfijos | 1 |
MSComctlLib.Button | 1 |
SendMail.clsSendMail | 1 |
Module1.correoenviado | 1 |
Module1.libretadirecciones | 1 |
Variant | 1 |
Object | 1 |
String * 300 | 1 |
String * 30 | 1 |
String * 80 | 1 |
TextBox | 1 |
Variables and constants |
Project: Cliente Correo SMTP.vbp |
Dim a As Long | frmMain |
Global archdestino [Variant] | Module1 |
Global Const ArEnviados = "enviados.dat" | Module1 |
Global camino [Variant] | Module1 |
Global clave(100) [Variant] | Module1 |
Global clavepgp [Variant] | Module1 |
Global codigoitem [Variant] | Module1 |
Global comando [Variant] | Module1 |
Global datfij As datosfijos | Module1 |
Global direlec(100) [Variant] | Module1 |
Global env As correoenviado | Module1 |
Const ERROR_SUCCESS = 0 | frmAbout |
Public gbConnectOK As Boolean | Module1 |
Public gbDataOK As Boolean | Module1 |
Public gbError As Boolean | Module1 |
Public gbRequestAccepted As Boolean | Module1 |
Const gREGKEYSYSINFO = "SOFTWARE\Microsoft\Shared Tools\MSINFO" | frmAbout |
Const gREGKEYSYSINFOLOC = "SOFTWARE\Microsoft\Shared Tools Location" | frmAbout |
Const gREGVALSYSINFO = "PATH" | frmAbout |
Const gREGVALSYSINFOLOC = "MSINFO" | frmAbout |
Const HKEY_LOCAL_MACHINE = &H80000002 | frmAbout |
Const KEY_ALL_ACCESS = KEY_QUERY_VALUE + KEY_SET_VALUE + KEY_CREATE_SUB_KEY + KEY_E | frmAbout |
Const KEY_CREATE_LINK = &H20 | frmAbout |
Const KEY_CREATE_SUB_KEY = &H4 | frmAbout |
Const KEY_ENUMERATE_SUB_KEYS = &H8 | frmAbout |
Const KEY_NOTIFY = &H10 | frmAbout |
Const KEY_QUERY_VALUE = &H1 | frmAbout |
Const KEY_SET_VALUE = &H2 | frmAbout |
Global lib As libretadirecciones | Module1 |
Const MAX_CAMPOS = 2 | interprop |
Global Const PGPAnalyze_DetachedSignature = 2 | SETPGP |
Global Const PGPAnalyze_Encrypted = 0 | SETPGP |
Global Const PGPAnalyze_EncryptedConventional = 5 | SETPGP |
Global Const PGPAnalyze_EncryptedNoKeys = 6 | SETPGP |
Global Const PGPAnalyze_Key = 3 | SETPGP |
Global Const PGPAnalyze_Signed = 1 | SETPGP |
Global Const PGPAnalyze_Unknown = 4 | SETPGP |
Global Const PGPCipherAlgorithm_3DES = 2 | SETPGP |
Global Const PGPCipherAlgorithm_CAST5 = 3 | SETPGP |
Global Const PGPCipherAlgorithm_IDEA = 1 | SETPGP |
Global Const PGPHashAlgorithm_Default = 0 | SETPGP |
Global Const PGPHashAlgorithm_MD5 = 1 | SETPGP |
Global Const PGPHashAlgorithm_RIPEMD160 = 3 | SETPGP |
Global Const PGPHashAlgorithm_SHA = 2 | SETPGP |
Global Const PGPHashAlgorithm_SHADouble = 4 | SETPGP |
Global Const PGPKeyTrust_Complete = 6 | SETPGP |
Global Const PGPKeyTrust_Marginal = 5 | SETPGP |
Global Const PGPKeyTrust_Never = 2 | SETPGP |
Global Const PGPKeyTrust_Ultimate = 7 | SETPGP |
Global Const PGPKeyTrust_Undefined = 0 | SETPGP |
Global Const PGPKeyTrust_Unknown = 1 | SETPGP |
Global Const PGPPref_DefaultKeyID = 3 | SETPGP |
Global Const PGPPref_PrivateKeyring = 1 | SETPGP |
Global Const PGPPref_PublicKeyring = 0 | SETPGP |
Global Const PGPPref_RandomSeedFile = 2 | SETPGP |
Global Const PGPPublicKeyAlgorithm_DSA = 5 | SETPGP |
Global Const PGPPublicKeyAlgorithm_ElGamal = 4 | SETPGP |
Global Const PGPPublicKeyAlgorithm_Invalid = 0 | SETPGP |
Global Const PGPPublicKeyAlgorithm_RSA = 1 | SETPGP |
Global Const PGPPublicKeyAlgorithm_RSAEncryptOnly = 2 | SETPGP |
Global Const PGPPublicKeyAlgorithm_RSASignOnly = 3 | SETPGP |
Global Const PGPValidity_Complete = 3 | SETPGP |
Global Const PGPValidity_Invalid = 1 | SETPGP |
Global Const PGPValidity_Marginal = 2 | SETPGP |
Global Const PGPValidity_Unknown = 0 | SETPGP |
Private poForm As Object | Module1 |
Private poSendMail As SendMail.clsSendMail | frmMain |
Const READ_CONTROL = &H20000 | frmAbout |
Const REG_DWORD = 4 | frmAbout |
Const REG_SZ = 1 | frmAbout |
Global Const SIGNED_BAD = 2 | SETPGP |
Global Const SIGNED_GOOD = 0 | SETPGP |
Global Const SIGNED_NO_KEY = 3 | SETPGP |
Global Const SIGNED_NOT = 1 | SETPGP |
Global sINIFile As String | Module1 |
Global sUserEmail As String | Module1 |
Global sUserName As String | Module1 |
Global sUserServer As String | Module1 |
Public vFrom [Variant] | Module1 |
Public vServer [Variant] | Module1 |
Public vUser [Variant] | Module1 |
Global X As String * 30 | Module1 |