已阅读5页,还剩113页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件工程,第三章 软件项目的概要设计,3.1 软件设计的任务,3.1 软件设计的任务,在软件需求分析阶段,已经搞清楚了软件“做什么”的问题,并把这些需求通过规格说明书描述了出来,这也是目标系统的逻辑模型。进入设计阶段,要把软件“做什么”的逻辑模型变换为“怎么做”的物理模型,着手实现软件的需求,所以软件设计是一个把软件需求转换为软件表示的过程。最初这种表示只是描述了软件的总的体系结构,称为软件概要设计或结构设计。,3.1 软件设计的任务,软件设计是将用户需求转化为软件系统的重要环节,是后继开发步骤以及软件维护工作的基础。如果没有设计,只能建立一个不稳定的系统。,3.1 软件设计的任务,一、从技术的角度分析软件设计,其主要任务包括: 数据设计:侧重于数据结构的定义。 系统结构设计:定义软件系统各主要成分之间的关系。 过程设计:把结构成份转换成软件的过程性描述。在后期的编码过程,将根据这种描述,生成源程序代码。 二、从工程管理的角度分析软件设计,其主要任务包括: 概要设计(总体设计):将软件需求转化为数据结构和软件的系统结构; 详细设计(过程设计):通过对结构表示进行细化,得到软件的详细数据结构和算法。,3.1 软件设计的任务,3.1 软件设计的任务,体系结构设计 体系结构就如同人的骨架。如果某个家伙的骨架是猴子,那么无论怎样喂养和美容,他始终都是猴子,不会成为人。 模块设计 模块就如同人的器官,具有特定的功能。人体中最出色的模块设计之一是手,手只有几种动作,却能做无限多的事情。人体中最糟糕的模块设计之一是嘴巴,嘴巴将最有价值但毫无相干的几种功能如吃饭、说话混为一体,使之无法并行处理,真乃人类之不幸。,3.1 软件设计的任务,用户界面设计 用户界面就如同人的外表,最容易让人一见钟情或一见恶心。象人类追求心灵美和外表美那样,软件系统也追求(内在的)功能强大和(外表的)界面友好。但随着生活节奏的加快,人们已少有兴趣去品味深藏不露的内在美。如果把Unix系统比作是健壮的汉子和妇人,那么Windows系统就象妩媚的小白脸和狐狸精。想不到Windows系统竟然能兴风作浪,占去大半市场。 数据结构与算法设计 数据结构与算法就如同人的血脉和神经,它让器官具有生命并能发挥功能。数据结构与算法分布在体系结构和模块中,它将协调系统的各个功能。人的耳朵和嘴巴虽然是相对独立的器官,但如果耳朵失聪了,嘴巴就只能发出“啊”“呜”的声音,等于丧失了说话的功能,可人们却又能用手势代替说话。人体的数据结构与算法设计真是十分神奇并且十分可笑。,3.2 概要设计的过程,一、设计系统方案 需求分析阶段得出的数据流图是总体设计的出发点,数据流图中的某些处理可以逻辑地归并在一个边界内作为一组,另一些处理可以放在另一个边界内作为另一组,这些边界通常意味着某种实现策略。 设想供选择的方案的通常方法是,设想把数据流图中的处理分组的各种可能的方法,抛弃在技术上行不通的分组方法,余下的分组方法代表可能的实现策略。 在总体设计的这个步骤中分析员仅仅一个边界一个边界地设想并且列出供选择的方案,并不评价这些方案。,3.2 概要设计的过程,二、选取合理的方案 从可供选择的方案中,选取低成本、中成本、高成本三种方案。并对每个合理的方案,准备下列四份材料: (1)系统流程图 (2)组成系统的物理元素清单 (3)成本/效益分析 (4)实现这个系统的进度计划 三、确定最佳方案 分析员应该综合分析对比各种合理方案的利弊,推荐一个最佳的方案 ,并且为推荐的方案制定详细的实现计划。用户与专家审查分析员推荐的方案,提交审批后进入软件结构设计。,3.2 概要设计的过程,四、系统功能分解 软件结构设计,首先要把复杂的功能进一步分解成简单的功能,遵循模块划分独立性原则,做到模块功能单一,与外部联系很弱。功能的分解导致对数据流图的进一步细化,并选用相应的图形工具来描述。 五、软件结构设计 功能分解后,用层次图、结构图来描述模块组成的层次系统,即反应软件的结构。,3.1 概要设计的任务与过程,设计软件结构 为了实现目标系统,最终必须设计出组成这个系统的所有程序和数据库(文件),对于程序,则首先进行结构设计,具体为: (1)采用某种设计方法,将一个复杂的系统按功能划分成模块。 (2)确定每个模块的功能。 (3)确定模块之间的调用关系。 (4)确定模块之间的接口,即模块之间传递的信息。 (5)评价模块结构的质量。 软件结构的设计是以模块为基础的,在需求分析阶段,已经把系统分成层次结构。设计阶段,以需求分析的结果为依据,从实现的角度进一步划分为模块,并组成模块的层次结构。,3.2 概要设计的过程,六、数据库设计、文件结构设计 根据系统要求,确定系统的数据结构,文件结构。对需要使用数据库的领域,再根据系统数据要求做数据库的设计。 数据库设计主要涉及如下几方面: 数据库模式设计:物理数据库设计 数据库的子模式:用户的数据视图 完整性设计 安全性设计 设计优化,3.1 概要设计的任务与步骤,数据库设计 概念设计:在数据分析的基础上,采用自底向上的方法从用户角度进行视图设计,一般用ER模型来表示的概念模型。 逻辑设计:ER模型是独立于数据库管理系统的,要结合具体的DBMS来建立数据库的逻辑结构。对于关系型DBMS来说将概念结构转换为数据模式、子模式并进行规范,给出数据结构的定义,即定义所含的数据项、类型、长度及它们之间的层次或相互关系的表格等等。 物理设计。设计数据模式的一些物理细节,如数据项存储要求、存取方式、索引的建立。,3.2 概要设计的过程,七、制定测试计划 为保证软件的可测试性,需要考虑软件的测试问题。这个阶段的测试计划为根据I/O功能做的黑盒测试计划。 八、书写文档 系统说明:系统构成方案、物理元素清单、成本/效益分析、软件结构、模块接口等 用户手册 测试计划:测试策略、测试方案、预期结果、测试进度 详细的项目开发实现计划:系统目标、概要设计、数据设计、处理方式设计、运行设计和出错设计等 数据库设计说明与设计结果,3.2 概要设计的过程,九、审查与复审 对设计部分是否完整地实现了需求中规定的功能、性能等要求,设计方案的可行性,关键的处理及内外部接口定义正确性、有效性,各部分之间的一致性等等都一一进行评审。,3.3 软件设计的原则,一、模块化 把复杂的问题分解成许多容易解决的小问题,原来的问题也就容易解决了,这就是模块化提出的依据。模块化可以使一个复杂的大型程序能被人的智力所管理,也使设计出的软件的可读性和可理解性大大增强,测试和调试更为容易进行,有助于提高软件的可靠性。,3.3 软件设计的原则,二、抽象与逐步求精 由于人类思维能力的限制,如果每次考虑太多的因素,就不可能做出精确的思维。处理复杂系统的有效方法就是用层次的方式构造和分析它。一个复杂的系统首先可以用一些高级的抽象概念构造和理解,这些高级概念又可以用一些较低级的概念构造和理解,如此进行下去,直至低层次的具体元素。 软件工程过程的每一步都是对软件解法的抽象层次的一次精化,逐步求精与抽象是紧密联系的,随着软件开发工程的进展,在软件结构每一层的模块中,表示了对软件层次的一次精化,层次结构的下一层是对上一层的求精,在软件结构的底层模块,完成对数据的一个具体处理,用自顶向下由抽象到具体的方式分配控制,简化了软件的设计和实现。,3.3 软件设计的原则,三、信息隐蔽和局部化 信息隐蔽原理:每一个模块的实现细节对于其他模块来说是隐蔽的,模块中所包含的信息不允许其他不需要这些信息的模块调用。 局部化的概念与信息隐蔽密切相关,局部化是指把一些关系密切的软件元素物理的放的彼此靠近,通过局部化有助于实现信息隐蔽。 四、模块独立性 模块独立性指软件中每个模块只涉及软件要求的具体子功能,而与软件的其他模块的接口是简单的。模块独立的概念是模块化、抽象、信息隐蔽和局部化的直接结果。模块的独立程度由两个定性标准度量: 耦合:对软件内各个模块之间的互连程度的度量,用于衡量模块间互相依赖的紧密程度。 内聚:用于衡量一个模块内各元素之间彼此结合的紧密程度。,3.3 软件设计的原则,1、耦合 1)非直接耦合:两个模块中的每一个都能独立工作而不需要另一个模块存在,模块之间没有直接关系,它们之间的联系完全通过主模块之间的控制和调用来实现,耦合程度最低。 2)数据耦合:两个模块之间通过数据参数(非控制参数、公共数据结构或外部变量)来交换输入、输出信息。数据耦合属于松散耦合,模块间独立性比较强,软件程序结构中至少存在该类耦合。,非直接耦合,数据耦合,3.3 软件设计的原则,3)标记耦合:一组模块通过共享参数记录表传递信息,由于传递的是一个记录结构,需要各个模块都要清楚记录的详细结构,并按照结构对记录进行操作。此外,当被调用的模块可以使用的数据多于它确实需要的数据时,导致数据访问可能失控。,解决特征耦合转换为数据耦合,3.3 软件设计的原则,4)控制耦合 一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,即调用模块向被调用模块传递的信息控制了被调用模块的内部逻辑。,3.3 软件设计的原则,控制耦合,3.3 软件设计的原则,去除模块间控制耦合转换数据耦合 将被调用模块内的判定上移到调用模块中进行 被调用模块分解成若干单一功能模块,3.3 软件设计的原则,5)外部耦合 一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。 外部耦合引起的问题类似于公共耦合,区别在于在外部耦合中不存在依赖于一个数据结构内部各项的物理安排。,3.3 软件设计的原则,6)公共耦合 若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。这种耦合会引起下列问题:,所有公共耦合模块都与某一个公共数据环境内部各项的物理安排有关,若修改某个数据的大小,将会影响到所有的模块。 无法控制各模块对公共数据的存取,严重影响软件模块可靠性和适应性。 公共数据名的使用,明显降低了程序的可读性。,3.3 软件设计的原则,7)内容耦合 如果出现以下情形,两个模块之间就发生了内容耦合: 一个模块访问另一个模块的内部数据。 一个模块不通过正常入口转到另一个模块的内部。 两个模块有一部分代码重叠(只可能出现在汇编程序中)。 一个模块有多个入口(这意味着一个模块有几种功能)。,一模块直接访问另一模块的内部信息 (程序代码或数据),模块代码重叠,多入口模块,3.3 软件设计的原则,模块化的原则 模块化设计的最终目标,是希望建立模块间耦合尽可能松散的系统。 在这样一个系统中,我们设计、编码、测试和维护其中任何一个模块,就不需要对系统中其他模块有很多的了解。 此外,由于模块间联系简单,发生在某一处的错误传播到整个系统的可能性很小。,3.3 软件设计的原则,2、内聚性 内聚性标志一个模块内各个元素彼此结合的紧密程度。 模块内的高内聚往往意味着模块间的松耦合。内聚和耦合都是模块化设计的有力工具,但是实践表明内聚更重要,应该把更多注意力集中到提高模块的内聚程度上。 分类 低内聚:偶然内聚 逻辑内聚 时间内聚 中内聚:过程内聚 通信内聚 高内聚:顺序内聚 功能内聚,3.3 软件设计的原则,1)偶然内聚 当模块内各部分之间没有联系,或者即使有联系,这种联系也很松散,则称这种模块为偶然内聚,它是内聚程度最低的模块。 这种模块有如下缺点: 首先是不易修改和维护。 其次是这种模块的内容不易理解,很难描述它所完成的功能,增加了程序的模糊性。,3.3 软件设计的原则,2)逻辑内聚 这种模块把几种相关的功能组合在一起,每次调用时,由传送给模块的判定参数来确定该模块应执行哪一种功能。这种模块是单入口多功能模块。类似的有错误处理模块。它接收出错信号,对不同类型的错误打印出不同的出错信息。逻辑内聚模块比巧合内聚模块的内聚程度要高 。 逻辑内聚的缺点 它所执行的不是一种功能,而是执行若干功能中的一种,因此它不易修改。 另外,当调用时需要进行控制参数的传递,这就增加了模块间的耦合程度。 而将未用的部分也调入内存,这就降低了系统的效率。,3.3 软件设计的原则,3.3 软件设计的原则,3)时间内聚 这种模块大多为多功能模块,但模块的各个功能的执行与时间有关,通常要求所有功能必须在同一时间段内执行。 如初始化系统模块、系统结束模块、紧急故障处理模块等。初始化模块要为所有变量赋初值,对所有介质上的文件置初态,初始化寄存器和栈等,因此要求在程序开始执行的最初一段时间内,模块中所有功能全部执行一遍。,3.3 软件设计的原则,4)过程内聚 如果一个模块内的处理是相关的,而且必须以特定次序执行,则称这个模块为过程内聚模块。 使用流程图做为工具设计程序的时候,常常通过流程图来确定模块划分。把流程图中的某一部分划出组成模块,就得到过程内聚模块。 例如,我们把流程图中的循环部分、判定部分、计算部分分成三个模块,这三个模块都是过程内聚模块。,3.3 软件设计的原则,5)通信内聚 如果一个模块内各功能部分都使用了相同的输入数据,或产生了相同的输出数据,则称之为通信内聚模块。,3.3 软件设计的原则,6) 顺序内聚 如果一个模块内的处理元素和同一个功能密切相关,而且这些处理必须顺序执行(通常一个处理元素的输出数据作为下一个处理元素的输入数据),3.3 软件设计的原则,7)功能内聚 一个模块中各个部分都是完成某一具体功能必不可少的组成部分,或者说该模块中所有部分都是为了完成一项具体功能而协同工作,紧密联系,不可分割的。则称该模块为功能内聚模块。功能内聚模块的优点是它们容易修改和维护,因为它们的功能是明确的,模块间的耦合是简单的。,tan( )函数sin( )函数,3.3 软件设计的原则,3.3 软件设计的原则,五、结构设计原则(启发式规则) 1、改进软件结构提高模块独立性 设计出软件的初步结构以后,应该审查分析这个结构,通过模块分解或合并,力求降低耦合提高内聚。 例如,多个模块公有的一个子功能可以独立成一个模块,由这些模块调用; 有时可以通过分解或合并模块以减少控制信息的传递及对全局数据的引用,并且降低接口的复杂程度。,3.3 软件设计的原则,2、模块规模应该适中 经验表明,一个模块的规模不应过大。过大的模块往往是由于分解不充分,但是分解后不应该降低模块独立性。 过小的模块开销大于有效操作,而且模块数目过多将使系统接口复杂。因此过小的模块有时不值得单独存在,特别是只有一个模块调用它时,通常可以把它合并到上级模块中去而不必单独存在。,3.3 软件设计的原则,3、深度、宽度、扇入和扇出都应适当,3.3 软件设计的原则,3.3 软件设计的原则,深度表示软件结构中控制的层数,它往往能粗略地标志一个系统的大小和复杂程度。如果层数过多则应该考虑是否有许多管理模块过分简单了,能否适当合并。 宽度是软件结构内同一个层次上的模块总数的最大值。一般说来,宽度越大系统越复杂。对宽度影响最大的因素是模块的扇出。 扇出是一个模块直接控制(调用)的模块数目。 扇出过大意味着模块过分复杂,需要控制和协调过多的下级模块;扇出过小也不好。一个设计得好的典型系统的平均扇出通常是3或4。 扇出太大一般是因为缺乏中间层次,应该适当增加中间层次的控制模块。扇出太小时可以把下级模块进一步分解成若干个子功能模块,或者合并到它的上级模块中去。,3.3 软件设计的原则,一个模块的扇入表明有多少个上级模块直接调用它。扇入越大则共享该模块的上级模块数目越多,这是有好处的。但是,不能违背模块独立原理单纯追求高扇入。 观察大量软件系统后发现,设计得很好的软件结构通常顶层扇出比较高,中层扇出较少,底层扇入到公共的实用模块中去(底层模块有高扇入)。,3.2 软件设计的原则,3.3 软件设计的原则,避免平铺结构,3.3 软件设计的原则,增加中间层降低扇出,3.3 软件设计的原则,4、模块的作用域应该在控制域之内 模块的作用域定义为受该模块内一个判定影响的所有模块的集合。 模块的控制域是这个模块本身以及所有直接或间接从属于它的模块的集合。,修改软件结构使作用域是控制域的子集的方法 一个方法是把做判定的点往上移,例如,把判定从模块A中移到模块M中。 另一个方法是把那些在作用域内但不在控制域内的模块移到控制域内,例如,把模块G移到模块A的下面,成为它的直属下级模块。,3.3 软件设计的原则,3.3 软件设计的原则,5、力争降低模块接口的复杂程度 模块接口复杂是软件发生错误的一个主要原因。应该仔细设计模块接口,使得信息传递简单并且和模块的功能一致。接口复杂或不一致(即看起来传递的数据之间没有联系),是紧耦合或低内聚的征兆,应该重新分析这个模块的独立性。 例如,求一元二次方程的根的模块 QUADROOT(TBL,X),其中用数组 TBL传送方程的系数,用数组X回送求得的根。这种传递信息的方法不利于对这个模块的理解,不仅在维护期间容易引起混淆,在开发期间也可能发生错误。 下面这种接口可能是比较简单的: QUAD ROOT(A,B,C,ROOT1,ROOT2)其中A、B、C是方程的系数,ROOT1和ROOT2是算出的两个根。,3.3 软件设计的原则,6、设计单入口单出口的模块 不要出现内容耦合。 从顶部进入模块,从底部退出模块。 易理解,易维护。 7、模块功能应该可以预测 如果一个模块可以当做一个黑盒子,也就是说,只要输入的数据相同就产生同样的输出,那么这个模块的功能就是可以预测的。 带有内部“存储器”的模块的功能可能是不可预测的,因为它的输出可能取决于内部存储器(例如某个标记)的状态。 由于内部存储器对于上级模块而言是不可见的,所以这样的模块既不易理解又难于测试和维护。,3.4 面向数据流的设计方法,3.4.1 系统结构图 结构图是进行软件结构设计的一个有力工具,其主要符号构成有: 方框:代表一个模块,框内注明模块的名字或主要功能; 方框之间的箭头(或直线):表示模块的调用关系。 带注释的箭头:表示模块调用过程中来回传递的信息;尾部是空心圆表示传递的是数据,实心圆表示传递的是控制信息。 注: 调用次序为上层调用下层; 同层按照数据传递关系确定; 一般从左到右执行,执行过程即按照数据流向进行。,3.3 面向数据流的设计方法,3.4 面向数据流的设计方法,一、模块的基本形态,3.4 面向数据流的设计方法,二、模块间的关系,简单调用,循环调用,选择调用,3.3 面向数据流的设计方法,例:求取最佳解系统的结构图,3.4 面向数据流的设计方法,3.4.2 面向数据流的设计方法 一、基本概念 通常所说的结构化设计方法(简称SD方法),也就是基于数据流的设计方法。面向数据流的设计方法的目标是给出设计软件结构的一个系统化的途径。 面向数据流的设计方法把信息流映射成软件结构,信息流的类型决定了映射的方法。 信息流有下述两种类型: 变换流 事务流,3.4 面向数据流的设计方法,信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理后再沿输出通路变换成外部形式离开软件系统。 当数据流图具有这些特性时,这种信息流就叫做变换流。,1、变换流,3.4 面向数据流的设计方法,基本系统模型意味着变换流,因此,原则上所有信息流都可以归结为变换流。但是,当数据流图的数据流是“以事务为中心的”,也就是说,数据沿输入通路到达一个处理T,这个处理根据输入数据的类型在若干个动作序列中选出一个来执行。这类数据流应该划为一类特殊的数据流,称为事务流。,图中的处理T称为事务中心,它完成下述任务: 接收输入数据(输入数据又称为事务); 分析每个事务以确定它的类型; 根据事务类型选取一条活动通路。,事务流,2、事务流,设计过程,3、面向数据流的设计过程,3.4 面向数据流的设计方法,3.4 面向数据流的设计方法,二、变换分析 变换分析是一系列设计步骤的总称,经过这些步骤把具有变换流特点的数据流图按预先确定的模式映射成软件结构。,3.4 面向数据流的设计方法,变换分析设计步骤 1、复查基本系统模型,确保系统的输入数据和输出数据符合实际。 2、复查并精化数据流图,确保数据流图给出了目标系统正确的逻辑模型,而且应该使数据流图中每个处理都代表一个规模适中相对独立的子功能。 3、确定数据流图具有变换特性还是事务特性。 4、确定输入流和输出流边界,从而孤立出变换中心。,3.4 面向数据流的设计方法,例子 通过模-数转换实现传感器和微处理机接口。 在发光二极管面板上显示数据。 指示行驶的速度(每小时英里数mph),行驶的总里程,每加仑油可以行驶的英里数(mpg)。 指示汽车是在加速还是在减速。 超速警告:如果车速超过55英里/小时,则发出超速警告铃声。,数据流图,具有边界的数据流图,5、完成“第一级分解”。 软件结构代表对控制的自顶向下的分配,所谓分解就是分配控制的过程。 应该在能够完成控制并且保持好的耦合和内聚的前提下,尽量使第一级控制中的模块数目最少。,3.4 面向数据流的设计方法,第一级分解,第一级分解的方法 位于软件结构最顶层的控制模块Cm协调从属的控制功能: 输入信息处理控制模块Ca,协调对所有输入数据的接收; 变换中心控制模块Ct,管理对内部形式的数据的所有操作; 输出信息处理控制模块Ce,协调输出信息的产生过程。,3.4 面向数据流的设计方法,第一级分解得出的软件结构,每个控制模块的名字表明了为它所控制的那些模块的功能,6、完成“第二级分解” 所谓第二级分解就是把数据流图中的每个处理映射成软件结构中一个适当的模块。 第二级分解的方法 从变换中心的边界开始沿着输入通路向外移动,把输入通路中每个处理映射成软件结构中Ca控制下的一个低层模块; 然后沿输出通路向外移动,把输出通路中每个处理映射成直接或间接受模块Ce控制的一个低层模块; 最后把变换中心内的每个处理映射成受Ct控制的一个模块。,3.4 面向数据流的设计方法,进行第二级分解,3.4 面向数据流的设计方法,第二级分解结果,未经精化的输入结构,未经精化的变换结构,3.4 面向数据流的设计方法,3.4 面向数据流的设计方法,未经精化的输出结构,3.4 面向数据流的设计方法,虽然图中每个模块的名字表明了它的基本功能,但是仍然应该为每个模块写一个简要说明,描述: 1、进出该模块的信息(接口描述); 2、模块内部的信息; 3、过程陈述,包括主要判定点及任务等; 4、对约束和特殊特点的简短讨论。,简要说明,7、使用设计度量和启发式规则对第一次分割得到的软件结构进一步精化。 具体到数字仪表板的例子,对于从前面的设计步骤得到的软件结构,还可以做许多修改。下面是某些可能的修改: 输入结构中的模块“转换成rpm”和“收集sps”可以合并; 模块“确定加速减速”可以放在模块“计算mph”下面,以减少耦合; 模块“加速减速显示”可以相应地放在模块“显示mph”的下面。,3.4 面向数据流的设计方法,修改后的软件结构,3.4 面向数据流的设计方法,3.4 面向数据流的设计方法,三、事务分析 由事务流映射成的软件结构包括一个接收分支和一个发送分支。 映射出接收分支结构的方法和变换分析映射出输入结构的方法很相像。即从事务中心的边界开始,把沿着接收流通路的处理映射成模块。 发送分支的结构包括一个调度模块,它控制下层的所有活动模块;然后把数据流图中的每个活动流通路映射成与它的流特征相对应的结构。,事务分析的映射方法,事务分析的映射方法,3.4 面向数据流的设计方法,3.4 面向数据流的设计方法,四、设计优化 应该在设计的早期阶段尽量对软件结构进行精化。可以导出不同的软件结构,然后对它们进行评价和比较,力求得到“最好”的结果。这种优化的可能,是把软件结构设计和过程设计分开的真正优点之一。 设计优化应该力求做到在有效的模块化的前提下使用最少量的模块,以及在能够满足信息要求的前提下使用最简单的数据结构。,3.4 面向数据流的设计方法,对时间起决定性作用的软件的优化方法 1、在不考虑时间因素的前提下开发并精化软件结构; 2、在详细设计阶段选出最耗费时间的那些模块,仔细地设计它们的处理过程(算法),以求提高效率; 3、使用高级程序设计语言编写程序; 4、在软件中孤立出那些大量占用处理机资源的模块; 5、必要时重新设计或用依赖于机器的语言重写上述大量占用资源的模块的代码,以求提高效率。,3.5 概要设计说明文档,1引言 1.1编写目的 说明编写这份概要设计说明书的目的,指出预期的读者。 1.2背景 a.待开发软件系统的名称; b.列出本项目的任务提出者、开发者、用户。 1.3定义 列出本文件中用到的专门术语的定义和外文首字母组词的原词组。 1.4参考资料 列出有关的参考资料。,3.5 概要设计说明文档,2总体设计 2.1需求规定 说明对本系统的主要的输入输出项目、处理的功能性能要求。包括 2.1.1系统功能 2.1.2系统性能 2.1.2.1精度 2.1.2.2时间特性要求 2.1.2.4可靠性 2.1.2.5灵活性 2.1.3输入输出要求 2.1.4数据管理能力要求 2.1.5故障处理要求 2.1.6其他专门要求,3.5 概要设计说明文档,2.2运行环境 简要地说明对本系统的运行环境的规定。 2.2.1设备 列出运行该软件所需要的硬设备。说明其中的新型设备及其专门功能。 2.2.2支持软件 列出支持软件,包括要用到的操作系统、编译(或汇编)程序、测试支持软件等。 2.2.3接口 说明该系统同其他系统之间的接口、数据通信协议等 2.2.4控制 说明控制该系统的运行的方法和控制信号,并说明这些控制信号的来源。,3.5 概要设计说明文档,2.3基本设计概念和处理流程 说明本系统的基本设计概念和处理流程,尽量使用图表的形式。 2.4结构 给出系统结构总体框图(包括软件、硬件结构框图),说明本系统的各模块的划分,扼要说明每个系统模块的标识符和功能,分层次地给出各模块之间的控制与被控制关系。 2.5功能需求与系统模块的关系 本条用一张矩阵图说明各项功能需求的实现同各模块的分配关系。 系统模块1 系统模块2 系统模块m 功能需求1 功能需求2 功能需求n ,3.5 概要设计说明文档,2.6人工处理过程 说明在本系统的工作过程中不得不包含的人工处理过程。 2.7尚未解决的问题 说明在概要设计过程中尚未解决而设计者认为在系统完成之前必须解决的各个问题。 3接口设计 3.1用户接口 说明将向用户提供的命令和它们的语法结构,以及相应的回答信息。 说明提供给用户操作的硬件控制面板的定义。 3.2外部接口 说明本系统同外界的所有接口的安排包括软件与硬件之间的接口、本系统与各支持系统之间的接口关系。 3.3内部接口 说明本系统之内的各个系统元素之间的接口的安排。,3.5 概要设计说明文档,4运行设计 4.1运行模块组合 说明对系统施加不同的外界运行控制时所引起的各种不同的运行模块组合,说明每种运行所历经的内部模块的支持软件。 4.2运行控制 说明每一种外界的运行控制的方式方法和操作步骤。 4.3运行时间 说明每种运行模块组合将占用各种资源的时间。 5系统数据结构设计 不涉及软件设计可不包含 5.1逻辑结构设计要点 给出本系统内软件所使用的每个数据结构的名称、标识符以及它们之中每个数据项、记录、文卷和系的标识、定义、长度及它们之间的层次的或表格的相互关系。,3.5 概要设计说明文档,5.2物理结构设计要点 给出本系统内软件所使用的每个数据结构中的每个数据项的存储要求,访问方法、存取单位、存取的物理关系、设计考虑和保密条件。 5.3数据结构与程序的关系 说明各个数据结构与访问这些数据结构的各个程序之间的对应关系。 程序1 程序2 程序m 数据结构1 数据结构2 数据结构n ,3.5 概要设计说明文档,6系统出错处理设计 6.1出错信息 用一览表的方式说明每种可能的出错或故障情况出现时,系统输出信息的形式、含意及处理方法。 6.2补救措施 说明故障出现后可能采取的变通措施。包括: a.后备技术 说明准备采用的后备技术,当原始系统数据万一丢失时启用的副本的建立和启动的技术,例如周期性地把磁盘信息记录到磁带上去就是对于磁盘媒体的一种后备技术。,3.5 概要设计说明文档,b.降效技术 说明准备采用的后备技术,使用另一个效率稍低的系统或方法来求得所需结果的某些部分,例如一个自动系统的降效技术可以是手工操作和数据的人工记录。 c.恢复及再启动技术 说明将使用的恢复再启动技术,使软件从故障点恢复执行或使软件从头开始重新运行的方法。 6.3系统维护设计 说明为了系统维护的方便而在程序内部设计中作出的安排,包括在程序中专门安排用于系统的检查与维护的检测点和专用模块。,3.6 PowerDesigner数据库建模,3.6.1 PowerDesigner简介 1989 -在法国发布第一个商用版本AMC*Designor (版本2.0) 1992 -在美国发布第一个商用版本S-Designor 1995 -S-Designor改名为PowerDesigner 1997 -发布PowerDesigner 6.0 2001 12月-发布PowerDesigner 9.5 的最初版本, 并发布升级及维护版本直到2003年 2004 12月-发布版本PowerDesigner 10.0 2005 -发布PowerDesigner 11.0 2007 7月-发布PowerDesigner 12,PowerDesigner与其他工具的比较,3.6 PowerDesigner数据库建模,3.6.2 PowerDesigner12.5 PowerDesigner12.5是一个集所有现代建模技术于一身的完整工具,它集成了强有力的业务建模技术、传统的数据库分析和实际,以及UML对象建模。通过了元数据的管理、冲突分析和真正的企业知识库等功能。 提供了一个完整的企业建模环境,包括了数据库模型设计的全过程。利用可以制作数据流程图、概念数据模型、物理数据模型,可以生成多种客户端开发工具的应用程序。还可为数据仓库制作结构模型,对团队设计模型进行控制。 与许多流行数据库设计软件以及开发软件,如:Visual Studio,Java,Power Builder等相配合使用来缩短开发时间和使系统设计更优化。,3.6 PowerDesigner数据库建模,PowerDesigner是一个功能强大而使用方便的工具集,为新一代数据库应用的建模提供了全面的支持。PowerDesigner提供: 1 需求分析模型(Requirements ModelRQM) 2 企业业务流程模型(Business Process ModelBPM) 3 概念数据模型(Conceptual Data ModelCDM) 4 物理数据模型(Physical Data ModelPDM) 5 对象模型(Object Oriented ModelOOM) 6 信息流动模型(Information Liquidity ModelILM) 7 XML 模型(XML Model) 8 O/R 映射支持(如Hibernate,JDO等),3.6 PowerDesigner数据库建模,PowerDesigner各模型之间的转换关系,3.6 PowerDesigner数据库建模,工作界面,3.6 PowerDesigner数据库建模,3.6.3 概念数据模型 (CDM) 建模 概念数据数据模型(CDM)设计是建模过程的关键阶段,此阶段把现实世界中需要保存的信息抽象成信息世界中的实体(Entity)和关系(Relationship),产生实体关系图(E/R Diagram)。这一阶段可以为高质量的应用提供坚实的基础。 CDM 表现数据库的全部逻辑的结构,与任何的软件或数据储藏结构无关。 一个概念模型经常包括在物理数据库中仍然不实现的数据对象。 它给运行计划或业务活动的数据一个正式表现方式。,3.6 PowerDesigner数据库建模,一、概念数据模型概述 概念数据模型也称信息模型,它以实体联系(Entity-RelationShip,简称E-R)理论为基础,并对这一理论进行了扩充。它从用户的观点出发对信息进行建模,主要用于数据库的概念级设计。 通常人们先将现实世界抽象为概念世界,然后再将概念世界转为机器世界。换句话说,就是先将现实世界中的客观对象抽象为实体(Entity)和联系(Relationship),它并不依赖于具体的计算机系统或某个DBMS系统,这种模型就是我们所说的CDM;然后再将CDM
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年专用:煤仓租赁合同
- 2024互联网游戏开发公司与运营商分成协议
- 2024年度体育赛事LED计分屏采购合同
- 公益日活动小结(12篇)
- 2024年度EPS围挡施工及拆除合同
- 2024天然气运输环境影响评估协议
- 2024年度信息系统安全运维合同-PKISSL基础应用
- 2024年度物流仓储服务合作协议
- 2024年家禽养殖数字化管理系统建设合同
- 2024年幼儿园共建协议
- 2024-2030年组氨酸行业市场现状供需分析及投资评估规划分析研究报告
- 教育信息化教学资源建设规划
- 屠宰场食品安全管理制度
- 部编版(2024秋)语文一年级上册 6 .影子课件
- 2024秋期国家开放大学专科《刑事诉讼法学》一平台在线形考(形考任务一至五)试题及答案
- 基于SICAS模型的区域农产品品牌直播营销策略研究
- 病例讨论英文
- 2024秋期国家开放大学专科《液压与气压传动》一平台在线形考(形考任务+实验报告)试题及答案
- 【课件】植物体的结构层次课件-2024-2025学年人教版生物七年级上册
- 24秋国家开放大学《0-3岁婴幼儿的保育与教育》期末大作业参考答案
- 相对湿度计算公式
评论
0/150
提交评论