软件工程第四章软件设计.ppt
《软件工程第四章软件设计.ppt》由会员分享,可在线阅读,更多相关《软件工程第四章软件设计.ppt(85页珍藏版)》请在优知文库上搜索。
1、 第第4讲讲 软件设计软件设计第第4讲讲 软件设计软件设计4.1 4.1 软件设计的任务、过程和原则软件设计的任务、过程和原则4.2 4.2 软件设计的基本概念和原理软件设计的基本概念和原理4.3 4.3 面向数据流的结构化设计方法面向数据流的结构化设计方法4.4 4.4 数据设计数据设计4.5 4.5 用户界面设计用户界面设计4.6 4.6 软件过程设计软件过程设计4.7 4.7 软件设计文档的内容及其复审的方法软件设计文档的内容及其复审的方法 4.1 4.1 软件设计的任务、过程和原则软件设计的任务、过程和原则比如,如果信息安全是对用户的关键需求,那么体系结构设计时就比如,如果信息安全是对
2、用户的关键需求,那么体系结构设计时就应该采用分层结构,将重要资源放在内层。应该采用分层结构,将重要资源放在内层。如果可用性是一个关键需求,则需要考虑冗余的体系结构设计。如果可用性是一个关键需求,则需要考虑冗余的体系结构设计。软件设计的任务软件设计的任务将软件需求规格说明书将软件需求规格说明书转化为实际软件系转化为实际软件系统的一个模型或软件表示。统的一个模型或软件表示。形成必要的设计文档,包括:软件概要设形成必要的设计文档,包括:软件概要设计说明书,软件详细设计说明书,数据库计说明书,软件详细设计说明书,数据库设计说明书设计说明书软件设计的主要内容软件设计的主要内容 数据设计数据设计将实体将实
3、体关系图中描述的对象和关系,以及数据词关系图中描述的对象和关系,以及数据词典中描述的详细数据内容转化为数据结构的定义。典中描述的详细数据内容转化为数据结构的定义。 体系结构设计体系结构设计定义软件系统各主要模块的功能及其之间的关系。定义软件系统各主要模块的功能及其之间的关系。 接口设计接口设计根据数据流图定义软件内部各成份之间、软件与其根据数据流图定义软件内部各成份之间、软件与其它协同系统之间及软件与用户之间的交互机制。它协同系统之间及软件与用户之间的交互机制。 过程设计过程设计把结构成分转换成软件的过程性描述。把结构成分转换成软件的过程性描述。软件设计与软件需求之间的关系软件设计与软件需求之
4、间的关系 数据词典 数 据 流 图 实实 体 关 系 图 状态转换图 加 工 控 制 规 规 格 格 说 说 明 明 数 据 对 象 描 述 过程设计 接口设计 体系结构设计 数据设计 软件设计可细分为两个阶段软件设计可细分为两个阶段 概要设计:确定系统的概要设计:确定系统的主要模块主要模块构成以及这些模构成以及这些模块相互间的块相互间的关系关系 详细设计:对此框架中每一部件进行过程化描述,详细设计:对此框架中每一部件进行过程化描述,把它刻画为在细节上非常把它刻画为在细节上非常接近于源程序的软件表示。接近于源程序的软件表示。例:机器人控制系统例:机器人控制系统4.2 4.2 软件设计的基本概念
5、和原理软件设计的基本概念和原理 1 1)模块化)模块化模块化就是将大型软件按照规定的原则划模块化就是将大型软件按照规定的原则划分解分解成一个个成一个个较小的、相对独立的但又相互关联的模块的设计方法。较小的、相对独立的但又相互关联的模块的设计方法。nPASCAL中的BeginEnd对nC、C+和Java语言中的 . 对n过程、函数、子程序和宏等n面向对象方法中的对象是模块,对象内的方法也是模块模块化依据模块化依据 C(P1+P2) C(P1)+C(P2) C(P1+P2) C(P1)+C(P2) E(P1+P2) E(P1)+E(P2) E(P1+P2) E(P1)+E(P2)1 1)模块化)模
6、块化模块的分解不能太多也不能太少。模块的分解不能太多也不能太少。2 2)抽象)抽象 解决问题时只考虑与问题有关的方面,不考虑与解决问题时只考虑与问题有关的方面,不考虑与问题无关的方面。即抽出事物的本质特性而不考问题无关的方面。即抽出事物的本质特性而不考虑细节。虑细节。3 3)信息隐藏)信息隐藏 模块内部的数据与过程模块内部的数据与过程( (操作操作) ),应该对不需要了解这,应该对不需要了解这些数据和过程(操作)的模块隐藏起来。些数据和过程(操作)的模块隐藏起来。信息隐藏的目的信息隐藏的目的 提高模块的独立性,减少把一个模块的错误扩散到其提高模块的独立性,减少把一个模块的错误扩散到其他模块中去
7、的机会。他模块中去的机会。信息隐藏的例子信息隐藏的例子全局变量:任何函数都可以访问。全局变量:任何函数都可以访问。堆栈:堆栈:通过函数通过函数PushPush()、()、PopPop()、()、Clear() Clear() 操作栈操作栈其他函数并需要、也不知道栈的具体情况。其他函数并需要、也不知道栈的具体情况。4 4)软件复用)软件复用 软件复用是指在两次或多次不同的软件开发过程软件复用是指在两次或多次不同的软件开发过程中重复使用相同或相似软件元素的过程。中重复使用相同或相似软件元素的过程。构件构件(component)(component)可以复用的软件成分,可被可以复用的软件成分,可被用
8、来构造其他软件。它可以是:用来构造其他软件。它可以是: 被封装的对象类被封装的对象类 功能模块功能模块 软件架构(或体系结构软件架构(或体系结构ArchitectureArchitecture) 设计模式等设计模式等5 5)模块独立性)模块独立性模块独立性的度量:内聚度和耦合度模块独立性的度量:内聚度和耦合度内聚:指模块内部各个成分之间的联系。也称:块内聚:指模块内部各个成分之间的联系。也称:块内联系、模块强度。内联系、模块强度。耦合:指一个模块与其它模块之间的联系。也称块耦合:指一个模块与其它模块之间的联系。也称块间联系。间联系。模块独立性的度量准则:模块独立性的度量准则:块内联系程度越强、
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 第四 软件设计