课后习题答案.docx

上传人:b****4 文档编号:4261465 上传时间:2022-11-28 格式:DOCX 页数:14 大小:31.24KB
下载 相关 举报
课后习题答案.docx_第1页
第1页 / 共14页
课后习题答案.docx_第2页
第2页 / 共14页
课后习题答案.docx_第3页
第3页 / 共14页
课后习题答案.docx_第4页
第4页 / 共14页
课后习题答案.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

课后习题答案.docx

《课后习题答案.docx》由会员分享,可在线阅读,更多相关《课后习题答案.docx(14页珍藏版)》请在冰豆网上搜索。

课后习题答案.docx

课后习题答案

 

第一章1

第二章2

第三章3

第四章5

第五章6

第六章8

第七章9

第八章10

第九章10

课后习题答案

第一章项目的市场调研

习题

1.选择题

(1)软件是计算机系统中与硬件相互依存的另一部分,它包括文档、数据和()。

A.数据B.软件C.文档D.程序

(2)软件工程是一门研究如何用系统化、()、可度量化等工程原则和方法去进行指导软件开发和维护的学科。

A.规范化B.标准化C.抽象化D.简单化

(3)软件工程的出现主要是由于()。

A.方法学的影响B.软件危机的出现

C.其他工程学科的发展D.计算机的发展

(4)可行性研究主要包括经济可行性、技术可行性、法律可行性和()等六个方面。

A.运行可行性B.条件可行性C.环境可行性D.维护可行性

(5)编制项目开发计划的目的是用文件的形式,把在开发过程中各项工作的负责人员、开发进度、所需经费预算、所需软件、硬件条件等问题做出的安排以()记载下来。

A.文件形式B.文档形式C.电子档案形式D.条文形式

2.填空题

(1)软件工程是开发、运行、维护和修复软件的系统方法,这里所说的系统方法,是把系统化的、规范化的、可度量化的途径应用于软件生存周期中,也就是把工程化应用于软件中。

(2)可行性研究的任务不是具体解决系统中的问题,而是确定问题是否值得解决、是否能够解决。

(3)软件的开发计划也称项目实施计划,是一个综合的计划,是软件开发工作的指导性文档,阅读对象是软件开发的主管部门、软件技术人员和普通用户。

3.思考题

(1)软件危机产生的原因是什么?

为何要引入软件工程的概念?

答:

①忽视了软件开发前期的需求分析的需求分析;

②开发过程没有统一、规范的方法论的指导,文档资料不齐全,忽视了人与人之间的交流。

③忽视测试阶段的工作,提交给用户的软件质量差。

④请示软件的维护。

(2)可行性研究的主要任务有哪些?

答:

①经济可行性②技术可行性③时机可行性

④管理上的可行性⑤法律可行性⑥运行可行性

(3)制定项目开发计划的主要任务是什么?

答:

①项目资源计划

软件开发中的资源包括用于支持软件开发的硬件,软件工具以及人力资源。

②成本预算

成本预算就是要估计总的开发成本,并将总的开发费用合理地分配到开发的各个阶段中去。

③进度安排

进度安排确定最终的软件交付日期,并在限定的日期内安排和分配工作量。

第二章需求分析

习题

1.选择题

(1)需求分析阶段的工作可以分成4个方面:

对问题的识别、分析与综合、制订需求规格说明书和()。

A.需求分析评审 B.对问题的解决 C.对过程的讨论D.功能描述

(2)以下不是结构化分析方法描述系统功能模型的方法是(   ).

A.数据流图  B.数据字典  C.加工说明   D.流程图

(3)以下不是对象具有的特点是().

A.数据的封装性B.并行性C.模块独立性好D.对象是被动的

(4)对象模型技术是1991年由JameRumbaugh等5人提出来的,该方法把分析收集到的信息构造在对象模型、动态模型和功能模型中,将开发过程分为系统分析、系统设计()和实现4个阶段。

A.对象设计B.类的设计C.模块设计D.程序设计

(5)。

按照层次来划分。

UML的基本构造块包含:

视图、图和()

A.功能模型B.模型元素C.示例D.视图元素

2.填空题

(1)需求分析可分为对问题识别_、分析与综合、编制需求分析文档、需求评审四个阶段。

(2)需求分析的任务是理解和表达用户的需求,借助当前系统的物理模型导出目标_系统的逻辑模型,解决目标系统“做什么”的问题所要做的工作是深入描述软件的功能和性能,确定软件设计的限制和软件同其他系统元素的接口细节,定义软件的其他有效性需求。

(3)系统分析是对问题的识别和说明的过程,分析员要回答的问题是“系统必须做什么”的问题,而不是“系统应该怎么做”的问题。

(4)结构化分析方法是一种面向数据流的需求分析方法。

这种方法通常与设计阶段的结构化设计衔接起来使用。

(5)面向对角分析模型通常包括对象模型、功能模型、动态模型。

(6)类是某些对象的模板,抽象地描述属于该类的全部对象的属性和操作。

(7)UML是一种可视化的、用于绘制软件蓝图的标准建模语言。

可心用UML对软件系统的各种制品(包括程序、文档等)进行描述。

3.思考题

(1)什么是需求分析?

需求分析阶段的基本任务是什么?

答;一个项目通过市场调研,进行深入细致的可行性分析,获准开发后,为了保证制定的软件开发计划详细可行,还需要对软件目标及范围求精和细化,从而解决软件系统必须要做的工作。

这就是本项目所阐述的需求分析

基本任务:

①获得当前系统的物理模型

②抽象出当前系统的逻辑模型

③建立目标系统的逻辑模型

④对逻辑模型的补充

(2)什么是结构化分析方法?

该方法使用什么描述工具?

答:

结构化分析方法是一种面向数据流的需求分析方法。

该方法主要是利用数据流图、数据字典和加工说明等来描述系统的功能模型。

(3)什么是面向对象技术?

面向对象方法的特点是什么?

答;面向对象技术是一整套实用的软件开发方法

特点:

数据的封装性。

 以数据为中心。

 对象是主动的。

模块独立性好。

并行性。

(4)什么是类?

类与传统的数据类型有什么关系?

答;在面向对象方法学中,类是某些对象的模板,抽象地描述属于该类的全部对象的属性和操作。

(5)建立分析和设计模型的一种重要方法是MUL,试问MUL是一种什么样的建模方法?

它如何表示一个系统?

(6)UML中提供哪几种图?

并说明每种图所描述的内容是什么?

(7)对教师信息管理系统,用MUL的图形符号建立系统的用例图。

第三章选择项目的总体设计

习题

1.选择题

(1)系统开发的命名规则是()

A.变量名只能由大小写英文字母、“_”以及阿拉伯数字组成

B.名称的第一个字符必须是英文字母或数字

C.全局变量、局部变量命名必须用英文字母简写来命名

D.数据库表名、字段名等命名应尽量体现数据库、字段的艺能

(2)面向事务设计方法首先确定主要的(C),然后逐层详细描述各个状态的(A)。

A.转化过程B.状态变化C.状态分类D.转化变化

(3)使用面向对象的设计方法进行对象分析和设计时的步骤是(ABCED)。

A.识别对象B.确定操作C.定义操作

D.确定对象之间的通信E.完成对象定义

(4)软件建模的三个模型是:

(C)描述系统能什么,(F)描述系统在何时、何地由何角色、按什么业务规则去执行,以及执行的步骤或流程,(B)描述系统工作前的数据来自何处,工作中的数据暂存什么地方,工作后的数据放到何处,以及这些数据之间的关联。

A.设计模型B.数据模型C.功能模型

D.性能模型E.用例模型F.业务模型

2.填空题

(1)总体设计的主要任务是根据用户需求分析阶段得到的目标系统的物理模型确定一个合理的系统解决方案。

(2)面向数据流设计的目标是给出设计软件结构的一个系统化途径。

根据数据流,采用自顶向下逐步求精的设计方法,按照系统的层次结构进行逐步分解,并以分层数据流图这种结构关系。

(3)面向对象的设计将面向对象分析方法建立的分析模型转化为构造软件的设计模型。

(4)UML是统一建模语言的缩写,它是一种图形符号建模语言,利用它可以进行需求分析、概要设计、详细设计、编程实现、项目计划、测试、原型迭代、产品发布和产品维护。

 

第四章软件项目详细设计

习题

1.选择题

(1)下面关于详细设计的说法错误的是()

A详细设计阶段的任务是将解决问题的办法进行具体化

B.详细设计阶级是以比较抽象的方式提出了解决问题的方法

C.详细设计阶段不用真正编写程序,而是设计出程序的详细规格说明

D.详细设计是将概要设计的框架内容具体化、明细化

(2)类图是静态图的一种,它包括的三个部分是()。

A.属性B.类C.用户接口D.联系

(3)下面关于数据库的描述正确的是()

A.数据库是存储和处理数据用的

B.数据库设计的目的是使信息系统在数据库服务器上建立一个好的数据模型

C.数据库设计的主要工作是设计数据库的表

D.数据库是用来确定对象之间通信的工具

E.数据库设计的难易程度取决于数据关系的复杂程度和数据量的大小两个要素

(4)传统的详细设计的工具主要包括()

A.程序流程图B.数据结构设计

C.模块和接口D.判定表

E.程序设计语言

2.填空题

1.RUP(统一开发过程)模式的最大优点是按照角色识别用例方法,该方法可以较为直观地建立起系统的架构,通过反复识别,避免需求中的露项。

2.类有属性、操作、结束以及其他成分等,属性描述类性质的实例所能具有的值,操作实现类的服务功能,用户接口就是用户和系统交互的界面,联系代表对象之间的关系.

3.详细设计需要对系统的模块做概要性的说明,主要包括模块描述、算法描述,数据描述。

4.面向对象的详细设计从概要设计的对象和类开始。

算法是设计对象中每个方法的实现规格,数据结构的设计与算法是同时进行的,因为这个方法要对类的属性进行处理,主要包括三类对数据进行计算,对数据进行计算,监控对象事件。

 

第五章软件项目的实现

习题

1.选择题

(1)下列标识符中,不合法的用户标识符为()

A.a#bB._intC.a_10D.Pad

(2)每个类(C)构造函数。

A.只能有一个B.只可有共有的

C.可以有多个D.只可有缺省的

(3)在私有继承的情况下,基类成员在派生类中的访问权限()。

A.受限制B.保持不变C.受保护D.不受保护

(4)对象的三要素是()。

A.窗口、时间、消息B.窗口、数据、动作

C.属性、方法、事件D.数据、函数、动作

(5)程序的三种基本控制结构是()。

A.数组、递推、排序B.递归、递推、迭代

C.顺序、选择、循环D.过程、子程序、分程序

(6)下面叙述正确的是()。

A.算法的执行效率与数据的存储结构无关

B.算法的空间复杂度是指算法程序中指令的条数

C.算法的有穷性是算法必须能在执行有限个步骤之后终止

D.以上三种描述都不对

2.填空题

1.在类的成员声明时,若使用protected修饰符则该成员只能在该类或其派生类中的使用。

2.类的静态成员属于类的方法所有,非静态成员属于类的实例所有。

3.算法复杂度主要包括时间复杂度和空间复杂度。

4.把一个整数转换成字符串,并倒叙保存在字符数组S中,请补充fun函数中的两处空,是她能得出正确的结果,不得增行或删行,也不得更改程序的结果。

#include"stdio.h"

#defineN80

chars[N];

voidfun(longintn)

{inti=0;

while(n>0)

{s[i]=n%10+'0';

n=1;

i++;

}

S[i]=2;

}

Main()

{longintn=12345;

Printf("***theorigialdata***\n");

Printf("n=%ld",n);

Fun(n);

Printf("\n%s",s);

}

3.思考题

(1)第一代至第四代语言是如何划分的?

各具有什么特点?

包括哪些语言?

(2)过程设计语言具有哪些特征?

(3)什么是对象?

对象具有哪几种形式?

(4)程序的编码风格主要体现在哪几个方面?

答:

编码风格包括四个方面,即源程序文档化,数据说明的方法,语句结构和输入/输出方法。

(5)面向对象生存期模型与传统的生存期模型有什么区别?

4.程序改错

(1)#include"stdio.h"

main()

{

inti;

floaty=1;

for(i=2;i<=5;i++)

y+=1/(i*i);

printf("%f\n",y);

}

(2)函数prn_star(m,left)输出正菱形图案,其中参数m代数图案的行数(为一奇数),left代表图案距屏幕左边的列数。

函数prt_str(m,left)中有3处错误代码,请指出并改正。

#include"stdio.h"

voidprn_star(m,left)

intm,left;

{inti,j,p;

for(i=1;i

{if(i<=m)p=i;

else

p=m+1+i;

for(j=1;j<=left+(m-(2*p-1))/2;j++)

printf("");

for(j=1;j<=2*p-1;j++)

printf("o");

printf("\n");

}

}

主函数如下:

main()

{intm.left;

p("请输入正菱形图案的行数:

");

scanf("%d",&m);

printf("请输入正菱形距屏幕左边的列数:

");

scanf("%d",&left);

prn_star(m,left);

}

}

第六章软件项目测试

习题

1.选择题

(1)软件测试的目地是(1234)为了提高测试的效率,应该(2134)。

使用白盒测试法时,确定测试数据应根据(3214)和只等的覆盖标准。

与设计测试数据无关的文档是(3124)。

软件的集成测试工作最好由()承担,以提高集成测试的效果。

供选择的答案:

A.①评价软件的质量②发现软件的错误

③找出软件中的所有错误④证明软件是正确的

B.

随机地选取测试数据

取一切可能的输入数据作为测试数据

在完成编码以后制订软件的测试计划

选择发现错误的可能性大的数据作为测试数据

C.

程序的内部逻辑

程序的复杂程度

使用说明书

程序的功能

D.

该软件的设计人员

程序的复杂程度

源程序

项目开发计划

E.

该软件的设计人员

该软件开发组的负责人

该软件的编程人员

不属于该软件开发组的软件设计人员

(2)以消除瓶颈为目的的测试是()

A.负载测试B.性能测试C.动态测试D.覆盖测试

(3)黑盒测试侧重于()

A.软件的整体功能B.有关代码的知识

C.以上都是D.以上都不是

(4)在下面列出的逻辑驱动覆盖测试方法中,逻辑覆盖准则最弱的是()

A.条件覆盖B.判定覆盖

C.语句覆盖D.判定一条件覆盖

(5)从测试阶段角度,测试正确的顺序是(),同时给出所选择的正确策略含义和被测对象是什么?

单元测试

集成测试

系统测试

验收测试

A.

B.

C.

D.

2.填空题

(1)测试的主要目的是找出软件的错误。

(2)调试有助于监测和修复开发阶段中的错误。

(3)大多数情况下,程序员测试自己所编写的单元所采用的测试为测试分类中的单元测试。

(4)对面向过程的系统采用的集中策略有:

测试、调试两种。

3.简答题

(1)谈谈软件测试的一些基本原则。

答:

①测试是为了发现程序中的错误而执行程序的过程。

②好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案。

③成功的测试是发现了至今为止尚未发现的错误的测试。

(2)简要描述单元测试、集成测试、系统测试的内容。

它们中各自的关注点是什么?

(3)下面是选择排序的程序,其中datalist是数据表,它们两个数据成员:

一个是元素类型为Element的数组V;另一个是数组大小n。

算法中用到两个操作,一是取某数组元素V的关键码操作getKey();一是交换两数组元素内容的操作Swap()。

VoidSelectSort(datalist&list){

//对表list.V[0]到list.V[n-1]进行排序,n是表当前长度。

for(inti=0;i

intk=i;//在list..V.Key到list.V[n-1].Key中找具有最小关键码的对象

for(intj=i+1;j

if(list.V[j].getKey()

if(k!

=i)Swap(list.V,list.v[k]);//交换

}

}

用基本路径覆盖法给出测试路径。

为各测试路径设计测试用例。

第七章软件维护

习题

1.什么是软件维护?

答:

软件维护就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。

2.请阐述软件维护的策略。

答:

①改正性维护②适应性维护

③完善性维护④预防性维护

3.请列举几种提高软件的可维护性方法。

答①建立明确的软件质量目标和优先级。

②使用提高软件质量的技术和工具。

③进行明确的质量保证审核。

④选择可维护的程序设计语言。

⑤改进程序的文档。

第八章软件项目管理

习题

1.请结合风险的特点阐述对软件风险的认识。

2.请阐述软件评审的意义及其作用。

答:

①优先站在用户使用方便、简洁性的角度来考虑,设计越简单越好

②考虑程序设计的方便性、维护容易性、设备条件限制性等

③写代码前就要把已知缺陷解决

④在代码中要增加注释,切忌代码编写混乱,并没有相应的注视说明

⑤尽量利用现有的产品、技术、代码。

⑥避免界面布局混乱

3.判断以下活动中那些事项目,哪些不是项目,并请说明理由。

(1)升级某政府部门的办公自动化系统

(2)打字员打印文件

(3)报考软件学院工程硕士研究生

(4)购买家用轿车

(5)每天骑车上班

第九章软件项目开发总结

习题

1.软件开发中需要注意的问题有哪些?

答:

1)命名方法要有统一的代码书写规范

①文件名称命名方法

②变量的命名方法

③表单的命名方

④函数名的命名方法

⑤控件、窗体的命名方法

⑥报表等的命名方法

2.对教师管理系统实际运行过程中出现的问题尝试修改,逐步改进完善教室管理系统,在教室管理系统中考虑加入教师权限管理问题。

很多问题可以参考任务9.3中对学生信息管理系统的展望。

答:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1