m4_define(`AM3' ,`Artifact Maturity') m4_define(`AS2' ,`Asset Safety') m4_define(`CL3' ,`CMM Level') m4_define(`CO1' ,`Consequence') m4_define(`CX3' ,`Complexity') m4_define(`DI3' ,`Degree of Innovation') m4_define(`DO3' ,`Development Organization') m4_define(`DT3' ,`Use of Defect Tracking System') m4_define(`DV2' ,`Development') m4_define(`EP1' ,`Error Potential') m4_define(`EX3' ,`Experience') m4_define(`FR3' ,`Use of Formal Reviews') m4_define(`HS2' ,`Human Safety') m4_define(`PF2' ,`Performance') m4_define(`PR2' ,`Process') m4_define(`RA3' ,`Re-use Approach') m4_define(`RM3' ,`Use of Risk Management System') m4_define(`SC2' ,`Software Characteristic') m4_define(`SS3' ,`Size of System') m4_define(`UC3' ,`Use of CM') m4_define(`US3' ,`Use of Standards') function ep1() { return dv2() + pr2() + sc2() } function dv2() { return ex3() + do3() } function pr2() { return ra3() + formality() + am3() } function formality() { return us3() + uc3() + cl3() + fr3() + dt3() + rm3() } function sc2() { return cx3() + di3() + ss3() } function co1() { return hs2() + as2() + pf2() }