1. SA(结构化分析)的内容和SD(软件设计)的内容
软件设计是软件开发的关键步骤,包括总体设计和详细设计。在软件需求分析阶段已经完全弄清楚了软件的各种需求,较好地解决了所开发的软件“做什么”的问题,并已在软件需求说明书和数据要求说明书中详尽和充分地阐明了这些需求以后,下一步就要着手实现软件的需求,即软件设计阶段要解决“怎么做”的问题。
结构化开发方法(Structured Developing Method)是现有的软件开发方法中最成熟,应用最广泛的方法,主要特点是快速、自然和方便。结构化开发方法由结构化分析方法(SA法)、结构化设计方法(SD法)及结构化程序设计方法(SP法)构成的。 结构化设计方法(SD法 Structured Design)是结构化开发方法的核心,与SA法,SD法密切联系,主要完成软件系统的总体结构设计。
2. 结构化分析方法
结构化分析方法(Structured Method,结构化方法)是一种软件开发方法,一般利用图形表达用户需求,强调开发方法的结构合理性以及所开发软件的结构合理性。
主要用于分析需求,形成需求规约结构化分析方法是以自顶向下,逐步求精为基点,以一系列经过实践的考验被认为是正确的原理和技术为支撑,以数据流图,数据字典,结构化语言,判定表,判定树等图形表达为主要手段,强调开发方法的结构合理性和系统的结构合理性的软件分析方法。
其基本思想主要是把一个复杂问题的求解过程分阶段进行,而且这种分解是自顶向下,逐层分解,使得每个阶段处理的问题都控制在人们容易理解和处理的范围内。而它的基本要点是自顶向下、逐步求精、模块化设计、结构化编码。
3. 如何理解结构化分析SA的基本思想
其基本思想是将系统开发看成工程项目,有计划、有步骤地进行工作,是一种应用很广的开发方法,适应于分析大型信息系统。结构化分析方法采用“自顶向下,逐层分解”的开发策略。按照这种策略,再复杂的系统也可以有条不紊地进行,只要将复杂的系统适当分层,每层的复杂程序即可降低,这就是结构化分析研究的特点。
4. 什么是结构化方法
结构化方法(SD方法)是一种传统的软件开发方法,它是由结构化分析、结构化设计和结构化程序设计三部分有机组合而成的。它的基本思想:把一个复杂问题的求解过程分阶段进行,而且这种分解是自顶向下,逐层分解,使得每个阶段处理的问题都控制在人们容易理解和处理的范围内。
详细解释:
结构化方法的基本要点是:自顶向下、逐步求精、模块化设计、结构化编码。
结构化分析方法是以自顶向下,逐步求精为基点,以一系列经过实践的考验被认为是正确的原理和技术为支撑,以数据流图,数据字典,结构化语言,判定表,判定树等图形表达为主要手段,强调开发方法的结构合理性和系统的结构合理性的软件分析方法。
结构化设计方法是以自顶向下,逐步求精,模块化为基点,以模块化,抽象,逐层分解求精,信息隐蔽化局部化和保持模块独立为准则的设计软件的数据架构和模块架构的方法学。
结构化方法按软件生命周期划分,有结构化分析(SA),结构化设计(SD),结构化实现(SP)。 其中要强调的是,结构化方法学是一个思想准则的体系,虽然有明确的阶段和步骤,但是也集成了很多原则性的东西,所以学会结构化方法,不是能够单从理论知识上去了解就足够的,要的更多的还是实践中慢慢的理解个个准则,慢慢将其变成自己的方法学。
5. 结构化分析方法的基本思想
结构化分析方法的基本思想是:
用系统工程的思想和工程化得方法,根据用户至上的原则,自始自终按照结构化、模块化,自顶向下地对系统进行分析与设计。
(2)分解原则
分解原则是结构化方法中最基本的原则它是一种先总体后局部的思想原则在构造信息系统模型时它采用自顶向下分层解决的方法
(3)模块化原则
6. 为什么结构化需求分析方法包含三类模型
结构化分析方法
结构化开发方法(Structured Developing Method)是现有的软件开发方法中最成熟,应用最广泛的方法,主要特点是快速、自然和方便。结构化开发方法由结构化分析方法(SA法)、结构化设计方 法(SD 法)及结构化程序设计方法(SP 法)构成的。
结构化分析(Structured Analysis,简称SA 法)方法是面向数据流的需求分析方法,是70 年代末由Yourdon,Constaintine 及DeMarco 等人提出和发展,并得到广泛的应用。它适合于分析大型的数据处理系统,特别是企事业管理系统。
SA 法也是一种建模的活动,主要是根据软件内部的数据传递、变换关系,自顶向下逐层分解,描绘出满足功能要求的软件模型。
1 SA 法概述
1.1 SA 法的基本思想
1.1. 结构化分析(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 图。
一般来说,在上层可以分解得快些,而在中、下层则应分解得慢些,因为上层是一些综合性的描述,“易理解性”相对地说不太重要。
下节我们以一个实例来说明画分层DFD 图的方法。
2 分层DFD 图的改进
分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描绘了系统的总貌,底层画出了系统所有的细部,而中间层则给出了从抽象到具体的逐步过渡。
1.画分层DFD 图的基本原则
⑴.数据守恒与数据封闭原则
所谓数据守恒是指加工的输入输出数据流是否匹配,即每一个加工既有输入数据流又有输出数据流。或者说一个加工至少有一个输入数据流,一个输出数据流。
⑵加工分解的原则
自然性:概念上合理、清晰;
均匀性:理想的分解是将一个问题分解成大小均匀的几个部分;
分解度:一般每一个加工每次分解最多不要超过7个子加工,应分解到基本加工为止。
⑶子图与父图的“平衡”父图中某个加工的输入输出数据流应该同相应的子图的输入输出相同(相对应),分层数据流图的这种特点称为子图与父图“平衡”。
⑷合理使用文件
当文件作为某些加工之间的交界面时,文件必须画出来,一旦文件作为数据流图中的一个独立成份画出来了,那么它同其它成份之间的联系也应同时表达出来。
理 解一个问题总要经过从不正确到正确,从不确切到确切的过程,需求分析的过程总是要不断反复的,一次就成功的可能性是很小的,对复杂的系统尤其如此,因此, 系统分析员应随时准备对数据流图进行修改和完善,与用户取得共识,获得无二义性的需求,才能获得更正确清晰的需求说明,使得设计、编程等阶段能够顺利进 行,这样做是必须和值得的。
3.分层DFD 图的改进
DFD 图必须经过反复修改,才能获得最终的目标系统的逻辑(目标系统的DFD 图)。改进的原则与画分层DFD 图的基本原则是一致的,可从以下方面考虑DFD 图的改进:
⑴ 检查数据流的正确性
① 数据守恒
② 子图、父图的平衡
③ 文件使用是否合理。特别注意输入/出文件的数据流。
⑵ 改进DFD 图的易理解性
① 简化加工之间的联系(加工间的数据流越少,独立性越强,易理解性越好)。
② 改进分解的均匀性。
③ 适当命名(各成分名称无二义性,准确、具体)。
7. 软件工程导论里的SA方法是什么意思
StructuredAnalysis的缩写形式,是结构化分差耐析方法的意思
SA方法的基本思想:“由顶向下逐层分解”, 这是软件工程中的一条基本原则。
SA方法的实施步骤: 先分析当前现实环境中已存在的人工系统,再考虑即将开发的软件系统。
SA方法优点: 简单清晰, 易于学习掌握、易于使用。
SA方法的薄弱环节:
· SA方法在理解和表达用户的数据需求方面比较局限,同数据库技术亦不能较好地衔接。
· SA方法在理解和表达人机界面方面是很差的,用数据流图描绘人机界面不太合适,逐层
分解在这里起不了什么作用,而且SA方法通常要到最后才来考虑人乎庆运机界面。
· SA方法强调分析数据流,而对时间、控制方面的描述恰恰是不精确的,所以SA方法原则
上不适用于实时系统。
· 在澄清、确定岁梁用户需求方面能起的作用是有限的。
8. 哪句话最准确地概括了结构化方法的核心思想
自顶向下,由粗到细,逐步求精
结构化方法的基本要点是:自顶向下、逐步求精、模块化设计、结构化编码。
结构化分析方法是以自顶向下,逐步求精为基点,以一系列经过实践的考验被认为是正确的原理和技术为支撑,以数据流图,数据字典,结构化语言,判定表,判定树等图形表达为主要手段,强调开发方法的结构合理性和系统的结构合理性的软件分析方法。
结构化设计方法是以自顶向下,逐步求精,模块化为基点,以模块化,抽象,逐层分解求精,信息隐蔽化局部化和保持模块独立为准则的设计软件的数据架构和模块架构的方法学。