系统分析和设计 - 面向对象的方法

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

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

OO模型在以下方面有益;减去;

  • 它以低成本促进系统变更.

  • 它促进了组件的重用.

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

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

面向对象系统的元素

让我们一起来看看OO系统的特点 :

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

  • 属性 : 它们描述了有关该对象的信息.

  • 行为 : 它指定了对象可以执行的操作.它定义了对对象执行的操作.

  • Class : 类封装了数据及其行为.具有相似含义和目的的对象组合在一起作为类.

  • 方法 : 方法确定类的行为.它们只不过是一个对象可以执行的动作.

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

面向对象系统的特性

面向对象的系统有几个很好的功能,将在下面讨论.

封装

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

抽象

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

关系

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

有三种类型的对象关系 :

  • 聚合 : 它表示整体及其各部分之间的关系.

  • 协会 : 在这里,两个类以某种方式相关或连接,例如一个类与另一个类一起工作以执行任务或一个类作用于其他类.

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

继承

继承是一个允许通过继承现有类的属性和/或操作从现有类创建子类的强大功能.

多态和动态绑定

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

在多态操作中,操作可以由不同类别的对象以不同方式执行.它允许我们通过只知道它们的共同属性来操纵不同类的对象.

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

下表解释了面向对象方法与传统结构化方法的区别 :

结构化方法对象面向方法
它采用自上而下的方法.它适用于自下而上的方法.
程序分为子模块或函数的数量.程序是通过包含多个类和对象来组织的.
使用函数调用.使用消息传递.
无法重用软件.可以重复使用.
结构化设计编程通常会留到最后阶段.面向对象的设计编程与其他ph同时完成ases.
结构化设计更适合离岸外包.这是合适的用于内部开发.
它显示了从设计到实现的明确过渡.从设计到实现的转换不太清楚.
它适用于实时系统,嵌入式系统和项目对象不是最有用的抽象级别.它适用于大多数业务应用程序,游戏开发项目,预计会定制或扩展.
DFD& ER图模拟数据.类图,序列图,状态图和用例都有贡献.
在这种情况下,由于可明确识别的阶段,项目可以轻松管理.在这种方法中,由于阶段之间的不确定转换,项目可能难以管理.

统一建模语言(UML)

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

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

UML的目标是提供面向对象术语和图表技术的通用词汇表,这些词汇表非常丰富,足以模拟从分析到实现的任何系统开发项目.

UML由 :

  • Diagrams : 它是过程,系统或其中某些部分的图形表示.

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

类的UML表示法示例

类符号

实例图 -  UML符号

UML表示法

对象执行的操作

对对象执行以下操作 :

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

  • 查询 : 在不改变价值的情况下访问状态,没有副作用.例如,查找特定员工的地址.

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

UML的使用

UML非常适用于以下用途 :

  • 对业务流程建模

  • 描述系统架构

  • 显示应用程序结构

  • 捕获系统行为

  • 建模数据结构

  • 构建系统的详细规范

  • 草拟想法

  • 生成程序代码

静态模型

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

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

  • 表示静态mo的UML图del包括类图,对象图和用例图.

动态模型

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

  • 动态模型识别

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

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

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

它包含三个宏过程 :

  • 面向对象分析(OOA)

  • 面向对象设计(OOD)

  • 面向对象的实现(OOI)

面向对象的生命周期

面向对象的系统开发活动

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

  • 面向对象的分析

  • 面向对象的设计

  • 原型设计

  • 实施

  • 增量测试

面向对象的分析

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

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

面向对象的设计

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

原型设计

原型设计可以完全理解容易或困难它将实现系统的一些功能.

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

实现

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

基于组件的开发(CBD)

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

快速应用程序开发(RAD)

RAD是一套工具和技术,可以用来比传统方法更快地构建应用程序.它不能取代SDLC,而是对它进行补充,因为它更侧重于流程描述,可以与面向对象的方法完美结合.

它的任务是快速构建应用程序并逐步实现用户需求通过visual basic,power builder等工具进行设计.

增量测试

软件开发及其所有活动(包括测试)都是迭代过程.因此,如果我们等待产品在完全开发后才进行测试,那么这可能是一件昂贵的事情.这里进行了增量测试,其中产品在其开发的各个阶段进行测试.