开篇前言
当谈到结构化开发方法的时候,人们会产生疑问为什么会产生这种开发方式。这样除了会延长开发时间还会有什么好处。
软件危机的原因
开发方法的改进
后来人们改进了开发方法,新的开发方法主要分为三大类:结构化方法,原型法(快速原型法),以及面向对象的方法。
| 原型法 (快速原型法) | 结构化系统开发方法 (生命周期法) |
优点 | 1.需求表示清楚 2.用户满意程度高 3.降低开始风险和开发成本 | 1.逻辑设计和物理设计分开 2.开发过程中形成一套规范的文档便于后期维护 |
缺点 | 1.原型法不使用与大型的信息系统 2.系统难以维护 3.用户合作不好盲目纠错,拖延开发进度
| 1.开发周期长 2.系统难以适应环境的变化 开发过程复杂繁琐
|
通用范围 | 用户需求不清,管理及业务不稳定,需求经常变化 规模小,不太复杂 开发信息系统的最终用户界面 | 组织相对稳定,业务处理过程规范,需求明确,一定时期内不会发生大型复杂系统的开发
|
另外:面向对象的开发方法大致上和原型开发相同,因为都来源与结构化系统开发方法。但是也有自己独特的优点:就是实现了软件复用,简化程序设计。
开发过程中需要的文档
1. 可行性与计划研究阶段
可行性研究报告
理解问题---形成系统目标范围说明书
项目的开发计划
把对于开发过程中各项工作负责人员,开发进度,所需经费,所需硬软件的情况以文件的形式进行记录
2. 软件的需求阶段
软件需求说明书
让用户与软件开发者双方对该软件的初始规定有一个共同的理解
数据要求说明书
为了整个开发时期提供关于被处理数据的描述和数据采集要求的技术信息。
初步的用户词典
充分描述该软件系统所具有的功能和具体的使用方法
3. 设计阶段
概要的设计说明书(系统设计说明书)
主要对软件的结构和功能进行介绍,包含系统的基本处理流程,程序系统的组织结构,模块的划分,功能分配,接口设计。
详细设计说明书(程序设计说明书)
系统中每一个层次中的每一个程序的设计考虑,如果设计的系统太过于简单这部分可以省略。
数据库设计说明书
对设计中的数据库的所有标示,逻辑结构和物理结构做出具体的设计规定。
测试计划初稿
对整个程序系统的组装和测试
4. 实现阶段
用户手册完工
操作手册
为了向操作人员提供该软件的每一运行具体过程和有关的知识
测试计划终稿
5. 测试阶段
测试报告
把组装测试和确定测试的结果发现以及分析以文件的格式形成报告
项目开发总结报告
总结开发经验,对整个开发工作进行各个方面的评价
6. 运行和维护阶段
软件生存期模型
软件生存期模型是跨越整个生存期的系统开发,运行和维护所实施的全部过程,活动和任务的结构框架
模型中包括瀑布模型,掩护模型,螺旋模型,喷泉模型,智能模型。
本文对其中的瀑布模型和螺旋模型进行对比
| 瀑布模型 | 螺旋模型 |
缺点 | 1.周期长 2.用户只能在定义阶段参与,开发阶段不能参与 3.客户不能参与反应情况 4.只有在项目生命周期后面才能看到结果 5.通过过多的强制完成日期和里程碑来跟踪各个项目阶段 | 能够较早地获得来自用户较为可信的评价。这促使开发人员把注意力集中于向用户提供各种功能,而不是把精力浪费在充分利用技术提供的可能上。在螺旋模型的框架下,要求每个阶段里的所有设计任务都必须集成起来,因此,那些具有各种能力的团队就自然形成了。这样,团队断层和模型断层也就不会出现。 |
优点 | 1.为项目提供了按阶段划分的检查点 2.当一个阶段完成之后主需要关注后续阶段 3.可在迭代模型中应用瀑布模型 | 很难让用户确定这种演化的结果是可以控制的。建设周期长,但是软件开发速度快,很难满足用户的需求。 |