第12章 软件设计.ppt
《第12章 软件设计.ppt》由会员分享,可在线阅读,更多相关《第12章 软件设计.ppt(64页珍藏版)》请在沃文网上搜索。
1、第第12章章 软件设计软件设计l软件设计概述软件设计概述l优秀设计的概念优秀设计的概念l数据设计数据设计l体系结构设计体系结构设计l用户界面设计用户界面设计l构件级设计构件级设计1西安交通大学 刘海岩12.1 软件设计概念软件设计概念1、软件设计模型的主要组成、软件设计模型的主要组成 软件设计是将软件需求转换为软件表示的软件设计是将软件需求转换为软件表示的过程,是构造和验证软件所需的三项技术活动过程,是构造和验证软件所需的三项技术活动(设计、编码、测试)之一。软件设计也是一(设计、编码、测试)之一。软件设计也是一个建模过程,以一系列迭代的步骤建立不同的个建模过程,以一系列迭代的步骤建立不同的视
2、图来描述系统。首先给出软件系统的整体表视图来描述系统。首先给出软件系统的整体表示(体系结构),然后逐步精化,给出系统构示(体系结构),然后逐步精化,给出系统构造的细节,如数据设计、接口设计、构件级设造的细节,如数据设计、接口设计、构件级设计。这四方面的设计是传统软件系统设计中的计。这四方面的设计是传统软件系统设计中的主要活动。而面向对象的设计还包括分布式体主要活动。而面向对象的设计还包括分布式体系结构的设计、进程管理等。系结构的设计、进程管理等。2西安交通大学 刘海岩2、设计目标和原则、设计目标和原则 设计目标设计目标:设计必须实现所有包含在分析模型中的需求。设计必须实现所有包含在分析模型中的
3、需求。设计必须是可读、可理解的,便于实现和维护。设计必须是可读、可理解的,便于实现和维护。设计应该提供软件的完整面貌,包括从不同角设计应该提供软件的完整面貌,包括从不同角度看到的数据、功能、行为域。度看到的数据、功能、行为域。常用的常用的设计原则设计原则:设计应该展示系统的层次结构。设计应该展示系统的层次结构。设计应该模块化。设计应该模块化。设计应该包括数据、体系结构、接口和模块的设计应该包括数据、体系结构、接口和模块的清楚表示。清楚表示。3西安交通大学 刘海岩 设计应该遵循分解、求精的原则。设计应该遵循分解、求精的原则。设计过程是一个迭代的过程,对于分析模设计过程是一个迭代的过程,对于分析模
4、型应该可跟踪,应该能适应变更。型应该可跟踪,应该能适应变更。设计不应该从头做起。设计不应该从头做起。设计应该具有一致性和集成性。设计应该具有一致性和集成性。4西安交通大学 刘海岩3、软件设计文档、软件设计文档 设计阶段的一个重要产品就是描述所构建的系统的文档。设计阶段的一个重要产品就是描述所构建的系统的文档。主要内容主要内容:前言:系统目标;主要需求前言:系统目标;主要需求 数据设计数据设计 用一系列图形和符用一系列图形和符 体系结构设计体系结构设计 号描述系统、界面号描述系统、界面 接口设计(人机交互、外部接口)接口设计(人机交互、外部接口)和构件的结构,包和构件的结构,包 每个模块(或构件
5、)的过程性设计每个模块(或构件)的过程性设计 括各级抽象。括各级抽象。集成测试策略集成测试策略 设计约束设计约束 需求交叉引用表需求交叉引用表 参考文献参考文献 附录附录 文档中还可以包含描述系统如何运行的操作手册,以及出文档中还可以包含描述系统如何运行的操作手册,以及出错后系统的重新配置或特定的安全措施。错后系统的重新配置或特定的安全措施。5西安交通大学 刘海岩12.2 优秀设计的基本概念优秀设计的基本概念 软件设计中最重要的一个问题就是软件质软件设计中最重要的一个问题就是软件质量问题,如何衡量软件设计的技术质量呢?本量问题,如何衡量软件设计的技术质量呢?本节介绍提高软件设计技术应掌握的一些
6、基本概节介绍提高软件设计技术应掌握的一些基本概念。念。1、分解与模块化、分解与模块化 Wasserman(1995)提出了提出了5种创建设计种创建设计的方法:的方法:(1)模块化分解:功能分配给模块或构件)模块化分解:功能分配给模块或构件 (2)面向数据的分解:基于全局数据结构)面向数据的分解:基于全局数据结构 6西安交通大学 刘海岩 (3)面向事件的分解:基于系统必须处理)面向事件的分解:基于系统必须处理的事件及如何改变系统状态的信息,高层描述的事件及如何改变系统状态的信息,高层描述状态目录,低层描述转换。状态目录,低层描述转换。(4)由外往内的设计:基于系统的用户输)由外往内的设计:基于系
7、统的用户输入,高层列出所有输入,低层描述如何处理每入,高层列出所有输入,低层描述如何处理每个输入。个输入。(5)面向对象的设计:系统分解为子系统,)面向对象的设计:系统分解为子系统,子系统分解成包,包分解为类,低层描述所属子系统分解成包,包分解为类,低层描述所属类的对象的数据和方法以及对象间相互的交互。类的对象的数据和方法以及对象间相互的交互。7西安交通大学 刘海岩 通过系统的数据描述、事件、用户输入、高层功能描通过系统的数据描述、事件、用户输入、高层功能描述或组合,用逐渐增加的细节创建信息层次来得到设计。述或组合,用逐渐增加的细节创建信息层次来得到设计。8西安交通大学 刘海岩 模块化是软件解
8、决复杂问题所具备的手段,模块化是软件解决复杂问题所具备的手段,E(P1P2)E(P1)E(P2)9西安交通大学 刘海岩2、抽象与求精、抽象与求精 抽象,即抽出事物本质的共同特性而暂不考虑它的抽象,即抽出事物本质的共同特性而暂不考虑它的细节。软件过程中的每一阶段都是解决方案抽象级别上细节。软件过程中的每一阶段都是解决方案抽象级别上的求精。抽象包括的求精。抽象包括 数据抽象:对数据集合命名并描述它的关键属性;数据抽象:对数据集合命名并描述它的关键属性;过程抽象:对一系列隐含的过程性步骤命名,关注过程抽象:对一系列隐含的过程性步骤命名,关注主要功能而不考虑细节。主要功能而不考虑细节。抽象帮助定义模块
9、实体,建立不同抽象级别的软件抽象帮助定义模块实体,建立不同抽象级别的软件体系结构。体系结构。求精,是详细描述的过程,用于揭示具体实现的低求精,是详细描述的过程,用于揭示具体实现的低层细节。抽象和求精是对立统一的两个方面,缺一不可层细节。抽象和求精是对立统一的两个方面,缺一不可的帮助构造出完整的设计模型。的帮助构造出完整的设计模型。10西安交通大学 刘海岩3、信息隐蔽、信息隐蔽 指在设计和确定模块时能够隐藏在模块内部的信指在设计和确定模块时能够隐藏在模块内部的信息(数据、过程)尽量在模块内部存储和定义,尽可息(数据、过程)尽量在模块内部存储和定义,尽可能的局部化。能的局部化。作用:约束我们实现模
10、块内部的过程细节和数据作用:约束我们实现模块内部的过程细节和数据结构的访问,减少因局部数据结构的变动对其他软件结构的访问,减少因局部数据结构的变动对其他软件的影响,有利于维护。的影响,有利于维护。4、模块独立性、模块独立性 模块功能的独立性是抽象和信息隐蔽性的直接产模块功能的独立性是抽象和信息隐蔽性的直接产物。独立的模块易于复用、易于维护。如何衡量软件物。独立的模块易于复用、易于维护。如何衡量软件的独立性?提出了的独立性?提出了两个定性的度量标准两个定性的度量标准耦合性和耦合性和内聚性。内聚性。11西安交通大学 刘海岩(1)耦合性()耦合性(Coupling)软件结构中各构件间相互联系紧密程度
11、的一种度量。软件结构中各构件间相互联系紧密程度的一种度量。无直接耦合无直接耦合 数据耦合数据耦合 标记耦合标记耦合 控制耦合控制耦合 公共耦合公共耦合 内容耦合内容耦合12西安交通大学 刘海岩 (2)内聚性()内聚性(Cohesion)一个构件内部各个元素彼此结合的紧密程度的度量。一个构件内部各个元素彼此结合的紧密程度的度量。偶然内聚偶然内聚 逻辑内聚:如打印不同报表的程序逻辑内聚:如打印不同报表的程序 时间内聚:初始化时间内聚:初始化 过程内聚:依次调用的过程放在一起过程内聚:依次调用的过程放在一起 通信内聚:使用同一个数据结构通信内聚:使用同一个数据结构 顺序内聚:处理必须顺序执行,前一个
12、处理的顺序内聚:处理必须顺序执行,前一个处理的 输出是下一个处理的输入输出是下一个处理的输入 功能内聚:模块内所有的元素都完成同一个功功能内聚:模块内所有的元素都完成同一个功 能,模块不能再分解。能,模块不能再分解。重要的不是区分耦合或内聚的等级,而是定义和分解重要的不是区分耦合或内聚的等级,而是定义和分解模块时需要注意强内聚、弱耦合,以提高模块独立性。模块时需要注意强内聚、弱耦合,以提高模块独立性。增强增强13西安交通大学 刘海岩12.3 数据设计数据设计 数据的结构总是软件设计的一个重要方面。数据的结构总是软件设计的一个重要方面。在构件级,数据结构和操作他们的相关算法在构件级,数据结构和操
13、作他们的相关算法的设计对高质量的应用至关重要;的设计对高质量的应用至关重要;在应用级,数据模型到数据库的转换是达到在应用级,数据模型到数据库的转换是达到系统的业务目标的关键;系统的业务目标的关键;在业务级,存储在不同数据库并重新组织为在业务级,存储在不同数据库并重新组织为“数据仓库数据仓库”的信息的集合产生了数据挖掘技术,的信息的集合产生了数据挖掘技术,从而对业务的成功具有重要影响。从而对业务的成功具有重要影响。在每一种情况,数据设计均扮演了重要角在每一种情况,数据设计均扮演了重要角色。色。14西安交通大学 刘海岩 在过去一般情况下,数据的设计仅局限于将分在过去一般情况下,数据的设计仅局限于将
14、分析时创建的信息域模型(析时创建的信息域模型(ERD、DD)转换成软件构转换成软件构件级的数据结构和应用级的数据库体系结构。件级的数据结构和应用级的数据库体系结构。为满足当今企业对大中型规模的业务信息的需为满足当今企业对大中型规模的业务信息的需求,特别希望信息是跨功能的。求,特别希望信息是跨功能的。数据挖掘技术数据挖掘技术可以可以遍历现存的数据库以试图抽取合适的业务级信息。遍历现存的数据库以试图抽取合适的业务级信息。然而由于多个数据库结构不同、库中信息命名然而由于多个数据库结构不同、库中信息命名格式及详细程度不同以及许多其他因素使得很难在格式及详细程度不同以及许多其他因素使得很难在现存的数据库
15、环境中进行数据挖掘。现存的数据库环境中进行数据挖掘。一个可选的解决方案是建立不同于一般数据库一个可选的解决方案是建立不同于一般数据库的大的的大的数据仓库数据仓库,存放以主要业务主题进行组织的、存放以主要业务主题进行组织的、展示统一定义标准的并在较长时间内保持稳定的数展示统一定义标准的并在较长时间内保持稳定的数据。据。15西安交通大学 刘海岩 1、数据数据仓库仓库与数据与数据库库的区的区别别:一个数据一个数据仓库仓库是一个分离的数据是一个分离的数据环环境,它境,它不是直接和日常的不是直接和日常的应应用集成,但包含了某用集成,但包含了某业务业务使用的所有数据,即服使用的所有数据,即服务务于于业务业
16、务所需的一所需的一组应组应用。但很多特征使得一个数据用。但很多特征使得一个数据仓库仓库不同于典型不同于典型的数据的数据库库:面向决策面向决策:数据:数据仓库仓库是根据决策分析的需是根据决策分析的需要按主要按主题题来来组织组织,不是根据,不是根据业务过业务过程和功能来程和功能来组织组织。不需要。不需要对对解决主解决主题题无用的数据。如分析无用的数据。如分析产产品市品市场销场销售状况,需要:用售状况,需要:用户户的意的意见见、库库存存及及产产品品销销售数据、售数据、竞竞争争对对手的手的产产品的品的销销售数据售数据等,但不需要等,但不需要产产品生品生产过产过程的数据。程的数据。16西安交通大学 刘海
17、岩 集成性集成性:不管数据来源与哪个数据:不管数据来源与哪个数据库库、文件、文件等,数据等,数据仓库仓库展展现现一致的命名一致的命名约约定、定、计计量量单单位、位、度量度量标标准、准、编码结编码结构和物理属性。构和物理属性。时变时变性性:容:容纳较长时间纳较长时间段(段(510年)的静年)的静态态数据。而数据数据。而数据库库提供的是提供的是动态动态数据(不断插入、数据(不断插入、删删除、更新),反映当前除、更新),反映当前业务处业务处理状况,保存理状况,保存时时间较间较短。数据迁移到数据短。数据迁移到数据仓库仓库或或备备份后,数据份后,数据库库就会更新。就会更新。在在线线分析分析:数据:数据库
18、库的的访问访问和在和在线查询线查询往往通往往通过过工具来提供,在工具来提供,在线线分析的功能取决于系分析的功能取决于系统统的的规规划和划和设计设计。而数据。而数据仓库仓库的数据的数据组织组织需要数据的抽需要数据的抽取、取、转换转换、清洗、装、清洗、装载载等繁等繁琐琐工作。一个数据工作。一个数据仓仓库库系系统统往往同往往同时时存在多种数据抽取方式以适存在多种数据抽取方式以适应应原原始数据的多始数据的多样样格局。格局。17西安交通大学 刘海岩2、数据仓库系统包括、数据仓库系统包括:数据数据仓库仓库技技术术(Data Warehousing,DW)在在线线分析分析处处理技理技术术(On-Line A
19、nalytical Processing,OLAP)数据挖掘技数据挖掘技术术(Data Mining,DM)18西安交通大学 刘海岩12.4 体系结构设计体系结构设计 1、什么是软件体系结构、什么是软件体系结构 随着软件系统越来越大、越来越复杂,软件设计随着软件系统越来越大、越来越复杂,软件设计的核心已经转移到新的计算模式,非传统的的核心已经转移到新的计算模式,非传统的“程序程序算法数据结构算法数据结构”,新的模式就是系统总体结构的设,新的模式就是系统总体结构的设计和规范。计和规范。软件体系结构软件体系结构(Architecture)为软件系统提供了为软件系统提供了一个结构、行为和属性的高级抽
20、象。由构成系统的元一个结构、行为和属性的高级抽象。由构成系统的元素(构件)的描述、这些元素的相互作用、指导元素素(构件)的描述、这些元素的相互作用、指导元素集成的模式以及模式的约束组成。集成的模式以及模式的约束组成。软件体系结构不仅指出了系统的组织结构和拓扑软件体系结构不仅指出了系统的组织结构和拓扑结构,并显示了系统需求和构成系统元素之间的对应结构,并显示了系统需求和构成系统元素之间的对应关系,提供了一些设计决策的基本原理。关系,提供了一些设计决策的基本原理。19西安交通大学 刘海岩 软件体系结构的模型有下列几种:软件体系结构的模型有下列几种:结构模型结构模型:是构件、连接件(定义构件之间交互
21、:是构件、连接件(定义构件之间交互规则、消息协议的构造模块)有组织的集合。反映系规则、消息协议的构造模块)有组织的集合。反映系统的重要语义内容,包括系统的配置、约束等。统的重要语义内容,包括系统的配置、约束等。框架模型框架模型:与结构模型类似,不侧重细节,侧重:与结构模型类似,不侧重细节,侧重于系于系 统的整体结构(模式)。统的整体结构(模式)。动态模型动态模型:补充模型,强调系统的行为性质。:补充模型,强调系统的行为性质。过程模型过程模型:注重系统必须适应业务和技术的过程。:注重系统必须适应业务和技术的过程。功能模型功能模型:一组功能构件按层次组成,底层向上:一组功能构件按层次组成,底层向上
22、层提供服务,是一种特殊的框架模型。层提供服务,是一种特殊的框架模型。这些模型可用语言(这些模型可用语言(ADL)描述,也可用图形描述,也可用图形(UML)描述。描述。20西安交通大学 刘海岩2、分布式体系结构、分布式体系结构 (1)客户机服务器体系结构)客户机服务器体系结构 客户机服务器(客户机服务器(Client-Server,C/S)系统是至少包系统是至少包含一个服务器和一个客户机的分布式系统。在分布式系含一个服务器和一个客户机的分布式系统。在分布式系统中(统中(distributed system),计算由不同的程序执行,计算由不同的程序执行,这些程序一般运行在不同的硬件上,合作完成系统
23、的任这些程序一般运行在不同的硬件上,合作完成系统的任务。务。服务器服务器就是为其他程序提供某些服务的程序,其他就是为其他程序提供某些服务的程序,其他程序使用通讯通道与服务器相连接。程序使用通讯通道与服务器相连接。客户机客户机就是访问服就是访问服务器的程序。它们之间的通信以务器的程序。它们之间的通信以“请求请求响应响应”的方的方式进行。客户机可以访问许多服务器来执行不同的功能,式进行。客户机可以访问许多服务器来执行不同的功能,而服务器可以同时被许多客户机所访问。除了同步请求而服务器可以同时被许多客户机所访问。除了同步请求或接收结果的时候,客户和服务器中的控制流都是相互或接收结果的时候,客户和服务
24、器中的控制流都是相互独立的。独立的。21西安交通大学 刘海岩C/S体系结构的优点:体系结构的优点:客客户端集中端集中处理事理事务中的有关中的有关输入入/输出。出。服服务器端器端负责与数据与数据处理理紧密相关的密相关的业务逻辑计算,算,DBMS和数据操作都在同一机器上运行,效率高。和数据操作都在同一机器上运行,效率高。服服务器只是把器只是把处理理结果返回果返回给客客户端,响端,响应速度快速度快 (局域网)。(局域网)。可在客可在客户端端处理复理复杂的表达。的表达。问题:客客户端和服端和服务器端直接器端直接连接,安全性低。接,安全性低。客客户端程序端程序庞大,且根据企大,且根据企业规则的的变化随化
25、随时要更新,要更新,维护工作量大。工作量大。服服务器器为每个客人每个客人户建立建立连接,接,资源消耗大。源消耗大。客客户端和服端和服务器端直接器端直接传输的数据量大,易造成网的数据量大,易造成网络阻塞阻塞。22西安交通大学 刘海岩(2)浏览器)浏览器/Web服务器体系结构服务器体系结构 简称简称 B/S(Browser-Server)结构,实质上也是一种)结构,实质上也是一种C/S结结构。客户机通过互联网与服务器通信。构。客户机通过互联网与服务器通信。优点:优点:客户端采用统一的标准浏览器界面,使用方便。客户端采用统一的标准浏览器界面,使用方便。简化了客户,软件开发和维护工作转移到了简化了客户
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第12章 软件设计 12