软件工程课后题答案_第1页
软件工程课后题答案_第2页
软件工程课后题答案_第3页
软件工程课后题答案_第4页
软件工程课后题答案_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第一章1 简述软件的发展过程。共经历了四个阶段;第一阶段:(20世纪50年代初期到60年代初期的十余年)计算机系统开发的初期。第二阶段:(20世纪60年代中期到70年代中期的十余年)软件产品和“软件作坊”的概念开始出现。软件开发人员不再像早期阶段那样只因个人工作需要而开发,而是为了用户更好地使用计算机。第三阶段:(20世纪70年代中期到80年代末期)分布式系统嵌入“智能”;硬件价格下降,软件价格急剧上升,导致了软件危机的加剧。第四阶段:(20世纪80年代末期开始)强大的桌面系统和计算机网络迅速发展。2 简述软件的定义和特点。定义:软件是计算机程序、规程以及运行计算机系统可能需要的相关文档和数据

2、。特点:(1)是一种逻辑实体,具有抽象性;(2)软件的生产不存在明显的制造过程;(3)在软件的运行和使用的过程中,不会存在像硬件那样的机械磨损及老化问题;(4)由于对计算机系统的依赖性,对软件的通用性造成了一定的影响;(5)软件的开发方式还没有完全脱离手工开发方式,还不能完全采用组装的方式进行软件开发;(6)作为提高工作效率的逻辑产品,本身具有复杂性;(7)成本相当昂贵;(8)相当多的软件工作设计社会因素。3 软件有哪些种类 1. 按功能特征进行划分(1)系统软件。(2)支撑软件。(3)应用软件2. 按规模大小进行划分微型、小型、中型 、大型 、甚大型 、极大型4 什么是软件危机? 答:是指在

3、计算机软件的开发和维护过程中所遇到的一系列严重问题。5 什么是软件工程? 有哪些本质特性?怎样用软件工程消除软件危机?答:是指导计算机软件开发和维护的一门工程学科。 特性略。 技术措施和管理措施消除软件危机。6 软件工程的三要素;方法、工具和过程。7. 结合自己的亲身经历,谈谈软件工具在软件开发过程中的作用。使软件开发更加模式化,工程化,从而提高软件开发的效率和封装性。8. CASE 的研究和CASE 产品的开发是近年来软件工程领域的特点之一。请列举数种你所熟悉的CASE 工具或环境,综述它们的概念和优缺点,并分析其实现方法。rose、“数据字典”(工具)第二章1. 什么是软件生命周期?它有哪

4、些活动?软件生命周期是指软件产品从考虑其概念开始到交付使用,直至最终退役为止的整个过程。软件生存周期可以划分为软件定义、软件开发和运行维护3 个时期2. 每一种过程模型的优点和缺点分别是什么?瀑布模型:优点:它在软件发展的早期,为开发人员提供了一种开发的基本框架,有利于大型软件开发过程中人员的组织、管理,有利于软件的开发方法和工具的研究和使用,从而提高了大型软件项目开发的质量和效率。缺点:(1)在软件开发的初始阶段指明全部需求是非常困难的,有时甚至是不现实的(2)需求一旦确定,用户和软件项目负责人要等一段时间(经过设计、实现、测试、运行个阶段)才能得到一份软件的最初版本。(3)瀑布模型中的软件

5、活动是文档驱动的,当阶段之间规定过多的文档时,会大大增加软件开发的工作量;而且当管理人员以文档的完成情况来评估项目完成进度时,往往会产生错误的结论,因为后期测试阶段发现的问题会导致返工,前期完成的文档只不过是一个未经返工修改的初稿而已。原型模型:优点:原型系统能够逐步明确用户需求,可以适应需求的变化性,而且由于用户参与到软件开发过程,能够及早发现问题、降低软件开发的风险,加快软件产品的形成,降低软件开发的成本。缺点:(1)对于大型软件项目,如果不经过系统分析并对系统进行整体划分,直接用原型来模拟系统功能是十分困难的。(2)对于计算量大、逻辑性较强的程序模块,原型法很难真正构造出来供用户评价。(

6、3)对于批处理系统,其大部分处理是内部进行的,应用原型方法有一定的困难。(4) 原型的快速构造特点导致项目文档容易被忽略,给原型的后期改进和维护造成困难。(5)在原型建立中的许多工作进展会被浪费掉,特别是对于丢弃型原型策略。在一定程度上,增加了系统的开发成本,降低系统的开发效率。螺旋模型:喷泉模型:优点:可以提高软件项目开发效率,节省开发时间。缺点:由于各个开发阶段的重叠性,开发人员的管理和阶段生成的文件管理存在困难。增量模型:优点:(1)是能在较短时间内,向用户提交可完成部分工作的产品。(2)逐步增加产品功能,可以使用户有较充裕的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来

7、的冲击。缺点:增量的力度选择也很难把握,有时候很难将客户的需求映射到适当规模的增量上。构件组装模型:优点:这大大提高了软件开发的效率,而且构件模型允许多个项目同时开发,降低了费用,提高了可维护性。缺点:由于存在多种构件标准,缺乏通用的构件组装结构标准,如果自行定义标准的话,会引入较大的风险;构件可重用性和软件系统高效性之间不易协调,需要权衡;RUP:RUP具有很多长处:提高了团队生产力,在迭代的开发过程、需求管理、基于组件的体系结构、可视化软件建模、验证软件质量及控制软件变更等方面,针对所有关键的开发活动为每个开发成员提供了必要的准则、模板和工具指导,并确保全体成员共享相同的知识基础。它建立了

8、简洁和清晰的过程结构,为开发过程提供较大的通用性。但同时它也存在一些不足:RUP只是一个开发过程,并没有涵盖软件过程的全部内容,例如它缺少关于软件运行和支持等方面的内容;此外,它没有支持多项目的开发结构,这在一定程度上降低了在开发组织内大范围实现重用的可能性。可以说RUP是一个非常好的开端,但并不完美,在实际的应用中可以根据需要对其进行改进并可以用OPEN和OOSP等其他软件过程的相关内容对RUP进行补充和完善。3. 软件瀑布模型为什么要划分阶段?各个阶段的任务是什么?在软件开发早期,开发只是被简单地分成编写代码和修改代码两个阶段。往往在拿到项目后立刻编写程序,然后调试通过后直接交付给用户使用

9、。如果应用中出现错误,或者有新的要求,都需要重新修改代码。这种小作坊式的软件开发方法有明显的弊端,如缺乏统一的项目规划、不太重视需求的获取和分析、对软件的测试和维护考虑不周等,这些都会导致软件项目的失败。概念阶段:计划、需求分析开发阶段:设计、编码、测试维护阶段:运行维护4. 什么是原型?试述原型模型在软件生命周期中的应用。原型一般是指对某种产品进行模拟的初始版本或者原始模型,在工程领域中具有广泛应用。由于软件规模和复杂性越来越大,软件开发在需求获取、技术实现手段选择、应用环境适应等方面面临巨大考验。为了应对早期需求获取的不易以及后期需求的变化,人们选用原型方法构造软件系统。5. 为什么说喷泉

10、模型较好地体现了面向对象软件开发过程无缝和迭代的特性?6RUP 模型的思想是什么?RUP 模型融合了哪些传统生命周期模型的特点?迭代增量开发思想;(1)面向对象:从技术角度,RUP开发是基于面向对象技术,即它使用和支持面向对象技术的概念和方法。RUP要求建立的设计模型、实现模型都是对象模型。(2)USE CASE驱动(3)以架构为中心;(4)螺旋上升式的开发过程;(5)以质量控制和风险管理为目标;(6)与UML配置;(7)适用性强;7. 举例说明哪些项目的开发适用于原型模型或螺旋模型,哪些不适于采用这两种模型。螺旋模型适合于大型软件的开发,应该说它是最为实际的方法,它吸收了软件工程“演化”的概

11、念,使得开发人员和客户对每个演化层出现的风险有所了解,继而做出应有的反应。不适用:小型软件。原型一般是指对某种产品进行模拟的初始版本或者原始模型,在工程领域中具有广泛应用。不适用:大型软件项目;含有对于计算量大、逻辑性较强的程序模块;第三章1. 可行性研究的任务是什么?可行性研究的任务是以最小的代价在尽可能短的时间内确定问题是否能够解决。简单地说,可行性研究的最终结果是决定项目“做还是不做”而不是“如何做”。2. 可行性研究有哪些步骤?1. 确定系统规模和目标2. 研究目前正在使用的系统3. 导出新系统的高层逻辑模型4. 重新定义问题5. 导出和评价选择的解法6. 推荐行动方针7. 草拟开发计

12、划8. 书写计划任务书文档并提交审查3. 成本-效益分析可用哪些指标进行度量?如果用比率分析法,有以下几种指标:1,相关指标分析法。产值成本率=成本/产值*100%;销售收入成本率=成本/销售收入*100%;成本利润率=利润/成本*100%2,构成比率分析法,直接材料费用比率=直接材料成本/产品成本*100%直接人工费用比率=直接人工费用/产品成本*100%制造费用比率=制造费用/产品成本*100%4. 项目开发计划有哪些内容?引言(目的、背景、参考文献、术语);项目概述(功能、条件、运行环境、产品、程序、文档、服务、验收标准、实施计划、工作任务分解、进度、预算、人员)5. 按照题意设计如下流

13、程图:计算机房产管理系统:要求系统有分房、退房、调房、咨询和统计功能。房产科把住户申请表输入系统后,系统首先检查申请表的合法性,不合法的拒绝接受,合法的申请表根据申请表类型(分、调、退房)分别进行处理。分房申请处理:根据申请者的情况(年龄、工龄、职称、职务、家庭人口等)计算其分数;当分数高于给定值时,按分数高低将申请单插到分房队列的适当位置,输出核准后的分房单。分房处理:每月月底进行分房。从分房文件中读出空房信息,然后根据住户的实际情况,从住房标准文件中读出住房标准进行校核,如果符合,则分配住房给该住户,打印出住房分配通知单,并登记相应的住户信息。退房,调房处理类似。咨询、查询:对空房、住房、

14、房租情况进行查询和统计。6. 为方便储户,某银行拟开发计算机储蓄系统。储户填写的存款单或取款单由业务员输入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并印出存款单给储户;如果是取款,系统计算利息并印出利息清单给储户。写出问题定义并分析此系统的可行性,画出系统流程图。7. 为方便旅客,某航空公司拟开发一个机票预订系统。旅行社把预订机票的旅客信息(姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地等)输入该系统,系统为旅客安排航班,印出取票通知和账单,旅客在飞机起飞的前一天凭取票通知单和账单交款取票,系统校对无误即打印出机票给旅客。写出问题定义并分析此系统的可行

15、性,画出系统流程图。这个系统的可行性是在一个理想的环境下,比如:乘客不满意安排的座位需要调换,或者需要改机票;这些种种因素都没考虑进去。技术上可行:使用现有的技术能实现这个系统;经济上可行:这个系统的经济效益可以超过他的开发成本;操作上可行:操作方式简单,但是有缺陷;社会、政策允许的可行性:可行。8. 某计算机系统投入使用后,5 年内每年可节省人民币 2 000 元。假设系统的投资额为5 000 元,年利率为12。试计算投资回收期和纯收入。解:第四章1. 什么是需求工程?需求工程包括哪些活动?需求工程是指应用已证实有效的技术、方法进行需求分析,确定客户需求,帮助分析人员理解问题并定义目标系统的

16、所有外部特征的一门学科。它通过合适的工具和记号系统地描述待开发系统,及其行为特征和相关约束,形成需求文档;并对用户不断变化的需求演进给予支持。一个良好的需求开发过程应该包括需求获取、需求分析与建模、编写需求规格说明书和需求评审4 个主要活动。2. 需求分为哪些层次?业务需求、用户需求和功能需求3. 指出下列需求描述的不当之处,并进行改写,使之符合好需求的特性。(1) 产品应在不少于每60 秒的正常周期内提供状态信息。(2) HTML 分析器可以产生HTML 标记错误报告,帮助HTML 入门者快速解决问题。(3) 产品应瞬间在文本中的显示和隐藏不可打印字符间切换。好的需求应具有的特性能对一些需求

17、描述的不当之处进行改写,使之符合好的 需求特性。 4. 对于一个小型图书馆管理系统,试给出非功能需求的描述。软件的非功能性需求包括:可靠性、可用性、有效性、可维护性和可移植性。其中,在可靠性方面可以考虑平均无故障时间 (Mean Time Between Failures,MTBF)、平均修复时间 (Mean Time to Repair,MTTR)是多少,复制和故障转移的方案是什么,系统出现故障时是否需要手动干预,系统的安全性如何等。可用性方法可以考虑系统是否为用户带来不适当的负担(如需要特殊浏览器等),系统是否每天24 小时,每年365天不间断提供服务等。5. 需求工程过程包括哪些主要活动

18、?需求开发过程应该包括需求获取、需求分析与建模、编写需求规格说明书和需求评审4 个主要活动。6. 有哪两种主要的需求分析模型?它们的主要思想是什么?7. 需求规格说明书的主要作用是什么?应该包括哪些主要内容?作用:(1) 作为用户方和开发方之间的合同,为双方相互了解提供基础。(2) 反映问题的结构,作为系统设计和编码的依据。(3) 作为测试和验收目标系统的依据。内容:用户可以通过需求规格说明书检查需求描述是否满足原来的期望。设计人员根据软件需求规格说明书的描述了解所需开发软件的功能和性能,以及开发软件时必须满足的约束,将其作为软件设计的依据。测试人员根据软件需求规格说明书中对产品的描述,设计测

19、试计划、测试用例和测试过程。产品发布人员根据软件需求规格说明和用户界面设计编写用户手册和帮助信息8. 试建立一张需求评审的检查表。客户需求调查表1.收集公司的相关信息,比如公司名、地址、网站、联络人的详细资料、电子邮件地址以及电话号码。2.在这个渗透测试项目中您的关键目标是什么?3.确定渗透测试类型(包含或者不包含特定标准):黑盒测试(或外部测试)白盒测试(或内部测试)测试前事先通知测试前不通知包含社会工程学不包含社会工程学调查员工背景信息使用虚假的员工信息包含拒绝服务攻击不包含拒绝服务攻击渗透业务合作伙伴的系统4.总共需要测试多少台服务器、工作站和网络设备?5.贵公司的基础设施架构支持什么操

20、作系统技术?6.需要测试什么类型的网络设备?防火墙、路由器、交换机、调制解调器、负载平衡器、IDS、IPS,还是其他类型的设备?7.有没有什么灾难恢复计划?如果有的话如何操作?8.当前网络有没有安全管理员在管理?9.有没有什么特定的工业标准需要遵循的?如果有,请列出来。10. 该项目的联络人是谁?11. 该项目的时间周期是多久?以周或天为单位。12. 该项目的预算是多少?13. 请列出所有其他的需求。9. 需求管理有哪些主要活动?各有什么作用?主要包括需求变更控制、需求版本控制、需求跟踪和状态跟踪等活动10. 为什么要进行需求跟踪?如何建立需求跟踪矩阵?需求跟踪矩阵有什么作用?1为了管理需求,

21、需要维护需求的可跟踪性信息。2,矩阵的第一列列出需求规格说明书中每一项需求的标号,矩阵的每一行显示了这一行所代表的需求依赖的其他需求、设计、代码和测试用例。3(1) 能够完整地定义需求之间的各种关系,并提供可视化的表示方式。(2) 在一个需求发生变更时,系统能够按照所定义的需求跟踪链, 跟踪到所有受影响的需求。第五章1. 简述面向数据流分析方法的基本思想。“分解”和“抽象”;2. 简述数据流图分解时的注意事项。 上层可分解得快些(即分解成的子数据处理个数多些),这是因为上层是综合性描述,对可读性的影响小。而下层应分解得慢些。 在不影响可读性的前提下,应适当多分解成几部分,以减少分解层数。3.

22、数据字典的作用是什么?它有哪些基本内容? 分解应自然,概念上要合理、清晰。作用:数据字典作为分析阶段的工具,有助于改进分析人员和用户间的通信,进而消除很多的误解,同时也有助于改进不同开发人员之间的通信;内容:数据字典的内容主要是对数据流图中的数据项、数据流、加工逻辑、数据存储和外部实体4. 根据以下描述的业务过程画出库存管理的数据流图。根据车间发来的产品入库单做登入库账处理后存入库存账。对销售科发来的产品出库单,在查阅库存账后,如果库存数量足够,则做登出库账处理,否则将出库单退回销售科,并向生产科发出缺货通知。5. 某仓库管理系统按照以下步骤进行信息处理:(1)保管员根据当日的出库单和入库单通

23、过出入库处理修改库存台账。(2)根据库存台账由统计打印程序输出库存日报表。(3)必要进行查询时,可利用查询程序,在输入查询条件后,到库存台账去查找,并显示查询结果。试按上述过程画出数据流图。6. 某银行的计算机储蓄系统功能是:将储户的存户填写的存款单或取款单输入系统,如果是存款,系统记录存款人姓名住址存款类型存款日期利率等信息,并打印出存款单给储户;如果是取款,系统计算清单给储户。请用数据流图描绘该功能的需求,并建立相应的数据字典。7. 某厂对部分职工重新分配工作的政策是:年龄在20 岁以下、初中文化程度者脱产学习;高中文化程度者当电工。20 岁至40 岁之间,初中文化程度,男性当钳工,女性当

24、车工;大学文化程度都当技术员。年龄在40 岁以上者,初中文化程度当材料员,大学文化程度当技术员。请用结构化语言判定表或判定树描述上述问题的加工逻辑。第六章1. 什么是面向对象方法?与传统软件开发方法相比,面向对象方法有什么优点?是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法优点:1. 符合人们对问题的认识习惯2. 增强问题域与最终软件系统之间的衔接3. 易于维护和复用4. 易于开发大型软件产品2. UML 与面向对象方法的关系是什么?UML是在总结面向对象技术应用实践的基础上;3. UML 的内容包括哪些部分?它的特点是什么?UML 由视图(Views)、模型元素(Mode

25、l Elements)、图(Diagrams)等部分组成。(1) 统一标准(2) 面向对象(3) 可视化、表达能力强(4) 独立于过程。(5) 易掌握、易用4. 解释下列术语,并举例说明。对象、类、关联、泛化、聚合、依赖5. 什么是模型?在软件开发过程中为什么需要建立模型?6Coad-Youdon 面向对象分析方法将建立概念模型分为5 个步骤。以一个你熟悉的应用系统(如图书馆信息管理系统)为例,按照方法规定的步骤,分层建立适当的概念模图书馆信息管理系统7假设你所在的学校要开发一个研究生选课系统,要求该系统能够根据预先制订的课表保证选课无冲突。请采用UML 面向对象方法为该问题建立需求模型。8设

26、计一个计算机游戏软件的游戏规则、情节及场景,基于UML 给出其需求分析模型。第七章1. 面向对象分析包括哪些活动?应该建立哪些类型的模型?面向对象分析OOA 模型的过程包括理解用例模型、识别分析类、定义交互行为、建立分析类图、评审分析模型5 个活动组成。目标是建立一个符合问题域、满足用户需求的OOA 模型。2. 什么是实体类、边界类和控制类?为什么将分析类划分成这3 种类型?实体类:用于描述必须存储的信息,同时描述相关的行为。实体类代表拟建系统中的核心信息。在RUP 的有关文档中对实体类的解释为:“实体类是用于对必须存储的信息和相关行为建模的类。边界类:在系统与外界之间,为它们交换各种信息与事

27、件。边界类处理软件系统的输入与输出。在RUP的有关文档中对边界类的解释为:边界类是一种用于对系统外部环境与其内部运作之间的交互进行建模的类。控制类:与业务过程相关,它们控制整个业务的流程和执行次序。在RUP 的有关文档中对控制类的解释为:控制类用于对一个或几个用例所持有的控制行为进行建模。控制类对象可以和边界对象交互,也可以和实体对象交互,但不能和用例的参与者直接进行交互。3. 请思考本章所讲案例中的其他用例的参与类图。4. 搜索关于面向对象分析的文章,对比不同的分析技术,并给出这些技术的优缺点。5. 针对自己所选定的系统,对用例模型进行分析,建立相应的模型,从而在分析出各个分析类,建立出分析

28、类图。第八章1. 什么是软件设计?它的目标和任务是什么?软件设计:在需求分析的基础上通过抽象和分解将系统分解成模块,确定系统功能的实现。即把软件需求转换为软件包表示的过程。目标:软件设计的最终目标是产生一个设计规约,该规约包括体系结构、描述数据、接口和构件的设计模型。软件设计的任务,就是把分析阶段产生的软件需求规格说明转换为用适当手段表示的软件设计文档。2. 怎样实现信息隐藏?模块独立是信息隐藏的直接结果。信息隐藏原理告诉我们,模块应该设计得使其所含信息(过程和数据)对于那些不需要这些信息的模块不可访问;每个模块只完成一个相对独立的特定功能,模块之间仅仅交换那些为完成系统功能必须交换的信息,即

29、模块应该独立。3. 逐步求精、分层过程与抽象等概念之间的相互关系如何?程序的体系结构是通过逐步精化处理过程的层次而设计出来的。通过逐步分解对功能的宏观陈述而开发出层次结构,最终得出用程序设计语言表达的程序。求精实际上是细化过程。抽象与求精是一对互补的概念。抽象使得设计者能够说明过程和数据,但却忽略了底层细节。求精则帮助设计者在设计过程中逐步揭示底层细节。4. 完成良好的软件设计应遵循哪些原则?模块化与模块独立性;抽象与逐步求精;信息隐藏。5. 如何理解模块独立性?用什么指标来衡量模块独立性?模块的独立性是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其他的模块的接口是简单的。

30、一般采用两个准则度量模块独立性,即模块的内聚性和模块间的耦合性。6. 说明软件设计阶段的任务和过程软件设计分两步完成,即总体设计与详细设计。第一个阶段是总体设计,即概要设计或初步设计。这一阶段主要确定实现目标系统的总体思想和设计框架,确定程序由哪些模块组成,以及模块与模块之间的关系,最后提出概要设计说明书。第二个阶段是详细设计,即过程设计或构件级设计,其任务是通过对结构表示进行细化,确定各个软件构件的详细数据结构和算法,产生描述各个软件构件的详细设计文档。7. 试说明软件体系结构在软件设计阶段中的重要性。良好的体系结构设计是决定软件系统成功的重要因素。软件体系结构设计的好坏往往会成为一个系统设

31、计成败的关键。通常,软件体系结构涉及软件的总体组织、全局控制、数据存取及子系统之间的通信协议等。8. 目前存在哪些不同的设计复审方法?各有什么特点?目前存在着两种不同的设计复审方法。1) 正式复审2) 非正式复审正式复审包括各方面的参加人员,通常采取正式会议的方式。非正式复审的特点是参加人数少,且均为软件人员,带有同行讨论的性质,方便灵活,十分适合于详细复审。第九章1. 简述模块分解的原则和依据。1. 改进软件结构以提高模块独立性设计出软件的初步结构以后,应该审查分析这个结构,通过模块分解或合并,力求降低耦合提高内聚。2. 模块的大小要适当经验表明,一个模块的规模不应过大,通常规定其语句行数为

32、50100 行,最多不超过500 行。,体积过大的模块往往是由于分解不充分,且具有多个功能,因此需要对功能进一步分解,生成一些下级模块或同层模块。反之,模块体积过小也可以考虑是否可能与调用它的上级模块合并。3. 深度、宽度、扇出和扇入都应适当4. 模块的作用域应在控制域之内5. 力争降低模块接口的复杂程度6. 设计单入口单出口的模块7. 模块功能应该可预测,避免对模块施加过多限制2. 什么是“事物流”?什么是“变换流”?事务流由至少一条接受路径、一个事务中心与若干条动作路径组成。变换流有三部分组成:即输入流、变换中心和输出流3. 试述“变换分析”“事物分析”设计步骤。变换分析设计的步骤:(1)

33、 对DFD 图的分析和划分,首先区分输入流、输出流和变换中心3 个部分,标明数据流的边界。(2) 进行第一级分解,设计顶层和第一层模块(3) 第二级分解,设计中、下层模块(4)对初始结构图按照设计准则进行精化与改进事务分析设计的步骤:(1) 确定输入、事务变换和输出路径的集合(划分集合)。(2) 根据事务的功能设计个总控模块(设计总控)。(3) 确定顶层模块和第一层模块(建立映射)。(4) 继续下层分解(递归自展)。4. 什么是模块的影响范围?什么是软件的控制范围?它们之间应建立什么关模块的作用域定义为受该模块内一个判定影响的所有模块的集合。模块的控制域是指这个模块本身以及所有直接或间接从属于

34、它的模块的集合含有判定的模块的作用域应处在这个模块的控制域之内,即作用域应该是控制域的子集。5. 简述几种常见的设计改进策略。(1) 在不考虑时间因素的前提下构造并精化软件结构。(2) 在详细设计阶段挑选最耗费时间的那些模块,精心设计它们的处理过程,以求提高效率。(3) 用高级程序设计语言编写程序。(4) 检测并分离出占用大量处理机资源的模块。(5) 必要时重新设计或用依赖机器的语言重新对大量占用资源的模块编码,以求提高效率。6. 请将下面的DFD 转换为系统模块结构图。(注:图中 表示或者)7. 某图书管理系统有以下功能。(1) 借书:输入读者借书证。系统首先检查借书证是否有效,若有效,对于

35、第一次借书的读者,在借书证上建立档案。否则,查阅借书文件,检查该读者所借图书是否超过10 本,若已达10 本,拒借;未达10 本,办理借书(检查库存,修改库存目录并将读者借书情况录入借书文件)。(2) 还书:从借书文件中读出与读者有关的记录,查阅所借日期,如超期(3 个月)做罚款处理。否则,修改库存目录与借书文件。(3) 查询:通过借书文件,库存目录文件查询读者情况图书借阅及库存情况,打印统计表。根据上面描述绘制系统模块结构图和IPO 图。1. 简述面向对象设计阶段要做的工作。OOD 主要包括三个方面的工作:系统体系结构设计、用例实现方案设计和用户界面设计。2. 简述单一职责原则的含义。单一职

36、责,其实也就是要求系统中的一个具体设计元素(类)只完成某一类功能(职责);尽可能避免出现一个“复合”功能的类在同一个类中完成多个不同的功能。单一职责原则是面向对象技术中类的基本设计原则。3. 依赖倒置原则中高层模块与低层模块之间是如何实现依赖关系的倒置的?高层模块不依赖低层模块,两者都依赖于抽象,以实现应用系统中高层模块的自由服用和提供高层模块的可扩展性。4. 如何设计系统体系结构,包括哪些工作?系统体系结构设计可分为软件系统体系结构设计和硬件系统体系结构设计。软件系统体系结构把系统的各种功能分配到系统的不同组织部分,并详细地描述各个组织部分之间是如何协调工作来实现这些功能的。硬件系统体系结构

37、模型涉及系统的详细描述(根据系统所包含的硬件和软件)。5. 简述面向对象分析中的分析类转化为面向对象设计中的设计元素的方法?有一些分析类可以直接映射到设计元素进行详细设计,有一些分析类可能需要映射成一个子系统接口进行设计。一般来说,如果一个“分析类”比较简单,代表着单一的逻辑抽象,那么可以将其映射为“设计类”。通常,主动参与者对应的边界类、控制类和一般的实体类都可以直接映射成设计类。如果“分析类”的职责比较复杂,很难由单个“设计类”承担,则应该将其映射成“子系统接口”。通常,被动参与者对应的边界类被映射成子系统接口。6. 如何进行数据存储设计,设计类与数据库表之间有什么关系?1) 针对文件的数

38、据存储设计2) 针对关系数据库的数据存储设计一般来说,一个实体类映射为一个关系表7. 什么是设计评审,有什么评审指标?系统设计审查就是对所设计的系统和系统设计规格说明报告逐一进行严格审查,检查是否达到系统设计功能要求。如果发现系统功能没有达到用例的要求或有遗漏,一次返回逐步检查,找到问题所在,补充设计实现其功能。8. 分析各设计模式的特点,阐述其适用场合?1. 抽象工厂(Abstract Factory)模式在下述几种情况中可以使用抽象工厂模式: 一个系统要独立于它的产品的创建、组合和表示时。 一个系统要由多个产品系列中的一个来配置时。 当要强调一系列相关的产品对象的设计以便进行联合使用时。

39、当提供一个产品类库,而只想显示它们的接口而不是实现时。2. 适配器(Adapter)模式通常在以下情况中可以使用适配器模式: 想要使用一个已经存在的类,而它的接口不符合需求。 创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作。 (仅适用于对象适配器)意图使用一些已经存在的子类,但是不可能对每一个子类都单独匹配它们的接口,对象适配器可以适配它的父类接口。3. 策略(Strategy)模式通常在以下情况中可以使用策略模式。 多个类只区别在表现行为不同,在运行时动态选择具体要执行的行为。 需要在不同情况下使用不同的策略(算法),或者策略还可能在未来

40、用其他方式来实现。 对客户隐藏具体策略(算法)的实现细节,彼此完全独立。第十一章1. 试简述人机交互模型的执行-评估循环过程。建立目标、形成意向、指定动作序列、执行动作、感知系统状态、解释系统状态、对照目标和意向评估系统状态。2. 人机交互的一般框架是什么?试简述其交互循环过程。即表达、执行、表现和观察3. 用户界面有哪些风格?用户界面的风格,即人机交互的形式,是指计算机系统的用户界面上控制输入输出的方法,它大致经过了四代的演变。1. 命令语言2. 菜单选项3. 面向窗口的点选界面4. 自然语言风格的界面4. 关于界面设计的3 条基本原则是什么?(1) 置用户于控制之下。(2) 减少用户的记忆

41、负担。(3) 保持界面一致。5. 试简述用户界面的设计过程。用户界面的设计过程通常可分为界面分析和建模、界面设计、界面实现和界面评估4 个步骤。6. 以“寝室”为题,设计一个网站的主页,然后讨论每个同学的设计风格,感受个性的差异给设计方案带来的影响。第十二章1. 简述程序设计语言的基本特征及分类。基本特征包括心理特性,工程特性和技术特性三个方面。语言的的心理特性对人机通信的质量有主要的影响;语言的工程特性对软件开发成功与否有重要的影响;此外语言的技术特性也会影响软件设计的质量。 按程序设计语言的历史发展过程,计算机语言可分为机器语言、汇编语言、高级程序设计语言。 按与机器的依赖程度,可分为低级

42、、中级和高级语言。 按应用范围,可分为通用语言与专用语言两大类,通用语言又可细分为系统程序设计语言、科学计算语言、事务处理语言和实时控制语言等。 按程序的设计方法,可分为命令性语言和作用性语言。 按语言的成分,可以分成顺序语言、并行语言和实时语言等。 按语言的组成方法,可以分成汇集式语言和可扩充语言。2. 简述程序设计语言的发展过程。1. 机器语言2. 汇编语言3. 高级语言3. 为了具有良好的程序设计风格,应该注意哪些方面的问题?要形成良好的程序设计风格,应从源程序文档化、数据说明、语句构造、输入输出和追求效率几个方面加以注意。4. 简述软件代码审查内容。1.类2.属性3.构造函数.4.方法

43、头5.方法体.6.数组或指针5. 思考一个待开发软件的题目,如票务管理系统、住院病人管理系统、图书信息管理系统、学生教务管理系统等,并进一步思考以下问题:它包含哪些主要功能,采用哪种开发方法比较合适,选择哪种程序设计语言合适。同时思考你该设计怎样的编程规范以保证代码质量;并选择部分功能模块实现。第十三章1. 什么是软件缺陷?(1) 软件未实现产品说明书要求的功能。(2) 软件出现了产品说明书指明不应该出现的错误。(3) 软件实现了产品说明书未提到的功能。(4) 软件未实现产品说明书虽未明确提及但应该实现的目标。(5) 软件难以理解、不易使用、运行缓慢或者从测试员的角度看最终用户会认为不好。2.

44、 什么是软件测试?软件测试的原则有哪些?软件测试是按照特定的规则,发现缺陷而执行程序的过程。一个好的测试用例是指尽可能找到迄今为止尚未发现缺陷的用例。一个成功的测试是指揭示了迄今为止尚未发现缺陷的测试。软件测试的原则:(1) 所有的测试都应该能追溯到用户需求。(2) 应该在测试之前就制定出测试计划。(3) Pareto 原理可应用于软件测试。(4) 测试应从“小规模”开始,逐步转向“大规模”。(5) 穷举测试是不可能的。(6) 既要做通过性测试,又要做失效性测试。(7) 为了达到最佳的测试效果,应该由独立的第三方从事测试工作。3. 什么是黑盒测试和白盒测试?什么是动态测试和静态测试?黑盒测试有

45、时又称为功能性测试或行为测试,完全不考虑程序的内部结构和处理过程,只知道软件产品应该具有的功能,在程序接口处测试检验每个功能是否都能正常使用。白盒测试有时称为透明盒测试,已知产品内部工作过程,通过测试检验产品内部动作是否按照产品规格说明的规定正常进行。静态测试是指测试不运行的部分,只是静态检查和审核;动态测试是指通常意义上的测试,即使用和运行软件。4. 设计下列伪程序的语句覆盖、分支覆盖和条件覆盖的测试用例。STARTINPUT( A, B, C )IF A5 AND B10 THENX=10ELSEX=1END IFIF C15 THENY=20ELSEY=2END IFPRINT( X,

46、Y )STOP5. 某图书馆有一个使用CRT 终端的信息检索系统,该系统有表13-7 所示的4 条基本检索命令,要求:(1) 设计测试用例,全面测试系统的正常操作。(2) 设计测试用例,测试系统的非正常操作。表13-7 某图书馆信息检索系统的4 条基本检索命令名称语法操作BROWSE(浏览) b(关键字)系统搜索给出的关键字,找出字母排列与此关键字最相近的字,然后在屏幕上显示约20 个加了行号的字,与给出的关键字完全相同的字应排在(大约)中央的位置SELECT(选取) s(屏幕上的行号)系统创建一个文件保存含有由行号指定的关键字的全部图书的索引,这些索引都有编号(第一个索引的编号为1,第二个为

47、2)DISPLAY(显示) d(索引号)系统在屏幕上显示与给定的索引号有关的信息,这些信息与通常在图书馆的目录卡上给出的信息相同。这条命令接在BROWSE/SELECT 或FIND 命令后面用,以显示文件中的索引信息FIND(查找) f(作者姓名)系统搜索指定的作者姓名,并在屏幕上显示该作者的著作的索引号,同时把这些索引存入文件。6. 程序Triangle 读入3 个整数值,这3 个整数代表同一个三角形三条边的长度,程序根据这3个值判断是否构成三角形,若是三角形,判断其类型属于不等边、等腰或等边三角形中的哪一种,并输出“不是三角形”、“不等边三角形”、“等腰三角形”、“等边三角形”等信息。画出

48、程序流程图,并写出对该程序进行动态黑盒测试和动态白盒测试的测试用例。7. 软件测试分哪些阶段?各阶段的含义是什么?(1)即单元测试、集成测试、确认测试和系统测试(2)单元测试也称模块测试,是针对软件设计的最小单元程序模块进行测试的工作。集成测试也称组装测试,它的任务是按照一定的策略对单元测试的模块进行组装,并在组装过程中进行模块接口与系统功能测试。确认测试也称为有效性测试,目的是验证软件的有效性,即验证软件的功能和性能及其他特性是否符合用户要求。系统测试的目的是为了测试软件安装到实际应用的系统中后,能否与系统的其余部分协调工作,以及对系统运行可能出现的各种情况的处理能力。8. 试述测试与测试的

49、区别。 测试是邀请用户参加在开发场地进行的测试,软件环境尽量模拟实际运行环境,由开发组成员或用户实际操作运行。 测试是由部分用户在实际的使用环境中进行的测试。9. 面向对象测试有哪些类型?面向对象测试大致包括模型测试、类测试、交互测试、系统(子系统)测试、验收测试和发布测试6 种类型。10. 面向对象的单元测试、集成测试、确认测试和系统测试有哪些新特点?封装、继承、多态。11. 常见的调试方法有哪些?常见的调试方法有原始法调试、回溯法调试、归纳法调试、演绎法调试和对分法调试5 种。12. 自动化测试工具可分为哪些类型?试列举几种常见的测试工具。 宏录制和回放软件。利用宏程序,测试员可回放录制的宏,重复执行测试软件的操作。 可编程的宏。在简单录制和回放的基础上,编写回放系统遵循的简单指令。 完全可编程的自动测试工具。除了具有成熟编程语言的能力和驱动被测试软件的宏命令,最重要的特点是具有验证的能力,可检查软件是否以预期方式运行。WinRunner、Load

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论