软工复习
第一章
1.软件=程序+数据+文档
2.软件的特性:
(1)形态特性
(2)智能特性
(3)开发特性
(4)质量特性
(5)生产特性
(6)管理特性
(7)环境特性
(8)维护特性
(9)废弃特性
(10)应用特性
3.软件分类:
(1)系统软件:操作系统、数据库管理系统、设备驱动程序、通信和网络处理程序
(2)支撑软件:①纵向支撑软件:需求分析工具、设计工具、编码工具、测试工具、维护工具等。②横向支撑软件:项目管理工具、配置管理工具等。
(3)应用软件:商业数据处理软件等
(4)可复用软件
4.软件危机:软件的发展速度远远滞后于硬件的发展速度,不能满足社会日益增长的软件需求。软件开发周期长、成本高、质量差、维护困难。
5.软件危机发生原因:
(1)缺乏软件开发的经验和有关软件开发数据的积累,使得开发工作计划很难制定
(2)软件人员与用户的交流存在障碍
(3)软件开发的过程不规范,缺少方法论和规范的指导
(4)随着软件规模的增大,其复杂性往往会呈指数级升高
(5)缺少有效的软件评测工具,提交用户的软件质量差,在运行种暴露大量的问题
6.软件工程的目标:运用先进的软件开发技术和管理方法来提高软件的质量和生产率
7.软件工程的基本目标:
(1)付出较低的开发成本
(2)达到要求的软件功能
(3)取得较好的软件性能
(4)开发的软件易于移植
(5)需要较低的维护费用
(6)能按时完成开发工作,及时使用
8.软件质量特性:
(1)功能性
(2)可靠性
(3)易用性
(4)效率
(5)维护性
(6)可移植性
9.软件的生存周期:软件定义,软件开发,运行维护。
10.开发过程种的典型文档:
(1)软件需求规格说明书
(2)项目计划
(3)软件测试计划
(4)软件设计说明书
(5)用户手册
11.各阶段所要完成的任务:
(1)软件定义时期:①问题定义②可行性研究③需求分析
(2)软件开发时期:①概要设计②详细设计③编码④测试
(3)软件维护时期:维护
12.软件工程方法学的三要素:方法、工具、过程。
方法——>技术支持,即如何做
工具——>自动化或半自动化环境
过程——>规定了完成各项工作的步骤
第二章
1.瀑布模型:
(1)特点:
①阶段间具有顺序性和依赖性
②推迟实现的观点
③质量保证的观点
(2)优点:
①可强化开发人员采用规范化的方法
②严格规定了每个阶段必须提交的文档
③要求每个阶段提交的所有产品必须都是经过验证的
(3)缺点:
①最终开发出的软件产品不能真正满足用户需求
②瀑布模型只适用于项目开始时需求已确定的情况
2.快速原型模型:
(1)特点:所完成的功能往往是最终产品的一个子集
(2)优点:
①有助于满足用户的真实需求
②能正确描述用户需求
③按线性顺序进行
④不会出现因文档错误而进行较大的返工
⑤在设计和编码阶段发生的错误的可能性比较小
⑥本质是快速,开发人员应该尽可能快地建造出原型系统,用于获知用户的真正需求
3.增量模型:
(1)优点:
①在较短时间内向用户提交一些有用的工作产品
②逐步增加产品的功能
③项目失败风险