当前位置:文档之家› 软件工程课后习题

软件工程课后习题

软件工程课后习题
软件工程课后习题

目录

第1章习题 (2)

第2章习题 (4)

第3章习题 (5)

第4章习题 (8)

第5章习题 (13)

第6章习题 (18)

第7章习题 (25)

第8章习题 (25)

第9章习题 (33)

第10章习题 (35)

第1章

1.对于硬件是有形的而软件是无形的观点,有人提出了不同的看法。他认为软件也是有形的,例如,软件需要安装才能工作,软件安装之后会占据一定的磁盘空间。对此,你是什么看法?

解答:软件是抽象的、无形的。软件之所以需要安装并占据一定的磁盘空间,正说明了软件对硬件的依赖,它不能独立存在。

2.软件按服务对象的不同可分为通用软件和定制软件。试举例说明这两类软件的区别。

解答:通用软件一般由软件开发机构自主开发并通过市场推广、销售,如Microsoft Word,它是完全由Microsoft自主开发并通过市场推广、销售的文字处理软件。定制软件则通常受特定客户委托并在合同的约束下开发。例如,某专门设备的控制系统、某特定企业的业务管理系统、某智能大厦的监控与管理系统、某城市的交通监管系统等。定制类软件通常由客户进行软件描述,并以此为基本依据确定软件规格。

3.程序系统时代出现的“软件作坊”有什么特点?

解答:软件作坊虽然也生产具有工业化特征的软件产品,但软件作坊是一种比较松散的组织机构,缺少工业化企业应具有的标准、规范和制度,因此不能使软件生产过程工业化。

4.某软件公司抢时间为某单位开发了一个人事管理软件,但软件交付用户使用一段时间之后,用户有了抱怨,原因是单位里某个职工改了名字,但人事管理软件却不允许修改姓名,而只能删除整条记录以后重新输入。试从软件危机角度对这个问题做一些评论。

解答:由于软件开发过程中软件开发人员和用户之间缺乏信息交流,以至用户的需求没有在软件规格定义中充分体现,从而导致开发出来的软件不能安全满足用户的实际应用需要。

5.什么是软件工程?

解答:软件工程是一门关于软件开发与维护的工程学科,其涉及软件生产的各个方面,包括工程过程、工程原则、技术方法与工具以及工程项目管理等,能够为经济、高效地开发高质量的软件产品提供有效的支持。

6.什么是软件工程方法?简要说明一些主要的软件工程方法。

解答:软件工程方法是指完成软件开发与维护任务时,应该“如何做”的技术方法。主要的软件工程方法有:结构化方法、JSD方法和面向对象方法。

结构化方法是传统的基于软件生命周期的软件工程方法,以软件功能为目标来进行软件构建,包括结构化分析、结构化设计、结构化实现和结构化维护。

JSD方法主要用于软件设计,由法国科学家Jackson提出。它以软件中的数据结构为基

2

本依据来进行软件结构与程序算法设计,是对结构化软件设计方法的有效补充。

面向对象方法以软件问题域中的对象为基本依据来构造软件系统模型,包括面向对象分析、面向对象设计、面向对象实现和面向对象维护。

7.什么是软件工具?Visual C++属于什么类型的软件工具?

解答:软件工具通常也称为 CASE,它是计算机辅助软件工程(Computer-Aided Software Engineering)的英文缩写,是为了方便软件工程方法的运用而提供的具有自动化特征的软件开发支撑环境。

CASE工具覆盖面很广,包括分析建模、设计建模、源代码编辑生成、软件测试等。其中,用来支持软件分析、设计的CASE工具,如数据字典管理器、分析建模图形编辑器、软件结构设计器,被称为高端CASE工具;而用来支持软件实现和测试的工具,如程序编辑器、程序分析器、调试器等,则被称为低端工具。

Visual C++的用途是程序编辑、程序分析与调试,因此是低端工具。

8.你是如何看待软件工程过程的?软件过程中最基本的活动有哪些?

解答:软件工程过程是指开发软件时所进行的一系列软件工程活动,这些活动需要通过制订工作步骤体现,它应该是科学的、合理的,否则将影响软件开发的成本、进度与产品质量。软件工程过程并不固定,不同的产品开发会有不同的活动,但均包括四项基本活动:软件定义、软件开发、软件验证和软件维护。

9.软件工程管理主要包括哪些方面的内容?

解答:软件工程管理的主要内容有:1. 项目规划;2. 项目资源调配;3. 软件产品控制。

10.B. W. Boehm提出的软件工程基本原则是什么?

解答:B. W. Boehm总结了以下7条基本原则。

(1)采用分阶段的生命周期计划,以严格对项目的管理;

(2)坚持阶段评审制度,以确保软件产品质量;

(3)实行严格的产品控制,以适应软件规格的变更;

(4)采用先进的程序设计技术;

(5)软件成果应该能够清楚地审查;

(6)开发小组的人员应该少而精;

(7)承认不断改进软件工程实践的必要性。

11.什么是软件工程目标?如何解决多个目标之间出现的矛盾?

解答:软件工程目标是基于软件项目目标的成功实现而提出的,并主要体现为以下几个目标:(1)软件开发成本较低;(2)软件功能能够满足用户的需求;(3)软件性能较好;(4)软件可靠性高;(5)软件易于使用、维护与移植;(6)能按时完成开发任务,并及时交付使用。

在一个具体项目中,以上几个目标之间很可能会出现冲突,例如,若只顾降低开发成

3

本,则可能由此导致软件的性能与可靠性也随之降低;另一方面,如果太过于追求软件的性能,则可能使得开发出来的软件对硬件有较大的依赖。因此,在实际的软件项目中,往往需要在几个目标中进行平衡。此时,软件的质量应该摆到最重要的位置加以考虑。因此,软件的可用性、有效性、可靠性和可维护性等往往需要特别关注。

12.什么是软件工程文化?其中的价值观是什么?

解答:软件工程文化是指工程人员在软件开发中所应该具备的产品质量观、价值观、道德准则和团队意识等。其中的价值观是指软件企业上下对软件工程价值有一致的认同。

第2章

1.什么是软件生命周期?根据国家标准《计算机软件开发规范》,软件生命周期主要包括哪些阶段?

解答:软件生命周期是指软件定义、开发、运行维护,直至被淘汰的全过程。根据我国国家标准《计算机软件开发规范》(GB 8566—8),软件生命周期包括软件定义、软件开发、软件运行维护三个阶段,并可以细分为可行性研究、项目计划、需求分析、概要设计、详细设计、编码实现与单元测试、系统集成测试、系统确认验证、系统运行与维护等几个阶段。

2.瀑布模型有哪些特点?对于里程碑,你有什么认识?一般认为,瀑布模型不太适用于用户需求经常变更的软件项目,其原因是什么?

解答:瀑布模型的特点:(1). 线性化模型结构;(2). 各阶段具有里程碑特征;(3). 基于文档的驱动;(4). 严格的阶段评审机制。其中的里程碑是指瀑布模型中的阶段只能逐级到达、不能跨越;每个阶段都有明确的任务,都需要产生确定的成果。

由于瀑布模型是一种线性模型,要求项目严格按规程推进,必须等到所有开发工作全部完成以后才能获得可以交付的软件产品。因此,瀑布模型不太适用于用户需求经常变更的软件项目。

3.试说明快速原型的作用。

解答:快速原型方法是原型模型在软件分析、设计阶段的应用,能够用来解决用户对软件系统需求的模糊认识,或用来试探某种设计是否能够获得预期效果。

4.原型进化模型是一种与瀑布模型有着显著差别的软件过程模型。与瀑布模型相比,其优点是什么?一般认为,原型进化模型不能适应较大型软件项目的开发,其原因是什么?

解答:原型进化模型好特点是:先开发一个原型系统给用户使用,然后根据用户使用情况的意见反馈,对原型系统不断修改,使它逐步接近,并最终到达开发目标。因此,与瀑布模型相比,原型进化模型能够更好地适应软件需求变更。但原型进化模型不能像瀑布模型那样提供明确的里程碑管理,使得管理者难以把握开发进度。因此,对于大型软件项

4

目,原型进化模型缺乏有效的管理规程。

5.增量模型是一种结合了瀑布模型与原型进化模型共同优点的过程模型,其特点是什么?在使用增量模型进行软件开发时需要注意的问题是什么?

解答:增量模型的特点是,在整体上按照瀑布模型的流程实施项目开发,以方便对项目的管理。但在软件的实际开发中,则将软件系统按功能分解为许多增量构件,并以构件为单位逐个地开发并交付,直到全部增量构件开发完毕,并都被集成到系统之中交付用户使用。使用增量模型需要注意的是,系统需要有更好的结构设计,以便系统能按增量构件进行集成。

6.试说明螺旋模型的特点。一般认为,只有大型项目才有采用螺旋模型的必要,其原因是什么?

解答:螺旋模型是一种引入了风险分析与规避机制的过程模型,是瀑布模型、快速原型方法和风险分析方法的有机结合。由于软件项目的风险分析会增加成本,假如风险分析费用比例过高则不合算。因此,只有开发资金较多的大型项目才有按阶段进行详细风险分析的可能与必要。

7.喷泉模型是专门针对面向对象软件开发方法而提出的,其特点是什么?

解答:喷泉模型的特点是,软件的分析、设计和实现按照迭代的方式交替进行,并通过进化的方式使软件逐渐完善。例如,第一阶段的开发目标是基本功能;第二阶段则在第一阶段基础上对软件进行完善,实现主要功能;第三阶段则又在第二阶段基础上对软件做更进一步的完善。

8.为什么说组件复用模型是一种有利于软件按工业流程生产的过程模型?

解答:在组件复用模型中,软件由组件装配而成,这就如同用标准零部件构造机械设备,因此能带来更好的复用效果,能适应软件按工业流程生产。

9.某大型企业计划开发一个“综合信息管理系统”,涉及销售、供应、财务、生产、人力资源等多个部门的信息管理。该企业的想法是按部门优先级别逐个实现,边应用边开发。对此,需要一种比较合适的过程模型。请对这个过程模型作出符合应用需要的选择,并说明选择理由。

解答:增量模型比较适合该项目,理由是可使系统功能按应用领域逐个实现,并可按优先级别安排各功能构件的开发顺序,有利于边开发边应用。

第3章

1.计算机系统有哪些特点?

解答:计算机系统是一个具有层次结构的复杂系统,且是一个具有智能特性的开放系

5

统。

2.图3-5所示是某“零配件仓库管理系统”的系统流程图。从图中可以看出该系统的以下特点:

(1)系统将以入库单、出库单为依据进行入出库操作,并通过更新库存程序对库存记录文件进行更新,通过入出库记录程序将入库、出库记录添加到入出库数据表中。

(2)系统将以库存数据表中记录的库存量为依据确定采购计划,当某零配件的库存量低于规定的下阈值时,该零配件将会进入到订购单中。其中,订购单由生成采购计划程序产生。

(3)系统将以入出库数据表中的记录为依据进行入出库统计分析,产生入出库统计分析报表。

试根据对图3-5中的系统流程图的理解,将“零配件仓库管理系统”从其工作环境中分离出来,并建立该系统的“系统框架图”。

图3-5“零配件仓库管理系统”的系统流程图

解答:

6

3.可行性分析的意义主要体现在哪些方面?

解答:可行性分析是对软件问题解决途径的探索,能够在以下几个方面对软件项目带来具有积极意义的影响。

(1)通过少量的的费用,对项目能否实施尽早作出决断,以避免项目开展以后所带来的大量的人力、物力和时间的浪费。

(2)根据项目所受到的条件限制,对有待开发的系统在体系结构、工作模式等方面作出高层抉择,以利于项目今后的实现。

(3)可以把可行性分析看做软件定义时期需要进行的前导性工作,其结果可以作为一个高层框架用于软件需求分析过程之中,以方便今后软件规格定义工作的顺利开展。

4.技术可行性评估主要涉及哪些方面的问题?

解答:技术可行性评估涉及对技术的先进性、成熟度等技术自身因素的评估以及对技术把握程度的评估。

5.某软件项目已将有待开发的软件分解为600个对象点数,其中有20 %可以复用。假设该项目参与人员月平均工资为3 000元人民币,每月按20个工作日计算,每人每天能够完成1个对象点数的工作量。试估算该软件项目的人力成本。

解答:人力成本=(600(1—0.2)/ 20)3 000元= 72 000元

6.假设某软件项目计划按照瀑布模型实施开发,并计划在7个月内完成开发任务。其任务进度安排是:需求分析1个月、软件设计2个月、编码与单元测试3个月、系统集成1个月。试使用甘特图表画出该软件项目的任务进度图表。

解答:

7

第5章

1.什么是用户需求?什么是系统需求?

解答:(1)用户需求是用户关于软件的一系列意图、想法的集中体现,是用户关于软件的外界特征的规格表述。(2)系统需求是比用户需求更具有技术特性的需求陈述,它是提供给开发者或用户方技术人员阅读的,并将作为软件开发人员设计系统的起点与基本依据。主要包括功能、数据、性能、安全等诸多方面的需求。

2.用户需求调查的主要有哪些方法?

解答:用户调查是最基本的用户需求信息收集方法,比较常用的调查方法包括访谈用户、开座谈会、问卷调查、跟班作业、收集用户资料。

3.说明需求分析过程中建立需求原型的作用。

解答:需求原型可用来收集用户需求,对用户需求进行验证,由此可帮助用户克服对软件需求的模糊认识。原型需要根据用户评价不断修正,这有利于挖掘用户的一些潜在需求,使得用户需求能够更加完整地得以表达。

4.说明需求评审的作用。

解答:需求评审是传统的需求检查手段,采用专门评审小组的方式实施对需求文档的有效性评价。评审工作的开展需要开发人员和用户的共同参与,他们一同检查文档中的不规范之处和遗漏之处,一起讨论需求中存在的问题,并针对一些需求分歧进行协商,由此达成对软件需求的共识。

5.某“人力资源管理系统”的组成是:

(1)人事管理子系统,包括:档案管理、岗位设置、人事异动等功能。

(2)业绩管理子系统,包括:业绩标准设置、业绩录入、绩效评估等功能。

(3)工资管理子系统,包括:工资标准设置、工资数据生成、工资结构分析、人力成本分析等功能。

(4)用工管理子系统,包括:人力规划、人员调配、新人招聘等功能。

请使用功能层次图直观描述该“人力资源管理系统”的组织结构。

解答:

8

6.某“零配件仓库管理系统”的系统流程图如下图所示。

图4-16“零配件仓库管理系统”的系统流程图

(1)假设该系统原有的各项功能都由“仓库管理员”操作,请使用数据流图说明该系统的逻辑加工流程。

9

(2)又假设准备对该系统进行改造。其中,入库单将由采购部门输入,出库单将由销售部门输入,入出库分析报表将直接打印到计划部门,采购订单将直接打印到采购部门,而原来的“仓库管理员”仅承担入出库产品验证的任务。请说明改造以后的系统与原有系统的差别,并使用数据流图说明改造后的该系统的逻辑加工流程。

解答(1):

解答(2):

7.某银行储蓄系统的工作过程大致如下:

(1)由储户填写存款单或取款单,然后交由银行工作人员输入系统。

(2)如果是存款,系统将记录存款账号、存款人姓名、身份证号码、存款类型、存款日期、到期日期、利率等信息,并会提示储户输入密码。在此之后,系统会打印一张存款凭据给储户。

(3)如果是取款,则系统首先会根据存款账号核对储户密码。若密码正确,则系统会计算利息,并打印出利息清单给储户。

请使用数据流图分层描述该系统的逻辑加工流程。

10

11

解答:

工作人员

储蓄系统

储户

存款单

取款单

存款凭据利息清单

密码

8.某图书馆图书管理系统对数据的基本要求如下:

(1)涉及图书、图书管理员、读者这三类数据实体。

(2)上述数据实体的数据结构是:图书(图书编号、书名、作者、出版单位、出版日期、定价);图书管理员(管理员编号、姓名、密码、登记日期);读者(读者编号、姓名、工作单位、身份证号码)。

(2)上述数据实体之间的关系是:图书将由管理员登记入册,在登记图书时需要记录图书登记日期;图书将被读者借阅,在图书办理借阅时需要记录图书的借书日期和还书日期。

请使用ER图建立上述数据的数据模型。

解答:

9.某自动取款机系统工作过程大致如下:

(1)在插入储蓄卡之前,自动取款机处于闲置状态。

(2)在插入储蓄卡之后,自动取款机处于待命状态。

(3)在储户输入密码之后,系统将对密码进行验证。若密码正确,自动取款机将进入工作状态;若密码不正确,自动取款机将提示储户输入密码错误。

(4)在自动取款机进入工作状态以后,储户可选择“取款”或“退卡”。若选择“取款”,自动取款机将进入取款状态;若选择“退卡”,自动取款机将退出储蓄卡,然后进入闲置状态。

(5)在自动取款机进入取款状态以后,储户可以输入取款金额,然后可选择“确定”或“取消”。若选择“确定”,自动取款机将进入付款状态,在完成付款之后,自动取款机返回到取款状态;若选择“取消”,自动取款机返回到取款状态。

请使用状态图描述该自动取款机的工作过程。

解答:

12

第8章

1.概要设计中的主要任务有哪些?

解答:制订规范、系统构架设计、软件结构设计、公共数据结构设计、安全性设计、故障处理设计、可维护性设计、编写文档、设计评审。

2.与集中式结构比较,客户机∕服务器结构具有哪些方面的优越性?

解答:客户机∕服务器依靠网络将计算任务分布到许多台不同的计算机上,因此结构灵活,便于系统逐步扩充。

3.说明三层客户机∕服务器结构中应用服务器的作用?

解答:应用服务器的作用是使系统中的最易发生需求改变的应用逻辑处理被集中在一起,因此给系统维护带来了很大的便利。当用户应用规则发生变化时,需要改变的不是数目庞大客户端,而是一台或少数几台应用服务器。

4.说明B∕S结构中Web服务器的作用。

解答:Web服务器的作用是将信息表示集中到了专门的“Web服务器”上,因此可使客户端程序更加简化。客户机上已经不需要专门的应用程序,只需要有一个通用的Web浏览器,就可以实现客户端数据的应用。

13

5.说明组件对象分布式结构的特点。

解答:组件对象分布式结构就是通过组件使软件系统中的组件对象被分布到网络上的多台计算机上。组件对象具有一些公共接口,能够向外提供服务,不同组件的对象之间可以通过公共接口相互通信和协同工作。这是一种对称式分布结构,在这种结构中已经没有了客户机与服务器之间的界限,这些对象既可充当服务器,也可充当客户机,其角色只是取决于它是在提供服务,还是在请求服务。

6.一家跨区域连锁销售企业需要开发一个“物流配送系统”,试说明其适合选择哪种结构的系统构架。

解答:为便于跨区域协作与管理,需要B/S结构,但考虑到企业高层数据汇总、数据维护的便利与工作性能,部分后台程序有必要建立为C/S结构。

7.说明概要设计中模块抽象化的作用。

解答:概要设计中的模块是一个抽象化的功能黑盒子,虽然它已是一个与软件实现直接相关的实体单元,已经可以看到它清晰的外观,但是却看不到其内部实现细节。模块抽象化的作用是有利于模块功能得到更加清晰的定义,可提高模块的内聚性。

8.说明模块内部信息隐蔽的作用。

解答:信息隐蔽是指每个模块的内部实现细节对于其他模块来说是隐蔽的,模块内部的数据、语句或过程等,不允许其他不需要这些信息的模块使用。信息隐蔽的作用是使每个模块相互隔离,提高模块的独立性。

9.上级模块A在调用下级模块B时需要返回一个标记X,用于模块A中分支语句的判断条件。这时的模块A与模块B之间是什么耦合关系?

解答:控制耦合。

10.模块A是写文件模块,需要向文件F写数据;模块B是读文件模块,需要从文件F读数据。这时的模块A与模块B之间是什么耦合关系?

解答:公共耦合。

11.一些通用菜单模块属于哪种内聚形式?

解答:逻辑内聚。

12.模块A是数据查询模块,其模块内部包括输入查询条件、连接数据源、打开查询记录集、显示查询结果。该模块属于哪种内聚形式?

解答:顺序内聚。

13.某自动阅卷系统数据流图如图5-39所示。该系统能够从卡片读入考生登记和答卷信息,能够对考卷评分并生或考生成绩,并能够根据考生登记数据和考生成绩数据产生成

14

绩单数据,由此打印靠山成绩通知单。请按照面向数据流的结构映射方法,设计该系统的软件结构。

图5-.39“自动阅卷系统”数据流图

解答:

15

14.某银行储蓄系统的数据流图已在第3章习题7中要求画出。请根据你所画出的数据流图设计该系统的软件结构。

解答:

16

15.某图书馆图书借阅系统的数据关系模型如图5-40所示。请根据该数据库概念模型设计该数据库逻辑结构。

图5-40 图书借阅系统数据关系模型

解答:

17

第6章

1.试说明面向对象中的类模块与传统结构化方法中的模块的区别。

解答:传统结构化方法中的模块是基于功能定义的,可用函数或过程表示,它是动态的,可直接调用。面向对象中的类模块则是基于实体定义的,涉及实体的属性与行为;类模块是对实体的抽象,因此是静态的,一般作为生成对象实例的模板。

2.试描述类的继承性与多态性的作用。

解答:类的继承性是指上级父类能够把自己的属性、操作传递给下级子类,由此可以大大减少程序中的冗余信息。可以使用从原有父类派生出新的子类的办法来修改软件,如改变类原有操作的算法,这时并不需要改变类原有的代码,而只是新建一个派生子类,然后在该派生子类中建立一个与父类方法同名而算法不同的方法。因此,通过类的继承性还可使软件获得更加有效的重用。当需要开发一个新的应用系统时,可以通过继承而使原有的相似系统的功能获得利用,或者从类库中选取需要的类,然后再派生出新的子类,以实现新系统的新功能。

多态性是指子类对象可以像父类对象那样使用,它们可以共享一个操作名,然而却有不同的实现方法。也就是说,不同层次中的类,可以按照各自的需要,分别采用不同的方法实现这个共同的操作。C++语言中,多态性是通过虚函数来实现的,可以声明名称、参数特征和返回值类型都相同的虚函数,但不同层次的类中的虚函数的实现算法却各不相同。虚函数机制使得程序员能在一个类等级中使用相同函数的多个不同版本,在运行时刻才根据接收消息的对象所属的类,决定到底执行哪个特定的版本。多态性增加了面向对象软件系统的灵活性,而且显著提高了软件的可重用性和可扩充性。当需要扩充系统功能或在系统中增加新的实体类时,只要派生出与新的实体类相应的新的子类,并在新派生出的子类中定义符合该类需要的虚函数,而无须修改原有的程序代码。

3.与传统结构化方法比较,面向对象方法具有哪些方面的优越性?

解答:(1)跟现实世界更加接近;(2)可使软件系统结构更加稳定;(3)软件具有更好的可重用性;(4)软件更加便于维护与扩充。

4.试描述UML建模过程。

解答:UML的建模包括分析与设计这两个阶段。其中分析阶段需要创建的模型包括用例图、活动图、类分析图和序列图,设计阶段需要创建的模型包括类设计图、协作图、状态图、构件图和部署图。由于面向对象分析与设计采用了一体化的UML建模工具,这使得分析阶段产生的一系列结果不仅成为了设计阶段的导入条件,并且诸多结果可以通过设计而进行补充,并逐步完善。例如对于类图,分析阶段只是建立了类的概念模型,主要分析系统中与数据有关的实体类,而实体类以外的界面类、控制类,则留到设计阶段解决。基于UML的建模过程也是一个增量迭代过程,需要多次反复,而使得软件系统不断趋于完善。

18

5.第4章的4.4.2节曾使用数据流图分析了一个“工资管理系统”,其涉及职工清单、档案工资、业绩工资、工资报表等诸多数据,涉及人事处、财务处和员工所在工作部门等多个业务部门。现要求使用面向对象方法对该系统进行分析与设计,试建立有关该软件问题的用例图、活动图、类图、序列图和协作图。

解答:

(1)用例图

(2)活动图

工资计算过程

19

(3)类图

(4)序列图

(5)协作图

20

第1章_软件工程学概述练习题

第一章练习题 一、判断题 1.螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析活动。(√) 2..软件是指用程序设计语言(如PASCAL ,C,VISUAL BASIC 等)编写的程序,软件开 发实际上就是编写程序代码。(X) 3.在面向对象的软件开发方法中,每个类都存在其相应的对象,类是对象的实例,对象是 生成类的模板。(X) 4.快速原型模型可以有效地适应用户需求的动态变化。(√) 5.类是关于对象性质的描述,由方法和数据组成。(√) 6.如果把软件开发所需的资源画成一个金字塔,人是最基本的资源。(√) 二、名字解释: 1.软件:完成特定功能的程序+数据结构+文档。 2.软件危机:软件危机指在计算机软件的开发和维护过程中,所遇到的一系列严重问题。 3.软件工程:指导计算机软件开发和维护的一门工程学。 4.软件生命周期:一个软件从定义、开发、使用和维护直至最终被废弃,要经历的漫长时 期。 5.软件过程:为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任 务的工作步骤。 6.瀑布模型:是将软件生存各个活动规定为依线性顺序联接的若干阶段的模型。它包括可 行性分析、项目开发计划、需求分析、概要设计、详细设计、编码、测试盒维护。它规定了由前至后,相互衔接的固定次序,如同瀑布流水,逐级下落。 7.快速原型模型:是快速建立起来的可以再计算机上运行的程序,它所能完成的功能往往 是最终产品能完成的功能的一个子集。 8.增量模型:是在项目的开发工程中以一系列的增量方式开发系统。增量方式包括增量开 发和增量提交。增量开发是指在项目开发过程中以一定的时间间隔开发部分工作软件; 增量提交是指在开发周期内,以一定的时间间隔增量方式向用户提交工作软件及相应文档。增量开发和增量提交可以同时使用,也可以单独使用。 9.螺旋模型:是一种演化软件开发过程模型,它兼顾了快速原型的迭代的特征以及瀑布模 型的系统化与严格监控。螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。螺旋模型更适合大型的昂贵的系统级的软件应用。 对象。

《软件工程》期末考试及答案

《软件工程》 期末考试试卷 考生注意:1.本试卷共有五道大题,满分100分。 2.考试时间90分钟。 3.卷面整洁,字迹工整。 4.填写内容不得超出密封线。 一、名词解释题(每小题3分,共15分) 1.软件生存周期模型 2.数据字典DD

3.内聚性 4.JSP方法 5.多态性 二、填空题(每空2分,共20分) 1.在软件开发过程中要产生大量的信息,要进行大量的修改,能协调软件开发,并使混乱减到最低程度。

2.规定功能的软件,在一定程度上对自身错误的作用具有屏蔽能力,则称此软件具有的软件。 3.McCall提出的软件质量模型包括个软件质量特性。 4.软件可维护性度量的七个质量特性是可理解性、可测试性、可修改性、可靠性、、可使用性和效率。 5. 为了便于对照检查,测试用例应由输入数据和预期的两部分组成。 6. 程序设计语言的心理特性主要表现在、简洁性、传统性、局部性和顺序性。 7. 软件结构是以为基础而组成的一种控制层次结构。 8. 使用类创建对象的过程实际上是类的过程。 9. 结构化语言是介于自然语言和之间的一种半形式语言。 10.若年利率为i,不计复利,n年后可得钱数为F,则现在的价值P= 。 三、简答题(每小题5分,共20分)

2.以G.J.Myers的观点,简述对软件测试的目的。 3.就程序设计语言的工程特性而言,对程序编码有哪些要求? 4.模块的内聚性包括哪些类型?

四、理论应用题(每小题15分,共30分) PDL语言描述在数组A(1)~A(10)中找最大数的算法。 2.根据下列条件使用等价类划分法设计测试用例。某一8位微机,其八进制常数定义为:以零开头的数是八进制整数,其值的范围是-177~177,如05,0127,-065。

软件工程课后习题集(含答案解析)

第一章练习题 一、填空题 1、软件工程三要素是:方法、工具、过程。 2、软件开发方法是指软件开发过程中所应遵循的方法和步骤。 二、名词(术语)解释: 1、可靠性---是指在给定的时间间隔,程序成功运行的概率。可靠性是衡量软件质量的一个重要目标。 2、可理解性---指系统具有清晰的结构,能直接反映问题的需求。可理解性有助于控制软件系统的复杂性,并支持软件的维护、移植和重用。 三、问答题 1、面向对象方法的优点是什么? 答:(1)将现实世界问题向面向对象解空间直接映射,实现对现实世界的直接模拟。(2)以数据为中心,而不是基于对功能的分解,使得软件结构相对稳定,软件的重用性、可靠性、可维护等特性都较好。 2、可视化开发方法的优点有哪些? 答:(1)简化了图形用户界面的设计和编码工作,将开发的注意力主要集中在程序的执行逻辑和工作流程上。 (2)软件开发简单,易学、易上手。 (3)专业或非专业人员都能参与软件开发活动。 第二章练习题 一、填空题: 1、软件工程过程是:为获得软件产品,在软件工具支持下由软件人员完成的一系列软件工 程活动。 2、一个软件从定义、开发、使用和维护,直到最终被废弃,所经历的生存过程经历的生存过程称为软件生存期或叫生命期。 3、软件生命周期的阶段划分为3个时期是:定义时期、开发时期、维护时期。 4、软件工程标准的5个层次是:国际标准、国家标准、行业标准、企业规、项目规。 二、简答题: 1、瀑布模型的优点有哪些? 答:1、强迫开发人员采用规的技术方法; 2、严格地规定了每个阶段必须提交的文档; 3、每个阶段结束前必须正式进行严格的技术审查和管理复审。 2、瀑布模型的缺点是什么? 答:1、在软件开发的初期阶段就要求做出正确、全面、完整的需求分析对许多应用软件来说是极其困难的。 2、在需求分析阶段,当需求确定后,无法及时验证需否正确、完整。 3、作为整体开发的瀑布模型,由于不支持产品的演化,缺乏灵活性,对开发过程中很 难发现的错误,只有在最终产品运行时才能暴露出来,从而使软件产品难以维护。

软件工程课后习题测验简答题

第一章: 三、简答题 1.软件产品的特性是什么? 答:●软件是一种逻辑产品,具有无形性; ●软件产品的生产主要是研制;主要是脑力劳动; ●软件不存在磨损和老化问题,但存在退化问题; ●软件产品的成本非常昂贵,其开发方式目前尚未完全摆脱手工生产方式; ● 软件具有“复杂性”,其开发和运行常受到计算机系统的限制。 2. 软件发展有几个阶段?各有何特征? 答:①程序设计阶段。 硬件特征:价格贵、存储容量小、运行可靠性差。 软件特征:只有程序、程序设计概念,不重视程序设计方法。 ②程序系统阶段。 硬件特征:速度、容量及工作可靠性有明显提高,价格降低,销售有爆炸性增长。 软件特征:程序员数量猛增,开发人员素质低。 ③软件工程阶段。 硬件特征:向超高速、大容量、微型化及网络化方向发展。 软件特征:开发技术有很大进步,但未获得突破性进展,软件价格不断上升,未完全摆脱软件危机。 3.什么是软件危机?其产生的原因是什么? 答:“软件危机”(Software Crisis)的出现是由于软件的规模越来越大,复杂度不断增加,软件需求量增大。而软件开发过程是一种高密集度的脑力劳动,软件开发的模式及技术不能适应软件发展的需要。致使大量质量低劣的软件涌向市场,有的花费大量人力、财力,而在开发过程中就夭折。软件危机主要表现在两个方面: (1) 软件产品质量低劣,甚至开发过程就夭折。 (2)软件生产率低,不能满足需要。 4.什么是软件过程?有哪些主要的软件过程模型?它们各有哪些特点? 答:软件过程是指在软件工具的支持下,所进行的一系列软件开发和进化的活动。软件过程模型是对软件开发实际过程的抽象和简化,是描述软件开发过程中各种活动如何执行的模型,因此又称为软件开发模型。 主要的软件过程模型有:瀑布模型、增量模型、螺旋模型、喷泉模型和基于知识的模型等。 ⑴瀑布模型是经典的软件开发模型,将软件开发活动中的各项活动规定为依线性顺序连接的若干阶段,它简单易用,在消除非结构化软件、降低软件的复杂性、促进软件开发工程化方面起了很大的作用。但在软件开发实践中也逐渐暴露出它的缺点。它将一个充满回溯的软件开发过程硬性分割为几个阶段,无法解决软件需求不明确或者变动的问题。 ⑵增量模型是一种非整体开发的模型。根据增量的方式和形式的不同,分为基于瀑布模型的渐增模型和基于原型的快速原型模型。该模型具有较大的灵活性,适合于软件需求不明确、设计方案有一定风险的软件项目。 ⑶螺旋模型将瀑布模型和增量模型结合起来,并加入了风险分析。螺旋模型将开发过程分为几个螺旋周期,每个螺旋周期可分为4个工作步骤:制定计划、风险分析、实施工程、客户评估。 ⑷喷泉模型用于采用对象技术的软件开发项目。它克服了瀑布模型不支持软件重用和多项开发活动集成的局限性。喷泉模型使开发过程具有迭代性和无间隙性。软件开发过程有4

软件工程学复习题

软件工程学 一、选择填空 1、软件工程三要素是(B) A、技术、方法和工具 B、方法工具和过程 C、方法、对象和类 D、过程、模型、方法 2、下列关于瀑布模型的描述正确的是(D)。 A、利用瀑布模型,如果发现问题修改的代价很低 B、瀑布模型的核心是按照软件开发的时间顺序将问题简化 C、瀑布模型具有良好的灵活性 D、瀑布模型采用结构化的分析与设计方法,将逻辑实现和物理实现分开 3、以下说法正确的是(B)。 A、对于软件项目,投资回收期越长,越快获得利润。 B、用例模型的基本组成部件是用例、角色和用例之间的联系。 C、模块接口简单是软件发生错误的一个主要原因。 D、软件质量保证工作一般在编码工作结束之后才开始。 4、对象实现了数据和操作的结合,使数据和操作(C)于对象的统一体中。 A、结合 B、隐藏 C、封装 D、抽象 5、可行性研究的步骤中不包括(D)的内容。 A、复查初步分析结果 B、研究现有的系统 C、导出新系统高层逻辑模型 D、建立新系统的物理模型解法。 6、技术可行性是可行性研究的关键,其主要内容一般不包括(C)。 A、风险分析 B、资源分析 C、人员分析 D、技术分析 7、需求分析最终结果是产生(B)。 A、项目开发计划 B、需求规格说明书 C、设计说明书 D、可行性分析报告 8、需求分析的任务不包括(B)。 A、问题分析 B、系统设计 C、需求描述 D、需求评审 9、需求分析中开发人员要从用户那里了解(A)。 A、软件做什么 B、用户使用界面 C、输入的信息 D、软件的规模 10、数据字典是数据流图中所有元素的定义的集合,一般由(C)组成。 A、数据说明条目、数据流条目、加工条目、数据存储条目 B、数据流条目、数据项条目、文件条目、加工条目 C、数据源条目、数据流条目、数据处理条目、数据文件条目 D、数据流条目、数据文件条目、数据池条目、加工条目 11、在E-R模型中,包好以下基本成分(C)。 A、数据、对象、实体 B、控制、联系、对象

软件工程期末考试

━ ━ ━ ━ ━ ━ ━ ━ ━ 装 ━ ━ ━ ━ ━ ━ ━ 订 ━ ━ ━ ━ ━ ━ ━ 线 ━ ━ ━ ━ ━ ━ ━ ━ ━ 防灾科技学院 2011 ~ 2012 学年 第二学期期末考试 __软件工程_试卷 (A) 使用班级__0950411/0950412__ 答题时间__120分钟 _ 题号 一 二 三 四 五 总分 阅卷教师 得分 孙旭光 一、 选择题(本大题共20小题,每题2分,共40分。) 请把选择题的答案填写于下列的表格中: 题号 1 2 3 4 5 6 7 8 9 10 答案 D B C A B C B C A C 判卷 题号 11 12 13 14 15 16 17 18 19 20 答案 B A A D B A A C B A 判卷 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.喷泉模型 6、某大企业最近决定采用高性能微机开发人事管理系统,该系统可供操作员和程序员使用,也可供人事处负责人和主管人事的副厂长等查询人事信息用。人事管理系统通过录入人事数据和修改、删除等操作,产生和更新各类人事文件,通过搜索这些文件进行各类人事信息的查询。考虑到人事处有大量的查询信息要求、频繁的人事信息修改和文件存档、查阅等特点,系统设计师决定认真设计人机交互界面,首先设计好在终端上的交互式会话的方式。系统工程师张某通过调查收集到如下4条意见,请问下面4条意见中哪条是不可接受的:( ) A. 某程序员认为:系统在屏幕格式、编码等方面应具有一致性和清晰性,否则会影响操作人员的工作效率。 B. 某操作人员认为:在交互式会话过程中,操作人员可能会忘记或记错某些事情,系统应当提供HELP 功能。 C. 某程序员认为:终端会话也应当符合程序员编制程序时的习惯,这样可以更高效地维护人事管理系统。 D. 教育科干部乙认为:尽管操作人员的指法已经强化训练但在交互式会话时应尽可能缩短和减少操作员输入的信息,以降低出错概率。 阅卷教师 孙旭光 得 分 试卷序号: 班级: 0950411 学号: 095041103 姓名: 谢英杰

软件工程《软件工程》习题集

软件工程习题集 第一章概述 一、选择题 1.“软件危机”产生的主要原因是( B )。 A.软件日益庞大 B.开发方法不当 C.开发人员编写程序能力差 D.没有维护好软件 2.软件工程中描述生存周期的瀑布模型一般包括计划、( 需求分析)、设计、编码、测试、维护等几个阶段,其中设计阶段在管理上又可以依次分成(概要设计)和(详细设计)两步。 ①需求分析②需求调查③可行性分析④问题定义⑤方案设计 ⑥代码设计⑦概要设计⑧数据设计⑨运行设计⑩ 3.软件是计算机系统中与硬件相互依存的另一部分,它的组成部分是(程序、数据、文档)。A.程序、数据 B.程序、文档 C.程序 D. 程序、数据、文档 4.在软件工程时期,决定软件质量的主要因素是( ) A.管理水平 B.个人程序技术 C.小组技术水平 D.硬件的发展 5.下列哪个模型没有采用迭代的思想(A ) A.瀑布模型 B.渐增模型C.螺旋模型 D.RUP模型 6.下列关于瀑布模型的描述正确的是( D ) A.利用瀑布模型,如果发现问题修改的代价很低 B.瀑布模型的核心是按照软件开发的时间顺序将问题简化 C.瀑布模型具有良好的灵活性 D.瀑布模型采用结构化的分析与设计方法,将逻辑实现与物理实现分开 7.瀑布模型的关键不足在于(B ) (A)过于简单(B)不能适应需求的动态变更 (C)过于灵活(D)各个阶段需要进行评审 8.瀑布模型把软件生存周期划分为软件定义、软件开发与(D )三个阶段,而每一阶段又可分为若干更小的阶段。 A. 详细设计 B. 可行性分析 C. 运行及维护 D. 测试与排错

二、判断题 1.软件工程是指导计算机软件开发和维护的工程学科。( ) 2.在软件工程时期,决定软件质量的主要因素是管理水平. ( ) 3.软件生存期是从软件项目需求定义直至软件开始使用为止。() 4.常用的软件生存周期模型有瀑布模型和结构化模型。() 5.瀑布模型是一种线形的、顺序的软件开发模型( ) 6.瀑布模型的关键不足在于不能适应需求的动态变更.( ) 7.快速原型模型是为了克服瀑布模型的缺点而提出来的。() 8.快速原型模型可以有效地适应用户需求的动态变化。() 9.风险分析是螺旋模型的优点,因此螺旋模型适合任何大系统的开发。() 三、简答题 1、什么软件工程?什么是软件过程? 2、软件工程学的主要内容是什么? 3、什么是软件生命周期?软件生命周期为什么要划分阶段?划分阶段的原则是什么?第二章可行性研究与软件开发计划 一、选择题 1.经济可行性研究的范围包括( C ) A.资源有效性 B.管理制度 C.效益分析 D.开发风险 2.可行性分析是在系统开发的早期所做的一项重要的论证工作,它是决定该系统是否开发的决策依据,因必须给出( B )的回答。 A.确定 B.行或不行 C.正确 D.无二义 3.原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于( A )系统。A.需求不确定的 B.需求确定的 C.管理信息 D.决策支持 4.一个项目是否开发,从经济上来说是否可行,归根结底是取决于对( A ) A.成本的估算B.项目计划C.工程管理D.工程网络图 5. 可行性研究的目标是( B )

软件工程复习题

软件工程复习题纲 1、什么叫软件? 2、什么叫软件危机? 3、什么叫软件工程? 4、两种软件工程方法学开发软件时要建立哪些模型? 5、软件设计分哪两个阶段?总体设计的两个阶段分别是什么? 6、UML中实现关系、依赖关系、泛化关系等符号? 7、软件与硬件的区别是什么? 8、耦合与内聚分别有哪些?如何定义?如何区分? 9、软件测试的目的是什么? 10、软件需求分析的任务是什么? 11、UML中活动图、状态图、顺序图都分别描述什么? 12、UML中的事物有哪些? 13、瀑布模型与原型模型分别适用于开发哪些软件? 14、软件测试的步骤有哪些?每个测试阶段的测试依据是什么?分别有谁来测试? 15、白盒测试与黑盒测试分别有哪些测试方法?如何对具体问题测试? 16、软件设计的原则有哪些? 17、数据流图的作用是什么?如何画数据流图? 18、什么叫数据字典?如何写数据字典? 19、什么叫流图?如何画出流图?流图的环形复杂度如何计算? 20、面向对象的基本概念类、对象、封装、继承等定义是什么? 21、用例图的作用是什么? 22、详细设计阶段用到了哪些图形工具? 23、什么叫维护?维护的类型有哪些? 24、计算机软件的开发经过哪三个大阶段? 25、软件开发的各阶段的任务是什么? 26、UML中的关系有哪些? 27、用例、活动、状态、节点等图形符号分别是什么? 28、软件工程的启发式规则有哪些? 29、模块的作用域与控制域分别指什么? 30、模块的扇入、扇出、深度、宽度分别是什么意思? 31、所有讲过的例题、留过的作业题。 相关习题: 一、填空、选择题 1、画出UML中依赖关系的图形符号。 2、在UML 2.0中定义了四种交互图,其中强调对象调用顺序的是图。 3、UML中实现关系的图形符号是。 4、软件生命周期可划分为8个阶段,它们是什么? 5、软件测试的目的是发现错误,通常把测试方法按功能划分为和两 大类。因为通常不可能做到穷尽测试,所以精心设计是保证达到测试目的所必须的。 6、计算机软件的开发经过三个阶段分别为:定义、和运行。 7、软件维护的活动包括四种:、、和

软件工程师入门学习

软件工程师入门学习 一.概述 什么是软件工程,为什么要软件工程? 1.软件 要知道什么是软件工程,当然得先知道什么是软件.软件就是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据和相关文档的完整组合.注意:软件不仅包括程序,还包括文档.所以做软件也不仅仅是编程序,还需要写文档,后者应该提到与前者并重的地位。 2.软件危机 从50年代到60年代,人们曾经把程序设计看作是一种任人发挥创造才能的技术领域,只要程序能得到正确的结果,程序的写法可以不受任何约束.人们认为好的程序应该是运用了许多与众不同的技巧和窍门的程序.这种观点好象把编程序当成了一种艺术,因为艺术总是宣扬个性,喜欢与众不同.(实际上,编程序的确可以看做是一种艺术,不过这种艺术是在遵循一定范式和准则这个前提下的艺术,个人观点) 然而,随着软件的规模越来越大,人们在实践中发现随心所欲编写的程序给维护,修改带来了很大的麻烦.程序晦涩难懂,不同程序员,不同时期编写的模块难以接口.因此,软件开发遇到了很大的困难.往往投入很大,收获甚微.做的软件漏洞百出,或无人使用.这就是软件危机. 于是,人们在茫然中,渐渐的抛弃了原先的观点,开始探索一种新的软件开发的思想.这就导致了软件工程的产生.程序也从按个人意图创造的"艺术品"转化为一种工程化的产品。 3.软件工程的定义 软件工程的定义很多,如:“软件工程是开发,运行,维护和修复软件的系统方法”;“建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法”等等。 定义是抽象的,掌握精髓才是关键。对软件工程的最好理解就是“只可意会,不可言传”,试问各位看官,您们都学过化学,但化学的定义是什么呢? 但是,为了更快的意会,有必要在此废话几句。软件工程可以看作是一种方法,一种思想,就是指导大家如何更好地开发软件的方法和原则。软工也可看作是一种工具,就是帮助大家分析,设计软件的工具,如:流程图,数据字典,以及一些辅助软件等。软工还可以看做是一种过程,就是软件开发的过程。实际上,方法,工具,过程三者是软件工程的三要素. 4.软件生存期

软件工程习题200题

软件工程习题200题 1、什么是软件危机?产生软件危机的原因?怎样消除? 2、什么是软件工程?包括哪些内容? 3、软件生存周期包含哪些内容? 4、软件开发模型有几种?各有什么特点? 5、软件技术审查和管理复审的作用是什么? 6、软件开发与写程序有什么不同? 7、在软件开发的早期阶段,为什么要进行可行性研究?应该从哪些方面研究目标系统的可行性? 8、一个软件开发系统的可行性研究报告应如何编写? 9、数据流图有哪几种基本符号? 10、画数据流图原则是什么? 11、数据流图在软件分析中的作用是什么? 12、数据字典的作用? 13、什么是数据字典?有几个定义?各自特点是什么? 14、有几种效益的分析方法? 15、需求分析的任务是什么? 16、需求分析通常采用哪些分析技术? 17、什么是结构化分析?他的结构化体现在哪里? 18、简述面向对象分析技术的主要步骤? 19、原型开发技术的目的,特点是什么? 20、简述总体设计的一般过程? 21、什么叫软件结构?什么叫软件工程?二者之间关系? 22、解释深度、宽度、扇出、扇入对软件的影响。 23、什么叫模块化?M代表的含义是什么? 24、模块化的三个重要特征是什么?阐明各自的作用。 25、举例说明各种耦合情况和各种内聚情况。 26、简述设计准则的内容。 27、简述层次方框图与软件结构图的异同点。

28、事物型软件结构图有什么特点?原因是什么? 29、详细设计的任务是什么? 30、什么是结构化程序设计?用N-S图表示三种基本结构。 31、简述Jackson程序设计方法的主要内容。 32、简述Wariner程序设计方法的主要内容。 33、McaHei(Muahe,笔记有些模糊,未校正)方法的核心是什么?有何用途? 34、简述程序设计语言两次本质性变化的内容及意义。 35、C语言属于第几代语言?第四代语言特点是什么? 36、简述高级语言的应用特点和内在特点。 37、试分析程序设计语言特点及软件可靠性、可理解性、可修改性、可测试性及成本的关系。 38、选择一种语言的实用标准是什么? 39、简述开发环境、计算机体系结构、软件设计方法、软件开发过程与程序设计语言之间的促进和制约作用。 40、程序的编码风格主要体现在哪几个方面? 41、软件测试的基本任务是什么?测试与调试区别是什么? 42、软件测试的目标是什么? 43、软件测试分几个步骤进行?每个步骤解决什么问题? 44、软件测试有几种方法?每种方法的特点是什么? 45、软件出错有几种类型?验证其程序正确性有几种方法? 46、什么是单元测试和集成测试?他们各有什么特点? 47、简述渐增式测试方法与非渐增式测试方法的优劣。 48、简述存根程序驱动程序的作用。 49、编最大、最小公倍数程序,并为它设计测试用例。 50、测试的具体任务是什么?为什么说调试是软件开发过程中最艰巨的任务? 51、举出几种常用的测试工具,说明他们的用法。 52、MTTF的含义是什么?如何计算Et值? 53、假设有一个由1000行Pascal语句构成的程序(编译后约有5000条机器指令),请估算对它进行测试期间将发现多少错误。为什么? 54、什么叫软件维护?软件维护的基本内容是什么? 55、软件维护分几类?每类的基本内容是什么?占软件维护总工作量的百分比是多少?

软件工程(2nd)教材复习题答案

习题答案 习题一答案 一、选择题 1. 软件的主要特性是(A B C)。 A) 无形 B) 高成本 C) 包括程序和文档 D) 可独立构成计算机系统 2. 软件工程三要素是(B)。 A) 技术、方法和工具 B) 方法、工具和过程 C) 方法、对象和类 D) 过程、模型、方法 3. 包含风险分析的软件工程模型是(A)。 A) 螺旋模型 B) 瀑布模型 C) 增量模型 D) 喷泉模型 4. 软件工程的主要目标是(C)。 A) 软件需求 B) 软件设计 C) 风险分析 D) 软件实现 5. 下列属于面向对象开发方法的是(A B C D)。 A) Booch B) UML C) Coad D) OMT 6. 软件危机的主要表现是(B D)。 A) 软件成本太高 B) 软件产品的质量低劣 C) 软件开发人员明显不足 D) 软件生产率低下 7. 软件开发方法的主要工作模型有(A B C) A) 螺旋模型 B) 循环模型 C) 瀑布模型 D) 专家模型 8. 软件工程的目标有(A B C)。 A) 易于维护 B) 低的开发成本 C) 高性能 D) 短的开发期 9. 软件工程学的目的和意义是(A D)。 A) 应用科学的方法和工程化的规管理来指导软件开发 B) 克服软件危机 C) 作好软件开发的培训工作 D) 以较低的成本开发出高质量的软件 二、判断题 1. 软件就是程序,编写软件就是编写程序。(×) 2. 瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。(×) 3. 结构化方法的工作模型是使用螺旋模型进行开发。(×) 4. 结构化方法和OO方法都是一种面向过程的软件开发方法。(×) 5. 原型化开发方法包括生成原型和实现原型两个步骤。(×) 6. 面向对象的开发方法包括面向对象的分析、面向对象的设计和面向对象的程序设计。( √) 7. 软件危机的主要表现是软件的需求量迅速增加,软件价格上升。(×) 8. 软件工具的作用是为了延长软件产品的寿命。(×) 9. 软件工程过程应该以软件设计为中心,关键是编写程序。(×) 10. RCP法与RSP法的主要区别是前者采用循环渐进的开发方式,原型将成为最终的产品,而 后者原型将被废弃。(√)

《软件工程》期末考试及答案

的年 值

1.简述容错技术的四种主要手段, 并解释。 2. 3. 就程序设计语言的工程特性而 言,对程序编码有哪些要求? 4. 模块的内聚性包括哪些类型? 四、理论应用题(每小题15分,共30分) 1. 请使用PAD图和PDL语言描述在 数组A(1)~A(10)中找最大数的 算法。 2.根据下列条件使用等价类划分法 设计测试用例。某一8位微机,其八 进制常数定义为:以零开头的数是八 进制整数,其值的范围是-177~177, 如05,0127,-065。 五、实践应用题(每小题15分,共15分) 1.某电器集团公司下属的厂包括技 术科、生产科等基层单位。现在想建立一个计算机辅助企业管理系统,其中: 生产科的任务是: (1)根据销售公司转来的内部合同(产品型号、规格、数量、交获日期)制定车间月生产计划。 (2)根据车间实际生产日报表、周报表调整月生产计划 (3)以月生产计划为以及,制定产品设计(结构、工艺)及产品组装月计划。 (4)将产品的组装计划传达到各科,将组装月计划分解为周计划,下达给车间 技术科的任务是: (1)根据生产科转来的组装计划进行产品结构设计,产生产品装配图给生产科,产生外购需求计划给供应科,并产生产品自制物料清单。 (2)根据组装计划进行产品工艺设计,根据产品自制物料清单产生工艺流程图给零件厂。试写出以上

系统中生产科和技术科处理的软件结构图。 软件工程期末答案一、名词解释题(每题3分,共15分)。 1.是描述软件开发过程中各种活动如何执行的模型。 2.数据字典是用来定义数据流图中的各个成分的具体含义的。它以一种准确的、无二义性的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。3.内聚性是模块独立性的衡量标准之一,它是指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。 4.JSP方法是面向数据结构的设计方法,其定义了一组以数据结构为指导的映射过程,它根据输入,输出的数据结构,按一定的规则映射成软件的过程描述,即程序结构。 5.指相同的操作或函数、过程可作用于多种类型的对象上并获得不同结果。或(不同的对象,收到同一消息可以产生不同的结果。) 二、填空题(每空2分,共20分)。 1.软件配置管理 2.容错功能 3.11 4.可移植性 5.输出结果 6.歧义性 7.模块 8.实例化 9.形式语言 10.F/(1+(n*i)) 三、简答题(每小题5分,共20分)。1.结构冗余:包括静态冗余、动态冗余和混合冗余。 信息冗余:为检测或纠正信息在运算或传输中的错误,须外加一部分信息。 时间冗余:指重复执行指令或程序来消除瞬时错误带来的影响。

软件工程复习题库带答案完整版

一、选择题 1、白盒测试法是通过分析程序的(C)来设计测试用例的。 A.应用范围 B.功能 C.内部逻辑 D.输入数据 2、风险预测从两个方面评估风险,即风险发生的可能性以及(D)。 A.风险产生的原因 B.风险监控技术 C.风险能否消除 D.风险发生所产生的后果 3、极限编程(XP)由价值观、原则、实践和行为四部分组成,其中价值观包括沟通、简单性和(C)。 A.好的计划 B.不断的发布 C.反馈和勇气 D.持续集成 4、等价分类法的关键是(C)。 A.确定等价类的边界条件 B.按照用例来确定等价类 C.划分等价类 D.确定系统中相同和不同的部分 5、下列不属于黑盒测试的技术是(A)。 A.程序段或语句的功能 B.模块的接口 C.数据的名称和用途 D.模块的功能 6、为了提高模块的独立性,模块之间最好是(D)耦合。 A.控制耦合 B.公共耦合 C.内容耦合 D.数据耦合 7、一个软件开发过程描述了“谁做”,“做什么”,“怎么做”和“什么时候做”,RUP用(A)来表述“谁做”。 A.角色 B.活动 C.制品 D.工作流 8、功能性注释嵌入在源程序内部,它是用来说明(A)。 A.程序段或语句的功能 B.模块的接口 C.数据的名称和用途 D.模块的功能 9、在结构化分析方法中,数据字典是重要的文档。对加工的描述是数据字典的组成内容之一,常用的加工描述方法有( C )。 A.只有结构化语言 B.有结构化语言和判定树 C.有结构化语言、判定树和判定表 D.有判定树和判定表 10、某银行为了使其网上银行系统能够支持信用卡多币种付款功能而进行扩充升级,这需要对数据类型稍微进行一些改变,这一状况需要对网上银行系统进行( B )维护。 A.正确性 B.适应性 C.完善性 D.预防性 11、软件危机的主要原因是(A)。 A软件本身特点与开发方法B对软件的认识不够 C软件生产能力不足D软件工具落后 12、DFD是常用的进行软件需求分析的图形工具,其基本符号是(C)。 A.输入、输出、外部实体和加工

软件工程试题与答案 (11)

选择题 1、以下哪个不是详细设计中常用的图形描述工具 A 。 A、数据流图 B、程序流图 C、盒图(N-S图) D、问题分析图(PAD) 2、耦合是对软件结构中各个不同模块之间互相关联程度的度量。一个模块直接访问另一个模块的内部信息应属于 B 方式。 A、控制耦合 B、内容耦合 C、数据耦合 D、外部耦合 3、在七种内聚中属于最强的是功能内聚,最弱的是偶然内聚 4、软件工程的原则包括: 模块化 、抽象与 逐步求精 、信息隐藏与局部化、 模块独立 。 模块 D ,则说明模块的独立性越强。 A.耦合越强 B、扇入数越高 C、扇入数越低 D、耦合越弱 5、软件设计包括 D 两个阶段。 A、接口设计和结构设计 B、数据设计和概要设计 C、结构设计和过程设计 D、概要设计和详细设计 6、现有一个计算类型的程序,它的输入只有一个Y,其范围是— 50≤Y≤50。现从输入的角度考虑设计了一组测试用例:—100,100,0。设计这组测试用例的方法是 D 173页 A、条件覆盖法 B、边缘值分析法 C、错误推测法 D 、等价划分法 7、系统设计分为两个阶段分别为 设计方案 与 选择方案 92页 。 8、对于变换型的数据流图,按照软件设计思想,要将一个大型复杂的软件进行分解,要确定数据流图的输入边界,输出边界和变换中心。 9、自顶向下结合的渐增式测试法,在组合模块时有两种组合策略:深度优先策略和 宽度优先的策略 157页。 10、在用面向对象观点建立起的3种模型中, B 231页基本、最重要、最核心的。 A、动态模型 B、对象模型 C、功能模型 D、状态模型 11、在软件结构图的有关术语中,用于表示软件结构中控制的层数的是 C 。 A、扇出 B、扇入 C、深度 D、宽度 12、指出PDL是哪种语言过程设计语言 128页 13、在进行软件测试时,首先应当进行单元测试,然后再进行组装

软件工程学第一次作业答案

、简答题 1、需求分析的任务答:需求分析的任务主要包括以下几项:确定目标系统的综合要求,其中包括(目标系统的功能、性 能、运行的环境及扩展性要求); 分析目标系统的数据要求,其中包括(系统平台需要哪些数据?数据间有什么关系?数据及数据结构?对数据的 处理逻辑关系等);导出目标系统的逻辑模型;修正系统流程图;修正系统开发计划、开发原型系统 2 、软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题,具体表现在哪些方面? 答: 1、无法开发复杂程度高的软件 2、成本和进度估计不准 3、无统一科学的规范,软件不可维护 4、无质量保证,可靠性差 5、软件常不能满足用户的需求 6、无适当的文档资料 7、软件生产率太低 选择题 1 、从下列关于结构化程序设计的叙述中选出5 条正确的叙述。 ①程序设计比较方便,但比较难以维护。 ②便于由多个人分工编制大型程序。 ③软件的功能便于扩充。 ④程序易于理解,也便于排错。 ⑤在主存储器能够容纳得下的前提下,应使模块尽可能大,以便减少模块的个数。 ⑥模块之间的接口叫做数据文件。 ⑦只要模块之间的接口关系不变,各模块内部实现细节的修改将不会影响别的模块。 ⑧模块间的单向调用关系叫做模块的层次结构。 ⑨模块越小,模块化的优点越明显。一般来说,模块的大小都在10 行以下 答:正确的叙述有②、③、④、⑦、⑧。 如果程序结构的模块化满足评价的标准(高内聚、低耦合),这样的结构是容易维护的,程序的功能也容易测试,容易理解、容易修改、容易维护的,程序的功能也容易扩充。特别适合于大型程序编制时,多人分工全 中作,协同完成任务的情形。因为是采用自顶向下、逐层分解来划分解模块结构的,所以模块之间的调用关系 是分层次的模块结构,就叫做模块的层次结构。模块之间的信息传递叫做模块的接口,模块之间传递信息可以 通过参数表、全局变量或全局数据结构、数据文件、专门模块太大,控制路径数目多、涉及的范围广、变量的 数目多、总体复杂性高,可理解性、可修改性、可靠性就会变差。模块太小,模块个数增多,调用的系统开销就 会增大。所以要有一个权衡 2、供选择的答案中选出正确的答案填入下列叙述中的()内。 模块内聚性用于衡量模块内部各成分之间彼此结合的紧密程度。

软件工程试题库集及答案

综合练习一答案 选择题: 1.软件危机出现于____,为了解决软件危机,人们提出了用____的原理来设计软件,这是软件工程诞生的基础。 A.50年代末B.60年代初C.60年代末D.70年代初 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.概要设计E.编码F.需求分析6.瀑布模型把软件生存周期划分为软件定义、软件开发和____三个阶段,而每一阶段又可细分为若干个更小的阶段。 A.详细设计B.可行性分析C.运行及维护D.测试与排错7.划分软件生存周期的阶段时所应遵循的基本原则是_____。 A、各阶段的任务尽可能相关性 B、各阶段的任务尽可能相对独立 C、各阶段的任务在时间上连续 D、各阶段的任务在时间上相对独立 8.一个软件项目是否进行开发的结论是在______文档中作出的。 A、软件开发计划 B、可行性报告 C、需求分析说明书 D、测试报告 9.分析员是____。 A.用户中系统的直接使用者B.用户和软件人员的中间人 C.软件的编程人员D。用户和软件人员的领导

经典软件工程习题

第六章软件工程习题解答 1.下图就是被测程序流程图,试用条件覆盖方法为它设计足够的测试用例。 答: 条件覆盖法 对第一个判断:条件X>1 取真值为T1; 取假值为~T1; X<2 取真值为T2; 取假值为~T2; 对第二个判断:条件X<3 取真值为T3; 取假值为~T3; 2、某旅馆的电话服务如下: 可以拨分机号与外线号码。分机号就是从7201 至7299 。外线号码先拨9 ,然后就是市话号码或长话号码。长话号码就是以区号与市话号码组成。区号就是从100 到300 中任意的数字串。市话号码就是以局号与分局号组成。局号可以就是455 , 466 , 888 , 552 中任意一个号码。分局号就是任意长度为4 的数字串。要求:写出在数据字典中,电话号码的数据条目的定义( 即组成) 。 答: 电话号码= 分机号|外线号码; 分机号=7201、、、7299 ;

外线号码=9+ [市话号码|长话号码] 长话号码= 区号+ 市话号码; 区号=100、、、300 ; 市话号码= 局号+ 分局号 局号= [455 |466 |888 |552 ]; 分局号=4{ 数字}4 3、某公司为本科以上学历的人重新分配工作,分配原则如下: (1)、如果年龄不满18 岁,学历就是本科,男性要求报考研究生,女性则担任行政工作; (2)、如果年龄满18 岁不满50 岁,学历本科,不分男女,任中层领导职务,学历就是硕士不分男女,任课题组组长; (3)、如果年龄满50 岁,学历本科,男性任科研人员,女性则担任资料员,学历就是硕士不分男女,任课题组组长。 要求:画出分析过程,得出判定表,并进行化简。 (2) 计算组合数2*3*2=12 ; (3) 初步判定表 (4) 简化后的判定表。

(完整)软件工程学习心得体会

(完整)软件工程学习心得体会 编辑整理: 尊敬的读者朋友们: 这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整)软件工程学习心得体会)的内容能够给您的工作和学习带来便利。同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。 本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为(完整)软件工程学习心得体会的全部内容。

软件工程学习心得体会 学习了这门课程,还有老师们的多元化教课,不但让我从理论上掌握软件工程,还有从不 同的实例,让理论和实践得到了很好的结合。整一个学期下来,总的来说还是学到了很多东西的,有很多地方是值得肯定的,其实在我看来,软件工程与其说是一门课程,不如说是一门思想。是一个如何去分析和处理问题的过程,应该说其范畴已经远远不止局限于该门课程,成为 了一个综合的一个能够解决问题的思想集合. 要学习软件工程,学会如何系统的思考,以及养成良好的编码习惯,想学好软件工程,就 必须知道软件工程的目标、过程和原则:软件工程目标:生产具有正确性、可用性以及开销 合宜的产品。正确性指软件产品达到预期功能的程度. 可用性指软件基本结构、实现及文档为用户可用的程度.开销合宜是指软件开发、运行的 整个开销满足用户要求的程度。这些目标的实现不论在理论上还是在实践中均存在很多待解决 的问题,它们形成了对过程、过程模型及工程方法选取的约束. 软件工程过程:生产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。软件 工程过程主要包括开发过程、运作过程、维护过程.它们覆盖了需求、设计、实现、确认以及 维护等活动。需求活动包括问题分析和需求分析。问题分析获取需求定义,又称软件需求规约。需求分析生成功能规约。设计活动一般包括概要设计和详细设计。概要设计建立整个软件系统 结构,包括子系统、模块以及相关层次的说明、每一模块的接口定义。详细设计产生程序员可 用的模块说明,包括每一模块中数据结构说明及加工描述。实现活动把设计结果转换为可执行 的程序代码。确认活动贯穿于整个开发过程,实现完成后的确认,保证最终产品满足用户的要求.维护活动包括使用过程中的扩充、修改与完善。伴随以上过程,还有管理过程、支持过程、培 训过程等. 软件工程的原则是指围绕工程设计、工程支持以及工程管理在软件开发过程中必须 遵循的原则。 pad图:它是用结构化程序设计思想表现程序逻辑结构的图形工具.pad也设置了五种基本 控制结构的图示,并允许递归使用。hipo图:hipo图是由一组ipo图加一张hc图组成。它是 美国ibm公司在软件设计中使用的主要表达工具.hc图既是层次图,用于表示软件的分层结构。hc图中的每一个模块,均可用一张ipo图来描述。ipo 图由输入、处理和输出三个框组成,需 要时还可以增加一个数据文件框,这种图形的优点,是能够直观地显示输入处理输出三者之间 的联系。还有测试方法:按照测试过程是否在实际应用环境中来分,有静态分析与动态测试。 测试方法有分析方法(包括静态分析法与白盒法)与非分析方法(称黑盒法).静态分析技术:不 执行被测软件,可对需求分析说明书、软件设计说明书、源程序做结构检查、流程分析、符号 执行来找出软件错误。动态测试技术:当把程序作为一个函数,输入的全体称为函数的定义域,输出的全体称为函数的值域,函数则描述了输入的定义域与输出值域的关系。还学习了其他很 多工具、语言、方法等,虽然不是都学得很透彻,但我相信在今后的学习中一定会慢慢的完善的。 软件工程对于初学者来说,知识基础较薄弱,对一些应用操作、概念、工具方法等理解起来较 为困难,要能从整体概念上较好地理解和把握、学好软件工程,不是仅仅把几本专业书籍细致 地看几遍,然后上机练习几次就可以成功,学习过程中要注意多看多练要注意结合实际,更要

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