《软件工程》 第3篇 设计 姜久雷 副教授 北方民族大学 计算机科学与技术系.

Slides:



Advertisements
Similar presentations
中国公务员管理 CHINAS CIVIL SERVICE SYSTEM 温志强 第三章 中国公务员分类管理 学习目标 主要内容.
Advertisements

中国公务员管理 CHINAS CIVIL SERVICE SYSTEM 温志强 课程回顾: 第五章 中国公务员考核管理 案例分析: 案例一: “ 三帐 ” 制度:公务员考核的有益探索 案例一: 公务员 “ 搬弄是非 ” 谁来界定预习重点与问题: 2.
全国中等卫生职业教育卫生部 “ 十一五 ” 规划教材 解剖学基础 第十章 内分泌系统 基础教研室.
1 课程介绍 报告人:谢兆贤 2015/9/X. 2 纲要  课程设置  教学内容  教学设计  教学组织与实施  课程特色与创新  实验项目.
偏瘫的康复. 目的要求 : 1 、掌握偏瘫社区康复目标、训练计划、 训练方法。 2 、熟悉偏瘫社区康复训练评估。 3 、了解偏瘫基础知识、转介服务。
Case1 患者,男, 57 岁,以 “ 反复咳嗽、痰中带血 3 月余 ” 为主诉入院。缘于入院前 3 月 余明显诱因出现咳嗽、咳痰,呈阵发性,伴有痰中带血,量不多,偶有胸闷、 气促感,活动后加剧,休息后缓解,无畏寒、发热,无盗汗,无消瘦,午后低 热,无胸痛、心悸,无恶心、呕吐,无腹胀、腹泻等不适,未予重视,未行诊.
台北市立南港高工 建築科 Architecture 建築科之精神:活力、責任、效率 建築科之展望:共築美麗人生 綜合高中 土木建築學程簡介  綜高土建升學進路  未來出路展望  專業證照考試  未來展望圖例  綜高土建學程課程架構  土建群統一入學測驗考科  升學人數統計.
旅 糾 紛 遊 與緊急事件處理 11 Chapter 旅遊費用.
第九章 财政转移支付制度与政策 第一节 财政转移支付制度的意义 第二节 财政转移支付的分类及效应分析 第三节 我国转移支付的现状及问题分析
漫畫風雲.
貨幣信用與經濟.
第6章 计算机网络基础 1.
壹、緣起 在「夢想大作戰」的主題裡,主要分為「個人挑戰」與「小組挑戰」兩個部份,當個人挑戰陸續完成後,緊接著進入小組挑戰的階段。
我征服了黃山 林達的黃山之旅 2006春.
【青少年藥癮諮商實務】 心理測驗在諮商中的應用 與倫理議題
第3章 需求分析(续) 学习目标 什么是需求建模? 需求分析建模方法 掌握实体—关系图(E—R图); 掌握状态转换图;
外科部-特殊病例討論會(Case Conference)
旅 糾 紛 遊 與緊急事件處理 16 Chapter 飯店問題.
截肢后的康复.
署立台南醫院53病房.
案例写作漫谈 胡 红
三之三大里分校 (陽光托兒所暨附設托嬰中心及安親班)
增值税转型 2008年12月.
第7讲 软件需求管理 软件项目管理课程 之 毛新军
外科部-特殊病例討論會(Case Conference)
游戏设计(策划)文档 李裴.
課程小遊戲 玩出注意力 黃志豪 職能治療師.
第二章 餐饮组织结构设计.
第六小组 王然红烈 何佩思 张宝仪 刘竹馨 潘结梅.
战争结束了 年11月,听到停战的消息,巴黎街头人们欣喜若狂。法国总理克里孟梭说:“吻我的姑娘有500多个了。”
第八課  一座城市的身世選 林燿德.
第一章信託法 第一節 信託契約 第二節 信託財產 第三節 受益人 第四節 受託人 第五節 信託關係之消滅.
5年1班第三組 2號 陳雍翰 9號 羅謙 15號 林永誠 27號 陳昭予 34號 楊惞婾
安徽地税机打发票系统培训 2015年3月.
第10章 面向对象的设计方法 教学目的:了解面向对象设计的概念和方法 教学重点:理解面向对象的设计的基本原理,掌 握面向对象的设计方法。
史料數位化之METADATA與AUTHORITY CONTROL / 陳雪華
Mobile base station power remote monitoring system
实验五 化脓性球菌 实验五 化脓性球菌 通过实验,认识化脓性球菌各自的形态、菌落特征,掌握葡萄球菌产生的凝固酶的测定方法。
企业经营管理基础 模块一 企业组织结构概述 模块二 采购管理 模块三 生产管理 模块四 销售管理 模块五 仓储管理 模块六 人力资源管理
第6章 系统分析 6.1 概述 6.2 逻辑模型 6.3 逻辑结构分析 6.4 用例分析 6.5 概念类分析.
温江区行政事业单位 资产管理信息系统培训 2010年10月28日.
普通高等教育“十一五”国家级规划教材 信息系统分析与设计 刘腾红 孙细明 主编 科 学 出 版 社.
2011/08/12 第1章 计算机与计算思维 《大学计算机基础》.
偏瘫病人的康复护理 郑州市第十五人民医院 牛欣.
探 索 数 控 机 床 奥 秘 主讲:颜国霖.
單元3:軟體設計 3-2 順序圖(Sequence Diagrams)
UML工具 --8种优秀的UML工具.
UML介绍.
電腦攻擊與防禦 在 Virtual Box 加入硬碟檔 ADL 2019/2/17.
Advanced Basic Key Terms Dependency Actor Generation association
管理信息系统 第九章 面向对象的系统开发方法.
運動競賽制度 授課教師:鄭俊傑副教授.
韓青蓉 前草屯療養院社工室主任 韓青蓉社工師事務所社工師
面向方面的软件开发方法 CSAI华东区首席顾问 徐 锋.
实验6 面向对象分析与设计实验.
安 徽 省 标 准 DB34/T 《计算机与仪表屏蔽电缆》 标准宣贯讲义 安徽省无为县电线电缆行业协会.
第十一章 物件資料結構塑模.
崑山科技大學 電子工程系 99學年度 學生實務專題成果展
软件需求工程.
IEEM 5352 Enterprise Integration
6-1 燃油系統工作原理 6-2 汽油濾清器更換 6-3 汽油泵檢查與更換
Japanese Architecture
城市设计控制.
第5章 系统分析概述.
软件工程之 IT项目管理 第2讲 把握环境 控制过程 高 等 职 业 学 校 专 业 骨 干 教 师 国 家 级 培 训 王如龙
■ 宗旨 ■ 課程專業核心能力 ■ 學分規定 ■ 課程科目 ■ 課程大綱
构件图和部署图.
OOA/OOD UML RUP Architecture Pattern MDA
UML顺序图 【学习目标】  ·定义顺序图 ·为什么要建立顺序图 ·了解顺序图的标记符组件 ·理解如何使用消息进行通信
第十章 面向对象 (2).
Presentation transcript:

《软件工程》 第3篇 设计 姜久雷 副教授 北方民族大学 计算机科学与技术系

第10章 体系结构的设计 引言(本章的开头部分) 10.1 系统构成 10.2 控制模型 10.1.1 容器模型 10.1 系统构成 10.1.1 容器模型 10.1.2 客户机/服务器模型 10.1.3 抽象机模型 10.2 控制模型 10.2.1 集中式控制 10.2.2 事件驱动系统

引言 大型系统总是被分解成一些子系统,这些子系统提供一些相关的服务。 初始设计过程的任务是要识别出这些子系统并建立起子系统控制和通信的框架,这个过程叫做体系结构设计,其输出是软件体系结构的一个描述。 体系结构的设计过程主要关心的是为系统建立一个基本架构。它包括要识别出系统的主要组件以及这些组件之间的通信。

软件体系结构设计的重要性 1.项目相关人员之间的沟通 体系结构是系统的一个高层表示,可以作为不同的项目相关人员之间讨论的焦点。 2.系统分析 在系统开发的早期阶段给出系统的体系结构,实际上就是对系统的分析过程。对体系结构的设计决定对系统能否满足关键性需求如系统的性能、可靠性和可维护性等具有极深的影响。 3.大规模复用 系统体系结构的内容是关于系统的组织和组件间的互操作,其形式是一个紧凑的易于管理的描述单元。体系结构能在具有相似需求的系统之间互用,由此来支持大规模的软件复用。产品线体系结构的开发就是希望有一个通用的产品体系结构供一系列相关系统使用。

如何描述软件体系结构 体系结构描述语言(ADL)的基本要素是组件和连接器,这类语言包含了形成规范化体系结构所应该使用的规则和指南。 体系结构模型 1.静态结构模型——描述独立单元子系统或组件的相互关系。 2.动态过程模型——描述系统在运行时的过程。 3.接口模型——定义每个子系统从它们的公共接口能得到的服务。 4.关系模型——给出子系统间的关系,如数据流关系。 体系结构的描述 体系结构描述语言(ADL)的基本要素是组件和连接器,这类语言包含了形成规范化体系结构所应该使用的规则和指南。 非形式化模型和标记语言将会大量用在体系结构的描述上。如UML。

软件体系结构的由来——优秀开发者的设计经验总结 起缘于软件系统的模块化分解 进而,研究模块间相互作用,组合成整体的属性,便形成了体系结构。 后人即可利用这些体系结构的模式(architecture pattern)作为自己软件系统结构设计的策略。

体系结构风格——公认的体系结构模式 重要的体系结构风格 一些成功的体系结构模型或风格,是体系结构设计的重要基础。 需要对这些模型有相当的了解,才能有效使用。 不但要了解模型本身,还要了解它们的应用及其各自的优缺点。 设计者需要发现最适当的模型,然后依照问题的需求来修改它。 系统本身是一个复合型体系结构。通过融合不同的体系结构模型来达到这样的目的。 重要的体系结构风格 结构化模型、控制模型和分解模型。

软件的非功能需求 非功能性需求 一个应用程序的结构和风格,依赖于系统的非功能性需求。 1.性能——为满足性能需求,体系结构的设计需要提高子系统的关键操作性能——如:为了减少子系统间的通信,采用较大粒度组件)。 2.保密性——为满足保密性需求,体系结构的设计需要采用分层结构,把重要资源放在内层,并且在每层中采用更加严格的安全有效性验证。 3.安全性——为满足安全性的需求,系统体系结构的设计就要将与安全相关的操作集中在一个或少数几个子系统中。 4.可用性——为满足可用性需求,系统体系结构设计就要采用冗余性组件,以便能在无需系统停止运行的情况下更新和替换组件。 5.可维护性——为满足可维护性需求,系统体系结构设计就要使用小粒度的自包含组件以便于更换。

10.1 系统构成 10.1 System structuring 系统构成的描述方式 方块图是许多有用的体系结构的模型之一。 在最抽象层次,使用“方块图”描述一个体系结构的设计,每个方块代表一个子系统。 方块内的方块,意味着子系统本身又被分解成其他子系统。 方块之间的有箭头线段,表示数据和控制的流向。

方块图的优缺点 优点:有效沟通。在项目规划阶段,能够有效实现项目相关人员之间的沟通 它不掺杂细节,还能识别出每个关键子系统(可独立开发),便于管理者指派人员规划系统的开发。 缺点:不描述系统组件之间关系的本质,也不显示系统的外部特性 。

图10-1是一个打包机器人的系统体系结构的结构化模型。

方块图建模的三个标准模型 为描述子系统原理(如何共享数据、如何分布以及如何彼此交互),需要开发一些更专门化的模型。三个标准模型: 容器模型 客户机/服务器模型 抽象机器模型。

10.1.1 容器模型 系统原理:为子系统间信息交换提供基本的方法。有两种: 10.1.1 容器模型 系统原理:为子系统间信息交换提供基本的方法。有两种: 1.集中存放,各自存取——全部共享数据放在一个中央数据库中,所有子系统都能从中存取数据。 基于一个共享数据库的系统模型称为容器模型。 2.分散保持,消息传送——每个子系统维持自己的一个数据库,与其他子系统间的数据交互通过消息传递来实现。

例:基于一个共享容器的CASE工具集的体系结构

共享容器模型的优缺点: 是共享大量数据时的一个高效方法——无需在子系统间进行数据转换。 但是,子系统一定要与容器数据模型一致。 生产数据的子系统始终保持既有的数据结构,不管其他子系统是否长久适用。 但是,数据结构的进化会变得困难 数据管理活动集中,便于管理。 但是,难以兼顾不同的要求(保密性、恢复和备份等)。 共享模型能通过容器模式管理,能直接集成新工具的数据模型进入容器模型。 然而,将容器分布到多台机器上比较困难——会引起数据冗余和不一致性的问题。

黑板模型(智能化共享容器模型) 当容器数据的结构组织得不是很好时该方法比较合适。 “黑板”模型源于人工智能系统,当有特别的数据可用时,就会主动通报子系统。

10.1.2 客户机/服务器模型 客户机/服务器体系结构的模型 客户机/服务器方法能实现基于容器的系统 一种分布式系统的模型 10.1.2 客户机/服务器模型 客户机/服务器体系结构的模型 一种分布式系统的模型 其特征是:数据及其加工过程是在多个处理器之间的分配的。 客户机/服务器方法能实现基于容器的系统 容器充当系统的服务器。子系统扮演客户机角色,访问容器。 服务器和客户机进行交换数据的处理。 当有大量数据要交换的时候,会产生性能问题。

客户机/服务器模型的主要组成部分 1.单机服务器(一组)。给其他子系统提供服务,如打印服务器,文件服务器,编译服务器等。 2.客户机( 一组)。向服务器请求服务,通常都是独立的子系统。多个客户机程序在并发运行。 3.一个连接客户机和服务器的网络。原则上,这并不是必需的,因为客户机和服务器可以同时运行在同一台机器上。但在实际过程中,这个模型并不在这样的情形中使用。

客户机/服务器模型示例(图10-3)——一个提供电影和图片库的多用户超文本系统。 要求目录能够支持各种查询并能与超文本信息系统相链接。客户机程序只是对这些服务提供集成的用户界面。

客户机/服务器模型的优势 缺点 是一个分布式体系结构。 许多分布处理器构成的网络系统可提供更有效的使用。 系统结构灵活,添加服务器或更新服务器是很容易的而且是透明的。 缺点 每集成一台新服务器,如果想获得系统的所有利益,就要改变现存的客户机和服务器的内容。 没有共享数据模型,子系统以不同的方式组织它们的数据 需要为每个服务器建立专门的数据模型以便优化其性能。 对来自新服务器的数据进行集成时很难预料出现的问题。 每个服务器需要自己负责数据管理活动,如备份和数据恢复。

10.1.3 抽象机模型 平台的概念 平台的分类 平台即平台化的软件——是独立的软件系统,用来构建和支撑应用软件。 10.1.3 抽象机模型 平台的概念 平台即平台化的软件——是独立的软件系统,用来构建和支撑应用软件。 平台的分类 粗略地划分——两种类型的平台:技术支撑型平台软件和应用实现型平台软件。 细致地划分 (1)基于快速开发目的技术平台,(2)基于业务逻辑复用的业务平台,(3)基于系统自维护、自扩展的应用平台。 技术平台和业务平台都是软件开发人员使用的平台,而应用平台则是应用软件用户使用的平台。

何为抽象机? 特点 抽象机是对平台的抽象。 体系结构的抽象机模型,也叫做分层模型,是用来建立子系统的接口模型。 结构上,系统组织成一系列的层次,每一层提供一组服务——每一层定义一个抽象机,每个抽象机是由其下层的抽象机的代码构成的。

版本管理系统的抽象机模型

最典型的分层结构是网络通信协议。 由一套描述计算机程序之间如何进行通信的规则和约定来组成——ISO/OSI 7层模型。 分层抽象描述通信的物理-链路-网络-传输-会话-表示-应用这样固有的层次关系。每上层提供一个处理通信某特定部分的抽象功能,以作为上层通信的基础。 逻辑数据流 真实数据流

网络应用软件(平台)的抽象机结构 分层原则 优点 缺点 责任划分 层抽象 可维护, 重用,可扩展,可测试 通信传输量增加多 组件非额外的工作量大,性能受影响

体系结构的抽象机模型

10.2 控制模型 10.2 Control models 控制模型的作用 结构化模型没有涉及到信息的控制,因此需要在体系结构之外增加控制模型,以保证体系结构的运行: ——子系统必须得到控制以使它们的服务能在正确的时间传送到正确的地方 ——子系统之间存在控制流。 控制模型的作用 先有结构模型,再给出子系统的控制模型,便于分析系统的控制原理。 控制模型能够使结构模型得到集中式控制或基于事件控制。

控制模型的建模方法 1.集中式控制:考虑让一个子系统专门负责控制其他子系统的启动和停止。 2.基于事件的控制:让每个子系统都能接收来自外部子系统的事件并对此做出响应,而不是将控制信息集中在一个子系统内。

控制模型举例:访问控制模型 该模型以敏感度来划分资源的安全级别。 假如一个用户,他的安全级别为“高密“(命题者),想要访问安全级别为”秘密”的文档(题库),他将能够成功读取该文件,但不能写入;而安全级别为“秘密”的用户(题库管理员)访问安全级别为“高密”的文档(试卷),则会读取失败,但他能够写入(提供新试题)。这样,文档的保秘性就得到了保障。 控制

10.2.1 集中式控制 集中式控制模型 集中式控制模型的分类 把一个子系统指定为系统控制器,负责管理其他系统的执行。 10.2.1 集中式控制 集中式控制模型 把一个子系统指定为系统控制器,负责管理其他系统的执行。 集中式控制模型的分类 1.调用-返回模型 2.管理者模型 分类依据:子系统是顺序执行的还是并发执行?

解释:自上而下的子过程模型,控制始于子程序层次的顶层,在子程序调用过程中,控制逐步传递到更低的层次中。子程序模型只适用于顺序执行的系统。 “主”就是控制 解释:自上而下的子过程模型,控制始于子程序层次的顶层,在子程序调用过程中,控制逐步传递到更低的层次中。子程序模型只适用于顺序执行的系统。

管理者模型示例:一个并发系统的集中式控制模型 (图l0-6)。也称为事件-轮询模型。 “控制”的字样是必需的 注意:——适用于并发系统。 ——控制器控制其他系统过程的启动、终止和协调。 ——控制器内的管理程序根据状态变量来决定调用哪个子系统。

控制的本质——被控对象受到外界的作用(修正、影响、操纵和调节等),按照外界的要求动作。 时间 物质(外力) 特定的信息(事件)

10.2.2 事件驱动系统 事件驱动的控制模型 事件和输入的区别 事件——表面上是一个二进制信号,实质上是一个数据结构。 10.2.2 事件驱动系统 事件驱动的控制模型 事件——表面上是一个二进制信号,实质上是一个数据结构。 系统通过来自外部的事件来驱动自身的动作。 事件和输入的区别 事件的到来不受处理它的那个过程控制。 输入,是事先设计好的,受处理过程的控制。 系统需要读取状态信息来处理事件。

不同的基于事件驱动的系统 电子表格 专家系统 面向对象的程序 改变一个单元的值会引起其他单元的值的修改; 人工智能中使用的基于规则的产生式系统,当一个条件变为真时,一个相应的动作被触发 面向对象的程序 对于主动对象,当对象的属性值发生了改变,一系列相关的动作就会被触发执行。

两种事件驱动系统的控制模型 1.广播模型——事件可以广播到所有子系统,任何能处理该事件的子系统都会响应。 广播模型在基于网络的分布式系统中很有效。 2.中断驱动模型——专用于实时系统,由中断处理器对来自外部的中断进行检测,然后在其他组件中处理这些中断。 中断驱动模型在对定时有极严格要求的实时系统中广泛采用。

图10-7所示广播模型的特点: 子系统预先注册感兴趣的事件,当这些事件发生的时候,控制被转移到能处理这些事件的子系统。 系统的控制策略不在事件和消息处理器内部——子系统决定需要哪些事件,而消息处理器只管将事件发送给它们。

广播模型方法的好处 缺点 易于进化,新的处理特别类型事件的子系统可以通过注册来集成这些事件。 任何子系统可以在不知道其他子系统名字或位置的情况下激活其他子系统。 子系统能在分布式机器上实现。 缺点 子系统不知道是否和什么时候事件将会被处理。 当一个子系统产生一个事件,它不知道哪个子系统对该事件感兴趣。 不适用于实时系统。

中断驱动模型——事件处理基本原理 每个中断类型与一个内存地址相连,该内存地址存放的是与中断类型相应的事件处理器的地址。中断处理器对事件的响应是启动或终止其他的进程。 这个模型应该只用在硬实时系统中 。

作业 什么是体系结构设计? 一个应用程序的结构和风格,依赖于系统的哪些非功能性需求? 共享容器模型的优缺点. 客户机/服务器模型的主要组成部分.