130 likes | 191 Views
This text discusses the calculation of DeMarco’s bang metric for application classification using functional primitives, objects, relationships, data tokens, and relationship connections. It covers the distribution of software applications in scientific and commercial contexts, highlighting data-strong and function-strong applications. The algorithm involves assessing class weights for different primitive classifications and assigning primitives to classes based on their weight. The process includes evaluating functional and data-strong algorithms to determine the classification of applications.
E N D
DeMarco’s Bang Metric By William Lord & Jason C. Slaughter
Primitives • Functional primitives (FuP) • Data elements (DE) • Objects (OB) • Relationships (RE) • States (ST) • Transitions (TR) • Modified manual functional primitives (FuPM) • Input data elements (DEI) • Output data elements (DEO) • Retained data elements (DER) • Data tokens (TCi) • Relationship connections (REi)
Primitives Only the following primitives are used in the calculation of DeMarco’s bang metric. • Functional primitives (FuP) • Objects (OB) • Relationships (RE) • Data tokens (TCi) • Relationship connections (REi)
Distribution of Software Applications Scientific Commercial Data-Strong Hybrid All Projects Function-Strong
Application Classification RE/FuP < 0.7 Function-Strong Application RE/FuP > 1.5 Data-Strong Application midrange indicates Hybrid
Function-strong algorithm Set initial value bang = 0 do while functional primitives remain to be evaluated compute token-count for primitive i compute corrected FuP increment (CFuPI) allocate primitive to class assess class and note weight multiply CFuPI by assessed weight bang = bang + weighted CFuPI enddo
Primitve Classification ClassWeight Class Weight separation 0.6 synchronization 1.5 amalgamation 0.6 output generation 1.0 data direction 0.3 display 1.8 simple update 0.5 tabular analysis 1.0 storage management 1.0 arithmetic 0.7 edit 0.8 initiation 1.0 verification 1.0 computation 2.0 text manipulation 1.0 device management 2.5
Function-strong algorithm Set initial value bang = 0 do while functional primitives remain to be evaluated compute token-count for primitive i compute corrected FuP increment (CFuPI) allocate primitive to class assess class and note weight multiply CFuPI by assessed weight bang = bang + weighted CFuPI enddo
Data-strong Algorithm set initial value bang = 0 do while objects remain to be evaluated in data model compute count of relationships for object i compute corrected OB increment (COBI) bang = bang + COBI enddo