实用软件工程 教学课件 ppt 作者 李龙澍 第9章 协作与子系统

上传人:E**** 文档编号:89376237 上传时间:2019-05-24 格式:PPT 页数:43 大小:100.50KB
返回 下载 相关 举报
实用软件工程 教学课件 ppt 作者  李龙澍 第9章  协作与子系统_第1页
第1页 / 共43页
实用软件工程 教学课件 ppt 作者  李龙澍 第9章  协作与子系统_第2页
第2页 / 共43页
实用软件工程 教学课件 ppt 作者  李龙澍 第9章  协作与子系统_第3页
第3页 / 共43页
实用软件工程 教学课件 ppt 作者  李龙澍 第9章  协作与子系统_第4页
第4页 / 共43页
实用软件工程 教学课件 ppt 作者  李龙澍 第9章  协作与子系统_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《实用软件工程 教学课件 ppt 作者 李龙澍 第9章 协作与子系统》由会员分享,可在线阅读,更多相关《实用软件工程 教学课件 ppt 作者 李龙澍 第9章 协作与子系统(43页珍藏版)》请在金锄头文库上搜索。

1、第9章 协作与子系统,9.1 协作 9.2 子系统 9.3 人机交互子系统 9.4 数据管理子系统 9.5 问题域子系统 9.6 任务管理子系统 9.7 小结,9.1 协作,9.1.1 什么是协作 当一个对象所包含的知识(比如,属性,外界的输入),不足以让它完成某个任务时,它就需要和其它对象进行合作。合作的模式不外乎两个方面:发送消息请求服务和响应消息提供服务,我们把请求服务的对象称为客户对象,而把提供服务的对象称为服务器对象。,“协作”代表了在履行客户操作过程中从客户对象到服务器对象的请求。 每个协作都是为了履行某个操作,履行一个操作可能需要一个或者多个协作,也可能不需要协作而由对象自己执行

2、必要的计算。,图9.1 “收款”对象与“打印机”对象协作完成打印小票任务,当对象世界的关系与你熟悉的生活常识较远时,或者当子系统的粒度更小些的时候,考虑对象的协作,可以很方便划分子系统,使问题模块化。 分析协作的另一个作用是发现和补充新的操作。,9.1.2 发现协作 发现协作的办法是,先分析每个类的交互,检查从属的操作。 交互和协作是不同的。交互通常是一个双向活动的概念,而协作是一个单向的概念。,可以通过对每个类思考如下问题来发现协作: (1) 从客户类的角度 类本身能够履行这个操作吗? 如果不能,那么它需要什么? 从其它什么类中它能够获得它所需要的东西?,(2) 从服务器类的角度 这个类知道

3、什么或者不知道什么? 其它类需要什么样的结果,或者需要什么样的信息?检查、确保需要结果的每个类与这个类的协作。, 如果一个类没有与其它类协作,那么应该抛弃这个类。然而,在这样做之前,应该反复检查和核对类的协作,严格排练先前的设计。,另外,检查类之间的关系也是一个十分有用的方法。在这方面,有三种关系特别有用,即:组成关系、知道关系和依赖关系。,9.1.3 将协作记录到类图中 将发现的协作记录在该客户类相应操作(即类的行为函数)的旁边,注意表示符号的统一和明确,如果一个操作需要几个协作,那么就写上需要帮助履行这个操作的每个类的名字。,9.1.4 检查协作 给应用程序选择一组合理的输入,看看对象的协

4、作是否如预见的那样,每个类都能够协作。,9.2 子系统,由软件开发人员划分出来的一个个模块称为子系统。通常是根据所提供的功能来划分子系统的,各个子系统之间应该具有尽可能简单、明确的接口。在划分和设计子系统时,应该尽量减少子系统彼此间的依赖性,简化它们之间的协作。,9.2.1 子系统的粒度 事物的粒度简单的说就是对该事物的大小、规模的一个度量。,大多数系统的面向对象设计模型,在逻辑上都由四大部分组成。这四大部分对应于组成目标系统的四个子系统,它们分别是问题域子系统、人-机交互子系统、任务管理子系统和数据管理子系统。规模过大的在设计过程中应该进一步划分成更小的子系统,规模过小的可合并在其它子系统中

5、。某些领域的应用系统在逻辑上可能仅由3个(甚至少于3个)子系统组成。,9.2.2.1 子系统的交互方式 在软件系统中,子系统之间的交互有两种可能的方式,分别是客户-供应商(client-supplier)关系和平等伙伴(peer-to-peer)关系。,9.2.2 子系统的交互,9.2.2.2 简化类与子系统及子系统间的交互 划分出子系统之后就可考虑用以下方针简化系统中的协作: (1) 最小化一个类与其它类或者子系统协作的数量。 (2) 最小化一个子系统委托类和子系统的数量。 (3) 最小化由一个类或者子系统提供的不同服务的数量。,9.2.3 子系统的组织方案 在把子系统组织成完整的系统时,有

6、水平层次组织和垂直块组织两种方案可供选择。 (1) 层次结构 这种组织方案把软件系统组织成一个层次系统,每层是一个子系统。上层在下层的基础上建立,下层为实现上层功能而提供必要的服务。每一层内所包含的对象,彼此间相互独立,而处于不同层次上的对象,彼此间往往有关联。,层次结构又可进一步划分成两种模式:封闭式和开放式。 这两层往往差异很大,设计者必须设计一些中间层次,以减少不同层次之间的概念差异。,(2) 块状结构 这种组织方案把软件系统垂直地分解成若干个相对独立的、弱耦合的子系统,一个子系统相当于一块,每块提供一种类型的服务。,9.2.4 子系统的连接 将子系统组成完整的系统时,可以按照典型的拓扑

7、结构组织。 图9.4描述了总线型、树型、星型、环型等几种典型的子系统拓扑结构。,9.3 人机交互子系统,很多应用系统把人机交互部分的类和对象以及相关资源化作一个和用户接触的最上层子系统。,9.3.1 设计用户界面的原则 遵循下列原则有助于设计出让用户满意的用户界面: (1) 风格一致 (2) 减少步骤 (3) 尽快响应及时反馈 (4) 提供撒消命令 (5) 减少记忆内容 (6) 容易学习和充满吸引力,9.3.2 设计人机交互子系统的策略 设计用户界面的策略有两种,一是了解目标系统的用户需求;二是遵循多年设计经验得出的界面设计原则。,(1) 了解用户、分类用户 (2) 描述用户 (3) 设计命令

8、层次 (4) 设计人机交互类 (5) 建立快速原型,9.4 数据管理子系统,9.4.1 选择数据存储管理模式 设计者应该根据应用系统的特点选择适用的模式。 (1) 文件管理系统 (2) 关系数据库管理系统 (3) 面向对象数据库管理系统,9.4.2 设计数据管理子系统 设计数据管理子系统,既需要设计数据格式又需要设计相应的服务。 (1) 设计数据格式 (2) 设计相应的服务,9.5 问题域子系统,问题域,顾名思义就是研究要解决的问题、目标、任务以及目标和任务之间关系。 当问题域子系统过分复杂庞大时,应该把它进一步分解成若干个更小的子系统。 对问题域子系统的设计完善通常要分析需求变化、重用已经存

9、在的类和设计组合类。,9.5.1 需求变化,一是用户需求或外部环境发生了变化;二是面向对象分析模型不能完整、准确地反映用户的真实需求。 只需简单地修改面向对象分析结果,然后再把这些修改补充到问题域子系统中。,9.5.2 重用已有的类 如果有可能重用已有的类,则重用已有类的典型过程如下: (1) 选择有可能被重用的已有类,标出这些候选类中对本问题无用的属性和服务,尽可能重用那些能使无用的属性和服务降到最低程度的类。,(2) 在被重用的已有类和问题域类之间添加归纳关系(即从被重用的已有类派生出问题域类)。,(3) 标出问题域类中从已有类继承来的属性和服务,现在已经无须在问题域类内定义它们了。,(4

10、) 修改与问题域类相关的关联,必要时改为与被重用的已有类相关的关联。,9.5.3 设计组合类 类和对象之间的整体和部分(组成)关系,是组合类的明显启示。另外,设计者常通过引入一个超类而把问题域类组合在一起。,9.6 任务管理子系统,任务是进程(Process)的别名,多任务操作系统在执行任何程序时都先给程序建立相应的进程,以使多个程序能并发的执行。在设计软件系统时,必须考虑到系统在运行时,多个任务的并发执行的可行性和效率。,9.6.1 分析并发性 如果二个对象彼此间存在交互,或者它们同时接受事件,则这二个对象在本质上是并发的。通过检查各个对象的状态图及它们之间交换的事件,能够把若干个非并发的对

11、象归并到一条控制线中。在计算机系统中用任务实现控制线。,9.6.2 划分、设计任务管理子系统 常见的任务有事件驱动型任务、时钟驱动型任务、优先任务、协调任务等。设计任务管理子系统,包括确定各类任务并把任务分配给适当的硬件或软件去执行。,(1) 确定事件驱动型任务 (2) 确定时钟驱动型任务 (3) 确定优先任务 (4) 确定关键任务 (5) 确定协调任务 (6) 尽量减少任务数 (7) 确定资源需求,9.7 小结,协作是面向对象系统中客户对象在履行操作过程中对服务器对象的请求。发现协作的办法是,先分析每个类的交互,检查从属的操作。,在软件开发设计中划分出来的一个个功能相对独立的模块称为子系统。

12、子系统可以使系统包含的设计概念简单化,隐藏细节,减化协作。大多数系统可以分为四个子系统,它们分别是问题域子系统、人-机交互子系统、任务管理子系统和数据管理子系统。子系统之间的交互有两种可能的方式,分别是客户-供应商关系和平等伙伴关系。子系统之间的体系结构一般有层次结构和块状结构两种。子系统的连接结构有总线型、树型、星型、环型。,设计人机交互子系统要求用户界面风格一致,了解目标系统的用户需求,遵循由设计经验得出的界面设计原则,建立快速原型。,数据管理子系统是系统存储或检索对象的基本设施,它建立在某种数据存储管理系统之上,并且隔离了数据存储管理模式的影响。设计数据管理子系统,需要设计数据格式和设计相应的服务。问题域子系统是目标软件系统中处理数据、实现系统逻辑功能的主体部分,在面向对象分析时得到的问题域精确模型是问题域子系统的总框架。在设计软件系统时,还必须考虑系统在运行时,多个任务的并发执行的可行性和效率。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号