【系统架构师】-案例篇(十六)逆向工程、分析类与设计类

1、分析类和设计类

1)分析类主要描述应用领域中的概念,分析类可以从这些概念中得出,或者说分析类图中的类是从需求中获取的。

2)设计类图描述软件的接口部分,而不是软件的实现部分,设计类更易于开发者之间的相互理解和交流,设计类通常是在分析类的基础上进行细化和改进的。

图中的类是分析类。

3)分析类主要在需求分析和架构设计中产生,设计类主要在概要设计阶段产生。

2、依赖关系分析

顾客、商家和管理员与用户间是泛化关系,泛化关系是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。

商家与库存间是依赖关系,依赖关系是一种使用的关系,即一个类的实现需要另一个类的协助。

库存与商品间是聚合关系,聚合关系是整体与部分的关系,且部分可以离开整体而单独存在。

3、可添加的类或属性

1. 平台主要分为商家、顾客和管理员三类用户。商家代表在平台上发布供应和商品的用户,顾客代表在平台上下采购订单的用户,管理员代表平台上的运营和维护人员。

2. 商家在注册账户后获得一个店铺,店铺拥有库存,库存中存放商品记录。商家可以通过添加商品和追加库存的方式,向库存中添加店铺中可销售的商品。通过标记商品上/下架状态或调整库存的方式设置商品是否在店铺中展示和销售。当商品库存为0时,不会出现在商家店铺中。

3. 顾客在浏览商家店铺和商品的过程中可以直接下订单(3.1),或将商品加入购物车(3.2),然后再使用购物车生成订单(3.3)。

3.1 顾客在浏览到某个合意的商品时,可直接填写商品数量并生成订单;

3.2 顾客在浏览到某个合意的商品时,可将商品添加到购物车中。添加时可提前填入商品数量,也可未来在购物车中修改商品数量;

3.3 在购物车中,顾客可以移除商品,也可以调整购买商品的数量。顾客可以通过复选框勾选部分商品或全部商品,然后通过生成订单按钮依据选中商品生成一个新得订单。

可添加的类:店铺

类添加属性:

商品:标识,名称,描述,单价

库存:标识,库存明细(商品标识,库存数量)

订单:标识,订单明细(商品标识,订购数量),订单金额

购物车:用户标识,购物车明细(商品标识,数量)

4、MVVM与MVC

5、逆向工程

(1)实现级:包括程序的抽象语法树、符号表等信息;

(2)结构级:包括反映程序分量之间相互依赖的关系的信息,调用图、结构图等;

(3)功能级:包括反映程序功能与程序之间关系的信息;

(4)领域级:包括反映程序分量或程序诸实体与应用领域概念之间对应关系的信息。

6、软件重构的三个类别

问题(1):随着时间和人员的变动,程序被多人修改,往往导致程序难以理解,注释混乱,流程复杂;

问题(2):随着不断修改程序和增加新的功能,模块之间的耦合关系日益复杂,维护成本不断增加。

(1)代码重构;(2)模块重构;(3)架构重构。

常见的重构方法有:重新组织函数、重新组织对象、重新组织数据、简化条件表达式、简化函数调用和处理概括关系。

针对问题(1),采用代码重构,重新梳理代码流程,使代码容易理解和维护;

针对问题(2),采用模块重构和架构重构,梳理模块之间的关系,使其更容易扩展和维护,降低模块之间的耦合度。

7、一个模块化程度好的程序可从两方面帮助性能优化。

(1)分解良好的程序,使得性能分析的粒度更细,性能调整更加容易;

(2)分解良好的程序,由于代码更加淸晰,更容易与性能优化工具结合,分析系统性能瓶颈的具体位置。

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

宣晨光

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值