第一章 软件工程概论
一、软件的概念,特点和分类方法
软件是计算机系统中与硬件相互依存的一部分,它是包括程序,数据及其相关文档的完整集合
软件特点:是一种逻辑实体,具有抽象性
对计算机系统有着不同程度的依赖
本身是复杂的。包括实际问题的复杂性,程序逻辑问题的复杂性
。。。。
软件分类:
功能划分
系统软件(操作系统,数据库管理系统,设备驱动程序,通信处理程序)
支撑软件(文本编辑程序,文本格式化程序,磁盘向磁带数据传输的程序,程序库系统,支持需求分析、设计、实现、测试和
支持管理的软件)
应用软件
软件工作方式划分
实时处理软件
分时软件
交互式软件
批处理软件
软件服务对象的范围划分
项目软件
产品软件
使用的频度进行划分
一次使用
频繁使用
软件失效的影响进行划分
高可靠性软件
一般可靠性软件
软件规模进行划分
软件工程过程
软件规格说明
软件开发
软件确认
软件演进
软件工程过程特性
易理解行 可见性 可支持性 可接受性 可靠性 健壮性 可维护性 速度
软件生存期 life cycle
问题定义
可行性研究
需求分析
设计 (概要设计,详细设计)
程序编码
测试 (单元测试,组装测试,有效性测试)
运行维护 (改正性维护,适应性维护,完善性维护)
三大阶段 计划 开发 维护
软件工程学的最终目标:以较少的投资获得易维护,易理解,可靠,高效率的软件产品
软件工程的原则:模块化 抽象 信息隐蔽 信息局部化 一致性 完整性 确定性
软件生存期模型
瀑布型:
1、思想:从制作时间上按工序把问题化简 将功能实现与制作分开,便于分工协作
2、优点 奠定了软件工程方法的基础 流水依赖,便于分工协作 推迟物理实现,易于修改文档,有复审质量保证
3、不足 与用户见面晚,成功率低,一般为25%
4、适用范围 适用与系统要求明确的系统 各种应用软件的开发均可使用
5、开发方法 遵循软件生命期的划分,明确规定每个阶段的任务,上一阶段完成确定的任务后就产生一定格式的文档给下一阶段,不同阶段的任务,一般有不同级别的软件人员承担
6、开发特点 时间的顺序性和依赖性 推迟实现的观点 质量保证的观点
原型(渐增型)
1、 基本思想:允许从部分需求出发,先建立一个不全面的系统通过测试这个系统,进一步使系统扩充和完善
2、 优点:开发的始终开发人员和用户都共同参与,有问题可以随时修改,从而很好的满足了用户的需求
3、 适用范围:适用与那些知识型软件系统的开发。
4、 特点:从整体结构上不如瀑布型清晰 软件的文档不如瀑布型的划分严格 周期长,成本高 与用户见面快,开发效率高