第3章   需求分析  课后习题参考答案

一、选择题

(1)进行需求分析可使用多种工具,但(B)是不适用的。

A.数据流图

B.PAD

C.状态转换图

D.数据字典

(2)E-R图中,包含(D)等基本成分。

A.数据、对象、实体

C.实体、关系、控制

B.控制、关系、对象

D.实体、属性、关系

(3)软件规格说明书的内容不应该包括(B)。

A.对重要功能的描述

B.对算法的详细描述

C.对数据的要求

D.实体、属性、关系

(4)结构化需求分析方法的基本思想是(B)。

A.自底向上逐步分解

B.自顶向下逐步分解

C.自底向上逐步抽象

D.自顶向下逐步抽象

(5)软件中的问题发生在(B)阶段,修复成本最低。

A.软件维护阶段

B.软件测试阶段

C.软件实现阶段

D.需求分析阶段

ニ、简答题

(1)需求分析的步骤有哪些?

需求分析需要4个步骤,分别获取、建模、描述和验证。获取需求实质上是一个需求收集的过程,要做充分的调查研究。通常是从分析当前系统包含的数据开始,分析当前系统在处理信息时的不足,用户希望改进的主要问题及迫切性等。收集需求的常用方法有问卷调查、访谈、实地操作、建立原型等,收集的需求主要包括功能需求、性能需求、可靠性需求、可用性、人机界面需求、约束、出错处理等内容。需求分析的核心任务是建立分析模型,即把来自用户的需求信息通过分析、提取、归纳、抽象建立起描述目标系统的模型。传统的面向过程的软件工程方法学,主要采用数据流图建立目标系统的逻辑模型。需求描述是指编制需求分析阶段各类文档。一般情况下,对于大型、复杂软件系统在需求分析阶段会产生3个文档:系统定义文档(用于描述用户需求的报告)、系统需求规格说明书、软件需求规格说明书,分别从不同的角度和层次描述项目开发的需求。对于简单的小规模软件系统,只需编制SRS即可。因为需求分析的成果是后续开发的重要依据和基础,为了提高软件产品的最终质量,降低开发成本,必须对需求分析结果从完整性、一致性、有效性和现实性4个方面进行严格的正确性验证,并且要对需求的变更实施可回溯的管理,避免无法追踪错误来源导致的混乱。

(2)需求分析的基本任务是什么?

包括6个方面:确定对系统的综合要去;分析系统的数据需求;建立系统的逻辑模型;修订系统开发计划;编写软件需求规格说明书;需求分析评审。

(3)什么是结构化分析方法?它的具体做法是什么?

结构化分析方法采用归纳思维和演绎思维的逻辑方法,逐步建立目标系统的逻辑模型(包括数据模型、功能模型和行为模型),进而描绘出满足用户要求的软件系统。

结构化需求分析方法基于“分解“和”抽象“的基本指导思想,采用面向数据流自顶向下逐步求精的分析策略,逐步建立目标系统的逻辑模型。

“分解“是面对一个复杂系统时,为了将复杂性降低到人类认知能力可以掌握的程度,而把一个大系统(问题)分解成若干个小问题,然后分别解决。

需求分析的目标之一是把数据流图中的数据流和数据存储分解定义到元素级。通常做法是从数据流图的输出端着手分析,这是因为输出数据决定了系统必须具有的最基本的组成元素(即功能)。

具体做法是,沿着数据流图从输出端往输入端回溯,以确定每个数据元素的来源,与此同时也就初步定义了有关的算法。通常把分析过程中得到的数据元素的信息定义成数据字典,对算法的简明描述记录在IPO表中。通过分析而补充的数据流、数据存储和处理,应该添加到数据流图的适当位置。复查的过程是从输入端开始,向用户解释输入的数据是经过怎样的处理一步步变成了输出数据。反复经过上述过程,把数据流图“分解“扩展到更低(即更详细)的层次,从而得到更具体、更令人满意的功能性需求的了解。

(4)怎样用简易规格说明技术获取需求?

首先进行初步访谈,通过用户对基本问题的回答,初步确定待解决问题的范围和解决方案。然后开发者和用户分别写出“产品需求”。

定会议的时间和地点以及主持会议的协调人。邀请双方的代表出席会议,并在会前预先把写好的产品需求分发给每一位与会者。

要去每位与会者会前认真审查产品需求,并列出作为系统环境组成的部分对象、系统将产生的对象以及系统为了完成自己的功能将使用的对象。此外,还要求每位与会者列出操作这些对象或与这些对象交互的服务(即处理或功能)。最后还应该列出约束条件(例如成本、规模、完成日期)和性能标准(例如速度、容量)。并不希望每位与会者列出的内容毫无遗漏,但求能够获得对目标系统准确的认识。

会议开始后,讨论的第一个问题是是否需要这个新产品,一旦大家都同意确实需要这个新产品,每位与会者则把他们会前准备好的列表展示出来供大家讨论。在这个阶段,严格禁止批评和争论,以免影响每位与会者深入交流的意愿。

在讨论的基础上,大家一起共同创建一张包含各个议题的组合列表。调整后的组合列表并不真正删除某项内容。在每个议题的组合列表都建立起来后,在由协调人主持讨论这些列表,以形成每个议题都达到意见一致的局面。

一旦得到了意见一致的列表,就把与会者分成更小的小组,针对每张列表中的项目制定小型规格说明(需要对列表中包含的单词或短语进行准确的说明)。

然后,每个小组向全体与会者展示他们制定的小型规格说明,供大家讨论。意见一致后,每个与会者都制定一整套确认标准,并把自己制定的标准再次提交会议讨论,以创建出意见一致的确认标准。最后,有一名或多名与会者根据会议成果起草完整的软件规格说明书。

三、应用题

(1)银行计算机储蓄系统的工作过程大致如下:储户填写的存款单或取款单由业务员输入系统,如果是存款则系统记录存款人的姓名、住址、电话、身份证号、存款类别、存款日期、到期日期、利率及密码,并打印出存款单给用户;如果是取款业务而且存款时留有密码,则系统首先核对密码,若密码正确,则系统计算利息并打印出利息清单给储户。

用数据流图建立该系统的功能模型,并用E-R图描述系统中的数据对象。

描绘本系统功能的数据流图如图所示。

描绘本系统数据模型的E-R图如下:

(2)考虑一个修改磁带上主文件的系统。文件管理员把修改信息穿孔在卡片上,系统读入穿孔卡片上的信息并按照记录号把修改信息顺序排列好。然后系统逐个读入主文件上的记录,根据记录上的校验码校核每个读入的记录,丢掉出错的记录,按照修改信息修改余下的记录,产生的新文件存储在磁盘上。最后,系统输出一份修改报告供文件管理员参阅。

请画出上述主文件修改系统的功能级数据流图。

《软件工程教程》(第2版) 主编:吴迪 马宏茹 丁万宁 第三章课后习题参考答案相关推荐

  1. 《软件工程教程》(第2版) 主编:吴迪 马宏茹 丁万宁 第四章课后习题参考答案

    第4章   总体设计  课后习题参考答案 一.选择题(单选或多选) (1)面向数据流的软件设计方法中,一般将信息流分为(A). A.变换流和事务流 B.变换流和控制流 C.事务流和控制流 D.数据流和 ...

  2. 《软件工程教程》(第2版) 主编:吴迪 马宏茹 丁万宁 第六章课后习题参考答案

    第6章   软件编码和测试  课后习题参考答案 一.选择题 (1)为了提高测试的效率,应该(D). A.随机地选取测试数据 B.取一切可能的输入数据作为测试数据 C.在完成编码以后制定软件的测试计划 ...

  3. 《软件工程教程》(第2版) 主编:吴迪 马宏茹 丁万宁 第五章课后习题参考答案

    第5章   总详细设计  课后习题参考答案 一.填空题 (1)结构化程序设计方法的要点是使用 顺序.选择和循环 结构,自顶向下.逐步求精地构造算法或程序 (2)为了产生结构化的流程图,应由三种基本控制 ...

  4. 《软件工程教程》(第2版) 主编:吴迪 马宏茹 丁万宁 第七章课后习题参考答案

    第7章   软件维护  课后习题参考答案 简答题 (1)面向缺陷维护的内容是什么? 答:面向缺陷维护(程序级维护):软件产品能够正常运转,可以满足用户的功能.性能.接口需求,只是个别地方存在缺陷,使用 ...

  5. 《软件工程教程》(第2版) 主编:吴迪 马宏茹 丁万宁 第八章课后习题参考答案

    第八章  面向对象技术与UML   课后习题参考答案 一.单项选择题 D (2)C (3)B (4)D (5)C (6)B (7)A (8)C(9)A (10)D (11)A (12)C (13)C ...

  6. 《软件工程教程》(第2版) 主编:吴迪 马宏茹 丁万宁 第二章课后习题参考答案

    第2章  软件问题定义及可行性分析 课后习题参考答案 一.填空题 (1)可行性研究的目的是 用最小的代价在尽可能短的时间内确定问题是否能够解决. (2)经济可行性研究范围包括 投资效益分析 .公司经营 ...

  7. 《软件工程教程》(第2版) 主编:吴迪 马宏茹 丁万宁 第九章课后习题参考答案

    第9章   面向对象分析  课后习题参考答案 一.选择题 (1)(C)不是对象具有的特性. A.标 B.继承 C.顺序 D.多态性 (2)封装是把对象的(A)结合在一起,组成一个独立的对象. A.属性 ...

  8. Matlab程序设计与应用(第3版,刘卫国主编)课后习题参考答案

    Matlab程序设计与应用(第3版,刘卫国主编)课后习题参考答案 MATLAB程序设计与应用(第3版,刘卫国著)  习题答案资源 下载地址: Github下载: https://github.com/ ...

  9. 数据库系统概念原书第六版黑皮书第一章课后习题作业答案

    文章目录 1.8列出文件处理系统和DBMS之间的四个显著区别. 1.9 解释物理数据独立性的概念,以及它在数据库系统中的重要性. 1.10 列出数据库管理系统的五个职责.对每个职责,说明当它不能被履行 ...

最新文章

  1. Python使用pandas设置数据列中float数据类型的有效小数位数、抑制科学计数法
  2. 基于Java的webapp_几乎所有基于Java的web app都需要Model 2 (part II) (转)
  3. C#线程--5.0之前时代(一)--- 原理和基本使用
  4. 程序员数学基础【四、取模应用-判断奇偶数、判断素数、求两个数的最大公约数、水仙花数】(Python版本)
  5. SqlException (0x80131904): 将截断字符串或二进制数据。
  6. 中小学计算机教学大纲,中小学信息技术教材教法教学大纲
  7. treeset java_Java TreeSet add()方法与示例
  8. Android 获取手机的厂商、型号、Android系统版本号、IMEI、当前系统语言等工具类...
  9. 嵌入式--接口(一)Camera接口:DVP、MIPI
  10. 你知道ISO27000信息安全管理标准族有多少?
  11. 健身房私教预约小程序 毕业设计毕业论文 开题报告和效果图参考(基于微信小程序毕业设计题目选题课题)
  12. 讯飞、有道、谷歌、微软语音sdk集成总结
  13. 《Python 深度学习》6.1.3 整合在一起:从原始文本到词嵌入
  14. 深度学习基础知识(人工智能)
  15. 【工作】python识别不同国家语言类型
  16. 【搜索】B055_LQ_梅花桩(bfs / 贪心)
  17. 什么是凸函数及如何判断一个函数是否是凸函数
  18. C语言数组-指定初始化器(C99)
  19. 【华为OD机试真题 C++】 勾股数元组【2022 Q4 | 100分】
  20. 算法导论——A*算法易懂的证明

热门文章

  1. 安装完 Windows7 之后所需的瘦身清理工作
  2. H.266代码学习:xIntraCodingTUBlock函数
  3. linux下去ldap数据,Linux系统下要如何修改LDAP中的数据
  4. 二分类和多分类问题的评价指标总结
  5. C++ 实现堆(heap)
  6. html5canvas中波浪线怎么画,html5 canvas画波浪
  7. HTML--(ul+li)元素个性化设计表格实例
  8. python版本分类及区别_python新版本与旧版本的区别
  9. 【硅谷问道】 WWDC 17: 开发者的最初观感
  10. 爬虫第7课课后练习-用扇贝网做一个自动生成错词本