软件工程习题课

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

软件工程习题课P1755•某图书馆有一个使用CRT终端的信息检索系统,该系统有下列4个基本检索命令:名称语法操作BROWSE(浏览)b(关键字)系统搜索给出的关键字,找出字母排列与此关键字最相近的字。然后在屏幕上显示约20个加了行号的字,与给出的关键字完全相同的字约在中央。SELECT(选取)s(屏幕上的行号)系统创建一个文件保存含有由行号制定的关键字的全部图书的索引,这些索引都有编号(第一个索引的编号为1,第二个为2……依此类推)。DISPLAY(显示)d(索引号)系统在屏幕上显示与给定的索引号有关的信息,这些信息与通常在图书馆的目录卡片上给出的信息相同。这条命令接在BROWSE/SELECT或FIND命令后面用,以显示文件中的索引信息。FIND(查找)f(作者姓名)系统搜索指定的作者姓名,并在屏幕上显示该作者的著作的索引号,同时把这些索引存入文件。1.设计测试数据以全面测试系统正常操作。2.设计测试数据以测试系统的非正常操作。P1755参考答案•划分等价类(略)•全面测试系统正常操作BBSBSDFFDP1755参考答案•B:输入关键字,看是否输出约20个加了行号的字,是否与关键字完全相同的字约在屏幕中央。•输入:“计算机”预期输出:约20个加行号的字•BS:输入关键字,选取屏幕上行号,是否生成包含索引号的文件。•输入:“计算机”;12预期输出:约20个加行号的字;文件•BSD:输入关键字,选取屏幕上行号,检索索引号有关信息,是否显示文件中索引信息。•输入:“计算机”;12;3预期输出:约20个加行号的字;文件;文件中索引信息。•F:输入作者姓名,是否在屏幕上显示该作者的著作的索引号,是否将这些索引存入文件。•输入:“金庸”预期输出:该作者著作的索引号•FD:输入作者姓名,检索索引号有关信息,是否现实文件中索引信息。•输入:“金庸”;3预期输出:该作者著作索引号;文件中索引信息P1755参考答案•测试系统的非正常操作•B:搜索关键字为空字串,是否提示关键字不能为空串。•输入:“”预期输出:关键字不能为空串•BS:选取行的行号超过屏幕行号,是否提示行号超界。•输入:“计算机”;80预期输出:行号超界•BSD:检索的索引号不合法,是否提示索引号不合法。•输入:“计算机”;12;-1预期输出:索引号不合法•直接调用DISPLAY,是否提示非法操作•输入:1预期输出:非法操作•……P2785•试用面向对象方法,设计本书习题2第2题中描述的储蓄系统。•习题2第2题•为方便储户,某银行拟开发计算机储蓄系统。储户填写的存款单或取款单由业务员键入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并印出存款单给储户;如果是取款,系统计算利息并印出利息清单给储户。P2785参考答案•需求描述(参照课本P227ATM系统需求描述)•定义系统边界储户业务员终端银行计算机账户账户账户业务员•确定类与对象•储户、银行、储蓄系统、存款单、取款单、业务员、系统、存款人、姓名、住址、存款类型、存款日期、利率、信息、利息、利息清单、帐户、事务日志。•确定关联、属性P2785参考答案-账号-余额-限额-类型帐户-银行名称银行-姓名-住址储户-雇员号-姓名业务员-日期事务-金额-类型更新存款事务取款事务-雇用1**-输入1*1-拥有1*-组成1**-修改1静态结构P2785参考答案•建立动态模型•事件跟踪图(正常、异常)•状态图•以正常存款为例说明事件跟踪图画法•业务人员键入系统•记录存款信息存款入账户•打印存款单业务员存款事务账户键入存款信息存款信息、存款金额打印存款单(作业中,请包含所有正常和异常情况)P2785参考答案•建立动态模型•事件跟踪图(正常、异常)•状态图若某个类的状态较多,变化较复杂,则应当画出该类的状态图,说明该类状态改变的条件等。补充习题一•为什么基于约束覆盖率作为测试软件充分性的一个指标?•类测试:由那些与验证类的实现是否和该类的说明完全一致的相关联的活动组成•类测试后,测试程度用测试充分性表示,即测试多少类实现和多少类说明包括三个标准即基于类状态的覆盖率、基于约束的覆盖率和基于代码的覆盖率。•基于约束的覆盖率以测试用例覆盖状态转换图中多少个约束为依据。如对于状态的边界值,取决于状态相关属性范围,对于状态的每一个转换所应满足的条件,以及转换后应满足何种条件,根据属性来定义每一个状态等。这些测试展现了类测试系列充分性。补充习题二•比较传统和现代开发方法中基于约束的覆盖率的区别补充习题二参考答案•在传统方法测试中:•单元测试集中检测软件,设计的最小单元为模块,可独立测试单个操作;•集成测试存在层次的控制结构,依自顶向下或自底向上策略;•确认测试集中检查用户可见的动作和可识别的输出•传统方法的约束覆盖针对软件设计模块,孤立测试单个操作。补充习题二参考答案•在现代方法测试中:•单元测试中单元的概念改变了,它的“封装”导致类和对象的定义,从而使最小的可测试单元变为封装起来的类和对象;•集成测试不存在层次的控制结构,采用基于线程或使用的测试;•确认测试不再考虑类之间的连接细节•在现代方法的约束覆盖率中,要测试封装的类和对象,而不能孤立地仅对个体模块测试•在传统和现代设计中,针对不同对象,其覆盖程度也有所不同P223•习题1第3题•什么是软件工程?它有哪些本质特性?怎样用软件工程消除软件危机?P223参考答案•软件工程是:①把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件;②研究①中提到的途径•软件工程的本质特性:•软件工程关注于大型程序的构造•软件工程的中心课题是控制复杂性•软件经常变化•开发软件的效率非常重要•和谐地合作是开发软件的关键•软件必须有效地支持它的用户•在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品P223参考答案•软件危机解决途径•技术措施•使用更好的软件开发方法和开发工具•组织管理措施•软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目•软件工程采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来•软件工程正是从管理和技术两方面研究如何更好地开发和维护计算机软件的一门新兴学科P236•习题1第6题•什么是软件过程?它与软件工程方法学有何关系?P236参考答案•软件过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。•软件工程方法学包含三个要素:方法、工具和过程。•方法是完成软件开发的各项任务的技术方法,回答“怎样做”的问题•工具是为运用方法而提供的自动的或半自动的软件工程支撑环境•过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤P237•习题1第7题•什么是软件生命周期模型?试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优缺点,说明每种模型的适用范围P237参考答案•软件生命周期模型是跨越整个生存期的系统开发、运作和维护所实施的全部过程、活动和任务的结构框架。P237参考答案•瀑布模型•缺点:•实际的项目大部分情况难以按照该模型给出的顺序进行,而且这种模型的迭代是间接的,这很容易由微小的变化而造成大的混乱。•经常情况下客户难以表达真正的需求,而这种模型却要求如此,这种模型是不欢迎具有二义性问题存在的。•客户要等到开发周期的晚期才能看到程序运行的测试版本,而在这时发现大的错误时,可能引起客户的惊慌,而后果也可能是灾难性的。•会经常在过程的开始和结束时碰到等待其他成员完成其所依赖的任务才能进行下去,有可能花在等待的时间比开发的时间要长。称之为“堵塞状态”。P237参考答案•优点:•它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导。•虽然有不少缺陷但比在软件开发中随意的状态要好得多。•软件工程中应用最广泛的过程模型,在软件工程中占有肯定和重要的位置。P237参考答案•快速原型模型•在进行了基本需求分析之后,快速开发出产品的原型,然后基于这个原型,同客户沟通、交流,更好地了解客户需求,不断修改这个原型,到了双方认可的程度,再做详细地分析、设计和编程,最终开发出令客户满意的产品。•优点:•使用户能够感受到实际的系统,使开发者能够快速地构造出系统的框架。•缺点:•产品的先天性不足,因为开发者常常需要做实现上的折中,可能采用不合适的操作系统或程序设计语言,以使原型能够尽快工作。P237参考答案•增量模型•缺点:•至始至终开发者和客户纠缠在一起,直到完全版本出来。•优点:•人员分配灵活,刚开始不用投入大量人力资源,当核心产品很受欢迎时,可增加人力实现下一个增量。•当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径,这样就可以先发布部分功能给客户,对客户起到镇静剂的作用。•具有一定的市场。•适合于软件需求不明确、设计方案有一定风险的软件项目。P237参考答案•螺旋模型•缺点:•需要相当的风险分析评估的专门技术,且成功依赖于这种技术。•很明显一个大的没有被发现的风险问题,将会导致问题的发生,可能导致演化的方法失去控制。•这种模型相对比较新,应用不广泛,其功效需要进一步的验证。•优点:•对于大型系统及软件的开发,这种模型是一个很好的方法。开发者和客户能够较好地对待和理解每一个演化级别上的风险。•适合于大型软件的开发

1 / 26
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功