基于UML 4+1视图和概念模型的建模方法
RUP的4+1视图包括: 逻辑视图:关注功能性的、整个系统的抽象结构,不涉及具体的编译即输出和部署。 开发视图:是逻辑视图的实现,描述程序生成多少个exe、dll、jar、配置文件等。又叫实现视图。 运行视图:关注程序运行时各个子系统、组件之间的交互策略。如多进程、多线程,生产者-消费者模式。运行视图又称过程视图。 部署视图:关注软件交付以后在机器上的部署形态,以及和上下文的关系。又称物理视图。 用例视图:关注需求,又叫场景视图。
RUP 4+1视图相对完整的描述了从需求分析到系统设计的过程,但没有专门针对数据持久层的描述。温li在软件架构设计中用数据视图替换了用例视图,应该说他相对重视架构设计,对需求关注的少一些。
关于需求的描述方法,应当清醒的看到,仅仅通过用例视图是不够的,用例技术涉及、但无法全面涵盖非功能需求。需求 = 功能 + 质量 + 约束。大量的信息还是要通过详细的文字描述才能够讲清楚。用例视图只不过提供了描述了一个软件的需求概貌。除了用例视图以外,还应该关注软件的概念模型(又称领域模型、信息模型)。如果说用例着重于描述一个个具体的需求,概念模型则从业务的角度描述了整个软件系统所要完成的功能中涉及的所有概念以及彼此之间的关系。例如对于一个网管系统,核心的两个概念是设备和端口,端口从属于设备,他们之间是多对一的关系。
分别详述4+1视图:
逻辑视图关注的静态元素是:层、子系统、类、接口,用类图来描述。关注的动态因素是协作关系,用时序图、协作图、状态图等来描述。是否需要在架构设计中体现类和类之间的关系?这取决于设计的层级。
开发视图关注的元素是程序包(SDK、解析器、中间件)、文件组织结构、编译依赖关系、目标单元(jar、exe、dll等)。它和逻辑视图的静态元素通常有映射关系。
运行视图关注进程、线程、对象等运行时概念,以及相关的并发、同步、通信等问题。运行架构和开发架构的关系:开发架构一般偏重程序包在编译时期的静态依赖关系,而这些程序运行起来之后会表现为对象、线程、进程,运行架构比较关注的是这些运行时单元的交互问题。
部署视图关注“目标程序及其依赖的运行库和系统软件”最终如何安装或部署到物理机器,以及如何部署机器和网络来配合软件系统的可靠性、可伸缩性等要求。部署视图和运行视图的关系:运行视图特别关注目标程序的动态执行情况,而部署视图重视目标程序的静态位置问题;部署视图还要考虑软件系统和包括硬件在内的整个IT系统之间是如何相互影响的。