习题三参考答案
一、填空题
1. 需求分析
2. 新系统的目标,“做什么”
  3.功能需求,性能需求,环境需求,用户界面需求
  4.客户说不清楚  分析人员和用户理解有误
  5.数据流 数据存储 加工 源和终点
  6.“做什么”,加工规则
  7.数据流图,数据字典,描述加工逻辑的结构化语言,判定表,判定树
  8. 各个成分的具体含义,逻辑模型,需求说明书
  9. 结构化语言  判定表  判定树
  10. 数据处理方面,“做什么”,静态模型,控制模型
 
二、选择题
1.D  2.C  3.A  4.D  5.C  6.A  7.C  8.D  9.C  10.D
三、简答题
1.需求分析阶段的基本任务是什么?需求分析的难点主要表现在哪几个方面?
需求分析的基本任务是要准确地定义新系统的目标,为了满足用户需要,回答系统必须做什么的问题。本阶段要进行以下几方面的工作.
1)问题识别。双方确定对问题的综合需求,这些需求包括.
①功能需求.所开发的软件必须具备什么样的功能,这是最重要的。
②性能需求.待开发的软件的技术性能指标。如存储容量、运行时间等限制。
③环境需求.软件运行时所需要的软、硬件(如机型、外设、操作系统、数据库管理系统等)的要求。
④用户界面需求.人机交互方式、输入输出数据格式等等。
另外还有可靠性、安全性、保密性、可移植性、可维护性等方面的需求,这些需求一般通过双方交流、调查研究来获取,并达到共同的理解。
2)分析与综合,导出软件的逻辑模型。分析人员对获取的需求,进行一致性的分析检查,在分析、综合中逐步细化软件功能,划分成各个子功能。这里也包括对数据域进行分解,并分配到各个子功能上,以确定系统的构成及主要成分,并用图文结合的形式,建立起新的系统的逻辑模型。
3)编写文档。
①编写需求规格说明书,把双方共同的理解与分析结果用规范的方式描述出来,作为今后各项工作的基础。
②编写初步用户使用手册,着重反映被开发软件的用户功能界面和用户使用的具体要求,用户手册能强制分析人员从用户使用的观点考虑软件。
③编写确认测试计划,作为今后确认和验收的依据。
④修改完善软件开发计划。在需求分析阶段对待开发的系统有了更进一步的了解,所以能更准确地估计开发成本、进度及资源要求,因此对原计划要进行适当修正。
需求分析的困难主要体现在以下几个方面.
问题的复杂性。因用户需求所涉及的因素繁多引起,如运行环境和系统功能等等。
交流障碍。需求分析涉及人员较多,如软件系统用户、问题领域专家、需求工程师和项目管理员等,这些人具备不同的背景知识,处于不同的角度,扮演不同角。造成了相互之间交流的困难。
不完备性和不一致性。由于各种原因,用户对问题的陈述往往是不完备的,其各方面的需求还可能存在着矛盾,需求分析要消除矛盾,形成完备及一致性的定义。
需求易变性。用户需求的变动是一个极为普遍的问题,即使是部分变动,也往往会影响到需求分析的全部,导致不一致性和不完备性。
为了克服上述困难,人们主要围绕着需求分析的方法及自动化工具(如CASE技术)等方面进行研究。
2.画数据流图的步骤是什么?画数据流图应该注意什么事项?
解答如下.
(1)画数据流图的步骤.
为了表达较为复杂问题的数据处理过程,用一张数据流图是不够的。要按照问题的层次结构进行逐步分解,并以一套分层的数据流图反映这种结构关系。
首先画系统的输入输出,即先画顶层数据流图。顶层流图只包含一个加工,用以表示被开发的系统,考虑该系统有哪些输入数据,这些输入数据从哪里来;有哪些输出数据,输出到哪里去。这样就定义了系统的输入、输出数据流。顶层图的作用在于表明被开发系统的范围以及它和周围环境的数据交换关系。顶层图只有一张。
画系统内部,即画下层数据流图。一般将层号从0开始编号,采用自顶向下、由外向内的原则画0层数据游戏图时,一般根据当前系统工作情况,并按新系统应有的外部功能,分解顶层流图的系统为若干子系统决定每个子系统间的数据接口和活动关系。画更下层数据流图时,则分解上层图中的加工,一般沿着输入流的方向,凡数据流的组成或值发生变化的地方则设置一个加工,这样一直进行到输出数据流(也可以输出流到输入流方向画)。如果加工的内部还有数据流,刚对此加工在下层图中继续分解,直到每一个加工足够简单,不能再分解为止,不再分解的加工称为基本加工。
(2)画数据流 时要注意的事项.
在软件的系统分析之前,系统的技术负责要制订一个系统的标准。其内容之一就是画数据流图的规范。画数据流图时要注意以下几点.
命名。不论数据流、数据存储还是加工,合适的命名使人们易于理解其含义。数据流的名字代表整个数据流的内容,而不仅仅是它的某些成分,不便用缺乏具体含义的名字,如“数据”、“信息”等,加工名也应反映整个处理的功能,不使用“处理”,“操作”这些笼统的词。
画数据流而不是控制流。数据流图反映系统“做什么”,不反映“如何做”因此箭头上的数据流名称只能是名词或名词短语,整个图中不反映加工的执行顺序。
一般不画物质流。数据流反映能用计算机处理的数据,并不是实物,因此对目标系统的数据流图一般不要画物质流。
每个加工至少有一个输入数据流和一个输出数据流,反映出此加工数据的来源与加工的结果。
加工点的编号。如果一张数据流图中的某个加工点分解成另一张数据流图时,则上层图为父图,直接下层图为子图。子图应编号,子图上的所有加工也应编号,子图的编号就是父图中相应加工的编号,加工的编号由子图号、小数点及局部符号组成。
父图和子图的平衡。子图的输入输出数据流同父图相应加工的输入输出数据流必须一致,此即父图与子图的平衡。有时考虑平衡可忽略一些枝节性的数据流(如出错处理)。父图与子图的平衡,是分层数据流图中的重要性质,保证了数据流图的一致性,便于分析人员的阅读与理解。
局部数据存储。在分层处理的过程中,当某层数据流图中的数据存储不是父图中相应加工的外部接口,而只是本图中某些加工之间的数据接口,则称这些数据存储为局部数据存储。一个局部数据存储只要当它作为某些加工的数据接口或某个加工特定的输入或输出时,就把它画出来,这样有助于实现信息隐藏。
提高数据流图的易理解性。注意合理分解,要把一个加工分解成几个功能相对独立的子加工,这样可以减少加工之间的输入、输出数据流的数目,增加数据流图的可理解性。分解时要注意子加工的独立性,还应注意均匀性,特别是画上层数据流时,要注意将一个问题划分成几个大小接近的组成部分,这样做便于理解;不要在一张数据流图中,某些加工已是基本加工,某些加工还要分解好几层。
3.描述加工逻辑有哪些工具?
加工逻辑也称为while语句怎么用自然语言小说明,描述加工逻辑一般用以下三种工具.结构化语言、判定表、判定树。
1)结构化语言。结构化语言是介于自然语言(英语或汉语)和形式语言之间的一种半
式语言。它是在自然语言基础上加了一些限定,使用有限的词汇和有限的语句来描述加工逻辑,它的结构可分为外层和内层两层.
.外层.用来描述控制结构,采用顺序、选择、重复三种基本结构。
a.顺序结构。是一组实例语句、选择语句、重复语句的顺序排列。祈使语句指至少包含一个动词及一个名词,指出要执行的动作及接受动作及接受动作的对象。
b.选择结构。一般用IF-THEN-ELSE-ENDIF、CASE-OF-ENDCASE等关键字。
c.重复结构。一般用DO-WHILE-ENDDO、REPEAT-UNTIL等关键字。
.内层。一般是采用祈使语句的自然语言短语,使用数据字典中的名词和有限的自定义词,其动词含义要具体,尽量不用形容词和副词来修饰。还可使用一些简单的自述运算和逻辑运算符号。
判定表。在有些情况下,数据流图中的某个加工的一组动作依赖于多个逻辑条件的取值。这时,用自然语言或结构化的语言都不易清楚地描述出来。而用判定表就能够清楚地表示复杂的条件组合与应做的动作之间的对应关系。
  判定表由四部分组成,如图4-2所示。
         
条件定义
条件取值的组合
动作定义
在各种取值的组合下应执行的动作
判定表能够把在什么条件下系统应该做什么动作准确无误地表示出来,但不能描述循环的处理特性,循环处理还需结构化语言。
判定树。判定树是判定表的变形,一般情况下它比判定表更直观,且易于理解和使用。
4.什么是结构化分析方法?该方法使用什么描述工具?具有什么样的优缺点。
结构化分析方法是面向数据流进行需求分析的方法。它是一种建模活动,该方法使用简单易读符号,根据软件内部数据传递、变换的关系,自顶向下逐层分解,描绘出满足功能要求的软件模型。
结构化分析的主要思想是采取自顶向下的逐层分解的分析策略,即面对一个复杂的问题,分析人员不可能一开始就考虑到问题的所有方面以及全部细节,采取的策略往往是分解,把一个复杂的问题划分成若干个小问题,然后再分别解决,将问题的复杂性降低到人可以掌握的程度。分解可分层进行,先考虑问题最本质的方面,忽略细节,形成问题的高层概念,然后再逐层添加细节,即在分层过程中采用不同程度的“抽象”级别,最高层从问题最抽象,而低层的较为具体。
结构化分析方法利用图形等半形式化的描述方式表达需求,简明易懂,用它们形成需求说明书中的主要部分。这些描述工具是.
(1)数据流图。
(2)数据字典。
(3)描述加工逻辑的结构化语言、结构表、判定树。
其中,“数据流图”描述系统的分解,抒描述系统由哪几个部分组成,各部分之间有什么联系等等。“数据字典”定义了数据流图中每一个图形元素。结构化语言、判定表或判定树则详细
描述数据流图中不能被再分解的每一个加工。
结构化分析方法的优点.结构化分析方法是软件需求分析中公认的,有成效的,技术成熟,使用广泛的一种方法,它较适合于开发数据处理类型软件的需求分析。该方法利用图形等半形式化工具表达需求,简明,易读,也易于使用,为后一阶段的设计,测试,评价提供了有利条件。
结构化分析的缺点.
(1)传统的SA方法用于数据处理方面的问题,主要工具DFD体现了系统“做什么”的功能但它仅是一个静态模型,没有 反映处理的顺序,即控制流程。因此,不适合描述实时控制系统。
(2)20世纪60年代末出现的数据库技术,使许多大型数据处理系统中的数据都组织成数据库的形式,SA方法使用DFD在分心与描述“数据要求”反面是有局限的,DFD应与数据库技术中的实体联系图(ER图)结合起来(如同IDEF1信息模型相结合一样)。ER图能增加对数据存储的细节以及数据与数据之间,数据与处理过程之间关系的理解,还解决了在DD中所包含的数据内容表示问题,这样才能完整的描述拥护对系统的需求。
(3)对于一些频繁的人机交互的软件系统,如飞机定票,银行管理,文献检索等系统,拥护最关心的是如何使用它,输入命令,操作方式,系统响应方式,输出格式等等,都是用户需求的重要方面,DFD不适合描述人机界面系统的需求。SA方法往往对这一部分用自然语言做补充。
(4)描述软件需求的精确性有待于提高。
5.传统的软件开发模型的缺陷是什么?原型化方法的类型有哪些?原型化开发模型的主要优点是什么? 

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。