# 一、单选择
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
# 二、判断
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
确定
# 三、名词解释
:::tip 1、项目风险 指项目在预算、进度、人力、资源、顾客和需求等方面的原因对软件项目产生的不良影响。 :::
:::tip 2、α测试 是指软件开发公司组织内部人员模拟各类用户行为对即将面市的软件产品( 称为α版本) 进行测试,试图发现错误并修正。 :::
:::tip 3、技术风险 指软件在设计、实现、接口、验证和维护过程中可能发生的潜在问题,对软件项目带来的危害。 :::
:::tip 4、活动图 描述系统为完成某项功能而执行的操作序列,这些操作序列可以并发和同步。 :::
:::tip 5、状态图 描述类的对象的动态行为。它包含对象所有可能的状态、在每个状态下能够响应的事件以及事件发生时的状态迁移与响应动作。 :::
:::tip 6、白盒测试 是已知产品内部工作过程, 通过测试检验产品内部动作是否按照产品规格说明的规定正常进行。 :::
:::tip 7、黑盒测试 把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能需求。 :::
:::tip 8、单元测试 又称模块测试,它着重对软件设计的最小单元(软件构件或模块)进行验证。单元测试根据设计描述,对重要的控制路径进行测试,以发现构件或模块内部的错误。单元测试通常采用白盒测试,并且多个构件或模块可以并行进行测试。 :::
:::tip 9、集成测试 又称组装测试,经单元测试后的模块需集成为软件系统,集成测试是对集成后的软件系统进行测试,主要用来揭露设计阶段产生的错误。 :::
:::tip 10、确认测试 按照需求规格说明书中的确定指标对系统进行功能与性能的测试。该阶段进行明确测试(对照需求规格说明书用黑盒法进行测试) ,软件配置测试(文档的完整性,发现遗漏错误及时补充和修改。 :::
:::tip 11、恢复测试 主要检查系统的容错能力。当系统出错时, 能否在指定的时间间隔内修正错误并重新启动系统。 :::
:::tip 12、软件项目的成本管理 估算软件项目的成本,作为立项和签合同的依据之一, 并在软件开发过程中按计划管理经费的使用。 :::
:::tip 13、软件质量 软件产品满足规定的和隐含的与需求能力有关的全部特征和特性。 :::
:::tip 14、软件生命周期 一个软件从定义,开发,使用和维护,直到最终被废弃,要经历一个漫长的时期,通常把软件经历的这个漫长时期称为生命周期。 :::
:::tip 15、数据字典 数据字典是描述数据流图中数据信息的集合(描述内容包括:数据流图、状态转换图、E-R 图中的数据信息 、控制信息等 。 :::
:::tip 16、数据流图 描述输入数据流到输出数据流的变换,用于对系统的功能建模。 :::
# 四、简答
1.软件危机表现方面
- 软件开发成本过高;
- 软件质量得不到保证;
- 软件开发效率低;
- 难以控制开发进度,工作量估计困难;
- 软件不能满足社会发展的需求,成为社会、经济发展的制约因素;
- 程序规模、工作量与成本的关系。
2.软件项目管理任务
- 制定软件项目的实施计划和方案;
- 对人员进行组织和分工;
- 按照计划进度,以及成本管理、风险管理、质量管理的要求进行软件开发,完成软件项目的各项要求和任务。
3.软件产品具有哪些特点?
- 软件开发与传统的产品生产存在本质差别;
- 软件是逻辑产品,而不是物理产品;
- 软件不会磨损;
4.简述在测试中采用自顶向下集成和自底向上集成的优缺点。
- 自顶向下集成的优点在于能尽早地对程序的主要控制和决策机制进行检验, 因此较早地发现错误。
- 缺点是在测试较高层模块时, 低层处理采用桩模块替代, 不能反映真实情况, 重要数据不能及时回送到上层模块, 因此测试并不充分。
- 自底向上集成方法不用桩模块, 测试用例的设计亦相对简单, 但缺点是程序最后一个模块加入时才具有整体形象。
- 它与自顶向下综合测试方法的优缺点正好相反。
5.衡量某种程序语言是否适合于特定的项目, 一般应考虑哪些因素?
- 算法和计算复杂性;
- 软件运行环境;
- 用户需求中关于性能方面的需要;
- 数据结构的复杂性;
- 软件开发人员的知识水平;
- 可用的编译器与交叉编译器。
6.简述软件维护及其过程。
- 软件维护就是要针对用户使用软件产品过程提出的问题而对软件产品进行相应的修改或演化,从而修正错误,改善性能或其它特征,以及使软件适应变化的环境。
- 软件维护的过程:
- 提出维护要求,
- 分析维护要求,
- 提出维护方案,
- 审批维护方案,
- 确定维护计划,
- 修改软件设计,
- 修改程序,
- 测试程序,
- 复查验收。
7.什么是需求分析?需求分析阶段的基本任务是什么?
- 需求分析指的是在建立一个新的或改变一个现存的电脑系统时描写新系统的目的、范围、定义和功能时所要做的所有的工作。
- 需求分析阶段的基本任务是:要准确的定义新系统的目标,为了满足用户需要,回答系统必须“做什么”的问题。
8.什么叫维护?维护的类型有哪些?
- 软件维护就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。
- 软件维护类型有:
- 改正性维护:对程序使用期间发现的程序错误进行诊断和改正的过程;占维护工作量17-21% 。
- 适应性维护:配合变化了的环境进行修改软件的活动;占维护工作量18-25% 。
- 完善性维护:满足用户在使用过程中提出增加新的功能或修改已有功能的建议而进行的改进工作;占维护工作量50-66%。
- 预防性维护:为了改善未来的可维护性或可靠性而修改软件的工作;占维护工作量4% 左右。
9.用例图的作用是什么?
- 用例图是外部参与者所能观察到的系统功能的模型图。由一组用例、参与者及它们之间的关系组成。主要用于对系统、子系统或类的功能行为进行建模。参与者是与系统交互的外部实体,可以是人,也可以是其它系统。用例是从用户的角度描述系统的行为(功能)它将系统的功能描述成一系列事件,这些事件最终对参与者产生可观察结果。
10.简要写出数据流图映射到结构图的步骤。
- 复审和精化数据流图
- 确定数据流图的类型:变换型、事务型
- 将数据流图映射成初始结构图
- 改进初始结构图。
11.简要写出软件生命周期各阶段及任务。
软件生命周期大致可分为6个阶段:
- 可行性研究:确定问题是否值得解,技术可行性、经济可行性、操作可行
- 需求分析:系统必须做什么
- 总体设计:系统如何实现,包括系统设计和结构设计
- 详细设计:具体实现设计的系统
- 实现:编码和测试
- 运行维护:保证软件正常运行。
12.简要写出软件设计工程的6个步骤。
- 制订规范;
- 体系结构和接口设计;
- 数据/类设计;
- 部件级设计;
- 编写设计文档;;
- 设计评审。
13.简要写出用况建模的步骤。
- 定义系统;
- 确定执行者;
- 确定用况;
- 描述用况;
- 定义用况间的关系;
- 确认模型。
14.结合所学知识写出面向对象分析的一般步骤。
- 获取客户对系统的需求:包括标识场景和用况,以及建造需求模型。
- 用基本的需求为指南,来选择类和对象(包括属性和操作)。
- 定义类的结构和层次。
- 建造对象——关系模型。
- 利用用况/场景来复审分析模型。
15.简要写出画分层数据流图的步骤。
- 画出系统的输入输出,
- 画出系统内部,
- 画出加工内部
- 重复第3步,直至每个尚未分解的加工都足够简单(即不必再分解)。