软件工程课后答案_第1页
软件工程课后答案_第2页
软件工程课后答案_第3页
软件工程课后答案_第4页
软件工程课后答案_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

软件工程软件工程 作业及答案作业及答案 1 1 什么是软件危机 它有哪些典型表现 为什么会出现软件危机 答 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题 概括地说 软件危机包含 下述两方面的问题 如何开发软件 以满足对软件日益增长的需求 如何维护数量不断膨胀的已有软件 软件危机典型表现 对软件开发成本和进度的估计常常很不准确 用户对 已完成的 软件系统不满意 的现象经常发生 软件产品的质量往往靠不住 软件常常是不可维护的 软件通常没有适当的文档资料 软件成本在计算机系统总成本中所占的比例逐年上升 软件开发生产率提高的速度 远远跟不上计算机应 用迅速普及深入的趋势 产生软件危机的原因 一方面与软件本身的特点有关 另一方面也和软件开发与维护的方法不正确有关 软件不同于硬件 它是计算机系统中的逻辑部件而不是物理部件 管理和控制软件开发过程相当困难 软 件是规模庞大 而且程序复杂性将随着程序规模的增加而呈指数上升 目前相当多的软件专业人员对软件 开发和维护还有不省糊涂观念 在实践过程中或多或少地采用了错误的方法和技术 这是使软件问题发展 成软件危机的主要原因 1 2 假设你是一家软件公司的总工程师 当你把图 1 1 给手下的软件工程师们观看 告诉他们及早发现并 改正错误的重要性时 有人不同意你的观点 认为要求在错误进入软件之前就清除它们是不现实的 并举 例说 如果一个故障是编码错误造成的 那么 一个人怎么能在设计阶段清除它呢 你怎么反驳他 1 3 什么是软件工程 它有哪些本质特性 怎样用软件工程消除软件危机 答 软件工程是指导计算机软件开发和维护的一门工程学科 采用工程的概念 原理 技术和方法来 开发与维护软件 把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来 以 经济地开发出高质量的软件并有效地维护它 软件工程本质特性 1 软件工程关注于大型程序的构造 2 软件工程的中心课题是控制复杂性 3 软件经常变化 4 开发软件的效率非常重要 5 和谐地合作是开发软件的关键 6 软件必须有效地 支持它的用户 7 在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品 消除软件危机的途径 为了消除软件危机 首先应该对计算机软件有一个正确的认识 必须充分认识 到软件开发不是某种个体劳动的神秘技巧 而应该是一种组织良好 管理严密 各类人员协同配合 共同 完成的工程项目 应该推广使用在实践中总结出来的开发软件的成功的技术和方法 并且研究探索更好更 有效的技术和方法 尽快消除在计算机系统早期发展阶段形成的一些错误概念和做法 应该开发和使用更 好的软件工具 为了解决软件危机 既要有技术措施 方法和工具 又要有必要的组织管理措施 1 6 什么是软件过程 它与软件工程方法学有何关系 答 软件过程是为了获得高质量软件所需要完成的一系列任务的框架 它规定了完成各项任务的工作 步骤 软件工程方法学包含软件过程 1 7 什么是软件生命周期模型 试比较瀑布模型 快速原型模型 增量模型和螺旋模型的优缺点 说明每 种模型的适用范围 答 生命周期模型简洁地描述软件过程 规定了把生命周期划分成哪些阶段及各个阶段执行顺序 瀑布模型历史悠久 广为人知 它的优势在于它是规范的 文档驱动的方法 这种模型的问题是 最 终开发出的软件产品可能并不是用户真正需要的 快速原型模型正是为了克服瀑布模型的缺点而提出来的 它通过快速构建起一个可在计算机上运行的 原型系统 让用户试用原型并收集用户反馈意见的办法 获取用户的真实需求 增量模型具有可在软件开发的早期阶段使投资获得明显回报和较易维护的优点 但是 要求软件具有 开放的结构是使用这种模型时固有的困难 风险驱动的螺旋模型适用于内部开发的大型软件项目 但是 只有在开发人员具有风险分析和排除风 险的经验及专门知识时 使用这种模型才会获得成功 快速原型模型 适合小型软件 螺旋模型 适合内部开发的大规模软件项目 2 1 在软件开发的早期阶段为什么要进行可行性研究 应该从哪些方面研究目标系统的可行性 答 可行性研究的目的 就是用最小的代价在尽可能短的时间内确定问题是否能够解决 至少应该从下述 三方面研究每种解法的可行性 1 技术可行性 2 经济可行性 3 操作可行性 2 5 北京某高校可用的电话号码有以下几类 校内电话号码由 4 位数字组成 第 1 位数字不是 0 校外电 话又分为本市电话和外地电话两类 拨校外电话需先拨 0 若是本市电话则再接着拨 8 位数字 第 1 位不是 0 若是外地电话则拨 3 位区码再拨 8 位电话号码 第 1 位不是 0 请用 2 5 2 小节讲述的定义数据的方法 定义上述的电话号码 答 电话号码 校内电话 本市电话 外地电话 非零数字字符 1 2 3 4 5 6 7 8 9 校内电话 非零数字字符 3 数字 3 本市电话 0 非零数字字符 7 数字 7 外地电话 0 区码 非零数字字符 7 数字 7 3 1 为什么要进行需求分析 通常对软件系统有哪些需求 答 为了开发出真正满足用户需求的软件产品 首先必须知道用户的需求 对软件需求的深入理解是 软件开发工作获得成功的前提条件 不论我们把设计和编码工作做得如何出色 不能真正满足用户需求的 程序只会令用户失望 给开发者带来烦恼 确定对系统的综合要求 1 功能需求 2 性能需求 3 可靠性和可用性需求 4 出错处理需求 5 接口需求 6 约束 7 逆向需求 8 将来可以提出的要求 分析系统的数据要求 3 2 怎样与用户有效地沟通以获取用户的真实需求 答 与用户沟通获取需求的方法 访谈 面向数据流自顶向下求精 简易的应用规格说明技术 快速建立 软件原型 3 3 银行计算机储蓄系统的工作过程大致如下 储户填写的存款单或取款单由业务员键入系统 如果是存 款则系统记录存款人姓名 住址 或电话号码 身份证号码 存款类型 存款日期 到期日期 利率及密 码 可选 等信息 并印出存单给储户 如果是取款而且存款时留有密码 则系统首先核对储户密码 若密 码正确或存款时未留密码 则系统计算利息并印出利息清单给储户 请用数据流图描绘本系统的功能 并用实体 联系图描绘系统中的数据对象 答 数据流图 存折 存款单 存折 无密码 取款单 帐目 存折 无密码 取款单 实体 联系图 M N 4 2 在什么情况下应该使用形式化说明技术 使用形式化说明技术时应遵守哪些准则 答 在开发大型软件系统的过程中应该使用形式化说明技术 应用形式化方法的准则 1 应该选用适当的表示方法 2 应该形式化 但不要过分形式化 3 应该估算成本 4 应该有形式化方法顾问随时提供咨询 5 不应该放弃传统的开发方法 6 应该建立详尽的文档 7 不应该放弃质量标准 8 不应该盲目依赖形式化方法 9 应该测试 测试 再测试 10 应该重用 5 4 美国某大学共有 200 名教师 校方与教师工会刚刚签订一项协议 按照协议 所有年工资超过 26 000 含 26 000 的教师工资将保持不变 年工资少于 26 000 的教师将增加工资 所增加的工资数按下 述方法计算 给每个由此教师所赡养的人 包括教师本人 每年补助 100 此外 教师有一年工龄每年再 多补助 50 但是 增加后的年工资总额不能多于 26 000 教师的工资档案储存在行政办公室的磁带上 档案中有目前的年工资 赡养的人数 雇用日期等信息 需 要写一个程序计算并印出每名教师的原有工资和调整后的新工资 要求 1 画出此系统的数据流图 2 写出需求说明 3 设计上述的工资调整程序 要求用 HIPO 图描绘设计结果 设计时请分别采用下述两种算法 并比较 这两种算法的优缺点 a 搜索工资档案数据 找出年工资少于 26 000 的人 计算新工资 校核是否超过 26 000 储存新 工资 印出新旧工资对照表 b 把工资档案数据按工资从最低到最高的次序排序 当工资数额超过 26 000 时即停止排序 计算新 储蓄所 储户 存款 取款 存款日期 取款日期 姓名 利率 存款类型 住址 利率 身份 证号 利率 名称 利率 地址 储户 存款处 理 取款处 理 核对密 码 现金库 工资 校核是否超过限额 储存新工资 印出结果 答 1 数据流图 赡养人口 人数 S1 新工资 S2 雇佣日期 日期 工龄 2 需求说明 1 任务概述 对于年工资未超过 2600的教师涨工资 每赡养1人补助 100 每有一年 工龄补助 50 涨工资上限为 2600 2 数据描述 数据库描述 工资表 功能需求 对于年工资未超过 2600的教师涨工资 每赡养1人补助 100 每有一年 工龄补助 50 涨工资上限为 2600 3 HIPO图 a b 4 所画的流程图适合 a 种算法 6 8 画出下列伪码程序的流图 计算它的环形复杂度 你觉得这个程序的逻辑有什么问题吗 C EXAMPLE LOOP DO WHILE Z 0 A B 1 IF A 10 THEN X A ELSE Y Z END IF IF Y0 THEN PRINT C ELSE PRINT K ENDIF STOP 计算应涨 工资 S1 读赡养 人数 读雇佣 日期 计算新 工资 计算工 龄 计算应涨 工资 S2 涨工资系统 检索 1 0 修改 2 0 校核 3 0 打印 4 0 打印 4 0校核 3 0修改 2 0排序 1 0 涨工资系统 答 对应的流图 环形复杂度 V G E N 2 17 13 2 6 存在的逻辑问题 1 当 Z 0 时易形成死循环 2 条件 Y 5 包含条件 Y 2 6 9 把统计空格程序的 Jackson 图 下图 改画为等价的程序流程图和盒图 I I S 统计空格 程序体印总数 处理字符串 印字符串分析字符串印空格数 分析字符 处理非空格处理空格 1 2 3 45 8 10 9 7 6 11 12 14 13 答 程序流程图 盒图 N S 图 Y N 7 8 对一个包含 10000 条机器指令的程序进行一个月集成测试后 总共改正了 15 个错误 此时 MTTF 10h 经 过两个月测试后 总共改正了 25 个错误 第二个月改正了 10 个错误 MTTF 15h 要求 1 根据上述数据确定 MTTF 与测试时间之间的函数关系 画出 MTTF 与测试时间 的关系曲线 在画这条曲线时做了什么假设 2 为做到 MTTF 100h 必须进行多长时间的集成测试 当集成测试结束时总共改正了多少个错误 还有 多少个错误潜伏在程序中 答 1 所做假设 1 单位长度里的错误数近似为常数 2 失效率正比于软件中剩余的错误数 而平均无故障时间与剩余的错误数成 反比 3 发现的每一个错误都立即正确地改正了 2 由Shooman公式 MTTF IT K ET EC T 其中 IT 104 MTTF1 10 n1 15 MTTF2 15 n2 25 得 MTTF1 IT K ET EC T1 10 10000 K ET 15 MTTF2 IT K ET EC T2 15 10000 K ET 25 1 解得程序中固有的错误总数ET 45 此外K 100 3 2 设MTTF 100 有 100 10000 100 3 45 x 解得x 42 所以 当集成测试结束时 改正了 42 个错误 还剩 3 个错误 7 9 如对一个长度为 100000 条指令的程序进行集成测试期间记录下下面的数据 a 7 月 1 日 集成测试开始 没有发现错误 b 8 月 2 日 总共改正 100 个错误 此时 MTTF 0 4h c 9 月 1 日 总共改正 300 个错误 此时 MTTF 2h 文件不是文件尾 读一个字符串 换行 输出字符串 换行 统计空格数并输出 取下一个字符串 换行 输出空格总数 开始 结束 文件尾 读一个字符串 换行 输出字符串 换行 统计空格数并输出 取下一个字符 串 换行 输出空格总数 根据上列数据完成下列各题 1 估计程序中的错误总数 2 为使 MTTF 达到 10h 必须测试和调试这个程序多长时间 3 画出 MTTF 和测试时间 之间的函数关系线 答 由Shooman公式 MTTF IT K ET EC T 其中 IT 105 MTTF1 0 4 T1 160 n1 100 MTTF2 2 T2 320 n2 300 得 MTTF1 IT K ET EC T1 0 4 100000 K ET 100 MTTF2 IT K ET EC T2 2 100000 K ET 300 1 解得程序中固有的错误总数ET 350 此外K 1000 2 设MTTF 10 有 10 100000 1000 350 x 解得x 340 由可靠性积累曲线EC t ET 1 exp K1t 得 100 350 1 exp 160K1 300 350 1 exp 320K1 解得 K 0 01 代入 340 350 1 exp K1t 350 1 exp 0 01t 得 t ln 35 0 01 356h 因此求得为使 MTTF 10 测试和调试该程序需要花费 365h 8 1 软件的可维护性与哪些因素有关 在软件开发过程中应该采取哪些措施才能提高软件产品的可维护性 答 1 决定软件可维护性的因素主要有下述 5 个 1 可理解性 2 可测试性 3 可修改性 4 可移植性 5 可重用性 在需求分析阶段的复审过程中 应

温馨提示

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

评论

0/150

提交评论