软件设计概要讲义_第1页
软件设计概要讲义_第2页
软件设计概要讲义_第3页
软件设计概要讲义_第4页
软件设计概要讲义_第5页
已阅读5页,还剩78页未读 继续免费阅读

下载本文档

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

文档简介

第四章概要设计1一、软件件设计的的目标和和任务1、目标软件设计计的目标标是根据据用信息息域常用用的表示示方法把把软件需需求,功能和性性能等需需求规格格说明书书中计算算机语言言描述的的用户的的需求完完全地翻翻译成计计算机程程序设计计语言能能看懂的的东西。。数据设计计侧重于数数据结构构的定义义,就是是把需求求分析里里面的层层次方框框图或warnier图表示的的数据结结构以及及参考数数据字典典里面的的内容从从程序设设计角度度上看怎怎样设计计数据结结构更合合理。2一、软件件设计的的目标和和任务1、目标系统结构构设计定义软件件系统各各主要成成份之间间的关系系。过程设计计。把结构成成份转换换成软件件的过程程性描述述。3开发阶段段的信息息流把需求翻翻译成文文档452、软件设设计的任任务概要设计计(系统设计计),将软件件需求转转化为数数据结构构和软件件的系统统结构。。概要设计计由技术术总监,,部门经经理和项项目经理理来做的的,有可可能会加加一两个个核心程程序员。。一、软件件设计的的目标和和任务62、软件设设计的任任务详细设计计(过程设计计),通过对对结构表表示进行行细化,,得到软软件的详详细的数数据结构构和算法法。一、软件件设计的的目标和和任务78具体设计计过程设计阶段高层设计阶段架构设计用户界面设计数据库设计模块设计实现与测试需求开发概要设计详细设计9角色名称主要职责项目总监负责审批设计的相关文档,在公司级别协调设计过程中需要的技术支持项目经理负责分配设计任务,追踪设计阶段进度,在项目组内协调设计过程中所需资源,参与设计文档的同行评审系统分析员完成相关的设计任务,编写设计文档,修改设计评审中发现的问题项目组开发人员代表参与设计文档的同行评审其他项目经理参与设计文档的同行评审其他项目系统分析员参与设计文档的同行评审质量保证员检查设计过程及设计阶段产生的文档,跟踪发现的问题的解决情况10软件设计计过程1、制定规规范在进入软软件开发发阶段之之初,首首先应为为软件开开发组制制定在设设计时应应该共同同遵守的的标准,,以便协协调组内内各成员员的工作作。阅读和理理解软件件需求说说明书,,确认用用户要求求能否实实现,明明确实现现的条件件,从而而确定设设计的目目标,以以及它们们的优先先顺序。。根据目标标确定最最合适的的设计方方法。规定设计计文档的的编制标标准。规定编码码的信息息形式,,与硬件件,操作作系统的的接口规规约,112.软件系统统结构的的总体设设计采用某种种设计方方法,将将系统按按功能划划分成模模块的层层次结构构确定每个个模块的的功能。。建立与已已确定的的软件需需求的对对应关系系确定模块块间的调调用关系系确定模块块间的接接口评估模块块划分的的质量软件设计计过程123.处理方式式设计确定实现现系统功功能需求求所必需需的算法法,评估估算法的的性能。。确定满足足系统性性能需求求所必需需的算法法和模块块间的控控制方式式。周转时间间响应时间间吞吐量精度确定外部部信号的的接收发发送形式式。软件设计计过程134.数据结构构设计确定软件件涉及的的文件系系统的结结构以及及数据库库的模式式、子模模式,进进行数据据完整性性和安全全性的设设计。确定输入入,输出出文件的的详细的的数据结结构。结合算法法设计,,确定算算法所必必需的逻逻辑数据据结构及及其操作作。确定对逻逻辑数据据结构所所必需的的那些操操作的程程序模块块(软件包)软件设计计过程14限制和确确定各个个数据设设计决策策的影响响范围若需要与与操作系系统或调调度程序序接口所所必须的的控制表表等数据据时,确确定其详详细的数数据结构构和使用用规则数据的保保护性设设计防卫性设设计:在在软件设设计中就就插入自自动检错错,报错错和纠错错的功能能一致性设设计:保证软件件运行过过程中所所使用的的数据的的类型和和取值范范围不变变在并发处处理过程程中使用用封锁和和解除封封锁机制制保持数数据不被被破坏冗余性设设计:针针对同一一问题,,由两个个开发者者采用不不同的程程序设计计风格不不同的算算法设计计软件,,当两者者运行结结果之差差不在允允许范围围内时,,利用检检错系统统予以纠纠正,或或使用表表决技术术决定一一个正确确结果。。15数据库设设计数据库设计设计准备逻辑设计物理设计安全性设计撰写文档保护性设计设计优化设计评审迭代16数据库设设计举例例说明用户角色权限1-n1-n所属平台部门或岗位人员角色权限岗位角色对应角色权限对应人员角色对应人员权限对应(平台)人员平台对应人员岗位授权业务范围具体业务人员岗位对应灵活权限分配改变以前业务绑定人的模式17数据库设设计(续续)185.可靠性设设计可靠性设设计也叫叫做质量量设计在运行过过程中,,为了适适应环境境的变化化和用户户新的要要求,需需经常对对软件进进行改造造和修正正。在软软件开发发的一开开始就要要确定软软件可靠靠性和其其它质量量指标,,考虑相相应措施施,以使使得软件件易于修修改和易易于维护护6.编写概要要设计阶阶段的文文档概要设计计说明书书数据库设设计说明明书用户手册册制定初步步的测试试计划软件设计计过程19概要设计计说明书书1、引言编写目的背景参考资料

2、结构模型架构描述

3、功能设计模块子模块操作流程图4、数据结构数据库设计数据字典

207.概要设计计评审可追溯性性:确认认该设计计是否复复盖了所所有已确确定的软软件需求求,软件件每一成成份是否否可追溯溯到某一一项需求求接口:确确认该软软件的内内部接口口与外部部接口是是否已经经明确定定义。模模块是否否满足高高内聚和和低耦合合的要求求。模块块作用范范围是否否在其控控制范围围之内风险:确确认该设设计在现现有技术术条件下下和预算算范围内内是否能能按时实实现实用性::确认该该设计对对于需求求的解决决方案是是否实用用技术清晰晰度:确确认该设设计是否否以一种种易于翻翻译成代代码的形形式表达达软件设计计过程217.概要设计计评审可维护性性:确认认该设计计是否考考虑了方方便未来来的维护护质量:确确认该设设计是否否表现出出良好的的质量特特征各种选择择方案::看是否否考虑过过其它方方案,比比较各种种选择方方案的标标准是什什么限制:评评估对该该软件的的限制是是否现实实,是否否与需求求一致其它具体体问题::对于文文档、可可测试性性、设计计过程..等进行评评估8、在详细细设计确定软件件各个组组成部分分内的算算法以及及各部分分的内部部数据组组织选定某种种过程的的表达形形式来描描述各种种算法。。进行详细细设计的的评审软件设计计过程22二、概要要设计的的过程设想供选选择的方方案。技术上最最高层的的几个人人,考虑虑需求规规格说明明书,以以及之前前的可行行性报告告里面都都提到几几个可行行性的方方案,做做总体设设计的人人是一个个公司里里面技术术最强的的人。选取合理理的方案案系统流程程图。完全从软软件角度度来画系系统的流流程。组成系统统的物理理元素清清单。物理元素素一般是是系统,,子系统统,模块块,子模模块,函函数,子子函数成本/效益分析析。就是有不不同的开开发路线线,选择择那一条条开发路路线安全全性要好好,开发发软件质质量也还还可以,,最省钱钱。开发进度度和计划划。23二、概要要设计的的过程推荐最佳佳方案。。功能分解解。把一个功功能分成成多个小小模块,,然后每每一个块块之间怎怎么样进进行沟通通。设计软件件结构。数据库设设计。制定测试试计划。。书写文档档①系统说明明②用户手册册③测试计划划④详细的实实现计划划⑤数据库设设计结果果9.审查和复复查24三、软件件设计的的概念和和原理自顶向下下,逐步步细化软件结构构(搭出一一个大框框架)程序结构构结构图模块化(模块化化思想,,把软件件分成多多个模块块)抽象(通过抽抽象完成成模块之之间对外外的一个个黑盒装装置)信息屏蔽蔽和局部部化模块独立立25三、软件件设计的的概念和和原理自顶向下下,逐步步细化将软件的的体系结结构按自自顶向下下方式,,对各个个层次的的过程细细节和数数据细节节逐层细细化,直直到用程程序设计计语言的的语句能能够实现现为止,,从而最最后确立立整个的的体系结结构。软件结构构①软件结结构包括括两部分分。程序的模模块结构构和数据据的结构构。②软件的的体系结结构通过过一个划划分过程程来完成成。该划分过过程从需需求分析析确立的的目标系系统的模模型出发发,对整整个问题题进行分分割,使使其每个个部分用用一个或或几个软软件成份份加以解解决,整整个问题题就解决决了。2627程序结构构。表明明了程序序各个部部件(模块)的组织情情况,是是软件的的过程表表示。结构图反反映程序序中模块块之间的的层次调调用关系系和联系系:它以以特定的的符号表表示模块块、模块块间的调调用关系系和模块块间信息息的传递递三、软件件设计的的概念和和原理28三、软件件设计的的概念和和原理模块化的的概念软件系统统的模块块化是指指整个软软件被划划分成若若干单独独命名和和可编址址的部分分,称之之为模块块。这些些模块可可以被组组装起来来以满足足整个问问题的需需求。把问题//子问题题的分解解与软件件开发中中的系统统/子系系统或模模块/子子模块对对应起来来,就能能够把一一个大而而复杂的的软件系系统划分分成易于于理解的的比较单单纯的模模块结构构。公式29计划采购收料发料仓储配送价格管理供应商管理合同管理综合统计管理采购管理库存管理决策平台管理平台业务平台报价询价招标管理计划管理质检管理检验付款编码管理编码经济运营查询经济运营报表经济运营分析结算管理供应商频道商务频道商务平台分解到二二级模块块图30三、软件件设计的的概念和和原理成本成本/模块最小成本区接口成本软件总成本模块数目模块化和和软件成成本31三、软件件设计的的概念和和原理抽象软件系统统进行模模块设计计时,可可有不同同的抽象象层次。。在最高的的抽象层层次上,可以使用用问题所所处环境境的语言言概括地地描述问问题的解解法。在较低的的抽象层层次上,则采用过过程化的的方法.过程的抽抽象在软件需需求分析析阶段,,用“问问题所处处环境的的为大家家所熟悉悉的术语语”来描描述软件件的解决决方法。。在从概要要设计到到详细设设计的过过程中,,抽象化化的层次次逐次降降低。数据抽象象它实际上上是跟数数据结构构相关连连的,前前面讲的的层次方方框图和和Warnier图实际上上就是一一种数据据结构的的抽象,,在面向向对象里里还会有有进一步步的数据据抽象的的方法。。32例开发发一个CAD软件时的的三种抽抽象层次次(1)过程抽象象抽象层次次Ⅰ.用问题所所处环境境的术语语来描述述这个软软件:该软件包包括一个个计算机机绘图界界面,向向绘图员员显示图图形,以以及一个个数字化化仪界面面,用以以代替绘绘图板和和丁字尺尺。所有有直线、、折线、、矩形、、圆及曲曲线的描描画、所所有的几几何计算算、所有有的剖面面图和辅辅助视图图都可以以用这个个CAD软件实现现……。抽象层次次Ⅱ.任务需求求的描述述。CADSOFTWARETASKSuserinteractiontask;;2-Ddrawingcreationtask;graphicsdisplaytask;;drawingfilemanagementtask;end..在这个抽抽象层次次上,未给出““怎样做做”的信信息,不能直接接实现。。33抽象层次次Ⅲ.程序过程程表示。。以2-D((二维)绘图生成成任务为为例:PROCEDURE:2-DdrawingcreationREPEATUNTIL((drawingcreationtaskterminates)DOWHILE((digitizerinteractionoccurs)digitizerinterfacetask;;DETERMINEdrawingrequestCASE;;line:linedrawingtask;rectangle:rectangledrawingtask;circle:circledrawingtask;……二维画图图又分为为以下CASE,案例,,任务的的集合34(2)数据抽抽象在不同层层次上描描述数据据对象的的细节,,定义与与该数据据对象相相关的操操作。例如,在CAD软件中,,定义一一个叫做做drawing绘图的数数据对象象。可将drawing规定为一一个抽象象数据类类型,定义它它的内部部细节为为:TYPEdrawingISSTRUCTUREDEFINDnumberISSTRINGLENGTH(12);;geometryDEFIND………notesISSTRINGLENGTH(256);;BOMDEFINDENDdrawingTYPE;宏35数据抽象象drawing本身由另另外一些些数据抽抽象,如如geometry、BOM((billofmaterials)构成定义drawing的抽象数数据类型型之后,,可引用用它来定定义其它它数据对对象,而而不必涉涉及drawing的内部细细节例如,定定义:blue-printISINSTANCEOFdrawing;;或schematicISINSTANCEOFdrawing;信息屏蔽蔽和局部部化模块中所所包含的的信息((包括数数据和过过程)不不允许其其它不需需要这些些信息的的模块使使用。36三、软件件设计的的概念和和原理模块独立立(Module)①模块:又又称“组组件”。。它一般般具有如如下三个个基本属属性:功能:描描述该模模块实现现什么功功能。逻辑:描描述模块块内部怎怎么做状态:该该模块使使用时的的环境和和条件在描述一一个模块块时,还还必须按按模块的的外部特性性与内部特性性分别描述述模块的外部特性性模块的模模块名、、参数表表、其中中的输入入参数和和输出参参数,以以及给程程序以至至整个系系统造成成的影响响模块的内部特性性完成其功功能的程程序代码码和仅供供该模块块内部使使用的数数据内部特征征是内部部数据,,比如说说两个数数据进行行交换,,交换时时要定义义一个临临时变量量做数据据交换。。37三、软件件设计的的概念和和原理模块独立立是模块化化、抽象象、信息息屏蔽和和局部化化概念的的直接结结果。每个模块块完成一一个相对对独立的的子功能能,并且且与其它它模块间间的接口口简单。。衡量模块块独立程程度的定定性标准准-----内聚、耦耦合耦合是模块之之间的互互相连接接的紧密密程度的的度量。。耦合是是两个模模块之间间联系的的紧密程程度。内聚是模块功功能强度度(一个模块块内部各各个元素素彼此结结合的紧紧密程度度)的度量。。模块独立立性比较较强的模模块应是是高内聚低低耦合的模块。。38三、软件件设计的的概念和和原理耦合(模块之之间的互互相连接接的紧密密程度的的度量))数据耦合合控制耦合合公共环境境耦合内容耦合合尽量用数数据耦合合,少用用控制耦耦合,限限制公共共环境耦耦合的范范围,完完全不用用内容耦耦合耦合程度度越高39a.1控制耦合合如果一个个模块通通过传送送开关、、标志、、名字等等控制信信息,明明显地控控制选择择另一模模块的功功能,就就是控制制耦合。。a.2数据耦合合(DataCoupling)如果一个个模块访访问另一一个模块块时,彼彼此之间间是通过过简单数数据参数数(不是控制制参数、、公共数数据结构构或外部部变量)来交换输输入、输输出信息息的,则则称这种种耦合为为数据耦耦合。40三、软件件设计的的概念和和原理a.3公共耦合合(CommonCoupling)若一组模模块都访访问同一个公公共数据据环境,则它们们之间的的耦合就就称为公公共耦合合。公共共的数据据环境可可以是全全局数据据结构、、共享的的通信区区、内存存的公共共覆盖区区等。41三、软件件设计的的概念和和原理a.4内容耦合合(1)一个模块块直接访访问另一一个模块块的内部部数据;(2)一个模块块不通过过正常入入口转到到另一模模块内部部;(3)两个模块块有一部部分程序序代码重重迭(只可能出出现在汇汇编语言言中);(4)一个模块块有多个个入口42三、软件件设计的的概念和和原理b.内聚模块功能能强度(一个模块块内部各各个元素素彼此结结合的紧紧密程度度)的度量。。功能顺顺序通通信信过过程时时间逻逻辑辑偶偶然内聚内内聚内内聚聚内内聚内内聚内内聚聚内内聚c.模块独立立性比较较强的模模块--高内聚低低耦合43b.1功能内聚聚(FunctionalCohesion)一个模块块中各个个部分都都是完成某一一具体功功能必不可少少的组成成部分,,或者说说该模块块中所有有部分都都是为了了完成一一项具体体功能而而协同工工作,紧紧密联系系,不可可分割的的。则称称该模块块为功能能内聚模模块。b.2信息内聚聚(InformationalCohesion)这种模块块完成多多个功能能,各个个功能都都在同一一数据结结构上操操作,每每一项功功能有一一个唯一一的入口口点。这这个模块块将根据据不同的的要求,,确定该该执行哪哪一个功功能。由由于这个个模块的的所有功功能都是是基于同同一个数数据结构构(符号号表),,因此,,它是一一个信息息内聚的的模块。。信息内聚聚模块可可以看成成是多个个功能内内聚模块块的组合合,并且且达到信信息的隐隐蔽。即即把某个个数据结结构、资资源或设设备隐蔽蔽在一个个模块内内,不为为别的模模块所知知晓。44b.3通信内聚聚如果一个个模块内内各功能能部分都都使用了了相同的的输入数数据,或或产生了了相同的的输出数数据,则则称之为为通信内内聚模块块。通常常,通信信内聚模模块是通通过数据据流图来来定义的的。b.4过程内聚聚使用流程程图做为为工具设设计程序序时,把把流程图图中的某某一部分分划出组组成模块块,就得得到过程程内聚模模块。b.5时间内聚聚又称为经经典内聚聚。这种种模块大大多为多多功能模模块,但但模块的的各个功功能的执执行与时时间有关关,通常常要求所所有功能能必须在在同一时时间段内内执行。。45通信内聚聚实例46b.6逻辑内聚聚这种模块块把几种种相关的的功能组组合在一一起,每每次被调调用时,由传送给给模块的的判定参参数来确确定该模模块应执执行哪一一种功能。b.7巧合内聚聚巧合内聚聚又称为为偶然内内聚。当当模块内内各部分分之间没没有联系系,或者者即使有有联系,,这种联联系也很很松散,则称这种种模块块为巧合合内聚模模块,它它是内聚聚程度最最低的模模块。47四、启发发式规则则改进软件件结构提提高模块块独立性性争取低耦耦合、高高内聚((增加内内聚>减少耦合合)模块规模模应该适适中深度,宽度,扇出和扇扇入都应应适当模块的作作用域应应该在控控制域之之内力争降低低模块接接口的复复杂程度度设计单入入口单出出口的模模块模块功能能可以预预测48四、启发发规则改进软件件结构提提高模块块独立性性争取低耦耦合、高高内聚((增加内内聚>减少耦合合)模块规模模适中适当控制制深度、、宽度、、扇出、、扇入深度分层的层层数。宽度同一层上上模块数数的最大大值。扇出(fan-out)一个模块块直接调调用\控制的模模块数子子程序数数3fan-out9扇入(fan-in)直接调用用该模块块的模块块数在不破坏坏独立性性的前提提下,fan--in大的比较较好。49四、启发发规则模块的作作用域应应该在控控制域之之内MACBM的控制域域为{M,A,B,C}作用域::M中的一个个判定所所影响的的模块A:…………if……thengotoB1……………………B:……………………B1:……………………作用域在控制域内A:…………if……thengotoM1……………………M:……………………M1:gotoC1……………………作用域超出了控制域A的作用超超出了控控制域。。改进方方法之一一,可以以把A中的if移到M中;方法法之二,,可以把把C移到A下面。50四、启发发规则力争降低低模块接接口的复复杂程度度.接口复杂杂可能表表明模块块的独立立性差。。设计单入入口单出出口的模模块.单出单入入,避免免内容耦耦合。从从顶进,,从底出出,软件件易理解解,易维维护模块功能能可预测测.把一个模模块当做做一个黑黑盒,相相同输入入必产生生相同输输出,功功能就可可以预测测。带有有内部““存储器器”模块块功能不不可预测测,因为为输出可可能取决决于内部部存储器器的状态态。51四、图形形工具1、层次图图描绘软件件的层次次结构,,而非数数据结构构。与描绘数数据结构构的层次次方框图图相同,,但表现现的内容容却完全全不同。。层次图图是以层层次的方方式来描描述软件件的层次次调用关关系,是是一种调调用关系系,是软件之之间的过过程或子子过程或或函数之之间的层层次模型型,而不不是数据据结构.(层次方框框图中下下层方框框是数据据元素,上层子集集)矩形代表表模块,,连线代代表调用用。方框间的的连接线线表示调调用关系系,不像像层次方方框图那那样表示示组成关关系。加标题存储正文加工系统输入输出编辑加标题存储检索编目录格式化输出编辑存储加标题52User’sInterfaceFindaRoom2.0DeleteaRoom3.0EnteraNewRoom1.0EstablishaHouse4.0……ByTypeofFloor2.3BySquareFootage2.2ByRoomID2.1……AddaRoom4.1FindaRoom4.2DeleteaRoom4.3ViewHouse4.4……ByRoomID4.2.1……2、HIPO图①层次图加加IPO图。可以看到到每一个个模块对对外的接接口,以以及向上上向下分分别的调调用关系系。②对除最顶顶层的方方框外的的所有方方框加编编号(编号规则则同数据据流图))每个方方框对应应一张张IPO图描绘此此模块处处理过程程。533、结构图图反映程序序中模块块之间的的层次调调用关系系和联系系,通常常用带注注释的箭箭头表示示模块调调用过程程中传递递信息,,注释箭箭头尾部是空空心圆表表示传递递的是数数据.循环调用用MAB判定为真真是调用用A,为假时时调用B。注:此图图一般不不入文档档,仅用用于检查查设计的的正确性性和模块块独立性性。每个传递递的数据据是否必须?完成模块块功能所所必须的的数据是是否都传递了了?传输的数数据是否否只与单一的功能有有关?是是否目的的明确??54四、图形形工具4、程序系统统结构图图N有四个扇扇出,有有1个扇入,,I没有扇出出,有三三个扇入入,通过过扇出扇扇入,我我们可以以看到一一个函数数被调用用的情况况,也可可以看到到我们程程序的结结构是否否合理,,是否比比较均匀匀。55五、面向向数据流流的设计计方法面向数据据流的设设计方法法定义了了一些不不同的””映射””,利用这些些映射可可以把数数据流图图变换成成软件结结构,推倒出程程序结构构图.1、概念(面向数数据流的的设计方方法是把把信息流流映射成成软件结结构)①变换流当外部有有一些输入,输入信息息进来之之后通过过一些数据据变换,变换之后后产生输出出流,输入流是是外部表表示,输现计算机机内变成成内部表表示,内部表示不需给给用户知知道,表示完成成要把它转化为为输出格格式做为为输出流流进行输出,完成信息息变换内部表示变换流输出流输入流

外部表示时间56五、面向向数据流流的设计计方法1、概念②事务流基本形式式是事务务的请求求都送到了事务务中心,事务中心心根据不同请求求把它分分发到不不同处理理与一般变变换流有有区别,有一个事事务处理的的结点或或事务处处理中心心.T称为事物物中心接收输入入数据分析事务务确定类类型根据类型型取通道道……TTransactionrequest…Actionpaths……57五、面向向数据流流的设计计方法2、变换分分析对数据流流图分析析时首先先判断它它是变换换流还是是事务流流①例:汽车车数字仪仪表板的的设计功能:a通过模-数转换实实现传感感器和微微处理机机接口;;b在发光二二极管面面板上显显示数据据;c指示每小小时英里里数(mph),行驶的里里程,每每加仑油油行驶的的英里数数(mpg)等等;d指示加速速或减速速;e如果车速速超过55mph,,则发出警警告铃声声。②设计步步骤第1步复查基本本系统模模型确保系统统的输入入数据和和输出数数据符合合实际..58第2步:复查并精精化数据据流图确保正确确逻辑模模型,使数据流流图每个个处理都都代表一一个规模模适中相相对独立立的子功功能.燃料流传感器信号SPS旋转信号读旋转信号收集和求平均确定加/减速转换成转/分计算里程计算mph,超速值产生加/减速显示计算燃料消耗计算gph读和校核产生mpg显示产生mph显示发出铃声产生里程显示SPSSPS箭头指示燃烧流上箭头水平线下箭头rpmrpmgphmphmpgmph超速值英里显示铃声mph显示mpg显示图5-1数字仪表表板系统统的数据据流图59第3步确定数据据流图具具有变换换特性还还是事务务特性一个系统统中的所所有信息息都可以以认为变变换流,但当遇到到有明显显事务特特性的信信息流时时,建义采用用事务分分析方法法进行设设计,在这一步步,设计人员员应该根根据数据据流图中中占优势势的属性性,确定数据据流的全全局特性性.此外还应应该把具具有和全全局特性性不同的的特点的的局部区区域孤立立出来,以后可以以按照这这些子数数据流的的特点精精化根据据全局特特性得出出的软件件结构.上图中,数据沿着着两条输输入通路路进入系系统,然后沿着着5条通路离离开,没有明显显的事务务中心.因此可以以认为这这个信息息具有变变换流的的总特征征.60第4步:确定输入入流和输输出流的的边界,,从而孤孤立出变变换中心心(DFD的分界,,先分出出I、P、O三块)燃料流传感器信号SPS旋转信号读旋转信号收集和求平均确定加/减速转换成转/分计算里程计算mph,超速值产生加/减速显示计算燃料消耗计算gph读和校核产生mpg显示产生mph显示发出铃声产生里程显示SPSSPS箭头指示燃烧流上箭头水平线下箭头rpmrpmgphmphmpgmph超速值英里显示铃声mph显示mpg显示61一般问题题的一级级分解方方法:就就是把一一个数据据流图分分成三部部分,主主模块M,下面输输入模块块是I,处理模模块是P,输出模模块是O,M调用三个个子模块块,分别别为I,P,,O,数字仪表板控制数据转换控制驱动仪表板接收传感器信号MPIO第5步:完成“第第一级分分解”62ADCBMICBDA:每个处理直接对应一个下层模块。P:由边界向回溯,将每个遇到的处理器映成相应的层模块。I:由边界向外推,方法与类似OI第6步:完成“第第二级分分解”63图5-2未经精化化的数字字仪表板板系统的的软件结结构数字仪表板控制数据转换控制驱动仪表板接收传感器信号计算gph读燃料流转换成rpm收集sps读旋转信号确定加/减速计算mph计算mpg计算里程加/减速显示显示mpg显示mph显示里程发出铃声发光二极管显示64第7步:使用设计计度量和和启发式式规则对对第一次次分割得得到的软软件结构构进一步步精化修改—本着高内内聚、低低耦合的的原则。。例:精化化后的数数字仪表表板系统统的软件件结构。。注:每个个模块应应附一简简要说明明描述①进出该模模块的信信息(接接口描述述)②模块内部部的信息息③过程陈述述,包括主要要判定点点及任务务④对约束和和特殊特特点的简简短讨论论。数字仪表板控制数据转换控制驱动仪表板接收传感器信号计算gph读燃料流转换成rpm读旋转信号确定加/减速计算mph加/减速显示显示mpg显示mph显示里程发出铃声发光二极管显示计算mpg计算里程图5-3精化后的的数字仪仪表板系系统的软软件结构构65五、面向向数据流流的设计计方法3、事务分分析与变换分分析的步步骤相似似,但从从数据流流图到软软件结构构的映射射方法不不同4、设计优优化先使它能能工作,,然后再再使它快快起来66六、结构构化设计计方法首先研究究、分析析和审查查数据流流图。从从软件件的需求求规格说说明中弄弄清数据据流加工工的过程程,对于于发现的的问题及及时解决决。然后根据据数据流流图决定定问题的的类型。。数据处处理问题题典型的的类型有有两种::变换型和事务型。针对两两种不同同的类型型分别进进行分析析处理。。由数据流流图推导导出系统统的初始始结构图图。利用一些些启发式式原则来来改进系系统的初初始结构构图,直直到得到到符合要要求的结结构图为为止。修改和补补充数据据词典。。制定测试试计划。。671、在系统统结构图图中的模模块传入模块块─从下属模模块取得得数据,,经过某某些处理理,再将将其传送送给上级级模块。。它传送的的数据流流叫做逻逻辑输入入数据流流。传出模块块─从上级模模块获得得数据,,进行某某些处理理,再将将其传送送给下属属模块。。它传送的的数据流流叫做逻逻辑输出出数据流流。变换模块块─它从上级级模块取取得数据据,进行行特定的的处理,,转换成成其它形形式,再再传送回回上级模模块。它它加工的的数据流流叫做变变换数据据流。数据是从从上往下下,进行行变换之之后的CC再传回回去。协调模块块─对所有下下属模块块进行协协调和管管理的模模块.数据有从从下往上上的,也有从上上往下的的,可认为是是传入,传出模块块的结合合682、变换型型系统结结构图①变换型数数据处理理问题的的工作过过程大致致分为三三步,即即取得数数据,变变换数据据和给出出数据。。②相应于取取得数据据、变换换数据、、给出数数据,变变换型系系统结构构图由输输入、中中心变换换和输出出等三部部分组成成。693、事务型型系统结结构图①事务型系系统接受受一项事事务,根根据事务务处理的的特点和和性质,,选择分分派一个个适当的的处理单单元,然然后给出出结果。。②在事务型型系统结结构图中中,事务务中心模模块按所所接受的的事务的的类型,,选择某某一事务务处理模模块执行行。各事事务处理理模块并并列。每每个事务务处理模模块可能能要调用用若干个个操作模模块,而而操作模模块又可可能调用用若干个个细节模模块。704、变换分分析变换分析析方法由由以下四四步组成成:①重画数据据流图;;②区分有效效(逻辑辑)输入入、有效效(逻辑辑)输出出和中心心变换部部分③进行一级级分解,,设计上上层模块块④进行二级级分解,,设计输输入、输输出和中中心变换换部分的的中、下下层模块块。71变换分析析的过程程①在选择模模块设计计的次序序时,必必须对一一个模块块的全部部直接下下属模块块都设计计完成之之后,才才能转向向另一个个模块的的下层模模块的设设计。②在设计下下层模块块时,应应考虑模模块的耦耦合和内内聚问题题,以提提高初始始结构图图的质量量。③使用用“黑箱箱”技术术:在在设计当当前模块块时,先把这个个模块的的所有下下层模块块定义成成“黑箱””,在设设计中利利用它们们时,暂暂时不考考虑其内内部结构构和实现现。在这这一步定定义好的的“黑箱箱”,在在下一步步就可以以对它们们进行设设计和加加工。这这样,又又会导致致更多的的“黑箱箱”。最最后,全全部“黑黑箱”的的内容和和结构应应完全被被确定。。④在模模块划分分时,一一个模块块的直接接下属模模块一般般在5个个左右。。如果直直接下属属模块超超过10个,可可设立中中间层次次。⑤如果果出现了了以下情情况,就就停止模模块的功功能分解解当模块不不能再细细分为明明显的子子任务时时当分解成成用户提提供的模模块或程程序库的的子程序序时当模块的的界面是是输入//输出设设备传送送的信息息时当模块不不宜再分分解得过过小时。。72①在很多软软件应用用中,存存在某种种作业数数据流,,它可以以引发一一个或多多个处理理,这些些处理能能够完成成该作业业要求的的功能。。这种数数据流就就叫做事事务。②与变换分分析一样样,事务务分析也也是从分分析数据据流图开开始,自自顶向下下,逐步步分解,,建立系系统到结结构图。。5、事务分分析73事务分析析过程①识别事务务源利用数据据流图和和数据词词典,从从问题定定义和需需求分析析的结果果中,找找出各种种需要处处理的事事务。通通常,事事务来自自物理输输入装置置。有时时,设计计人员还还必须区区别系统统的输入入、中心心加工和和输出中中产生的的事务。。②规定适当当的事务务型结构构在确定了了该数据据流图具具有事务务型特征征之后,,根据模模块划分分理论,,建立适适当的事事务型结结构。③识别各种种事务和和它们定定义的操操作从问题定定义和需需求分析析中找出出的事务务及其操操作所必必需的全全部信息息,对于于系统内内部产生生的事务务,必须须仔细地地定义它它们的操操作。④注意利用用公用模模块在事务分分析的过过程中,,如果不不同事务务的一些些中间模模块可由由具有类类似的语语法和语语义的若若干个低低层模块块组成,,则可以以把这些些低层模模块构造造成公用用模块。。74⑤对每一事事务,或对联系系密切的的一组事事务,建立一个个事务处处理模块块如果发现现在系统统中有类类似的事事务,可可以把它它们组成成一个事事务处理理模块.⑥对事务处处理模块块规定它它们全部部的下层层操作模模块.⑦对操作模模块规定定它们的的全部细细节模块块变换分析析是软件件系统结结构设计计的主要要方法。。一般,,一个大大型的软软件系统统是变换换型结构构和事务务型结构构的混合合结构。。所以,,我们通通常利用用以变换换分析为为主,事事务分析析为辅的的方式进进行软件件结构设设计。75761)模块功功能的完完善化一个完整整的模块块应当有有以下几几部分::①执行规定定的功能能的部分分;②出错处理理的部分分。当模模块不能能完成规规定的功功能时,,必须回回送出错错标志,,出现例例外情况况的原因因。③如果需要要返回一一系列数数据给它它的调用用者,在在完成数数据加工工或结束束时,应应当给给它的调调用者返返回一

温馨提示

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

评论

0/150

提交评论