垃圾写出感觉了,再来一篇
第四章 软件架构的构建
一 软件架构及其定义
- 软件架构的4+1的五种模型:结构模型、框架模型、动态模型、过程模型,功能模型
- 软件架构的基本元素:构件,连接件,配置
二 软件架构风格
1.概述
- 管道与过滤器:每个构件都有一组输入和输出,具有良好的信息隐藏性和模块独立性,从而产生高内聚,低耦合的特点
- 层次结构:每一层为上层提供提供服务,将复杂问题分解分解成一个增量步骤序列的实现
- 仓库/黑板系统:中央数据结构说明当前状态,独立构件在中央数据存储上执行,仓库与外构件间的相互作用在系统中会有较大的变化
- 正交软件结构:由组织层和线索的构件构成
- 客户机/服务器结构:服务器为多个客户应用程序管理数据,对于硬件和软件的变化具有极大的适应性和灵活性,易于对系统进行扩充和缩小,系统中的功能构件充分隔离
- 浏览器/服务器结构:层与层之间相互独立,任何一层的改变都不影响其他层原有的功能(平台透明性)
- MVC(重点):模型(Model) -视图(View) -控制器(Controller)
视图是用户看到并与之交互的界面。
模型表示企业数据和业务规则
控制器接受用户的输入并调用模型和视图去完成用户的需求,控制器本身不输出任何结果和做任何处理
2.软件结构设计
a 包结构设计
- 应尽量减少包中全局类的数量
- 初始的项目管理系统的层次架构
- 包之间的虚线箭头描述的是层间的使用( 依赖) 关系
- 包图中一个重要的要求是在包间不能出现循环的依赖
- 在循环依赖的情况下,对于任何包中的修改,都要对各个依赖方向上的包进行循环检查其影响范围,这显然是非常繁琐和不可取的
第五章 类的分析与设计
一 实体类的确定
- 类及其种类:
实体类:既 包括 存储和传递数据的类 ,还包括操作数据的类
控制类:体现应用程序的执行逻辑,提供相应的业务
边界类:界面类以及与外部系统的数据交换类 - 关联关系的基数: