什么是软件工程?它的目标和内容是什么?
软件工程是一种用科学知识和技术原理来定义、开发、维护软件的一门学科。目的是成功的建造一个大型软件系统,
所谓成功是要达到以下几个目标:
付出较低的开发成本,达到要求的软件功能;
取得较好的软件性能;
开发的软件易于移植;
需要较低的维护费用;
能按时完成开发任务,及时交付使用;
开发的软件可靠性高。
软件工程研究的主要内容是软件开发技术和软件开发管理两方面,在软件开发技术中,主要研究软件开发方法、软件开发过程、软件开发工具和环境。在软件开发管理中,主要研究软件管理学、软件经济学、软件心理学等。
软件文档作用及包含
软件文档的作用是:
- 提高软件开发过程的能见度;
- 提高开发效率;
- 作为开发人员阶段工作成果和结束标志;
- 记录开发过程的有关信息便于使用与维护;
- 提供软件运行、维护和培训有关资料;
- 便于用户了解软件功能、性能。
软件开发项目生存期各阶段应包括得文档以及与各类人员的关系如下:
- 可行性研究报告
- 项目开发计划
- 软件需求说明书
- 数据要求说明书
- 测试计划
- 概要设计说明书
- 详细设计说明书
- 用户手册
- 操作手册
- 测试分析报告
- 开发进度月报
- 项目开发总结
- 程序维护手册(维护修改建议)
软件过程模型
瀑布模型
瀑布模型是将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工作,形如瀑布流水,最终得到软件产品。核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。
1. 特点:
阶段间具有顺序性和依赖性。其中包含两重含义:①必须等前一阶段的工作完成之后,才能开始后一阶段的工作;②前一阶段的输出文档就是后一阶段的输入文档。
2. 优点:
①可强迫开发人员采用规范化的方法。
②严格地规定了每个阶段必须提交的文档。
③要求每个阶段交出的所有产品都必须是经过验证的。
3. 缺点:
①由于瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的软件产品不能真正满足用户的需要。如果需求规格说明与用户需求之间有差异,就会发生这种情况;
②瀑布模型只适用于项目开始时需求已确定的情况。
4. 适用场合:
需求明确且很少变更的项目,如二次开发或升级型项目。
快速原型模型
根据原型的不同作用,有三类原型模型:
⑴探索型原型。这种类型的原型模型是把原型用于开发的需求分析阶段,目的是要弄清用户的需求,确定所期望的特性,并探索各种方案的可行性。它主要针对开发目标模糊,用户与开发着对项目都缺乏经验的情况,通过对原型的开发来明确用户的需求。
⑵实验型原型。这种原型主要用于设计阶段,考核实现方案是否合适,能否实现,对于一个大型系统,若对设计方案心中没有把握时,可通过这种原型来证实设计方案的正确性。
⑶演化型原型。这种原型主要用于及早向用户提交一个原型系统,该原型系统或者包含系统的框或者包含系统的主要功能。在得到用户的认可后,将原型系统不断扩充演变为最终的软件系统,它将原型的思路扩展到软件开发的全过程。
1.特点:
快速构建可运行的软件模型,以便理解和澄清问题,进一步细化需求,在新获取需求基础上进行系统开发。
2.优点:
(1)有助于满足用户的真实需求;
(2)原型系统已经通过与用户的交互而得到验证,据此产生的规格说明文档能够正确地描述用户需求;
(3)软件产品的开发基本上是按线性顺序进行;
(4)因为规格说明文档正确地描述了用户需求,因此,在开发过程的后续阶段不会因为发现规格说明文档的错误而进行较大的返工;
(5)开发人员通过建立原型系统已经学到了许多东西,因此,在设计和编码阶段发生错误的可能性也比较小,这自然减少了在后续阶段需要改正前面阶段所犯错误的可能性;
(6) 快速原型的突出特点是“快速”。开发人员应该尽可能快地建造出原型系统,以加速软件开发过程,节约软件开发成本。
3.缺点:
快速建立的模型加上连续的修改可能造成产品质量低下。
4.适用场合:
用户需求模糊不明的情况下。