1、为了完整的说明一个系统,有必要采用多种模型,UML提供了许多集成化的建模技术,规格说明的过程是 迭代增量的,产生3种模型:状态模型、行为模型、状态变化模型。
2、输入:叙述性的用户需求
输出:规格说明模型
3、规格说明阶段的结果是扩展的需求文档,通常称为规格说明文档(spec),其将最后取代需求文档
4.1 体系结构优先权
(architectural prerogatives)
1、需求规格说明涉及对需求确定期间定义的客户需求进行建模,重点在功能性需求上,通常不对非功能性需求做进一步考虑,但是系统约束可以指导和验证建模工作,这种指导和验证采用体系结构优先权的形式。
2、==软件体系结构定义了系统中相互作用的软件构件及子系统==的结构及组织形式
3、它是使系统具有适应性(包括3个子特性:可理解性、可维护性、可度量性)的必要条件和最重要的条件
4、所有软件建模的最重要的目标是:将构件依赖最小化
5、架构设计:层次化架构
4.1.1 模型-视图-控制器(MVC)
(模型model-视图view-控制器controller(MVC)框架)
1、MVC是体系结构框架、体系结构元模型、编程环境(Smalltalk-80)
2、自顶向下
3、在Smalltalk-80中,MVC将应用程序类分为3组,分别继承3个抽象类——模型(Model)、视图(view)、控制器(controller)
4、三个对象:
- 模型:表示数据对象,模型是发布者,因此它不知道它的视图和控制器,它的变化由事件处理通报给视图和控制器
- 视图:表示用户界面(UI),该模型的状态以用户需要的格式呈现在用户的图形界面上。视图对象包括子视图,一个视图对象对应一个控制器对象
- 控制器:表示鼠标和键盘事件。控制器对象响应视图的请求,完成与用户的交互
4.1.2 J2EE的核心体系结构
1、MVC几乎是所有现代框架的骨架,J2EE是以MVC为骨架的扩展
2、分层结构:
-
表示层(包含应用程序构件):用户通过表示层来访问应用程序,在基于web的应用系统中,表示层由用户界面代码和运行于web服务器上的过程组成。包括MVC中的视图构件和控制器构件
-
业务层(包含应用程序构件):包含表示层中的控制器构件还没实现的一部分应用逻辑,它负责确认和执行业务范围内的业务规则和事务。
-
集成层(包含应用程序构件):承担着建立维护与数据源连接的单一职责,该层知道如何与数据库进行连接和通信。如:JDBC、JMS
-
客户层(处于应用外围):用户通过客户层与系统交互,比如浏览器客户端
-
EIS(资源层)(处于应用外围):是任意的持久信息传递系统,可以是数据库或者外部SOA服务
4.1.3 表示-控制器-bean-中介者-实体-资源(PCBMER)
1、该框架借用了J2EE核心框架中的外层(客户层、EIS层)的名字
2、在PCBMER图中,层表示为UML结点,带箭头的虚线表示依赖关系。
- 表示层依赖控制器和bean
- 控制器层依赖bean和中介者和实体
- 中介者依赖资源和实体
3、虽然是单向依赖,但是对象之间可以进行其他方向的通信——依赖最小化技术;如使用经由界面的通信或使用发布者/订阅者协议
4、这种体系结构提供了内聚和耦合的最佳组合,来满足系统的需求
4.1.3.1 PCBMER的层
- 表示层:表示屏幕以及呈现bean对象的UI对象;表示层负责维护表示上一致性,因此依赖于bean层;两种方法实现:
- 拉模型
- 推模型
- 控制器层:表示应用逻辑,响应UI请求,这些请求来源于表示层(get、post请求)
- bean层:表示那些预先确定要呈现在用户界面上的数据类和值对象,bean数据由用户输入和实体层创建
- 中介者:建立了充当实体类和资源类媒介的通信管道。两个目的:
- 隔离了实体层和资源层,两者变化能够独立引入
- 当控制器发出数据请求时但它