软件生命周期
简介
概括说分为:
- 软件定义
- 软件开发
- 软件维护
软件定义分为:
- 问题定义
- 可行性研究
- 需求分析
软件开发分为:
- 系统设计
- 总体设计
- 详细设计
- 系统实现
- 编码
- 单元测试
- 综合测试
维护活动本质上都是一次压缩和简化了的定义和开发过程
具体介绍
软件定义
问题定义
明确要解决的问题是什么
可行性研究
确定问题是否有行得通的办法.探索这个问题是否值得去解,是否有可行性的解决办法.
一般来说只有可投资可能取得较大收益的那些工程项目才值得继续进行下去.
需求分析
确定为了解决这个问题,目标系统必须做什么,主要是确定目标系统必须具备那些功能.
系统分析员与用户密切配合,充分交流信息,得出用户确认的系统逻辑模型.通常用数据流图,数据字典和简要的算法表示系统的逻辑模型.
该阶段的一个重要任务是用正式文档准确的记录对目标系统的需求,这份文档通常称为规格说明书.
软件开发
总体设计
解决怎样实现目标系统,又称概要设计.
通常给出低,中,高3种方案.适当的描述每种方案,分析其优缺点,推荐一个最佳方案,给出实现最佳方案的详细计划.
总体设计的一项主要任务就是设计程序的体系结构,确定由哪些模块组成以及模块之间的关系.
详细设计
解决"应该怎样具体的实现这个系统"
也成模块设计,详细设计每一个模块的必要细节,确定实现模块功能所需要的算法和数据结构.以便程序员可以根据他们写出实际的程序代码.
编码和单元测试
把详细设计的结果翻译成代码,写出正确的容易理解的可维护度高的代码.
仔细测试写出的每一个模块.
综合测试
最基本的测试时集成测试和验收测试.
应该用正式的文档资料把测试计划,详细测试方案以及实际测试结果保存下来,作为软件配置的一个组成部分.
软件维护
主要有:
- 改正性维护
- 适应性维护
- 完善性维护
- 预测性维护
软件过程
简介
简单讲描述了为了开发出客户需要的软件,什么人,在什么时候,做什么事以及怎样做这些事以及实现某一个特定的具体目标.
通常使用生命周期模型简单描述软件工程,也成过程模型.
瀑布模型
按照生命周期顺序执行的模型
特点
- 阶段间具有顺序性和依赖性
- 推迟实现的观点
- 尽可能的推迟程序的物理实现
- 质量保证的观点
- 每个阶段都必须完成规定的文档
- 每个阶段结束前都要对所完成的文档进行评审
优点
强迫开发人员采用规范的方法.
缺点
由于其实文档驱动的模型,用户只能通过各个阶段的文档了解系统,并不能真正体验系统,很可能导致最终开发出的软件产品不能真正满足用户的需要.