软件工程习题(1)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8、 什么是软件生存周期模型?软件生存周期模型有哪些?各自的特点,适用场合。
软件生存周期模型是软件开发全部过程、活动和任务的结构框架。 瀑布模型、增量模型、迭代模型、原型模型、螺旋模型和喷泉模型 序号 1 2 3 4 5 6 模 型 名 称优 瀑布模型 增量模型 迭代模型 原型模型 螺旋模型 喷泉模型 点 缺 点 适 用 范 围 面向过程开发 系统可拆卸和组装 有高素质软件团队 已有产品的原型 庞大、复杂、高风险项目 面向对象开发
或引起状态转换的触发事件。 协作图描述对象间的协作关系, 协作图跟顺 序图 相似,显示对象间的动态合作关系。 除显示信息交换外, 协作图还显示对象以及 它们之间的关系。 协作图的一个用途是表示 一个类操作的实现。 状态图是一个类对象所可能经历的所有历 程的模型图。 状态图由对象的各个状态和连 接这些状态的转换组成 活动图是状态图的一个变体, 用来描述执行 算法的工作流程中涉及的活动。 活动图描述 了一组顺序的或并发的活动。 构件图为系统的构件建模型 — 构件即构造 应用的软件单元 — 还包括各构件之间的依 赖关系, 以便通过这些依赖关系来估计对系 统构件的修改给系统可能带来的影响。 部署图描述位于节点实例上的运行构件实 例的安排。 节点是一组运行资源, 如计算机、 设备或存储器。 这个视图允许评估分配结果 和资源分配。
5、根据下列条件使用等价类划分法设计测试用例。(书 P118 例) 某一 8 位微机,其八进制常数定义为:以零开头的数是八进制整数,其值的 范围是-177~177,如 05,0127,-065 (1)划分等价类并编号,如下表示:
(2)为合理等价类设计测试用例,表中有两个合理等价类,设计两个例子
(3)为不合理等价类测试用例,至少设计一个测试用例
13、UML 有 9 种图分别是什么?及各自的 特征? 答:UML 有 9 种图分别是用例图、类图、 对象图、顺序图、协作图、状态图、活动图、 构件图(构件图) 、部署图(部署图) 。 用例图是从用户角度描述系统功能, 是用 户所能观察到的系统功能的模型图, 用例是 系统中的一个功能单元 类图描述系统中类的静态结构。 不仅定义系 统中的类, 表示类之间的联系如关联、 依赖、 聚合等,也包括类的内部结构 (类的属性和 操作)。类图是以类为中心来组织的,类图 中的其他元素或属于某个类或与类相关联 对象图是类图的实例, 几乎使用与类图完全 相同的标识。 他们的不同点在于对象图显示 类的多个对象实例,而不是实际的类 顺序图显示对象之间的动态合作关系, 它强 调对象之间消息发送的顺序, 同时显示对象 之间的交互。 顺序图的一个用途是用来表示 用例中的行为顺序。当执行一个用例行为 时, 顺序图中的每条消息对应了一个类操作
7、某航空公司规定,乘客可以免费托运重量不超过 30kg 的行李。当行李重量 超过 30kg 时,对头等舱的国内乘客超重部分每公斤收费 4 元,对其他舱的国内 乘客超重部分每公斤收费 6 元,对外国乘客超重部分每公斤收费比国内乘客多 一倍,对残疾乘客超重部分每公斤收费比正常乘客少一半。用判定树表示与上 述每种条件组合相对应的计算行李费的算法。
1.UML 由视图、图、模型元素、公共机制等几个部分组成。 2. UML 视图分为用例视图、 逻辑视图 、组件视图 、进程视图和配置视图 5 种 视图。 3.类之间的关系包括关联关系、泛化关系、依赖关系、聚合关系和组合关系。 4.软件测试分为四个步骤:单元测试、联合测试有效测试和系统测试。 5.软件生存周期分为 6 个阶段,分别是可行性研究与计划,需求分析阶段、设计 阶段、编码阶段,测试阶段和运行与维护阶段。
Hale Waihona Puke Baidu
6、将下面给出的伪码转换为 N-S 图。 (8 分) void root ( float root1, float root2 ) { i = 1; j = 0; while ( i <= 10 ) { 输入一元二次方程的系数 a, b, c; p = b*b – 4*a*c; if ( p < 0 ) 输出“方程 i 无实数根”; else if ( p > 0 ) 求出根并输出; if ( p == 0 ) { 求出重根并输出; j = j + 1; } i = i +1; } 输出重根的方程的个数 j; }
简单好学
逆转性差
可 以 分 阶 段 提 有时用户不同意 交 需求可变 开发速度快 需求可变 提高开发效率 风险大 不利于创新 建设周期长 不利于项目的管理
瀑布模型的特点: 过程逆转性很差或者说不可逆转, 因为根据上游的错误会在下游进行发散 性传播的原理,所以逆转将会延误工期,增加成本,造成重大损失。 选择瀑布模型必须满足下列条件: (1) 在开发时间内需求没有或很少变化。 (2) 分析设计人员对应用领域很熟悉。 (3) 低风险项目(对目标、环境很熟悉) 。 (4) 用户使用环境很稳定。 (5) 用户除提出需求以外,很少参与开发工作。 瀑布模型适合于功能和性能明确、完整、无重大变化的软件开发
6、 面向对象的特征有哪些? 有三个特征:封装、继承、多态性。 7、 可行性研究的目的是什么?可行性研 究的 4 个内容?可行性研究的任务? 答: 可行性研究的目的是最终确定这样的软 件项目是否能够开发,是否值得开发,是否 需要更改问题定义的内容。 可行性研究的内 容是技术可行性分析、经济可行性分析、社 会因素可行性分析、 操作可行性分析以及开 发方案可行性分析。 可行性研究最根本的任 务是对以后的行动方针提出建议。 10、 需求分析的任务?软件需求分哪三个层 次,并解释说明? 答:需求分析的任务是确定系统做什么。需 求分析分为:问题分析、需求描述和需求评 审。问题分析:系统分析员通过对问题及其 环境的理解、分析和综合,清除用户需求的 模糊性、歧义性和不一致性,并在用户的帮 助下对相互冲突的要求进行折中。需求描 述:正确地描述现实问题以需求模型为基 础,考虑到问题的软件可解性,生成需求规 格说明和初步的用户手册。需求评审:对需 求规格说明和初步的用户手册进行复核, 以 确保软件需求的全面性、精确性,并使用户 和软件设计人员对需求规格说明及用户手 册的理解达成一致。 11、软件测试的步骤有哪些? 答: (1)单元测试 就是对逐个模块进行测 试,通常称为“分调” ,在编码阶段进行, 单元测试多采用白盒测试技术, 系统内多个 模块可以并行地进行测试。 (2)整体测试 是根据模块结构图将各 个模块连接起来, 装配成一个符合设计要求 的软件系统。 (3)有效性测试 是通过黑盒测试来证 实软件功能与用户要求是否一致。 (4)系统测试 这一步可以发现设计和 分析阶段的错误。 12 、白盒测试法有哪些?掌握判定 /条件覆 盖的测试用例 答:语句覆盖、判定覆盖(或称分支覆盖) 、 条件覆盖、判定/条件覆盖、条件组合覆盖。 判定/条件覆盖的测试用例见书上 P115
i = 1; j = 0; while ( i <= 10 ) 输入 a, b, c; 计算 p = b2 - 4ac; F p<0? p>0? T T
输出“方程 i”无 F 实根 F
求出根并输出 T
p == 0 ? 求出重根并输出; j = j + 1; i = i + 1; 输出重根的方程个数 i
1、 什么是软件工程?软件工程的基本目 标是什么? 运用工程学的原理和方法来组织和管理软 件的生产和管理,以保证软件产品开发、运 行和维护的高质量和高生产率。 软件工程的研究内容和最终目的是采用工 程化的概念、原理、技术和方法来开发与维 护软件, 把经过时间考验而证明正确的管理 技术和当前能够得到的最好的技术方法结 合起来。 2、 瀑布模型的阶段有哪些?各个阶段的 任务是什么? 瀑布模型有 6 个阶段, 即可行性研究与计划、 需求分析、设计、编程、测试、运行于维护。 任务分别为: (1) 确定软件系统是否值得开发; (2) 确定系统做什么; (3) 把分析阶段产生的软件需求说明转换为 用是当手段表示的软件设计文档; (4) 按模块说明书用某一种软件的设计语言 为每个模块编写程序; (5) 排除前面 3 个阶段的错误,保证被开发 软件的质量; (6) 在实际运行中不断修改、完善、维护, 使系统持久地满足用户的需要。 3、 什么是数据字典(DD) 用来对数据流图中出现的所有名字进行定 义,它由四个条目构成:数据流、文件、数 据项、加工。 4、 什么是黑盒测试?什么是白盒测试? 黑盒法是根据程序的功能说明来设计测试 用例。黑盒法是在程序的接口上进行测试, 看它能否满足功能要求,输入能否正确接 收,并能否输出正确的结果,以及外部信息 (如数据文件)的完整性能否保持。 白盒法对程序的所有逻辑路径进行测试, 在 不同点检查程序的状态, 确定实际状态和预 期的状态是否一致。 5、 黑盒测试法有哪些?掌握等价测试法 的用例分析(见习题) 。 (1) 等价分类法 (2) 边缘值分析法 (3) 因果图法 (4) 错误推测法
8、使用 PAD 图描述在数组 A(1)~A(10)中找最大数的算法
9、 假设一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中 列出所有需要再次定货的零件。对于每个需要再次定货的零件应该列出下述 数据:零件编号,零件名称,定货数量,目前价格,主要供应者,次要供应 者。零件入库或出库称为事务,通过放在仓库中的 CRT 终端把事务报告给 定货系统。当某种零件的库存数量少于库存量临界值时就应该再次定货。要 求:画出系统的数据流图。
4、 什么是判定/条件覆盖?为以下程序流程图设计判定/条件覆盖测试用例并标明
程序执行路径。
开始 a (x > 1 ) A N D (y = 0 ) F c (x = 2 ) O R (z> 1 ) F e 结束 T T b d
语句段1 语句段2
判定/条件覆盖——它是指设计足够的测试用例,即满足条件覆盖又满足判定覆 盖。 测试用例:x=2,y=0,z=3(覆盖 x>1,y=0,x=2,z>1,通过路径 abcde) ; x=1,y=1,z=1(覆盖 x≤1,y≠0,x≠2,z≤1,通过路径 ace) 。
修改库存清单系统两年以后可以节省 4225.12 元,比最初的投资(5000 元)还少 774.88 元,第三年以后将再节省 1779.45 元。774.88/1779.45=0.44,因此,投 资回收期是 2.44 年。 纯收入:9011.94-5000=4011.94>0 值得开发 3.入三个正整数作为边长,判断该三条边构成的三角形是等边、等腰还是一般三 角形。使用流程图、PAD 图
3. 某计算机系统投入使用后、 5 年内每年可节省人民币 2O0O 元,假设系统的 投资额为 5000 元,年利率为 12%。试计算投资回收期和纯收入。 货币的时间价值
5000-4814.28=185.72 前三年累积的经济效益是 4814.28 元, 最初投资为 5000 元, 第 4 年收益是 1273.89 元。则投资回收期为 185.72/1273.89+3=3.15 年 纯收入:7224.53-5000=2224.53>0 所以这个系统值得开发 2.一个已有的库存清单系统,使它能在每天送给采购员一份定货报表。修改已有 的库存清单程序并且编写产生报表的程序,估计共需 5000 元;系统修改后能及 时定货将消除零件短缺问题,估计因此每年可以节省 2500 元,五年共可节省 12500 元。假定年利率为 12%,利用上面计算货币现在价值的公式可以算出修 改库存清单系统后每年预计节省的钱的现在价值,投资回收期,纯收入。 年 现在值(元) (1+i)n 将来值(元) 累计的现在值(元) 1 2 3 4 5 2500 2500 2500 2500 2500 1.12 1.25 1.40 1.57 1.76 2232.14 1992.98 1779.45 1588.80 1418.57 2232.14 4225.12 6004.57 7593.37 9011.94
判断题 1、UML 中一共有九种图:它们是用例图、类图、对象图、顺序图、协作图、状态图、 活动图、构件图、部署图(正确) 2、用例图是从程序员角度来描述系统的功能(错误) 3、类图是描述系统中类的静态结构,对象图是描述系统中类的动态结构 (错误) 4、活动图和状态图用来描述系统的动态行为(正确) 5、协作图的一个用途是表示一个类操作的实现(正确) 填空