面向对象的方法


在面向对象的方法中,重点是将信息系统的结构和Behave捕获到结合数据和过程的小模块中。面向对象设计(OOD)的主要目标是通过提高系统分析和设计的可用性来提高系统分析和设计的质量和生产力。

在分析阶段,OO模型用于填补问题和解决方案之间的空白。它在系统正在进行持续设计、调整和维护的情况下表现良好。它识别问题域中的对象,根据数据和Behave对它们进行分类。

OO 模型在以下方面有好处 -

  • 它有助于以低成本更改系统。

  • 它促进了组件的重用。

  • 它简化了集成组件来配置大型系统的问题。

  • 它简化了分布式系统的设计。

面向对象系统的要素

让我们回顾一下 OO 系统的特点 -

  • 对象- 对象是存在于问题域中的东西,可以通过数据(属性)或Behave来识别。所有有形实体(学生、患者)和一些无形实体(银行账户)都被建模为对象。

  • 属性- 它们描述有关对象的信息。

  • Behave- 它指定对象可以做什么。它定义了对对象执行的操作。

  • - 类封装了数据及其Behave。具有相似含义和目的的对象被分组为类。

  • 方法- 方法决定类的Behave。它们只不过是对象可以执行的操作。

  • 消息- 消息是从一个对象到另一个对象的函数或过程调用。它们是发送到对象以触发方法的信息。本质上,消息是从一个对象到另一个对象的函数或过程调用。

面向对象系统的特点

面向对象的系统具有几个重要的功能,下面将对此进行讨论。

封装

封装是一个信息隐藏的过程。它只是将流程和数据组合成一个实体。对象的数据对系统的其余部分是隐藏的,只能通过类的服务获得。它允许改进或修改对象使用的方法,而不影响系统的其他部分。

抽象

它是采取或选择必要的方法和属性来指定对象的过程。它侧重于对象相对于用户视角的基本特征。

人际关系

系统中的所有类都是相互关联的。对象不是孤立存在的,它们与其他对象存在关系。

对象关系分为三种类型 -

  • 聚合- 它表示整体与其部分之间的关​​系。

  • 关联- 在这种情况下,两个类以某种方式相关或连接,例如一个类与另一个类合作执行一项任务,或者一个类对其他类起作用。

  • 泛化- 子类基于父类。它表明两个类相似但有一些差异。

遗产

继承是一个很棒的功能,它允许通过继承现有类的属性和/或操作来从现有类创建子类。

多态性和动态绑定

多态性是呈现多种不同形式的能力。它适用于对象和操作。多态对象是真实类型隐藏在超类或父类中的对象。

在多态操作中,不同类的对象可以执行不同的操作。它允许我们通过仅了解不同类的对象的共同属性来操作它们。

结构化方法与结构化方法 面向对象的方法

下表解释了面向对象方法与传统结构化方法的不同之处 -

结构化的方法 面向对象的方法
它采用自上而下的方法。 它采用自下而上的方法。
程序分为多个子模块或功能。 程序是通过具有多个类和对象来组织的。
使用函数调用。 使用消息传递。
软件重用是不可能的。 可重复使用。
结构化设计编程通常留到最后阶段。 面向对象的设计编程与其他阶段同时完成。
结构化设计更适合离岸外包。 适合内部开发。
它显示了从设计到实施的清晰过渡。 从设计到实施的过渡不那么清晰。
它适用于实时系统、嵌入式系统和对象不是最有用的抽象级别的项目。 它适合大多数需要定制或扩展的商业应用程序、游戏开发项目。
DFD 和 ER 图对数据进行建模。 类图、序列图、状态图和用例都有助于。
在这种情况下,由于阶段清晰可辨,因此可以轻松管理项目。 在这种方法中,由于阶段之间的过渡不确定,项目可能难以管理。

统一建模语言 (UML)

UML 是一种可视化语言,可让您对流程、软件和系统进行建模,以表达系统架构的设计。它是一种以面向对象的方式设计和记录系统的标准语言,允许技术架构师与开发人员进行交流。

它被定义为由对象管理组创建和分发的一组规范。UML 是可扩展和可伸缩的。

UML 的目标是提供面向对象术语和图表技术的通用词汇表,该词汇表足够丰富,可以对从分析到实现的任何系统开发项目进行建模。

UML 由以下部分组成:

  • 图表- 它是过程、系统或其某些部分的图形表示。

  • 符号- 它由在图表中一起工作的元素组成,例如连接器、符号、注释等。

类的 UML 表示法示例

类别符号

实例图-UML表示法

UML符号

对对象执行的操作

对对象执行以下操作 -

  • 构造函数/析构函数- 创建类的新实例并删除类的现有实例。例如,添加一名新员工。

  • 查询- 访问状态而不更改值,没有副作用。例如,查找特定员工的地址。

  • 更新- 更改一个或多个属性的值并影响对象的状态例如,更改员工的地址。

UML的用途

UML 对于以下目的非常有用 -

  • 业务流程建模
  • 描述系统架构
  • 显示应用程序结构
  • 捕获系统Behave
  • 数据结构建模
  • 构建系统的详细规格
  • 勾画想法
  • 生成程序代码

静态模型

静态模型显示系统的结构特征,描述其系统结构,并强调组成系统的部分。

  • 它们用于定义类名、属性、方法、签名和包。

  • 表示静态模型的UML图包括类图、对象图和用例图。

动态模型

动态模型显示系统的Behave特征,即系统如何响应外部事件。

  • 动态模型识别所需的对象以及它们如何通过方法和消息一起工作。

  • 它们用于设计系统的逻辑和Behave。

  • UML图表示动态模型,包括序列图、通信图、状态图、活动图。

面向对象的系统开发生命周期

它由三个宏观过程组成 -

  • 面向对象分析(OOA)
  • 面向对象设计(OOD)
  • 面向对象实现(OOI)
面向对象的生命周期

面向对象的系统开发活动

面向对象的系统开发包括以下阶段 -

  • 面向对象的分析
  • 面向对象的设计
  • 原型制作
  • 执行
  • 增量测试

面向对象分析

此阶段涉及确定系统需求并了解系统需求并构建用例模型。用例是描述用户和计算机系统之间交互的场景。该模型代表了系统的用户需求或用户视图。

它还包括识别组成应用程序的类及其与问题域中其他类的关系。

面向对象的设计

此阶段的目标是设计和细化在分析阶段、用户界面和数据访问期间识别的类、属性、方法和结构。此阶段还标识并定义支持需求实现的附加类或对象。

原型制作

原型设计可以让我们充分了解实现系统某些功能的难易程度。

它还可以让用户有机会评论设计的可用性和实用性。它可以进一步定义用例并使用例建模变得更加容易。

执行

它使用基于组件的开发(CBD)或快速应用程序开发(RAD)。

基于组件的开发(CBD)

CODD 是一种使用 CASE 工具等各种技术的软件开发过程的工业化方法。应用程序开发从定制开发转向组装相互操作的预构建、预测试、可重用的软件组件。CBD 开发人员可以组装组件来构建完整的软件系统。

快速应用程序开发 (RAD)

RAD 是一组工具和技术,可用于比传统方法更快地构建应用程序。它并不是取代SDLC,而是对其的补充,因为它更注重流程描述,并且可以与面向对象方法完美结合。

其任务是通过Visual Basic、Power Builder等工具快速构建应用程序并逐步实现用户需求设计。

增量测试

软件开发及其所有活动(包括测试)都是一个迭代过程。因此,如果我们等到产品开发完成后才进行测试,其成本可能会很高。这里出现了增量测试,其中产品在其开发的各个阶段进行测试。