MIS系统的概要设计_第1页
MIS系统的概要设计_第2页
MIS系统的概要设计_第3页
MIS系统的概要设计_第4页
MIS系统的概要设计_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1、课程内容复习两张图;DFD,DD的主要内容。(5分钟)两条策略三步走,六条原则来检验;判定树判定表,四类六表定义好。系统设计六项任务(结合两张图)。(10分钟)模块的概念-信息隐蔽。(10分钟)模块结构图的作用及其建立三步骤。(20分钟)模块独立性原则、判定及改进。(50分钟)本次课小结。(5分钟)2、本次课的2个知识点MSC建立三步骤;模块独立性原则;第六章 系统设计6.1 系统设计概述系统分析肄立了新系统的逻辑模型,定义了新系统的功能(用户需求和系统责任)。系统设计的任务是考虑如何实现这些功能,即解决怎样做和用什么去做的问题。换言之,系统分析阶段进行逻辑设计,建立新系统的逻辑模型,解决

2、做什么的问题;而系统设计阶段则进行物理设计,建立新系统的物理模型,解决怎样做的问题。物理模型相当于建筑图纸,有了它就可以进行编程施工了。物理模型又作为检查和验收的依据。MIS的物理模型包括应用软件的模块结构设计、数据存储设计、代码设计、人机界面设计和硬件、网络设计等。系统设计阶段的工作由系统设计员主持,如果没有专职系统设计员,可由系统分析员担任。开发组在系统设计员的带领下,用一组标准化的准则和工具完成系统设计工作。6.1.1 设计阶段的任务系统设计阶段任务肇重,主要有六项任务1、模块结构图的设计;2、数据存储设计;3、编码设计;4、交互界面设计(输入输出设计、对话);5、硬件、系统软件、网络选

3、择设计;6、模块内部的算法设计。系统设计的第一阶段称概要设计(也称总体设计)阶段,完成上述1-5项任务,第二阶段称详细设计阶段完成第六项任务。详细设计阶段是用流程图、PAD、Warnier图、N-S图等算法描述工具定义每个模块内部的工作过程(即算法)。到实现阶段,程序员根据这些定义进行程序设计。如果开发组中程序员的水平较高,可以不进行详细设计,由程序员自行完成算法设计并编码。6.1.2 结构化系统设计1974年,美国人W.Stevens、G.Myers和L.Constantine联名在IBM系统杂志(IBMSystem Jounal.V01.13No.2)上发表了题为“结构化设计的论文,第一次

4、提出了结构化系统设计(Structured System Design:SD)的思想。SD方法是用一组标准、准则和工具设计系统的实体结构,并物理地定义系统。SD方法有以下特点:。采用功能分解的方法建立系统的物理结构。采用标准的准则和标准的设计工具。系统中模块结构是树型的。有一组评价标准和质量优化技术。结构化的宗旨是要使设计工作简单化、标准化。SD方法强调系统要有一个良好的结构。在研究了系统分解所产生的模块间关系的基础上,提出了结构化的建模技术及评价模块结构的标准:模块独立性原则。SD方法特别适用于数据处理系统,适用于MIS的开发,它与系统分析阶段采用的SA(结构化系统分析)、后继系统实现阶段采

5、用的SP(结构化程序设计)有较好的衔接性。6.1.3 模块的概念软件系统的组成实体是模块。所谓模块是指:具有输入、输出、物理功能、运行程序和内部数据等属性的程序段。输入、输出和物理功能是模块的外部属性,运行程序和内部数据是模块的内部属性。模块定义了一个实体,这个实体是一组数据和施加于这组数据上的一组操作,通过模块说明把这组数据的内部结构和操作细节隐藏了起来,提供给外部的只是模块名称和操作说明等。这就是说,模块是一个具有功能的封闭体,外部只能通过模块名调用模块,而无法进入模块内部。调用时可以向模块提供参数,被调用模块自行工作,工作完成后能把结果反馈给调用者。与加工一样,模块要有数据输入和输出。一

6、个模块的输入和输出可以是同一实体,即模块的调用者。这时模块从调用者那里获得输入,工作后再把输出返还给调用者;也可以是不同的实体。例如模块A调用模块B,模块B把输出送到打印机。模块的物理功能是指模块能做什么事情,表达了它把输人转变成输出的能力:O=P(I)模块的运行程序是指它的程序段,模块的功能是由程序实现的。一个模块可以是一个程序或一个子程序。通过模块的名字调用模块。一个模块可以调用另一个模块,也可以被另一个模块所调用。调用者称父模块,被调用者称子模块。由于父还有父,子还有子,所以父模块、子模块的概念是相对的。SD方法的基本思想之一是模块化。系统由相对独立的、功能单一的若干模块组成,每个模块可

7、以独立地被理解、编程、测试和修改,这就使得复杂的开发工作得以简化。6.2 模块独立性原则由于系统由模块组成,所以。系统的质量就决定于模块的质量和模块间关系的质量,度量模块的质量及模块间关系质量的标准是;模块独立性原则。模块独立性的慨念是模块抽象和信息隐藏的直接结果。模块具有独立性是指模块具有独立的能力且与其它模块没有过多的联系和相互作用。软件的设计应当使得系境中每一个模块都具有较强的独立性。模块独立性有两个定性的标准;块内联系(亦称内聚)和块间联系(亦称耦合)。块内联系是指,一个模块内部各成分(结构或语句段落)间的联系。块内联系越大(内聚度越大),模块独立性越强,块间联系是指,模块之间的数据、

8、控制信息、调用信息等联系。块间联系越简单(藕合度越小)模块独立性越强。模块的独立性原则是人们工作分工的一条普遍原则。一个单位的各部门之间、各岗位之间、各工作人员之间的分工都要考虑独立性:业务联系尽量少(耦合度小),内部联系多(内聚度大)。如果一本帐你记我记,一张表你填我填,一件事问来问去,各科室互相牵扯,个人的工作互相包含,各部门、岗位和个人都不知道自己在于什么,能干什么。其结果是谁也做不好工作,谁也不做工作。6.2.1 块内联系块内联系又称内聚(Cohesion)是指一个模块内部各成分之间的联系的强度。块内联系一般分为六个等级,其中功能型内聚模块的内聚度最强,偶然型块的内模块的内聚度最弱。六

9、种类型内聚的内聚度从弱到强依次为;偶然型、逻辑型、时间型。通讯型、顺序型、功能型。一、偶然型内聚如果把若干个毫无联系的成分凑合在一起,组成一个模块,这种模块称为偶然型内聚模块。FoxBASE中的过程文件是典型的偶然型内聚模块。模块中各子程序间无任何联系,只是为了提高程序运行速度(减少读盘次数)才把它们故在一起。但是,作为一个整体,这种模块的缺点是显然的:。含义不易理解,难以给它适当的命名,难以测试。调用复杂。在调用它时,必须对其设置专门的“开关”,因而增加了复杂性,。不易修改。二、逻辑型内聚将若干个功能相似的成分(语句或语句组)放在一个模块中,就构成逻辑型内聚模块。这种模块各组成部分的功能相近

10、,但并不完全相同,也无必然的内在联系。在运行中共用同一个动词(如“打印XX表”),但却各做各的事(打印不同的表),处理不同的问题。下面的MSC即逻辑型内聚。打印管理打印资产负债表 打印财务状况变动表 打印损益表 图中三个模块分别作自己的事情,互不相干。三、时间型内聚将需要同时执行的一些成分集中在一起所构成的模块,称时间型内聚模块。例如,会计核算系统中的“月末结转”模块,它要做各数据库的结转,数据的备份等项工作,这些工作都要在月末的一个有限的时间内完成,但彼此独立。再如系统中“初始化”、“结束”、“系统恢复”等模块也属于这一类型。逻辑型内聚和时间型内聚存在与偶然型内聚类似的缺点,内聚力都很弱。四

11、、通讯型内聚通讯型内聚模块中的所有操作都集中在同一个数据区,但并不规定各处理成分的执行顺序。例如,模块A从同一个文件中读取数据产生不同的表格;模块B对同一个数据区的数据作不同的处理。这两个模块都是通讯型内聚的。五、顺序型内聚模块中一个成分的输出是另一个成分的输入,模块中各成分的工作是有次序的,各成分之间的关系也较紧密,好像流水线一样,其内聚程度较高。模块中一部分语句读取数据,接着另部分的语句把数据累加、打印出来。该模块中的操作前后衔接,一环扣一环。这种模块也有弱点,因为它包含有多个功能,这就降低了模块的独立性;也给维护工作带来困难。六、功能型内聚一个模块仅包含单一功能,就是说它所包含的所有成分

12、都是为完成某一个具体任务的,这样的模块是功能型内聚模块。例如,“计算平均分”模块,其中的每一语句都是为计算平均分服务的,抽掉哪一句都不行。计算利息、计算工资、打印发票等,都属功能型内聚。功能型内聚模块定义清楚的界面,内部成分之间联系紧密,而同其它模块之间的联系较少。一个功能型模块容易理解、设计和编程,也易于测试和维护。SD方法的目标是构造出功能型模块。6.2.2 内聚类型的判断与改造为了确定某个模块的块内联系是什么类型,只要问“为什么要将这些成分放在一个模块中?”。根据回答,就可以决定其类型。1、如果只需用一个动宾词组就能准确地描述模块的功能,说清楚它做什么,则这个模块就是功能型内聚模块。如果

13、不是一个词组,而是一个复合句子,句子中有逗号,有多个动词,这种模块一定不是功能型内聚模块。2、如果描述一个模块功能的句子中,所描述的目标不是单一的目标,则最大的可能性是逻辑型内聚。如模块包含了“计算工人工资”和“计算于部工资”两个逻辑上相似的功能,该模块是逻辑型内聚。为了获得功能型的模块,可将模块的两个功能分开。使每一个模块只有一个功能。3、如果描述一个模块功能的句子中,包含与次序有关的词(如首先、然后、下一步、开始、直到等)。则多半是时间型内聚,也可能是顺序型内聚。例如,模块的功能是“先取正确口令。再将它同精人的口令作比较”,它是顺序型内聚的模块。4、如果描述一个模块的句子中,有“初始化”、

14、“总清”等词。则可能是时间型内聚。5、如果用一句话很难将一个模块的功能说清楚,它可能是偶然型内聚。总之,单一功能为功能型;多功能,功能相似为逻辑型;与时间有关为时间型;执行次序无关为通讯型;次序是重要的是顺序型;不能简单地说出其功能的为偶然型。判断举例:“计算利润”。因为它执行一个功能模块,其名称由一个动词和一个名词组成,所以是功能型。“验证入库单并修改库存文件”。该模块中存在两个动作,两个动作间有数据流传输,而且动作是有次序的,所以是顺序型内聚。再如“循环计算”等,凡对文件操作且与顺序有关的均为顺序型。“计算平均日产量和最高日产量”。该模块中也存在两个动作,但两个动作使用相同的数据,且动作的

15、次序不重要,所以是通讯型。“初始化”存在着控制是在特定时间内必须完成的动作,与时间有关,但各初始化的次序并不重要,所以是时间型。“编辑所有事务记录”。该模块内所有组成成份在逻辑上是相似的,都是“编辑”但因具体事务记录不同,采用不同的编辑方法,所以是逻辑型。“处理子程序”,该模块名称没有任何意义,看不出它的内部组成成份间有什么联系,所以是偶然型。提高模块内聚度的有效方法是分解模块。把模块中的诸多功能分开来,分开后的每个模块都是功能型内聚的。6.2.3 块间联系块间联系又称耦合(Coupling),是指模块之间的各种联系。按照模块独立性原则,块间联系应当尽量简单,以使模块间耦合度减小。块间联系可分

16、为5种类型,其耦合度从弱到强依次为:无关型、调用型、数据型、控制型、内容型。一、无关型耦合无关型耦合有两种情况:一是两个模块间无任何联系,例如分别在两个子系统中的模块。另一种情况是两个模块使用同一个文件,如“计算工资”模块把数据写入文件,“打印工资”模块从文件中读数打印,两模块被隔离文件隔离,无直接联系。当然,不可能做到系统中所有模块间都无任联系,我们的目标是使有联系的模块数量最少,联系的程度降低到最低。二、调用型耦合调用型耦合是指调用模块与被调用模块间只有调用关系,不附加数据和控制信息传递。三、数据型耦合在两个模块间往返传递的只有少量的数据,这种耦合称数据型耦合。数据型耦合模块接口简单。在不

17、可避免的耦合中是耦合度最低的,也是较理想的耦合。四、控制型耦合调用模块把控制信息传递给被调用模块,被调用模块的工作情况与该控制信息有关。如子模块能计算工人工资或计算干部工资,但如何执行,取决于从父模块传来的控制信息。显然,这种耦合的耦合度与数据耦合的耦合度类似。如果把子模块分解成两个功能型模块,控制耦合自然消除。五、内容型耦合当一个模块使用另一个模块的内部数据,或者进入其中执行其代码时就构成模块间的内容耦合。这是耦合度最大的,硬件中应当避免。设计中应当构造无关型、调用型、数据型耦合。6.2.4 减小块间联系的措施系统设计中要对初始MSC(PDFD)中逐一检查模块间的联系,发现耦合过紧的快件联系

18、应当采取技术措施予以减弱或消除。这一过程又称“去耦”。常见的去耦措施有:1、 库存、缓冲和等候工厂设置合理材料库存、在流水线上的工位间设置暂存箱都是缓解环节间、工序间紧张关系的有效办法;在计算机硬件系统中的一级缓存、二级缓存(Buffers)是解决个部分间因速度不匹配而造成的紧张状况的有效措施;在MSC设计中适当使用缓存文件可以有效地减小块间联系。缓冲文件的重要性还在于,它能隔断错误。1、合并模块把联系过于紧密的模块合并起来,使块间联系变成块内联系,从而消除了块间联系。需要注意的是,对合并后要检查块内联系的水平。2、标准化和一致性系统中标准化和一致性的设计得好,可以减少模块间的信息量。例如,一

19、个会计核算系统统一采用财政部规定的会计科目编码,从凭证到帐簿,从成本到报表各模块工作时谁也不必查找和询问,因为编码是标准的、统一的。标准化和一致性还有利于开发,设计员、程序员工作时不必问这问那,因为有关的东西是标准的、一致的。综合分析我们看到:分解模块可提高内聚;合并模块可减少耦合。但分解模块会增加模块间接口的数量,总体上增加了块间联系,增加了系统的复杂性。另外,合并模块有利于运行效率,在对速度要求苛刻的场合,就可适当降低独立性。课程小结:MSC的设计是系统设计阶段的头等重要任务。本课要掌握的知识点有:系统设计六项任务(结合两张图)。模块的概念-信息隐蔽。模块结构图的作用及其建立三步骤。模块独

20、立性原则、判定及改进。PDFD->MSC。=1、课程主要内容复习两张图;PDFD->MSC的三步骤。(5分钟)MSC的优化(六条原则)。(10分钟)补充调用关系、信息流、功能和文件。(30分钟)模块独立性原则。(10分钟)模块的作用分范围和控制范围原则。(30分钟)其它原则。(10分钟)本次课小结。(5分钟)2、本次课的2个知识点MSC建立三步骤;MSC的改进与优化,特别是模块独立性及作用范围与控制范围的原则。6.3 模块结构图6.3.1模块结构图的规定模块及模块间关系可以用模块结构图(Module Structured Charts:MSC)来描述。MSC也称控制结构图,它是一种

21、图型工具。在MSC中,用方框表示模块,模块名称标在方框中。箭头表示模块的调用关系,从父模块指向子模块。MSC是一个平面树结构。MSC的设计的几项规定:1、模块间的调用关系符合军事调度原则,即上级模块只能调用自己的直接下级模块级模块也只执行直接上级模块的调用。每个模块都有自己独立的功能。2、模块之间的通信也只限于直接上、下级之间。如果某一模块确需与同级模块通信,必须通过它们各自的上级模块转达。模块间的通信主要有两种;数据和控制信息。这些信息传递可以用附在调用箭头上的小箭头表示,它们可以且只能在上下级模块间传递。用箭尾带有小圆圈的箭头表示传进数据;用箭尾带有小黑点的箭头表示传递控制信息,这些信息不

22、是被处理的数据,而是上级模块用来指挥、控制下级模块的运行,或下级模块对上级模块的回答信息等。3、在MSC中把输入部分模块画在左边,称作内导结构(Afferent Structure)。输出部分模块画在右边,称作外导结构(Efferent Structure)。中间部分称作转换结构(Transform Structure)。6.3.2 PDFD是MSC的基础如前所述,系统设计的第一项任务就是设计MSC。在分析阶段已经采用SA&D+方法建立了逻辑模型,而且我们说过:PDFD实际上就是MSC。现在,先来证明PDFD就是MSC,再讨论如何以它为基础建立物理模型。SA&D+认为:PDFD

23、和MSC的作用相同,结构一致,它们实际上就是一个东西。1、PDFD(MDFD)与MSC的作用相同:都是描述系统功能的。DFD描述系统的功能P,经过对P的层层地分解建成DFD。通过剥离数据流,加工间仅存在少量的信息。所以,DFD是以功能为主,数据流为辅描述系统的。MSC也是描述系统功能的。顶层模块是系统的全部功能,通过对模块的层层分解,把系统功能分配给各基层模块去实现。这是模块的分解,也是功能的分解。在MSC中,父子模块间允许有少量的信息传递,所以,MSC也是以功能为主,数据流为辅来描述系统的。2、加工与模块都是作数据变换的加工是DFD的主体,模块是MSC的核心,但它们有许多相同之处。·

24、;它们都有输入,有输出,有对数据的改变能力。·它们都有操作数据文件的能力。·它们都可以分解。父加工的数据处理能力由分解后各子加工共同完成;父模块的数据管理功能由其所属于模块实现。·它们都可以合并。分解使它们对数据的处理过程具体化,合并使它们对数据的处理过程抽象化。所以,PDFD中的加工就是MSC中的模块。3、PDFD与MSC的结构完全相同。示例。MDFD是立体构造,但PDFD与MSC都是平面结构。且结构相同。SA&D+认为MDFD与MSC结构上的差异完全是人为的。SA&D的使用者在分解加工时,让父、子加工分处上下层;而在分解模块时却让父,子模块处在

25、同一平面内。所以MDFD是多层的,而MSC是平面的。为了弥补SA&D的这个缺陷,SA&D+提出了PDFD。PDFD来自MDFD,其结构与MSC完全相同。6.4 MSC的补充和优化设计阶盘必须要考虑实现的问题。所以模型以PDFD为基础。再从实现的角度对其补充和优化,最后形成设计模型。一、补充上下级模块间的信息传递在DFD中,兄弟模块间的数据流包括两部分:数据流和控制流。当把大量的数据从数据流上剥离下来后,加工间其实只剩下控制流。到了MSC,这种指令已经隐含在父模块对于模块的调用中了。当调用“计算工资”模块时就是要它计算工资,调用“T印工资单”模块时就是要它打印。所以,DFD中兄弟

26、加工间的指令信息在MSC中大部分不需要重新定义。如果父子模块间确有信息要传递,应当在图中补充这些信息传递。二、补充功能或文件从实现的角度补充的功能要根据具体情况考虑。或许需要某个模块增加功能,或许需要增加模块,或许需要增加文件。以学藉管理系统为例。从实现的角度考虑。系统中应增设“学号-姓名对照表”文件,在所有其它文件中去掉“学生姓名”代之以学号,这既便于检索也可以节省大量存储空间。但增设文件后,就需要实时维护。如新生入校、学生毕业和学生学籍变动时,都需要对此对照表进行维护。这需要增加一个模块来完成,也可以在原来的“新生注册”、“毕业处理”和“学籍变动”三个模块中增加维护“学号-姓名对照表”的功

27、能。再如,从实现的角度还应当增加成绩标志文件、奖惩标志文件和变动标志文件,来标明课程的性质(如必修课、选修课等)、奖惩的性质(奖学金等奖励、记过等处分等)和学籍变动的性质(专升本、留级等)。设计这些标志后,在成绩库、档案库中指写入标志值,其含义可到标志库中去查找。使用标志库可以使多种性质的内容(如课程或奖惩)公用一个字段,因而可以节约空间。当学校增加课程或奖惩的项目时需要维护标志库,这又增加了“日常管理”模块的功能。对模型的补充必须结合实际,从实现的角度认真分析才能决定。为保持文档的一致性,补充的文件、增加的模块或模块的功能都应当补充到DFD、DD和PDFD中去。三、提高模块的独立性按照模块独

28、立性的原则衡量MSC,采取有效措施,使系统中的模块有较强的内聚力和较弱的耦合力。四、模块的作用范围与控制范围模块的作用范围是指:受该模块判定信息影响的所有模块。如果模块B的行为依赖于模块A的判定,则模块B属于模块A的作用范围。模块的作用范围与模块间的相互位置无关。模块的控制范围是指:模块自身及其所有下属模块。模块的控制范围与模块间的相互位置有关。作用范围从系统的功能角度考虑问题,控制范围从系统的结构方面考虑问题。然而,功能的有效发挥依赖于结构的良好。所以,应使两者协调统一。由此提出优化MSC的二条要求:模块的作用范围应处在该模块的控制范围之内。受判定影响的模块应尽量靠近产生判定作用的模块。例子见课件。要达到上述两条要求可以采取以下措施:1、移动模块的相对位置或将模块与其上级模块(或下级模块)合并,使作用范围进入

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论