您的位置:首页 > 移动开发 > Objective-C

Object Oriented Design面向对象设计

2007-04-05 14:27 627 查看
 

 
 [align=center]面向对象的设计[/align]
 
   面向对象的设计(Object-Oriented Design)主要是利用面向对象的技术建立能够集成产品设计和制造信息的产品定义模型,即面向对象的产品定义模型,在该模型的基础上实现系统的设计。
  (1)从OOA到OOD 顾名思义,“面向对象的设计”说明要在“对象”和“设计”上作文章。
  设计是对问题域外部可见行为的规格说明增添实际的计算机系统实现所需的细节,包括人机交互、任务管理和数据管理的细节。
  在面向对象的设计中,对象有更明确的定义。
  对象是问题域或者现实中一些东西的抽象,它反映系统为之保存信息和(或)与它交互的能力,它是一些属性及其专用服务的一个封装体类:一个或多个对象的描述,或用一组属性和服务的形式来描述,此外它可以描述如何创造该类的对象。
  OOA是对现实世界中的问题空间建模,其分析侧重于总体,较为粗糙(粒度较大)的研究。而OOD则要求对特定的实现空间。建模。所以说,OOA的各层模型化了“问题空间”,而OOA各层扩充OOD,则模型化一个特定的“理论空间”。
  OOA完全独立于编程语言,OOD保持较大部分独立于编程语言的特点。
  在理想的情况下,人们希望有一套从分析到设计到实现的连续表示:OOA到OOD到OO-DBMS(面向对象的数据库管理系统——是面向对象的程序设计语言与关系数据库系统的有机组合)。在这种情况下,OOA的结果被扩充为OOD的结果,然后,OOD的结果又直接映射OO-DBMS程序设计语言及数据库管理语法。
  从OOA到OOD是一个累进的模型扩充过程。这种扩充主要以增加属性和服务开始。这种扩充有别于从数据流图到结构图所发生的剧变。
  (2)OOD与原型 OOD是原型OO方法中一个很重要的概念。那么,什么是原型?简单地说,设计者为了及早发现系统难点,或从用户处取得反馈意见,而构造的一个工作演示。它具有以下几个特征:
  1)原型是动态的。由于系统的动态变化和扩展,它的需求是不断变化的。原型也疳随着系统需求不断发生变化。
  2)原型有助于测验人机界面。人机界面越来越复杂,同时也越来越重要,对用户友善的界面是一个新系统能被接受的关键,用户需要看到模拟的界面,以便验证是否合乎要求。做原型可以满足这种要求。
  3)原型有助于发现需求误解和检验候选的设计。某些设计可能是不当的,或者对硬件提出了过高的要求。做原型是一个及早获得警告信号的好方法。
  4)原型有助于早些提供使用。系统设计者往往受到很大的压力,要求早日提供一些系统功能,即使不是全部,一部分也好。原型方法可以提供一些使最终用户能放到生产中有用的功能。
  当项目较大时,就需要开发一个总体框架,并按此框架构造原型。使原型贯穿于OOA,既而贯穿OOD始终,既而贯穿于OOD期间建立各设计部分的原型。
  (3)OOD的方法与步骤 OOD模型设计由四个部分构成,它们是:问题域部分、人机交互部分、任务管理部分、数据管理部分。每一部分的设计都在前文所述的OOA的五个层次上进行,即对象层、结构层、主题层、属性层、服务层。如图3-39所示。
   
 
 

图3-39  OOD的四个部分
   
 
   下面论述OOD的各组成部分。
  1)问题域部分的设计在OOD中,OOA的结果恰好符合OOD的问题域部分。OOA的结果就是OOD多部分模型中的一个完整的部分。
  面向对象的范型,促使人们按原样保持问题域组织框架,这种方法中从分析到设计到编程的踪迹是很清晰的,因为每一阶段都是按问题域本身的样子组织的。
  我们需要分析、设计、编程组织的长期稳定性,从而保证系统能从容地适应变化的需求。这种稳定性是一个问题域中或相似问题域之间的分析、设计及编程结果可重用性的基本关键。因此,在对OOA结果作任何修改时,都必须仔细地检查和验证。
  OOA与 OOD有着相同的表示法,同时运用交叉的、渐进式开发方法把 OOA、 OOD运用到若干小的步骤中。这是系统框架在整个生命周期中能保持稳定性的原因。在OOD中,将OOA的结果加以改进和增补。
  2)人机交互部分的设计 人机交互部分突出人如何命令系统以及系统如何向用户提交信息。在问题域部分设计的结果中加入人机交互设计和交互的细节,并用原型来帮助实际交互机制的开发与选择、在进行详细的交互设计时,应遵守如下准则:①保持一致性,采用一致的术语、一致步骤和一致活动;②减少操作步骤,使敲键或鼠标点的人数减到最少,甚至要减少做某些事所需的下接菜单的距离,不做“哑播放”;③当用户要等待系统完成一个活动时,要及时地给出一些反馈信息,减轻人脑的记忆负担,提高学习效率,使操作更具趣昧性与吸引力等等。
  3)任务管理部分的设计 任务是进程的别称。若干任务的共发执行称为多任务。独立的任务把必须并发进行的行为分离开来,简化了必要的并发行为的设计和编码。
  在对任务进行选择和调整时,遵循以下策略:识别事件驱动的任务,有些任务是事件驱动的,这些任务在接收到来自于数据行或其它来源的中断后被激活,在进行处理并把消息发送给有关的对象后,重新回到睡眠状态,事件驱动任务执行的随机性很强。②与事件驱动任务的不同的是:识别时钟驱动任务被以特定的时间间隔激活;识别优先任务和关键任务,有较多任务时,考虑另增加一个任务,起协调者的作用,可以为封装任务之间的协作带来好处。③最后是对任务进行审查并定义细节。
  4)数据管理部分的设计 数据管理部分提供了在数据管理系统中存储和检索对象的基本结构,数据管理部分旨在隔离数据管理方式的影响,不管该方案是普通文件、关系、面向对象或其它方式。
  设计数
4000
据管理部分既包括数据存放方法的设计,也包括相应服务的设计。为每一个带有要存储的对象的类及对象增加一个属性和服务,使其知道如何存储自己。“存储我自己”的属性和服务成为问题域和数据管理之间的桥梁。
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐