1、进行体系结构设计 设计的任务:从需求信息中综合出数据的表示、程序结构、接口特征和过程细节。信息、功能、行为是创建设计的三个指南。软件体系结构接口设计接口设计体系结构设计体系结构设计设计模型设计模型构件级设计构件级设计数据数据/类类 设计设计软件体系结构设计软件构件的结构、属性和交互作用传统系统中体系结构的数据构件和面向对象系统中类的定义体系结构发展过程-1单主机结构单主机结构界面、数据和程序集中在单台主机上界面、数据和程序集中在单台主机上不需要考虑多用户并发操作的问题不需要考虑多用户并发操作的问题C/S(Client/Server)结构结构常见的服务器端体现为关系数据库常见的服务器端体现为关系
2、数据库客户端负责显示和业务逻辑处理客户端负责显示和业务逻辑处理在部署和扩展性方面存在不足:系统升级需要一一更在部署和扩展性方面存在不足:系统升级需要一一更新所有客户端新所有客户端体系结构发展过程-2B/S(Browser/Server)结构结构瘦客户端:浏览器或客户端程序瘦客户端:浏览器或客户端程序(Applet等等)三层结构三层结构客户端:处理用户接口和用户请求客户端:处理用户接口和用户请求Web服务器端:处理服务器端:处理Web服务和运行业务代码服务和运行业务代码数据端:关系型数据库和其他后端数据资源数据端:关系型数据库和其他后端数据资源新的发展:多层结构新的发展:多层结构Web服务器分离
3、为服务器分离为Web端和业务服务端端和业务服务端(例如例如J2EE应用服应用服务器务器)软件工程设计过程需求分析体系结构设计模块化设计用户界面设计数据库设计数据结构与算法设计实现与测试计划高层设计阶段概要设计阶段详细设计阶段数据设计体系结构级的数据设计 庞大数据环境中有效信息提取的方式数据挖掘数据库中的知识发现(KDD)数据仓库 数据仓库是一种解决方案,是对原始的操作数据进行 各种处理并转换成有用信息的处理过程,用户可以通过分 析这些信息从而作出策略性的决策。因此,在很多场合,我 们也把数据仓库系统称为决策支持系统。数据设计构件级的数据设计 数据规格说明原则:1、应用于功能和行为的系统分析原则
4、也可应用于数据 2、标识所有数据结构及其完成的操作 3、应该建立定义数据对象内容的机制,并且用于定义数据及其操作 4、低层的数据设计决策应该延迟到设计过程的后期 5、只有那些直接使用数据结构内部数据的模块才能够看到该数据结构的表示 6、应该开发一个由有用的数据结构及其操作组成的库 7、软件设计和程序设计语言应该支持抽象数据类型的规格说明和实现体系结构模式 体系结构模式是风格的具体体现,或者体系结构设计的一个框架。(1)体系结构模式涉及的范围要小一些,它更多集中在体系结构的某一局部而不是体系结构的整体(2)模式在体系结构上施加规则,描述了软件是如何在基础设施层次上处理某些功能性方面的问题(3)体
5、系结构模式倾向于在系统结构的环境中处理特定的行为问题体系结构风格、程序设计样式与设计模式 程序设计样式 重点在于给出开发原则、可实现 抽象层次:代码级 直接可用 设计模式 重点在于重用、概念完整性 抽象层次:构件级 直接可用 体系结构风格 重点在于重用、概念完整性 抽象层次:体系结构 有约束和指导作用体系结构风格定义了一系列系统的结体系结构风格定义了一系列系统的结构组织的构组织的模式模式,它是对一类具有,它是对一类具有相似相似结构结构的系统体系结构的的系统体系结构的抽象抽象以数据为中心的体系结构以数据为中心的体系结构数据流体系结构数据流体系结构调用和返回体系结构调用和返回体系结构面向对象体系结
6、构面向对象体系结构层次体系结构层次体系结构一些数据一些数据(比如一个文件或者数据库比如一个文件或者数据库)保存在整个结构的保存在整个结构的中心,并且被其他部件频繁地使用、添加、删除、或者中心,并且被其他部件频繁地使用、添加、删除、或者修改修改 这种结构适用于输入数据被一这种结构适用于输入数据被一系列的计算或者处理部件变换成输出数据。系列的计算或者处理部件变换成输出数据。这种风格使一个软件设计者设计出非这种风格使一个软件设计者设计出非常容易修改和扩充的体系结构常容易修改和扩充的体系结构主程序主程序/子程序风格体系结构子程序风格体系结构远程过程调用风格的体系结构远程过程调用风格的体系结构 在这里要
7、了解几个概念:在这里要了解几个概念:程序结构的深度程序结构的深度:程序结构的层次数称为结构的深:程序结构的层次数称为结构的深度。结构的深度在一定意义上反映了程序结构的规度。结构的深度在一定意义上反映了程序结构的规模和复杂程度。模和复杂程度。程序结构的宽度程序结构的宽度:层次结构中同一层模块的最大模:层次结构中同一层模块的最大模块个数称为结构的宽度。块个数称为结构的宽度。模块的扇入和扇出模块的扇入和扇出:扇出表示一个模块直接调用(:扇出表示一个模块直接调用(或控制)的其它模块数目。扇入则定义为调用(或或控制)的其它模块数目。扇入则定义为调用(或控制)一个给定模块的模块个数。多扇出意味着需控制)一
8、个给定模块的模块个数。多扇出意味着需要控制和协调许多下属模块。而多扇入的模块通常要控制和协调许多下属模块。而多扇入的模块通常是公用模块。是公用模块。在这种结构中,定义不同的层次,每层都完成了相对外在这种结构中,定义不同的层次,每层都完成了相对外层更靠近机器指令的操作层更靠近机器指令的操作ApplicationPresentationSessionTransportNetworkData LinkPhysicalApplicationPresentationSessionTransportNetworkData LinkPhysical体系结构模式 不同模式操作下的一些特征:并发性持久性分布性组
9、织和求精 从两个方面考虑组织和求精:控制数据息,实现与目标系统交互的实体(人、设备)。息,实现与目标系统交互的实体(人、设备)。系统的环境表示体系结构环境图体系结构环境图Architectural Context Diagram(ACD)目标系统上级系统被用被用依赖于依赖于下级系统使用使用同级使用使用参与者示例示例:SafeHome安全功能的体系结构环境图(安全功能的体系结构环境图(ACD图)图)目标系统:目标系统:安全功能安全功能SafeHome 产品产品基于因特网基于因特网的系统的系统使用使用同级系统同级系统监视功能监视功能使用使用房主房主控制面板控制面板 传感器传感器传感器传感器使用使用
10、定义原始模型 原始模型(archetype)是一个类或一个模式,描述了一个目标系统体系结构设计的核心抽象。ArchetypeArchetypeArchetypeArchetype目标系统目标系统控制器控制器结点结点探测器探测器指示器指示器SaftHome 安全功能原始模型安全功能原始模型通信通信对于同一个软件需求,由于各种设计方法的原理不同,会对于同一个软件需求,由于各种设计方法的原理不同,会导出不同的软件结构。导出不同的软件结构。同一问题的不同软件结构:同一问题的不同软件结构:1)定义应用场景(定义应用场景(scenarios):通过):通过use case图图来从用户的角度表现系统。来从用
11、户的角度表现系统。2)得出需求、约束和环境描述:这是需求工程的一得出需求、约束和环境描述:这是需求工程的一部分,用以确定所有客户方关心的问题都被列出部分,用以确定所有客户方关心的问题都被列出。3)描述能处理上述情境和需求的体系结构风格。描述能处理上述情境和需求的体系结构风格。4)单独地评价系统的各项性能。针对体系结构设计单独地评价系统的各项性能。针对体系结构设计的性能包括:可靠性,性能、安全性,可维护性的性能包括:可靠性,性能、安全性,可维护性,灵活性,可测试性,可移植性,可重用性和互,灵活性,可测试性,可移植性,可重用性和互操作性等。操作性等。5)针对不同的架构形式,评价第针对不同的架构形式
12、,评价第4步提到的这些性能的敏步提到的这些性能的敏感程度。可以通过这样的方法来评价:在整个架构中做感程度。可以通过这样的方法来评价:在整个架构中做一些小的变更,分析并确定上诉性能有没有很敏感的变一些小的变更,分析并确定上诉性能有没有很敏感的变化。那些在体系结构改动中受到较大影响的性能被称为化。那些在体系结构改动中受到较大影响的性能被称为敏感点(敏感点(sensitive point)。)。6)通过第通过第5步的敏感度分析来评价第三步中提出的那些体步的敏感度分析来评价第三步中提出的那些体系结构。系结构。SEI描述的方法如下:当一个架构的敏感点被描述的方法如下:当一个架构的敏感点被确定,我们需要找
13、到在系统中最需要权衡利弊的因素(确定,我们需要找到在系统中最需要权衡利弊的因素(trade-off point)。权衡因素就是指改变架构中的这项)。权衡因素就是指改变架构中的这项内容系统的很多性能就会发生敏感的变化。比如说,一内容系统的很多性能就会发生敏感的变化。比如说,一个个client-server结构的系统的表现性能和系统中结构的系统的表现性能和系统中server的数量是息息相关的(比如增加的数量是息息相关的(比如增加server的数量,一定程的数量,一定程度上系统的表现性能就会提高)度上系统的表现性能就会提高)这样的话,这样的话,server的数量就是这个架构中的平衡点。的数量就是这个
14、架构中的平衡点。面向数据流设计的基本概念 面向数据流设计(SD)要解决的任务:DFD(软件系统逻辑模型)(软件系统逻辑模型)软件系统的结构软件系统的结构(软件结构的初始结构描述)(软件结构的初始结构描述)映射映射面向数据流设计的基本步骤 精化DFD 确定信息流DFD类型 把DFD映射到系统模块结构设计出模块结构的上层 基于DFD逐步分解高层模块设计出下层模块 根据模块独立性原理,精化模块设计 模块接口描述系统结构特征:变换型结构事务型结构混合型结构 结构化设计结构化设计 一种体系结构设计方法一种体系结构设计方法,采用“调用和返回”体系结构的映射技术变换流变换流 事务流事务流输入输入处理处理输出
15、输出事务中心事务中心变换流分析变换型数据流图变换流设计实例步骤第一级分解建立初始结构框架第二级分解分解结构图各分支变换流分析实例结构图变换流分析示例事务流分析data flow modelTransform mappingabcdefghijx1x2x3x4bcadefgihjabTghdefikjlmnDFDMbaTP1defP2ghP2.1ijkP3lmn变换分析过程复审基本系统模型复审并精化DFD确定DFD的类型确定输入流和输出流的边界,孤立变换中心完成“第一级分解”(确定顶层和第一层)完成“第二级分解”(把每个处理映射到SC的一个模块)利用启发式规则和设计度量对软件结构进一步精化BCA
16、DPQRWUVE打印显示键盘输入传感器(离物理输入端最远,但仍然可以被看作系统输入的那些数据流)(离物理输出端最远,但仍然可以被看作系统输出的那些数据流)。第一级分解,确定顶层和第一层MCMAMTMEQPRGet CGet EGet BRead AB to CRead DD to EA to BPut UWrite WU to VWriteV从边界沿输出通路向外移动,将每个处理映射成Me的子模块第二级分解:将变换中心内的处理映射成Mt的子模块从边界沿输入通路向外移动,将每个处理映射成Ma的子模块;在输入、输出路径上数据的内容和形式也可能发生变化,但应区别于中心加工System Design(6
17、-minute presentation+1-minute Q&A)Due:14:00 on April 20th,2011Grading Policy:Each group will evaluate the other groups performances and fill in the grading tables.For each group,let p1 be the average points given by the other groups with the maximum and minimum points taken off;and let p2 be the points given by the instructor,the final points obtained will be(p1+p2)/2.The full mark=50 points number of participantsNote:The group(s)who miscalculate the points for other groups or hand in grading tables with comments missing will be penalized 1 10 points.