本文基于MDA(Model Driven Architecture 模型驱动架构)软件范型,利用UML对一个原生的软件项目进行可视化设计,从业务模型(BM)、计算无关模型(CIM)、平台无关模型(PIM)、平台相关模型(PSM)分析建模。业务功能模型用基本的用例图表示,系统用例图源于业务活动图,鲁棒图来源于用例图和规约;序列图中对象的方法来源于鲁棒图中的控制对象;类图中的类源于鲁棒图的实体对象和界面对象。数据库模式来源于类图中的业务实体类。反复迭代模型,使喜用的模型之间具有可追溯性和继承性。
本文采用一种扩展的MDA范型,基于UML模型用以下机制建模:业务模型(BM):业务功能模型、过程模型、对象模型;
计算无关模型(CIM):用例图及用例规约;
平台无关模型(PIM):鲁棒图;
平台相关模型(PSM):序列图、类图、数据库表模型。
建模机理流程图-MDA软件范型
业务功能模型:业务是指一个组织所提供的所有服务。业务建模的目的在于定义和代表一种社会体系。具体地说,业务建模可以达到以下目的:①理解目标组织中的问题,识别改造的潜力②作为创建支持业务的信息系统的基础③实验新业务理念,复制或学习有竞争力的公司所使用的概念。④识别外包的机会。⑤确保客户,最终用户和开发人员对目标组织达成共识。用例图由系统边界(System Boundary)、参与者(Actor)、用例(User Case)以及他们之间的关系组成。
业务过程模型:业务过程模型用活动图描述,活动图(activity diagram)是一个很特别的流程图,活动图则集中在一个单独过程动作流程。活动图表明活动之间的依赖关系。活动图可以被分解成许多对象泳道(swimlanes),它可以决定哪些对象负责那些职责。每个活动都有一个单独的转移(transition)连接这其他的活动。
分析业务规则,画业务过程的活动图;系统用例源于活动图的动作流,系统执行者是业务用例中的业务执行者和活动图中的动作执行者。活动图的要素:起始点、终点、事件流、会合、分叉、泳道等
业务域模型:也是对象模型。域模型是UML静态模型的基础,能识别现实世界的抽象,即概念对象。域模型业务对象及其之间的关系如:泛化与聚合等。域模型不涉及类的属性和操作,只表示系统泛化功能。域模型关键要素:①找出合适的类②消除不合适的类。
计算无关模型 (Computation Independent Model,简称CIM) 聚集于环境及需求,不涉及系统内部结构与运作细节,包括系统用例图及其规约。
(1)系统用例图:系统用例模型源于活动图可信息化的事件流,该模型能反映出系统的所有功能基于用例图(Use Case Diagram)。用例图由系统边界、参与者、用例以及他们之间的关系组成。经解析业务描述及其系统用例模型之间的联系,系统活动者(Actor),从而建立系统用例模型。 (2)系统用例规约:可视化的系统用例图并不能提供建立系统所需要的全部信息,用例的功能和具体执行步骤必须使用用例规约进行描述。用例规约包括:用例名称,用例编号,用例简述,主要界面GUI(描述理想的、常用界面,是捕获类的属性的理想场所),主要事件流(表示基本流和备选流。事件流描述系统的行为),业务规则等。
平台无关模型 (Platform Independent Model,简称PIM):聚焦于系统内部细节,不涉及实现系统的具体平台,用鲁棒图表示。鲁棒分析:鲁棒分析阶段是系统需求分析到详细设计平滑过渡,其主要分析工具是鲁棒图。鲁棒图是一种“分析类”图,由执行者和三种对象原型(边界对象,控制对象和实体对象)组成。
鲁棒图交互机制:①Actor只能与边界对象交互; ②边界对象只能与Actor和控制对象交互;③实体对象只能与控制对象交互;④控制对象可以与边界对象、实体对象;⑥其它控制对象交互,而不能与Actor交互。
(1)鲁棒图:鲁棒图(RobustnessDiagram)来源是用例规约,解析用例规约中的动作流,识别出实现用例规定的功能所需的主要对象。它的主要作用是:①起初排除用例规约中的不确定性或模糊因素。②桥接非面向对象的需求和面向对象的设计,进而填补了设计鸿沟,使系统足够健壮。③发现潜在对象(边界对象、实体对象、控制对象)。
平台相关模型 (Platform-specific models,简称PSM),该模型有状态图 (StateChartDiagram,可选)、类图(ClassDiagram)、序列图(SequenceDiagram)和数据库表模式组成。
状态图用于详细描述在系统中对象状态及其转换过程、描述一个对象所处的可能状态以及状态之间的转移,并给出状态变化序列的起点与终点。序列图为类分类行为,详细显示了在用例生命周期内类如何相互交互。类图通过显示出系统的类以及这些类之间的关系来表示系统。
(1)序列图:序列图的要素:Actor、对象(边界对象、实体对象)、消息、生命线、方法等。
详细设计阶段的主要建模工具是类图和序列图。画序列图的目标是确定具体实现系统功能的微观步骤,即描述对象之间随时间变化的消息交互过程,从而在编码阶段把消息直接翻译成面向对象类的方法,是编码的核心。其次是为面向对象的类分配行为,发现新属性,以完成系统的功能。
序列图是二维的,横向轴代表了在协作中各独立对象,活动用生命线表示:当对象存在时,生命线用纵向虚线表示;当对象的过程处于激活状态时,生命线用矩形表示。纵向是时间轴,时间沿竖线向下延伸。序列图简要描述了参与的业务角色的工作,从激活的角度描述了如何操作业务实体,以及它们如何通过发送消息实现通信。
(2)类图:类图 (Class diagram)的要素:类名,属性,和消息,类之间的关系是连接线。 系统的类以及这些类之间的关系来表示系统。类图是静态的-它们显示出什么可以产生影响但不会告诉你什么时候产生影响。
数据库设计:数据库表源于类图的实体类,表之间关系继承于类之间的关系,使模型之间向上具有可追溯性和向下具有继承性。