软件工程5-2

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

体系结构的基本问题-1软件系统的框架与体系结构-2面向对象的设计模式-3MVC结构与用户界面设计-4基于构件的软件体系结构-5从需求分析到系统设计过程-6软件系统设计规范管理-7第五部分软件体系结构与系统概要设计第五部分软件体系结构与系统概要设计第二章软件系统的框架与体系结构框架与体系结构的概念-2.1二个最典型的体系结构模型-2.2体系结构层次模型-2.3典型的系统结构模式层体系结构-2.4体系结构构成的二个方面:部件和规则构成系统的原始的或集成的部件:语句、程序模块、数据结构由部件集成为系统的静态集成规则:模块划分、连接方式为系统提供语义的动态行为规则:控制模式、并行/同步模式软件设计发展过程中,对体系结构认识的三个层次执行级代码级包括算法和数据结构的选择。在此,部件是程序设计语言的字符、指针、进程控制等,集成的是记录、数组和过程结构级包括与部件相关联的系统总体性能。在此,部件是模块、模块的相互关系,它指明从模块到子系统、到系统的集成在上世纪80年代,软件开发者关注的是代码级的,如今关注的是结构级体系结构的更高层次问题设计模式、风格、框架、体系结构2.1框架与体系结构的概念今天,模块的含义已经有了很大变化设计模式(DesignPatterns)模式:一种趋于固定的结构方式例如:悲剧-《哈姆雷特》、言情-台湾琼遥、武打动作片-成龙、惊险片-美国大片等软件设计模式:是软件设计中总结出来的、广泛应用和成熟的结构和结构关系成功的模式,能针对特定问题,采用成熟和成功的方法,比重新设计要好的多建筑师C.Alexander给出的经典定义是:每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心。通过这种方式,你可以无数次地使用那些已有的解决方案,无需在重复相同的工作。与艺术不同,工程领域,对经多年的磨练、完善和提高而获得的成功模式,愿意加以反复使用,模式为重用提供了基础2.1框架与体系结构的概念模式分类:结构模型(ArchitecturalPatterns)表达了软件系统的基本结构组织形式或者结构方案它包含一组预定义的子系统,规定了这些子系统的责任,同时还提供了用于组织和管理这些子系统的规则和向导设计模式(DesignPatterns)为软件系统的子系统、组件或者组件之间的关系提供一个精炼之后的解决方案它描述了在特定环境下,用于解决通用软件设计问题的组件以及这些组件相互通信时的可重现结构惯用型(Idioms)是一个与编程语言相关的低级模式它描述了如何实现组件的某些功能,或者利用编程语言的特性来实现组件内部要素之间的通信功能2.1框架与体系结构的概念结构化程序设计的模式抽象、封装、信息隐蔽、模块化、偶合、策略与实现的分离、接口与实现的分离等面向对象设计的模式(最主要的23个,及一些补充)构造型模式:抽象工厂、构造器、工厂、原型、单件整体-部分、计数指针、视图句柄结构型模式:适配器、桥接、组合、装饰、外观、享元、代理主从、模型-视图-控制、表示-抽象-控制行为型模式:责任链、命令、解释器、迭代器、中介者、备忘录、观察者、状态、策略、模板方法、访问者生存周期、发送-接收者、客户-分遣-服务器、出版-订购者、反射体系结构的风格、设计模式和框架风格(ArchitectureStyles)风格是带有倾向性的模式同一个问题,可以有不同的解决问题的模式,但我们根据经验,通常会采用特定的模式,这就是风格软件风格是对软件构成带有整体性、普遍性、一般性的结构和结构关系的方法因此,软件风格是一种特定的基本结构,表达了部件之间的特定的关系和应用约束(设计和集成规则)广泛提到的风格包括:管道和过滤器、数据抽象和对象、隐式调用/消息、层次、仓库、解释器、过程控制、分布式系统、客户/服务器、、主程序/子程序、状态转换、专用领域等体系结构的风格、设计模式和框架框架(Framework)随着应用的发展和完善,某些带有整体性的应用结构被逐步“固定”下来,形成了特定的框架,包括基本构成单元和关系框架更多地关注于特定应用领域,其解决方案已经建立了一个比较成熟的体系结构,所以,也称为应用框架因此,框架是一个特定应用领域问题的体系模式从组成上看,框架是一个待实例化的完整系统,它定义了软件系统的族和关系、创建了基本的构建模块,定义了涉及功能更改和扩充的插件的位置通俗地讲,框架就是一个舞台,要演什么样的戏,受舞台布景、道具、灯光等总体氛围的限制,但在此框架内,能演成什么样,那就看演员自己了体系结构的风格、设计模式和框架在面向对象的系统中,框架就是由多个抽象和具体类、或具有特定关系组成的类簇(集合)框架的实例化,就是对现有类的组合、子类化框架规定了应用体系结构,定义了它的构成、类、对象的分割、各部件的职能、类和对象的协作关系,以及控制流程框架定义了这些设计参数后,开发者就可以集中精力解决自身必须解决的系统配置问题为什么要用框架?软件系统发展到今天已经很复杂了,涉及到的知识,内容,问题太多。使用成熟的框架,可以需要集中精力完成系统的业务逻辑设计。框架一般是成熟,稳健的,可以处理系统很多细节问题,比如,事物处理,安全性,数据流控制等问题。框架一般都经过很多人使用,所以结构很好,扩展性也很好,而且它是不断升级的,你可以直接享受别人升级代码带来的好处。体系结构的风格、设计模式和框架风格、模式和框架的区别从讨论软件结构角度看,三者没有什么本质的区别。但从具体设计目的、背景看,还是有一定区别的:从框架的应用看,设计模式是构建框架的建筑组件,模式解决的是软件系统局部的更细节化的东西从设计模式的应用看,框架是某个应用领域中软件的整体系统模式,它解决软件的上层、全局的结构问题,也提供对中层和下层的支持风格属于“喜好和习惯”这样偏向于抽象的概念,它独立于实际设计情形来表现设计技巧,而模式和框架更多地面向解决具体问题体系结构的风格、设计模式和框架在现在的应用系统中,有很多用户图形界面(GUI)使用的非常普遍,而其中如:下拉菜单、帮助屏幕、对象拖放以及文件打开、存储、打印、甚至查找、排序和简单的文本编辑,是几乎所有系统都需要用到的而且其基本用法已经延续了十几年,已经形成习惯(定式)微软把涉及文件、数据库操作、网络I/O、图形、通用数据结构、用户界面对象等应用功能组件,组合在一起,构架了一个应用框架,这就是MFC(MicrosoftFoundationClasses)在应用层,这些功能是常用的、应用特性是相似的。在操作系统的服务层,这些功能的实现是相同的所以,为了简化系统设计和重用,MS把它们封装在一起,提供了MFC的应用框架结构程序员只要理解这个结构,就可以重用大量的类库程序,只需要添加或修改少量的代码,就可以快速地构建自己的应用系统,而不需要自己去编写复杂的与底层(操作系统、外部设备、网络等)打交道的代码典型的对象框架:MFCMFC类的框架结构CObject所有MFC类之父CCmdTarget发送系统和窗口事件给相应对象CWinThreadMFC线程控制CWnd基本GUI对象类CDocument文档和视图类CWinApp主线程和主程序CFrameWnd标题菜单边框类CView文档的显示打印CDialog对话框类CMDIChildWndCMinFrameWndCMDIFrameWndCObject类是所有对象的父类,它本身只封装了少量的功能,包括:程序在运行时获得类的信息、追踪错误的疹断输出等。CCmdTarget是从CObject类派生出来的子类,它增加了一些允许对象对外部消息进行响应的功能(如:键盘输入、点击移动鼠标等)。在学习经典体系结构案例的时候,我们应注意:它们对功能的层次性安排(体系结构布局)CWnd封装了用户显示设备的windows行为,它的方法实现了通常所有针对windows的功能,包括:窗口框架、窗口大小重定义、移动、最大/小化,应用程序还并不直接使用这个子类,而是使用它下面更具体定义的低层次的类,因为更方便。更低层次的CWnd子类有对话框CDialog,对话框再深入有按扭,按扭再深入有文件按扭、帮助按扭等等程序员要做的工作就是在已经有的类之下,创建具体的实例化对象,响应消息或事件,建立自己的应用系统典型的对象框架:MFC框架MFC框架就是由多个抽象或具体类、及具有关联关系类组成的类簇(集合)MFC框架规定了应用体系结构,定义了它的构成、类、对象的分割、各部件的职能、类和对象的协作关系,以及控制流程框架定义了这些设计参数后,开发者就可以集中精力解决自身必须解决的业务逻辑对于MFC已经定义的类,程序员的工作就是框架的实例化,既对现有类的组合、子类化和对象实例化因为框架是系统的模板,系统开发就是一个改写的过程,因此,基于既有框架的开发使得系统体系结构完全受既有框架的限制和约束软件系统的框架与体系结构MFC是一个通用的对象框架,它包括了用户界面类:针对图形窗口的通用对象类通用数据结构类:对链表等的查找、排序、插入、删除操作数据库接口类:对数据库表的操作等另一种框架,是针对特定领域和行业应用的包含了大量的业务背景针对特定应用和业务逻辑的支持特定的软件应用产品系列,构成产品平台通常由第三方开发系统庞大、开发周期长、成本高效益高、回报高,是发展方向通用框架与特定应用框架2.2二个最典型的体系结构模型“分而治之”是人们解决复杂问题所采取的大而化小、复杂变简单的基本思想方法,也是行之有效的方法。社会问题如此、技术问题也是如此。有二种分割方法:横向、纵向在软件体系结构研究中,层次性一直是软件问题分析和设计的基本的、具有普遍适用性的思想方法二个典型层次结构的例子:计算机网络的体系结构计算机操作系统的体系结构二种层次结构方法的对比ISO于1978年提出了OSI模型(七层协议)。OSI模型是设计和描述计算机网络通信的基本框架。它描述了网络硬件和软件如何以层的方式协同工作,进行网络通信。OSI—OpenSystemInterconnection生产厂商根据OSI模型的标准设计自己的产品。体系结构一:开放式系统互连参考模型(ISO/OSI)应用层表示层对话层传输层网络层数据链路层物理层交换单元名称信息信息信息信息信息分组帧位主机A主机B应用层表示层对话层传输层网络层数据链路层物理层路由选择TCP/IP体系结构:开放式系统互连参考模型(ISO/OSI)网络参考模型应用层与用户应用进程接口做什么表示层数据格式转换对方看起来象什么会话层会话管理与数据传输同步该谁讲话?从哪讲起?传输层端到端可靠的数据传输对方在哪?网络层分组传送,路由选择、流量控制走那条路可以到达对方?数据链路层相邻节点无差错的传送帧每一步该怎么走?物理层物理介质上透明的传送位流怎样用同物理媒体?76543213217654321321OSI环境网络环境数据通信网计算机A计算机B网络系统环境体系结构:开放式系统互连参考模型(ISO/OSI)ISO/OSI模型是设计和描述计算机网络通信的基本框架,它描述了网络硬件和软件如何以层的方式协同工作,进行网络通信的ISO/OSI模型的最大贡献,是对以下三个概念,作出了明确的区分和定义:服务:每一层都为它的上一层提供服务(原语操作),服务定义了这一层应该做什么,而不管上面的层如何访问它以及该层如何实现预定的服务工作接口:接口(原语)告诉自己的上层应该如何访问自己,定义了访问的参数和预期的结果,这也和该层如何实现无关协议:协议是端到端的对等协议(帧格式、信息定义),是该层的内部事物。因此,采用什么协议或协议的改变,是端与端之间的事,与上层(服务)无关ISO/OSI模型的分层思想,具有很好的面向对象性属性(服务)、接口(层间接口)、封装(协议)从体系结构的观点看ISO/OSI模型:比较TCP/IP模型中的协议与网络分层关系从体系结构的观点看ISO/OSI模型:TELNETFTPS

1 / 70
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功