网站大量收购闲置独家精品文档,联系QQ:2885784924

国防科技大学计算机学院软件工程导论课件第5讲 软件设计基础.ppt

国防科技大学计算机学院软件工程导论课件第5讲 软件设计基础.ppt

  1. 1、本文档共53页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
?Copyright Xinjun Mao 软件设计基础 第5讲 软件设计基础 毛新军 教授 xjmao@nudt.edu.cn 计算机科学与技术系602教研室 0731-(45)73649 本讲内容 软件设计任务和过程 软件设计原则 软件设计结果描述工具 软件设计规格说明书及评审 软件设计的任务 依据和基础 软件需求规格说明书SRS,描述了欲解决的问题(用户需求)。 What? 任务 以SRS为基础设计出满足用户需求的软件(软件结构,…),给出软件实现的解决方案,生成软件设计的规格说明书 How? 软件设计的过程 总体结构设计 设计和定义软件的整体实现框架,模块以及模块间关系 “黑盒子” 高层抽象、全局角度 过程设计 模块内部细节 低抽象、局部角度 数据设计 信息描述 ? 数据结构 数据库,数据文件(配置文件),网络消息包… 软件需求分析与软件设计之间的关系 总体结构设计 什么是软件总体结构 确立了目标软件系统的整体实现框架:那些模块?每个模块的功能?他们间相互控制关系? 框架,各个模块是一个“黑盒子” 什么是模块 结构化:过程、函数 什么是模块间的关系 结构化:调用关系 软件总体结构示意图 数据设计 把需求规格说明书中的各种信息描述转换为计算机可识别和处理的数据结构如表、数组 数据设计的内容: 数据库设计(如库、表、字段、属性) 数据类型(如堆栈、队列等) 数据文件的设计(如配置文件) 通讯协议(如网络消息包) 总体结构设计和数据设计属于概要设计 数据设计示意图 数据库 数据结构 通讯协议 数据文件 …… 过程设计 任务 描述每个模块内部的具体内容(算法、数据结构) 结构化:过程和函数内部算法 属于详细设计 过程设计示意图 本讲内容 软件设计任务和过程 软件设计原则 软件设计结果描述工具 软件设计规格说明书及评审 软件设计的基本原则 软件设计原则60年代后陆续提出,指导软件设计决策以开发高质量的软件系统 抽象 逐步求精 模块化 信息隐藏 抽象 什么是抽象思想? 在认识事物、分析和解决问题的过程中,忽略那些与当前研究目标不相关的部分, 以便将注意力集中于与当前目标相关的方面 软件开发实际上就是一个从高层次抽象到低层次抽象逐步过渡的过程 抽象例子 逐步求精(1/2) 什么是逐步求精思想? 对一个事物的认识是一个从高层次抽象向低层次抽象逐步转化和过渡的过程, 首先一般性、抽象的,然后才是具体和详细的 逐步求精的例子 逐步求精(2/2) 软件开发的抽象和逐步求精 软件的设计过程应当是在不同的抽象级别上, 逐步求精寻求问题基于计算机解的过程. 计算机软件的二种不同类型的抽象 过程抽象(计算) 数据抽象(表示) 过程抽象 什么是过程抽象 把完成一个特定功能的动作序列抽象为一个函数名和参数表(模块) 例子: 计算字符串的长度, 比较字符串 int Comare (CString, CString) int GetLength(Cstring ) 数据抽象 什么是数据抽象 把诸多数据对象的定义(描述)抽象为一个数据类型名,以后可通过该数据类型名来定义多个具有相同性质的数据对象 例子 1, 2, 3 ? Integer 软件工程书,人工智能书 ? 书 类 抽象和逐步求精例子(1/3) 抽象1.用问题域本身的语言来描述问题及其解 CAD图形软件包可画各种直线和曲线,能完成所有几何图形的计算。图形设计的结果存于图形文件中,图形文件可是几何的、正文的和其他各种设计信息 抽象和逐步求精例子(2/3) 抽象2.总体结构层次上的抽象 图形软件包软件任务 图形用户界面 创建二维图形任务 显示图形任务 管理图形文件任务 End 图形软件包 抽象和逐步求精例子(3/3) 抽象3. 过程层次抽象(以管理图形文件任务为例) Procedure 管理图形文件任务 If OpenFile Then 询问打开的文件名 打开文件 显示文件内容 Else if SaveFile Then 询问存储文件名 存储文件 End if End Procedure 模块化 什么是模块化思想? 把软件划分为一组具有相对独立功能的部件,每个部件称为一个模块,当把所有的模块组装一起时,便可获得满足用户需求的软件系统 模块化体现了“分而治之”的问题分析和解决方法 软件开发成本与模块间关系示意图 如何设计模块使得软件开发成本最小? 软件设计准则: 信息隐藏、高内聚度、低耦合度 内聚度 什么是内聚度 指该模块内各成分间彼此结合的紧密程度 内聚度分类 偶然性内聚: 模块内各成分为完成一组功能而结合在一起,关系松散 逻辑性内聚: 模块完成的诸任务逻辑上相关 时间性内聚: 模块内诸任务必须在同一时间段

您可能关注的文档

文档评论(0)

ormition + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档