-结构化系统设计(总体设计)精要教案.ppt
《-结构化系统设计(总体设计)精要教案.ppt》由会员分享,可在线阅读,更多相关《-结构化系统设计(总体设计)精要教案.ppt(104页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-结构化系统设计(总体设计)精要 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望本章主要内容本章主要内容l8.1 软件架构的设计(软件架构的设计(achitecture)l8.2 结构化软件结构设计的基本概念结构化软件结构设计的基本概念(structure)l8.3 结构化软件结构设计方法结构化软件结构设计方法(structure)8.1 软件架构的设计(软件架构的设计(achitecture)l8.1.1 什么是软件架构什么是软件架构l8.1.2 架构设计架构设
2、计8.1.1.软件架构的概念软件架构的概念l建筑、文学、音乐、机械、电子、计算机软硬件等建筑、文学、音乐、机械、电子、计算机软硬件等领域都会使用领域都会使用“架构(架构(architecture)”这一概念。这一概念。架构都提供了系统最高层的设计方案,以确保建筑、架构都提供了系统最高层的设计方案,以确保建筑、小说、乐曲、设备、计算机等系统满足期望的特性。小说、乐曲、设备、计算机等系统满足期望的特性。好的建筑应该美观、坚固、实用好的建筑应该美观、坚固、实用好的计算机应用系统应该实用、好维护、可靠、性价比高好的计算机应用系统应该实用、好维护、可靠、性价比高l架构师(架构师(architect)需要
3、发现特定系统的最重要的)需要发现特定系统的最重要的关注点,设计某种折衷的总体方案以满足关注点。关注点,设计某种折衷的总体方案以满足关注点。l架构包含系统的一组基本结构(架构包含系统的一组基本结构(structure),每种),每种结构都有各种类型的部件(结构都有各种类型的部件(component)及其关系)及其关系构成,架构描述了这些部件的组合、相互调用参照、构成,架构描述了这些部件的组合、相互调用参照、通信以及其他动态交互。通信以及其他动态交互。架构和结构的关系架构和结构的关系l架构是抽象无形的,体现高层全局的决策,就像文架构是抽象无形的,体现高层全局的决策,就像文章的中心思想和提纲。章的中
4、心思想和提纲。l结构是具体有形的,体现决策的贯彻,如同文章的结构是具体有形的,体现决策的贯彻,如同文章的每个段落及细节描述。每个段落及细节描述。l架构包含了结构的初步描述和决策。架构包含了结构的初步描述和决策。l相同架构的系统,具体结构允许有差异。相同架构的系统,具体结构允许有差异。使用桥梁来比喻使用桥梁来比喻l桥梁的架构设计可以使用草图描述,架构决定了桥梁桥梁的架构设计可以使用草图描述,架构决定了桥梁的基本结构部件。的基本结构部件。桥梁有梁式桥、拱桥、斜拉桥、悬索桥等架构桥梁有梁式桥、拱桥、斜拉桥、悬索桥等架构斜拉桥的基本结构:斜拉桥的基本结构:索塔索塔 主梁主梁 斜拉索斜拉索 使用桥梁来比
5、喻使用桥梁来比喻l桥梁的结构设计则需要考虑各种部件的数量、材料、桥梁的结构设计则需要考虑各种部件的数量、材料、重量、形态等方面,是可以施工的严谨的结构图。重量、形态等方面,是可以施工的严谨的结构图。架构是抽象的,对结构进行了设计和限定,每座桥的结构架构是抽象的,对结构进行了设计和限定,每座桥的结构是具体有形的、元素组合千变万化是具体有形的、元素组合千变万化1.软件架构软件架构l软件架构(软件架构(software architecture)的定义没有统)的定义没有统一的版本,一般认为:一个应用程序或计算系统的一的版本,一般认为:一个应用程序或计算系统的软件架构是一个或一组结构,它包含组成系统的
6、软软件架构是一个或一组结构,它包含组成系统的软件元素、这些元素对外可见的性质以及它们之间的件元素、这些元素对外可见的性质以及它们之间的关系。对外可见的性质指软件元素能够提供的服务、关系。对外可见的性质指软件元素能够提供的服务、性能特征、错误处理、共享资源的用法等。性能特征、错误处理、共享资源的用法等。软件的一个结构元素可能是一个子系统、构件、进程、库、软件的一个结构元素可能是一个子系统、构件、进程、库、数据库、计算结点、遗留系统等等。数据库、计算结点、遗留系统等等。l软件架构是最高层次的系统分解,它不会囊括所有软件架构是最高层次的系统分解,它不会囊括所有的结构和行为的定义,它只关注那些被认为是
7、重要的结构和行为的定义,它只关注那些被认为是重要的元素。的元素。n架构难以更改,一旦修改,意味着整个系统重建,而结构架构难以更改,一旦修改,意味着整个系统重建,而结构修改只影响局部。修改只影响局部。2.软件架构模式软件架构模式l大部分的架构来源于有相似关注点的系统的总结和大部分的架构来源于有相似关注点的系统的总结和抽象,这些相似性被描述成某种特殊模式的架构风抽象,这些相似性被描述成某种特殊模式的架构风格,也就是架构模式(格,也就是架构模式(architectural pattern)。)。l一种架构模式就是一个经验秘籍,架构师在设计不一种架构模式就是一个经验秘籍,架构师在设计不同系统时可以重复
8、使用这些先进经验。同系统时可以重复使用这些先进经验。图图10.110.1就是桥梁的四种常用架构模式。就是桥梁的四种常用架构模式。中国建筑有一种攒尖模式,被广泛应用在古典园林中,如中国建筑有一种攒尖模式,被广泛应用在古典园林中,如三角、四角、五角、八角等亭子,宫殿、坛庙大量应用。三角、四角、五角、八角等亭子,宫殿、坛庙大量应用。软件架构模式软件架构模式l软件架构模式就是可重复使用的软件结构风格软件架构模式就是可重复使用的软件结构风格。8.1.2 架构设计架构设计l主机主机-终端的集中控制结构终端的集中控制结构l分布式对象结构分布式对象结构l客户机客户机-服务器的分布式结构服务器的分布式结构C/S
9、C/S结构结构B/SB/S结构结构1、主机主机-终端式结构终端式结构l软件配置在主机上,处理能力也集中于主机软件配置在主机上,处理能力也集中于主机l终端用于输入和输出,无终端用于输入和输出,无CPUCPU主机Host终端Terminal控制台Console主机主机-终端的一般硬件配置终端的一般硬件配置l主机终端网络拓扑结构主机终端网络拓扑结构.CPUCPU.控台控台.汉字用户终端一期 40台,二期100台,小型打印机一期 5台,二期 8 台激光打印机2 台,行打1台3台磁带机4000M硬盘通信控制器中心终端,一期 2 台,二期 10 台2、分布式对象结构分布式对象结构l每个对象在逻辑上是平等的
10、,它们可以互相为对每个对象在逻辑上是平等的,它们可以互相为对方提供所需的服务。方提供所需的服务。l提供服务的对象就是服务器,而提出服务请求的提供服务的对象就是服务器,而提出服务请求的对象就是客户。对象就是客户。软件总线软件总线(ORB)O1S(O1)O2S(O2)OnS(On)分布式对象结构分布式对象结构分布式对象结构的网络拓扑模型分布式对象结构的网络拓扑模型l分布式对象结构分布式对象结构.通信控制器PC1PC2PC3点阵打印机硬盘驱动器激光打印机a.星形网络.PC1PC2PC3点阵打印机激光打印机b.总线形网络.PC1PC2PC3硬盘驱动器激光打印机c.环形网络3、客户机客户机-服务器结构服
11、务器结构l处理分布于客户机和服务器。处理分布于客户机和服务器。l客户机完成本地运算,可向服务器请求某种服务客户机完成本地运算,可向服务器请求某种服务(如查询数据),服务器响应请求,完成运算后,(如查询数据),服务器响应请求,完成运算后,将结果返回给客户机将结果返回给客户机数据库服务器客户机数据库客户机客户机-服务器的一般硬件配置服务器的一般硬件配置l客户机客户机/服务器结构服务器结构.微机.微机微机工作站.工作站数据库服务器数据库服务器应用服务器客户机客户机-服务器的软件配置服务器的软件配置lClient/Server(C/S):应用程序配置于客户机,:应用程序配置于客户机,DBMS配置于服务
12、器。配置于服务器。数据库数据库数据库数据库服务器服务器数据库数据库服务器服务器Web应用应用服务器服务器数据库数据库Browser/Server(B/S):):应用程序配置于应用程序配置于Web应用服务器,客户端配置浏览器程序应用服务器,客户端配置浏览器程序B/S的工作机制的工作机制lB/S结构结构(Internet架构架构).用户.用户.用户WEB服务器服务器数据库服务器数据库服务器ODBC数据请求返回数据数据请求返回数据Lan连接HTTP连接如何选择架构模式如何选择架构模式l内部管理、安全性要求高、后台少数人使用的功内部管理、安全性要求高、后台少数人使用的功能采用能采用WindowsWin
13、dows界面的界面的C/SC/S结构,也称为胖客户端。结构,也称为胖客户端。l外部用户较多的功能采用浏览器界面的外部用户较多的功能采用浏览器界面的B/SB/S结构,结构,也成为瘦客户端。也成为瘦客户端。胖客户端胖客户端/瘦客户端,各有优缺点:瘦客户端,各有优缺点:lC/SC/S架构的缺点主要是部署、更新的问题。架构的缺点主要是部署、更新的问题。lB/SB/S架构的缺点主要是受制于架构的缺点主要是受制于HTMLHTML的限制,无法像的限制,无法像C/SC/S那样使用丰富的效果来展示数据,用户体验比那样使用丰富的效果来展示数据,用户体验比较糟糕。较糟糕。软件架构的最新发展软件架构的最新发展丰富客户
14、端丰富客户端lRIARIA(Rich Internet ApplicationRich Internet Application)的出现给我)的出现给我们带来重新在客户端和服务器端进行更好的平衡们带来重新在客户端和服务器端进行更好的平衡的机会。是集桌面应用程序的最佳用户界面功能的机会。是集桌面应用程序的最佳用户界面功能与与WebWeb应用程序的普遍采用和快速、低成本布署以应用程序的普遍采用和快速、低成本布署以及互动多媒体通信的实时快捷于一体的新一代网及互动多媒体通信的实时快捷于一体的新一代网络应用程序络应用程序 。l有以下特点:有以下特点:在消息确认和格式编排方面提供互动用户界面在消息确认和格
15、式编排方面提供互动用户界面在无刷新页面之下提供快捷的界面响应时间(在无刷新页面之下提供快捷的界面响应时间(AjaxAjax技技术术Asynchronous JavaScript and XML Asynchronous JavaScript and XML)提供通用的用户界面特性如拖放式(提供通用的用户界面特性如拖放式(drag and dropdrag and drop)以及在线和离线操作能力以及在线和离线操作能力结合了结合了B/SB/S配置的优势和配置的优势和C/SC/S界面丰富的特点界面丰富的特点8.2 结构化软件结构设计的基本概念结构化软件结构设计的基本概念(structure)l8.
16、2.1 结构化设计内容结构化设计内容l8.2.2 结构化设计思想结构化设计思想l8.2.3 模块模块l8.2.4 结构图结构图l8.2.5 模块的联系模块的联系l8.2.6 模块间的耦合模块间的耦合l8.2.7 模块的内聚模块的内聚l8.2.8 启发规则启发规则l采用强调自顶向下、逐层分解的功能模块设计,也称采用强调自顶向下、逐层分解的功能模块设计,也称为为结构化设计。主要包括:结构化设计。主要包括:-将系统划分成功能模块(将系统划分成功能模块(ModuleModule););-决定每个模块的功能;决定每个模块的功能;-决定模块的调用关系;决定模块的调用关系;-决定模块的界面(决定模块的界面(
17、InterfaceInterface,接口),即调用时传入的信,接口),即调用时传入的信息(函数参数),以及返回的信息(返回值)。息(函数参数),以及返回的信息(返回值)。l主要模型:模块结构图(主要模型:模块结构图(SC,Structure Chart),也),也称功能结构图。称功能结构图。8.2.1 设计内容设计内容8.2.2 设计思想设计思想l结构化:自顶向下,逐层分解求精结构化:自顶向下,逐层分解求精l结构化设计:软件模块化,按层次划分结构化设计:软件模块化,按层次划分模块化因为根据经验:因为根据经验:n对于问题对于问题1(P1)和问题)和问题2(P2)n若:若:C(P1)C(P2)n
18、则则:E(P1)E(P2)n有规律显示:有规律显示:n C(P1+P2)C(P1)+C(P2)n则:则:E(P1+P2)E(P1)+E(P2)nC表示复杂度,表示复杂度,E表示需要的工作量表示需要的工作量模块化设计方法模块化设计方法l使用功能分解一定程度上能够简化系统结构,使系使用功能分解一定程度上能够简化系统结构,使系统容易修改和理解。统容易修改和理解。l具体做法:具体做法:把整个软件划分为部分,其中每一部分的功能简单明确,把整个软件划分为部分,其中每一部分的功能简单明确,即程序模块(可以是子过程或函数)即程序模块(可以是子过程或函数)划分模块的工作按层次进行,上层模块调用下层模块划分模块的
19、工作按层次进行,上层模块调用下层模块每一个模块应尽可能独立每一个模块应尽可能独立模块间的调用接口要阐明(模块名称、输入数据、输出数模块间的调用接口要阐明(模块名称、输入数据、输出数据)据)8.2.3 模块模块l模块模块(Module)一词使用很广泛。通常对应于用一个一词使用很广泛。通常对应于用一个名字就可以调用的一段程序语句(子程序或函数)。名字就可以调用的一段程序语句(子程序或函数)。l模块具有输入和输出、逻辑功能、运行程序、内部模块具有输入和输出、逻辑功能、运行程序、内部数据四种属性。数据四种属性。计算年龄计算年龄模块的图形表示方法模块的图形表示方法模块的函数接口表示模块的函数接口表示in
20、t GetAge(date birthday)小程序练习小程序练习l计算计算 5!6!7!。!。l代码如下:代码如下:x1=1;for(int i=1;i=5;i+)x1=x1*i;x2=1;for(int i=1;i=6;i+)x2=x2*i;x3=1;for(int i=1;i=7;i+)x3=x3*i;x4=x1+x2+x3;封装一个求阶乘封装一个求阶乘的模块吧!的模块吧!定义和调用子过程定义和调用子过程lC#定义:定义:Public void PrintGradeReport(String stuID)调用:调用:PrintGradeReport(“2008012264”);模块之子程
21、序模块之子程序l可可视视化化程程序序设设计计采采用用事事件件驱驱动动的的编编程程技技术术,使使用用事事件件过程,事件过程也是子程序。过程,事件过程也是子程序。l例如按钮例如按钮button1单击的事件过程如下:单击的事件过程如下:lC#.NET:事件过程的定义:事件过程的定义:private void button1_Click(object sender,EventArgs e)事件过程的调用(与事件绑定后自动完成调用):事件过程的调用(与事件绑定后自动完成调用):this.button1.Click+=new System.EventHandler(this.button1_Click);
22、模块之事件过程模块之事件过程l与子过程的区别:与子过程的区别:函数存在返回值函数存在返回值调用函数通常要使用其返回值调用函数通常要使用其返回值lC#定义函数定义函数 Public long Factorial(int n)调用函数调用函数 x1=Factorial(5);x2=Factorial(6);模块之函数模块之函数接口成本接口成本/集成成本集成成本成本成本/工作量工作量模块数量模块数量单元模块成本单元模块成本软件总成本软件总成本模块数量和软件成本模块数量和软件成本 粒度太大,单个模块复杂度升高、维护困难粒度太大,单个模块复杂度升高、维护困难 粒度太小,管理与运行成本升高粒度太小,管理与
23、运行成本升高试想一下:每个经理管理协调多少个下级合适?试想一下:每个经理管理协调多少个下级合适?8.2.4 结构图结构图l结构图结构图(Structure Chart)描述系统的模块结构及模描述系统的模块结构及模块间的联系块间的联系l 结构图中的主要成分有:结构图中的主要成分有:模块:模块:用长方形表示用长方形表示调用:调用:从一个模块指向另一模块的箭头表示前一个模块调从一个模块指向另一模块的箭头表示前一个模块调用后一个模块。有循环调用和条件调用用后一个模块。有循环调用和条件调用数据:数据:用带圆圈的小箭头表示从一个模块传递给另一模块用带圆圈的小箭头表示从一个模块传递给另一模块的数据(有实义)
24、的数据(有实义)控制信息:控制信息:带涂黑圆圈的小箭头表示一个模块传送给另一带涂黑圆圈的小箭头表示一个模块传送给另一模块的控制信息模块的控制信息主调模块主调模块被调模块被调模块被调模块被调模块主调模块主调模块被调模块被调模块被调模块被调模块循环调用条件调用l结构图无严格的模块调用顺序,但一般习惯从左至右结构图无严格的模块调用顺序,但一般习惯从左至右l因为约定遵从从上向下的调用,调用关系也可以不使因为约定遵从从上向下的调用,调用关系也可以不使用箭头,而直接使用直线用箭头,而直接使用直线l模块间传递的信息如果出现在数据字典中,则视为数模块间传递的信息如果出现在数据字典中,则视为数据,否则为控制信息
25、据,否则为控制信息结构图的画法结构图的画法计算获得有效数据生成报表打印报表读入数据核对数据打印表头打印表尾显示无效数据打印一行有效数据EOF数据EOF有效数据数据有效数据结果EOF结果日期数据行总计行总计一个完整的结构图一个完整的结构图简单画法的结构图(简单画法的结构图(H图)图)l借书模块还可分解:借书模块还可分解:验证读者身份、修改图书状态、保存借阅记录等验证读者身份、修改图书状态、保存借阅记录等l简化后,忽略信息传递的结构图如下:简化后,忽略信息传递的结构图如下:8.2.5 模块的联系模块的联系l为了衡量模块的相对独立性,提出了模块间的耦合为了衡量模块的相对独立性,提出了模块间的耦合(C
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 结构 系统 设计 总体 精要 教案
限制150内