1、简述软件生命周期的划分。
软件生命周期划分为三个时期,八个阶段
三个时期分别为:软件定义时期,软件开发时期和软件维护时期;
八个阶段分别为:问题定义,可行性研究,需求分析,总体设计,详细设计,编码与单元测试,软件维护。
2、简述软件工程的7条基本原理。
- 用分阶段的生命周期计划严格管理
- 坚持进行阶段评审
- 实行严格的产品控制
- 采用现代程序设计技术
- 结果应能清楚地审查
- 开发小组的人员应该少而精
- 承认不断改进软件工程实践的必要性
3、简述数据规范化三大范式的定义和内容。
第一范式:每个属性值都必须是原子值,即仅仅是一个简单值而不含内部结构。
第二范式:满足第一范式条件,而且每个非关键字属性都由整个关键字决定(而不是由关键字的一部分来决定)。
第三范式:满足第三范式(3NF)必须先满足第二范式(2NF)。每个非关键字属性仅有关键字决定,而一个非关键字属性不能仅仅是对另一个非关键字属性的进一步描述,即一个非关键字属性值不依赖于另一个非关键字属性值。
4、使用形式化的术语,简述有穷状态机的定义。
一个有穷状态机可以表示为一个5元组(J,K,T,S,F),其中:
- ? J是一个有穷的非空状态集;
- ? K是一个有穷的非空输入集;
- ? T是一个从(J-F)*K到J的转换函数;
- ? S是一个初始状态;
- ? F包含于J,是终态集。
5、模块独立性衡量标准中,简述内聚的分类,以及设计建议。
分类:高内聚(功能内聚,顺序内聚)、中内聚(通信内聚,过程内聚)、低内聚(时间内聚,逻辑内聚,偶然内聚);
设计建议:力求做到高内聚,尽量少用中内聚,不用低内聚。
6、模块独立性衡量标准中,简述耦合的分类,以及设计建议。
分类:数据耦合,控制耦合,特征耦合,公共环境耦合,内容耦合;
设计建议:尽量使用数据耦合,少用控制耦合和特征耦合,限制公用耦合,完全不用内容耦合。
7、简述变换流和事务流的定义。
变换流:信息沿输入通路进入系统,由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统。当数据流图具有这些特征时,这种信息流就叫作变换流;
事务流:数据沿输入通路到达一个处理T,这个处理根据输入数据的类型在若干个动作序列中选出一个来执行。这类数据流应该划为一类特殊的数据流,称为事务流。
8.简述计算环形复杂度的3中方法。
(1) 流图中线性无关的区域数等于环形复杂度。
(2) 流图G的环形复杂度V(G)=E-N+2,其中,E是流图中边的条数,N是结点数。
(3) 流图G的环形复杂度V(G)=P+1,其中,P是流图中判定结点的数目。
9、简述在人机界面设计过程中,经常会遇到的4类问题。
人机界面设计中常遇的4类问题如下:
- 系统响应时间。
- 用户帮助设施。
- 出错信息处理。
- 命令交互。
10、简述结构化程序设计的经典定义。
如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。
11、简述软件测试的步骤。
1) 模块测试
2) 子系统测试
3) 系统测试
4) 验收测试
5) 平行运行
12、简述软件测试的准则。
- 所有测试都应该能追溯到用户需求;
- 应该远在测试开始之前就制定出测试计划;
- 把Pareto原理应用到软件测试中**;**
- 应该从“小规模”测试开始,并逐步进行“大规模”测试;
- 穷举测试是不可能的;
- 为了达到最佳的测试效果,应该由独立的第三方从事测试工作。
13、简述语句覆盖,判定覆盖、条件覆盖、以及条件组合覆盖的定义。
- 语句覆盖:设计的测试用例能使程序中每条语句至少执行一次。
- 判定覆盖:选取足够的测试用例,使得程序中每个判断的可能结果都至少执行一次,也就是说使程序的每个判断分支至少通过一次。
- 条件覆盖:选择足够的测试用例,使得程序中每个判定表达式的每个条件都取到各种可能的结果。
- 条件组合覆盖指:选取足够的测试用例,使得每个判定表达式中条件的各种可能的组合都至少出现一次。
14、单元测试阶段的测试重点是什么p>
- 1) 模块接口
- 2) 局部数据结构
- 3) 重要的执行通路
- 4) 出错处理通路
- 5) 边界条件
15、简述什么是软件维护,以及软件维护的4项基本活动。
所谓软件维护就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。软件维护的4项基本活动是:改正性维护,适应性维护,完善性维护以及预防性维护。
16、决定软件可维护性的基本因素有哪些h2>
可理解性,可测试性,可修改性,可移植性,可重用性
17、简述数据流图的基本要素。
数据流图的主要元素包括:数据的源点/终点、变换数据的处理、数据存储、数据流。
备注
伪代码存在两个逻辑问题:一,该程序属于非结构化程序,因为包含goto语句,容易出现死循环及逻辑混乱问题;二,当y=5,此时程序中的y=2永远不会成立。
满足判定覆盖的测试用例如下:(只要符合覆盖标准即可,以下仅为其中一组用例)
1)使两个判定表达式之值全为假
? 输入:A=-1,B=-2,C=-3,D=1
? 预期的输出:X=1,Y=-2
2)使两个判定表达式之值全为真
? 输入:A=1,B=2,C=3,D=1
? 预期的输出:X=3,Y=2
结语
文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览93694 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!