第5讲软件设计基础课件教学教材

上传人:youn****329 文档编号:136944123 上传时间:2020-07-04 格式:PPT 页数:53 大小:643KB
返回 下载 相关 举报
第5讲软件设计基础课件教学教材_第1页
第1页 / 共53页
第5讲软件设计基础课件教学教材_第2页
第2页 / 共53页
第5讲软件设计基础课件教学教材_第3页
第3页 / 共53页
第5讲软件设计基础课件教学教材_第4页
第4页 / 共53页
第5讲软件设计基础课件教学教材_第5页
第5页 / 共53页
点击查看更多>>
资源描述

《第5讲软件设计基础课件教学教材》由会员分享,可在线阅读,更多相关《第5讲软件设计基础课件教学教材(53页珍藏版)》请在金锄头文库上搜索。

1、CopyrightXinjunMao,软件设计基础,1,第5讲软件设计基础,毛新军教授计算机科学与技术系602教研室0731-(45)73649,软件工程导论之,用工程化的方法来开发软件,CopyrightXinjunMao,软件设计基础,2,本讲内容,软件设计任务和过程软件设计原则软件设计结果描述工具软件设计规格说明书及评审,CopyrightXinjunMao,软件设计基础,3,软件设计的任务,依据和基础软件需求规格说明书SRS,描述了欲解决的问题(用户需求)。What?任务以SRS为基础设计出满足用户需求的软件(软件结构,),给出软件实现的解决方案,生成软件设计的规格说明书How?,Co

2、pyrightXinjunMao,软件设计基础,4,软件设计的过程,总体结构设计设计和定义软件的整体实现框架,模块以及模块间关系“黑盒子”高层抽象、全局角度过程设计模块内部细节低抽象、局部角度数据设计信息描述数据结构数据库,数据文件(配置文件),网络消息包,CopyrightXinjunMao,软件设计基础,6,总体结构设计,什么是软件总体结构确立了目标软件系统的整体实现框架:那些模块?每个模块的功能?他们间相互控制关系?框架,各个模块是一个“黑盒子”什么是模块结构化:过程、函数什么是模块间的关系结构化:调用关系,CopyrightXinjunMao,软件设计基础,7,软件总体结构示意图,结构

3、化模块:过程、函数、关系:函数和过程调用,CopyrightXinjunMao,软件设计基础,8,数据设计,把需求规格说明书中的各种信息描述转换为计算机可识别和处理的数据结构如表、数组数据设计的内容:数据库设计(如库、表、字段、属性)数据类型(如堆栈、队列等)数据文件的设计(如配置文件)通讯协议(如网络消息包)总体结构设计和数据设计属于概要设计,CopyrightXinjunMao,软件设计基础,9,数据设计示意图,数据库数据结构通讯协议数据文件,CopyrightXinjunMao,软件设计基础,10,过程设计,任务描述每个模块内部的具体内容(算法、数据结构)结构化:过程和函数内部算法属于详

4、细设计,CopyrightXinjunMao,软件设计基础,11,过程设计示意图,CopyrightXinjunMao,软件设计基础,12,本讲内容,软件设计任务和过程软件设计原则软件设计结果描述工具软件设计规格说明书及评审,CopyrightXinjunMao,软件设计基础,13,软件设计的基本原则,软件设计原则60年代后陆续提出,指导软件设计决策以开发高质量的软件系统抽象逐步求精模块化信息隐藏,CopyrightXinjunMao,软件设计基础,14,抽象,什么是抽象思想?在认识事物、分析和解决问题的过程中,忽略那些与当前研究目标不相关的部分,以便将注意力集中于与当前目标相关的方面软件开发

5、实际上就是一个从高层次抽象到低层次抽象逐步过渡的过程,CopyrightXinjunMao,软件设计基础,15,形体,衣着,性格,抽象,抽象例子,外表,CopyrightXinjunMao,软件设计基础,16,逐步求精(1/2),什么是逐步求精思想?对一个事物的认识是一个从高层次抽象向低层次抽象逐步转化和过渡的过程,首先一般性、抽象的,然后才是具体和详细的,CopyrightXinjunMao,软件设计基础,17,逐步求精,外表,形体,衣着,性格,头发,脸形,领带,抽象,逐步求精的例子,CopyrightXinjunMao,软件设计基础,18,逐步求精(2/2),软件开发的抽象和逐步求精软件的

6、设计过程应当是在不同的抽象级别上,逐步求精寻求问题基于计算机解的过程计算机软件的二种不同类型的抽象过程抽象(计算)数据抽象(表示),CopyrightXinjunMao,软件设计基础,19,过程抽象,什么是过程抽象把完成一个特定功能的动作序列抽象为一个函数名和参数表(模块)例子:计算字符串的长度,比较字符串intComare(CString,CString)intGetLength(Cstring),CopyrightXinjunMao,软件设计基础,20,数据抽象,什么是数据抽象把诸多数据对象的定义(描述)抽象为一个数据类型名,以后可通过该数据类型名来定义多个具有相同性质的数据对象例子1,2

7、,3Integer软件工程书,人工智能书书类,CopyrightXinjunMao,软件设计基础,21,抽象和逐步求精例子(1/3),抽象1.用问题域本身的语言来描述问题及其解CAD图形软件包可画各种直线和曲线,能完成所有几何图形的计算。图形设计的结果存于图形文件中,图形文件可是几何的、正文的和其他各种设计信息,CopyrightXinjunMao,软件设计基础,22,抽象和逐步求精例子(2/3),抽象2.总体结构层次上的抽象图形软件包软件任务图形用户界面创建二维图形任务显示图形任务管理图形文件任务End图形软件包,CopyrightXinjunMao,软件设计基础,23,抽象和逐步求精例子(

8、3/3),抽象.过程层次抽象(以管理图形文件任务为例)Procedure管理图形文件任务IfOpenFileThen询问打开的文件名打开文件显示文件内容ElseifSaveFileThen询问存储文件名存储文件EndifEndProcedure,CopyrightXinjunMao,软件设计基础,24,模块化,什么是模块化思想?把软件划分为一组具有相对独立功能的部件,每个部件称为一个模块,当把所有的模块组装一起时,便可获得满足用户需求的软件系统模块化体现了“分而治之”的问题分析和解决方法,CopyrightXinjunMao,软件设计基础,25,软件开发成本与模块间关系示意图,如何设计模块使得

9、软件开发成本最小?软件设计准则:信息隐藏、高内聚度、低耦合度,CopyrightXinjunMao,软件设计基础,26,内聚度,什么是内聚度指该模块内各成分间彼此结合的紧密程度内聚度分类偶然性内聚:模块内各成分为完成一组功能而结合在一起,关系松散逻辑性内聚:模块完成的诸任务逻辑上相关时间性内聚:模块内诸任务必须在同一时间段内执行过程性内聚:模块内各成分相关且必须按特定次序执行通讯性内聚:模块内各成分对数据结构的同一区域操作顺序性内聚:模块内各成分与同一功能相关且顺序执行功能性内聚:模块内各成分是一整体,完成单个功能,CopyrightXinjunMao,软件设计基础,27,耦合度,什么是耦合度

10、模块间的相关程度,越低越好耦合度分类非直接耦合:二个模块都不依赖对方而独立存在数据耦合:二个模块通过参数交换信息且仅限于数据控制耦合:二个模块通过参数交换信息包含控制信息特征耦合:介于数据耦合和控制耦合之间外部耦合:二个模块与同一外部环境相关联(文件等)公共耦合:模块间通过全局数据环境相互作用内容耦合:一个模块使用另一模块内的数据和控制信息,或者直接转移到另一模块内执行,CopyrightXinjunMao,软件设计基础,28,信息隐藏(1/2),什么是信息隐藏模块应该设计得使其所含的信息(过程和数据)对那些不需要这些信息的模块不可访问,模块之间仅仅交换那些为完成系统功能所必需交换的信息例子i

11、ntnGetLen(charstring)inti,iLen;.,CopyrightXinjunMao,软件设计基础,29,信息隐藏(2/2),优点模块的独立性更好支持模块的并行开发(设计和编码)便于测试和维护,减少错误向外传播便于增加新的功能,CopyrightXinjunMao,软件设计基础,30,本讲内容,软件设计任务和过程软件设计原则软件设计结果描述工具软件设计规格说明书及评审,CopyrightXinjunMao,软件设计基础,31,软件总体设计,软件总体设计的任务耦合度和内聚度是判断总体设计好坏主要标准结构化软件总体结构的表示工具层次图HIPO图结构图面向对象软件总体结构的表示工具

12、类图,CopyrightXinjunMao,软件设计基础,32,软件结构的层次图,CopyrightXinjunMao,软件设计基础,33,软件结构的HIPO图,HIPO图=层次图+输入/处理/输出采用IPO图方式说明层次图中各模块的处理功能,CopyrightXinjunMao,软件设计基础,34,软件结构的结构图,结构图层次图调用信息,CopyrightXinjunMao,软件设计基础,35,数据设计,为SRS中定义的数据对象进行组织和设计数据的组织外部数据库的设计相关文件的安排数据类型的设计,CopyrightXinjunMao,软件设计基础,36,数据设计的例子1,一个配置文件的设计(

13、acd.ini)SystemSocketPortNo=800;/theportnoofthelisteningsocketDSN=data;/thedatasourcenameLogFileName=system.log;/thesystemlogfilename,CopyrightXinjunMao,软件设计基础,37,数据设计的例子2,数据库中读者信息表的设计(TReader)Idchar10keyuniquenotnullnamechar10notnulltypeintnotnulldepartmentintnotnullbirthdatedate,CopyrightXinjunMao,

14、软件设计基础,38,过程设计,过程设计的任务涉及二个方面的问题:如何进行过程设计技术和原则如何描述过程设计的内容-表示方法或者描述语言,CopyrightXinjunMao,软件设计基础,39,过程设计技术结构化过程设计,结构化过程设计主要思想自顶向下、逐步求精的设计方法和单入口单出口的控制结构结构化设计的基本控制结构:顺序,分枝,循环用三种基本结构可构造任何单入口单出口程序优点确保软件具有良好的结构,CopyrightXinjunMao,软件设计基础,40,表示工具,流程图,CopyrightXinjunMao,软件设计基础,41,盒图,CopyrightXinjunMao,软件设计基础,4

15、2,盒图例子,CopyrightXinjunMao,软件设计基础,43,判定表,CopyrightXinjunMao,软件设计基础,44,过程设计语言(PDL)(1/2),以正文形式表示软件设计信息的表示工具关键字语法:定义模块内部控制结构和数据结构自然语言的形式:灵活自由表示模块内工作流程数据结构的说明手段:说明简单和复杂的数据结构模块的定义和调用描述:接口描述优点可作为注释插入到源程序中,简便,易于自动处理,CopyrightXinjunMao,软件设计基础,45,过程设计语言(2/2),IntegernGetLen(chars1)intnLen;ifs1为空thennLen=0endif

16、返回nLen;,CopyrightXinjunMao,软件设计基础,46,各种表示工具比较,表示工具的好坏主要看:表示能力强弱、简便、易于理解等模块化:支持模块化的软件开发并提供接口描述机制整体简洁:易学、易用、易于理解便于编辑,机器可读性可维护性强制结构化:有助于得到好的软件设计自动产生报告数据结构的表示,CopyrightXinjunMao,软件设计基础,47,本讲内容,软件设计任务和过程软件设计原则软件设计结果描述工具软件设计规格说明书及评审,CopyrightXinjunMao,软件设计基础,48,软件设计规格说明书,软件设计规格说明书的主要内容1.软件总体结构描述2.模块描述处理过程描述,接口描述,数据描述3.数据设计描述全局数据,全局数据库,外部文件结构和组织,CopyrightXinjunMao,软件设计基础,49,软件设计规格说明书的评审,评审目的尽早发现软件设计中的缺陷和错误,以确保软件设计的质量判断软件设计规格说明书是否规范评审内容总体结构数据结构接口模块内部过程细节文档结构,CopyrightXinjunMao,软

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号