信息系统分析与设计-第7章 结构化系统设计课件

上传人:我*** 文档编号:141494882 上传时间:2020-08-09 格式:PPT 页数:165 大小:876KB
返回 下载 相关 举报
信息系统分析与设计-第7章 结构化系统设计课件_第1页
第1页 / 共165页
信息系统分析与设计-第7章 结构化系统设计课件_第2页
第2页 / 共165页
信息系统分析与设计-第7章 结构化系统设计课件_第3页
第3页 / 共165页
信息系统分析与设计-第7章 结构化系统设计课件_第4页
第4页 / 共165页
信息系统分析与设计-第7章 结构化系统设计课件_第5页
第5页 / 共165页
点击查看更多>>
资源描述

《信息系统分析与设计-第7章 结构化系统设计课件》由会员分享,可在线阅读,更多相关《信息系统分析与设计-第7章 结构化系统设计课件(165页珍藏版)》请在金锄头文库上搜索。

1、第7章 结构化系统设计,本章主要内容,系统设计的任务 总体设计 结构化设计的概念、基本原则 从数据流图导出结构图 详细设计 代码设计 输出设计 输入设计 人机对话设计 模块详细设计 数据库设计、网络设计 系统设计说明书,转换,从分析到设计,现实领域的各种需求,计算机领域的具体实现,针对需求,进行计算机信息系统的物理模型设计,7.1 系统设计的任务,通俗地说,设计就是要回答“怎么做” 完成技术实现方案的制定,即信息系统的物理模型 一个逻辑模型,可以提出多个物理模型 根据物理模型进行实施,得到最终的物理系统,设计系统之前,先看看评价信息系统的标准,这 些标准对任何设计方法都适用: 信息系统的功能:

2、是否满足用户的需求 系统的效率:响应时间、操作的方便性 系统的可靠性:抗干扰能力、故障恢复 系统的工作质量:准确性、使用效果 系统的可变更性:修改和维护的难易程度 系统的经济性:系统收益与支出比,7.1.1 设计标准,信息系统的可变更性,变化是不变的真理。 统计表示:在信息系统的整个生命周期中,系统维护成本占总成本的80%左右。 因此,可变更性是衡量信息系统设计的重要指标。,如何提高系统变更性,结构简单 系统各组成元素分工明确,易于理解 元素之间的关系清晰简洁 变动灵活 软件维护中的“水波效应” 使系统各组成元素内部的改变容易实现,改动对其他部分的影响尽量减少 提前考虑将来最易出现的扩展和变更

3、 设计方法:结构化设计和面向对象设计,系统设计阶段的主要工作 总体设计:根据逻辑模型,完成系统体系结构(计算模式)、系统运行平台、系统的软件结构等设计. 详细设计: 代码设计 输入设计 输出设计 人机交互设计(用户界面设计) 模块处理过程设计(模块详细设计) 数据库设计 安全设计,系统设计的流程,系统运行平台的设计,设计内容:系统网络配置、硬件平台选择、软件平台选择等。 影响系统运行平台设计的因素,系统软件、实用软件的选型 软件选型原则 符合开放式系统的发展大方向 有必要和足够的软件工具支持 对新技术的支持能力 较低购买的成本,系统软件、实用软件的选型 软件选型的内容 操作系统 数据库管理系统

4、 开发语言/工具 (1)开放性 (2)易用性 (3)面向对象性 (4)支持团队开发,系统硬件选型 原则 立足于通用机型 满足应用的速度要求 统一的标准 具有支持所选择的软件平台的能力,设备配置 服务器 可管理性、可用性、容错性 网络设备 网络结构、传输介质、互联设备 外部设备的配置 包括各种输入输出设备 可靠性提高方法 安全设施的选择 不间断电源、防雷设施、安全加密设施,7.2 结构化设计的概念,结构化:自上至下,逐步分解求精 结构化设计:模块化,模块化,模块化的基本思想,使用结构化设计方法一定程度上能够简化系统结构,使系统容易修改和理解。 具体做法: 把整个软件划分为多个部分,其中每一部分的

5、功能简单明确,即程序模块(可以是子过程或函数) 划分模块的工作按层次进行,上层模块调用下层模块 每一个模块应尽可能独立 模块间的调用接口要阐明(模块名称、输入数据、输出数据),接口成本,成本,模块数量,单元模块成本,软件总成本,模块数量和软件成本,粒度太大,单个模块复杂度升高、维护困难 粒度太小,管理与运行成本升高 试想一下:每个经理管理协调多少个下级合适?,7.2.1 模块的概念,模块(Module)一词使用很广泛。通常对应于用一个名字就可以调用的一段程序语句(子程序或函数) 模块具有输入和输出、逻辑功能、运行程序、内部数据四种属性。,计算工资,模块的图形表示方法,7.2.2 模块结构图,结

6、构图(Structured Chart)描述系统的模块结构及模块间的联系 结构图中的主要成分有: 模块:用长方形表示 调用:从一个模块指向另一模块的箭头表示前一个模块调用后一个模块。有循环调用和条件调用 数据:用带圆圈的小箭头表示从一个模块传递给另一模块的数据(有实义) 控制信息:带涂黑圆圈的小箭头表示一个模块传送给另一模块的控制信息,结构图基本符号,A,B,C,B,A,A,B,C,B,A,(a)基本形式,(b)顺序,(c)选择,(d)循环,一个完整的结构图,模块设计的度量标准,为了衡量模块的相对独立性,提出了模块间的耦合(Coupling)与模块的内聚(Cohesion)两个标准 耦合:模块

7、内部各元素之间的联系程度 内聚:模块和模块之间的联系程度 设计目标: 模块内的联系越紧越好 模块间的联系越少越好 为什么?,影响耦合度的因素,如果使用模块A需要了解模块B,那么A和B是耦合的。影响模块间耦合程度有三方面的因素: 联系方式模块间通过什么方式联系 来往信息的作用模块间来往信息作什么用 数量模块间来往信息的多少。,混合 控制 数据,用过程 直接引用 语句调用,少,多,数量,方式,作用,0,离坐标原点越远,耦合程度越高,模块联系方式,直接引用:一个模块直接存取另一个模块的某些信息,例如全程变量、FORTRAN的common量、语言的extern量、共享的通信区等 。也称为公共环境耦合(

8、common environment coupling) 降低这种耦合程度的办法是使数据局部化,即使用局部变量 过程语句调用:一个模块调用另一个模块,所有数据来往都以参数或返回值方式传递并使用,来往信息的作用,模块间的来往信息可以作数据用,也可以作控制信息用,A,取平均成绩 或最高成绩,平均/最高 B,(a)控制耦合,成绩,取最高成绩,取平均成绩,A,平均成绩,最高成绩,(b)数据耦合,来往信息的数量,模块间传递的信息量越大,它们之间的耦合程度越高。 一个模块最好只了解它确实需要使用的数据,而完全不知道其他数据的存在(独立性好),耦合的类型,根据以上因素,对耦合分类如下: 数据耦合:采用子程序

9、调用,调用模块将需要进行处理的数据传递给被调模块。数据耦合是不可避免的。 标记耦合:如果调用模块将整个数据记录传递给被调模块,而被调模块只使用了部分数据项,则称为标记耦合或特征耦合。 控制耦合:一个模块将控制信息传递给另一个模块,以控制被调模块的内部处理逻辑。(可以分解) 公共环境耦合:如果两个模块共享同一全局数据,称为公共耦合。 内容耦合:两个模块之间的内部属性有直接关联,也称病态耦合。(某些GOTO语句),减低耦合的设计原则,结构化设计要求模块间的耦合程度尽可能小。 为此应: 用过程语句调用其他模块 模块间的参数作数据用 模块间的参数尽可能少,7.2.4 模块的内聚,模块的内聚反映模块内部

10、联系的紧密程度。 一个模块只需要做好一件事情,不要过分关心其他任务。 高内聚性的好处是可以提高程序的可靠性。 有一个调查表明,50的强内聚性子程序是没有错误的,而只有 18的弱内聚性子程序才是无错的,弱内聚性子程序的出错机会要比强内聚性出错机会高 6 倍,而修正成本则要高 19 倍。代码大全,内聚的类型,模块的内聚可以分以下七类: . 偶然内聚(coincidental cohesion) . 逻辑内聚(logical cohesion) . 时间内聚(temporal cohesion) . 步骤内聚(procedural cohesion) . 通信内聚(communicational c

11、ohesion) . 顺序内聚(sequential cohesion) . 功能内聚(functional cohesion),当同一个子程序中的操作之间无任何联系时,为偶然内聚性,也叫作“无内聚性”。 比如只是为了将程序中某几处凑巧相同的一些语句组合起来形成的一个模块:,P,Q,R,S,1、偶然内聚,B=A; read(Cardfile); D=C;,T,将几个逻辑上相似的功能放在一个模块中,比如常见的出错处理模块,工作模块发现错误后,调用错误处理模块,将错误号作为控制参数传入,然后出错处理模块根据不同的错误号执行相应的操作,2、逻辑内聚,将在有限时间单元内处理的成分组合为同一模块 比如在

12、程序初始化时所作的处理: m_Medirecno = psPerson.Medirecno txtMedirecno = psPerson.Medirecno txtTel = psPerson.Tel txtContact = psPerson.Contact txtAddr = psPerson.Addr txtMedirecno.Enabled = False,可视化程序设计中在窗口打开时初始化窗口中得控件内容,如列表框的项目、文本框或单选钮的缺省取值 还比如:C+的构造函数、析构函数,3、时间内聚,4、步骤内聚,当子程序中的操作是按某一特定过程结构进行的,就是步骤内聚。 例如:用户想按

13、一定的顺序打印,子程序设计成是用于按顺序打印销售收入、开支、雇员电话表的。 步骤内聚在时间内聚的基础上增加了次序的约束,当模块内的成分引用共同的数据,而不存在其他联系时,称为通信内聚,修改库存,购货单,开发货单,库存,A、销售模块,B 、产生留退名单模块,期末不及格统计,累计不及格统计,5、通信内聚,模块中某个成分的输出是另一成分的输入。 比如显示期末成绩通知:,6、顺序内聚,6、顺序内聚,顺序内聚有较强的内聚性 是步骤内聚和通信内聚的结合 例如:一个模块用于计算高于平均分的人数,步骤是先循环累计总分,然后计算得到平均分,最后循环统计高于平均分的人数 有步骤的先后,而且前一个步骤的结果要用于后

14、一步骤的运算中 但仍然不是最高的内聚类型,7、功能内聚,一个模块包括并且仅仅包括为完成一个具体任务所需要的所有成分,称为功能内聚。 功能内聚性是最强也是最好的一种内聚 例如:打印职工名单,PrintStaffList() 例如:计算平均分,CalculateAvg() 仅用一个动宾词组能明确指出这个模块的所有功能。,内聚的评分,耦合和内聚的概念是Stevens等人提出的, 是测量一个模块化系统好坏的标志。 按他们的观点, 给上述七种内聚评分如下: 功能内聚分 顺序内聚分 通信内聚分 步骤内聚分 时间内聚分 逻辑内聚分 偶然内聚分 可以给一个软件的所有模块打分,最后计算平均分,作为软件结构质量评

15、价的参考,耦合和内聚的关系,二者就像连体兄弟,存在紧密相关的关系: 模块内的高内聚往往意味着模块间的松耦合 反之,低内聚一般会带来紧耦合,7.2.6 模块的扇入与扇出,模块的扇入是指有多少个上级模块调用它。 模块的扇出是指模块的直属下层模块的个数,扇出系数不宜过大,A的扇出为2,A,B,C,B1,C1,C2,C3,B的扇出为1,C的扇出为3,T,T的扇入为2,减少高扇出,争取高扇入,清真寺型,不够好,底层模块复用度低,金字塔型,总体设计原则,设计功能内聚的模块 模块使用过程语句调用其他模块,传递的参数作数据用,并且尽可能少 模块内语句数一般为50100 平均扇出系数最好是35 高层模块高扇出,

16、最低层模块高扇入 一个判断的作用范围是判断所在模块的控制范围的子集,7.3 数据流图导出初始结构图,从数据流程图导出系统的初始结构图,首先要区分数据流程图的结构类型,然后根据不同的类型采用不同的方法把数据流图映象成相应的模块结构。 数据流程图DFD的结构类型 (1)变换型DFD一个数据流程图可以明显地分成输入、处理和输出三部分。 (2)事务型DFD事务型数据流程图一般呈束状形。,(1) 变换型结构,由输入、变换中心(或称主加工)和输出三部分组成。 基本模型:,变换 中心,输入 路径,输出 路径,变换型数据流图,(2) 事务型结构,特征:具有在多种事物中选择 执行某类事物的能力 基本模型:,事务 中心,接受路径,动作 路径,(3)大型系统DFD中,变换型和事务型结构往往共存:,T,事务中心,传入,变换,传出,(二)DFD导出初始

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号