软件工程旨在开发满足用户需要、及时交付、不超过预算和无故障的软件,其主要目标如下:
  (1) 合理预算开发成本,付出较低的开发费用;
  (2) 实现预期的软件功能,达到较好的软件性能,满足用户的需求;
  (3) 提高所开发软件的可维护性,降低维护费用;
  (4) 提高软件开发生产率,及时交付使用。
  但是,软件工程的不同目标之间是互相影响和互相牵制的。例如,提高软件生产率有利于降低软件开发成本,但过分追求高生产率和低成本便无法保证软件的质量,容易使人急功近利,留下隐患。但是,片面强调高质量使得开发周期过长或开发成本过高,由于错过了良好的市场时机,也会导致所开发的产品失败。因此,我们需要采用先进的软件工程方法,使质量、成本和生产率三者之间的关系达到最优的平衡状态。

  质量是软件需求方最关心的问题,用户即使不图物美价廉,也要求个货真价实。生产率是软件供应方最关心的问题,老板和员工都想用更少的时间挣更多的钱。质量与生产率之间有着内在的联系,高生产率必须以质量合格为前提。如果质量不合格,对供需双方都是坏事情。从短期效益看,追求高质量会延长软件开发时间并且增大费用,似乎降低了生产率。从长期效益看,高质量将保证软件开发的全过程更加规范流畅,大大降低了软件的维护代价,实质上是提高了生产率,同时可获得很好的信誉。质量与生产率之间不存在根本的对立,好的软件工程方法可以同时提高质量与生产率。