📜  面向对象的方法

📅  最后修改于: 2020-12-04 05:45:37             🧑  作者: Mango


在面向对象的方法中,重点是将信息系统的结构和行为捕获到组合了数据和过程的小模块中。面向对象设计(OOD)的主要目的是通过使其更加实用来提高系统分析和设计的质量和生产率。

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

OO模型在以下方面是有益的-

  • 它以低成本促进了系统的更改。

  • 它促进了组件的重用。

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

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

面向对象系统的要素

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

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

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

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

  • -类封装了数据及其行为。具有相似含义和目的的对象归为一类。

  • 方法-方法确定类的行为。它们不过是对象可以执行的动作。

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

面向对象系统的特征

面向对象的系统具有以下几个重要功能。

封装形式

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

抽象化

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

人际关系

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

有三种类型的对象关系-

  • 聚集-表示整体及其各个部分之间的关系。

  • 关联-在这种情况下,两个类以某种方式关联或连接,例如一个类与另一类协同工作以执行任务,或者一个类对另一类进行操作。

  • 概括-子类基于父类。它表明两个类是相似的,但有一些区别。

遗产

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

多态与动态绑定

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

在多态操作中,可以通过不同类别的对象以不同方式执行该操作。它使我们可以通过仅了解对象的公共属性来对其进行操作。

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

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

Structured Approach Object Oriented Approach
It works with Top-down approach. It works with Bottom-up approach.
Program is divided into number of submodules or functions. Program is organized by having number of classes and objects.
Function call is used. Message passing is used.
Software reuse is not possible. Reusability is possible.
Structured design programming usually left until end phases. Object oriented design programming done concurrently with other phases.
Structured Design is more suitable for offshoring. It is suitable for in-house development.
It shows clear transition from design to implementation. Not so clear transition from design to implementation.
It is suitable for real time system, embedded system and projects where objects are not the most useful level of abstraction. It is suitable for most business applications, game development projects, which are expected to customize or extended.
DFD & E-R diagram model the data. Class diagram, sequence diagram, state chart diagram, and use cases all contribute.
In this, projects can be managed easily due to clearly identifiable phases. In this approach, projects can be difficult to manage due to uncertain transitions between phase.

统一建模语言(UML)

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

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

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

UML由-

  • 图表-它是过程,系统或其一部分的图形表示。

  • 表示法-它由在图表中协同工作的元素组成,例如连接器,符号,注释等。

类的UML表示法示例

类符号

实例图-UML表示法

UML表示法

对对象执行的操作

对对象执行以下操作-

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

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

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

UML的用途

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

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

静态模型

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

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

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

动态模型

动态模型显示了系统的行为特征,即系统如何响应外部事件而运行。

  • 动态模型通过方法和消息确定所需的对象以及它们如何协同工作。

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

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

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

它包含三个宏过程-

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

面向对象的生命周期

面向对象的系统开发活动

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

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

面向对象的分析

此阶段涉及确定系统需求,并了解系统需求以构建用例模型。用例是描述用户与计算机系统之间交互的方案。该模型表示用户需求或系统的用户视图。

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

面向对象设计

此阶段的目标是设计和完善在分析阶段,用户界面和数据访问期间确定的类,属性,方法和结构。此阶段还标识并定义支持需求实现的其他类或对象。

原型制作

原型使您能够充分了解实现系统某些功能的难易程度。

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

实作

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

基于组件的开发(CBD)

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

快速应用程序开发(RAD)

RAD是一套工具和技术,可用于比传统方法通常更快地构建应用程序。它不能代替SDLC而是对其进行补充,因为它更加专注于过程描述,并且可以与面向对象的方法完美地结合在一起。

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

增量测试

软件开发及其所有活动(包括测试)是一个迭代过程。因此,如果我们仅在产品完全开发后才对产品进行测试,这可能是一项代价高昂的事情。在这里,渐进式测试成为现实,其中在产品开发的各个阶段都对其进行了测试。