【计算机】1.4 面向对象设计初步.docVIP

  • 1
  • 0
  • 约1.22万字
  • 约 8页
  • 2018-02-26 发布于江苏
  • 举报
【计算机】1.4 面向对象设计初步

1.4 面向对象设计初步 人们把设计视为定义系统的构造蓝图、约定和规则,以指导系统的实现。面向对象方法的一个特点是OOA和OOD自然地过渡和结合。但仍然有区别:OOA与系统的问题论域更加相关,OOD与系统的实现更加密切。 本节简要介绍面向对象设计(OOD)的基本要略。 1.4.1 OOD模型 一、从面向对象分析到面向对象设计 1、OOA与OOD的比较 从面向对象分析到面向对象设计是一个逐渐扩充模型的过程。面向对象分析主要模拟问题域和系统任务,而面向对象设计是面向对象分析的扩充,主要是增加各种组成部分。 具体来说,面向对象分析识别和定义类--对象,这些类--对象直接反映问题域和系统任务。而面向对象设计识别和定义其它附加类--对象,它们反映需求的一种实现。面向对象分析和面向对象设计是开发系统时的两个不同的阶段。 多层次 多组成部分模型 多层次 多组成部分模型由5层组成,在设计期间主要扩充为4个部分。 (1)人机交互部分:有效的人机交互所必需的实际显示和输入。设计一组有关类接口视图的用户模型的类和对象,设计用户界面; (2)问题域部分:面向对象分析的结果放在问题域部分。在该部分中,需要管理面向对象分析的某些类--对象、结构、属性和方法的组合与分解。原因可能是时间与空间的折中、内存管理、开发人员的变更及类的调整等。设计构造一组为底层应用建立模型的类和对象,细化分析结果; (3)任务管理部分:任务定义、通讯和协调,也包括硬件分配、外部系统以及装置协议。即确定系统资源的分配,设计用于系统中类的行为控制的对象/类; (4)数据管理部分:对永久性数据的访问和管理。即确定系统持久对象的存储,将对象转换成数据库记录或表格; 详细地确定对象和类是OOD的关键工作。一种有效的启发式方法是对需要提供的服务和问题陈述作语法分析,其中名词和名词短语可作候选对象,动词是候选对象服务,形容词表示了可能的子类关系。设计经验和技巧是非常重要的。 在分析和设计中,要注意遵循这样的原则:把构造由基本对象组装成复杂对象或活动对象的过程与分解大粒度对象使系统细化过程相结合;把抽象化与具体化结合起来,把独立封装与继承关系结合起来等。 二、面向对象设计 1、面向对象设计范式 设计范式是用其分解过程的观点来刻划的。过程范式采用面向任务的观点。当提出一种解决目标问题时,所提出的解决方法是通过将其分解成一系列任务来完成的,这些任务形成了过程应用程序的基本结构。分析阶段开发的信息可以作为设计阶段的输入部分,但它是以不同于设计阶段的术语表示的。由于这种原因,传统的软件生命周期观点包含了分析和设计之间的不必要的界限。导致了从分析阶段的问题域到设计阶段的求解决域的不一致。 面向对象的设计范式采用建模的观点。在传统的软件生命周期中,分析和设计同开发问题域的模型紧密相关。而在面向对象的生命周期中,保留了明显的独立结构。人们通过把问题域作为一系列相互作用的实体可以构造出模型。实体的基于软件模型以及模型间的关系汇集成应用程序的基本结构。这样,在分析阶段开发的信息就成为设计阶段的一个主要部分。这种极其自然的过渡是利用了“构件”的一致性。这种一致性与结构化分析和结构化设计有着完全不同的观点。 由过程设计范式产生的构件是执行任务的过程,且与所提出的解决方法有关。 由面向对象范式产生的构件是实体描述,即类。许多这样的描述可直接地反映原始问题,尽管许多类并不表示物理对象,但它们是概念上的实体,可以用问题域的术语来描述。 在传统语言中,程序是由传递参数的过程或函数的集合组成,每个过程处理它的参数,并有可能返回一个值,因此执行单元(即过程)为中心。 在面向对象的语言中,世界被看作独立的对象的集合,相互之间通过过程(通常称作消息)进行通信。对象是主动的,而过程(消息)是被动的,过程(消息)和它们的参数一起被从一个对象传递到另一个对象。一个对象根据提交给它的请求(即过程过又称做方法)并基于这些过程(方法)进行行动,因此以数据(即对象)为中心。由于抽象数据类型普遍地被应用于模拟应用领域内的实体,它们为程序的模块化提供了一个自然的基础,其面向对象程序的机构可以非常相似于应用领域中的结构。 为了说明过程范式和面向对象范式的不同,下面以一个十字路口控制交通灯的软件系统为例子,其简要的需求说明如下: 硬件包括一组传感器、交通灯和控制箱。软件读出传感器的状态,决定十字路口的新状态并且发出改变交通灯的信号。另外,系统还有其他能力,如通过配置集测试循环灯的任选项。系统也可以被设置成缺省状态。传感器指明在特殊车道上有无车辆。有几种类型的传感器,每种传感器的内部工作

文档评论(0)

1亿VIP精品文档

相关文档