搜索
您的当前位置:首页正文

软件工程复习题及答案

来源:好走旅游网
2006-2007-2软件工程复习

一、单项选择题(20选10)

1. 结构化分析的主要描述手段有( B )。

A. 系统流程图和模块图 B. DFD图、数据词典、加工说明 C. 软件结构图、加工说明 D. 功能结构图、加工说明 2. 用于表示模块间的调用关系的图叫( D )。

A.PAD B.SC C.N-S D.HIPO

3. 在( B )模型中是采用用例驱动和架构优先的策略,使用迭代增量建造方法,软件“逐渐”被开发出来的。 A.快速原型 B. 统一过程 C.瀑布模型 D. 螺旋模型

4. 常用的软件开发方法有面向对象方法、面向( A )方法和面向数据方法。

A. 过程 B. 内容 C. 用户 D. 流程

5 从工程管理的角度来看,软件设计分两步完成( D )。

A. ①系统分析②模块设计 B. ①详细设计②概要设计 C. ①模块设计②详细设计 D. ①概要设计②详细设计 6. 程序的三种基本结构是( B )。

A. 过程、子程序、分程序 B.顺序、条件、循环 C.递归、堆栈、队列 D.调用、返回、转移 7. 程序的三种基本结构是( B )。

A. 过程、子程序、分程序 B.顺序、条件、循环 C.递归、堆栈、队列 D.调用、返回、转移 8. SD方法衡量模块结构质量的目标是( C )。

A. 模块间联系紧密,模块内联系紧密 B. 模块间联系紧密,模块内联系松散 C. 模块间联系松散,模块内联系紧密 D. 模块间联系松散,模块内联系松散 9.为提高软件测试的效率,应该( C )。

A.随机地选取测试数据 B.取一切可能的输入数据作为测试数据

C.在完成编码后制定软件测试计划 D.选择发现错误可能性大的数据作为测试数据 10.( D )测试用例发现错误的能力较大。

A.路径覆盖 B.条件覆盖 C.判断覆盖 D.条件组合覆盖 11.软件需求分析应确定的是用户对软件的( A )。

A. 功能需求和非功能需求 B. 性能需求 C. 非功能需求 D. 功能需求 12.下列各种图可用于动态建模的有( C )。

A.用例图 B. 类图 C. 序列图 D. 包图 13.软件过程模型有瀑布模型、( B )、增量模型等。 A. 概念模型 B. 原型模型 C. 逻辑模型 D. 物理模型 14.面向对象的分析方法主要是建立三类模型,即( D )。

A. 系统模型、ER模型、应用模型 B. 对象模型、动态模型、应用模型 C. E-R模型、对象模型、功能模型 D. 对象模型、动态模型、功能模型 15.测试的分析方法是通过分析程序( B )来设计测试用例的方法。 A.应用范围 B.内部逻辑 C.功能 D.输入数据 16. 软件工程是研究软件( B )的一门工程学科。 A. 数学 B. 开发与管理 C. 运筹学 D. 工具

17. 需求分析可以使用许多工具,但( C )是不适合使用的。 A.数据流图 B.判定表 C.PAD图 D.数据字典 18.划分模块时,一个模块内聚性最好的是( A )。 A. 功能内聚 B. 过程内聚 C. 信息内聚 D. 逻辑内聚

19.软件可移植性是用来衡量软件的( D )的重要尺度之一。 A.效率 B. 质量 C. 人机关系 D. 通用性

20.软件配置管理是在软件的整个生存周期内管理( D )的一组活动。 A.程序 B.文档 C.变更 D.数据 二、判定题(20选10)

1统一过程是一种以用户需求为动力,以对象作为驱动的模型,适合于面向对象的开发方法。 2当模块中所有成分结合起来完成一项任务,该模块的内聚是偶然内聚。 3 SD方法衡量模块结构质量的目标是模块间联系松散,模块内联系紧密 4 当模块中所有成分结合起来完成一项任务,该模块的内聚是功能内聚。 5 在进行需求分析时,就应该同时考虑软件的可维护性问题。( √ ) 6 需求分析可以使用许多工具,但数据流图是不适合使用的。( × )

1

(×)(×)(√)(√)7 8 9 10 11 12 13 14 15 16 17 18 19 20

用白盒法测试时,测试用例是根据程序内部逻辑设计的。( √ ) 一组测试用例是条件覆盖,则一定是语句覆盖。 ( √ ) 用黑盒法测试时,测试用例是根据程序内部逻辑设计的。( × ) 因果图法可以用于系统地设计测试用例。 ( √ )

在了解被测试模块的内部结构或算法的情况下进行测试叫白盒测试。 ( √ ) 为提高软件可移植性,应注意提高软件的设备独立性。 ( × ) 在完成测试作业之后,为缩短源程序长度,应删去源程序中的注解。 ( × ) 有GOTO语句的程序一般无法机械地变成功能等价的无GOTO语句的程序。 ( × )

快速原型模型是一种以用户需求为动力,以对象作为驱动的模型,适合于面向对象的开发方法。 ( √ ) 好的程序不仅处理速度要快,而且易读、易修改。 ( √ ) 应多使用GOTO语句。 ( × ) 系统模块的内聚度应尽可能地小。 ( × )

信息隐藏原则禁止在模块外使用在模块接口说明中所没有说明的、关于该模块的信息。 ( √ ) 在完成测试作业之后,为缩短源程序长度,应删去源程序中的注解。 ( × ) 三、名词解释(十选5) 三、名词解释

1.DFD 即是数据流图,是描述系统中数据流程的图形工具,它标识了一个系统的逻辑输入和逻辑输出,以及把逻辑输入转换为逻辑输出所需的加工处理。

2.UML 标准的统一的图形化建模语言,是软件工程中面向对象的模型方法 3.ER 数据库结构设计的概要模型

4.Use case use case 即是:在不展现一个系统或子系统内部结构的情况下,对系统或子系统的某个连贯的功能单元的定义和描述。是对系统功能的描述,一个Use Case描述的是整个系统功能的一部分,这一部分是在逻辑上相对完整的功能流程。

5. DD 数据字典,详细描述系统中的全部数据

6 等价类划分法 等价类划分法是一种典型的黑盒测试方法,是现在一种非常使用、重要的测试方法 7.模块 指用一个名字可调用的,完成特定功能的单元、部件或者子程序。

8.流程图 对系统中每个模块的内部过程进行设计和描述的图,是人们对解决问题的方法、思路或算法的一种描述。 9. 对象 是客观事物或概念的抽象表述,

10.软件 软件是程序以及开发、使用和维护程序所需的所有文档,由应用程序、系统程序,面向用户的文档及面向开发者的文档四部分构成。 四、简答题(十选5) 1可行性研究有哪些步骤?

1) 确定项目规模和目标; 2)研究现行系统(如果存在);

3)建立系统的高级逻辑模型,用系统流程图或数据流图(DFD图)描述; 4)提高实现高层逻辑模型的 各种方案,并对各方案进行评价; 5)推荐可行的方案; 6)编写可行性报告;

2什么是软件生存周期?软件生存周期模型有哪些?

答:软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。 主要模型包括:瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型。 3软件质量保证措施有那些?

1) 以客户对于质量的需求为基础,对项目开发周期的各个阶段,建立质量目标; 2) 定义质量度量以衡量项目活动的结果,协助评价有关的质量目标是否达到; 3) 确定质量活动;

4) 执行已经确定的质量活动; 5) 评价质量

4什么是软件开发方法?有哪些主要方法?

答:软件开发方法是一种使用早已定义好的技术集及符号表示习惯来组织软件生产过程的方法,其方法一般描述成一系列的步骤,每一个步骤都与相应的技术和符号相关。主要方法有:

1) 结构化开发方法

2

2) 面向数据结构的开发方法 3) 原型化开发方法 4) 面向对象的开发方法

5结构化分析的步骤有哪些?

1) 建立当前系统的具体模型 2) 抽象出当前系统的逻辑模型 3) 建立目标系统的逻辑模型

4) 为了对目标系统进行完整的描述,考虑人机界面和其他一些问题

6什么是软件维护?它有哪些类型?

软件维护是指软件系统交付使用以后,为了改正软件运行错误,或者因新的需求而加入新功能的修改软件的过程。它的类型有:完善性维护,适应性维护,纠错性维护,预防性维护。 7软件测试的步骤有哪些?

1单元测试,分别完成每个单元的测试任务,以确保每个模块能正常工作2集成测试,把已测试的模块组装起来,进行集成测试3确认测试,完成集测试以后,要对开发工作初期制定的确认准则进行检验4系统测试,完成确认测试以后,给出的应该是合格的软件产品,为了检验能否与系统的其他部分协调工作,需要进行系统测试5验收测试,检验软件产品质量的最后一道工序是验收测试 8试述用户界面设计应考虑的因素。

答:(1)可实用性。要求使用简单,用户界面中所用术语的标准化和一致性,具有help功能。快速的系统响应和低的系统成本,具有容错能力。

(2)灵活性。考虑用户的特点,能力,知识水平;提供不同的系统响应时间,提供根据用户需求制定和修改界面,

(3)界面的复杂性与可靠性

9评价模块分割好坏的标准有哪些?

模块分割好坏的标准有2个定性准则:藕合性和内聚性。耦合性用于描述模块之间联系的紧密程度;内聚性用于描述模块内部联系的紧密程度。模块分割时耦合越松越好,内聚性愈强愈好 10 UML有那些图?

答:用例图:从用户角度描述系统功能,并指出各功能的操作者

静态图:表示系统的静态结构,包括类图,对象图,包图

行为图:描述系统的动态模型和组成对象间的交互关系,包括状态图,活动图 交互图:描述对象间的交互关系,包括顺序图,合作图 实现图:用于描述系统的物理实现,包括构件图,部件图 五、分析设计题(4选1)

1、数字校园网上考试系统提供给教师的功能如下: (1)登录

教师通过帐户和密码登录到网上考试系统。 (2)题库管理

对试题库进行添加试题 、修改试题以及删除试题等。 (3)试卷生成

教师从试题库中抽题实现自动组卷或手工组卷,然后存入试卷库中。 (4)试卷查询

教师从试卷库中选出符合要求的试题,被选中的题目将被加入新的试卷中去。 (5)答卷批改

当试卷中存在填空题或问答题,教师需参与答卷评分,系统统计成绩存入成绩库。 (6)维护教学大纲

教师可对教学大纲库中的教学大纲进行维护(修改、增加、删除等)工作。 要求:画出详细的数据流图或用例图

2 、数字校园网上考试系统提供给学生的功能如下: (1)登录:学生通过帐户和密码登录到网上考试系统。

(2)在线练习:学生可以从试题库中任意选择各种题型的试题进行解答,系统将给出正确答案供学生参照,并将学生解答练习情况存入练习库中。

(3)在线测试:为了对学生的学习效果进行考核,系统可从试卷库中随机组好试卷供学生进行考试并计时。考生保存答卷到答卷库。成绩统计进入成绩库。

(4)在线学习:学生可在网上根据教学大纲的要求选择课程库中的课程进行学习。

3

(5)成绩查询:提供查询考试成绩功能,并可以查看答卷得分情况。

要求:画出详细的数据流图或用例图

3、图书管理主要包括三类用户:读者、图书管理员、系统管理员。其中,读者是多个,图书管理员是几个,系统管理员是一个。对于系统,读者可以查询自己的借阅情况、分门别类的查询图书和在规定期限内续借不能超过一次操作的情况下进行自行登录续借书等。图书管理员主要是日常操作以下几个工作环节:图书订购、新书验证、书目录入、图书登记、读者信息管理、借阅书登记、图书信息注销和读者信息注销等,而系统管理员统筹管理图书的系统相关事宜,比如权限维护、日志维护、增删用户和管理系统后台数据等。

要求:画出详细的数据流图或用例图

4、广告管理系统操作业务人员角色包括:预订员,财务,划版员,系统管理员和报刊领导。各个角色承担不同的系统任务:预订员管理预订、划版员负责划版管理、财务员管理财务、业务员与客户交流、系统管理员负责系统配置、领导根据外部信息源进行决策。经初步分析,该系统应该包括预订子系统、财务子系统、划版子系统、系统管理子系统、客户管理子系统和决策支持子系统。划版子系统和客户管理子系统都需要使用财务子系统和预订子系统的信息;财务子系统需要使用预订子系统的信息。

要求:画出详细的数据流图或用例图 六、测试用例设计

1、使用逻辑覆盖测试法测试以下程序:

PROCEDURE EXAMPLE(A,B:REAL;VAR X:REAL); BEGIN

IF(A>2)AND(B=0) THEN X:=X/A; IF(A=4)OR(X>1) THEN X:=X+1 END; 1) 画出程序流程图; 2) 分别以语句覆盖、判定覆盖、判定/条件覆盖、条件组合覆盖方法设计用例,并写出每个测试用例的执行路径。 2、使用逻辑覆盖测试法测试以下程序:

PROCEDURE EXAMPLE(A,B:REAL;VAR X:REAL); BEGIN

IF(A=1)OR(B>1) THEN X:=AⅹB; IF(A>2)OR(B=1) THEN X:=A-2 END;

1) 画出程序流程图;

2) 分别以语句覆盖、判定覆盖、判定/条件覆盖、条件组合覆盖方法设计用例,并写出每个测试用例的执行路径。 3、某城市的电话号码由3个部分组成。这3个部分的名称与内容分别是:

地区码:空白或3位数字

前缀:以大于等于‘5’开头的4位数字 后缀:4位数字

要求:用等价分类法设计它的测试用例。 4、输入三个数据,判断是否能构成三角形? 要求:用等价分类法设计它的测试用例。

七、1谈谈你学习软件工程的理解和体会。

软件工程这门学科随着发展越来越显得重要,是一个专业的软件开发人员所应该具有的品质,没有需求分析就不可以有一个完整而

又经济的软件出现和发展!这门学科特别的好,应该好好体会其中的理念,为你个人以后的成长和做人处事都是有帮助的!我们做什么事情都应该事前做好需求分析才能立二不败之地!特别你要是一个软件开发人员更应该深入体会其中的奥秘!

2谈谈你对参加需求分析或总体设计的体会。

需求分析是要决定“做什么,不做什么”。 需求分析为什么困难?有几种原因使需求分析变得困难:(1)客户说不清楚需求;(2)需求自身经常变动;(3)分析人员或客户理解有误。

客户说不清楚需求:有些客户对需求只有朦胧的感觉,当然说不清楚具体的需求。有些客户心里非常清楚想要什么,但却说不明白。

事实上,用简单的话来说明需求过程,就是确定系统该做些什么以及该符合什么条件。话虽然简单,实现起来可没有那么容易。所以科学的需求过程有一整套完整的理论、工具、方法来实现。

需求分析最重要的是和用户沟通,可是用户多半不是计算机的专业人士,如果在需求分析中使用了行话,就会造成用户理解上的困难。再也没有什么比软件开发接近完成时才发现遗漏了一项需求更糟的事情了。需求的完整性是非常非常重要的,想象一下遗漏需求而不得不返工,这简直就是恶梦。可是令人遗憾的是,需求的遗漏是很经常发生的事情,不仅仅是你的问题,更多的问题发生在用户那里,他们不知道该做些什么。要做到需求的完整性是很艰难的一件事情,它涉及到需求分析过程的各方各面,贯穿了整个过程,从最初的计划制定到最后的需求评审。

4

3.谈谈你进行软件项目开发的心得体会。

一、前期规划:

我理解的前期规划是:在市场人员们汇总一个需求提交给产品专家带领的产品经理团队,然后经过这个团队根据公司具体情况再次分析和规划出一个最终需求文档。

这个需求文档应当首先提交给技术研发部门的负责人以及核心开发人员。由开发团队对其进行技术和风险分析。如果对此需求统一有异议的地方,需要返回给产品团队,重新修正需求。反复如此,直至需求完善准确,细致,清晰。

前期规划就像高楼的地基,如果马马虎虎,就算是一块砖块没摆好都可能导致整个高楼建设的失败。在规划中我认为,交流永远是需要双方积极主动,能认真听取每个人的建议。前期工作思维不慎重,不细致,不认真,不够完善,将产生连锁效应直接导致整个工程和项目的失败。

这种失败可能表现为:第一种,软件按需求实现但是功能根本不能满足用户需要。第二种,功能都有了,软件没有达到可用性、易用性。

对于第一种,当然是因为前期规划疏漏了某些细小功能,没能把需求文档做完善。应该是规划工作做的还不够认真和细致。 对于第二种情况,我认为更多是在产品设计规划方面经验还不够成熟。这种问题应该是很难避免的。因为每种新产品对产品团队来说都很陌生。即使以前做过类似的东西,也难免面面俱到。这只能通过不断努力和认真的态度来弥补。

前期规划的交流涉及了市场、产品和技术研发等多个团队之间。需要的不仅是团队内部的交流,更多需要协调好团队之间的交流。可能有时候需要公司高层和中层参与协调。

目前,很多开发人员深感项目的需求文档写的都很单薄。大家可以想一想,如果没有好的开始,怎么会有好的结束呢?需求文档单薄,不够细致,由谁来继续完善呢?难道让程序员们自己去完善。我想程序员也可能没有这种能力。对于程序员能把代码写的很健壮很稳定就已经是很不容易的事情了。

4 谈谈你参加软件项目开发使用工具的心得体会。

6-3

解:第1步:划分等价类: 输入条 合理等价件 类 地区码 前缀 后缀 不合理等价类  空白, 3位 有非数字字符, 少于3为数字,  多于3数字 为数字  200到999之 有非数字字符, 起始位为0,  起始位为间 1, 11 少于3为数字, 12 多于3为数字  4为数字 13 有非数字字符, 14 少于4位数字, 15 多于4位数字 第2步:设计测试用例:

测试范 测试数据 围 ()123 - 4567 (123)805 - 9876 (20A)123-4567  (33)234-5678  (1234)234-4567 (123)2B3-1234 (123)013-1234 (123)123-1234 (123)23-1234 (123)2345-1234 11 (123)234-1B34

期望结果 有效 有效 无效 无效 无效 无效 无效 无效 无效 无效 无效 等价类,, 等价类,, 等价类 等价类 等价类 等价类 等价类 等价类 等价类 11 等价类 12 等价类 13 5

12 (123)234-34 13 (123)234-23345 等价类 14 等价类 15 无效 等价类 15 GUI:人机交互图形化用户界面设计 GUI就是屏幕产品的视觉体验和互动操作部分。

API:应用程序编程接口 是一套用来控制Windows的各个部件(从桌面的外观到为一个新进程分配的内存)的外观和行为的一套预先定义的Windows函数.用户的每个动作都会引发一个或几个函数的运行以告诉Windows发生了什么.

CASE:computer assisted software engineering 计算机辅助软件工程 帮助进行应用程序开发的软件,包括分析、设计和代码生成。CASE工具为设计和文件编制传统结构编程技术,提供了自动的方法。

IDE:integrated development environment 集成开发环境 一般包括代码编辑器、编译器、调试器和图形用户界面工具。该程序可以独立运行,也可以和其它程序并用。

MDA:Model Driven Architecture 模型驱动架构 是由OMG定义的一个软件开发框架。它是一种基于UML以及其他工业标准的框架,支持软件设计和模型的可视化、存储和交换。

OLAP:online analytical processing 联机分析处理 它是快速提供答案给在自然空间中分析查询的一种方法。 OLTP:online transaction processing 联机事务处理 RUP:Rational Unified Process

UML:Unified Modeling Language 标准的统一的图形化建模语言,是软件工程中面向对象的模型方法。 XP:xXtreme Programming

DD:数据字典 详细描述系统中的全部数据

DFD:data flow diagrams 数据流图 是描述系统中数据流图的图形工具,它标识了他了一个西用的逻辑输入和逻辑输出,以及把逻辑输入转换为逻辑输出所需的加工处理。 ERD:entity-relationship diagram 实体关系图 CPM: critical path method关键路径法

CSCW:computer-supported collaborative work

PERT: Program Evaluation Review Technique计划评估和评审技术 AEM:Advertising Expenditure Measurement 广告费用评估 BOM:business object model业务对象模型 DOM:domain object model 领域对象模型 UP:Unified Process 统一过程

CM:Contact Management 联系人管理 EM:Email Management 电子邮件管理

APP:Acquaintance Package Principle 相识包原则 CEP:Cycle Elimination Principle 循环消除原则 CNP:Class Naming Principle 类命名原则

DDP:Downward Dependency Principle 向下依赖性原则 EAP:Explicit Association Principle 显式关联原则 GoF:Gang of Four patterns

MVC:Model-View-Controller 模型-视图-控制器

NCP:Neighbor Communication Principle 相邻通信原则

PCMEF:Presentation-Control-Mediator-Entity-Foundation 表示-控制-中介者-实体-基础 PCMEF+:

UNP:Upward Notification Principle 向上通知原则

DBMS:database management system 数据库管理系统 负责存储和维护数据的软件叫做数据库管理系统。 ER:entity-relationship model 实体-关系 数据库结构设计的概要模型 ODMG:Object Data Management 对象数据管理组织

SQL:Strutured Query Language 结构化查询语言 是一种关系语言,应用程序使用它来访问数据库。 BC4J: Business Components for Java Java业务组件 EJB:Enterprise JavaBeans 企业JavaBeans

JDBC:Java Database Connectivity Java数据库连接 JDK:Java Development Kit Java开发工具包 SQLJ:SQL for Java Java SQL MAPI: JavaMail:API邮件

OID:object identifier 对象标识符

6

C/S:client/server 客户/服务器 UI:user interface用户界面 HTML: 超文本标记语言 JAR:Java存档文件 JSP: JSF:

W3C:万维网协会 XML:

DBA:数据库管理员 JTA:Java事务API JTS:Java事务服务 BMP: Bean管理的持久化 CMP:容器管理的持久化

7

因篇幅问题不能全部显示,请点此查看更多更全内容

Top