跳至正文
Read this post in: de_DEen_USes_ESfr_FRid_IDjapl_PLpt_PTru_RUvizh_CNzh_TW
Home » UML » 从用例到MVC框架:面向对象系统开发指南

从用例到MVC框架:面向对象系统开发指南

类图是面向对象编程的关键组成部分,有助于开发人员可视化其软件的结构及其交互。在软件开发中,基于用例识别类对于创建准确且有效的类图至关重要。在本文中,我们将探讨基于用例识别类以及随后开发类图的步骤。我们还将讨论如何将类图优化为MVC详细类图。

MVC framework

步骤1:识别用例

在创建类图之前,必须充分理解问题领域以及软件将解决的用例。用例代表系统必须向用户提供的特定功能。可以通过与利益相关者讨论、审查需求文档以及头脑风暴会议来识别用例。

步骤2:识别类

在确定用例后,就可以开始识别支持这些用例所需的类。类是创建对象的蓝图,包含属性和方法。类可以代表现实世界中的实体或抽象概念。

例如,如果用例涉及管理客户信息,你可能会识别出一个Customer类,该类包含姓名、地址和电子邮件等属性。如果用例涉及处理付款,你可能会识别出一个Payment类,该类包含付款金额、付款方式和付款日期等属性。

步骤3:识别关系

在识别出类之后,需要确定它们之间的相互关系。类之间的关系可以通过关联、聚合或组合来表示。

关联表示两个类之间的关系,其中一个类使用另一个类的服务。聚合表示两个类之间的关系,其中一个类将另一个类作为其组成部分,但该部分可以独立于整体存在。组合表示两个类之间的关系,其中一个类将另一个类作为其组成部分,且该部分不能独立于整体存在。

步骤4:开发类图

利用已识别的类和关系,可以创建类图。类图是类及其关系的视觉表示。它展示了每个类的属性和方法以及类之间的关系。

在类图中,每个类以一个方框表示,类名位于方框顶部。类的属性列在方框中间,方法列在方框底部。类之间的关系通过线条表示,不同类型的线条代表不同类型的关系。

步骤5:将类图优化为MVC详细类图

创建类图后,可以将其优化为MVC详细类图。模型-视图-控制器(MVC)模式是一种软件设计模式,将应用程序分为三个相互关联的组件:模型、视图和控制器。

模型代表应用程序的数据和业务逻辑。视图代表应用程序的用户界面。控制器负责处理模型与视图之间的通信。

为了将类图优化为MVC详细类图,需要识别哪些类代表模型、视图和控制器。模型类应包含应用程序的数据和业务逻辑。视图类应包含应用程序的用户界面。控制器类应负责处理模型与视图之间的通信。

一旦确定了哪些类代表模型、视图和控制器,就可以更新类图以反映这些标识。可以使用不同的颜色或线型来区分模型、视图和控制器类。

示例:汽车租赁系统

问题描述:一家汽车租赁公司希望开发一个软件系统,使客户能够在线租车。客户应能够浏览可用车辆、选择要租赁的车辆并进行预订。系统应跟踪车辆的可用性以及客户所做的预订。

步骤1:识别用例

  • 浏览可用车辆
  • 选择要租赁的车辆
  • 进行预订

Car Rental Use Case Diagram

该用例图展示了步骤1中识别出的三个主要用例:浏览可用车辆、选择要租赁的车辆以及进行预订。客户参与者与CarRentalSystem交互以执行这些操作。

步骤2:识别类

  • 客户
  • 汽车
  • 预订

步骤3:识别关系

  • 一个客户可以预订多个,但每个预订只能由一个客户完成。这是一种一对多的关系,通过客户类和预订类之间的关联来表示。
  • 一辆汽车可以被多个客户租用,但每次租赁只针对一辆汽车。这也是一种一对多的关系,通过汽车类和预订类之间的关联来表示。

步骤4:开发类图

Car Rental Simple Class Diagram

此类图展示了步骤2中识别出的三个主要类:客户、汽车和预订。它还展示了步骤3中识别出的关系:客户与预订之间的一对多关系,以及汽车与预订之间的一对多关系。每个类还包含在分析阶段确定的属性和方法。

步骤5:将类图细化为MVC详细类图

  • 模型:汽车、客户、预订
  • 视图:用户界面(UI)
  • 控制器:汽车租赁控制器

此MVC类图展示了步骤5中识别出的系统三个主要组件:模型、视图和控制器。
模型包含客户、汽车和预订类,以及用于搜索汽车和预订的方法。视图由CarRentalView接口表示,该接口定义了显示汽车和预订详情的方法。控制器由CarRentalController类表示,它与模型和视图交互以处理用户操作并更新系统状态。该图还包含了之前步骤中识别出的类之间的关系。

Refined Car Rental Class Diagram (MVC)

请注意:

  • 控制器包含客户、汽车和预订类,以及用于搜索汽车和预订的方法。客户, 汽车预订类,以及用于搜索汽车和预订的方法。
  • 视图由CarRentalView接口表示,该接口定义了显示汽车和预订详情的方法。由CarRentalView接口表示,该接口定义了显示汽车和预订详情的方法。
  • 控制器由CarRentalController类表示,它与模型和视图交互以处理用户操作并更新系统状态。由CarRentalController类表示,它与模型和视图交互以处理用户操作并更新系统状态。
  • 该图还包含了之前步骤中识别出的类之间的关系。

根据对象建模结果创建ERD

此ERD展示了问题描述中识别出的三个主要实体:客户、汽车和预订。它还展示了这些实体之间的关系:客户与预订之间的一对多关系,汽车与预订之间的一对多关系,以及客户与汽车之间没有直接关系。每个实体都包含在分析阶段识别出的属性。

Car Rental ERD

ERD仅负责建模系统的数据持久化层,而类图则建模整个系统,包括模型、视图和控制器层。

换句话说,ERD表示数据库模式以及表/实体之间的关系,而类图则表示构成整个系统的类及其关系、属性和方法。

 

如何识别缺失的对象以完善类图

在开发初始的MVC类图时,需要考虑将参与系统行为的关键对象。然而,当我们开始开发用例场景和相应的顺序图时,可能会发现需要在类图中包含更多对象,以完整地表示系统。这一迭代过程使我们能够在更深入理解系统行为和需求的基础上,不断优化类图。

Car Rental MVC Sequence Diagram

通过用例场景中发现的缺失对象来完善MVC类图

在进行MVC顺序图的过程中,我们可能会发现需要在MVC类图中包含更多对象,以完整地表示系统的行为。为了完善MVC类图,我们可以按照以下步骤进行:

  1. 识别缺失的对象:在开发MVC顺序图时,我们可能会发现一些缺失的对象,这些对象是完成现有对象之间交互所必需的。这些缺失的对象可能包括在初始MVC类图中未考虑的新实体、服务或控制器。
  2. 将缺失的对象添加到MVC类图中:一旦识别出缺失的对象,就可以将其添加到现有的MVC类图中。同时,可根据需要修改现有对象与新对象之间的关系。
  3. 审查并优化关系:在将缺失的对象添加到MVC类图后,应审查对象之间的关系,确保它们准确反映系统的行为。可能需要调整对象之间的关系,以适应新增的对象,并确保图表仍易于理解。
  4. 按需迭代:如果在顺序图过程中发现更多缺失的对象,可以重复上述步骤,不断优化MVC类图,直到其准确反映系统的行为。

总体而言,通过顺序图过程来完善MVC类图是一个迭代过程,有助于确保该图准确反映系统的行为和需求。

Car Rental Class Diagram Refined (Miss objs discovered)

结论

识别类并开发类图的过程是设计和开发软件系统的重要步骤。它有助于确保系统结构清晰、易于维护,并满足用户的需求。

通过遵循本文所述的步骤——从用例分析开始,最终完成MVC类图的创建——开发者可以确保其软件系统设计得当,每个组件的类、关系和职责都清晰明确。

总体而言,识别类并创建类图的过程可能具有挑战性,但这是构建满足用户和利益相关者需求的高质量软件系统的关键步骤。

发表回复