1. A method of modeling a software engineering process, executed by a central processing unit (CPU), the method comprising: accessing a plurality of application-customizable generic software engineering building blocks, the blocks displayed within simulation software; selecting at least one generic building block within the simulation software, the generic building block simulating a process which comprises multiple activities and comprising multiple generic building blocks which each simulate an activity in the process; selecting at least one of the generic building blocks which simulate an activity from the generic building block which simulates a process, wherein said at least one generic building block simulates a stage of a software engineering process life cycle according to one or more equations relating at least one of time and unit cost of staff to at least the following product engineering metrics: defect introduction rate, defect detection rate and feature count; wherein the plurality of application-customizable generic software engineering building blocks support a base set of attributes comprising: defect introduction rate, defect detection rate, staff turnover, productivity, and man-hour cost; and wherein the plurality of application-customizable generic software engineering building blocks are configurable using, at least in part, the base set of attributes to implement block types comprising: development blocks, which simulate software product development and inject defects; inspection and testing blocks, which detect defects; rework blocks, which correct and inject defects; and joint review blocks, which detect and correct defects; and manipulating the selected at least one generic building block which simulates an activity within the simulation software to create a model of a software engineering process.