P3_C12-13:逻辑架构和包图
Requirements to Design Iteratively
阅读书上第12章
- 需求和面向对象分析重点关注 做正确的事
- 后续的设计工作强调 正确地做事
- 迭代从需求和分析为主 到 以设计和实现为主
- 在设计和实现的迭代早期有需求变更很正常,后期稳定就会稳定
- 完成迄今为止所有建模正常只需要花费几个小时或几天的时间
Logical Architecture and UML package diagrams
阅读书上第13章
Software architecture
- 一组设计软件系统组织的重要决策
- 对结构元素、接口的选择
- 这些元素特定于仙湖协作的行为
- 这些结构和行为元素、更大子系统的组成、直到该组织结构的结构风格
Logical architecture
- 软件类的宏观组织结构,他将软件组织成包、命名空间、子系统、层
- 决定具体在何种操作系统或网络计算机中对这些元素进行部署的是,部署架构
- 包括:UI、Domain、Technical services
- 严格分层:层只能调用相邻的下层服务
- 宽松分层:层可以调用任何下层服务
应用UML:包图
- UML包图通常用于描述系统的逻辑架构——层、子系统、包等
- 依赖性(耦合):依赖线是有箭头的虚线,指向被依赖的包
- 嵌套:
- 画法1:在内包框外画外包
- 画法2:在外包下画个十字圈圈,实线连接内包
- 使用层进行设计
- 使用层的好处
- 减少coupling和dependencies,提高cohesion和服用性
- 相关复杂性能被了解和封装
- 一些较高层可以被替换
- 一些较低层可以被复用
- 某些层可以是分布式的
- 利于逻辑划分,团队合作
- 使用层的好处
- cohesive responsibility, maintain a separation of concerns
- 如何使用对象设计应用逻辑
- 创建名称和信息类似于真实世界的软件对象:领域对象
- 此时,应用逻辑层称为架构的领域层:包含领域对象,处理应用逻辑
- 领域层是软件的一部分
- 领域模型是概念角度分析的一部分
- 利用领域模型的灵感创建领域层,获得低表示差异
- tier: 被广泛用于表示屋里进程节点,如客户计算机
- layer:系统在垂直方向的划分
- partition:层在水平方向的划分,如技术服务层分为安全和统计分区
- 外部资源层不是最底层!
- Model-view separation principle
- model:领域层对象
- View:UI对象(窗口、鼠标等
- 领域对象不能够直接与窗口对象发消息
- MVC,相关模式:观察者模式
- model:数据对象, 领域层
- views:GUI窗口,UI层
- controllers:键盘和鼠标事件句柄,因公曾的工作流对象
- 好处:允许模型和界面分别进行开发、支持内聚的模型定义、使界面需求的影响减小……
- 运用RUP 4+1视图方法进行软件架构设计
- RUP 4+1 分析案例
越努力越幸运~