Module Call Tree

Project: Cliente Correo SMTP.vbp


- Cliente Correo SMTP
+ DecINI (DecINI.bas)
+ frmAbout (frmabout.frm)
+ frmLibreta (frmLibreta.frm)
+ frmMain (frmSendMailEx.frm)
+ interprop (interprop.Frm)
Module1 (globales mail.bas)
+ pase (pase.frm)
+ SETPGP (SETPGP.bas)


Project Analyzer 5.2.07 (27/07/00) cliente correo smtp.vbp v1.2.1

Design quality report

Project: Cliente Correo SMTP.vbp

Complexity

Average values per procedure

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

Average complexity: 1,9
Recommended cyclomatic complexity is below 10

Understandability

Distribution of lines

Comments 19%
Whitespace 12%
Code 69% commentless 65%, commented 3%
Total 100%


Comments per procedure

(declarations) sections counted as procedures

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 per procedure: 0,4


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

Class modules: 0 (0% of source modules)

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

Filter: <Strict>
Problems reported 709
Lines of code 670
Procedures 97
Problems / LOC 1,1
Problems / procedure 7,3



Project Analyzer 5.2.07 (27/07/00) cliente correo smtp.vbp v1.2.1
Project created in Visual Basic 6,0

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

Oldest source file: 11/02/00 17:30 - pase
Newest source file: 27/07/00 19:41 - frmMain
Average source file age: 39 days = 1,3 months

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

Total number of identifiers 324 (max 32000)

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


Project Analyzer 5.2.07 (27/07/00) cliente correo smtp.vbp v1.2.1

Variables and constants

Project: Cliente Correo SMTP.vbp

Global and module-level definitions
Live and dead definitions
Sorted by name

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

82 listed


Project Analyzer 5.2.07 (27/07/00) cliente correo smtp.vbp v1.2.1