《软件工程》习题集2013

发布时间 : 星期六 文章《软件工程》习题集2013更新完毕开始阅读

C测试工具:指计算机辅助测试的有关工具。

4简要说明面向对象开发同结构化开发的区别? OO方法 ? 系统由代表问题领域实际事物的对象构成。 ? 将描述对象状态的数据和对象提供的服务功能封装。 ? 以“事物”作为分析重点。 ? 对象之间通过消息协作。 结构化方法 ? 系统由实现数据处理的功能构成。 ? 分离并单独分析系统的数据域和功能域。 ? 以功能作为分析重点。 ? 功能模块间通过数据传递协作。

5举例说明软件工程过程模型的种类并绘制瀑布模型。 6试述结构化分析模型构成及分析模型同设计模型关系 7简述调试和测试的区别? 调试:发现并改正错误 测试:发现错误

8简述需求工程的主要活动?

A需求开发(需求发现,需求分析,需求文档化,需求验证 B需求管理(变更控制,版本控制,需求跟踪,状态管理

9 UML的四种主要关系及图标?(依赖、泛化、实现、关联) 10什么是用户界面设计的“黄金规制”?

a)减少用户记忆负担b)保持界面一致c)一切至于用户控制之下 11软件需求分析能够被分为哪几个工作区域?

a)领域了解b)获取项目需求c) 确定用户群体和用户代表 d)利用有效的技术收集用户需求

12试述软件体系结构设计的风格和模式。

a数据为中心的体系结构b数据流风格的体系结构c调用返回的体系结构

d面向对象的体系结构e层次风格的体系结构

13简述集成测试的常用方法?

A非渐增式的 B渐增式的(自底向上、自顶向下)

14关于软件项目组的组织方式,请解释什么是民主分散式(Democratic Decentralized, DD)和控制集中式(Controlled Centralized, CC),并说明二者各自的适用领域。

民主分散式-无固定复杂人,小组成员间的通信是水平的。适合解决简单问题 控制集中式-有小组复责人,复责人与小组成员间的通信是垂直的。适合解决模块

化程度较低、困难问题

15 什么是软件? 什么是软件工程?

16软件测试过程一般可划分为哪四个主要阶段? 单元测试、集成测试、确认测试和系统测试

17 CMM是什么?共分几级?初始级、可重复级、已定义级、已管理级、优化级 18在UML包括的各种图中,哪些是用于表现系统动态行为特征的?

用例图、状态图、活动图、协作图、顺序图。

19软件危机的原因和表现

1) 造成软件危机的原因

? 早期软件开发的随意性

? 缺少有效的工程管理和团队协调机制 ? 硬件发展和计算机普及造成的冲击 ? 软件规模和复杂度提高造成的影响 2) 软件危机的主要表现

? 软件开发周期、成本的严重超过预算; ? 软件质量难于保证,用户不满意

? 缺乏有效的文档说明,导致软件无法维护和完成适应性改变 ? 生产效率远远低于计算机普及的速度

20面向对象三要素?封装、继承和多态 21软件工程的研究内容 软件开发技术 软件过程 软件工程三要素 软件开发方法 软件工具和软件工程环境 管理学、经济学、心理学等相关内容 软件工程管理 22软件工程三要素:过程、方法和工具 方法:软件开发各项任务的技术方法 工具:开发中运用的软件支撑环境

过程:为了获得高质量的软件所需要完成的一系列任务的框架及完成各项任务的步骤 23黑盒测试同白盒测试的区别? 黑盒测试 优点 ①适用于各阶段测试 ②从产品功能角度测试 ③容易入手生成测试数据 缺点 ①某些代码得不到测试 ②如果规格说明有误, 则无法发现 ③不易进行充分性测试 白盒测试 ①可构成测试数据使特定程 序部分得到测试 ②有一定的充分性度量手段 ③可或较多工具支持 ①不易生成测试数据(通常) ②无法对未实现规格说明的 部分进行测试 ③工作量大,通常只用于单 元测试,有应用局限

24什么是需求工程

需求工程应用有效的技术、方法进行需求开发和管理。确定客户需求,帮助分析人员理解问题并定义目标系统的所有外部特征。它包含与发现、记录和维护计算机系统需求相关的所有活动。

25需求工程的最终产品是需求规格说明书(SRS) 26需求工程的目标

a) 开发高质量的需求

b) 在软件生命周期内对需求进行有效管理

27.需求工程的主要活动

a)需求开发包括如下活动

需求发现 需求分析 需求文档化 需求验证

b)需求管理包括如下活动

变更控制 版本控制 需求跟踪 状态管理

28有效获取用户需求的方法:访谈,调查表、现场观察、原型、联合应用开发(JAD)

29结构化程序设计方法的基本要点是:

a)采用自顶向下、逐步求精的程序设计方法

b)使用三种基本控制结构构造程序,任何程序都可由顺序、选择、重复三种基本控制结构构造。这三种基本结构的共同点是单入口、单出口。

四、综合题

一、在测试一个48000条指令的程序时,第一个月由甲、乙两名测试人员各自独立测试这个程序。经过一个月测试后,甲发现并改正20个错误,使MTTF达到8H。同时,乙发现24个错误,其中的6个甲也发现了。以后由甲一个人继续测试该程序。 1. 刚开始测试时程序中总共有多少个潜藏的错误。 2. 为使MTTF达到240H,必须再改正多少个错误。

MTTF=I/[K(ET-EC)] ET= (E甲* E乙)/( E甲∩E乙)

求出K,然后二次用第一个公式,求EC

二、使用基本路径测试法,测试下列伪码程序的测试用例:(要求

1:根据过程画出程序流图 2:计算流图的环形复杂度 3:确定独立路径 INTERFACE RETURNS X,Y;

INTERFACE ACCEPTS A,B,C,D; 1: START

INPUT(A,B,C,D) 2: IF (A>0)

3: AND (B>0) 4: THEN X=A+B 5: ELSE X=A-B 6: END 7: IF (C>A)

8: OR (D

12: PRINT(X,Y) STOP

根据过程画出程序流图 2:计算流图的环形复杂度 3:确定独立路径 PROCEDURE average:

1. TYPE i=1; total.input=total.valid=0;sum=0; 2. While value[i]<>-999 3. AND total.input<100

4. DO increment total.input by 1; 5. IF value[i]>=minnum

6. AND value[i]<=maxnum

7. THEN increment total.valid by 1; sum=sum+value[i] 8. ENDIF

Increment i by 1; 9. END DO

10. IF total.valid>0

11. THEN average=sum/total.valid; 12. ELSE average=-999; 13. ENDIF

根据过程画出程序流图 2:计算流图的环形复杂度 3:确定独立路径

float AvgEx(int arr[],int len) {

1 float sum=o; 2 int cnt=0;

3 for(int i=0; 4 i

6 int a=arr[i]; 7 int b=arr[i]/10; 8 if(a!=b)continue; 9 else { sum+=(float)arr[i]; cnt++; } }

10 if(cnt!=0)

11 return sum/(float)cnt; 12 else return 0;

13 }

三、在软件规模估算(Software Sizing Estimations)中,有如下公式来估算规模(size)的期望值

(expected value),S:

S = ( Sopt + 4Sm + Spess ) / 6

其中,Sopt为乐观值,Sm为最可能值,Spess为悲观值,S为加权平均值,该软件项目的复

联系合同范文客服:xxxxx#qq.com(#替换为@)