「笔记」软件工程
第一章
软件
软件是程序, 数据及相关文档的完整集合
文档 + 程序
- ⽂档是软件质的部分
- 程序是⽂档代码化的表现形式
- 运行时提供程序
- 程序能够处理数据
- 程序能够按照预定的商业逻辑运行
- 描述程序功能需求以及程序如何操作的文档
软件危机
软件开发和维护中遇到的问题
- 怎样满足对软件日益增长的需求 (如何开发软件)
- 如何维护数量不断膨胀的已有软件 (如何维护)
说 nm 呢
产生原因:
两个方面, 1) 软件本身的特点 2) 软件开发维护的方法
- 客观: 软件本身
- 逻辑部件
- 规模庞大
- 主观: 不正确的方法:
- 忽视需求分析
- 忽视文档
- 轻视维护
解决方法:
- 组织管理
- 工程项目管理方法
- 技术措施
- 软件开发技术与方法
- 软件工具
软件工程
软件工程是知道计算机软件开发和维护的一门工程学科. 采用工程的概念, 原理, 技术和方法来开发维护软件.
软件生命周期
- 问题定义: 问题性质报告, 工程目标和规模报告, 对用户访问调查, 得到双方满意的文档
- 可行性研究: 导出系统的逻辑模型, 数据流程图, 在此基础上更准确, 更具体确定工程规模和目标, 更准确估计系统成本和效益.
- 需求分析: 和用户配合, 交流, 得出经过用户确认的系统逻辑模型, 通常用数据流程图, 数据字典和简要的算法表示
- 总体设计: 如何解决问题, 低成本完成最少的工作, 中成本完成一些附加功能, 高成本完成用户还可能希望有的功能
- 详细设计: 把任务具体化, 设计出详细的程序说明, 通常是 HIPO 图 或 PDL 语言
- 编码和单元测试: 写程序, 并测试每个模块
- 综合测试: 通过各种测试使软件达到要求
- 集成测试: 更具软件结构, 把模块按策略装配, 测试 (联调的意思)
- 验收测试: 按规格说明书的规定, 对目标系统进行验收
- 软件维护: 改正性, 适应性, 完善性, 预防性维护
软件生存周期模型
瀑布模型: