当前位置:文档之家› 《软件工程基础》习题集-)

《软件工程基础》习题集-)

《软件工程基础》习题集-)
《软件工程基础》习题集-)

《软件工程基础》习题集-()

作者: 日期:

励软件工程基础》习题集

第一章概述

1?什么是软件危机,它有哪些典型表现?

2?简述产生软件危机的原因和解决的思路。

3?什么是软件工程?它有哪些本质特性?

4?软件工程是如何用来消除软件危机的?

5?假设你是某软件开发企业的CEO,当你把教材P.4的图1.1给手下的软件工程师们看,同时告诉他们应及早发现并改正错误的重要性时,有人不以为然,认为要求在错误进入软件前就发现并清除它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么又如何能够在设计阶段就发现并清除呢?”那你应该如何说服?

6?简述软件的定义。

7?软件工程的目的是什么?

8?什么是软件工程方法学?软件工程是一种什么样的技术?包括哪三大要素?分为哪三个分支?

9?简述软件工程的基本原理。

10.软件工程的基本开发原则有哪些?

11.构成软件工程的基本元素有哪些?

12.什么是软件过程?它与软件工程方法学有何关系?

13.什么是软件生命周期?什么是软件生命周期模型?

14.简述软件生命周期方法学的途径,以及划分阶段步骤的目的和实质。

15.试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优缺点,说明它们各自的适用范围。

第二章可行性研究.

I?在软件开发的早期阶段,为什么要进行可行性研究?其目的和任务各是什么?

2.应该从哪些方面研究目标系统的可行性?

3 ?可行性研究有哪些工作步骤?

4.简述系统流程图在可行性研究中的作用。

5.简述数据流图在可行性研究中的作用和用途。

6.简单描述数据字典但内容和定义数据的方法。

7.说明软件计划的内容和目标。

8.什么是软件范围?定义软件范围需要哪些信息?

9.简述软件开发环境资源的三个层次。

10.软件环境资源的特征有哪些?它们对制定软件计划都有哪些意义?

II.软件计划中,安排软件开发进度主要可以用哪些工具?都有哪些优缺点?

12.主要的成本估计技术有哪些?其依据的主要是什么?

13.为什么说成本估计是不可能精准的?

14 .进行成本/效益分析的方法主要有哪些?

15.软件计划的主要内容有哪些?

16.如何对制定完成的软件计划进行复审?为什么要复审?

17.为方便储户,某银行拟开发计算机储蓄系统。储户填写的存款单或取款单由业务员键入系统。如果是存款,系统记录存款人的姓名、地址、存款类型、存款日期、存款数量和利率等信息,并印出存款单给储户;如果是取款,系统计算利息并印出利息清单给储户。

请写出问题定义并分析此系统的可行性。

第三章需求分析

1?为什么要进行需求分析?通常对软件系统有哪些需求?

2?怎样与用户有效地沟通,以获得用户的真实需求?

3?需求分析的任务是什么?

4?通常系统的需求可以分为哪几个层次?

5?进行需求分析的步骤有哪些?

6?简述建立原型模型对软件需求分析的作用。

7?解释实体-联系图及其用途。

8 ?说明为什么需要进行需求验证及验证的步骤有哪些?

9?银行计算机储蓄系统的工作过程大致如下:储户填写的存款单或取款单由业务人员键入系统,如果是存款则系统记录存款人姓名、住址(或电话号码)、身份证号码、存款类型、存款日期、到期日期、利率及密码(可选)等信息, 并印出存单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。

请用数据流图描绘本系统的功能,并用实体一联系图描绘系统中的数据对象。

1?为每种类型的模块耦合举一个具体的例子。

2?为每种类型的模块内聚举一个具体的例子。

3?简单说明系统总体设计的步骤步骤。

4?举例说明模块化原理的经验1和经验2。

5?为什么要尽量使用数据耦合,少用控制耦合,限制公共耦合的范围,完全不用内容耦合? 6?为什么模块的规模要适中?

7?请说明为什么模块控制的宽度和深度要适度。

8?简述面向数据流设计方法的基本思想。

9?常用数据流类型有哪些?

10?面向数据流的设计方法主要有哪几个步骤?

11 ?用面向数据流的方法设计第二章习题17系统的软件结构。

1?详细设计的任务是什么?

2?在对系统做详细设计时,应遵循哪些原则?

3?简述结构化设计的特点。

4?结构化程序设计中有哪几种基本控制结构?分别描绘在程序流程图、盒图和PDA图中这些基本控制的图例

5.假设只有SEQUENCE和DO_WHILE两种控制结构,请问应该如何完成IF_THEN_ELSE操作?

6.假设只有SEQUENCE和IF_THEN_ELSE两种控制结构,请问应该如何完成DO_WHILE操作?

7.试说明ISO为什么要建议停止使用程序流程图,而推荐使用PDA图?

8.请画出下列伪码程序的程序流程图、盒图和PDA图。

START

IF p THEN

WHILE q DO

f

END DO

ELSE

BLOCK

g

n

END BLOCK

END IF

STOP

9.试说明Jacks on方法是一种怎么样的程序设计方法。它有哪些工作步骤?

10.请将教材P.124图6.13统计空格程序的Jackson图改画成为等价的盒图和PDA ffl。

11.人机对话由操作员信息和系统信息交替组成。假设一段对话总是由操作员信息开始,以系统信息结束,请用Jackson图描绘这样的一段人机对话过程。

1?说明什么是程序编码?为什么程序设计语言的特点和编码风格会影响到程序的可靠性、可读性、可测试性和可维护性?

2?用户界面设计的最一般原则,即所谓“黄金规则”是什么?

3?软件界面设计包含了哪几个方面的基本内容?

4?用户界面提供系统服务的方式通常有哪两种?

5.WIMF界面是屏幕菜单驱动用户界面的一种形式,其设计准则有哪些?

6?为什么说软件界面设计的质量会直接影响到用户对软件产品的评价?

7.什么是系统响应时间?系统响应时间有哪些重要属性?

8?在设计软件系统的用户帮助设施时,需要注意解决哪些问题?

9.软件出错处理设计,即软件安全性设计。一个交互式出错处理程序应该具备哪些功能和属性?

10.测试的最基本目标是什么?

11.软件测试的原则有哪些?

12.软件测试的方法有哪几种?

13.简单说明什么是白盒测试,什么是黑盒测试。

14.简述软件测试的步骤。

15.举例说明通常情况下穷尽测试是不可能的。

16.为什么单元测试必须由编程者自己完成?

17.单元测试的主要手段有哪些?

18 .单元测试主要从哪5个方面进行?

19.为什么人工代码审查十分重要?

20.集成测试主要有渐增式测试、非渐增式测试两种,试述两种方式的异同点。

21.描述集成测试的两种策略,并比较它们的优缺点。

22.什么是回归测试?回归测试的测试用例集如何确定?

23.什么是确认测试?确认测试的任务是什么?如何确认其范围?

24.设计测试方案的任务有哪些?

25.什么是逻辑覆盖测试法?它主要用于什么测试?

26.什么是等价划分法?它主要用于什么测试?

27.什么是边值分析法?它主要用于什么测试?

28.什么是错误推测法?它主要用于什么测试?

29.一个软件的测试策略应该是怎样的?

30.什么是调试?调试和测试有什么不同?

31 .简单说明调试的方法和策略。

32.什么是软件的可靠性、可用性和正确性?

I.什么是软件维护?

2 ?软件维护有哪几种类型?

3.为什么说软件文档维护和代码维护同样重要?

4.为什么说维护的代价很高?应该怎样做才能降低维护的代价?

5.导致维护成本高企的原因主要有哪些?

6.什么是软件的可维护性?

7.如何提高软件的可维护性?

8.维护报告的主要内容有哪些?

9.为什么说文档是影响软件可维护性的决定因素?

10.什么是软件的系统文档?

II.什么是软件的用户文档?

12.什么是可重用性?如何通过提高软件的可重用性来提高软件的可维护性?

13.为什么要进行软件可维护性复审?

14.什么是软件的逆向工程和再工程?

15 .逆向工程与再工程与软件的预防性维护有什么样的关系?

16.假设你的任务是对一个已有软件进行重大修改,而且只允许你从以下文档中选取两份:(a)程序的规格说明;

(b)程序的详细设计结果(自然语言描述加上某种设计工具表示);(b)源程序清单(其中有适当数量的注解)。

你将选取哪两份文档?为什么这样选取?你打算如何完成这个任务?

17.分析预测在第二章习题17的储蓄系统交付使用后,用户可能提出哪些改进或扩充功能的要求。如果由你来开发该系统,你在设计时会采取哪些措施,以方便交付后的修改?

第八章面向对象方法学引论

1?为什么要引入面向对象方法学?

2?面向对象方法学有哪4个基本要素?

3.面向对象方法学的优点主要有哪些?

4?什么是“对象”?它与传统数据有何不同?

5.什么是“类”?

6.什么是“继承”?

7.什么是模型?软件开发为什么要建立模型?

8.什么是对象模型?建立对象模型时主要使用哪些图形符号?这些符号的含义是什么?

9.什么是动态模型?建立动态模型时主要使用哪些图形符号?这些符号的含义是什么?

10.什么是功能模型?建立功能模型时主要使用哪些图形符号?

11.试用面向对象的观点分析、研究第二章习题17的储蓄系统的例子。在这个例子中,有哪些类?试建立它的对象模型。

1 ?进行面向对象分析的基本过程是怎么样的?

2.建立对象模型有哪几个步骤?

3?复杂问题的对象模型有哪5个层次?

4.建立动态模型的步骤有哪些?

5.如何建立功能模型?

6.用面向对象方法分析第二章习题17中描述的储蓄系统,试建立它的对象模型、动态模型和功能模型

1 ?面向对象设计应该遵循哪些准则?简述每条准则的内容,并说明遵循该条准则的必要性。2?简述有助于提高面向对象设计质量的每条主要启发式规则的内容和必要性。

3.为什么说类构件是目前较为理想的可重用软构件?它有哪些重用方式?

4?什么是继承耦合?

5.如何计算软件重用带来的净成本节省?

6.试用面向对象的方法设计第二章习题17中描述的储蓄系统。

1?面向对象实现应该选用哪种程序设计语言?为什么?

2?面向对象程序设计语言主要有哪些技术特点?

3?选择面向对象程序设计语言时主要应该考虑哪些因素?

4?良好的面向对象程序设计风格主要有哪些准则?

5?测试面向对象软件时,单元测试、集成测试和确认测试各有哪些新特点? 6?测试面向对象软件时,主要有哪些设计单元测试用例的方法?

7?测试面向对象软件时,主要有哪些设计集成测试用例的方法?

8?测试面向对象软件时,主要有哪些设计确认测试用例的方法?

第十二章项目管理.

1?请简单描述有哪些进行软件规模估算的方法。

2?在工作量估算技术中,动态多变量模型比静态单变量模型有哪些优点?

3.简述Gantt图的用途和优缺点。

4.简述关键路径法CPM工作步骤

5.目前项目开发时常用的小组组织方法有哪些?

6.简述主程序员组的优缺点。

7.什么是软件质量?

8.软件质量保证的措施主要有哪些?

9.参加软件质量保证活动的人员有哪两类?

10.简述技术复审的必要性。

11.什么是软件能力成熟度模型?其基本思想是什么?

12.简述软件能力成熟度模型的5个等级。

相关主题
文本预览
相关文档 最新文档