软件工程--期末复习指南(一)
软件工程期末复习指南(一)
chapter 1:概述
0.第一章内容概念较多,常考察选择题。
1.软件(software)是计算机系统中包括程序(program)、相关数据(data)及其说明文档(document)。
也即:Software = Program + Data + Document
2.软件的发展各阶段。

3.软件的特点:
- 软件是逻辑实体,而不是物理实体,具有抽象性;
- 没有明显的制作过程,可进行大量的复制;
- 使用期间不存在磨损、老化问题;
- 软件的开发、运行对计算机系统具有依赖性;
- 软件复杂性高,成本昂贵;
- 软件开发涉及诸多社会因素。
4.软件的分类
- 按软件的功能进行划分
- 系统软件
- 支撑软件
- 应用软件
- 按软件的规模进行划分
- 微型/小型/中型/大型/甚大型/极大型
- 按软件工作方式进行划分
- 实时处理软件
- 分时软件
- 交互式软件
- 批处理软件
示例:


5.软件危机
软件危机包含两方面问题:
- 如何开发软件,以满足不断增长,日趋复杂的需求;
- 如何维护数量不断膨胀的软件产品。

软件危机的原因:一方面是与软件本身的特点有关:另一方面是由软件开发和维护的方法不正确有关。
软件危机的解决途径:正确认识到,软件≠程序。
6.软件工程的定义
软件工程是将系统的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中,并研究上述提到的途径。
软件工程就是应用计算机科学和数学的原理来经济有效的解决软件问题的一种工程。
软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
7.软件工程方法学
软件工程方法学是指用在软件生命周期全过程中的一整套技术方法的集合。
软件工程方法学包括三个要素:过程,方法和工具。
8.软件工程两大范型
分别是:结构化范型和面向对象范型。
9.结构化范型
结构化方法是一种传统的软件工程方法。它采用结构化分析(SA)、结构化设计(SD)、结构化程序设计和测试来完成软件开发的各项任务。
结构化分析方法(SA)主要是利用数据流图(DFD)来模拟数据处理过程,是一种面向数据流的开发方法。
结构化分析的主要步骤为:
1)分析需求关系中数据的加工处理流程,建立数据流模型。
2)生成数据字典并对模型中的元素进行描述。
结构化设计方法(SD)是把一个系统看成是一组功能操作构成的,是逻辑功能抽象的集合,即功能模块的集合。
结构化设计的本质是将DFD转变成系统结构模型的过程。
DFD分为两种类型:变换型和事务型。变换型数据流的特点是DFD可以明显地分为“输入-处理-输出”三部分,而事务型DFD则是对某个数据的加工分为不同的加工流。

10.面向对象范型
面向对象方法是一种以数据或信息为主线,把数据和行为相结合的方法。
11.软件生命周期
软件生命周期是软件产品从形成概念开始,经过开发、使用和维护,直到退役的全过程。

上图要求重点记忆。
12.常用的几种软件生命周期模型
1)瀑布模型

主要特点:
- 各阶段间有顺序性和依赖性;
- 每个阶段结束前必须进行严格的技术审查和管理复审,及早改正错误;
- 不适合需求模糊的系统。
2)增量模型

主要特点:
- 要把每个新的增量构件集成到现有软件体系结构中,要求软件工程师必须有较高的技术水平,能够设计出开放的软件体系结构;
- 并行开发构件时将冒无法集成到一起的风险;
- 能在较短时间内向用户提交可完成部分工作的产品;
- 逐步增加产品功能,使用户有较充裕的时间学习和适应新产品;
- 开发出的软件具有较好的可扩充性,维护阶段将更容易;
- 可以并行地开发不同构件,因此能够加快开发进度。
3)演化模型
包括:快速原型模型和螺旋模型

主要特点:
- 主要针对事先不能完整定义需求的软件开发;
- 用户给出核心需求,看到核心需求实现后有效提出反馈以支持系统的最终设计和实现;
- 这个模型可看作是重复执行的多个“瀑布模型”。
4)螺旋模型

主要特点:
- 瀑布模型+快速原型+风险分析;
- 沿螺线自内向外每旋转一圈便开发出更为完善的一个新的软件版本;
- 软件维护与软件开发没有本质区别;
- 风险驱动,适合大型软件项目的开发。
5)喷泉模型

主要特点:
- 重复演进,各阶段无明显界限。
chapter 2:可行性分析
0.第二章概念较少,会考察系统流程图成本效益分析等大题。
1.可行性研究概述
目的: 以最小的代价、最短的时间确定系统是否值得解决。
任务:了解客户的要求及现实环境,从技术、经济和社会因素等三方面研究并论证本软件项目的可行性,编写可行性研究报告,制定初步项目开发计划。
内容:
- 技术可行性
- 经济可行性
- 操作可行性
- 社会可行性(法律可行性)
- 决择:是否有可行性解决方案
- 可行:给出可行的解决方案
- 不可行:给出不可行的主要原因,停止项目
2.系统流程图
要了解和分析现有的系统,概括地表示对现有系统的认识;
要把设想的新系统的逻辑模型转变为物理模型,需要描绘未来的物理系统的概貌。
系统流程图的图形符号认识即可,不需要自己画。



系统流程图反映信息在各部件间流动的情况,不同于程序流程图,表示的是对信息的控制、处理。
习惯上信息在图中从上向下或从左向右流动。
3.成本效益分析
目的:分析开发目标系统是否合算
效益分析:社会效益,经济效益

一些计算公式和例题:







浙公网安备 33010602011771号