软件设计与体系结构教案_第1页
软件设计与体系结构教案_第2页
软件设计与体系结构教案_第3页
软件设计与体系结构教案_第4页
软件设计与体系结构教案_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

1、软件设计与体系结构课程教案第一章 软件工程与软件设计软件工程相关概念软件工程的目标和原则软件的生存期软件开发过程模型1.1 软件工程典型定义:1.软件工程将系统的、规范的、或度量的方法应用于软件的开发、运行和维护过程,以及对上述方法的研究。2.软件工程是用工程、科学、和数学的原则和方法,研制、维护计算机软件的有关技术及管理方法。软件工程是由方法、工具和过程三个要素组成软件工程的目标与原则一、软件工程设计的目标:可修改性 有效性 可靠性可理解性 可维护性 可利用性可适应性 可移植性 可追踪性二、软件设计的原则:抽象 信息隐藏 模块化局部化 一致性 完全性 可验证性1. 2 软件的生存周期需求分析

2、:文本,例如“.应用于将显示用户银行账户的收支余额设计:图表和文本,例如:“.设计将包含类checkingaccount,savingsaccount.”实现:源代码和目标代码,例如,“.测试用例:存款¥44.92/存款¥32.0/取款¥100,结果正确.”维护:修改设计,代码和文本,例如,错误纠正:“当余额不足又试图取款时程序出现异常.”;例如,功能增强:”允许使用pesos进行操作“一、需求分析(回答“做什么?”):定义应用程序必须做什么1.需求分析的难点 : 使用通俗中、清晰折语言来表棕需求 非技术性的 从用户观点出发 将需求组织为逻辑分组 易于访问和改变 需求管理的安排 为了及时更新需

3、求分析必须提前开发的程序 谁、怎样和何时 2.需求举例详细需求2.1输入1)customfootnoter将接收收件人名字的前10 个字符,如下所示:请输入发送者的名字:abcd2)应用程序将以下面的格式接收和中间名字 的首写大字母:请输入发送者中间名字的首写大写字母m3)应用将接收和收件人姓氏的前10个字符,如下所示:请输入发送者的姓氏:xyz4)应用程序将以1)2)和气)的相同方式接收发送者的名字2.2输出5)如果文本少于或者等于60个字符,那么customfootnoter将以下文本输出到控制台-to abcd m.xyz from eric j.braude.(空格的数目和位置由此例指

4、出)否则,可以使用三个部分的首写大写字母,例如:-to a.m.x. form e.j.b.2.3用户界面:省略二、设计(回答“怎样做?”):定义每部分将是什么样和它们将如何协调三、实现(也称为“编码”):编写代码编码技巧: 只根据设计来编码 精确地描述第个方法所完成的操作 在提交编译之前,通达仔细地阅读代码来确定代码的正确性 “ 正确性” 是指定完成所要求的功能 即作者检测过程 每编写一部分代码,就保证这段代码的正确性 1. 首先,只新添加一部位分代码 2. 然后自己对代码进行检查,直到满意为止 3. 编译 4. 对新增加的代码进行测试 四、测试:以测试数据作为输入来执行应用于程序测试类型

5、非正式的开发者测试 由单独的开发者执行; 非正式地记录在他们的笔记中 单元测试 测试单元包括方法、类等 正式地记录 中间测试 在类的集合上测试,但不是在整个应用于程序上进行 系统测试 在整个应用程序上测试 完全记录 测试技巧: 尽早和 经常用地测试 使用极值进行测试 非常小或者非常大的数等 边界值 非法值 改变测试用例 不要在不同的测试中使用相同的测试数据,除非必须这样做 五、维护:修补缺陷和增强功能1.修补缺陷寻找并修正所有与需求文档之间的差异 2.功能增强 引入新的功能,或者改进己有的功能 一、瀑布模型(线性顺序模型)瀑布式模型包含以下活动:软件需求分析 设计 代码生成 测试 维护二、原型

6、模型(cont.) 快速原型验证规格说明验证设计验证编码测试综合测试维护变化的需求验证维护过程开发过程三、旋模型(cont.) 四、迭代模型(cont.)planningrequirementsanalysis & designimplementationdeploymenttestevaluationmanagementenvironmenteach iteration results in an executable release.五、v模型六、x模型七、rup特点1.rup(rational unified process,统一软件开发过程,统一软件过程)是一个面向对象且2.使用用例的

7、好处简明简单易理解 有助于不同模块内容的同步 1.4 软件设计一、.概念:可看做是”对软件将如何被开发出来的一种描述“,得到这种描述的活动或过程。二、重要性:需求的直接体现,为实现 提供直接依据,给出的相应方案,决定最终软件的质量,及早发现软件中的错误减少修复和维护的成本三、软件设计的特征:以问题为基础,解决方案的文档或模型,设计的可变性,可选择性,设计必须是满足约束的最佳方案,设计的演化性四、软件设计的要素:目的描述,设计约束,产品描述,设计原理 ,开发规划,使用描述五、软件设计过程、目标及任务软件设计基本概念(重点) 自顶向下,逐步细化 软件(总体)结构设计 程序结构 结构图 模块化 抽象

8、化 信息隐蔽软件设计是后续开发步骤及软件维护工作的基础。如果没有设计,只能建立一个不稳定的系统结构六、模块化软件系统的模块化是指整个软件被划分成若干单独命名和可编址的部分,称之为模块。这些模块可以被组装起来以满足整个问题的需求。把问题子问题的分解与软件开发中的系统子系统或系统模块对应起来,就能够把一个大而复杂的软件系统划分成易于理解的比较单纯的模块结构。模块划分的目的: 进行功能分解,把复杂的大的功能划分成简单的小的子功能,尽量降低每个模块的成本。尽量使每个模块间的接口不能太多,太多会使接口成本增加。兼顾二者可取得最佳的划分状态,确保软件总成本最低。七、软件设计的方法1. 面向过程的开发方法2

9、. 面向对象的方法3. 面向数据的方法1.5 软件体系结构一、软件体系结构的定义:1.软件包体系结构是软件系统的结构,包含软件元素、软件上元素外部可见的属性以及这些软件元素之间的关系。2.软件体系结构是软件系统的基本组织,包含构件,构件之间、构件与环境之间的关系, 以及相关的设计与演化原则二、软件体系结构的发展历程:三、软件体系结构的内容:软件体系结构的描述,软件体系结构的设计方法,软件体系结构的分析方法,软件体系结构的复用四、软件体系结构、软件架构,软件框架软件体系结构与软件架构的中文翻译都是英文software architecture。两者都使用一样的定义,如ieee的“一个系统的基础组

10、织,包含各个构件、构件互相之间与环境的关系,还有指导其设计和演化的原则。” 在软件开发者和软件应用者来说,倾向于使用“软件架构”,在一定程度上接受“软件体系结构” ,对于学术界,普遍使用“软件体系结构” “软件体系结构”。首先,体系结构的中文定义完全符合ieee等的定义。强调整体与部分,部分与部分的关系;研究系统构成的方法学;提倡多角度研究系统。其次,从学科地位讲,作为一门独立软件子学科,和硬件学科(计算机组织与体系结构)直接对应。从工程实践需要看,软件架构更能体现系统构成与相关技术。rup过程或软件生产线关注的软件架构并不注重原理及表示,而是由结构和技术相结合的形成框架。对于一个应用的软件框

11、架通常称为应用程序框架(application framework)。框架是为了构建完整的应用而必须详细阐述的一种程序结构johnson-88。框架在rup和软件产品线开发过程中是一个非常重要的过程。rup中框架是细化阶段的一个制品,软件产品生产线中是一组应用共享的程序框架。 如果你强调方法论,应使用软件体系结构。强调软件开发实践,应使用软件架构。 1.6 设计模式一、达到设计目标的方法: 可重用性、灵活性、可维护性 重用灵活的设计 使代码处于通用层上 最小化与其他类的相关性 健壮性 重用可靠的设计 重用健壮的部分 高效性和正确性 模块化设计 重用可信任的部分 二、设计模式的概念设计模式是类的

12、联合体以及与之相伴的算法,这些算法能够实现共同的设计目标。设计模式表达了一种思想而不仅仅是因定的联合体,相伴的算法表示模式的基本操作三、设计模式类型创建型:以灵活或者约束的方式创建对象结构型中:代表相关对象的集合,使用统一处理接口来表示诸如树这样的数据结构行为型:在对象集合中捕获行为四、描述模式的两种观点:静态:用类模型来说明,显示器了所包含的类以及它们的相互关系动态:用动态交互图来说明,将类的功能按照特定的顺序执行五、模式使用的三个角色模式的应用:设计模式本身的应用客户:使用此应用的代码建立:初始化或者改变设计模式应用的代码(”建立角色“)六、设计模式的形式:委托:通过一个类把功能委托给一个

13、抽象类的方法递归:模式的某部分在本质上也使用了自身第三章软件设计基础3.1 软件设计的基本概念一、抽象与逐步求精1. 过程的抽象在软件工程中,从系统定义到实现,每进展一步都可以看做是对软件解决方法的抽象化过程的一次细化。 在软件需求分析阶段,用“问题所处环境的为大家所熟悉的术语”来描述软件的解决方法。 在从概要设计到详细设计的过程中,抽象化的层次逐次降低。当产生源程序时到达最低抽象层次。2. 数据抽象在不同层次上描述数据对象的细节,定义与该数据对象相关的操作。例如,在cad软件中,定义一个叫做drawing的数据对象。可将drawing规定为一个抽象数据类型,定义它的内部细节为:3.逐步求精:

14、针对某个功能的宏观描述用.逐步求精的方法不断地分解,.逐步确立过程细节,直至该功能用程序语言描述的算法实现为止。二、模块化与信息隐藏1. 软件系统的模块化是指整个软件被划分成若干单独命名和可编址的部分,称之为模块。把问题子问题的分解与软件开发中的系统子系统或系统模块对应起来,就能够把一个大而复杂的软件系统划分成易于理解的比较单纯的模块结构。2.模块划分的目的: 进行功能分解,把复杂的大的功能划分成简单的小的子功能,尽量降低每个模块的成本。尽量使每个模块间的接口不能太多,太多会使接口成本增加。兼顾二者可取得最佳的划分状态,确保软件总成本最低。3.信息隐蔽由 parnas 方法提倡的信息隐蔽是指,

15、每个模块的实现细节对于其它模块来说是隐蔽的。也就是说,模块中所包含的信息(包括数据和过程)不允许其它不需要这些信息的模块使用。三、内聚与耦合1.耦合是模块之间的互相连接的紧密程度的度量(1)非直接耦合(nondirect coupling)两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的。(2)非直接耦合的模块独立性最强。(3)数据耦合 (data coupling)一个模块访问另一个模块时,彼此之间是通过简单数据参数 (不是控制参数、公共数据结构或外部变量) 来交换输入、输出信息的。(4)标记耦合 (stamp coupling)一组模块通过参数表传递记录信息,就

16、是标记耦合。这个记录是某一数据结构的子结构,而不是简单变量。(5)外部耦合(external coupling)一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递(6)公共耦合(common coupling)若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。(7)内容耦合 (content coupling)如果发生下列情形,两个模块之间就发生了内容耦合 (a) 一个模块直接访问另一个模块的内部数据; (b) 一个模块不通过正常入口转到另一模块内部; (c) 两个模块有一部分程序代

17、码重迭(只可能出现在汇编语言中); (d) 一个模块有多个入口。2. 内聚是模块功能强度(一个模块内部各个元素彼此结合的紧密程度)的度量。(1)功能内聚 (functional cohesion)一个模块中各个部分都是完成某一具体功能必不可少的组成部分,或者说该模块中所有部分都是为了完成一项具体功能而协同工作,紧密联系,不可分割的。则称该模块为功能内聚模块。(2)信息内聚 (informational cohesion) 信息内聚模块可以看成是多个功能内聚模块的组合,并且达到信息的隐蔽。即把某个数据结构、资源或设备隐蔽在一个模块内,不为别的模块所知晓。(3)通信内聚 (communicatio

18、n cohesion)如果一个模块内各功能部分都使用了相同的输入数据,或产生了相同的输出数据,则称之为通信内聚模块。通常,通信内聚模块是通过数据流图来定义的(4)过程内聚 (procedural cohesion) 使用流程图做为工具设计程序时,把流程图中的某一部分划出组成模块,就得到过程内聚模块。例如,把流程图中的循环部分、判定部分、计算部分分成三个模块,这三个模块都是过程内聚模块。(5)时间内聚 (classical cohesion)时间内聚又称为经典内聚。这种模块大多为多功能模块,但模块的各个功能的执行与时间有关,通常要求所有功能必须在同一时间段内执行。例如初始化模块和终止模块。(6)

19、巧合内聚 (偶然内聚)。当模块内各部分之间没有联系,或者即使有联系,这种联系也很松散,则称这种模块为巧合内聚模块,它是内聚程度最低的模块。32 软件设计过程一、软件设计的一般过程数据词典数据流图实体关系图状态转换图加工规格说明控制规格说明数据对象描述过程设计接口设计体系结构设计(总体)数据设计软件设计过程有:数据设计:将实体 关系图中描述的对象和关系,以及数据词典中描述的详细数据内容转化为数据结构的定义。总体结构(系统结构)设计:定义软件系统各主要成份之间的关系。 过程设计:把结构成份转换成软件的过程性描述。接口设计:接口设计根据数据流图定义软件内部各成份之间、软件与其它协同系统之间及软件与用

20、户之间的交互机制。二、软件设计的主要活动1.软件设计计划2.体系结构设计3.界面设计4.模块/子系统设计5.过程/算法设计6.数据模型设计33 软件设计的质量一、软件设计的质量要素,可用来对软件设计的质量进行综合评价1结构良好2充分性3可行性4简单性5实用性6灵活性7健壮性8可移植性9可复用性10标准化二、软件设计对最终软件产品质量产生的影响包括:1正确性2可靠性3运行效率4可移植性5可维护性6.可复用性三、软件设计对软件开发过程可能产生的影响包括:1.开发效率2.交会时间3.风险管理4.资源使用5.成本6.人员培训7.合法性34 软件体系结构设计一、软件设计体系结构设计方法概述1.软件体系结

21、构的多视图建军模(1)逻辑视图(2)进程视图(3)开发视图(4)物理视图(5)场景2.基于评估与转换的软件体系结构设计(1)基于场景的评估(2)仿真(3)数学建模(4)基于经验的推理3.模式驱动的软件体系结构设计4.领域特定的软件体系结构设计5.软件产品线方法二、软件体系结构设计的步骤1.开发软件顶层架构2.搜索并选取可用设计资产3.设计技术支撑方案4.确定设计元素5.开发软件部署模型6.设计并发机制7.构建软件体系结构模型8.评审软件体系结构模型35高可信软件设计一、可信软件的特点1.可靠性2.可靠安全性。(3)保密安全性(4)可生存性(5)实时性二、容错设计1.恢复块技术2.n-版本编程三

22、、软件失效模式和影响分析1.软件失效:泛指程序在运行中丧失了全部或部分功能、出现偏离预期的正常状态的事件2.软件失效模式:指软件失效的不同类型3.软件失效的影响:指软件失效模式对软件系统的运行、功能或状态等造成的后果四、软件故障树分析五、形式化方法六、净室方法净室软件工程的要点包括:1.在统计质量控制下的增量式开发。2.基于数原理的软件开发基于统计原理的软件测试七、嵌入式和实时软件设计1.嵌入式软件具有以下主要特征(1)一般用于间一任务(2)有多种类型的处理器体系结构支持(3)资源约束更加严格(4)需要更高的可靠性和安全性(5)对反应性和实时性要求很高(6)通常固化存储2.嵌入式系统中的软件一

23、般包括以下组成部分:(1)初始化引导代码(2)板级支持包(3)操作系统(4)通信协议(5)图形用户界面(6)应用软件3.嵌入式软件设计方法(1)无操作系统的嵌入式软件设计(2)有操作系统的嵌入式软件设计36软件设计规格说明37软件设计评审第四章 面向对象的软件设计方法41 基于uml的分析与设计过程一、用例分析与设计二、概念模型与顶层架构设计三、用户界面设计四、数据模型设计五、设计精化六、类设计七、部署模型设计42 用例分析与设计一、确定用例二、生成用例图三、用例设计描述43概念模型和顶层架构设计一、概念模型设计1.关键概念的来源(1)业务需求描述(2)业务领域中的相关规范、标准、术语定义(3

24、)反映业务领域知识的既入经验2.三种分析类:(1)边界类(2)控制类(3)实体类二、顶层架构设计顶层架构的主要目的是为后续分析和设计活动建立一种结构和划分, 顶层架构的设计可以把体系结构设计方法与上述概念模型得到的结果结合起来考虑,利用一定的体系结构模式对概念模型中的相关元素进行组织,同时需要考虑目标软件系统与其他作为参与者的外部系统之间的联系和交互方式。用uml包图表示顶层架构。44 用户界面设计一、用户界面设计设计原则1:用户界面适合于软件的功能设计原则2:容易理解。设计原则3:风格一致 设计原则4:及时反馈信息 设计原则5:出错处理。设计原则6:适应各种用户 设计原则7:国际化 设计原则

25、8:个性化 设计原则9:合理的布局 设计原则10:和谐的色彩 二、用户界面设计的流程45 数据模型设计一、数据模型设计的主要任务1.数据结构设计2.数据库设计3.数据文件设计二、持久数据模型设计主要包括以下几个步步骤1.确定设计模型中需要持久保存的类的对象及其属性,其中实体类是主要关注对象2.确定持久存储的数据之间的组织方式3.确定数据模型中的操作行为4.进一步优化持久数据操作的性能46 设计精化一、精化软件架构应尊守的原则:1.避免包间的循环依赖洋系2.在层次结构中,们于较低层次的通用包不应当依赖于较高层次中的专用包3.在层次结构中,较高层次的包可以依赖于较低层次的包,介就尽量在相邻的层次间

26、发生4.如果针对某些子系统专门划分了接口包和实现包,那么,其他与该子系统相关的包只能依赖于接口包,不能依赖于实现包二、调整软件构成类1.增加辅助类2.合并相互通信频繁的类3.分拆规模过大的类三、精化交互模型1.要考虑软件架构和组成类被调整后对交互模型会产生哪些影响,新出现的对象或拆分后的对象如佑参与交互过程,在其中起什么样作用2.对象在交互过程中的消息传递需要哪些参数和返回值3.交互过程是否需要细化,例如增加必要的消息,或对局部引用一个更加具体的交互图。四、精化类之间的关系1.根据这些连接的语义强度将它们 精确地判定为uml的依赖、关联、聚合或构成关系之一。2.确定连接的方向及参与连接的类对象

27、之间的数量对应关系3.根据软件复用的要求及软件结构简洁化、清晰化的要求,优化类之间的关系。47 类设计一、精化类的属性与操作1.原则:尽量缩小作用范围,每个类公公开那些为直接响应消息所必需的操作。原则上上,属性不宜分开。2.为了实现类之间的关联、聚合和构成关系,可能需要在类中设置相应属性。3.为了提高运行机制效效率,有进需要在对象的生存同期中保存计算生成的一些中间结果,以免重复计算,用空间换时间。此时可以引入导出属性作为类的私有属性。4.可能需要针对每个类的特征考虑是否添加某些操作,如对象创建,对象删除,对象比较,对象复制二、类的行为模型设计类的行为可以在两个层次上用不同方式建模1.针对整个类

28、使用uml状态图描述其行为2.会对类中某些重要的方法,用uml活动图描述其执行过程或步骤48部署模型设计部署模型设计一般需要考虑以下几点:1. 最终开发完成的软件包括哪些制品形式2. 软件运行环境在哪些类型的物理节点3. 不同节点之间的连接和通信形式是什么4. 软件制品应该如何在物理节点上进行部署,即它们的部署映射关系。第五章 面向数据流的软件设计方法5.1数据流图和数据字典一、数据流图1.数据流图概述:数据流图是结构化分析方法中使用的工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。数据流图英文缩写dfd(data flow di

29、agram)它是描绘信息流和数据从输入移动到输出的过程中所经受的变换。数据流图从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程。2.数据流图的基本图形元素:(1)数据流(2)加工(处理)(3)文件(数据存储)(4)数据池(数据源或终点)3.数据流图的定义数据流程图表示求解某一问题的数据通路。同时规定了处理的主要阶段和所用的各种数据媒体。数据流程图包括:a指明数据存在的数据符号,这些数据符号也可指明该数据所使用的媒体;b指明对数据执行的处理的处理符号,这些符号也可指明该处理所用到的机器功能;c指明几个处理和(或)数据媒体之间的数据流的流线符号;d便于读、写数据流程图的特殊

30、符号。在处理符号的前后都应是数据符号。数据流程图以数据符号开始和结束(除94规定的特殊符号外)4.数据流图dfd主要图形元素数据流图有四种基本图形符号:-:箭头,表示数据流; :圆或椭圆,表示加工; = :双杠,表示数据存储; :方框,表示数据的源点或终点。(1)数据流图-数据流数据流是一组数据。在数据流图中数据流用带箭头的线表示,在其线旁标注数据流名。在数据流图中应该描绘所有可能的数据流向,而不应该描绘出现某个数据流的条件。加工(处理)在数据流图中加工用圆圈表示,在圆圈内写上加工名。一个处理框可以代表一系列程序、单个程序或者程序的一个模块。数据流图(2)数据流图加工(处理)在数据流图中加工用

31、圆圈表示,在圆圈内写上加工名。一个处理框可以代表一系列程序、单个程序或者程序的一个模块。(3)数据流图文件(数据存储)是按照某种规则组织起来的、长度不限的数据。在数据流图中文件用一直线表示,在线段旁注上文件名。一个数据存储也并不等同于一个文件,它可以表示一个文件、文件的一部分、数据库的元素或记录的一部分等;(4)数据流图数据池(源点和终点)在数据流图中用方框表示,在框内写上相应的名称。(5)数据流图数据流与加工的关系数据流图数据流图5.数据流图dfd画法(1)确定系统的输入输出由于系统究竟包括哪些功能可能一时难于弄清楚,可使范围尽量大一些,把可能有的内容全部都包括进去。此时,应该向用户了解“系

32、统从外界接受什么数据”、“系统向外界送出什么数据”等信息,然后,根据用户的答复画出数据流图的外围。(2)由外向里画系统的顶层数据流图首先,将系统的输人数据和输出数据用一连串的加工连接起来。在数据流的值发生变化的地方就是一个加工。接着,给各个加工命名。然后,给加工之间的数据命名。最后,给文件命名。(3)自顶向下逐层分解,绘出分层数据流图对于大型的系统,为了控制复杂性,便于理解,需要采用自顶向下逐层分解的方法进行,即用分层的方法将一个数据流图分解成几个数据流图来分别表示。6.数据流图举例说明dfd画法步骤(1)首先画系统的输入输出,即先画顶层数据流图。顶层流图只包含一个加工,用以表示被开发的系统,

33、然后考虑该系统有哪些输入数据、输出数据流。顶层图的作用在于表明被开发系统的范围以及它和周围环境的数据交换关系。下图为飞机机票预订系统的顶层图。数据流图(2)画系统内部,即画下层数据流图。不再分解的加工称为基本加工。一般将层号从0开始编号,采用自顶向下,由外向内的原则。画0层数据流图时,分解顶层流图的系统为若干子系统,决定每个子系统间的数据接口和活动关系。例如,在上面的机票预订系统按功能可分成两部分,一部分为旅行社预订机票,另一部分为旅客取票,两部分通过机票文件的数据存储联系起来,0层数据流图如图3-4。 (3)注意事项。 命名。不论数据流、数据存储还是加工,合适的命名使人们易于理解其含义。 画

34、数据流而不是控制流。数据流反映系统“做什么”,不反映“如何做”,因此箭头上的数据流名称只能是名词或名词短语,整个图中不反映加工的执行顺序。 一般不画物质流。数据流反映能用计算机处理的数据,并不是实物,因此对目标系统的数据流图一般不要画物质流。 每个加工至少有一个输入数据流和一个输出数据流,反映出此加工数据的来源与加工的结果。 编号。如果一张数据流图中的某个加工分解成另一张数据流图时,则上层图为父图,直接下层图为子图。子图及其所有的加工都应编号。 父图与子图的平衡。子图的输入输出数据流同父图相应加工的输入输出数据流必须一致,此即父图与子图的平衡。 局部数据存储。当某层数据流图中的数据存储不是父图

35、中相应加工的外部接口,而只是本图中某些加工之间的数据接口,则称这些数据存储为局部数据存储。 提高数据流图的易懂性。注意合理分解,要把一个加工分解成几个功能相对独立的子加工,这样可以减少加工之间输入、输出数据流的数目,增加数据流图的可理解性。数据流图7.数据流图dfd分层为了表达数据处理过程的数据加工情况,需要采用层次结构的数据流图。按照系统的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系,能清楚地表达和容易理解整个系统在多层数据流图中,顶层流图仅包含一个加工,它代表被开发系统。它的输入流是该系统的输入数据,输出流是系统所输出数据底层流图是指其加工不需再做分解的数据流图,它处在最底层中

36、间层流图则表示对其上层父图的细化。它的每一加工可能继续细化,形成子图。8.数据流图绘制dfd的原则(1)数据流图上所有图形符号只限于前述四种基本图形元素(2)数据流图的主图必须包括前述四种基本元素,缺一不可(3)数据流图的主图上的数据流必须封闭在外部实体之间(4)每个加工至少有一个输入数据流和一个输出数据流(5)在数据流图中,需按层给加工框编号。编号表明该加工所处层次及上下层的亲子关系(6)规定任何一个数据流子图必须与它上一层的一个加工对应,两者的输入数据流和输出数据流必须一致。此即父图与子图的平衡(7)图上每个元素都必须有名字,不能重复(8)数据流图中不可夹带控制流(9)初画时可以忽略琐碎的

37、细节,以集中精力于主要数据流9.数据流图流程图的实例销售管理系统某企业销售管理系统的功能为: (1)接受顾客的订单,检验订单,若库存有货,进行供货处理,即修改库存,给仓库开备货单,并且将订单留底;若库存量不足,将缺货订单登入缺货记录。 (2)根据缺货记录进行缺货统计,将缺货通知单发给采购部门,以便采购。 (3)根据采购部门发来的进货通知单处理进货,即修改库存,并从缺货记录中取出缺货订单进行供货处理。 (4)根据留底的订单进行销售统计,打印统计表给经理。 根据上述的功能描述,画出如下的数据流程图。数据流图二、数据字典1.数据字典(data dictionary)的定义:是一种用户可以访问的记录数

38、据库和应用程序元数据的目录。主动数据字典是指在对数据库或应用程序结构进行修改时,其内容可以由 dbms自动更新的数据字典。被动数据字典是指修改时必须手工更新其内容的数据字典。数据字典是一个预留空间,一个数据库,这是用来储存信息数据库本身。2.数据字典可能包含的信息:数据库设计资料储存的sql程序用户权限用户统计数据库的过程中的信息数据库增长统计数据库性能统计数据字典则是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果.数据字典通常包括数据项数据结构数据流数据存储和处理过程五个部分.数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合.3.数据字典

39、的组成:(2)数据项(2)数据结构(3)数据流(4)数据存储(5)处理过程数据字典数据库的重要部分是数据字典。它存放有数据库所用的有关信息,对用户来说是一组只读的表。数据4. 字典内容包括:1、数据库中所有模式对象的信息,如表、视图、簇、及索引等。2、分配多少空间,当前使用了多少空间等。3、列的缺省值。4、约束信息的完整性。5、用户的名字。6、用户及角色被授予的权限。7、用户访问或使用的审计信息。8、其它产生的数据库信息。数据库数据字典是一组表和视图结构。它们存放在system表空间中。数据库数据字典不仅是每个数据库的中心。而且对每个用户也是非常重要的信息。用户可以用sql 语句访问数据库数据

40、字典。关于数据的信息集合,是一种用户可以访问的记录数据库和应用程序元数据的目录,是对数据库内表信息的物理与逻辑的说明数据字典-数据库数据字典是一组表和视图结构。它们存放在system表空间中。数据库数据字典不仅是每个数据库的中心。而且对每个用户也是非常重要的信息。用户可以用sql 语句访问数据库数据字典数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合.5.2实体关系图一、解释:实体关系图简记er图是指以实体、关系、属性三个基本概括数据的基本结构,从而描述静态数据结构的概念模式。二、描述:e-r图为实体联系图,提供了表示实体型、司性和联系的方法,用来描述现实世界的概念

41、模型 实体型(entity):用矩形表示,矩形框内写明实体名;比如学生张三丰、学生李寻欢都是实体。 属性(attribute):用椭圆形表示,并用无向边将其与相应的实体连接起来;比如学生的姓名、学号、性别、都是属性。 联系(relationship):用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1 : 1,1 : n或m : n)就是指存在的三种关系(一对一,一对多,多对多)。 比如老师给学生授课存在授课关系,学生选课存在选课关系。 三、转换为关系模式的原则(1)一个实体转化为一个关系模式。实体属性就是关系的属性,实体的码就是关系的码。 (2

42、)、一个1:1联系可以转化为一个独立的关系模式,也可以与任意一端所对应的关系合并。 (3)一个1:n联系可以转化为一个独立的关系模式,也可以与任意n端所对应的关系合并。 (4)一个m:n联系转化为一个独立的关系模式。 (5)三个或三个以上实体间的多元联系可以转换为一个关系模式。 (6)具有相同码的关系模式可以合并。5.3面向数据流的分析过程一、创建数据流模型1.创建顶级数据流图,其中只含有一个代表目标软件系统整体处理功能的转换,根据软件系统与外部环境的关系确定顶级数据流图中的外部实体以及它们与软件系统之间的数据流。2.对用记需求的文字描述进行语法分析,其中的名词和名词短语构成潜在的外部实体,数

43、据中数据流,动词构成潜在的处理功能。结合分析人员对问题域和用户需求的理解,确定软件系统的主要功能以及它们之间的数据库流。3.采用通常的功能分解方法,按照“强内聚,低耦合”原则逐个对处理功能进行精化;与此同时逐步完成对数据流的精化,并针对被精化的处理功能生成下一级数据流图。4.在精化过程中必须维持各级数据流图的平衡5.精化过程应当适可而止,避免涉及软件设计细节。二、过程规格说明对于数据流图中不再分解的处理功能,分析人没要借助结构化的自然语言对其功能进行精确,简洁的描述。5.4面向数据流的分析过程一、 面向数据流的设计方法面向数据流的设计是以需求分析阶段产生的数据流图为基础,按一定的步骤映射成软件

44、结构,因此“又称结构化设计(structured design,简称sd)。该方法由美国ibm公司l.constantine和e.yourdon等人于1974年提出,与结构化分析(sa)衔接,构成了完整的结构化分析与设计技术,是目前使用最广泛的软件设计方法之一。二、 数据流的类型要把数据流图(dfd)转化为软件结构,首先必须研究dfd的类型。各种软件系统,不论dfd如何庞大和复杂,一般可分为变换型和事务型。1. 变换型数据流图变换型的dfd是由输入、变换和输出组成,如图4-6 变换型数据处理的工作过程一般分为三步:取得数据、变换数据和给出数据,这三步体现了变换型dfd的基本思想。变换是系统的主加工,变换输入端的数据

温馨提示

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

评论

0/150

提交评论