第5讲软件设计基础ppt课件.ppt
《第5讲软件设计基础ppt课件.ppt》由会员分享,可在线阅读,更多相关《第5讲软件设计基础ppt课件.ppt(53页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第5讲软件设计基础ppt课件 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望本讲内容本讲内容1.软件设计任务和过程2.软件设计原则3.软件设计结果描述工具4.软件设计规格说明书及评审Copyright Xinjun Mao2软件设计基础软件设计基础软件设计的任务软件设计的任务n依据和基础软件需求规格说明书SRS,描述了欲解决的问题(用户需求)。What?n 任务以SRS为基础设计出满足用户需求的软件(软件结构,),给出软件实现的解决方案,生成软件设计的规格说明书
2、How?Copyright Xinjun Mao3软件设计基础软件设计基础软件设计的过程软件设计的过程n总体结构设计设计和定义软件的整体实现框架,模块以及模块间关系“黑盒子”高层抽象、全局角度n 过程设计模块内部细节低抽象、局部角度n 数据设计信息描述 数据结构数据库,数据文件(配置文件),网络消息包Copyright Xinjun Mao4软件设计基础软件设计基础软件需求分析与软件设计之间的软件需求分析与软件设计之间的关系关系Copyright Xinjun Mao5软件设计基础软件设计基础总体结构设计总体结构设计n什么是软件总体结构确立了目标软件系统的整体实现框架:那些模块?每个模块的功能
3、?他们间相互控制关系?框架,各个模块是一个“黑盒子”n什么是模块结构化:过程、函数n什么是模块间的关系结构化:调用关系Copyright Xinjun Mao6软件设计基础软件设计基础软件总体结构示意图软件总体结构示意图结构化结构化模块模块:过程、函数、关系关系:函数和过程调用Copyright Xinjun Mao7软件设计基础软件设计基础数据设计数据设计n把需求规格说明书中的各种信息描述转换为计算机可识别和处理的数据结构如表、数组n数据设计的内容:数据库设计(如库、表、字段、属性)数据类型(如堆栈、队列等)数据文件的设计(如配置文件)通讯协议(如网络消息包)n总体结构设计和数据设计属于概要
4、设计Copyright Xinjun Mao8软件设计基础软件设计基础数据设计示意图数据设计示意图n数据库n数据结构n通讯协议n数据文件nCopyright Xinjun Mao9软件设计基础软件设计基础过程设计过程设计n任务 描述每个模块内部的具体内容(算法、数据结构)结构化:过程和函数内部算法n属于详细设计Copyright Xinjun Mao10软件设计基础软件设计基础过程设计示意图过程设计示意图Copyright Xinjun Mao11软件设计基础软件设计基础本讲内容本讲内容1.软件设计任务和过程2.软件设计原则3.软件设计结果描述工具4.软件设计规格说明书及评审Copyright
5、 Xinjun Mao12软件设计基础软件设计基础软件设计的基本原则软件设计的基本原则n软件设计原则60年代后陆续提出,指导软件设计决策以开发高质量的软件系统抽象逐步求精模块化信息隐藏Copyright Xinjun Mao13软件设计基础软件设计基础抽象抽象n什么是抽象思想?在认识事物、分析和解决问题的过程中,忽略那些与当前研究目标不相关的部分,以便将注意力集中于与当前目标相关的方面n软件开发实际上就是一个从高层次抽象到低层次抽象逐步过渡的过程Copyright Xinjun Mao14软件设计基础软件设计基础形体形体衣着衣着性格性格抽象抽象抽象例子抽象例子外表外表Copyright Xin
6、jun Mao15软件设计基础软件设计基础逐步求精逐步求精(1/2)n 什么是逐步求精思想?对一个事物的认识是一个从高层次抽象向低层次抽象逐步转化和过渡的过程,首先一般性、抽象的,然后才是具体和详细的Copyright Xinjun Mao16软件设计基础软件设计基础逐步求精逐步求精外表外表形体形体衣着衣着性格性格头发头发脸形脸形领带领带抽象抽象逐步求精的例子逐步求精的例子Copyright Xinjun Mao17软件设计基础软件设计基础逐步求精逐步求精(2/2)n软件开发的抽象和逐步求精软件的设计过程应当是在不同的抽象级别上,逐步求精寻求问题基于计算机解的过程n计算机软件的二种不同类型的抽
7、象过程抽象(计算)数据抽象(表示)Copyright Xinjun Mao18软件设计基础软件设计基础过程抽象过程抽象n什么是过程抽象把完成一个特定功能的动作序列抽象为一个函数名和参数表(模块)例子:计算字符串的长度,比较字符串n int Comare(CString,CString)n int GetLength(Cstring)Copyright Xinjun Mao19软件设计基础软件设计基础数据抽象数据抽象n什么是数据抽象把诸多数据对象的定义(描述)抽象为一个数据类型名,以后可通过该数据类型名来定义多个具有相同性质的数据对象例子n1,2,3 Integern软件工程书,人工智能书 书
8、类Copyright Xinjun Mao20软件设计基础软件设计基础抽象和逐步求精例子抽象和逐步求精例子(1/3)n抽象1.用问题域本身的语言来描述问题及其解CAD图形软件包可画各种直线和曲线,能完成所有几何图形的计算。图形设计的结果存于图形文件中,图形文件可是几何的、正文的和其他各种设计信息Copyright Xinjun Mao21软件设计基础软件设计基础抽象和逐步求精例子抽象和逐步求精例子(2/3)n抽象2.总体结构层次上的抽象图形软件包软件任务图形用户界面创建二维图形任务显示图形任务管理图形文件任务End 图形软件包Copyright Xinjun Mao22软件设计基础软件设计基础
9、抽象和逐步求精例子抽象和逐步求精例子(3/3)n抽象.过程层次抽象(以管理图形文件任务为例)Procedure 管理图形文件任务If OpenFile Then询问打开的文件名打开文件显示文件内容Else if SaveFile Then询问存储文件名存储文件End if End ProcedureCopyright Xinjun Mao23软件设计基础软件设计基础模块化模块化n 什么是模块化思想?把软件划分为一组具有相对独立功能的部件,每个部件称为一个模块,当把所有的模块组装一起时,便可获得满足用户需求的软件系统模块化体现了“分而治之”的问题分析和解决方法Copyright Xinjun M
10、ao24软件设计基础软件设计基础软件开发成本与模块间关系示意图软件开发成本与模块间关系示意图n如何设计模块使得软件开发成本最小?软件设计准则:信息隐藏、高内聚度、低耦合度Copyright Xinjun Mao25软件设计基础软件设计基础内聚度内聚度n什么是内聚度指该模块内各成分间彼此结合的紧密程度n内聚度分类偶然性内聚:模块内各成分为完成一组功能而结合在一起,关系松散逻辑性内聚:模块完成的诸任务逻辑上相关时间性内聚:模块内诸任务必须在同一时间段内执行过程性内聚:模块内各成分相关且必须按特定次序执行通讯性内聚:模块内各成分对数据结构的同一区域操作顺序性内聚:模块内各成分与同一功能相关且顺序执行
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件设计 基础 ppt 课件
限制150内