软件设计基础_第1页
软件设计基础_第2页
软件设计基础_第3页
软件设计基础_第4页
软件设计基础_第5页
已阅读5页,还剩88页未读 继续免费阅读

下载本文档

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

文档简介

软件设计基础第一页,共93页。本讲内容软件设计任务和过程软件设计原则软件设计结果描述工具软件设计规格说明书及评审第二页,共93页。软件设计的任务依据和基础软件需求规格说明书SRS,描述了欲解决的问题(用户需求)。What?

任务以SRS为基础设计出满足用户需求的软件(软件结构,…),给出软件实现的解决方案,生成软件设计的规格说明书How?第三页,共93页。软件设计的过程总体结构设计设计和定义软件的整体实现框架,模块以及模块间关系“黑盒子”高层抽象、全局角度过程设计模块内部细节低抽象、局部角度数据设计信息描述数据结构数据库,数据文件(配置文件),网络消息包…第四页,共93页。软件需求分析与软件设计之间的关系第五页,共93页。总体结构设计什么是软件总体结构确立了目标软件系统的整体实现框架:那些模块?每个模块的功能?他们间相互控制关系?框架,各个模块是一个“黑盒子”什么是模块结构化:过程、函数什么是模块间的关系结构化:调用关系第六页,共93页。软件总体结构示意图结构化模块:过程、函数、关系:函数和过程调用第七页,共93页。数据设计把需求规格说明书中的各种信息描述转换为计算机可识别和处理的数据结构如表、数组数据设计的内容:数据库设计(如库、表、字段、属性)数据类型(如堆栈、队列等)数据文件的设计(如配置文件)通讯协议(如网络消息包)总体结构设计和数据设计属于概要设计第八页,共93页。数据设计示意图数据库数据结构通讯协议数据文件……第九页,共93页。过程设计任务描述每个模块内部的具体内容(算法、数据结构)结构化:过程和函数内部算法属于详细设计第十页,共93页。过程设计示意图第十一页,共93页。本讲内容软件设计任务和过程软件设计原则软件设计结果描述工具软件设计规格说明书及评审第十二页,共93页。软件设计的基本原则软件设计原则60年代后陆续提出,指导软件设计决策以开发高质量的软件系统抽象逐步求精模块化信息隐藏第十三页,共93页。抽象什么是抽象思想?在认识事物、分析和解决问题的过程中,忽略那些与当前研究目标不相关的部分,以便将注意力集中于与当前目标相关的方面软件开发实际上就是一个从高层次抽象到低层次抽象逐步过渡的过程第十四页,共93页。形体衣着性格抽象抽象例子外表第十五页,共93页。逐步求精(1/2)什么是逐步求精思想?对一个事物的认识是一个从高层次抽象向低层次抽象逐步转化和过渡的过程,首先一般性、抽象的,然后才是具体和详细的第十六页,共93页。逐步求精外表形体衣着性格头发脸形领带抽象逐步求精的例子第十七页,共93页。逐步求精(2/2)软件开发的抽象和逐步求精软件的设计过程应当是在不同的抽象级别上,逐步求精寻求问题基于计算机解的过程.计算机软件的二种不同类型的抽象过程抽象(计算)数据抽象(表示)第十八页,共93页。过程抽象什么是过程抽象把完成一个特定功能的动作序列抽象为一个函数名和参数表(模块)例子:计算字符串的长度,比较字符串

intComare(CString,CString)intGetLength(Cstring)第十九页,共93页。数据抽象什么是数据抽象把诸多数据对象的定义(描述)抽象为一个数据类型名,以后可通过该数据类型名来定义多个具有相同性质的数据对象例子1,2,3Integer软件工程书,人工智能书书类第二十页,共93页。抽象和逐步求精例子(1/3)抽象1.用问题域本身的语言来描述问题及其解CAD图形软件包可画各种直线和曲线,能完成所有几何图形的计算。图形设计的结果存于图形文件中,图形文件可是几何的、正文的和其他各种设计信息第二十一页,共93页。抽象和逐步求精例子(2/3)抽象2.总体结构层次上的抽象图形软件包软件任务图形用户界面创建二维图形任务显示图形任务管理图形文件任务End图形软件包第二十二页,共93页。抽象和逐步求精例子(3/3)抽象3.过程层次抽象(以管理图形文件任务为例)

Procedure管理图形文件任务

IfOpenFileThen

询问打开的文件名 打开文件 显示文件内容

ElseifSaveFileThen

询问存储文件名 存储文件

Endif EndProcedure第二十三页,共93页。模块化什么是模块化思想?把软件划分为一组具有相对独立功能的部件,每个部件称为一个模块,当把所有的模块组装一起时,便可获得满足用户需求的软件系统模块化体现了“分而治之”的问题分析和解决方法第二十四页,共93页。软件开发成本与模块间关系示意图如何设计模块使得软件开发成本最小?软件设计准则:信息隐藏、高内聚度、低耦合度第二十五页,共93页。内聚度什么是内聚度指该模块内各成分间彼此结合的紧密程度内聚度分类偶然性内聚:模块内各成分为完成一组功能而结合在一起,关系松散逻辑性内聚:模块完成的诸任务逻辑上相关时间性内聚:模块内诸任务必须在同一时间段内执行过程性内聚:模块内各成分相关且必须按特定次序执行通讯性内聚:模块内各成分对数据结构的同一区域操作顺序性内聚:模块内各成分与同一功能相关且顺序执行功能性内聚:模块内各成分是一整体,完成单个功能.第二十六页,共93页。耦合度什么是耦合度模块间的相关程度,越低越好耦合度分类非直接耦合:二个模块都不依赖对方而独立存在数据耦合:二个模块通过参数交换信息且仅限于数据控制耦合:二个模块通过参数交换信息包含控制信息特征耦合:介于数据耦合和控制耦合之间外部耦合:二个模块与同一外部环境相关联(文件等)公共耦合:模块间通过全局数据环境相互作用内容耦合:一个模块使用另一模块内的数据和控制信息,或者直接转移到另一模块内执行第二十七页,共93页。信息隐藏(1/2)什么是信息隐藏模块应该设计得使其所含的信息(过程和数据)对那些不需要这些信息的模块不可访问,模块之间仅仅交换那些为完成系统功能所必需交换的信息例子

intnGetLen(charstring[]) {inti,iLen;……. }第二十八页,共93页。信息隐藏(2/2)优点模块的独立性更好支持模块的并行开发(设计和编码)便于测试和维护,减少错误向外传播便于增加新的功能第二十九页,共93页。本讲内容软件设计任务和过程软件设计原则软件设计结果描述工具软件设计规格说明书及评审第三十页,共93页。软件总体设计软件总体设计的任务耦合度和内聚度是判断总体设计好坏主要标准结构化软件总体结构的表示工具层次图

HIPO图结构图面向对象软件总体结构的表示工具类图第三十一页,共93页。软件结构的层次图第三十二页,共93页。软件结构的HIPO图HIPO图=层次图+输入/处理/输出采用IPO图方式说明层次图中各模块的处理功能第三十三页,共93页。软件结构的结构图结构图=层次图+调用信息第三十四页,共93页。数据设计为SRS中定义的数据对象进行组织和设计数据的组织外部数据库的设计相关文件的安排数据类型的设计第三十五页,共93页。数据设计的例子1一个配置文件的设计(acd.ini)[System]SocketPortNo=800;//theportnoofthelisteningsocketDSN=data;//thedatasourcenameLog=system.log;//thesystemlog第三十六页,共93页。数据设计的例子2数据库中读者信息表的设计(TReader)Idchar[10]keyuniquenotnullnamechar[10]notnulltypeintnotnulldepartmentintnotnullbirthdatedate第三十七页,共93页。过程设计过程设计的任务涉及二个方面的问题:如何进行过程设计―技术和原则如何描述过程设计的内容-表示方法或者描述语言第三十八页,共93页。过程设计技术-结构化过程设计结构化过程设计主要思想自顶向下、逐步求精的设计方法和单入口单出口的控制结构结构化设计的基本控制结构:顺序,分枝,循环用三种基本结构可构造任何单入口单出口程序优点确保软件具有良好的结构第三十九页,共93页。表示工具流程图第四十页,共93页。盒图第四十一页,共93页。盒图例子第四十二页,共93页。判定表第四十三页,共93页。过程设计语言(PDL)(1/2)以正文形式表示软件设计信息的表示工具关键字语法:定义模块内部控制结构和数据结构自然语言的形式:灵活自由表示模块内工作流程数据结构的说明手段:说明简单和复杂的数据结构模块的定义和调用描述:接口描述优点可作为注释插入到源程序中,简便,易于自动处理第四十四页,共93页。过程设计语言(2/2)IntegernGetLen(chars1[]){ intnLen; ifs1为空then

nLen

=0 endif

……

返回nLen;}第四十五页,共93页。各种表示工具比较表示工具的好坏主要看:表示能力强弱、简便、易于理解等模块化:支持模块化的软件开发并提供接口描述机制整体简洁:易学、易用、易于理解便于编辑,机器可读性可维护性强制结构化:有助于得到好的软件设计自动产生报告数据结构的表示第四十六页,共93页。本讲内容软件设计任务和过程软件设计原则软件设计结果描述工具软件设计规格说明书及评审第四十七页,共93页。软件设计规格说明书软件设计规格说明书的主要内容1.软件总体结构描述2.模块描述处理过程描述,接口描述,数据描述 3.数据设计描述全局数据,全局数据库,外部文件结构和组织第四十八页,共93页。软件设计规格说明书的评审评审目的尽早发现软件设计中的缺陷和错误,以确保软件设计的质量判断软件设计规格说明书是否规范评审内容总体结构数据结构接口模块内部过程细节文档结构第四十九页,共93页。评审遵循的原则软件设计是否满足用户需求软件设计结构的形态是否合理层次是否清晰模块划分是否合理,是否遵循模块化设计原则规范化和标准化第五十页,共93页。本讲小结软件设计任务、过程和原则软件设计的描述工具软件总体设计数据设计过程设计设计规格说明书及评审第五十一页,共93页。思考题你认为一个好的软件应具备那些特征?从软件开发角度,如何得到具有这些特征的软件系统?软件设计的好坏直接影响软件的质量,如何理解这句话?第五十二页,共93页。第6讲面向数据流的软件设计方法软件工程导论之用工程化的方法来开发软件第五十三页,共93页。前言软件设计基础知识软件的需求分析及其需求规格说明书(SRS)软件的SRS->软件设计信息面向数据流的设计方法:提供了方法和策略第五十四页,共93页。本讲内容基本概念和软件设计过程变换分析方法事务分析方法启发式设计策略设计优化原则第五十五页,共93页。面向数据流设计基本概念和过程前提经过评审后的需求模型--数据流图第五十六页,共93页。数据流的类型变换流信息通常以“外部世界”所具有的形式进入系统,经过处理后,又以这种形式离开系统第五十七页,共93页。事务型的数据流图数据沿输入通道到达一个转换,该转换根据输入流类型和特征在若干动作序列中选择一条来执行输入数据(事务)具有一个转换(事务中心)一组动作执行路径第五十八页,共93页。数据流图类型的特点实际上所有的数据流图都是变换流,事务流是变换流的一种特殊形式为什么要将事务型的数据流图独立出来考虑?大多数系统的数据流途中,事务流和变换流往往交织在一起第五十九页,共93页。混合型数据流图第六十页,共93页。面向数据流的软件设计过程面向数据流的设计方法的主要过程确定数据流的类型:变换流还是事务流划定流界将数据流图转换为软件结构通过设计复审和启发式策略精化所得到软件结构第六十一页,共93页。第六十二页,共93页。本讲内容基本概念和软件设计过程变换分析方法事务分析方法启发式设计策略设计优化原则第六十三页,共93页。变换分析方法基本思想通过一系列的设计步骤,将变换型的数据流图映射为软件结构输入:SRS(数据流图、数据字典、小说明)

输出:软件总体结构第六十四页,共93页。步骤1.复审基本系统模型什么是基本系统模型基本系统模型即SRS中的顶级数据流图为什么需要对基本系统模型进行复审对系统规格说明书和SRS进行评估,以确保系统的输入和输出数据符合实际第六十五页,共93页。步骤2.复审和精化数据流图为什么需要复审和精化数据流图确保DFD给出目标系统正确的逻辑模型以获得足够详细的DFD

确保DFD中每个转换代表一个规模适中、相对独立的子功能第六十六页,共93页。步骤3.确定数据流图的类型信息流都可用变换流表示,但是如果有明显的事务流特征,则还应采用事务流的映射方法设计人员负责判定在数据流图中占主导地位的信息流是变换流还是事务流第六十七页,共93页。划分因人而异,在一般情况下有点出入对整个目标软件系统的影响不是很大步骤4.划分输入流、输出流边界输入流处理部分变换中心输出流处理部分第六十八页,共93页。划分流界例子第六十九页,共93页。步骤5.执行一级分解任务:导出三个层次结构的软件结构底层模块:用于输入、输出和计算等基本功能中间层模块:协调、控制底层模块的工作高层模块:用于协调和控制所有的从属模块原则在确保完成系统功能并保持低耦合度、高内聚度的情况下尽可能的减少模块数目一级分解的结果可以用层次图、结构图等来表示第七十页,共93页。一级分解例子第七十一页,共93页。步骤6.执行二级分解任务把DFD中每个转换映射为软件结构中的模块方法从变换中心边界开始沿输入、输出通道向外移动,把输入、输出通道中的每个转换映射为软件结构中的一个模块沿着输入流到输出流的方向移动,将每个转换映射为相应的模块有必要为每一模块写简要的处理说明,包括:进出模块的信息,模块处理功能的陈述,有关的限制和约束第七十二页,共93页。第七十三页,共93页。步骤7.精化软件结构改良软件质量以“模块化”的思想,对软件结构中的模块进行拆并,以追求高内聚、低耦合、易实现、易测试、易维护的软件结构第七十四页,共93页。第七十五页,共93页。第七十六页,共93页。本讲内容基本概念和软件设计过程变换分析方法事务分析方法启发式设计策略设计优化原则第七十七页,共93页。事务分析方法当数据流具有明显的事务特征时,应该采用事务流的分析方法基本步骤步骤1.复审基本系统模型步骤2.复审和精化数据流图步骤3.确定数据流图的类型:变换流还是事务流第七十八页,共93页。步骤4.识别事务流各个组成部分把整个事务型DFD划分为以下三个部分接受路径部分:接受事务的输入事务处理中心动作路径部分判定在每一条动作路径上数据流的特征:变换流或者事务流第七十九页,共93页。事务型DFD划分例子第八十页,共93页。步骤5.把事务型DFD映射为软件结构第八十一页,共93页。步骤6.分解精化事务结构以及每个动作路径第八十二页,共93页。步骤7.精化初步软件结构第八

温馨提示

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

评论

0/150

提交评论