第八章 逻辑架构与包图

目录

m1.逻辑架构
m2.包图
m3.包图建模准则
m4.架构分析
m5.逻辑架构的精化
m6.架构的文档化

1. 逻辑架构

mlogical architecture:是软件的宏观组织结构,它将软件类组织为包(或命名空间)、子系统和层等。
m层(layer):是对类、包或子系统的甚为粗粒度的分组,具有对系统主要方面加以内聚的职责。

2.包图

m包:用来将建模元素组织成分组、建立元素的所属关系以及提供引用元素的唯一名称的通用机制。




m包图:包及其关系的结构化模型图。

3. 包图建模准则

m使用层进行设计

    好处:

Ø(1) 可以做到 关系分离、高级服务与低级服务分离、特定应用的服务与一般性服务分离。减少耦合和依赖性,增强内聚性、提高潜在的复用性并且使概念更加清晰。
Ø2)封装和分解了相关的复杂性
Ø3)某些层能够用新的实现替换
Ø4)较低层包含可复用的功能
Ø5)某些层可以是分布式的。
Ø6)通过逻辑划分,有助于团队开发。
准则:内聚职责、关系分离

m领域层和领域模型的关系

分层与分区
m分层(layer):表示对系统在垂直方向的划分。
m分区(partition):表示对层在水平方向的划分。

准则:不要将外部资源表示为最底层

准则:模型——视图分离原则
m不要将非UI对象直接与UI对象连接或耦合。
m不要在UI对象方法中加入应用逻辑。

模型:领域层对象

视图:UI对象

领域类封装了与应用逻辑相关的信息和行为。窗口类相对简单,负责输入和输出,以及捕获GUI事件。

SSD、系统操作和层的关系

4.架构分析

m定义
ØArchitectural analysis:在功能性需求的语境中,识别和处理非功能性需求的活动。其中包括识别变化和最具可能性的进化点。
Ø变化点(variation point):当前系统或需求中的变化之处。
Ø进化点(evolution point):现有需求中不存在但可能在将来发生,推测性的变化点。
m架构分析问题举例
Ø可靠性和容错需求如何影响设计
Ø采购子构件的许可费用如何影响收益率
Ø可适应性和可配置型需求如何影响设计
Ø商标名称的选择如何影响架构
m架构分析步骤
Ø识别架构因素
FURPS+
质量场景
描述架构因素:因素表
Ø进行架构决策
删除需求、定制解决方案、终止项目、雇佣专家



m基本架构设计原则
Ø低耦合
Ø高内聚
Ø防止变异
m本质
Ø识别影响架构的因素,理解这些因素的可变性和优先级,并且解决这些问题。
m难点
Ø要知道应该问什么问题,权衡利弊和了解处理一个重要架构因素的各种办法,从良性忽略到奇特设计或第三方产品等
m重要性
Ø降低系统设计中丢失重要因素的风险
Ø避免在低优先级的问题上花费过多精力
Ø有助于产品与业务目标的一致

5.架构的精化

       在早期迭代中设计的是实验性逻辑架构,然后在整个细化阶段中对其进行增量式的演进。

m层之间和

   包之间的耦合

m层之间和

    包之间

    的交互场景

m使用层模式的协作
Ø使用简单包

m外观

m会话外观和应用层

m控制器

m经典的三层架构

6.包的设计

m准则1:包在水平和垂直划分上的功能性内聚

                  RC=内部关系的数量/类型的数量

       RC越大,表明内聚性越强。

       (不适用于包含接口的包)

m准则2:由一族接口组成的包
m准则3:用于正式工作的包和用于聚集不稳定类的包
m准则4:职责越多的包越需要稳定

m准则5:将不相关的类型分离出去

m准则6:使用工厂模式减少对具体包的依赖

m准则7:包之间没有循环依赖

7.架构的文档化(SAD

m软件架构文档(SoftwareArchitecture Document ):描述有关架构的总体想法,包含架构分析的关键决策。
m动机:帮助别人对系统的理解
m表示法:SAD的结构


m4+1视图模型



























































































评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值