欢迎来到天天文库
浏览记录
ID:50040895
大小:100.50 KB
页数:43页
时间:2020-03-08
《实用软件工程 教学课件 作者 李龙澍 第9章 协作与子系统.ppt》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、第9章协作与子系统9.1协作9.2子系统9.3人机交互子系统9.4数据管理子系统9.5问题域子系统9.6任务管理子系统9.7小结9.1协作9.1.1什么是协作当一个对象所包含的知识(比如,属性,外界的输入),不足以让它完成某个任务时,它就需要和其它对象进行合作。合作的模式不外乎两个方面:发送消息请求服务和响应消息提供服务,我们把请求服务的对象称为客户对象,而把提供服务的对象称为服务器对象。“协作”代表了在履行客户操作过程中从客户对象到服务器对象的请求。每个协作都是为了履行某个操作,履行一个操作可能需要一个或者多个协作,也可能不需要协作而由对象自己执行必要的计算。图9.1“收款
2、”对象与“打印机”对象协作完成打印小票任务当对象世界的关系与你熟悉的生活常识较远时,或者当子系统的粒度更小些的时候,考虑对象的协作,可以很方便划分子系统,使问题模块化。分析协作的另一个作用是发现和补充新的操作。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子系统的连接将子系统组成完整的系统时,可以按照典型的拓扑结构组织。图9.4描述了总线型、树型、星型、环型
7、等几种典型的子系统拓扑结构。9.3人机交互子系统很多应用系统把人机交互部分的类和对象以及相关资源化作一个和用户接触的最上层子系统。9.3.1设计用户界面的原则遵循下列原则有助于设计出让用户满意的用户界面:(1)风格一致(2)减少步骤(3)尽快响应及时反馈(4)提供撒消命令(5)减少记忆内容(6)容易学习和充满吸引力9.3.2设计人机交互子系统的策略设计用户界面的策略有两种,一是了解目标系统的用户需求;二是遵循多年设计经验得出的界面设计原则。(1)了解用户、分类用户(2)描述用户(3)设计命令层次(4)设
此文档下载收益归作者所有