欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    软件工程的概要设计.ppt

    • 资源ID:6027931       资源大小:3.82MB        全文页数:118页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    软件工程的概要设计.ppt

    软件工程,第三章软件项目的概要设计,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需求规定 说明对本系统的主要的输入输出项目、处理的功能性能要求。包括 系统功能 系统性能 精度 时间特性要求 可靠性 灵活性 输入输出要求 数据管理能力要求 故障处理要求 其他专门要求,3.5 概要设计说明文档,2.2运行环境 简要地说明对本系统的运行环境的规定。设备 列出运行该软件所需要的硬设备。说明其中的新型设备及其专门功能。支持软件 列出支持软件,包括要用到的操作系统、编译(或汇编)程序、测试支持软件等。接口 说明该系统同其他系统之间的接口、数据通信协议等 控制 说明控制该系统的运行的方法和控制信号,并说明这些控制信号的来源。,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.6PowerDesigner数据库建模,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.6PowerDesigner数据库建模,3.6.2 PowerDesigner12.5PowerDesigner12.5是一个集所有现代建模技术于一身的完整工具,它集成了强有力的业务建模技术、传统的数据库分析和实际,以及UML对象建模。通过了元数据的管理、冲突分析和真正的企业知识库等功能。提供了一个完整的企业建模环境,包括了数据库模型设计的全过程。利用可以制作数据流程图、概念数据模型、物理数据模型,可以生成多种客户端开发工具的应用程序。还可为数据仓库制作结构模型,对团队设计模型进行控制。与许多流行数据库设计软件以及开发软件,如:Visual Studio,Java,Power Builder等相配合使用来缩短开发时间和使系统设计更优化。,3.6PowerDesigner数据库建模,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.6PowerDesigner数据库建模,PowerDesigner各模型之间的转换关系,3.6PowerDesigner数据库建模,工作界面,3.6PowerDesigner数据库建模,3.6.3 概念数据模型(CDM)建模 概念数据数据模型(CDM)设计是建模过程的关键阶段,此阶段把现实世界中需要保存的信息抽象成信息世界中的实体(Entity)和关系(Relationship),产生实体关系图(E/R Diagram)。这一阶段可以为高质量的应用提供坚实的基础。CDM 表现数据库的全部逻辑的结构,与任何的软件或数据储藏结构无关。一个概念模型经常包括在物理数据库中仍然不实现的数据对象。它给运行计划或业务活动的数据一个正式表现方式。,3.6PowerDesigner数据库建模,一、概念数据模型概述概念数据模型也称信息模型,它以实体联系(Entity-RelationShip,简称E-R)理论为基础,并对这一理论进行了扩充。它从用户的观点出发对信息进行建模,主要用于数据库的概念级设计。通常人们先将现实世界抽象为概念世界,然后再将概念世界转为机器世界。换句话说,就是先将现实世界中的客观对象抽象为实体(Entity)和联系(Relationship),它并不依赖于具体的计算机系统或某个DBMS系统,这种模型就是我们所说的CDM;然后再将CDM转换为计算机上某个DBMS所支持的数据模型,这样的模型就是物理数据模型,即PDM。,3.6PowerDesigner数据库建模,实体、属性及标识符的表达,3.6PowerDesigner数据库建模,二、建立实体,3.6PowerDesigner数据库建模,选择File-New,弹出如图所示对话框,选择CDM模型(即概念数据模型)建立模型。,3.6PowerDesigner数据库建模,创建新实体,3.6PowerDesigner数据库建模,输入实体的名称、代码、描述等信息,3.6PowerDesigner数据库建模,添加实体属性,3.6PowerDesigner数据库建模,3.6PowerDesigner数据库建模,实体属性的属性对话框,3.6PowerDesigner数据库建模,3.6PowerDesigner数据库建模,设置标识符:标识符是实体中一个或多个属性的集合,可用来唯一标识实体中的一个实例。要强调的是,CDM中的标识符等价于PDM中的主键或候选键。每个实体都必须至少有一个标识符。如果实体只有一个标识符,则它为实体的主标识符。如果实体有多个标识符,则其中一个被指定为主标识符,其余的标识符就是次标识符了。,3.6PowerDesigner数据库建模,3.6PowerDesigner数据库建模,3.6PowerDesigner数据库建模,在实体中添加数据项,3.6PowerDesigner数据库建模,Add a DataItem 与 Reuse a DataItem的区别在于:Add a DataItem 情况下,选择一个已经存在的数据项,系统会自动复制所选择的数据项。如果您设置了UniqueCode选项,那系统在复制过程中,新数据项的Code会自动生成一个唯一的号码,否则与所选择的数据项完全一致。Reuse a DataItem情况下,只引用不新增,就是引用那些已经存在的数据项,作为新实体的数据项。,3.6PowerDesigner数据库建模,添加关系,3.6PowerDesigner数据库建模,mandatory(强制性联系)联系是否具有强制性,指的是实体间是不是一定会出现这种联系;或者换句话说,当我们在谈及一个联系的应用场景的时候,联系对应的那两个实体型的实体实例的个数可不可能为零。比如:“教师-学生”联系,这个联系首先是一个多对多联系,因为每个老师可以教多个学生,每个学生也都有多个老师来负责他们的学业。同时,这个联系对教师和学生都是强制性的,也就是说,不存在任何一个老师,他不负责任何一个学生的教学;也不存在任何一个学生,他没有任何一个任课老师。,3.6PowerDesigner数据库建模,添加关联(Association)association就是实体型的一种特例,用来在建模的时候更确切的表达实体间的关联信息。比如:录音带、顾客、商店三个实体型在租借录音带这个场景上发生关联,然后把租借定义为上述三个实体型之间的association的例子,非常确切。在我们的学校模型里,我定义了家访做为老师和学生实体型中间的一个association。,3.6PowerDesigner数据库建模,3.6PowerDesigner数据库建模,生成PDM:工具-Generate Physical Data Model,3.6PowerDesigner数据库建模,3.6PowerDesigner数据库建模,Click to edit company slogan.,Thank You!,

    注意事项

    本文(软件工程的概要设计.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开