软件工程习题课.

Slides:



Advertisements
Similar presentations
习题讲解. 第一题 银行计算机储蓄系统的工作过程大致如下:储 户填写的存款单或取款单由业务员键入系统, 如果是存款则系统记录存款人姓名、住址、身 份证号码、存款类型、存款日期、到期日期、 利率以及密码(可选)等信息,并打印出存单 给储户;如果是取款而且存款时留有密码,则 系统首先核对储户密码,若密码正确或存款时.
Advertisements

阻塞操作. 在 linux 里,一个等待队列由一个 wait_queue_head_t 类型的结构来描述 等待队列的初始化: static wait_queue_head_t testqueue; init_waitqueue_head(&testqueue);
Chapter 3: SQL.
杨宇航 百度社区技术部 推荐技术在 百度UGC产品中的应用 杨宇航 百度社区技术部
C++面试笔试精要 张立伦 讲师的CSDN博客地址
初级会计电算化 (用友T3) 制作人:张爱红.
证券投资技术分析.
第四次大作业 登陆学校图书馆网站的电子数据库
全国计算机等级考试 二级基础知识 第二章 程序设计基础.
在PHP和MYSQL中实现完美的中文显示
程序的形式验证 - 简介 中国科学院软件研究所 张文辉 1.
Hadoop I/O By ShiChaojie.
AngularJS -- 使用AngularJS进行开发
面向对象建模技术 软件工程系 林 琳.
R in Enterprise Environment 企业环境中的R
SOA – Experiment 3: Web Services Composition Challenge
项目管理 Project Management
管理信息结构SMI.
第11章:一些著名开源软件介绍 第12章:服务安装和配置 本章教学目标: 了解当前一些应用最广泛的开源软件项目 搭建一个网站服务器
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
Windows网络操作系统管理 ——Windows Server 2008 R2.
第十章 IDL访问数据库 10.1 数据库与数据库访问 1、数据库 数据库中数据的组织由低到高分为四级:字段、记录、表、数据库四种。
2019/1/12 GDP设计协同 超级管理员操作手册 GDP项目组.
2018 北京大学汇丰商学院 日期:
2018 北京大学汇丰商学院 日期:
单元测试工具XUnit 任课老师:黄武 下午2时20分 25.
Windows 7 的系统设置.
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
三:基于Eclipse的集成开发环境搭建与使用
程序设计工具实习 Software Program Tool
SOA – Experiment 2: Query Classification Web Service
第4章 非线性规划 4.5 约束最优化方法 2019/4/6 山东大学 软件学院.
录制回放工具使用说明 鲁晓宇
新一代安全网上银行 小组成员:杨志明 王晶 任毅 刘建中 关昊 刘超.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
解决变化问题的自底向上 流程建模方法 严志民 徐玮.
第二章 登录UNIX操作系统.
C语言程序设计 主讲教师:陆幼利.
EBNF与操作语义 请用扩展的 BNF 描述 javascript语言里语句的结构;并用操作语义的方法描述对应的语义规则
微机系统的组成.
计算机及办公软件应用 ©2013 苏州工业园区职业技术学院
VisComposer 2019/4/17.
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
iSIGHT 基本培训 使用 Excel的栅栏问题
John Wiley & Sons 投稿简介.
本节内容 文件系统 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
Chapter 18 使用GRASP的对象设计示例.
Visual Basic程序设计 第13章 访问数据库
C++语言程序设计 C++语言程序设计 第八章 继承 C++语言程序设计.
魏新宇 MATLAB/Simulink 与控制系统仿真 魏新宇
1.非线性规划模型 2.非线性规划的Matlab形式
海报题目 简介: 介绍此项仿真工作的目标和需要解决的问题。 可以添加合适的图片。
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
第二节 C语言的特点.
Python 环境搭建 基于Anaconda和VSCode.
_07多连接之select模型 本节课讲师——void* 视频提供:昆山爱达人信息技术有限公司 官网地址:
第六章 Excel的应用 五、EXCEL的数据库功能 1、Excel的数据库及其结构 2、Excel下的数据排序 (1)Excel的字段名行
HULUO Finance and Economics College
基于列存储的RDF数据管理 朱敏
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
第8章 创建与使用图块 将一个或多个单一的实体对象整合为一个对象,这个对象就是图块。图块中的各实体可以具有各自的图层、线性、颜色等特征。在应用时,图块作为一个独立的、完整的对象进行操作,可以根据需要按一定比例和角度将图块插入到需要的位置。 2019/6/30.
第四章 UNIX文件系统.
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
学习数据结构的意义 (C语言版) 《数据结构》在线开放课程 主讲人:李刚
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
入侵检测技术 大连理工大学软件学院 毕玲.
质量控制(QC)模式 BrookFIELD.
海报题目 简介: 介绍此项仿真工作的目标和需要解决的问题。 可以添加合适的图片。
Presentation transcript:

软件工程习题课

P175 5 某图书馆有一个使用CRT终端的信息检索系统,该系统有下列4个基本检索命令: 设计测试数据以全面测试系统正常操作。 名称 语法 操作 BROWSE (浏览) b(关键字) 系统搜索给出的关键字,找出字母排列与此关键字最相近的字。然后在屏幕上显示约20个加了行号的字,与给出的关键字完全相同的字约在中央。 SELECT (选取) s(屏幕上的行号) 系统创建一个文件保存含有由行号制定的关键字的全部图书的索引,这些索引都有编号(第一个索引的编号为1,第二个为2……依此类推)。 DISPLAY (显示) d(索引号) 系统在屏幕上显示与给定的索引号有关的信息,这些信息与通常在图书馆的目录卡片上给出的信息相同。这条命令接在BROWSE/SELECT或FIND命令后面用,以显示文件中的索引信息。 FIND (查找) f(作者姓名) 系统搜索指定的作者姓名,并在屏幕上显示该作者的著作的索引号,同时把这些索引存入文件。 设计测试数据以全面测试系统正常操作。 设计测试数据以测试系统的非正常操作。

P175 5 参考答案 划分等价类(略) 全面测试系统正常操作 B BS BSD F FD

P175 5 参考答案 B:输入关键字,看是否输出约20个加了行号的字,是否与关键字完全相同的字约在屏幕中央。 输入:“计算机” 预期输出:约20个加行号的字 BS:输入关键字,选取屏幕上行号,是否生成包含索引号的文件。 输入:“计算机”;12 预期输出:约20个加行号的字;文件 BSD:输入关键字,选取屏幕上行号,检索索引号有关信息,是否显示文件中索引信息。 输入:“计算机”;12;3 预期输出:约20个加行号的字;文 件;文件中索引信息。 F:输入作者姓名,是否在屏幕上显示该作者的著作的索引号,是否将这些索引存入文件。 输入:“金庸” 预期输出:该作者著作的索引号 FD:输入作者姓名,检索索引号有关信息,是否现实文件中索引信息。 输入:“金庸”;3 预期输出:该作者著作索引号;文件中 索引信息

P175 5 参考答案 测试系统的非正常操作 B:搜索关键字为空字串,是否提示关键字不能为空串。 输入:“” 预期输出:关键字不能为空串 BS:选取行的行号超过屏幕行号,是否提示行号超界。 输入:“计算机”;80 预期输出:行号超界 BSD:检索的索引号不合法,是否提示索引号不合法。 输入:“计算机”;12;-1 预期输出:索引号不合法 直接调用DISPLAY,是否提示非法操作 输入:1 预期输出:非法操作 ……

P278 5 试用面向对象方法,设计本书习题2第2题中描述的储蓄系统。 习题2第2题 为方便储户,某银行拟开发计算机储蓄系统。储户填写的存款单或取款单由业务员键入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,并印出存款单给储户;如果是取款,系统计算利息并印出利息清单给储户。

P278 5 参考答案 需求描述(参照课本P227ATM系统需求描述) 确定类与对象 确定关联、属性 定义系统边界 储户、银行、储蓄系统、存款单、取款单、业务员、系统、存款人、姓名、住址、存款类型、存款日期、利率、信息、利息、利息清单、帐户、事务日志。 确定关联、属性

P278 5 参考答案 静态结构

P278 5 参考答案 建立动态模型 以正常存款为例说明事件跟踪图画法 事件跟踪图(正常、异常) 状态图 业务人员键入系统 记录存款信息存款入账户 打印存款单 (作业中,请包含所有正常和异常情况)

P278 5 参考答案 建立动态模型 事件跟踪图(正常、异常) 状态图 若某个类的状态较多,变化较复杂,则应当画出该类的状态图,说明该类状态改变的条件等。

补充习题一 为什么基于约束覆盖率作为测试软件充分性的一个指标? 类测试:由那些与验证类的实现是否和该类的说明完全一致的相关联的活动组成 类测试后,测试程度用测试充分性表示,即测试多少类实现和多少类说明包括三个标准即基于类状态的覆盖率、基于约束的覆盖率和基于代码的覆盖率。 基于约束的覆盖率以测试用例覆盖状态转换图中多少个约束为依据。如对于状态的边界值,取决于状态相关属性范围,对于状态的每一个转换所应满足的条件,以及转换后应满足何种条件,根据属性来定义每一个状态等。这些测试展现了类测试系列充分性。

补充习题二 比较传统和现代开发方法中基于约束的覆盖率的区别

补充习题二参考答案 在传统方法测试中: 传统方法的约束覆盖针对软件设计模块,孤立测试单个操作。 单元测试集中检测软件,设计的最小单元为模块,可独立测试单个操作; 集成测试存在层次的控制结构,依自顶向下或自底向上策略; 确认测试集中检查用户可见的动作和可识别的输出 传统方法的约束覆盖针对软件设计模块,孤立测试单个操作。

补充习题二参考答案 在现代方法测试中: 在现代方法的约束覆盖率中,要测试封装的类和对象,而不能孤立地仅对个体模块测试 单元测试中单元的概念改变了,它的“封装”导致类和对象的定义,从而使最小的可测试单元变为封装起来的类和对象; 集成测试不存在层次的控制结构,采用基于线程或使用的测试; 确认测试不再考虑类之间的连接细节 在现代方法的约束覆盖率中,要测试封装的类和对象,而不能孤立地仅对个体模块测试 在传统和现代设计中,针对不同对象,其覆盖程度也有所不同

P22 3 习题1第3题 什么是软件工程?它有哪些本质特性?怎样用软件工程消除软件危机?

P22 3参考答案 软件工程是: 软件工程的本质特性: 把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件; 研究①中提到的途径 软件工程的本质特性: 软件工程关注于大型程序的构造 软件工程的中心课题是控制复杂性 软件经常变化 开发软件的效率非常重要 和谐地合作是开发软件的关键 软件必须有效地支持它的用户 在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品

P22 3参考答案 软件危机解决途径 技术措施 组织管理措施 使用更好的软件开发方法和开发工具 组织管理措施 软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目 软件工程采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来 软件工程正是从管理和技术两方面研究如何更好地开发和维护计算机软件的一门新兴学科

P23 6 习题1第6题 什么是软件过程?它与软件工程方法学有何关系?

P23 6参考答案 软件过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。 软件工程方法学包含三个要素:方法、工具和过程。 方法是完成软件开发的各项任务的技术方法,回答“怎样做”的问题 工具是为运用方法而提供的自动的或半自动的软件工程支撑环境 过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤

P23 7 习题1第7题 什么是软件生命周期模型?试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优缺点,说明每种模型的适用范围

P23 7参考答案 软件生命周期模型是跨越整个生存期的系统开发、运作和维护所实施的全部过程、活动和任务的结构框架。

P23 7参考答案 瀑布模型 缺点: 实际的项目大部分情况难以按照该模型给出的顺序进行,而且这种模型的迭代是间接的,这很容易由微小的变化而造成大的混乱。 经常情况下客户难以表达真正的需求,而这种模型却要求如此,这种模型是不欢迎具有二义性问题存在的。 客户要等到开发周期的晚期才能看到程序运行的测试版本,而在这时发现大的错误时,可能引起客户的惊慌,而后果也可能是灾难性的。 会经常在过程的开始和结束时碰到等待其他成员完成其所依赖的任务才能进行下去,有可能花在等待的时间比开发的时间要长。称之为“堵塞状态”。

P23 7参考答案 优点: 它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导。 虽然有不少缺陷但比在软件开发中随意的状态要好得多。 软件工程中应用最广泛的过程模型,在软件工程中占有肯定和重要的位置。

P23 7参考答案 快速原型模型 在进行了基本需求分析之后,快速开发出产品的原型,然后基于这个原型,同客户沟通、交流,更好地了解客户需求,不断修改这个原型,到了双方认可的程度,再做详细地分析、设计和编程,最终开发出令客户满意的产品。 优点: 使用户能够感受到实际的系统,使开发者能够快速地构造出系统的框架。 缺点: 产品的先天性不足,因为开发者常常需要做实现上的折中,可能采用不合适的操作系统或程序设计语言,以使原型能够尽快工作。

P23 7参考答案 增量模型 缺点: 优点: 适合于软件需求不明确、设计方案有一定风险的软件项目。 至始至终开发者和客户纠缠在一起,直到完全版本出来。 优点: 人员分配灵活,刚开始不用投入大量人力资源,当核心产品很受欢迎时,可增加人力实现下一个增量。 当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径,这样就可以先发布部分功能给客户,对客户起到镇静剂的作用。 具有一定的市场。 适合于软件需求不明确、设计方案有一定风险的软件项目。

P23 7参考答案 螺旋模型 缺点: 需要相当的风险分析评估的专门技术,且成功依赖于这种技术。 很明显一个大的没有被发现的风险问题,将会导致问题的发生,可能导致演化的方法失去控制。 这种模型相对比较新,应用不广泛,其功效需要进一步的验证。 优点: 对于大型系统及软件的开发,这种模型是一个很好的方法。开发者和客户能够较好地对待和理解每一个演化级别上的风险。 适合于大型软件的开发