软件工程就是采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理方法和先进软件开发技术结合起来,运用到软件开发和维护过程中,解决软件危机。(1993年IEEE:《软件工程术语汇编》定义软件工程:“软件工程是:①将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程,也就是说,将工程化应用于软件开发和管理之中;②对①中所选方法的研究。”)
软件工程的研究内容具有层次化结构,它的最底层是质量保证层,中间是过程层和方法层,最上层是工具层。
软件工程层次结构图:
- 工具层为软件工程方法和过程提供了自动或半自动的支撑环境。目前市场上已经有许多不错的软件工程工具,应用效果良好。使用软件工程工具可以有效地改善软件开发过程,提高软件开发的效率,降低开发和管理成本。
- 方法层提供了软件开发的各种方法,包括如何进行软件需求分析和设计,如何实现设计,如何测试和维护等方法。
- 过程层定义了一组关键过程域,目的是保证软件开发过程的规范性和可控性。
- 全面的质量管理和质量需求是推动软件工程过程不断改进的动力。正是这种改进的动力导致了更加成熟的软件工程方法不断涌现。
软件工程的目的是:开发满足用户需要、及时交付、不超过预算和无故障的软件,其主要目标如下:
- 实现预期的软件功能,达到较好的软件性能,满足用户的需求;
- 增强软件过程的可见性和可控性,保证软件的质量;
- 提高所开发软件的可维护性,降低维护费用;
- 提高软件开发生产率,及时交付使用;
- 合理预算开发成本,付出较低的开发费用。
软件工程的七条基本原理:
- 原理1:用分阶段的生命周期计划严格管理
- 原理2:坚持进行阶段评审
- 原理3:实行严格的产品控制
- 原理4:采用现代程序设计技术
- 原理5:结果应能清楚地审查
- 原理6:开发小组的人员应该少而精
- 原理7:承认不断改进软件工程实践的必要性
快速原型化模型
事实证明,一旦用户开始实际使用了为他们开发的系统,便会对系统的功能、界面、操作方式等有了具体的认识,甚至会提出许多合理化建议。因此,经过长期的实践总结,人们提出了快速原型化模型。
快速原型化模型的基本思想是:在需求分析的同时,以比较小的代价快速建立一个能够反映用户主要需求的原型系统。用户在原型系统上可以进行基本操作,并且提出改进意见,分析人员根据用户的意见完善原型,然后再由用户评价,提出建议,如此往复,直到开发的原型系统满足了用户的需求为止。基于快速原型化模型的开发过程基本上是线性的,从创建系统原型到系统运行,期间没有反馈环。这是由于开发人员是在原型的基础上进行系统分析和设计,而原型已经通过了用户和开发组的审查,在设计阶段由于有原型作设计参考,所以设计的结果正确率比较高。
快速原型的本质是快速开发出系统的原型,以便让用户确认什么是真正的需求,一旦用户确认了需求,原型通常将被抛弃。因此,快速原型的内部构造并不重要。