结构化开发方法分析与设计提纲.docx
- 文档编号:10577833
- 上传时间:2023-02-21
- 格式:DOCX
- 页数:18
- 大小:3.29MB
结构化开发方法分析与设计提纲.docx
《结构化开发方法分析与设计提纲.docx》由会员分享,可在线阅读,更多相关《结构化开发方法分析与设计提纲.docx(18页珍藏版)》请在冰豆网上搜索。
结构化开发方法分析与设计提纲
结构化开发方法分析与设计提纲
本节要点:
一、采用结构化方法进行应用程序结构的设计
二、自动化系统边界
三、系统流程图
四、结构图
五、模块算法设计:
伪码
六、三层设计
一、采用结构化方法进行应用程序结构的设计
应用程序结构由执行系统特定功能的若干个应用程序组成。
应用程序的设计必然与数据库和用户界面的设计相关联。
用第三代语言(VB,C,COBOL或Pascal语言)编写的商业软件是以模块的形式来组织的,这些模块在层次上的安排就像一棵树,最顶端的模块叫做总模块或主模块,中层模块叫控制模块,叶子模块(位于端点上的模块)是详细细节模块,它们包括了程序的大多数算法和逻辑。
1.首先明确两个概念:
1.1模块:
计算机程序的可标识部分,用来完成具体定义的功能。
具有输入/输出、逻辑功能、运行程序、内部数据属性的一组程序语句。
模块的输入来源和输出去向都是同一个调用者,模块从调用者那里获得输入,然后再把产生的数据返回给调用者;
逻辑功能:
指它能够做什么事情,表达了它把输入转换成输出的功能;
内部数据:
指属于该模块自己的数据;
运行程序:
指它如何用程序实现这种逻辑功能。
1.2计算机程序:
由一系列模块组成的可执行的实体。
2系统流程图
系统流程图记录整个系统和各个子系统的结构。
系统流程图标识了每一段程序及其所存取的数据。
系统流程图也表明了不同程序、子系统、相关文件和数据库之间的关联关系。
它记录了整个系统的体系结构。
系统流程图:
描述系统内计算机程序之间所有控制流的图。
3伪码:
与结构化编程类似地语句,描述模块的逻辑。
项目组必须设计每个模块的内部逻辑。
它包含模块逻辑的内部算法,它通常用伪码来记录。
4结构化设计模型
Ø分析员用自顶向下的方法进行设计。
Ø以DFD、用结构化英语描述的详细文档,以及详细的数据流定义来作为设计模型和开发文档的输入部分。
二、自动化系统边界
手工处理部分
数据流图的处理
系统处理部分
带自动化系统边界的数据流图
说明:
1该图展示了工资单程序所有主要的处理过程。
2是一幅包括自动化系统边界的典型DFD
3该图说明了系统界线,也说明了程序界线
4前者标识整个自动化系统,后者将DFD划分成独立的程序
5该图是设计的第一步,它确认程序是什么,及这些程序中包含哪些处理过程。
数据流:
1.可在系统内部、外部,或穿过系统界线和程序界线。
2.穿过系统界线的数据流是格外重要的,它们代表了系统的输入和输出。
3.程序接口的设计(包括用户界面设计和与其他系统的接口设计)是由穿过边界的数据流定义的。
4.在最终系统中,数据流将是用户界面中的表单、报表,或者是与其他系统进行转换的文件或通信。
5.穿过边界的数据流,表示程序间的通信。
在最终系统中,这些数据流仍是程序之间转换的文件或通信。
三、系统流程图
系统流程图是对组成一个完整系统的各计算机程序、文件、数据库,以及相关手工过程的表示。
系统流程图主要
用来描述大的信息系统,这种大的信息系统可由独立的子系统和大量的程序块构成。
用来描述需要执行批处理的系统(例如,处理银行交易、工资审核和有效账单的系统)。
这类系统一个普遍的特点是将处理按特定的执行顺序分成离散的多步(例如,输入交易的验证、用交易数据对主文件的更新、周期性报告的产生)。
许多批处理系统使用了扩展的文件,这些文件或者是作为数据库的补充,或者干脆替代了数据库。
系统流程图的常用符号
系统流程图的常用符号
说明:
1对组成一个完整系统的各计算机程序、文件、DB,以及相关手工过程的表示。
2表达系统执行过程;描述所有I/O和与之有关的处理;包括所有文件的建立过程;表达数据在系统中的流向。
3生成时应考虑:
信息处理的步骤和内容;每一步骤所涉及的物理过程;各步骤间的物理和逻辑关系。
4系统流程图用图形的方式描述哪些子系统是系统自动完成的,哪些需要人工的参与,画出数据流和控制流。
5其标出整个系统的文件、程序及人工处理部分。
通过确认文件媒介(磁盘、磁带)来增加物理实现的描述。
6提供整个系统的总体情况。
7描述多层系统中层与层之间的交互。
8其重点放在物理对象的实现上(如可执行的程序、文件和文档等)(与DFD不同)。
工资系统的系统流程图
说明:
从上图可以看到工资程序有4个输入并产生3个输出。
输入分别为时间卡、税率表文件、职工数据库和改正信息。
产生的输出包括一个错误报告、一个工资文件和一个更新了的工资历史文件。
此外还有两个包含税率表和职工数据库的程序(这些程序均可独立运行),还有两个打印账单并产生年度收入税报告的程序。
四、结构图
概念:
1.结构图:
用来展示一个计算机程序模块间关系的层次图。
1.1结构图的层次描述系统每部分的功能和子功能。
EG:
某程序有计算工资总额的功能函数,它可能的子功能函数是计算基本工资、计算加班费和计算税费。
在结构图上用矩形框表示功能,每个矩形框代表一个模块。
一个计算工资总额的简单结构图
说明:
1)矩形所表示的模块相对而言都是些简单、独立的部分,高层模块是“控制”模块,它控制数据流的执行。
低层模块是“工作”模块,它包含实际执行功能的逻辑程序。
2)模块之间的连线表示高层模块对低层模块调用的某种结构,其上的小箭头表示在模块间传递的数据,以及各个模块的输入和输出。
1.2结构图符号
结构图符号
说明:
1)结构图中的矩形表示一个模块。
2)带双竖线的矩形框代表一个存在的模块或在多处被用到的模块。
是否使用带双竖线标记是可选的。
3)(c)中展示了一个高层模块对低层模块的调用。
当一个模块激活一个低层模块以便执行所需的服务或计算时,就发生了程序调用。
4)在每一次调用中,控制由调用模块传向被调用模块,被调用模块接着执行一系列程序语句,当调用过程结束后,被调用模块立即把控制权返回给调用模块,程序紧接着执行下面的声明或指令。
2.程序调用:
控制从一个模块转换到下一层模块以便执行一个需要的服务。
3.数据耦合
3.1带空心圆的箭头叫数据耦合,表示I/O模块的数据。
3.2数据耦合可以是一个单独的数据项(如一个客户的账号),也可以是更高层次的数据结构(如一个数组、记录或其他数据结构)。
3.3结构图中每一层所用耦合类型,往往与细节分层的有关原则相一致。
3.4靠近结构图顶端的模块,它们的耦合往往使用高度集中的数据结构,结构图底端的耦合往往是一些单独的数据项、标记和相对较小的数据结构。
4.控制耦合
4.1带实心圆的箭头。
4.2在模块间使用的标识是一个表示某种结果的内部信息。
4.3经常使用低层模块产生的标识来表示结果(如通过有效性测试的结果)。
4.3另一常用作用:
标识文件已经到了结尾。
整个工资系统的结构图
说明:
1该图所示的完整结构图是基于“产生工资表事件”这个临时
2事件之后的系统活动的。
3在工资系统的分析阶段,分析员要确认结算职工工资这一事件每周末要发生一次,即系统每周运行一次。
4当然同时还要确认许多其他的事件。
5结构图还必须与系统流程图相一致。
6如果在开发中结构图发生了改变,项目组也要相应地更新系统流程图。
5开发一个结构图
5.1设计结构图是为了给程序建立模块层次结构。
树型结构的结构图有根模块和分支模块。
1.事务分析
5.2结构图开发的方法
2.变换分析
系统流程图
对应每个子系统的事件表
说明:
1.系统流程图中每个主要程序对应按事件划分的子系统,每个程序有自己的结构图。
2事件表中每个程序,即子系统包含若干个事件。
3.每个事件对应按事件划分的DFD中的一个处理。
4.每个处理进一步描述在基于事件表的DFD片段。
5.3事务分析
5.3.1事务分析:
基于DFD的结构图开发,用来描述多种事务类型的处理。
5.3.2事务分析使用作为输入的系统流程图和事件表建立树型结构的顶端模块,即产生主程序的主模块和第一层被调用模块。
订单输入子系统的事件划分数据流图
说明:
1、检查条目有效性
2、创建新订单
已有处理3、订单更新
4、产生订单汇总报告
5、产生交易汇总报告
1事物分析要识别每个独立的事务,这些事务必须由程序支持且必须为每一个单独的事务建立一个分支。
事务分析过程2该程序至少在最高层有一个简单的用户界面,并允许用户选择一种事务处理方式,然后激活相应的模块来执行这个处理。
3每个按其完成的功能来命名的处理模块都是这些功能子树的主模块。
每个子树都是根据该事件的DFD片段建立的,在建立过程中,还将用到转化分析。
用户订单程序的高层结构图
说明:
1数据耦合较少。
所传递的惟一信息来自于事务处理选择模块的事务选择。
2控制模块用这个信息来选择正确的处理模块。
3在处理模块下的子树将显示一个适当的界面来接收和传递所要求的细化的信息。
5.4变换分析
5.4.1变换分析:
基于DFD的结构图开发,用来描述输入-处理-输出数据流。
5.4.2变换分析使用作为输入的数据流片段去建立子树,程序中的每个事件建立一棵子树。
5.4.3每棵子树的主模块对应于主程序结构图的第一层分支。
5.5从DFD片断建立结构图的步骤
5.5.1⑴确定主要的信息流。
⑵找出输入流到输出流之间最基本变化过程(中心变换)。
⑶重画DFD,将输入放在左边,输出放在右边,转换中心处理放在中间。
“创建新订单”DFD片段
“创建新订单”DFD的分解图
说明:
传入数据流:
向一系列处理输入的数据流。
传出数据流:
从一系列处理传出的数据流。
中心变换:
在一个变换分析类型的数据流中的中心处理理。
创建新订单DFD的重组图
说明:
将输入放在左边,输出放在右边,转换中心处理放在中间。
⑷根据重画的数据流建立结构图的第一个草案,其中包括调用阶层和所需的数据对。
图1.结构图的第一个草图
⑸必要时增加其他模块,以便实现通过用户界面获得输入数据、读写数据存储、输出数据或报表的功能。
⑹使用结构化英语和决策表,在它们的基础上加入部分所要求的中间模块间的关系。
⑺对结构图做最后的改进。
图2.创建新订单程序的结构图
图1表明了全部输入信息都来自最左边的模块——获取客户信息模块。
从图2中可以看到,信息的存取分布在结构图的其他分支上,客户信息从最左边的分支处取得,但是关于订单的其他顾客信息从图中的第二分支处取得。
虽然这种组织结构不一定与数据流图完全符合,但它是一个更具逻辑性的结构图。
增加这些存取数据的模块的确是一个设计过程,因为这是基于系统设计原则的对新部件的创建过程。
事务分析建立的顶层结构图
用变化分析建立的低层子树结构图
合并后的结构图
该图没有标出数据耦合标志
5.6评价结构图的质量
模块耦合:
模块与其他模块的相关程度,较好的耦合是数据耦合。
模块内聚:
模块内部的凝聚程度。
5.6.1.模块耦合
耦合:
程序中模块与其他模块间的相关程度。
目标:
使模块尽可能相互独立。
独立的模块可在任何环境下执行。
它有一个严格定义的接口,包括预先定义好的数据域。
模块会在这些预先定义好的数据域中传回结果。
模块无须知道哪个模块会调用它。
它可由任何其他模块调用,只要其他模块与这个模块的输入输出数据结构相符合。
(可复用)
模块耦合:
模块与其他模块的相关程度,较好的耦合是数据耦合。
5.6.2模块内聚
1)内聚:
在一个完成良好任务的模块中的所有代码的凝聚程度。
2)具有高度内聚的模块只执行一个单一功能。
3)模块中的所有指令都是该功能的一部分,都是为这个功能服务的。
4)低内聚模块可完成多个、松散关系的功能。
5)模块内聚:
模块内部的凝聚程度。
模块内聚的示例
五、模块算法设计:
伪码
1系统流程图和结构图,提供整个系统的结构和每个程序的内部结构。
2描述模块内部逻辑方法:
流程图(描述程序逻辑的可视化方法)、结构化英语和伪码。
3伪码更像是程序设计语言的结构化语言的变体。
4通常用与目标语言相近的语句写伪码。
六、三层设计
三层设计及它对应用软件的划分:
视图、业务逻辑和数据访问层
客户订单程序三层结构的系统流程图
产生新订单”活动三层结构的结构图
总结:
采用传统的结构化方法设计系统,输入的主要是数据流图。
最初,数据流图通过加入系统边界得到加强。
设计人员画出系统边界草图,用以显示一个完整的系统。
他(她)也在DFD片段上做出边界,以在更低层显示程序边界。
设计人员用一个或多个结构图来描述各DFD边界内的进程。
设计人员用事务分析、变换分析或两者的结合来开发结构图。
事务分析适用于处理多输入或事务类型的系统,适合分析上层的结构图。
变换分析适用于设计一个事务从输入到输出的转换程序。
结构图还可以基于三层结构。
在这种结构中,层可以清楚地识别各模块,如果层在多计算机系统中执行,还可以把结构图分解成多个小的结构图。
结构化设计也可以包含系统流程图和模块伪码。
系统流程图表示程序、文件和手工处理步骤间的数据流动,从而提供整个系统的总体情况。
系统流程图还可以描述多层系统中层与层之间的交互。
模块伪码用来描述一个结构图模块的内部逻辑。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 结构 开发 方法 分析 设计 提纲