当一个待解决的问题过于复杂时,可以进一步将其分解,直到分解后的问题容易解决为止。然后分别解决这些分解后的问题,通过综合其解答得到原有问题的解答。这是处理复杂问题的最自然的方法。
LOC和FP估算
  LOC是指所有的可执行的源代码行数,包括可交付的语句、数据定义、数据类型声明、等价声明、输入/输出格式声明等。一代码行(1LOC)的价值和人月均代码行数可以体现一个软件生产组织的生产能力,开发组织可以根据对历史项目的审计来核算组织的单行代码价值。
  LOC和FP是两个不同的估算技术。但两者有许多共同特性。项目计划人员首先给出一个有界的软件范围的叙述,再由此叙述把软件分解成一些小的可分别独立进行估算的子功能。然后对每一个子功能估算其LOC或FP(即估算变量)。接着,把生产率度量(如LOC/PM或FP/PM)用做特定的估算变量,导出子功能的成本或工作量。将子功能的估算进行综合后就能得到整个项目的总估算。
  LOC或FP估算技术对于分解所需要的详细程度是不同的。当用LOC做为估算变量时,功能分解是绝对必要的且需要达到很详细的程度。而估算功能点所需要的数据是宏观的量,当把FP当做估算变量时所需要的分程度不很详细。应注意,LOC可直接估算,而FP要通过估计输入、输出、数据文件、查询和外部接口的数目间接地确定。
  项目计划人员可对每一个分解的功能提出一个有代表性的估算值范围。利用历史数据或凭实际经验,对每个功能分别按最佳的、可能的、悲观的三种情况给出LOC或FP估计值,记作a、m、b。当这些值的范围被确定之后,也就隐含地指明了估计值的不确定程度,然后计算LOC或FP的期望值E。
  E=(a+4m+b)/6 (加权平均)


  一旦确定了估算变量的期望值,就可以用作LOC或FP的生产率数据。
工作量估算
  工作量估算是估算任何工程开发项目成本的最普遍使用的技术。每一个项目任务的解决都需要花费若干人日、人月或人年,每一个工作量单位都对应于一定的货币成本,从而可以由此作出成本估算。
  类似于LOC或FP技术,工作量估算开始于从软件项目范围抽出软件功能,接着给出为实现每一功能所必须执行的一系列软件工程任务,包括需求分析、设计、编码和测试。最后,计算每一个功能及软件项目的工作量和成本。将工作量估算与LOC估算得到的结果进行比较,如果结果一致则估算是可靠的,否则有必要做进一步的检查与分析。