[架构之路-104]:《软件架构设计:程序员向架构师转型必备》-14-根据需求用例驱动进行软件架构的模块划分过程

14 用例驱动的模块划分过程

描述用例的两种方式:

  • 图形描述:用例序列图,直观,但修改不方便,版本控制不方便。

  • 文本描述:用例规约描述,不直观,但修改方便,版本控制方便。

14.1 描述需求的序列图 vs. 描述设计的序列图

说明:时序图是软件系统动态交互最好的方式。

备注:描述需求的序列图,是站在用户的角度描述的系统与外部的交互是需求,也是设计。

14.1.1 描述“内外对话” vs. 描述“内部协作”

序列图既可以描述需求:外部用户对系统的需求 =》 来自用例图

序列图也可以描述设计:内部模块与模块之间的交互 =》对用例的细化

用用例中使用到的不同的“名词”划分为不同的“类”,根据相似性对“类”进行汇总,就得到了“功能模块”。这种方法,并非得到功能模块,然后再在功能模块中切分“类”。

因此,用例划分模块的过程是先分后总的过程!!!

14.1.2 《用例规约》这样描述“内外对话”

通过用例规约,可以详细描述用户与系统交互的行为。

14.2 用例驱动的模块划分过程(非常重要!!!)

14.2.1 核心原理:从用例到类,再到模块

备注:

用例是是需求,是软件的功能需求。协作图是功能设计,是架构设计,描述如何划分功能模块和模块之间的关系实现用例的功能!!!

备注:对象图=》类图 =》包图(模块)

备注:

本节阐述了一个关键的方法:如何从用例获得内部的模块设计!!!

(1)方法1:鲁棒图,能够获得内部模块。

(2)方法2:序列图,能够获得内部模块之间的交互。

14.2.2 第1步:实现用例需要哪些类

14.2.3 第2步:这些类应该划归哪些模块

备注:

很显然,分层和画模块并非一会事,并非同一个层的所有对象,就在同一个模块中。

界面交互模块:包含了界面层、业务逻辑处理层。

压缩控制模块:包含了解压和压缩的业务逻辑。

源文件读写模块包含了业务逻辑层和源文件数据层。

压缩读写模块:包括了业务逻辑处理层和压缩后数据的数据层。

14.3 实际应用(12)——对比MailProxy案例的 4种模块划分设计

14.3.1 设计

14.3.2 设计的优点、缺点

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
抽奖系统是一种常见的应用,在设计抽奖系统时,使用基于领域驱动设计(Domain-Driven Design,DDD)的四层架构可以提供更好的架构实践。 在四层架构中,首先是用户界面层(User Interface Layer),用户界面层负责向用户展示抽奖界面,并接收用户的输入请求。用户界面层可以采用Web页面、移动应用等形式实现。通过使用领域驱动设计,用户界面层可以更加贴近用户需求,提供更好的用户体验。 接下来是应用层(Application Layer),应用层是整个抽奖系统的核心。应用层负责处理用户请求,协调各个领域对象之间的交互,并调用相应的领域服务和聚合根进行业务逻辑的处理。应用层在领域驱动设计中起到了承上启下的作用,通过定义和实现各种用和操作,实现了系统的功能。 在领域层(Domain Layer)中,定义了抽奖系统中的核心业务逻辑。领域层包含了各种实体、值对象、聚合根等领域对象,通过这些领域对象的交互实现了系统的业务流程。在抽奖系统中,可以定义抽奖活动、参与者、奖品等领域对象,并在领域层中定义它们的行为和属性,从而满足系统的各项业务需求。 最后是基础设施层(Infrastructure Layer),基础设施层提供了抽奖系统运行所需的各种支持服务,包括数据库、缓存、消息队列等。在抽奖系统中,基础设施层可以提供参与者信息的持久化存储、抽奖结果的发送等功能。通过将基础设施逻辑与领域逻辑相分离,可以提高系统的可维护性和可扩展性。 综上所述,基于领域驱动设计的四层架构可以有效地设计和实现抽奖系统。通过将系统的核心业务逻辑与界面、应用和基础设施进行分离,可以实现系统的高内聚、低耦合,提供更好的扩展性和可维护性。同时,领域驱动设计还能够更好地满足用户需求,提供更好的用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

文火冰糖的硅基工坊

你的鼓励是我前进的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值