01a
填空题(每空1分,共20分)
1.面向过程方法学强调_自顶向下__顺序地完成软件开发的各阶段任务;面向对象方法学的出发点和基本原则是__模拟人类习惯的思维方式__,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程。
2.总体设计阶段必须回答的关键问题是___概括地说,系统应该如何实现___。
3.__数据流图___和____数据字典__共同构成系统的逻辑模型,
4.需求分析过程应该建立___数据模型____、____功能模型______、____行为模型____3种模型。
5.模块的独立程度可以由__内聚___、___藕合____两个定性标准度量。
6.进行边界条件测试时,使用__刚好等于____、___刚好小于____和刚好大于最大值或最小值的数据结构、控制量和数据值的测试方案,非常可能发现软件中的错误。
7.对象的两个基本要素是:__属性_____和___服务____。
8. 发现和定义系统中的对象类是在用例模型的基础上,识别___实体类_____、___边界类____和___控制类___。
9.面向对象程序设计风格强调提高__可重用性___、__可扩充性__、__健壮性___。
一、选择题(每小题2分,共20分)
1.在软件开发的各种资源中,( D )是最重要的资源。
A. 开发工具
B. 方法
C. 硬件环境
D. 人员
2.原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于( A )系统。
A. 需求不确定的
B. 需求确定的
C. 管理信息
D. 决策支持
3.单元测试的测试用例主要根据( D )的结果来设计。
A. 需求分析
B. 源程序
C. 概要设计
D. 详细设计
4.测试工作量通常占软件开发全部工作量的( C )。
A.20%~30%
B.30%~40%
C.40%~50%
D. 50%~60%
5.Pareto原理指出测试发现的错误中的80%很可能是由程序中( B )的模块造成的。
A.10%
B.20%
C.30%
D. 40%
6.下列偶合中偶合程度最高的是( D )。
A.数据偶合
B.控制偶合
C.特征偶合
D.内容偶合
7.下列程序流程图的标准符号中,表示数据输入输出的是( A )。
8.右边所示的流图的环形复杂度为( A )。
A. 4
B. 5
C. 6
D. 7
环形复杂度=边数-节点数+2
9.在软件维护中,维护工作量比例最大的是( C )。
A. 改正性维护
B. 适应性维护
C. 完善性维护
D. 预防性维护
10.使用条件路径选择进行白盒测试时,对于连锁型分支结构结构,
若有n个判定语句,则需要( C )个测试用例。
A. n
B. 2n-1
C. 2n
D. 2n+1
二、判断题(对的画“√”,错的画“×”,每小题1分,共10分)
1.文档是软件产品的一部分,没有文档的软件就不称其为软件。 ( √ )
2.在需求分析过程中,分析员要从用户那里解决的最重要的问题是给该软件提供哪些信息。
( × )
3.建立用例模型的步骤包括确定角色、确定用例和绘制用例图。 ( × )
4.软件错误可能出现在开发过程的早期,越早修改越好。 ( √ )
5.只有质量差的软件产品才需要维护。 ( × )
6.一个好的测试用例在于能发现至今未发现的错误。 ( √ )
7.不完善的系统定义往往是导致软件项目失败的主要原因。 ( √ )
8.瀑布模型是一种文档驱动的模型。(√)
9.UML是一种方法。(×)
10.在时间允许的情况下,适当减少人员会提高工作效率,降低软件开发成本。(√)
三、名词解释(每小题4分,共20分)
1.软件生命周期
答:软件产品从考虑其概念开始到该软件产品交付使用,直至最终退役为止的整个过程,一般包括计划、分析、设计、实现、测试、集成、交付、维护等阶段。
2.结构程序设计
答:如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。
3.α测试
答:指软件开发公司组织内部人员模拟各类用户行对即将面市软件产品(称为α版本)进行测试,试图发现错误并修正。
4.UML
答:一种直观化、明确化、构建和文档化软件系统产物的通用可视化建模语言,从企业信息系统到基于Web的分布式应用,甚至严格的实时嵌入式系统都适合于用UML来建模。
5.软件再工程
答:对现存的大量软件系统进行挖掘、整理以得到有用的软件构件,或对已有软件构件进行维护以延长其生存期。
四、问答题(每小题6分,共30分)
1.产生软件危机的原因是什么?
答:“软件作坊”基本上仍然沿用早期形成的个体化软件开发方法,导致在计算机软件的开发和维护过程中遇到一系列严重问题。如:软件开发的进度难以控制,经常出现经费超预算等。
2.按照模块化的理论,模块的数目是否越多越好?为什么?
答:否,根据模块化和软件成本的关系,随着模块数目的增加,模块成本减小,但接口成本增加,开始时总的成本逐渐减小,模块数超过一定数目之后,总的成本增加。所以模块数应取最小成本区数目。
3.一个程序计算任何一个在1~1000内整数的平方数,那么其输入项的等价类应如何划分?
答:
4.为什么说面向对象方法对需求变化有较好的适应性?
答:面向对象的封装机制使开发人员可以把最稳定的部分(即对象)作为构筑系统的基本单位,而把容易发生变化的部分(即属性与操作)封装在对象之内;对象之间通过接口联系,使得需求变化的影响尽可能地限制在对象内部。
5.在下列用例图中,哪些是系统角色?哪些是系统用例?
答:角色:Bank network, Manager, Clerk, Customer
用例:Authorize purchase, Open store, Log onto redister, Sell goods, Restock inventory
完
01b
五、填空题(每空1分,共20分)
1.面向过程方法学强调__自顶向下___顺序地完成软件开发的各阶段任务;面向对象方法学的出发点和基本原则是__尽量模拟人类习惯的思维方式___,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程。
2.需求分析阶段必须回答的关键问题是___系统必须做什么___。
3.系统流程图是概括地描绘___物理系统___的传统工具。
4.数据对象彼此之间的联系可分为__一对一联系___、___一对多联系___、___多对多联系____3种类型。
5.信息流有___变换流____、___事务流____两种类型。
6.软件可靠性指程序在给定的__时间间隔内___,按照规格说明书的规定成功地运行的概率;而软件的可用性指程序在给定的___时间点____,按照规格说明书的规定,成功地运行的概率。
7. 封装使对象形成两个部分:___接口___和___实现____。
8.对象之间的外部联系有___泛化___、___聚合____、___关联___、___依赖___。
9.甘特图用水平线段表示__任务的工作阶段___,线段的起点和终点分别对应着任务的__开工时间___和__完成时间___,线段的长度表示完成任务所需的时间。
六、选择题(每小题2分,共20分)
1.在软件开发的各种资源中,( D )是最重要的资源。
A. 开发工具
B. 方法
C. 硬件环境
D. 人员
2.软件的复杂性是( A ),它引起人员通信困难、开发费用超支、开发时间超时等问题。
A. 固有的
B. 人为的
C. 可消除的
D. 不可降低的
3.软件测试是为了( B )而执行程序的过程。
A. 纠正错误
B. 发现错误
C. 避免错误
D. 证明正确
4.用于软件维护的费用占软件总费用的( C )。
A.35%~50%
B.45%~60%
C.55%~70%
D. 65%~80%
5.下列内聚中内聚程度最高的是( D )。
A.逻辑内聚
B.过程内聚
C.顺序内聚
D.功能内聚
6.按照Miller法则,一个人在任何时候都只能把注意力集中在
( C )个知识块上。
A. 3±2
B. 5±2
C. 7±2
D. 9±2
7.下列程序流程图的标准符号中,表示数据输入输出的是( A )。
A. B. C. D.
8.右边所示的流图的环形复杂度为( A )。
A. 4
B. 5
C. 6
D. 7
9.在软件维护中,维护工作量比例最大的是( C )。
A. 改正性维护
B. 适应性维护
C. 完善性维护
D. 预防性维护
10.使用条件路径选择进行白盒测试时,对于嵌套型分支结构,若有n个判定语句,则需要( C )个测试用例。
A. n-1
B. n
C. n+1
D. 2n
七、判断题(对的画“√”,错的画“×”,每小题1分,共10分)
11.文档是软件产品的一部分,没有文档的软件就不称其为软件。 (√ )
12.建立用例模型的步骤包括确定角色、确定用例和绘制用例图。 (× )
13.好的测试是用少量的测试用例运行程序,发现被测程序尽可能多的错误。(√ )
14.面向对象的分析是面向计算机系统建立软件系统的对象模型。 (× )
15.软件错误可能出现在开发过程的早期,越早修改越好。 (√ )
16.一个成功的项目唯一提交的就是运行程序。 (× )
17.只有质量差的软件产品才需要维护。 (× )
18.瀑布模型是一种文档驱动的模型。(√)
19.UML是一种方法。(×)
20.在时间允许的情况下,适当减少人员会提高工作效率,降低软件开发成本。(√)
八、名词解释(每小题4分,共20分)
6.软件危机
答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。概括地说,包含两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。
7.软件工程
答:①把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②研究①中提到的途径。
8.β测试
答:指软件开发公司组织各方面的典型用户在日常工作中实际使用β版本(经过α测试调整的软
件产品),并要求用户报告异常情况、提出批评意见,然后软件开发公司再对β版本进行改错和完善。
9.UML
答:UML即统一建模语言,是一种直观化、明确化、构建和文档化软件系统产物的通用可视化建模语言。
10.软件项目管理
答:为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动
九、问答题(每小题6分,共30分)
6.Jackson图和层次图有何区别?
答:(1)层次图中的一个方框通常代表一个模块;而Jackson图中的一个方框通常只代表几个语句。(2)层次图表现的是调用关系;而Jackson图表现的是组成关系,即一个方框中包括的操作仅仅由它下层框中的那些操作组成。
7.一个程序计算任何一个在1~1000内整数的平方数,那么其输入项的等价类应如何划分?
答:
8.面向对象方法是如
何支持软件复用的?
答:(1)对象具有封装性和信息隐蔽等特性,使其容易实现软件复用。(2)对象类可以派生出新类,类可以产生实例对象,从而实现了对象类数据结构和操作代码的软构件复用。(3)面向对象程序设计语言的开发环境一般预定义了系统动态连接库,提供了大量公用程序代码,避免重复编写,提高了开发效率和质量。
9.系统的静态结构和动态行为分别由UML中哪些图进行描述?
答:静态结构由类图和对象图描述,动态行为由状态图、时序图、协作图和活动图描述。
10.指出下列时序图中各符号的含义。
(6)
(1)(2)
(5)
(3)
(4)
答:(1)发起交互的对象(2)回调消息(3)生命线(4)控制焦点(5)消息(6)接收消息的对象
完
02a
十、填空题(每空1分,共20分)
1、可行性研究需要从_技术_可行性、_经济_可行性、_社会_可行性、_操作_可行性四个方面分析研究每种解决方法的可行性。
2、数据流图有四个基本成分:_数据流_、_数据处理(加工)_、_数据存储_、_外部实体(数据源点和终点)_。
3、软件结构的设计是以_模块__为基础的,以需求分析的结果为依据,从实现的角度进一步划分为__模块__,并组成模块的__层次结构__。
4、程序流程图又称为_程序框图_,应由_三种基本控制结构__顺序组合和完整嵌套而成,不能有__相互交叉__的情况,这样的流程图是__结构化__的流程图。
5、“面向对象”是把一组对象中的数据结构和行为_紧密地_结合在一起组织系统的一种策略,传统的思想是将数据结构和行为_松散地_连接在一起。
6、软件维护的内容有_改正性_维护、_适应性_维护、完善性_维护、预防性维护四种。
十一、选择题(每小题2分,共20分)
1、软件是一种( B )产品。
A、有形
B、逻辑
C、物质
D、消耗
2、在软件生命周期中,用户主要是在( A )参与软件开发。
A、软件定义期
B、软件开发期
C、软件维护期
D、整个软件生命周期过程中
3、在软件工程项目中,不随参与人数的增加而使软件的生产率增加的主要问题是( D )。
A、工作阶段间的等待时间
B、生产原型的复杂性
C、参与人员所需的工作站数
D、参与人员之间的通信困难
4、进行需求分析可使用多种工具,但( C )是不适用的。
A、数据流图
B、判定表
C、PAD图
D、数据字典
5、软件设计一般分为总体设计和详细设计,它们之间的关系是( A )。
A、全局与局部
B、抽象与具体
C、总体与层次
D、功能与结构
6、一个( C )能用不同的方法表示它的特征。
A、事件
B、抽象
C、状态
D、脚本
7、不适合作为数据处理的语言是( A )。
A、Prolog
B、C语言
C、4GL
D、SQL语言
8、黑盒测试是从( D )观点的测试。
A、管理人员
B、管理人员
C、用户、开发人员
D、开发人员、用户
9、软件工程对维护工作的主要目标是提高软件的可维护性,降低( D )。
A、维护的效率
B、维护的工作量
C、文档
D、维护的代价
10、软件工程学中除重视软件开发技术的研究外,另一重要组成内容是软件的( A )。
A、工程管理
B、成本核算
C、人员培训
D、工具开发
十二、判断题(对的画“√”,错的画“×”,每小题1分,共10分)
1、文档是软件产品的一部分,没有文档的软件就不称其为软件。(√)
2、在需求分析过程中,分析员要从用户那里解决的最重要的问题是给该软件提供哪些信息。(×)
3、需求规格说明书在软件开发中具有重要的作用,它也可以作为软件可行性分析的依据。(×)
4、建立用例模型的步骤包括确定角色、确定用例和绘制用例图。(×)
5、数据流图建立系统的功能模型,它由数据流、加工和数据存贮组成。(×)
6、软件配置管理是一组标识、组织和控制修改源程序的活动。(×)
7、UML是一种直观化、明确化、构建和文档化软件产物的通用语言。(×)
11.UML
答:UML即统一建模语言,是一种直观化、明确化、构建和文档化软件系统产物的通用可视化建模语言。
8、好的测试是用少量的测试用例运行程序,发现被测程序尽可能多的错误。(√)
9、边界值分析方法是取输入/输出等价类的边界值作为测试用例。(√)
10、面向对象的分析是面向计算机系统建立软件系统的对象模型。(×)
十三、名词解释(每小题3分,共15分)
1、软件危机
答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。概括地说,包含两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。
2、软件工程
答:①把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②研究①中提到的途径。
3、β测试
答:指软件开发公司组织各方面的典型用户在日常工作中实际使用β版本(经过α测试调整的软件产品),并要求用户报告异常情况、提出批评意见,然后软件开发公司再对β版本进行改错和完善。
4、结构化维护
答:采用软件工程的方法进行软件开发,保证每个阶段都有完整且详细的文档。对这样的软件进行的维护活动叫结构化维护。
5、软件项目管理
答:为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。
十四、问答题(每小题5分,共25分)
1、简述变换流的设计步骤。
答:确定数据流图中的变换中心、逻辑输入和逻辑输出;设计软件结构的顶层和第一层;设计中、下层模块;设计优化。
2、下面是一段求最大值的程序,其中datalist是数据表,n是datalist的长度。
int GetMax(int n, int datalist[ ])
{
int k=0;
for ( int j=1; j if ( datalist[j] > datalist[k] ) k=j; return k; } (1)画出该程序的控制流图,并计算其McCabe环路复杂性。 (2)用基本路径覆盖法给出测试路径。 (3)为各测试路径设计测试用例。 答:(1)控制流图如右图所示,McCabe环 路复杂性为3。 (2)测试路径: Path1:①→③ Path2:①→②→④→⑥→… Path3:①→②→⑤→⑥→… (3)测试用例: Path1:取n=1,datalist[0] = 1, 预期结果:k=0 Path2:取n=2,datalist[0] = 0,datalist[1] = 1, 预期结果:k=1 Path3:取n=2,datalist[0] = 1,datalist[1] = 0, 预期结果:k=0 3、为什么说面向对象方法对需求变化有较好的适应性? 答:面向对象的封装机制使开发人员可以把最稳定的部分(即对象)作为构筑系统的基本单位,而把容易发生变化的部分(即属性与操作)封装在对象之内;对象之间通过接口联系,使得需求变化的影响尽可能地限制在对象内部。 4、UML关系包括关联、聚合、泛化、实现、依赖等5种类型,请将合适的关系填写在下列描述的()中。 ①用例及其协作之间是(实现)关系。 ②在学校中,一个学生可以选修多门课程,一门课程可以由多个学生选修,那么学生和课程之间是(关联)关系。 ③类A的一个操作调用类B的一个操作,且这两个类之间不存在其他关系,那么类A和类B之间是(依赖)关系。 ④在MFC类库中,Window类和DialogBox类之间是(泛化)关系。 ⑤森林和树木之间是(聚合)关系。 5、对整个系统而言,其功能、静态结构、动态行为和物理架构分别由UML中什么图来描述?答:对整个系统而言,其功能由用例图描述,静态结构由类图和对象图描述,动态行为由状态图、时序图、协作图和活动图描述,而物理架构则是由组件图和分布图描述。 十五、案例分析题(共10分) 某大学准备开发一个学生课程注册系统,学生可以使用该系统查询新学期将开设的课程和讲课教师情况,选择自己要学习的课程进行登记注册,并可以查询成绩单;教师可以使用该系统查询新学期将开设的课程和选课学生情况,并可以登记成绩单;注册管理员使用该系统进行注册管理,包括维护教师信息、学生信息和课程信息等。试用用例图描述该系统与外部用户的交互情况。 答: 完 02b 十六、填空题(每空1分,共20分) 1、到目前为止,软件生产的发展经过了三个阶段即程序设计时代、程序系统时代、软件工程时代。 2、典型的可行性研究有下列步骤:系统定义、__分析问题___、__提出解法_____、设计方案、推荐可行的方案和编写可行性研究报告。 3、数据字典就是用来定义数据流图中的_所有元素___。它和数据流图共同构成了系统的_高层逻辑模型___。 4、软件设计是一个把__系统需求___转换为___实现方案____的过程,包括__总体设计___和___详细设计____。 5、软件产品在交付使用之前一般要经过以下四步测试_____单元测试_________、____集成测试_______、____确认测试________和____系统测试______。 6、提高软件可维护性的方法有建立明确的软件质量目标、使用先进的软件开发技术和工具、建立明确的质量保证、选择可维护的语言、改进程序的文档。 十七、选择题(每小题2分,共20分) 1、软件生命周期模型有多种,下列选项中,( C )不是软件生命周期模型。 A、螺旋模型 B、增量模型 C、功能模型 D、瀑布模型 2、制定软件计划的目的在于尽早对欲开发的软件进行合理估价,软件计划的任务是( B )。 A、组织与管理 B、分析与估算 C、设计与测试 D、规划与调度 3、在数据流图中,有名字及方向的成分是( C )。 A、控制流 B、信息流 C、数据流 D、信号流 4、将几个逻辑上相似的成分放在一个模块中,该模块的内聚程度是( A )的。 A、逻辑性 B、瞬时性 C、功能性 D、通信性 5、在对数据流的分析中,主要是找到变换中心,这是从( C )导出结构图的关键。 A、数据结构 B、实体关系 C、数据流图 D、E-R图 6、下面( C )不是对象具有的特性。 A、标识 B、继承 C、顺序 D、多态性 7、与选择编程语言无关的因素是( A )。 A、软件开发的方法 B、软件执行的环境 C、用户需要 D、软件开发人员的知识 8、白盒测试是从( A )观点的测试。 A、开发人员 B、管理人员 C、用户 D、其他 9、软件工程对维护工作的主要目标是提高软件的可维护性,降低( D )。 A、维护的效率 B、维护的工作量 C、文档 D、维护的代价 10、软件工程学中除重视软件开发技术的研究外,另一重要组成内容是软件的( A )。 A、工程管理 B、成本核算 C、人员培训 D、工具开发 十八、判断题(对的画“√”,错的画“×”,每小题1分,共10分) 1、在项目计划发生延迟的情况下,增加更多的程序员一定会加快进度。(×) 2、软件错误可能出现在开发过程的早期,越早修改越好。(√) 3、不完善的系统定义往往是导致软件项目失败的主要原因。(√) 4、一个成功的项目唯一提交的就是运行程序。(×) 5、只有质量差的软件产品才需要维护。(×) 6、UML是一种直观化、明确化、构建和文档化软件产物的通用语言。(×) 7、一个好的测试用例在于能发现至今未发现的错误。(√) 8、面向对象的分析是面向计算机系统建立软件系统的对象模型。(×) 9、软件工作的考虑范围主要是程序设计和实现。(×) 10、等价类划分方法将所有可能的输入数据划分成若干部分,然后从每一部分中选取少数有代表 性的数据作为测试用例。(√) 十九、名词解释(每小题3分,共15分) 1、软件生命周期 答:软件产品从考虑其概念开始到该软件产品交付使用,直至最终退役为止的整个过程,一般包括计划、分析、设计、实现、测试、集成、交付、维护等阶段。 2、结构程序设计 答:如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。 3、α测试 答:指软件开发公司组织内部人员模拟各类用户行对即将面市软件产品(称为α版本)进行测试,试图发现错误并修正。 4、软件再工程 答:对现存的大量软件系统进行挖掘、整理以得到有用的软件构件,或对已有软件构件进行维护以延长其生存期。 5、软件建模 答:将所要设计的结构和系统的行为融汇贯通,对系统的体系结构进行可视化和控制,化解复杂性的问题,有效地管理开发风险,从而开发出高品质的软件。 二十、问答题(每小题5分,共25分) 1、简述事物流的设计步骤。 答:由事务流映射成的软件结构包括一个接收分支和一个发送分支。 接收分支:从事务中心的边界开始,把沿着接收流通路的处理映射成模块。 发送分支:包含一个调度模块,它控制下层的所有活动模块;然后把数据流图中的每个活动流通路映射成与它的流特征相对应的结构。 2、下面是一段求最大值的程序,其中datalist是数据表,n是datalist的长度。 int GetMax(int n, int datalist[ ]) { int k=0; for ( int j=1; j if ( datalist[j] > datalist[k] ) k=j; return k; } (1)画出该程序的控制流图,并计算其McCabe环路复杂性。 (2)用基本路径覆盖法给出测试路径。 (3)为各测试路径设计测试用例。 答:(1)控制流图如右图所示,McCabe环 路复杂性为3。 (2)测试路径: Path1:①→③ Path2:①→②→④→⑥→… Path3:①→②→⑤→⑥→… (3)测试用例: Path1:取n=1,datalist[0] = 1, 预期结果:k=0 Path2:取n=2,datalist[0] = 0,datalist[1] = 1, 预期结果:k=1 Path3:取n=2,datalist[0] = 1,datalist[1] = 0, 预期结果:k=0 3、面向对象方法是如何支持软件复用的? 答:(1)对象具有封装性和信息隐蔽等特性,使其容易实现软件复用。(2)对象类可以派生出新类,类可以产生实例对象,从而实现了对象类数据结构和操作代码的软构件复用。(3)面向对象程序设计语言的开发环境一般预定义了系统动态连接库,提供了大量公用程序代码,避免重复编写,提高了开发效率和质量。 4、对整个系统而言,其功能、静态结构、动态行为和物理架构分别由UML中什么图来描述?答:功能由用例图描述,静态结构由类图和对象图描述,动态行为由状态图、时序图、协作图和 活动图描述,而物理架构则是由组件图和分布图描述。 5、指出时序图中各符号的含义。 答:(接收消息的对象) (发送消息的对象)(回调消息) (消息) (生命线) (控制焦点) 二十一、案例分析题(共10分) 某大学准备开发一个学生课程注册系统,学生可以使用该系统查询新学期将开设的课程和讲课教师情况,选择自己要学习的课程进行登记注册,并可以查询成绩单;教师可以使用该系统查询新学期将开设的课程和选课学生情况,并可以登记成绩单;注册管理员使用该系统进行注册管理,包括维护教师信息、学生信息和课程信息等。试用用例图描述该系统与外部用户的交互情况。答: 03a 二十二、填空题(每空1分,共20分) 1、软件工程方法学包含3个要素:__过程__、__方法__和__工具__。 2、瀑布模型的成功在很大程度上是由于它基本上是一种__文档___驱动的模型。 3、面向过程方法学强调__自顶向下___顺序地完成软件开发的各阶段任务;面向对象方法学的出 发点和基本原则是尽量模拟人类习惯的__思维方式__,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程。 4、数据流图有四种基本符号:正方形(或立方体)表示数据的__源点或终点__;圆角矩形(或圆形) 代表___数据加工(或数据处理)___;开口矩形(或两条平行横线)代表___数据存储___;箭头表示___数据流___。 5、软件结构的设计是以模块为基础的,以__数据流图___的结果为依据,从实现的角度进一步划 分为模块,并组成模块的__层次结构___。 6、信息流有__变换流____和___事务流____两种类型。 7、对象的两个基本要素:___属性____和__服务____。 8、软件维护包括__改正性____维护、__适应性___维护、__完善性___维护、__预防性___维护四 项活动。 二十三、选择题(每小题2分,共20分) 1、在软件生命周期中,用户主要是在( A )参与软件开发。 A、软件定义期 B、软件开发期 C、软件维护期 D、整个软件生命周期过程中 2、在软件工程项目中,不随参与人数的增加而使软件的生产率增加的主要问题是( D )。 A、工作阶段间的等待时间 B、生产原型的复杂性 C、参与人员所需的工作站数 D、参与人员之间的通信困难 3、软件设计一般分为总体设计和详细设计,它们之间的关系是( A )。 A、全局与局部 B、抽象与具体 C、总体与层次 D、功能与结构 4、下列偶合中偶合程度最高的是( D )。 A.数据偶合 B.控制偶合 C.特征偶合 D. 内容偶合 5、测试工作量通常占软件开发全部工作量的( C )。 A.20%~30% B.30%~40% C.40%~50% D. 50%~60% 6、黑盒测试是从__________观点的测试,白盒测试是从__________观点的测试。( C ) A、开发人员、管理人员 B、用户、管理人员 C、用户、开发人员 D、开发人员、用户 7、使用条件路径选择进行白盒测试时,对于连锁型分支结构结构,若有n个判定语句,则需要( C )个测试用例。 A. n B. 2n-1 C. 2n D. 2n+1 8、用于软件维护的费用占软件总费用的( C )。 A.35%~50% B.45%~60% C.55%~70% D. 65%~80% 9、软件工程对维护工作的主要目标是提高软件的可维护性,降低( D )。 A、维护的效率 B、维护的工作量 C、文档 D、维护的代价 10、软件工程学中除重视软件开发技术的研究外,另一重要组成内容是软件的( A )。 A、工程管理 B、成本核算 C、人员培训 D、工具开发 二十四、判断题(对的画“√”,错的画“×”,每小题1分,共10分) 1、文档是软件产品的一部分,没有文档的软件就不称其为软件。(√) 2、在需求分析过程中,分析员要从用户那里解决的最重要的问题是给该软件提供哪些信息。(×) 3、需求规格说明书在软件开发中具有重要的作用,它也可以作为软件可行性分析的依据。(×) 4、UML语言支持面向对象的主要概念,并与具体的开发过程相关。(×) 5、用例图定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现。(√) 6、软件配置管理是一组标识、组织和控制修改源程序的活动。(×) 7、好的测试是用少量的测试用例运行程序,发现被测程序尽可能多的错误。(√) 8、边界值分析方法是取输入/输出等价类的边界值作为测试用例。(√) 9、软件错误可能出现在开发过程的早期,越早修改越好。(√) 10、面向对象的分析是面向计算机系统建立软件系统的对象模型。(×) 二十五、名词解释(每小题3分,共12分) 1、软件危机 答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。概括地说,包含两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。 2、结构程序设计 答:如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。 3、类 答:具有相同属性和服务的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分。 4、软件项目管理 答:为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。 二十六、问答题(共22分) 1、下面是一段求最大值的程序,其中datalist是数据表,n是datalist的长度。 int GetMax(int n, int datalist[ ]) { int k=0; for ( int j=1; j if ( datalist[j] > datalist[k] ) k=j; return k; } (1)画出该程序的流程图。(6分) (2)用基本路径覆盖法给出测试路径。(3分) (3)为各测试路径设计测试用例。(3分)