面向对象方法
面向对象方法
在面向对象的方法中,重点是将信息系统的结构和行为捕获到结合数据和过程的小模块中。面向对象设计 (OOD) 的主要目标是通过提高系统分析和设计的可用性来提高系统分析和设计的质量和生产力。
在分析阶段,OO 模型用于填补问题和解决方案之间的差距。它在系统进行持续设计、调整和维护的情况下表现良好。它识别问题域中的对象,根据数据和行为对它们进行分类。
OO 模型在以下方面是有益的 –
-
它有助于以低成本更改系统。
-
它促进了组件的重用。
-
它简化了集成组件以配置大型系统的问题。
-
它简化了分布式系统的设计。
面向对象系统的要素
让我们来看看面向对象系统的特点 –
-
对象– 对象是存在于问题域中的东西,可以通过数据(属性)或行为来识别。所有有形实体(学生、患者)和一些无形实体(银行账户)都被建模为对象。
-
属性– 它们描述有关对象的信息。
-
行为– 它指定对象可以做什么。它定义了对对象执行的操作。
-
类– 类封装了数据及其行为。具有相似含义和目的的对象归为一类。
-
方法– 方法确定类的行为。它们只不过是对象可以执行的操作。
-
消息– 消息是从一个对象到另一个对象的函数或过程调用。它们是发送到对象以触发方法的信息。本质上,消息是从一个对象到另一个对象的函数或过程调用。
面向对象系统的特点
面向对象的系统具有以下将讨论的几个重要功能。
封装
封装是一个信息隐藏的过程。它只是将流程和数据组合成一个实体。对象的数据对系统的其余部分是隐藏的,只能通过类的服务获得。它允许改进或修改对象使用的方法而不影响系统的其他部分。
抽象
它是采取或选择必要的方法和属性来指定对象的过程。它侧重于对象相对于用户视角的基本特征。
关系
系统中的所有类都是相互关联的。对象不是孤立存在的,它们与其他对象有关系。
有三种类型的对象关系 –
-
聚合– 它表示整体与其部分之间的关系。
-
关联– 在这种情况下,两个类以某种方式相关或连接,例如一个类与另一个类一起工作以执行任务或一个类对另一个类起作用。
-
泛化– 子类基于父类。它表明两个类相似但有一些差异。
遗产
继承是一个很棒的特性,它允许通过继承现有类的属性和/或操作从现有类创建子类。
多态和动态绑定
多态性是具有多种不同形式的能力。它适用于对象和操作。多态对象是真正类型隐藏在超类或父类中的对象。
在多态操作中,不同类别的对象可能执行不同的操作。它允许我们通过只知道它们的共同属性来操纵不同类的对象。
结构化方法对比 面向对象的方法
下表解释了面向对象方法与传统结构化方法的不同之处 –
Structured Approach | 面向对象方法 |
---|---|
It works with Top-down approach. | 它适用于自下而上的方法。 |
Program is divided into number of submodules or functions. | 程序是按类和对象的数量组织的。 |
Function call is used. | 使用消息传递。 |
Software reuse is not possible. | 可重用性是可能的。 |
Structured design programming usually left until end phases. | 面向对象的设计编程与其他阶段同时完成。 |
Structured Design is more suitable for offshoring. | 它适合内部开发。 |
It shows 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. | 适用于大多数需要定制或扩展的商业应用、游戏开发项目。 |
DFD & E-R diagram model the data. | 类图、序列图、状态图和用例都有贡献。 |
In this, projects can be managed easily due to clearly identifiable phases. | 在这种方法中,由于阶段之间的过渡不确定,项目可能难以管理。 |
统一建模语言 (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等工具快速构建应用程序并逐步实现用户需求设计。
增量测试
软件开发及其所有活动(包括测试)都是一个迭代过程。因此,如果我们只在产品开发完成后才对其进行测试,那将是一件代价高昂的事情。在这里,增量测试开始出现,其中产品在其开发的各个阶段进行测试。