栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > 架构设计

第十一章 面向对象的设计与实现(2)

架构设计 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

第十一章 面向对象的设计与实现(2)

11.2系统设计

面向对象的软件设计也分为两个层次:系统架构设计(也叫做结构设计)和系统元素设计,系统架构设计是指系统主要组成元素的组织或结构,以及各组成元素之间进行交互的接口定义,该设计工作主要包含6个方面的活动:系统高层结构设计、确定设计元素、确定任务管理策略。实现分布式机制,设计数据存储方案,和设计人机界面。系统架构设计时针对整个系统的某设计,结果将影响整个系统,对系统元素的设计有指导作用。

系统元素包括组成系统的类,子系统与接口、包等。系统元素设计就是针对每个设计元素进行详细设计。

大多数面向对象系统的逻辑设计模型可以划分为4部分,分别对应组成目标系统的4个子系统,即问题域于系统,人机交互于系统任务管理子系统和数据管理子系统。

11.2.1问题域子系统设计

面向对象分析所得出的问题域精确模型,为设计问题域子系统奠定了良好的基础,建立了完整的框架,通常面向对象设计仅需从实现角度对问题域模型做一些补充或修改,主要是增添、合并或分解类、属性及服务,调整继承关系等。

在问题域子系统设计中,常用的增添、合并或分解思路和方法包括以下方面。

(1)为复用设计与编程的类二增加结构

如OOA识别和定义的类是本次开发中新定义的,就需要从头开始进行设计,如果已存在一些可复用的类,而且这些类既有分析、设计和定义,又有源程序,那么复用这些可以客观开发效率和质量,一般都是相似不可能完全相同,对其相似的进行修改,修改成自己需要的。设计目的是尽可能使用复用成分增多,新开发的成分减少。

如果有某一个类有相似性,可以将所有的具有相似协议的类组织在一起,抽取共同特征,提供通用的协议,增加一个父类。

(2)按编程语言调整继承关系

OOA强调如实反映问题域,而OOD要考虑实现问题,在OOD中需要按照所选择的编程语言调整分析结果中的继承和关系。

(3)提高性能

为了提高系统整体性能,可以从以下几个方面考虑,把需要频繁交换信息的对象尽量放在一台处理机上,增加属性或类,以保存中间结果,提高或降低系统的并发度,可能要人为地增加或减少主题对象,合并通信频繁的种类,根据上述原则进行类设计的合并前后对照示意图参见图11.2

(4) 为了编程方面,增加底层成分,通过细化对象的分类来实现,将几何图形分成多边形、椭圆形、扇形等特殊类型图形,通过继承关系实现这几个图形之间的联系参见图11.3

(5) 对复杂关联的转化并决定关联的实现方式

把多对多关联转化为一对多关联,参见图11.4

把多元关联转化为二元关联,参见图11.5

 

(6) 调整与完善属性

按照语法:[可见性]属性名[':‘初始值’]对属性的定义进行完善,每一个属性或包含单个值或者包含作为一个整体的密切相关的一组值参见图11.6

如果编程语言限制了可用的属性类型,则要通过操作算法来调整

(7) 构造或优化算法,调整服务

对需要设计的操作,要从如下几方面进行详细地定义

①按照定义操作的格式:[可见性]操作名['(参数列表')'][':'返回类型]完善操作的定义

②从问题域的角度,根据其责任,考虑实现操作的算法,即对象是怎样提供操作的。

③若操作有前后条件或不变式,考虑编程是否予以支持,如不支持在操作的方法中要予以实现。

④分析特定类对象相关的所有交互图,找出所有与之相关的消息,一个对象所要响应的每个消息都要由该对象的操作处理,其中的一个操作也可以使用其他操作,如果类拥有状态图,还可以根据内部转换及外部转换的动作等,设计算法的详细逻辑可以自然语言或伪代码描述算法,也可以使用程序柜图或活动图描述算法

⑤在算法中还要考虑对异常和特殊情况的处理。

⑥在系统较为复杂或需要处理大批量数据的情况下,若系统在性能上由需求,就要对系统的体系结构和算法进行优化

(8)其他

在OOD的问题域部分,还需要考虑一些其他问题,如 为数据存储管理增补属性与服务;决定对象间的可访问性;考虑加入进行输入数据验证这样的类。

当两个子系统互相通信时,可以建立客户机/服务器(C/S)结构或对等结构(P2P)在C/S结构中,每个子系统只承担一个由客户机端或服务器隐含的角色,服务只是单向地从服务器端流向客户机端;在P2P结构中服务可以双向流动。

11.2.2人机交互子系统设计

使用原型支持的系统化的设计策略,是成功地设计人机交互子系统的关键,此外把人机交互部分作为系统中一个独立的组成部分进行分析和设计,有利于隔离界面,支持系统的变化对问题域部分影响。

在OOA阶段给出了系统所需的属性和操作,对用户需求做了初步分析,在OOD过程中,应对目标系统的人机交互子系统进行相应设计,以确定人机交互界面的细节,包括指向窗口和报表的形式,设计命令层等内容,根据需求把交互细节加入到用户界面设计中。包括人机交互所必需的实际显示和输入。

用户界面设计主要由以下几个方面组成

1、用户分类

对用户的分类可以由多种标准,不同分类标准可以提供界面设计的不同要求。

2、描述与系统交互的参与者的脚步

对前面定义的每类用户分类考虑其目的,特点、操作熟练程度,任务要求等因素

3、设计详细的交互

人机界面的设计准则包括

①易学、易用、操作方便

②尽量保持一致性

③及时提供有意义的反馈

④使用户的注意力集中在当前的任务上而不是界面上

⑤尽量减少用户的记忆负担

⑥具有语境敏感的帮助功能

⑦减少重复的输入和操作

⑧对用户的操作具有容错性,如具有撤销功能

⑨防止灾难性的错误

其他:如艺术性、趣味性、风格、视感等。

4、设计命令层

处理图形化界面对于命令层的设计需要考虑以下问题

①把使用最频繁的操作命令放在最前面,其他命令按照用户工作步骤排列

②通过逐步分解,对命令层中的操作适当分块,按照每次3块,每块3项的特点,把深度尽量限制在3层内。

③尽量减少操作步骤,把点击、拖动和键盘操作减到最少。

5、设计人机交互类

首先设计组织窗口和相关部件的用户界面,用同样的类初始化系统中其他人机交互部件类,保证整个系统人机交互界面的一致性。

6、继续做原型

系统原型是人机交互设计中的重要工作之一,通过快速原型工具或应用机构造器尽快做出原型,让用户使用,可以快速得到用户反馈,帮助界面设计更符合用户需求。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/911520.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号