文章目录
- 一、 概念(共60分,单选题、多选题)
- 1. 软件是程序、数据、文档的集合。
- 2. 软件的分类(按规模、性质分)
- 3. 软件危机的表现、缓解软件危机的途径
- 4. 软件工程方法学主要有两种:结构化的软件工程方法学_瀑布模型、面向对象的软件工程方法学_喷泉模型
- 5. 软件生命周期包含哪几个阶段、软件开发过程包含哪几个阶段。
- 6. 软件开发模型有哪些,各种模型的适用范围。
- 7. 问题定义阶段的任务:确定软件的性质、规模、目标。
- 8.可行性研究应从经济、技术、法律、操作这四个方面来做。
- 9. 可行性研究阶段生成的文档是可行性研究报告、项目开发计划。
- 10.结构化方法中,需求分析阶段的任务是:
- 11. 需求分析阶段要生成的文档是需求规格说明书、初步的用户手册。
- 12.在数据字典中,需对数据流图中的哪几种成分进行定义。
- 13. 结构化方法中,总体设计阶段的任务是:
- 14.结构化的总体设计方法是将数据流图转化为软件结构图。
- 15. 数据流图有三种类型:变换型、事务型、混合型。
- 16.总体设计要遵循的概念、原理
- 17. 影响模块独立性的指标有耦合、内聚。
- 18. 结构化程序设计原则
- 19. 判断一个算法是否为结构化的依据
- 20. 描述算法的工具有程序流程图、N-S图、PAD图、PDL、判定表/判定树。
- 21.测试的原则
- 22.测试的过程分为哪些阶段
- 23. 测试的方法有:黑盒测试法、白盒测试法。
- 24. 白盒测试法有哪几种
- 25. 黑盒测试法有:等价划分法、边界值分析法、错误推测法。
- 26. 软件的质量用可靠性来衡量,软件的可靠性用MTTF来衡量,MTTF的公式。
- 27.程序中错误总数的估算
- 28.维护可分为:改正性维护、完善性维护、适应性维护、预防性维护。各种维护活动
- 二、综合题(共40分)(参考例题、习题)
- 2.1给出伪码程序 (20分)
- 2.2 给出问题描述,画出系统的顶层数据流图、0层数据流图。 (20分)
- 2.2.1 计算机储蓄系统
- 2.2.2 机票预订系统
- 2.2.3 患者监护系统
- 2.3 伪代码押题
- 2.4伪代码押题2
一、 概念(共60分,单选题、多选题)
1. 软件是程序、数据、文档的集合。
2. 软件的分类(按规模、性质分)
规模
(1)微型:1人,1~4周,0.5K
(2)小型:1人,16月,12K
(3)中型:25人,12年,5K~50K
(4)大型:520人,23年,50~100K
(5)甚大型:1001000人,45月,1M
(6)极大型:20005000人,510年,1M~10M
性质
(1)系统软件:os、汇编程序、编译程序、解释程序、DBMS、网络通信软件。
(2)应用软件:
1)事务型:MIS(1、建立数据库 2、事务操作(增、删、改、查询、统计) 3、决策)
2)实时软件:数据采集构件-à分析构件-à响应构件 协调构件
3)工程、科学计算软件:用数值算法
4)人工智能软件:(AI)用非数值算法(归约—推理机制)如专家系统、模式识别。
5)嵌入式软件:驻留于产品的ROM中,如全自动的洗衣机的控制软件。
6)个人计算机软件:字处理、电子表格……
7)网络应用软件:网络游戏、网上购物系统……
(3)工具软件:辅助软件开发、维护的软件。软件的辅助分析、设计、编码、测试的软件。
(4)可重用软件:标准库函数(如C中的tg( ))à用户自定义的数据类型à类
3. 软件危机的表现、缓解软件危机的途径
表现:
1.软件开发的成本,进度估计不准确
2.用户对已完成的软件不满意
3.软件的质量差
4.软件开发成本高开发机构
5.软件不可维护
6.生产效率低
**途径:**组织管理措施和技术方法两个方面综合考虑
产生软件危机的原因
(1)与软件本身特点有关
• 知识技术 — 软件(客观上导致开发成本、进度难估计、质量不可靠等问题)
(2)与开发维护软件的方法不正确有关
• 目前软件开发中没能彻底贯彻工程化方法
• 忽视计划(没有详尽的进度计划、成本预算)—成本进度估计不准确
• 忽视分析(没有弄清用户需求,急于开发)—开发出的软件用户不满意
• 忽视设计(没有建立起良好的软件结构,急于编程)—质量差,不可维护
• 轻视可维护性(提高可维护性——提高质量——运用质量保证手段:技术、管理、质量评审、文档、测试)
为了解决软件危机,既要有技术措施,又要有必要的组织管理措施。
4. 软件工程方法学主要有两种:结构化的软件工程方法学_瀑布模型、面向对象的软件工程方法学_喷泉模型
5. 软件生命周期包含哪几个阶段、软件开发过程包含哪几个阶段。
件生命周期包括:软件定义、软件开发、运行维护。
软件开发:系统设计(总体设计、详细设计)、系统实现(编码和单元测试、综合测试)
6. 软件开发模型有哪些,各种模型的适用范围。
瀑布模型:需求确定的软件的开发、面向过程方法学。
快速原型模型:需求不确定的软件的开发。
喷泉模型:面向对象的软件开发方法。
增量模型:大型复杂系统(需求确定的)。
螺旋模型:需求不确定的大型复杂系统。
7. 问题定义阶段的任务:确定软件的性质、规模、目标。
8.可行性研究应从经济、技术、法律、操作这四个方面来做。
9. 可行性研究阶段生成的文档是可行性研究报告、项目开发计划。
10.结构化方法中,需求分析阶段的任务是:
(1)功能分析:用数据流图和数据字典建立功能模型;(2)数据分析:用ER图建立数据模型。
11. 需求分析阶段要生成的文档是需求规格说明书、初步的用户手册。
12.在数据字典中,需对数据流图中的哪几种成分进行定义。
数据流、数据存储、数据加工和外部实体
13. 结构化方法中,总体设计阶段的任务是:
(1)软件结构设计: 将数据流图转化为软件结构图;(2)数据设计:根据ER图建立数据库表结构。
14.结构化的总体设计方法是将数据流图转化为软件结构图。
15. 数据流图有三种类型:变换型、事务型、混合型。
16.总体设计要遵循的概念、原理
决定怎样做
总体设计=概要设计/初步设计
任务
1、 划分出组成系统的物理元素——程序、文件、数据库、人工文档等;
2、 设计软件结构,系统之间的模块
总体设计主要由两部分组成:系统设计阶段、结构设计阶段
准则
1、 模块化
2、 抽象
3、 逐步求精
4、 信息隐藏
5、 模块独立
17. 影响模块独立性的指标有耦合、内聚。
18. 结构化程序设计原则
1、采用自顶向下,逐步求精的设计方法。
2.程序中用顺序、选择、多分支、while型循环、until型循环五种基本控制结构结构表示程序逻辑
3.每种控制结构单入口、单出口。
4、程序语句组成模块,每个模块单入口、单出口。
5、复杂的结构用五种基本控制结构组合嵌套实现。
6、严格控制GoTo语句
7、不仅要注意程序的结构化,还要注意数据结构的合理化。
19. 判断一个算法是否为结构化的依据
1、由五种基本控制结构组成
2、每种控制结构单入口、单出口
3、模块单入口、单出口
20. 描述算法的工具有程序流程图、N-S图、PAD图、PDL、判定表/判定树。
21.测试的原则
1.尽早的和不断的进行测试
2.事先制定测试计划,严格执行测试计划,排除测试的随意性。
3.测试应从规模测试开始,逐步进行大规模测试。
4,充分注意测试中的集群现象。
5.精心设计测试结果,使测试方案充分的覆盖程序逻辑,尽可能的发现程序中的错误。
6.设计测试方案时,应当包括合理的输入条件和不合理的输入条件。
7应由独立的第三方从事测试工作。
22.测试的过程分为哪些阶段
单元测试阶段、集成测试阶段,系统测试阶段,验收测试阶段。
23. 测试的方法有:黑盒测试法、白盒测试法。
24. 白盒测试法有哪几种
语句覆盖、判定 覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。
25. 黑盒测试法有:等价划分法、边界值分析法、错误推测法。
26. 软件的质量用可靠性来衡量,软件的可靠性用MTTF来衡量,MTTF的公式。
27.程序中错误总数的估算
28.维护可分为:改正性维护、完善性维护、适应性维护、预防性维护。各种维护活动
二、综合题(共40分)(参考例题、习题)
2.1给出伪码程序 (20分)
(1)求该算法的环形复杂度
(2)用逻辑覆盖法设计测试方案,满足各种逻辑覆盖标准。
(3)判断该算法是否为结构化的。
2.2 给出问题描述,画出系统的顶层数据流图、0层数据流图。 (20分)
2.2.1 计算机储蓄系统
2.2.2 机票预订系统
2.2.3 患者监护系统
2.3 伪代码押题
画出下列伪代码程序的流程图,计算它的环形复杂度。这个程序的逻辑有什么问题吗?
C EXAMPLE
LOOP:DO WHILE Z>0
A=B+1
IF A>10
THEN X=A
ELSE Y=Z
END IF
IF Y<5
THEN PRINT X,Y
ELSE IF Y=2
THEN GOTO LOOP
ELSE C=3
END IF
END IF
G=H+R
END DO
IF F>0
THEN PRINT G
ELSE PRINT K
END IF
STOP
程序流程图
流图
环形复杂度
V(G)=判断结点+1=6+1=7
其中判断结点为 1 , 3 , 6,8, 10, 11
逻辑问题
有问题:当Z>0时,容易形成死循环,条件Y<5中包含条件Y=2
2.4伪代码押题2
算法如下:
INPUT(A,B)
IF A>B+3 THEN X=A
ELSE X=B
IF A>10 THEN Y=B
ELSE Y=A+B
OUTPUT(X,Y)
(1)该算法的环形INPUT(A,B)
IF A>B+3 THEN X=A
ELSE X=B
IF A>10 THEN Y=B
ELSE Y=A+B
OUTPUT(X,Y)
复杂度V(G)=( 3 )
(2)下列测试方案满足何种逻辑覆盖标准。
①[(A=3,B=0),(X=0,Y=3)]
这组方案满足( 语句 )覆盖。
②Ⅰ[(A=5,B=0),(X=5,Y=5)]
Ⅱ[(A=11,B=10),(X=10,Y=10)]
这两组方案同时满足( 判定 )覆盖、( 条件 )覆盖、( 判定/条件 )覆盖和条件组合覆盖。