您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 设计及方案 > 软工_05第五章软件体系结构设计
软件工程北京邮电大学信息安全中心2010年春季软件设计--软件体系结构设计软件工程2010年春季低低巧合内聚巧合内聚逻辑内聚逻辑内聚内内时间内聚时间内聚聚聚过程内聚过程内聚性性通信内聚通信内聚信息内聚信息内聚高高功能内聚功能内聚模模块块独独立立性性弱(功能分散)强强((功能单一功能单一))模块内部关联程度低非直接耦合数据耦合耦标志耦合合控制耦合性外部耦合公共耦合(共用)高内容耦合模模块块独独立立性性弱强模块之间关联程度内容回顾软件工程2010年春季内容提要软件体系结构的概念软件体系结构的风格软件体系结构中的技术结构化设计方法软件工程2010年春季5.1软件体系结构软件体系结构的概念M.Shaw:软件体系结构软件体系结构定义为程序/系统各构件构件的结构以及它们之间的内部关系和指导它们的设计并随时间而演变的原理和方针。构件:是软件的组成单元,例如:一个计算单元,或存储单元;软件体系结构设计的主要任务是从信息需求中综合出数据结构、程序结构、接口特征数据结构、程序结构、接口特征。软件工程2010年春季5.2数据体系结构设计Wasserman提出了如下一组数据规约原则:用于功能和行为的系统分析原则,也可以用于数据分析。所有的数据结构及其操作都应该被标识。建立数据字典并用于数据设计和程序设计。底层的数据设计决策应该被推迟到设计过程的后期。只有那些需要直接使用数据结构内部的数据模块才能看到该数据结构的表示。应该开发一个由有用数据结构和应用于其上的操作组成的库。软件设计和程序设计语言应该支持抽象数据类型的规约和实现。软件工程2010年春季内容提要软件体系结构的概念软件体系结构的风格软件体系结构中的技术过程设计方法软件工程2010年春季5.3软件体系结构风格软件体系结构风格(style)又称软件体系结构习惯模式(idiomaticparadigm)体系结构风格最关键的四要素内容:提供一个词汇表定义一套配置规则定义一套语义解释原则定义对基于这种风格的系统所进行的分析有原则的使用体系结构的意义:促进了设计和代码的复用便于设计者之间的交流支持了互操作性软件工程2010年春季1.主程序与子程序风格基本结构和词汇表构件=主程序或子程序;连接件=条件连接或循环连接或查询方式或中断事件方式或共享信息方式特征主程序是独立的实体,之间不共享状态主程序与其连接的下游子程序之间存在调用与被调用的关系扇出数:2扇入数:4MMaabbccddgghhiieennoommllkkjjff宽度深度软件工程2010年春季1.主程序与子程序风格优点:该模式是软件系统中最基本的模式,几乎说有的程序设计语言均支持该方式;提供基于过程和函数的复用机制,提高了代码的使用率。缺点:该结构在描述复杂连接关系时,难以理解;当软件规模增加时没,可维护性和可理解性变差;复用层次低,难以在高层设计层次上形成复用;软件工程2010年春季2.管道与过滤器(PipesandFilters)基本结构与词汇表在此软件体系结构中,每一模块都有一组输入和输出。每一模块从其输入端接收输入数据流,在经过其内部处理后,按标准的顺序,将结果数据流送到输出端,以达到传递一组完整计算结果的目的。词汇表是[构件=过滤器;连接器=管道]过滤器管道软件工程2010年春季特征过滤器一定是独立的实体,即各个过滤器之间不能共享状态。过滤器与其连接的上下游过滤器相互独立,即不知道,更不能假定,分别与其输入和输出相连接的其他过滤器的信息。种类本类型的规格说明都包括线性管道、受约束的管道和有名管道三类。2.管道与过滤器(PipesandFilters)软件工程2010年春季优点它允许设计者将一个系统的整体输入/输出行为理解为各个独立过滤器行为的一个简单的合成。该体系结构支持重用。维护系统和增强功能容易。缺点容易导致批处理方式。在维护或者响应两个分离但相关的数据流时容易受阻。增加了分析与编码的工作量,增加了复杂性,降低了性能。2.管道与过滤器(PipesandFilters)软件工程2010年春季3.数据抽象和面向对象组织基本结构与词汇表在该结构中,数据表示和与之相连的最基本操作都被封装在一个抽象数据类型或者对象中。词汇表是[构件=对象;连接器=方法调用]特征对象负责维持其本身的完整性;信息隐藏。对象对象对象过程调用对象对象图2抽象数据类型和对象软件工程2010年春季优点封装性,信息隐藏,抽象性,类特性,继承性等。缺点对象必须知道要与之交互的对象的标识,一旦对象的标识改变,则必须修改所有其它明确调用它的对象。3.数据抽象和面向对象组织软件工程2010年春季4.分层系统(Layers)基本结构与词汇表采用层次化的组织方法,每一层向其上层提供服务,并利用下层服务。下层信息可以被全部隐藏起来,只有外部层次和一部分精心选择的功能可以被外部所见。词汇表是[构件=虚拟机;连接器=层次间协议]软件工程2010年春季特征层次结构虚拟机与层次间的协议。优点首先支持抽象程度递增的系统设计,使得设计者可以把一个复杂系统按递增的步骤分解开来。其次,功能的改变只会影响相邻的上下层。最后,这种结构可以支持重用。缺点层次划分不容易,很难找到一个合适的正确的层次抽象方法。4.分层系统(Layers)软件工程2010年春季设计词汇表设计词汇表=[构件=表示层构件/功能层构件/数据库服务层构件,连接件=请求/应答协议]其中表示层构件=客户机+浏览器;功能层构件=Web服务器+转换服务器;数据库服务层构件=数据库服务器。例基于Web的分布式体系结构风格分析软件工程2010年春季特点应用网关+CGI接口不变性表示层构件、功能层构件与数据库服务层构件之间相互独立。使用例子各种基于Web的分布式应用系统。如基于Web的信息查询系统等。例基于Web的分布式体系结构风格分析(续)软件工程2010年春季内容提要软件体系结构的概念软件体系结构的风格软件体系结构中的技术结构化设计方法软件工程2010年春季5.4软件体系结构中的技术1.共性和可变性分析找出事务的共性和相异性,并且分别利用这些相同和相异的部分。其主要步骤如下:1.找到要分析的实体集合。2.通过限制每个变化量来区别这些变化。3.在软件体系结构开发过程中使用共性。4.找出一种将软件体系结构设计变化的影响减至最小的办法。软件工程2010年春季2.可变设计处理变化情况的基本思想:列举出体系结构中可能需要适应的变化的种类。评价这些变化,是采用当前的体系结构,还是采用提议的体系结构。以下问题帮助进行判断:变化是局部的还是分散在多个分布的子系统中?哪些接口或消息需要修改以适应变化?数据库设计需要更新吗?可变的范围是什么?估计多少类或源代码文件将需要修改?软件工程2010年春季3.程序生成技术程序生成技术使得软件产品的开发自动化。这一技术能大大提高开发者的生成能力,但软件体系结构师必须保证这一技术只用于其适用的领域。软件工程2010年春季4.构造一个框架系统这种办法有许多主要优点:在开发过程的更早时候就促进集成,集成活动是一种主要的开发风险与迭代开发方法相吻合促进基础设施的早期开发引导端对端的自动测试软件工程2010年春季5.原型构造当一个大系统的某些方面不清楚时,构造原型常常能成为一种理解具体体系结构相关方面的一种有效技术。软件工程2010年春季5.4.2软件分治策略具体策略如下:策略1.功能分解策略2.独立配置数据策略3.独立出特有的硬件构件策略4.独立出时间至上的构件策略5.将人机接口与实现模型分离策略6.分离错误恢复处理策略7.从实现技术中分离出领域实现模型策略8.从监控中分离主要功能策略9.使用外部接口适配构件软件工程2010年春季内容提要软件体系结构的概念软件体系结构的风格软件体系结构中的技术结构化设计方法结构化设计方法软件工程2010年春季结构化设计方法面向数据流设计方法的基本概念面向数据流设计方法的设计步骤系统结构特征变换分析法事务分析法混合法软件工程2010年春季面向数据流设计方法的基本概念面向数据流的设计(SD)要解决的任务:映射软件结构的初始结构描述软件系统的结构DFD软件系统逻辑模型软件工程2010年春季面向数据流设计方法的设计步骤(1)精化DFD(2)确定确定信息流(DFD)类型(3)把DFD映射到系统模块结构设计出模块结构的上层(4)基于DFD逐步分解高层模块设计出下层模块(5)根据模块独立性原理,精化模块结构(6)模块接口描述系统结构特征:可归纳为三种典型形式:可归纳为三种典型形式:变换型结构变换型结构事事务务型结构型结构混合型结构混合型结构软件工程2010年春季变换中心输入路径输出路径变换分析法分析变换型数据处理的工作过程;变换分析法:由输入、变换中心和输出三部分组成。基本模型:基本模型:软件工程2010年春季变换型数据流图输入信息物理输入取得数据处理给出数据正确信息结果物理输出数据变换中心输出逻辑输入逻辑输出输入具有明确的输入、变换(或称主加工)和输出界面的DFD软件工程2010年春季abBCADEQPRWUVcedrpuwv变换中心输入部分输出部分变换分析设计方法实例步骤:(1)区分输入、变换中心输出部分,在DFD上标明分界线软件工程2010年春季(2)第一级分解(建立初始结构框架)第一级分解后设计顶层和第一层模块MC主控MT变换MA输入ME输出第一层顶层c,ec,eu,wu,w信息标注可省略软件工程2010年春季输入分支的分解MACBAbacEDdec,e(3)第二级分解(分解结构图各分支)软件工程2010年春季输出分支的分解WvMEUwuw,uV中心加工分支的分解MTPQRec,pru,wpr软件工程2010年春季变换分析设计方法实例结构总图MCMAQPRMTMECBAEDWUV软件工程2010年春季例:家庭安全系统产品描述家庭安全系统的市场正以每年40%的比率增长,希望进入该市场,试图建造基于微处理器的家庭安全系统。该系统将保护和/或识别一系列不希望的“情况”发生,如:非法入室、火灾、水灾或其它。该产品暂时称为SafeHome,将使用合适的传感器来监测每种情况,可由房主编程,并且当情况被监测到时,自动地给监控机构拨打电话。软件工程2010年春季例:家庭安全系统问题陈述SafeHome软件使得房主能够在安装时配置安全系统、监控所有和安全系统连接的传感器以及通过包含在SafeHome控制面板中的键盘和功能与房主交互。在安装过程中,SafeHome控制面板被用于编程和配置系统,每个传感器被赋予一个编号和类型,主人密码被编程以启动和关闭系统,而且当传感器事件发生时,输入电话号码自动拨号,当传感器事件被识别时,软件激活附属于系统上可发声的警报,在一定的时间延时后,软件拨打监控系统服务的电话号码并提供位置信息,报告被监测到的事件性质,电话号码将每隔20秒重拨一次,直至电话接通。所有和SafeHome的交互,由用户交互子系统管理,该子系统读入通过键盘和功能建提供的输入,在LCD显示屏上显示提示消息和系统状态。键盘交互采用下面的形式:软件工程2010年春季例:家庭安全系统控制面板SAFEHOME01报警检查火情离开驻留紧急旁路准备未就绪装备电源关闭离开驻留最大测试旁路立即编码警声准备就绪123456789*0#惊慌软件工程2010年春季SafeHome的结构环境图分析SafeHome系统的结构环境图控制面板传感器SafeHome系统控制面板显示警告电话线用户命令和数据传感器状态显示信息警告类型电话号配置信息SafeHome系统的监控传感器精化DFD(第二层)变换分析方法的例子评定输出传感器状态传感器ID类型,位置传感器信息警告类型警告数据电话号配置数据电话号信号传感器ID类型,位置显示格式化产生警告信号读传感器
本文标题:软工_05第五章软件体系结构设计
链接地址:https://www.777doc.com/doc-6402333 .html