需求分析(传统结构化方法)

需求分析(传统结构化方法)
需求分析(传统结构化方法)

2.2需求分析

需求分析是通过开发人员的分析概括,抽象为完整的需求定义,再形成一系列文档的过程。

2.2.1需求分析的目的与意义

需求分析是一个非常重要的过程,它完成的好坏直接影响后续软件开发的质量。有效的需求分析通常都具有一定的难度。需求分析不仅仅是属于软件开发生命周期早期的一项工作,而且还应该贯穿于整个生命周期中,它应该随着项目的深入而不断地变化。此外,为了方便后续的评审和测试等工作,需求的描述应该尽量做到:具体、详细、可以测量和可以实现,并且基于时间。

2.2.2需求分析的步骤

2-3所示。

需求涉及的方面:

在功能方面,需求包括系统要做什么,相对于原系统目标系统需要进行哪些修改,目标用户有哪些,以及不同用户需要通过系统完成何种操作等。

在性能方面,需求包括用户对于系统执行速度、响应时间、吞吐量和并发度等指标的要求。在运行环境方面,需求包括目标系统对于网络设置、硬件设备、温度和湿度等周围环境的要求,以及对操作系统、数据库和浏览器等软件配置的要求。

在界面方面,需求涉及数据的输入/输出格式的限制及方式、数据的存储介质和显示器的分辨率要求等问题。

1. 获取需求,识别问题

开发人员从功能、性能、界面和运行环境等多个方面识别目标系统要解决哪些问题,要满足哪些限制条件,这个过程就是对需求的获取。开发人员通过调查研究,要理解当前系统的工作模型和用户对新系统的设想与要求。

遗漏需求是最难修订的需求错误。

获取需求是需求分析的基础。为了能有效地获取需求,开发人员应该采取科学的需求获取方法。在实践中,获取需求的方法有很多种,比如,问卷调查、访谈、实地操作、建立原型和研究资料等。

问卷调查法是采用调查问卷的形式来进行需求分析的一种方法。通过对用户填写的调查问卷进行汇总、统计和分析,开发人员便可以得到一些有用的信息。采用这种方法时,调查问卷

的设计很重要。一般在设计调查问卷时,要合理地控制开放式问题和封闭式问题的比例。开放式问题的回答不受限制,自由灵活,能够激发用户的思维,使他们能尽可能地阐述自己的真实想法。但是,对开放式问题进行汇总和分析的工作会比较复杂。

封闭式问题的答案是预先设定的,用户从若干答案中进行选择。封闭式问题便于对问卷信息进行归纳与整理,但是会限制用户的思维。

访谈通过开发人员与特定的用户代表进行座谈,进而了解到用户的意见,是最直接的需求获取方法。为了使访谈有效,在进行访谈之前,开发人员要首先确定访谈的目的,进而准备一个问题列表,预先准备好希望通过访谈解决的问题。在访谈的过程中,开发人员要注意态度诚恳,并保持虚心求教的姿态,同时还要对重点问题进行深入的讨论。由于被访谈的用户身份可能多种多样,开发人员要根据用户的身份特点,进行提问,给予启发。当然,进行详细的记录也是访谈过程中必不可少的工作。访谈完成后,开发人员要对访谈的收获进行总结,澄清已解决的和有待进一步解决的问题。

关注用户的行为而不是他们的言语。

为了深入地了解用户需求,有时候开发人员还会以用户的身份直接参与到现有系统的使用过程中,在亲身实践的基础上,更直接地体会现有系统的弊端以及新系统应该解决的问题,这种需求获取方法就是实地操作。通过实地操作得到的信息会更加准确和真实,但是这种方法会比较费时间。

当用户本身对需求的了解不太清晰的时候,开发人员通常采用建立原型系统的方法对用户需求进行挖掘。原型系统就是目标系统的一个可操作的模型。在初步获取需求后,开发人员会快速地开发一个原型系统。通过对原型系统进行模拟操作,开发人员能及时获得用户的意见,从而对需求进行明确。利用原型系统获取需求的方法的示意图如图2-4所示。

2. 分析需求,建立目标系统的逻辑模型

在获得需求后,开发人员应该对问题进行分析抽象,并在此基础上从高层建立目标系统的逻辑模型。模型是对事物高层次的抽象,通常由一组符号和组织这些符号的规则组成。常用的模型图有数据流图、E-R图、用例图和状态转换图等,不同的模型从不同的角度或不同的侧重点描述目标系统。绘制模型图的过程,既是开发人员进行逻辑思考的过程,也是开发人员更进一步认识目标系统的过程。

3. 将需求文档化

获得需求后要将其描述出来,即将需求文档化。对于大型的软件系统,需求阶段一般会输出三个文档:

系统定义文档(用户需求报告);

系统需求文档(系统需求规格说明书);

软件需求文档(软件需求规格说明书)。

对于简单的软件系统而言,需求阶段只需要输出软件需求文档(即软件需求规格说明书)就可以了。软件需求规格说明书主要描述软件的需求,从开发人员的角度对目标系统的业务模型、功能模型和数据模型等内容进行描述。作为后续的软件设计和测试的重要依据,需求阶段的输出文档应该具有清晰性、无二义性和准确性,并且能够全面和确切地描述用户需求。

4. 需求验证

需求验证是对需求分析的成果进行评估和验证的过程。为了确保需求分析的正确性、一致性、完整性和有效性,提高软件开发的效率,为后续的软件开发做好准备,需求验证的工作非常必要。

在需求验证的过程中,可以对需求阶段的输出文档进行多种检查,比如,一致性检查、完整性检查和有效性检查等。同时,需求评审也是在这个阶段进行的。

2.3 结构化需求分析的方法

结构化需求分析是20世纪70年代由Yourdon、Constaintine及DeMarco提出的一种面向数据流的需求分析方法。它基于"分解"和"抽象"的基本思想,逐步建立目标系统的逻辑模型,进而描绘出满足用户要求的软件系统。

"分解"是指对于一个复杂的系统,为了将复杂性降低到可以掌握的程度,可以把大问题分解为若干个小问题,然后再分别解决。图2-5演示了对目标系统X进行自顶向下逐层分解的示意图。

能,而最底层是对每个模块实现方法的细节性描述。可见,在逐层分解的过程中,起初并不考虑细节性的问题,而是先关注问题最本质的属性,随着分解自顶向下进行,才逐渐考虑越来越具体的细节。这种用最本质的属性表示一个软件系统的方法就是"抽象"。

抽象是一种人类处理复杂问题的基本方法。

分解和抽象是结构化需求分析的基本指导思想。在结构化需求分析的过程中,通常还需要借

助数据流程图、数据字典、E-R图、结构化语言、判定表、判定树等工具。接下来我们介绍数据流图、数据字典和E-R图的相关知识。

2.4结构化需求分析的工具

2.4.1数据流图

数据流图(Data Flow Diagram,DFD)是描述系统中数据流的图形工具,是一种用来表示信息流和信息变换过程的图解方法,可以标识一个系统的逻辑输入和逻辑输出,以及把逻辑输入转换为逻辑输出所需的加工处理。数据流图把软件系统看成是由数据流联系的各种功能的组合,在需求分析的过程中,可以用来建立目标系统的逻辑模型。

结构化需求分析采用的是"自顶向下,由外到内,逐层分解"的思想,开发人员要先画出系统顶层的数据流图,然后再逐层画出低层的数据流图。顶层的数据流图要定义系统范围,并描述系统与外界的数据联系,它是对系统架构的高度概括和抽象。底层的数据流图是对系统某个部分的精细描述。

数据流图的目的是在用户和系统开发人员之间提供语义的桥梁。

--Kenneth Kozar

按照Gane-Sarson法,在绘制数据流图的过程中,主要用到了4个基本符号,如表2-1所示。表2-1数据流图的基本符号

1 SA 法概述

SA 法也是一种建模的活动,主要是根据软件内部的数据传递、变换关系,自顶向下逐层分解,描绘出满足功能要求的软件模型。

1.SA 法的基本思想

结构化分析(Structured Analysis,简称SA 法)是面向数据流的需求分析方法,是70年代由Yourdon,Constaintine 及DeMarco 等人提出和发展,并得到广泛的应用。

结构化分析方法的基本思想是“分解”和“抽象”。

分解:是指对于一个复杂的系统,为了将复杂性降低到可以掌握的程度,可以把大问题分解成若干小问题,然后分别解决。

图4 是自顶向下逐层分解的示意图。顶层抽象地描述了整个系统,底层具体地画出了系统的每一个细节,而中间层是从抽象到具体的逐层过渡。

抽象:分解可以分层进行,即先考虑问题最本质的属性,暂把细节略去,以后再逐层添加细节,直至涉及到最详细的内容,这种用最本质的属性表示一个自系统的方法就是“抽象”。

2.SA 法的步骤

⑴建立当前系统的“具体模型”;

系统的“具体模型”就是现实环境的忠实写照,即将当前系统用DFD 图描述出来。这样的表达与当前系统完全对应,因此用户容易理解。

⑵抽象出当前系统的逻辑模型;

分析系统的“具体模型”,抽象出其本质的因素,排除次要因素,获得用DFD 图描述的当前系统的“逻辑模型”。

⑶建立目标系统的逻辑模型;

分析目标系统与当前系统逻辑上的差别,从而进一步明确目标系统“做什么”,建立目标系统的“逻辑模型”(修改后的DFD 图)。

⑷为了对目标系统作完整的描述,还需要考虑人机界面和其它一些问题。

3.SA 法的描述工具

⑴分层的数据流图

⑵数据词典

⑶描述加工逻辑的结构化语言、判定表或判定树。

2 数据流图

数据流图(Data Flow Diagram,简称DFD)是描述系统中数据流程的图形工具,它标识了一个系统的逻辑输入和逻辑输出,以及把逻辑输入转换逻辑输出所需的加工处理。

1.数据流图的图符数据流图有以下4 种基本图形符号:

箭头表示数据流,圆或椭圆表示加工。双杠或者单杠表示数据存储,矩形框表示数据的源点或终点,即外部实体。

⑴数据流是数据在系统内传播的路径,由一组成固定的数据项组成。除了与数据存储(文件)之间的数据流不用命名外,其余数据流都应该用名词或名词短语命名。数据流可以从加工流向加工,也可以从加工流向文件或从文件流向加工,也可以从源点流向加工或从加工流向终点。

⑵加工也称为数据处理,它对数据流进行某些操作或变换。每个加工也要有名字,通常是动词短语,简明地描述完成什么加工。在分层的数据流图中,加工还应有编号。

⑶数据存储指暂时保存的数据,它可以是数据库文件或任何形式的数据组织。流向数据存储的数据流可理解为写入文件,或查询文件,从数据存储流出的数据可理解为从文件读数据或得到查询结果。

⑷数据源点和终点是软件系统外部环境中的实体(包括人员、组织或其他软件系统),统称为外部实体。一般只出现在数据流图的顶层图中。

还有一些辅助的图例:

例1:画出图书预定系统的DFD 图。现有一图书预定系统,接收由顾客发来的订单,并对订单进行验证,验证过程是根据图书目录检查订单的正确性,同时根据顾客档案确定是新顾

客还是老顾客,是否有信誉。经过验证的正确订单,暂存放在待处理的订单文件中。对订单进行成批处理,根据出版社档案,将订单按照出版社进行分类汇总,并保存订单存根,然后将汇总订单发往各出版社。

画图步骤是:

⑴首先确定外部实体(顾客、出版社)及输入、输出数据流(订单、出版社订单)。

⑵再分解顶层的加工(验证订单、汇总订单)。

⑶确定所使用的文件(图书目录文件、顾客档案等5 个文件)。

⑷用数据流将各部分连接起来,形成数据封闭。

特别要注意的是:数据流图不是传统的流程图或框图,数据流也不是控制流。数据流图是从数据的角度来描述一个系统,而框图则是从对数据进行加工的工作人员的角度来描述系统。数据流图中的箭头是数据流,而框图中的箭头则是控制流,控制流表达的是程序执行的次序。

下图是培训中心管理系统的数据流图,由于只有一层,因此分解的加工较多不易理解,而且如果其中某个加工较复杂,例如编号为3 的加工“付款”和编号为7 的加工“复审”仍很复杂,一时难以理解,如果不继续分解下去,直到每个加工都足够简单易于理解为止,则会影响需求分析结果的可读性。

1.画分层DFD 图的方法

如图2.8 所示,如果系统规模较大,仅用一个DFD 图难以描述,会使得系统变得复杂,且难以理解。为了降低系统的复杂性,采取“逐层分解”的技术,画分层的DFD 图。

画分层DFD 图的一般原则是:“先全局后局部,先整体后细节,先抽象后具体”。通常将这种分层的DFD 图,分为顶层、中间层、底层。顶层图说明了系统的边界,即系统的输入和输出数据流,顶层图只有一张。底层图由一些不能再分解的加工组成,这些加工都已足够简单,称为基本加工。在顶层和底层之间的是中间层。中间层的数据流图描述了某个加工的分解,而它的组成部分又要进一步分解。画各层DFD 图时,应“由外向内”。

画分层DFD 图的具体步骤:

⑴先确定系统范围,画出顶层的DFD 图。

⑵逐层分解顶层DFD 图,获得若干中间层DFD 图。

⑶画出底层的DFD 图。

在画分层数据流图时,首先遇到的问题就是应该如何分解?不能够一下子把一个加工分解成它所有的基本加工,一张图中画出过多的加工是使人难以理解的,但是如果每次只是将一个加工分解成两个或三个加工,又可能需要分解过多的层次,也会影响系统的可理解性。

一个加工每次分解成多少个子加工才合适呢?

根据经验“最多不要超过7 个”。统计结果证明,人们能有效地同时处理7 个或7 个以下的问题,但当问题多于7 个时,处理效果就会下降。当然也不能机械地应用,关键是要使数据流图易于理解。

同时还有几条原则可供参考:

分解应自然,概念上要合理、清晰。只要不影响数据流图的“易理解性”,可以适当地多分

解成几部分,这样分层图的层数就可少些。

一般来说,在上层可以分解得快些,而在中、下层则应分解得慢些,因为上层是一些综合性的描述,“易理解性”相对地说不太重要。

下节我们以一个实例来说明画分层DFD 图的方法。

2 分层DFD 图的改进

分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描绘了系统的总貌,底层画出了系统所有的细部,而中间层则给出了从抽象到具体的逐步过渡。

1.画分层DFD 图的基本原则

⑴.数据守恒与数据封闭原则

所谓数据守恒是指加工的输入输出数据流是否匹配,即每一个加工既有输入数据流又有输出数据流。或者说一个加工至少有一个输入数据流,一个输出数据流。

⑵加工分解的原则

自然性:概念上合理、清晰;

均匀性:理想的分解是将一个问题分解成大小均匀的几个部分;

分解度:一般每一个加工每次分解最多不要超过7个子加工,应分解到基本加工为止。

⑶子图与父图的“平衡”父图中某个加工的输入输出数据流应该同相应的子图的输入输出相同(相对应),分层数据流图的这种特点称为子图与父图“平衡”。

例1 考察下图中子父图的平衡

显然,图2.13 中子图与父图不平衡。子图是父图中加工2 的分解,加工2 有输入数据流R 和M,输出数据流T,而子图则只有一个输入数据流N,却有两个输出数据流T 与S。图2.14 中,子图是父图中加工4 的分解,虽然表面上加工4 只有一个输入数据流“订货单”,而子图却有三个输入数据流,但是如果“订货单”是由“客户”、“帐号”和“数量”三部分组成,即有如下数据条目:订货单=客户+帐号+数量(2.2.5 数据词典),则子、父图平衡。

⑷合理使用文件

当文件作为某些加工之间的交界面时,文件必须画出来,一旦文件作为数据流图中的一个独立成份画出来了

为了对数据流图有更直观的认识,我们以一个考试成绩管理系统为例,介绍它的数据流图。某单位进行招聘考试,应聘者报名后,单位的招聘委员会将每位应聘者的基本情况输入系统。招聘考试结束后,招聘委员会需要将应聘者的成绩输入系统,并按照成绩对应聘者进行排序,将成绩单发放给每位应聘者,并发放录用通知书。该考试成绩管理系统顶层和底层的数据流图分别如图2-6和图2-7所示。

在绘制数据流图的过程中,要注意以下几点。

(1) 数据的处理不一定是一个程序或一个模块,也可以是一个连贯的处理过程。

(2) 数据存储是指输入或输出文件,但它不仅仅可以是文件,还可以是数据项或用来组织数

据的中间数据。

(3) 数据流和数据存储是不同状态的数据。数据流是流动状态的数据,而数据存储是指处于静止状态的数据。

(4) 当目标系统的规模较大时,为了描述的清晰和易于理解,通常采用逐层分解的方法,画出分层的数据流图。在分解时,要考虑到自然性、均匀性和分解度几个概念。

自然性是指概念上要合理和清晰。

均匀性是指尽量将一个大问题分解为规模均匀的若干部分。

分解度是指分解的维度,一般每一个加工每次分解最多不宜超过7个子加工,应分解到基本的加工为止。

(5) 数据流图分层细化时必须保持信息的连续性,即细化前后对应功能的输入和输出数据必须相同。

关于数据流图的详细绘制方法,本章的实践部分会详细介绍。

2.4.2数据字典

用数据流图来表示系统的逻辑模型直观且形象,但是缺乏细节描述,也就是说它没有准确和完整地定义各个图元。可以用数据字典(data dictionary,DD)来对数据流图做出补充和完善。

数据字典用于定义数据流图中各个图元的具体内容,为数据流图中出现的图形元素做出确切的解释。数据字典包含4类条目:数据流、数据存储、数据项和数据加工。这些条目按照一定的规则组织起来便构成了数据字典。定义规则时,常用的符号如表2-2所示。

表2-2数据字典符号

例如,数据流"应聘者名单"由若干应聘者姓名、性别、年龄、专业和联系电话等信息组成,那么"应聘者名单"可以表示为:应聘者名单={应聘者姓名+性别+年龄+专业+联系电话}。数据项考试成绩可以表示为:考试成绩=0..100。再如,某教务系统的学生成绩库文件的数据字典描述可以表示为以下形式。

文件名:学生成绩库

记录定义:学生成绩= 学号+姓名+{课程代码+成绩+[必修|选修]}

学号:由6位数字组成

姓名:2~4个汉字

课程代码:8位字符串

成绩:1~3位十进制整数

文件组织:以学号为关键字递增排列

2.4.3E-R图

E-R图用于描述应用系统的概念结构数据模型,它是进行需求分析,并归纳、整理、表达和优化现实世界中数据及其联系的重要工具。

在建模的过程中,E-R图以实体、联系和属性三个基本概念概括数据的基本结构。实体就是现实世界中的事物,多用矩形框来表示,框内含有相应的实体名称。比如,在一个教务系统中,"学生"就是一个实体,如图2-8所示。

属性多用椭圆形表示,并用无向边与相应的实体联系起来,表示该属性归某实体所有。可以说,实体是由若干个属性组成的,每个属性都代表了实体的某些特征。学生实体的属性如图2-9所示。

联系用菱形表示,并用无向边分别与有关实体连接起来,以此描述实体之间的关系。实体之间存在着三种联系类型,分别是一对一、一对多、多对多,它们反映到E-R图中就为相应的联系类型,即1:1、1:n和m:n。

(1) 一对一联系是指甲实体的任何一个实例只能对应到乙实体的一个实例,并且乙实体的任何一个实例只能对应到甲实体的一个实例。比如,在一个座位分配系统中,"学生"实体和"座位"实体之间的关系就是一对一的,如图2-10所示。

(2) 一对多联系是指甲实体的任何一个实例能够对应到乙实体的多个实例,而乙实体的任何一个实例只能对应到甲实体的一个实例。比如,在一个住宿管理系统中,一个"学生"只能分配到一间"

(3) 多对多联系是指甲实体的任何一个实例能够对应到乙实体的若干个实例,而乙实体的任何一个实例也可以对应到甲实体的若干个实例。比如,在一个选课系统中,一个"学生"可以选修若干门"课程",同时一门"课程"也可以被若干个"学生"选修,如图2-12所示。

需要指出的是,同一个系统的E-R图不具有唯一性,即不同的软件开发人员所设计出来的E-R图可能不同。

2.5 利用Visio绘制网上书店系统的数据流图(1)

网上书店是一种新型的书店模式,它不仅是传统销售渠道的发展和补充,也是未来图书销售的发展方向。目前,我国运作和销售较好的大型网上书店有很多,如当当、卓越亚马逊等,其中当当网上书店在价格和品种方面的优势众所周知;卓越亚马逊网上书店创造流行的能力比较强。国外影响较大的网上书店有美国的亚马逊、德国的贝塔斯曼等,其中亚马逊网上书店在1998年拥有450万名顾客,而到2002年就有将近32亿人网上购书,销售额达到了78亿美元。网上售书将成为图书销售的主要渠道。

下面我们将以一个小型的"网上书店系统"为例,对软件工程开发实践方法和相关工具的使用进行介绍。该网上书店系统旨在实现图书销售的电子商务模式并满足经销商和用户进行电子交易的需求,从而充分发挥网上交易的优势。它的目标是保证经销商和用户之间快速的信息交流。

本节主要是实践利用Visio 2007来绘制网上书店系统的数据流图。利用Visio 2007创建Gane- Sarson数据流图,可以选择"软件和数据库"模板,然后再选择"数据流模型图",创建之后可以看到Gane-Sarson有4种基本符号,如表2-1所示。

在绘制系统数据流图的过程中,结构化需求分析方法通常强调"自顶向下,逐层分析"的思想。对于大规模的软件系统而言,需要采用多层的数据流图才能将问题描述清楚,而对于中等规模或小型的软件系统而言,采用三层的数据流图就可以了。在三层的数据流图中,顶层数据流图主要描述目标系统作为一个整体与外部用户或数据之间的交互;中层数据流图是对顶层数据流图的细化,描述系统的主要功能模块,以及数据在功能模块之间的流动关系;底层数据流图是对中层数据流图的进一步细化,它更关注于功能模块内部的数据处理细节。

绘制目标系统的顶层数据流图时,关键在于分析系统有哪些外部用户及与该系统进行交互的数据源点或终点。例如,对于这里的网上书店系统,其外部用户主要有游客、会员和管理员。其中,游客进行注册后,可以成为系统的会员,会员享有订购图书及订单和书籍等信息查询的功能,管理员可对系统的各种信息进行管理和维护。

根据上述分析,可以得到网上书店系统的顶层数据流图,如图2-17所示。

中层数据流图是对顶层数据流图的细化,它把目标系统主要的功能模块细分为不同的加工,并对数据在不同加工之间的流动关系进行描述。按照结构化需求分析方法,网上书店系统的主要功能模块可以分为用户注册、订单信息查询、书籍信息查询、订购图书及订单信息管理和图书信息管理等。在数据处理的过程中,系统内部的信息存储至少应该包括会员信息记录、图书信息记录和订单信息记录。

根据上述分析,可以得到"网上书店系统"的中层数据流图,如图2-18所示。

为了对数据流图进行细化,可以进一步对中层数据流图中的每一个加工进行分解和求精。在网上书店系统的中层数据流图中,包含6个加工,分别是用户注册、订单信息查询、书籍信息查询、订购图书、订单信息管理和图书信息管理。那么,该系统应该包含6张底层数据流图。底层数据流图展现了系统最精确和最细节性的数据处理过程,为系统设计和编码提供最直接的参考。图2-19和图2-20所示分别是"订购图书"和"订单信息查询"功能模块的底层数据流图。读者可以参考本节中提供的底层数据流图绘制出其他功能模块的底层数据流图。

在介绍了网上书店系统的三层数据流图之后,下面详细阐述一下如何用Visio 2007来绘制数据流图。数据流图的绘制过程可以分为4步:绘制图元,编辑图元文字,连接图元,调整布局。

第4章 结构化设计方法

第4章结构化设计方法 4.1 当你“编写”程序时你设计软件吗?软件设计和编码有什么不同吗? 在“编写”程序时并没有设计软件。软件设计包括概要设计和详细设计,编码是将详细设计中的过程描述转换成用程序设计语言来描述。 4.2 举出3个数据抽象的例子和可以用来操作这些数据抽象的过程抽象的一个例子。 抽象是忽略事物的细节,获取其本质特征的过程。抽象是一种重要的机制,使人们能够对复杂系统能够很好地理解、交流和推理。在软件领域,可以将抽象分为两类,即数据抽象和过程抽象。 在传统的结构化程序设计语言中,就提供了这两种抽象机制。 (1) 数据抽象:在所有的结构化程序设计语言中,用户都可以自定义抽象数据类型。如定义抽象数据类型Student(学生)、Course(课程)、ClassScoreList(班级成绩单)。 (2) 过程抽象:过程抽象也称为是基于方法的抽象。过程抽象使我们关心处理过程的名字和它能做什么,而无需知道如何完成所有实现细节。如求班级总平均分average(ClassScoreList)就是一个过程抽象。 在面向对象的程序设计语言中,抽象与封装的概念密切相关,数据抽象和相关的过程抽象被封装在类中,不同类中相似的过程抽象(方法)又可以进一步抽象,放在接口中。封装是保证事物有明确内外界限的机制。内部是受保护的,与外部事物相隔离。 4.3 应在什么时候把模块设计实现为单块集成软件?如何实现?性能是实现单块集成软件的唯一理由吗? 由于模块之间的调用降低了系统的运行速度,可能会导致满足不了用户的性能要求,这时就需要将软件设计为单块集成软件。但是在设计时,最好按照模块化的原则进行设计,只是没有显式的模块定义而已。这样的程序也具有模块化的优点。性能是实现单块集成软件的唯一理由。 4.4 是否存在一种情况:复杂问题需要较少的工作去解决?这样的情况对模块化观点有什么影响? 通过对复杂的问题进行合理分解,分解为若干个相对简单及独立的子问题,就可以用较少的工作去解决。这种情况能够较好地支持模块化的观点,每个子问题用单独的模块去解决,模块之间应该是高内聚、低耦合的,这样才能减少工作量,否则,虽然每个模块的工作简单了,但模块之间的联系很复杂,也增加了问题解决的难度和工作量。

结构化分析设计与面向对象分析设计比较研究

结构化分析设计与面向对象分析设计比较研究 重庆工商大学计算机科学与技术08软件龚霞 指导老师康世瀛 中文摘要:解析了结构化方法和面向对象方法这两种软件开发方法具有的分析设计过程,讨论了各自在不同软件开发中的应用及局限性,提出了在选用面向对象开发大型软件系统的同时可结合结构化方法。 关键词:软件开发;结构化方法;面向对象方法 Abstract:This paper anatomizes the analysis and design process of Structural method and objected-oriented method,discusses their applications and disadvantages and proposes that structural method can also be used while developing the large-scale software systems in selecting the objected-oriented method. Key words:software-development;objected-oriented method;structural method 一、引言 结构化方法由E.Yourdon和L.L.Constantine在1978年提出,结构化方法又可称为面向功能的软件开发方法或面向数据流的软件开发方法。结构化方法是建立在软件生存周期的模型基础上的一种软件开发方法,相对于早期的个体化开发方法无疑是前进了一大步。 由于传统的生命周期开发学存在下面的问题:生产率提高的幅度远不能满足需求,软件的重用度很低,软件难以维护,软件往往不能满足用户的需求。所以出现了面向对象软件开发方法。这是一种自底向上和自顶向下相结合的方法,而且它以对象建模为基础,从而不仅考虑了输入、输出数据结构,实际上也包含了所有对象的数据结构,所以面向对象的软件开发方法彻底实现了PAM没有完全实现的目标。不仅如此,面向对象技术在需求分析、可维护性和可靠性这三个软件开发的关键环节和质量指标上有了

结构化系统设计方法的基本思想及方法要点

结构化系统设计方法的基本思想是以系统的逻辑功能设计和数据流关系为基础,根据数据流程图和数据字典,借助于标推的设计淮则和图表工具,通过“自上而下”和“自下而上”的反复,逐层把系统划分为多个大小适当,功能明确,具有一定独立性,并容易实现的模块,从而把复杂系统的设计转变为多个简单模块的设计。 从目前大多数信息系统的开发现状来看,结构化系统设计方法是运用最为普遍,同时也是最为成熟的一种开发方式。简单地说,结构化系统设计方法可以用三句话进行概括;自上而下;逐步求精;模块化设计。 首先,自上而下,就是在管理信息系统的设计与系统分析阶段,必须采用整体大于局部、上级优于下级的设计思路。优先考虑如何满足领导层的管理需求,其次才考虑中层与底层的管理需求。 其次,对客户的需求分析应做到逐步求精。在深入调研的基础上力图在编写程序之前就清晰地了解客户的实际运作过程,从而制定出切实可行的开发方案,并且为将来可能的功能扩展留有充分的余地。 最后阶段才进入程序编写阶段。在进行软件设计时采用模块化的设计思路,并且采用自下而上的实施方法,即先开发一些能够独立运行并完成某些功能的小型程序模块,而后将这些模块进行组合。采用这种设计方法,在所有功能模块开发完成之后,只需将所有模块进行有机组合,就能够获得一个完善的系统。 二、结构化系统设计方法的由来与发展 在数据处理领域,“结构化”…词最早出现于程序设计,即结构化程序设计。“结构化”的含义是指用一组标准的准则和工具从事某项工作。在结构化程序设计之前,每一个程序员都按照各自的习惯和思路编写程序,没有统一的标准,也没有统一曲技术方法,因此,程序的调试、维护都很困难,这是造成软件危机的主要原因之一。1966年,Bohn和Jacopinl提出了有关程序设计的新理论.即结构化程序设计理论。这个理论认为,任何——个程序都可以用三种基本逻辑结构来编制,而且只需这三种结构。这三种结构分别是顺序结构、判断结构和循环结构,其特点是每种结构只有一个入口点和一个出口点。程序设计的新理论,促使人们采用模块化编制程序,把一个程序分成若干个功能模块,这些模块之间尽量被此独立,用作业控制语句或程序内部的过程调用语句将这些模块连接起来,形成—‘个完整的程序。一般来说,结构化程序设计方法不仅大大改进了程序的质量和程序员的工作效率,而且还增强了程序的可读性和可修改性。 显然,结构化程序设计是一种成功的方法。但是,它并不能够解决所有的问题,特别是系统开发过程中的系统分析和系统设计问题。程序设计员不可能对一个系统产生整体的印象,结构化程序设计方法也不能解决系统的结构问题,更不能解决系统战略模型的表达问题。 但是,结构化程序设计的思想启发了人们对系统设计产生了新的想法。既然可以用…组标准的方法来构造一个程序,为什么不可以用—‘组标准的准则和工具进行系统设计呢?于是,结构化程序设计中的模块化思想越引入到了系统设计工作中。一个系统由层次化的程序模块构成,每一个模块只有一个入口和一个出口,每一个模块只归其上一级模块调用,并且

软件工程结构化需求分析报告实验1

图书馆管理系统需求分析报告 1引言 1.1、编写目的 编写本报告的目的是明确软件需求、安排项目规划与进度、组织软件开发与测试,供用户确认系统的功能和性能,并作为软件设计人员的设计依据和使用单位的验收标准。 1.2、项目背景 2.1所建设开发软件系统的名称:图书馆管理系统。 2.2用户:图书馆工作人员及读者。 1.3、定义 图书管理系统是对图书的流量进行准确、及时、快速地管理系统,其管理流程可由数据流程图来描述。数据流程图(DFD)是为描述软件系统中的信息流提供了一个图形方法。箭头代表数据流,方框代表数据的源点或终点,圆框代表数据流的交换,双杠代表数据存储的地方。 2 任务概述 2.1目标 图书管理系统通过计算机技术给图书管理人员和读者借、还书带来便利,减少人力资源的使用和降低管理费用,同时提高信息准确度和可靠性,本系统包括了图书馆管理的一般功能。主要就图书馆的借书和还书模块进行开发。 2.2 用户特点 由于图书馆管理人员和借阅的学生老师都是比较熟悉计算机的群体,因此只需进行简单的培训就可以很熟悉地进行操作。该系统的界面尽量会设计的友好一些,满足大多数人的视觉喜好,所以应该能够很好的投入使用。 2.3假定和约束 系统应该在进行充分的前期准备后开始开发,在开发期间所有的开发人员应该严格按照预先规定的步骤进行,不允许中途有任何疏忽,同时应该及时与图书馆管理人员进行沟通,了解他们的真正想法,尽量满足他们的需要,项目一旦完工,就很难进行改动,所以每一步的进行,都应该根据数据字典等工具进行,严格每一个人员的开发流程。 3需求规定 3.1对功能的规定 经过以上详细的用户调查,在现行业务流程和数据分析的基础上,基本可以确定系统设计必须达到的目标。 图书管理系统必须具备的功能有: (1)新进图书的登记功能 (2)图书的查询修改功能 (3)借阅的登记

结构化分析方法

结构化分析方法 ? 1.“所有蔬菜都特价;土豆是种蔬菜;所以土豆也特价。”这段话运用的分析方法是()。(单选题6分)得分:6分 o A.演绎 o B.归纳 o C.对比 o D.举例 ? 2.()是总结现有情况,形成一般化结论。(单选题6分)得分:6分 o A.演绎 o B.归纳 o C.对比 o D.举例 ? 3.“虚心使人进步,骄傲使人落后。”是运用了()的分析方法。(单选题6分)得分:6分 o A.演绎 o B.归纳 o C.对比 o D.举例 ? 4.()是最为常见的演绎形式。(单选题6分)得分:6分 o A.选言推理 o B.假言推理

o C.三段论演绎 o D.关系推理 ? 5.()就是从普遍性的理论知识出发,去认识个别的、特殊的现象的一种逻辑推理方法。(单选题6分)得分:6分 o A.演绎 o B.归纳 o C.对比 o D.举例 ? 6.演绎包括的具体形式有()。(多选题8分)得分:0分 o A.三段论演绎 o B.选言推理 o C.假言推理 o D.关系推理 ?7.对比包括()。(多选题8分)得分:0分 o A.正面对比 o B.反面对比 o C.正物对比 o D.反物对比 ?8.归纳可分为()。(多选题8分)得分:8分 o A.完全归纳 o B.分层归纳 o C.整体归纳

o D.不完全归纳 ?9.归纳是指从许多个别的事物中概括出一般性()的思维方法。(多选题8分)得分:8分 o A.概念 o B.原则 o C.结论 o D.内容 ?10.对比是把两个()的事物放在一起,用比较的方法加以描述或说明。(多选题8分)得分:8分 o A.相反 o B.一致 o C.相对 o D.相符 ?11.演绎是从一般原则到具体事实的过程。(判断题6分)得分:6分 o正确 o错误 ?12.归纳就是从普遍性的理论知识出发,去认识个别的、特殊的现象的一种逻辑推理方法。(判断题6分)得分:6分 o正确 o错误

结构化需求分析方法

结构化分析(SA)方法 结构化开发方法(Structured Developing Method)是现有的软件开发方法中最成熟,应用最广泛的方法,主要特点是快速、自然和方便。结构化开发方法由结构化分析方法(SA法)、结构化设计方法(SD 法)及结构化程序设计方法(SP 法)构成的。 结构化分析(Structured Analysis,简称SA 法)方法是面向数据流的需求分析方法,是70 年代末由Yourdon,Constaintine 及DeMarco 等人提出和发展,并得到广泛的应用。它适合于分析大型的数据处理系统,特别是企事业管理系统。 SA 法也是一种建模的活动,主要是根据软件内部的数据传递、变换关系,自顶向下逐层分解,描绘出满足功能要求的软件模型。 1 SA 法概述 1.SA 法的基本思想 结构化分析(Structured Analysis,简称SA 法)是面向数据流的需求分析方法,是70年代由Yourdon,Constaintine 及DeMarco 等人提出和发展,并得到广泛的应用。 结构化分析方法的基本思想是“分解”和“抽象”。

分解:是指对于一个复杂的系统,为了将复杂性降低到可以掌握的程度,可以把大问题分解成若干小问题,然后分别解决。 图4 是自顶向下逐层分解的示意图。顶层抽象地描述了整个系统,底层具体地画出了系统的每一个细节,而中间层是从抽象到具体的逐层过渡。 抽象:分解可以分层进行,即先考虑问题最本质的属性,暂把细节略去,以后再逐层添加细节,直至涉及到最详细的内容,这种用最本质的属性表示一个自系统的方法就是“抽象”。 2.SA 法的步骤 ⑴建立当前系统的“具体模型”; 系统的“具体模型”就是现实环境的忠实写照,即将当前系统用DFD 图描述出来。这样的表达与当前系统完全对应,因此用户容易理解。 ⑵抽象出当前系统的逻辑模型;

结构化分析方法

结构化分析方法 一、需求分析与需求分析方法 需求阶段是软件开发的关键阶段。 需求分析的任务:准确地定义未来系统的目标,确定为了满足用户的需求系统必须做什么;用《需求规格说明书》规范的形式准确地表达用户的需求。 需求分析阶段的工作(四方面): ◆需求获取:确定系统各方面需求;全面地提炼出系统的功能性与非功能性需求。 ◆需求分析:对获取的需求分析和综合,给出系统解决方案和逻辑模型。 ◆编写需求规格说明书:为用户、设计人员的交流提供方便,还可作为控制软件开发进程的依据。 ◆需求审评:复审需求分析阶段的工作,验证需求文档的一致性、可行性等。 1、需求获取的目的 清楚地理解所要解决的问题、完整地获取用户需求。 2、需求获取的内容 用户需求分类: (1)功能性需求 定义了系统做什么(描述系统必须支持的功能和过程)。 (2)非功能性需求(技术需求) 定义了系统工作时的特性(描述操作环境和性能目标)。 3、需求分析的步骤 需求分析的步骤 当前系统目标系统 物理 模型 逻辑 模型 逻辑 模型 物理 模型 模型化抽象化 具体化实例化 怎 么 做 做 什 么 当前 目标 系统 需 求 定 义 4、需求分析过程示意

(1)通过对现实环境的调查,获得当前系统的物理模型。 (2)去掉具体模型中的非本质因素,抽象出当前系统的逻辑模型。 (3)分析当前系统与目标系统的差别,建立目标系统的逻辑模型。 5、需求分析的方法 结构化分析(传统建模方法)、面向对象分析。 计算机世界 现实世界 结构化开发方法 结构化 分析结构化设计结构化编程 OOA OOD OOP 面向 对象开发 方法 二、结构化分析方法 1、结构化分析方法(Structure Analysis---SA ) (1) 定义 是面向数据流进行需求分析的方法,采用自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。 (2)结构化分析的主要步骤 通过对用户的调查,以软件的需求为线索,获取当前系统的具体模型;去掉具体模型中非本质因素,抽象出当前系统的逻辑模型;根据计算机的特点分析当前系统与目标系统的差别,建立目标系统的逻辑模型;完善目标系统并补充细节,写出目标系统的软件需求规格说明。 2、结构化分析方法使用的常用工具 (1)数据流图(DFD —Data Flow Diagram ) ① 作用 从数据传递和加工的角度,在需求分析阶段以图形的方式描述数据流从输入到输出的移动变换过程,为系统建立逻辑模型。 ◆ 注意:数据流图中的箭头表示的是数据流。程序流程图中的箭头表示的是控制流。 ② 数据流图中的基本图形符号意义

结构化分析和设计方法

3.1.2结构化方法的基本思想 结构化方法是“结构化分析”(Structured Analysis,SA)和“结构化设计”(Structured Design,SD)的总称,结构化方法是目前最成熟、应用最广泛的信息系统开发方法之一,他的优点是有一套严格的开发程序,各开发阶段都要求有完整的文档纪录,国内外已有许多成功开发的例子。 3.1.2.1结构化分析 1.结构化系统分析思想 结构化分析方法是由美国Yourdon公司在20世纪70年代提出的,其基本思想是将系统开发看成工程项目,有计划、有步骤地进行,是一种应用很广的开发方法,适用于分析大型信息系统。 结构化分析方法采用“自顶向下,逐层分解”的开发策略。按照这种策略,再复杂的系统也可以有条不紊的进行,只要将复杂的系统适当分层,每层的复杂程度即可降低,这就是结构化分析的特点。 2.结构化分析方法的内容 结构化分析之后获得的文档是系统分析报告,系统分析报告是由下面几个部分组成的:组织结构及其分析,现行业务流程及其分析,现有数据和数据流程及其分析,新系统地初步方案和补充材料,如开发计划等。 3.结构划分此方法的特点 结构化分析方法有以下特点 结构化分析方法简单,易于掌握和使用。 结构化分析方法将分析的结果用图形表示,如业务流程图,数据流程图等,这些图形都有一套标准图符组成,从而将分析结果简明易懂的展示在用户面前。 结构化分析的实施步骤实现分析实现环境中已存在的系统,在此基础上再构思即将开发的目标系统,从而大大降低了问题的复杂程度,符合人们认识世界、改造世界的一般规律。 4.结构化分析方法的局限 结构化分析方法是一种行之有效的方法,但也有一定的局限性。局限性可以概括成以下几个方面: 结构化分析方法要求对系统有完整确切的需求定义,而实际上这是非常困难的。

结构化需求分析方法

精品文档 )方法结构化分析(SA 是现有的软件开发方法(Structured Developing Method)结构化开发方法中最成熟,应用最广泛的方法,主要特点是快速、自然和方便。结构化开发方法(SP 及结构化程序设计方法法)(SA法)、结构化设计方法(SD 由结构化分析方法构成的。法)方法是面向数据流的需求分法)结构化分析(Structured Analysis,简称SA 等人提出和发及DeMarco 70 年代末由Yourdon,Constaintine 析方法,是特别是企事业管理它适合于分析大型的数据处理系统,展,并得到广泛的应用。系统。法也是一种建模的活动,主要是根据软件内部的数据传递、变换关系,SA 自顶向下逐层分解,描绘出满足功能要求的软件模型。法概述1 SA 1.SA 法的基本思想 是面向数据流的需求分析方)简称SA 法结构化分析(Structured Analysis,并得等人提出和发展,Yourdon,Constaintine 年代由及DeMarco 70法,是到广泛的应用。结构化分析方法的基本思想是“分解”和“抽象”。. 精品文档 可分解:是指对于一个复杂的系统,为了将复杂性降低到可以掌握的程度,以把大问题分解成若干小问题,然后分别解决。是自顶向下逐层分解的示意图。顶层抽象地描述了整个系统,底层具图4 体地画出了系统的每一个细节,而中间层是从抽象到具体的逐层过渡。抽象:分解可以分层进行,即先考虑问题最本质的属性,暂把细节略去,以这种用最本

质的属性表示一个自直至涉及到最详细的内容,后再逐层添加细节,系统的方 法就是“抽象”。 2.SA 法的步骤 ; ⑴建立当前系统的“具体模型” 图描系统的“具体模型”就是现实环境的忠实写照,即将当前系统用DFD 述出来。这样的表达与当前系统完全对应,因此用户容易理解。; ⑵抽象出当前系统的逻辑模型. 精品文档 分析系统的“具体模型”,抽象出其本质的因素,排除次要因素,获得用 图描述的当前系统的“逻辑模型”。DFD ; ⑶建立目标系统的逻辑模型 分析目标系统与当前系统逻辑上的差别,从而进一步明确目标系统“做什)。(修改后的DFD 图么”,建立目标系统的“逻辑模型”⑷为了对目标系统作完整的描述,还需要考虑人机界面和其它一些问题。

结构化程序设计方法

结构化程序设计方法 设计方法的产生 结构化程序设计由迪克斯特拉(E.W.dijkstra)在1969年提出,是以模块化设计为中心,将待开发的软件系统划分为若干个相互独立的模块,这样使完成每一个模块的工作变单纯而明确,为设计一些较大的软件打下了良好的基础。 基本要点 1.采用自顶向下,逐步求精的程序设计方法 在需求分析,概要设计中,都采用了自顶向下,逐层细化的方法。 2.使用三种基本控制结构构造程序 任何程序都可由顺序、选择、重复三种基本控制结构构造。 (1)用顺序方式对过程分解,确定各部分的执行顺序。 (2)用选择方式对过程分解,确定某个部分的执行条件。 (3)用循环方式对过程分解,确定某个部分进行重复的开始和结束的条件。

(4)对处理过程仍然模糊的部分反复使用以上分解方法,最终可将所有细节确定下来。 3. 主程序员组的组织形式指开发程序的人员组织方式应采用由一个主程序员(负责全部技术活动)、一个后备程序员(协调、支持主程序员)和一个程序管理员(负责事务性工作,如收集、记录数据,文档资料管理等)三个为核心,再加上一些专家(如通信专家、数据库专家)、其他技术人员组成小组。 设计语言 C,FORTRAN,PASCAL,Ada,BASIC 设计方法的原则 自顶向下

程序设计时,应先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。不要一开始就过多追求众多的细节,先从最上层总目标开始设计,逐步使问题具体化。 逐步细化 对复杂问题,应设计一些子目标作为过渡,逐步细化。 模块化设计 一个复杂问题,肯定是由若干稍简单的问题构成。模块化是把程序要解决的总目标分解为子目标,再进一步分解为具体的小目标,把每一个小目标称为一个模块。 限制使用goto语句 结构化程序设计方法的起源来自对GOTO语句的认识和争论。肯定的结论是,在块和进程的非正常出口处往往需要用GOTO语句,使用GOTO语句会使程序执行效率较高;在合成程序目标时,GOTO语句往往是有用的,如返回语句用GOTO。否定的结论是,GOTO语句是有害的,是造成程序混乱的祸根,程序的质量与GOTO语句的数量呈反比,应该在所有高级程序设计语言中取消GOTO语句。取消GOTO语句后,程序易于理解、易于排错、容易维护,容易进行正确性证明。

需求分析(传统结构化方法)

2.2需求分析 需求分析是通过开发人员的分析概括,抽象为完整的需求定义,再形成一系列文档的过程。 2.2.1需求分析的目的与意义 需求分析是一个非常重要的过程,它完成的好坏直接影响后续软件开发的质量。有效的需求分析通常都具有一定的难度。需求分析不仅仅是属于软件开发生命周期早期的一项工作,而且还应该贯穿于整个生命周期中,它应该随着项目的深入而不断地变化。此外,为了方便后续的评审和测试等工作,需求的描述应该尽量做到:具体、详细、可以测量和可以实现,并且基于时间。 2.2.2需求分析的步骤 2-3所示。 需求涉及的方面: 在功能方面,需求包括系统要做什么,相对于原系统目标系统需要进行哪些修改,目标用户有哪些,以及不同用户需要通过系统完成何种操作等。 在性能方面,需求包括用户对于系统执行速度、响应时间、吞吐量和并发度等指标的要求。在运行环境方面,需求包括目标系统对于网络设置、硬件设备、温度和湿度等周围环境的要求,以及对操作系统、数据库和浏览器等软件配置的要求。 在界面方面,需求涉及数据的输入/输出格式的限制及方式、数据的存储介质和显示器的分辨率要求等问题。 1. 获取需求,识别问题 开发人员从功能、性能、界面和运行环境等多个方面识别目标系统要解决哪些问题,要满足哪些限制条件,这个过程就是对需求的获取。开发人员通过调查研究,要理解当前系统的工作模型和用户对新系统的设想与要求。 遗漏需求是最难修订的需求错误。 获取需求是需求分析的基础。为了能有效地获取需求,开发人员应该采取科学的需求获取方法。在实践中,获取需求的方法有很多种,比如,问卷调查、访谈、实地操作、建立原型和研究资料等。 问卷调查法是采用调查问卷的形式来进行需求分析的一种方法。通过对用户填写的调查问卷进行汇总、统计和分析,开发人员便可以得到一些有用的信息。采用这种方法时,调查问卷

结构化分析方法答案

结构化分析方法答案 (单选题6分)得分: 1?“虚心使人进步,骄傲使人落后。”是运用了()的分析方法。 r o A.演绎 r o B.归纳 o C.对比 r o D.举例?2?“所有蔬菜都特价;土豆是种蔬菜;所以土豆也特价。”这段话运用的分析方法是()。 (单选题6分)得分:6分 o " A.演绎 o "B.归纳 o 广 C.对比 D.举例 ?3.()是最为常见的演绎形式。(单选题6分)得分:6分 r o A.选言推理 r o B.假言推理 o C.三段论演绎 r o D.关系推理 * 4.()是总结现有情况,形成一般化结论。(单选题6分)◎得分:6分r o A.演绎 o B.归纳 r o C.对比

r o D.举例 ?5.()就是从普遍性的理论知识出发,去认识个别的、特殊的现象的一种逻辑推理方法。(单选题6分)O得分:6分 o苗A.演绎 r o B.归纳 r “ o C.对比 r o D.举例 * 6.演绎包括的具体形式有()。(多选题8分)◎得分:8分 |7 o _ A.三段论演绎 o B.选言推理 17 o C.假言推理 |7 o D.关系推理 * 7.对比包括()。(多选题8分)◎得分:8分 o A.正面对比 17 o B.反面对比 o 厂C.正物对比 p o D.反物对比 * 8.归纳是指从许多个别的事物中概括出一般性()的思维方法。(多选题8分)得分:8分 o A.概念 17 o 一B.原则

o C.结论 o厂D.内容 * 9.对比是把两个()的事物放在一起,用比较的方法加以描述或说明。(多选题8分)得分:8分 |7 o —A.相反 o 厂B. 一致 |7 o C.相对 o厂D.相符 ? 10.归纳可分为()。(多选题8分)得分:8分 |7 o A.完全归纳 o 厂B.分层归纳 o 厂C.整体归纳 o D.不完全归纳 * 11.演绎是从一般原则到具体事实的过程。(判断题6分)◎得分:6分 o 正确 r o 错误 * 12.结构化分析方法一一三段论演绎中,做总体概念陈述的是第一段内容。(判断题6分)O得分:6分 o 正确 r o 错误 * 13.归纳就是从普遍性的理论知识出发,去认识个别的、特殊的现象的一种逻辑推理方法。 (判断题6分)◎得分:6分

结构化需求分析方法

结构化需求分析方法 This model paper was revised by the Standardization Office on December 10, 2020

结构化分析(SA)方法 结构化开发方法(Structured Developing Method)是现有的软件开发方法中最成熟,应用最广泛的方法,主要特点是快速、自然和方便。结构化开发方法由结构化分析方法(SA法)、结构化设计方法(SD 法)及结构化程序设计方法(SP 法)构成的。 结构化分析(Structured Analysis,简称SA 法)方法是面向数据流的需求分析方法,是70 年代末由Yourdon,Constaintine 及DeMarco 等人提出和发展,并得到广泛的应用。它适合于分析大型的数据处理系统,特别是企事业管理系统。 SA 法也是一种建模的活动,主要是根据软件内部的数据传递、变换关系,自顶向下逐层分解,描绘出满足功能要求的软件模型。 1 SA 法概述 法的基本思想 结构化分析(Structured Analysis,简称SA 法)是面向数据流的需求分析方法,是70年代由Yourdon,Constaintine 及DeMarco 等人提出和发展,并得到广泛的应用。 结构化分析方法的基本思想是“分解”和“抽象”。 分解:是指对于一个复杂的系统,为了将复杂性降低到可以掌握的程度,可以把大问题分解成若干小问题,然后分别解决。 图4 是自顶向下逐层分解的示意图。顶层抽象地描述了整个系统,底层具体地画出了系统的每一个细节,而中间层是从抽象到具体的逐层过渡。

抽象:分解可以分层进行,即先考虑问题最本质的属性,暂把细节略去,以后再逐层添加细节,直至涉及到最详细的内容,这种用最本质的属性表示一个自系统的方法就是“抽象”。 法的步骤 ⑴建立当前系统的“具体模型”; 系统的“具体模型”就是现实环境的忠实写照,即将当前系统用DFD 图描述出来。这样的表达与当前系统完全对应,因此用户容易理解。 ⑵抽象出当前系统的逻辑模型; 分析系统的“具体模型”,抽象出其本质的因素,排除次要因素,获得用DFD 图描述的当前系统的“逻辑模型”。 ⑶建立目标系统的逻辑模型; 分析目标系统与当前系统逻辑上的差别,从而进一步明确目标系统“做什么”,建立目标系统的“逻辑模型”(修改后的DFD 图)。 ⑷为了对目标系统作完整的描述,还需要考虑人机界面和其它一些问题。 法的描述工具 ⑴分层的数据流图 ⑵数据词典 ⑶描述加工逻辑的结构化语言、判定表或判定树。

结构化分析和设计方法

结构化分析和设计方法 3.1.2结构化方法的基本思想 结构化方法是“结构化分析”(Structured Analysis,SA)和“结构化设计”(Structured Design,SD)的总称,结构化方法是目前最成熟、应用最广泛的信息系统开 发方法之一,他的优点是有一套严格的开发程序,各开发阶段都要求有完整的文档纪录, 国内外已有许多成功开发的例子。 3.1.2.1结构化分析 1.结构化系统分析思想 结构化分析方法是由美国Yourdon公司在20世纪70年代提出的,其基本思想是将系 统开发看成工程项目,有计划、有步骤地进行,是一种应用很广的开发方法,适用于分析 大型信息系统。 结构化分析方法采用“自顶向下,逐层分解”的开发策略。按照这种策略,再复杂的 系统也可以有条不紊的进行,只要将复杂的系统适当分层,每层的复杂程度即可降低,这 就是结构化分析的特点。 2.结构化分析方法的内容 结构化分析之后获得的文档是系统分析报告,系统分析报告是由下面几个部分组成的:组织结构及其分析,现行业务流程及其分析,现有数据和数据流程及其分析,新系统地初 步方案和补充材料,如开发计划等。 3.结构划分此方法的特点 结构化分析方法有以下特点 结构化分析方法简单,易于掌握和使用。 结构化分析方法将分析的结果用图形表示,如业务流程图,数据流程图等,这些图形 都有一套标准图符组成,从而将分析结果简明易懂的展示在用户面前。 结构化分析的实施步骤实现分析实现环境中已存在的系统,在此基础上再构思即将开 发的目标系统,从而大大降低了问题的复杂程度,符合人们认识世界、改造世界的一般规律。 4.结构化分析方法的局限 结构化分析方法是一种行之有效的方法,但也有一定的局限性。局限性可以概括成以 下几个方面:

结构化分析方法2018答案

结构化分析方法(100分) 1.()是最为常见的演绎形式。(6.0分) A.选言推理 B.假言推理 C.三段论演绎 D.关系推理 我的答案:C答对 2.“所有蔬菜都特价;土豆是种蔬菜;所以土豆也特价。”这段话运用的分析方法是()。(6.0分) A.演绎 B.归纳 C.对比 D.举例 我的答案:A答对 3.()是总结现有情况,形成一般化结论。(6.0分) A.演绎 B.归纳 C.对比 D.举例 我的答案:B答对

4.“虚心使人进步,骄傲使人落后。”是运用了()的分析方法。(6.0分) A.演绎 B.归纳 C.对比 D.举例 我的答案:C答对 5.()就是从普遍性的理论知识出发,去认识个别的、特殊的现象的一种逻辑推理方法。( 6.0分) A.演绎 B.归纳 C.对比 D.举例 我的答案:A答对 1.演绎包括的具体形式有()。(8.0分)) A.三段论演绎 B.选言推理 C.假言推理 D.关系推理 我的答案:ABCD答对 2.对比是把两个()的事物放在一起,用比较的方法加以描述或说明。(8.0分))

B.一致 C.相对 D.相符 我的答案:AC答对 3.归纳可分为()。(8.0分)) A.完全归纳 B.分层归纳 C.整体归纳 D.不完全归纳 我的答案:AD答对 4.对比包括()。(8.0分)) A.正面对比 B.反面对比 C.正物对比 D.反物对比 我的答案:BD答对 5.归纳是指从许多个别的事物中概括出一般性()的思维方法。(8.0分)) A.概念 B.原则

D.内容 我的答案:ABC答对 1.三段论演绎的第三段是一个简单结论,说明两种表述同时存在时的隐含意义,它是引申含义之下的意思表示。(6.0分) 我的答案:正确答对 2.结构化分析方法——三段论演绎中,做总体概念陈述的是第一段内容。(6.0分) 我的答案:正确答对 3.演绎是从一般原则到具体事实的过程。(6.0分) 我的答案:正确答对 4.归纳就是从普遍性的理论知识出发,去认识个别的、特殊的现象的一种逻辑推理方法。(6.0分) 我的答案:错误答对 5.三段论演绎是指由两个简单判断作前提和一个简单判断作结论组成的演绎推理,一般分为三段。其中第二段是一个大前提,对某种已经存在的情况做出表述。( 6.0分) 我的答案:错误答对

结构化需求分析方法

结构化分析(SA)方法 结构化开发方法(Structured Developing Method)就是现有的软件开发方法中最成熟,应用最广泛的方法,主要特点就是快速、自然与方便。结构化开发方法由结构化分析方法(SA法)、结构化设计方法(SD 法)及结构化程序设计方法(SP 法)构成的。 结构化分析(Structured Analysis,简称SA 法)方法就是面向数据流的需求分析方法,就是70 年代末由Yourdon,Constaintine 及DeMarco 等人提出与发展,并得到广泛的应用。它适合于分析大型的数据处理系统,特别就是企事业管理系统。 SA 法也就是一种建模的活动,主要就是根据软件内部的数据传递、变换关系,自顶向下逐层分解,描绘出满足功能要求的软件模型。 1 SA 法概述 1、SA 法的基本思想 结构化分析(Structured Analysis,简称SA 法)就是面向数据流的需求分析方法,就是70年代由Yourdon,Constaintine 及DeMarco 等人提出与发展,并得到广泛的应用。 结构化分析方法的基本思想就是“分解”与“抽象”。

分解:就是指对于一个复杂的系统,为了将复杂性降低到可以掌握的程度,可以把大问题分解成若干小问题,然后分别解决。 图4 就是自顶向下逐层分解的示意图。顶层抽象地描述了整个系统,底层具体地画出了系统的每一个细节,而中间层就是从抽象到具体的逐层过渡。 抽象:分解可以分层进行,即先考虑问题最本质的属性,暂把细节略去,以后再逐层添加细节,直至涉及到最详细的内容,这种用最本质的属性表示一个自系统的方法就就是“抽象”。 2、SA 法的步骤 ⑴建立当前系统的“具体模型”; 系统的“具体模型”就就是现实环境的忠实写照,即将当前系统用DFD 图描述出来。这样的表达与当前系统完全对应,因此用户容易理解。 ⑵抽象出当前系统的逻辑模型;

结构化分析方法(满分)

结构化分析方法 考试时长:90分钟总分:100 及格线:60 100分 ? 1.()是总结现有情况,形成一般化结论。(单选题6分)得分:6分 o A.演绎 o B.归纳 o C.对比 o D.举例 ? 2.()就是从普遍性的理论知识出发,去认识个别的、特殊的现象的一种逻辑推理方法。(单选题6分)得分:6分 o A.演绎 o B.归纳 o C.对比 o D.举例 ? 3.()是最为常见的演绎形式。(单选题6分)得分:6分 o A.选言推理 o B.假言推理 o C.三段论演绎 o D.关系推理 ? 4.“所有蔬菜都特价;土豆是种蔬菜;所以土豆也特价。”这段话运用的分析方法是()。 (单选题6分)得分:6分 o A.演绎

o B.归纳 o C.对比 o D.举例 ? 5.“虚心使人进步,骄傲使人落后。”是运用了()的分析方法。(单选题6分)得分:6分 o A.演绎 o B.归纳 o C.对比 o D.举例 ? 6.归纳可分为()。(多选题8分)得分:8分 o A.完全归纳 o B.分层归纳 o C.整体归纳 o D.不完全归纳 ?7.演绎包括的具体形式有()。(多选题8分)得分:8分 o A.三段论演绎 o B.选言推理 o C.假言推理 o D.关系推理 ?8.对比包括()。(多选题8分)得分:8分 o A.正面对比 o B.反面对比

o C.正物对比 o D.反物对比 ?9.对比是把两个()的事物放在一起,用比较的方法加以描述或说明。(多选题8分)得分:8分 o A.相反 o B.一致 o C.相对 o D.相符 ?10.归纳是指从许多个别的事物中概括出一般性()的思维方法。(多选题8分)得分:8分 o A.概念 o B.原则 o C.结论 o D.内容 ?11.三段论演绎是指由两个简单判断作前提和一个简单判断作结论组成的演绎推理,一般分为三段。其中第二段是一个大前提,对某种已经存在的情况做出表述。(判断题6分)得分:6分 o正确 o错误 ?12.演绎是从一般原则到具体事实的过程。(判断题6分)得分:6分 o正确 o错误

结构化设计方法

实验二:结构化设计方法 一、实验目的: 掌握用Visio完成软件结构化设计方法中相关文档的编制和图表绘制。 二、实验内容: 1.利用Visio绘制软件结构图、高层功能模块图,掌握国家标准GB/T8567-2006编制系统设计说明书的方法。 2.利用Visio绘制程序流程图、Jackson图和程序界面,掌握详细设计和界面设计工具的使用。 三、实验方法和步骤: 图高层功能模块的设计 图销售子系统软件结构图

图采购子系统软件结构图 图“车辆购置申请信息”模块界面 图程序流程图图绘制Jackson图(一)绘制系统高层功能模块图 (二)绘制销售和采购子系统模块软件结构图 (三)利用Visio绘制程序流程图 (四)利用Visio绘制Jackson图。 (五)如图“车辆购置申请信息”模块界面图所示,按照“车辆购置申请信息”模块说明,完成示例中“车辆购置申请信息”模块界面设计,说明如下表所示。 表“车辆购置申请信息”模块说明 模块名称:车辆购置申请信息 窗口标题及标识:车辆购置申请信息窗口——form_apply_purchase 车辆购置申请信息插入窗口——from_apply_purchase_insert

车辆购置申请信息修改窗口——from_apply_purchase_update 相关表及视图:车辆购置申请信息表table_apply_purchase 审批信息表table_apply_examine 公司信息表code_company 窗口车辆购置申请信息窗口form_apply_purchase 查询条件:申请公司——建立一个下拉列表,将公司信息表code_company中的公司名称显示在 下拉列表框中,在列表框中增加一个空白选项。 产权归属——建立3个Radio按钮,全部、公司所有、融资挂靠。 申请日期——建立两文本框,分别输入申请日期的下限、上限。 查询结果:建立两个选项卡。 选项卡第一页:建立车辆购置申请信息表table_apply_purchase、审批信息表 table_apply_ examine和公司信息表code_company之间的自然连接,将3个基本表 中的字段采用二维列表方式显示,且显示的记录按查询条件中的条件值查询获得。 选项卡第二页:从第一个选项卡中获得当前光标所指记录,将—条记录的全部信息显 示在选项卡中,显示格式参照车辆购置申请信息插入窗口 form_apply_purchase_insert中的格式。 功能按钮:建立10个功能按钮,见窗口设计。 控件设计说明车辆购置申请信息插入窗口form_apply_purchase_insert 申请公司:建立一个下拉列表,将公司信息表code_company中的公司名称显示在列表框中。申请单编号:建立一个文本框。 申请日期:使用日期控件。 购置车辆名称:建立文本框,输入字符,不允许为空。 厂牌:建立文本框,输入字符,允许为空。 规格:建立文本框,输入字符,允许为空。 型号:建立文本框,输入字符,允许为空。 生产厂家:建立文本框,输入字符,允许为空。 购置数量:建立文本框,输入字符,且不允许为空。 单价预算:建立文本框,输入数字,且不允许为空,单位为元。 计划购置时间:使用日期控件。 主要技术参数:建立大文本框,输入字符,允许为空。 用途说明,建立大文本框,输入字符,不允许为空。 资金来源:建立大文本框,输入字符,不允许为空。 产权归属:建立2个Radio按钮,公司所有、融资挂靠,必须选择其中之一。 车辆购置申请信息修改窗口form_apply_purchase_update:同车辆购置申请信息插入窗口

结构化分析方法

IT项目需求分析与管理之结构化分析方法(一) 作者:雪影发表于2012 年 5 月 5 日分类:软件架构|暂无评论 1、概述 结构化开发方法是现有的软件开发方法中最成熟,应用最广泛的方法,主要特点是快速、自然和方便。 结构化开发方法包含三部分: ?结构化分析方法(SA法):结构化分析方法是面向数据流进行需求分析的方法,适合于数据处理类型软件的需求分析。 ?结构化设计方法(SD 法) ?结构化程序设计方法(SP 法) SA 法建模就是用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件模型为止。 结构化分析方法是传统软件工程中公认的技术成熟和使用广泛的需求分析方法。它主要借助于分层数据流图和数据字典等图形及半形式化的工具表达系统的需求。 结构化分析方法 结构化分析方法(Structured Analysis,简称SA 法)是面向数据流的需求分析方法,是70 年代末由Yourdon, Constaintine 及DeMarco 等人提出和发展,并得到广泛的应用。它适合于分析大型的数据处理系统,特别是企事业管理系统。 主要应用技术和工具: 数据流图(DFD); 数据字典(DD); 加工说明(PESPEC); 实体关系图(E-R); 状态变迁图(STD)等

SA法的基本思想 结构化分析的基本思想:“分解”和“抽象” 分解:把系统的复杂性降低到可以掌握的程度,把大问题分解成若干小问题,然后分别解决。 抽象:即先考虑问题最本质的属性,暂把细节略去,以后再逐层添加细节,直至涉及到最详细的内容。 自顶向下逐层分解,顶层抽象地描述了整个系统,底层具体地画出了系统的每一个细节,而中间层是从抽象到具体的逐层过渡。 SA 法的步骤1 ⑴建立当前系统的“物理模型”; 系统的“物理模型”就是现实环境的忠实写照,即将当前系统用DFD 图描述出来。这样的表达与当前系统完全对应,因此用户容易理解。

结构化分析方法

结构化分析方法 1.()就是从普遍性的理论知识出发,去认识个别的、特殊的现象的一种逻辑推理方法。(6.0分) A.演绎 B.归纳 C.对比 D.举例 我的答案:A答对 2.()是最为常见的演绎形式。(6.0分) A.选言推理 B.假言推理 C.三段论演绎 D.关系推理 我的答案:C答对 3.“所有蔬菜都特价;土豆是种蔬菜;所以土豆也特价。”这段话运用的分析方法是()。(6.0分) A.演绎 B.归纳 C.对比

我的答案:A答对 4.“虚心使人进步,骄傲使人落后。”是运用了()的分析方法。(6.0分) A.演绎 B.归纳 C.对比 D.举例 我的答案:C答对 5.()是总结现有情况,形成一般化结论。( 6.0分) A.演绎 B.归纳 C.对比 D.举例 我的答案:B答对 1.归纳是指从许多个别的事物中概括出一般性()的思维方法。(8.0分)) A.概念 B.原则 C.结论

我的答案:ABC答对 2.演绎包括的具体形式有()。(8.0分)) A.三段论演绎 B.选言推理 C.假言推理 D.关系推理 我的答案:ABCD答对 3.对比包括()。(8.0分)) A.正面对比 B.反面对比 C.正物对比 D.反物对比 我的答案:BD答对 4.对比是把两个()的事物放在一起,用比较的方法加以描述或说明。(8.0分)) A.相反 B.一致 C.相对 D.相符

我的答案:AC答对 1.三段论演绎的第三段是一个简单结论,说明两种表述同时存在时的隐含意义,它是引申含义之下的意思表示。(6.0分) 我的答案:正确答对 2.结构化分析方法——三段论演绎中,做总体概念陈述的是第一段内容。(6.0分) 我的答案:正确答对 3.三段论演绎是指由两个简单判断作前提和一个简单判断作结论组成的演绎推理,一般分为三段。其中第二段是一个大前提,对某种已经存在的情况做出表述。(6.0分) 我的答案:错误答对 4.归纳就是从普遍性的理论知识出发,去认识个别的、特殊的现象的一种逻辑推理方法。(6.0分) 我的答案:错误答对 5.演绎是从一般原则到具体事实的过程。( 6.0分) 我的答案:正确答对

相关文档
最新文档