1. 结构化方法
结构化开发方法是自上而下的,逐步求精的,模块化的。所以先设计系统的全部模块,再逐步完善各个模块的过程。
2. 什么是结构化设计方法
结构化设计方法给出一组帮助设计人员在模块层次上区分设计质量的原理与技术。它通常与结构化分析方法衔接起来使用,以数据流图为基础得到软件的模块结构。SD方法尤其适用于变换型结构和事务型结构的目标系统。在设计过程中,它从整个程序的结构出发,利用模块结构图表述程序模块之间的关系。结构化设计的步骤如下:①评审和细化数据流图;②确定数据流图的类型;③把数据流图映射到软件模块结构,设计出模块结构的上层;④基于数据流图逐步分解高层模块,设计中下层模块;⑤对模块结构进行优化,得到更为合理的软件结构;⑥描述模块接口。 结构化设计方法的设计原则 使每个模块执行一个功能(坚持功能性内聚) 每个模块用过程语句(或函数方式等)调用其他模块 模块间传送的参数作数据用 模块间共用的信息(如参数等)尽量少
编辑本段一、软件设计过程及原则
◆ 软件需求:解决“做什么”。 ◆ 软件设计:解决“怎么做”。 ◆ 软件设计的任务:从软件需求规格说明书出发,形成软件的具体设计方案。(根据需求分析阶段确定的功能确定模块及每个模块算法和编写具体的代码) 1、软件设计内容 (1)软件设计定义 软件设计是把软件需求(定义阶段)转换为软件的具体设计方案,即划分模块结构的过程,是软件开发阶段最重要的步骤。 (2)软件设计划分 划分 名称
按工程管理角度 概要设计
详细设计
按技术观点划分 结构设计
数据设计
接口设计
过程设计
一般过程:是一个迭代过程,先进行高层次结构设计;再进行低层次过程设计;穿插数据设计和接口设计。 (3)软件设计过程 2、软件设计原则 为了开发出高质量低成本的软件,在软件开发过程中必须遵循下列软件工程原则: (1)抽象(abstraction) 抽取事物最基本的特性和行为,忽略非基本的细节。采用分层次抽象的办法可以控制软件开发过程的复杂性,有利于软件的可理解性和开发过程的管理。 (2)信息隐藏(informationhiding) 信息隐蔽:采用封装技术,将程序模块的实现细节(过程或数据)隐藏起来,对于不需要这些信息的其它模块来说是不能访问的,使模块接口尽量简单。 按照信息隐藏的原则,系统中的模块应设计成“黑箱”,模块外部只能使用模块接口说明中给出的信息,如操作、数据类型等等。 (3)模块化(molarity) 使程序有许多个逻辑上相对独立的模块组成。模块(mole)是程序中逻辑上相对独立的单元;模块的大小要适中;高内聚、低耦合。 (4)一致性(consistency) 整个软件系统(包括文档和程序)的各个模块均应使用一致的概念、符号和术语;程序内部接口应保持一致;软件与硬件接口应保持一致;系统规格说明与系统行为应保持一致;实现一致性需要良好的软件设计工具(如数据字典、数据库、文档自动生成与一致性检查工具等等)、设计方法和编码风格的支持。
编辑本段二、结构化设计方法
1、软件设计的方法 开发阶段设计软件时所使用的方法。注意区别:结构化分析方法是定义阶段需求分析过程中所使用的方法。 2、软件设计的方法的种类 结构化设计方法、面向对象的设计方法。 3、结构化设计方法(SD-- Structured Design) 结构化设计方法是基于模块化、自顶向下细化、结构化程序设计等程序设计技术基础发展起来的。 基本思想:将软件设计成由相对独立且具有单一功能的模块组成的结构,分为概要设计和详细设计两个阶段。 ◆ 结构化设计过程的概要设计阶段的描述工具是:结构图(SC- Structure Chart )。 (1)概要设计也称为结构设计或总体设计,主要任务是把系统的功能需求分配给软件结构,形成软件的模块结构图。 (2)概要设计的基本任务。设计软件系统结构:划分功能模块,确定模块间调用关系;数据结构及数据库设计:实现需求定义和规格说明过程中提出的数据对象的逻辑表示;编写概要设计文档: 包括概要设计说明书、数据库设计说明书,集成测试计划等;概要设计文档评审:对设计方案是否完整实现需求分析中规定的功能、性能的要求,设计方案的可行性等进行评审。 (3)结构化设计的目的与任务。结构化设计的目的:使程序的结构尽可能反映要解决的问题的结构。结构化设计的任务:把需求分析得到的数据流图DFD等变换为系统结构图(SC)。 4、概要设计工具——结构图(SC: Structure Chart ) (1)作用 软件结构概要设计阶段的工具。反映系统的功能实现以及模块与模块之间的联系与通信,即反映了系统的总体结构。 ◆ 注意:数据流DFD是软件生命周期的定义阶段中的需求分析方法中结构化分析方法的一种,此外还有数据字典(DD)、判定树和判定表,而SC是开发阶段中概要设计使用的方法。 (2)结构图基本组成成分:模块、数据和调用 (3)结构图基本图符 (4)结构图的基本术语 ◆ 深度:模块结构的层次数(控制的层数)。 ◆ 宽度:同一层模块的最大模块数。 ◆ 扇出:一个模块直接调用的其他模块数目。 ◆ 扇入:调用一个给定模块的模块个数。(被调用的次数) 好的软件结构应该是顶层扇出比较多,中层扇出较少,底层扇入多。 5、概要设计任务的实现--数据流图到结构图的变换 在软件工程的需求分析阶段,信息流是一个关键考虑,通常用数据流图描绘信息在系统中加工和流动的情况,面向数据流的设计方法把信息流映射成软件结构,信息流的类型决定了映射的方法。典型的信息流类型:变换型和事务型。 (1)典型的信息流类型:变换型和事务型 ① 变换型 信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统,当数据流具有这些特征时,这种信息流就叫变换流。 ② 事务型 数据沿输入通路到达一个处理T,这个处理根据输入数据的类型在若干个动作序列中选出一个来执行,当数据流图具有这些特征时,这种信息流称为变换流。 6、详细设计及工具 (1)详细设计的目的 为软件结构图(SC)中的每 一个模块确定采用的算法,模块内数据结构,用某种选定的表达工具(如N-S图等)给出清晰的描述。 (2)详细设计的设计工具种类 ◆ 图形工具:程序流程图(PFD)、N-S图,问题分析图(PAD图)。 ◆ 表格工具:类似于判定表。 ◆ 语言工具:过程设计语言(PDL)。 ①程序流程图(PFD: Program Flow Diagram)) ◆ 流程图:是用一些图框表示各种操作,直观形象,易于理解。 ◆ 特点:直观、清晰、易于掌握。 ② 盒图(N-S图) 为避免流程图在描述程序逻辑时的随意性与灵活性,1973提出用方框代替传统的程序流程图,通常也把这种图称为N-S图,有5种的控制结构。 ◆ 盒图具有以下特点:过程的作用域明确;盒图没有箭头,不能随意转移控制;容易表示嵌套关系和层次关系;强烈的结构化特征。 ③问题分析图(PAD:Problem Analysis Diagram) 是继流程图和方框图之后,又一种描述详细设计的工具,有5种结构。 ④ 过程设计语言(PDL) 过程设计语言(PDL)也称结构化的英语或伪码语言,它是一种混合语言,采用英语的词汇和结构化程序设计语言的语法,它描述处理过程怎么做,类似编程语言。
3. 什么是结构化程序设计方法
c语言中"结构化程序设计方法”的基本思想和规则C语言是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。C语言的表现能力和处理能力极强。它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。它还可以直接访问内存的物理地址,进行位(bit)一级的操作。由于C语言实现了对硬件的编程操作,因此C语言集高级语言和低级语言的功能于一体。既可用于系统软件的开发,也适合于应用软件的开发。此外,C语言还具有效率高,可移植性强等特点。因此广泛地移植到了各类各型计算机上,从而形成了多种版本的C语言。
C源程序的结构特点
1.一个C语言源程序可以由一个或多个源文件组成。
2.每个源文件可由一个或多个函数组成。
3.一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数。
4.源程序中可以有预处理命令(include 命令仅为其中的一种),预处理命令通常应放在源文件或源程序的最前面。
5.每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“}”之后不能加分号。
6.标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。
书写程序时应遵循的规则
从书写清晰,便于阅读,理解,维护的角度出发,在书写程序时 应遵循以下规则:
1.一个说明或一个语句占一行。
2.用{} 括起来的部分,通常表示了程序的某一层次结构。{}一般与该结构语句的第一个字母对齐,并单独占一行。
3.低一层次的语句或说明可比高一层次的语句或说明缩进若干格后书写。以便看起来更加清晰,增加程序的可读性。在编程时应力求遵循这些规则,以养成良好的编程风格。
4. 结构化分析方法的基本手段是什么
结构化分析方法(Structured Method,结构化方法)是强调开发方法的结构合理性以及所开发软件的结构合理性的软件开发方法。
结构化分析方法给出一组帮助系统分析人员产生功能规约的原理与技术。它一般利用图形表达用户需求,使用的手段主要有数据流图、数据字典、结构化语言、判定表以及判定树等。
它的设计原则包括:
使每个模块执行一个功能(坚持功能性内聚)
每个模块用过程语句(或函数方式等)调用其他模块
模块间传送的参数作数据用
模块间共用的信息(如参数等)尽量少
基本实现手段如下:
一: 数据流图
含义
数据流图是SA方法中用于表示逻辑系统模型的一种工具,它从数据传递和加工的角度,以图形的方式来刻画数据流从输入到输出的变换过程。
(1)、元素
A、数据流。是由一组固定成分的数据组成,箭头的方向表示数据的流向,箭头的始点和终点分别代表数据流的源和目标。除了流向数据存储或从数据存储流出的数据不必命名外,每个数据流必须要有合适的名字,以反映数据流的含义。
B,外部实体。代表系统之外的实体,可以是人、物或其它系统软件,他指出数据所需要的发源地或系统所产生的数据归属地。
C,对数据进行加工处理。加工是对数据进行处理的单元,它接受一定的数据输入,对其进行处理,并产生输出。
D、数据存储。表示信息的静态存储,可以代表文件、文件的一部分、数据库的元素等。
(2) 分层数据流图
对于一个大型系统,如果在一张数据图上画出所有的数据和加工,则会使得数据流图复杂而难以理解,为了控制复杂性,结构化分析法采用数据流图分层技术。一套分层的数据流图由顶层、底层和中间层组成。
(3)保持数据守恒
(4)加工细节隐蔽
二、数据字典
数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素定义的集合。数据字典是结构方法的核心。数据字典有以下几个条目:数据项条目、数据流条目、文件条目和加工条目。
三、判定表
有些加工的逻辑用语形式不容易表达清楚,而用表的形式则一目了然。如果一个加工逻辑有多个条件、多个操作,并且在不同的条件组合下执行不同的操作,就可以使用判定表来描述。
四、判定树
判定树和判定表没有本质的区别,可以用判定表表示的加工逻辑都可以用判定树来表示。
五、结构化语言
采用一种介于自然语言和形式化语言之间的结构化语言来描述加工逻辑,既可以像自然语言那样最方便,也可以像形式化语言一样能够精确描述事物,且被计算机易于处理。
六、E-R图
E-R图包含实体、关系和属性等3种成分。这三个成分来理解现实问题,接近人们的思维方式。
注意事项:
一,命名。
二,画数据流而不是控制流。
三,一般不画物质流。
四,每个加工至少有一个数据流和一个输出数据流。
五,编号
六,保持父图和子图的平衡
七,数据流图的一致性
八,提高数据流图的易懂性
5. 结构化程序设计方法有哪些
结构化程序设计方法是按照模块划分原则以提高程序可读性和易维护性、可调性和可扩充性为目标的一种程序设计方法。在结构化的程序设计中,只允许三种基本的程序结构形式,它们是顺序结构、分支结构、(包括多分支结构) 和循环结构,这三种基本结构的共同特点是只允许有一个流动入口和一个出口,仅有这三种基本结构组成的程序称为结构化程序。结构化程序设计适用于程序规模较大的情况,对于规模较小程序也可采用非结构化程序设计方法。
它的主要观点是采用自顶向下、逐步求精的程序设计方法;使用三种基本控制结构构造程序,任何程序都可由顺序、选择、循环三种基本控制结构构造。是以模块化设计为中心,将待开发的软件系统划分为若干个相互独立的模块,这样使完成每一个模块的工作变单纯而明确,为设计一些较大的软件打下了良好的基础。
基本要点
1.采用自顶向下,逐步求精的程序设计方法
在需求分析,概要设计中,都采用了自顶向下,逐层细化的方法。
2.使用三种基本控制结构构造程序
任何程序都可由顺序、选择、重复三种基本控制结构构造。
(1)用顺序方式对过程分解,确定各部分的执行顺序。
(2)用选择方式对过程分解,确定某个部分的执行条件。
(3)用循环方式对过程分解,确定某个部分进行重复的开始和结束的条件。
(4)对处理过程仍然模糊的部分反复使用以上分解方法,最终可将所有细节确定下来。
3.主程序员组的组织形式
结构化程序设计方法
指开发程序的人员组织方式应采用由一个主程序员(负责全部技术活动)、一个后备程序员(协调、支持主程序员)和一个程序管理员(负责事务性工作,如收集、记录数据,文档资料管理等)三个为核心,再加上一些专家(如通信专家、数据库专家)、其他技术人员组成小组。
6. 软件工程的结构化方法是什么
结构化分析方法(Structured Method)是强调开发方法的结构合理性以及所开发软件的结构合理性的软件开发方法。结构是指系统内各个组成要素之间的相互联系、相互作用的框架。结构化开发方法提出了一组提高软件结构合理性的准则,如分解与抽象、模块独立性、信息隐蔽等。针对软件生存周期各个不同的阶段,它有结构化分析(SA)、结构化设计(SD)和结构化程序设计(SP)等方法。
结构化分析方法给出一组帮助系统分析人员产生功能规约的原理与技术。它一般利用图形表达用户需求,使用的手段主要有数据流图、数据字典、结构化语言、判定表以及判定树等。
结构化分析的步骤如下:①分析当前的情况,做出反映当前物理模型的DFD;②推导出等价的逻辑模型的DFD;③设计新的逻辑系统,生成数据字典和基元描述;④建立人机接口,提出可供选择的目标系统物理模型的DFD;⑤确定各种方案的成本和风险等级,据此对各种方案进行分析;⑥选择一种方案;⑦建立完整的需求规约。
结构化设计方法给出一组帮助设计人员在模块层次上区分设计质量的原理与技术。它通常与结构化分析方法衔接起来使用,以数据流图为基础得到软件的模块结构。SD方法尤其适用于变换型结构和事务型结构的目标系统。在设计过程中,它从整个程序的结构出发,利用模块结构图表述程序模块之间的关系。结构化设计的步骤如下:①评审和细化数据流图;②确定数据流图的类型;③把数据流图映射到软件模块结构,设计出模块结构的上层;④基于数据流图逐步分解高层模块,设计中下层模块;⑤对模块结构进行优化,得到更为合理的软件结构;⑥描述模块接口。
7. 结构化方法是什么意思
首先把“科学观察方法”更具体地解释一下吧:所谓科学观察法,就是用科学的方法来观察一些大自然的科学现象。运用这种观察方法,要动手、动脑、动心思考,要依据观察的事实来得出结论。不能加入任何自己的感情色彩,是什么,就是什么,不得夸大和缩小。
换句话说,就是此方法的目的是为了探索世界奥秘,寻找现象背后的真理,从而运用富有逻辑性、结构合理、条理清晰的方法来观察。
那么,现在解释一下结构化方法吧:
结构化分析方法(Structured Method,结构化方法)是强调开发方法的结构合理性以及所开发软件的结构合理性的软件开发方法。结构是指系统内各个组成要素之间的相互联系、相互作用的框架。结构化开发方法提出了一组提高软件结构合理性的准则,如分解与抽象、模块独立性、信息隐蔽等。针对软件生存周期各个不同的阶段,它有结构化分析(SA)、结构化设计(SD)和结构化程序设计(SP)等方法。
结构化分析方法给出一组帮助系统分析人员产生功能规约的原理与技术。它一般利用图形表达用户需求,使用的手段主要有数据流图、数据字典、结构化语言、判定表以及判定树等。
结构化分析的步骤如下:①分析当前的情况,做出反映当前物理模型的DFD;②推导出等价的逻辑模型的DFD;③设计新的逻辑系统,生成数据字典和基元描述;④建立人机接口,提出可供选择的目标系统物理模型的DFD;⑤确定各种方案的成本和风险等级,据此对各种方案进行分析;⑥选择一种方案;⑦建立完整的需求规约。
结构化设计方法给出一组帮助设计人员在模块层次上区分设计质量的原理与技术。它通常与结构化分析方法衔接起来使用,以数据流图为基础得到软件的模块结构。SD方法尤其适用于变换型结构和事务型结构的目标系统。在设计过程中,它从整个程序的结构出发,利用模块结构图表述程序模块之间的关系。结构化设计的步骤如下:①评审和细化数据流图;②确定数据流图的类型;③把数据流图映射到软件模块结构,设计出模块结构的上层;④基于数据流图逐步分解高层模块,设计中下层模块;⑤对模块结构进行优化,得到更为合理的软件结构;⑥描述模块接口。
结构化设计方法的设计原则:
(1)使每个模块执行一个功能(坚持功能性内聚)
(2)每个模块用过程语句(或函数方式等)调用其他模块
(3)模块间传送的参数作数据用
(4)模块间共用的信息(如参数等)尽量少
8. 什么是结构化方法结构化方法和原型化法相比较,优缺点有哪些
1、结构化系统开发方法基本思想在系统建立之前信息就能被充分理解。它要求严格划分开发阶段,用规范的方法与图表工具有步骤地来 完成各阶段的工作,每个阶段都以规范的文档资料作为其成果,最终得到满足用户需要的系统。 优点(1)逻辑设计与物理设计分开 (2)开发过程中形成一套规范化的文档,便于后期的修改和维护缺点(1)开发周期长 (2)系统难以适应环境的变化 (3)开发过程复杂繁琐适用范围该方法适用于一些组织相对稳定、业务处理过程规范、需求明确且在一定时期内不会发生大的变化的大 型复杂系统的开发。 2、原型法基本思想开发人员对用户提出的问题进行总结,就系统的主要需求取得一致意见后,开发一个原型(原型是由开 发人员与用户合作,共同确定系统的基本要求和主要功能,并在较短时间内开发的一个实验性的、简单 易用的小型系统。原型应该是可以运行的,可以修改的。)并运行之,然后反复对原型进行修改,使之 逐步完善,直到用户对系统完全满意为止。 优点(1)需求表示清楚,用户满意度较高 (2)降低开始风险和开发成本缺点(1)原型法不适用于开发大型的信息系统 (2)系统难于维护 (3)如果用户合作不好,盲目纠错,会拖延开发进程适用范围(1)用户需求不清,管理及业务不稳定,需求经常变化 (2)规模小,不太复杂 (3)开发信息系统的最终用户界面 结构化开发方法(Structured Developing Method)是现有的软件开发方法中最成熟,应用最广泛的方法,主要特点是快速、自然和方便。结构化开发方法由结构化分析方法(SA法)、结构化设计方法(SD法)及结构化程序设计方法(SP法)构成的。 结构化设计方法(SD法 Structured Design)是结构化开发方法的核心,与SA法,SD法密切联系,主要完成软件系统的总体结构设计。 原型化方法是一种定义系统需求可采取的策略,实现时需经过若干步骤,一般其采用的最后步骤应是模型验证