摘要 提出一种简化需求分析和系统设计的 UML建模方法 ,以 用例图 表达系统需求,以设计 类图、协作图 表达系统的结构逻辑及行为逻辑,讨论了需求分析、系统设计及其建模的过程概念, 实现了 需求分析、 信息封装、数据抽象、设计和编码的无缝连接。 该方案已经在 B/S 结构的外国专家信息管理系统开发的需求分析和设计阶段中得到成功应用。
关键词 统一建模语言;面向对象; B/S ;管理信息系统
0 引言
面向对象的软件分析与设计(OOA&D) 方法得到的是 OO(Object-Oriented) 的模型 ,OOA&D 方法从模型开始 , 就是识别对象、不断细化的过程 , 开发过程就是不断的迭代过程 [1] 。简明准确的建模是把握复杂系统的关键,是一个优秀系统开发中的重要的核心部分,其目的是把所要设计的结构和系统的行为沟通起来,对系统的体系结构进行可视化和控制,建模可以更好的理解正在构造的系统,并提供简化和和复用的机会。因此面向对象的分析和设计应该从建模开始。
本文在 并在 RUP(Rational Unified Process ) 指导下 , 把面向对象的设计方法运用于 B/ S 结构的 软件系统中 , 利用 Rational ROSE 工具完成 B/ S 结构的信息管理系统的 UML建模 ; 通过这种基于 UML的内聚式、迭代式的建模设计 , 清晰展现系统的逻辑和框架结构 ,设计 出一套 B/ S 模式系统建模的方案。 实践证明,笔者用这套方案可以很好地为管理信息系统处理需求和技术风险、进行软件质量控制,大大缩短开发周期,使得开发出来的系统功能强大、易维护、可扩展。
1 UML(统一建模语言)及RUP(统一软件过程)简介
1.1 UML简介
统一建模语言 UML(Unified Modeling Language) 融合了 Booch、OMT和OOSE方法中的基本概念,是国际上标准的建模语言,是面向对象的分析和设计方法发展的产物,能够产生和长期其他技术学科的蓝图相似的草图。 UML 有统一语义和符号表示 , 可使项目根植于一个成熟的标准建模语言 , 从而可以拓宽软件系统的适用范围 , 并提高其灵活程度 。
UML 是一种通用的可视化建模语言 , 用于对软件进行描述、可视化处理、构造和建立软件系统的文档。 UML融合了许多面向对象开发方法的基本概念和优点,具有 一致的图形表示法和语义,同时也出现了许多 UML工具,能够很好地支持软件开发,例如 UML 的开发工具 Rational Rose 提供了面向对象的分析和设计 (OOA 和 OOD) 到面向对象编程 (OOP) 的平滑过渡机制 , 完整地体现了面向对象的软件工程思想 [2] 。
1.2 UML的静态建模机制和动态建模机制
在应用中,当采用面向对象技术设计系统时,首先是描述需求,其次根据需求建立系统的静态模型,以构造系统的结构。这两步所建立的模型都是静态的,包括用例图、类图(包含包)、对象图、组件图和配置图等五个图形,是标准建模语言 UML 的静态建模机制。第三步是描述系统的行为,所建立的模型或者可以执行,或者表示执行时的时序状态或交互关系。它包括状态图、活动图、顺序图和合作图等四个图形,是标准建模语言 UML 的动态建模机制。
UML包括静态建模机制和动态建模机制两大类 静态结构定义了系统中重要对象的属性和操作以及这些对象之间的相互关系 ; 动态行为定义了对象的时间特性和对象为完成目标任务而相互进行通信的机制。 UML定义了9种图用于系统建模, 分为两类: 静态结构图和动态行为图。
1)静态结构图 可用于对系统的静态方面进行可视化、详述、构造和文档化。可以把系统的静态方面看作是对系统的相对稳定的骨架的表示,它由类、接口、协作、构件和节点等事物的布局组成。结构图包括 :
类图 (Class diagram) 描述系统中类的静态结构,它定 义了系统中类的内部结构以及类之间的联系,用来捕获信息和事件中的对象 ; 对象图 (Object diagram) 是类的实例化图 ; 构件图 (Component diagram)描述程序代码的物理结构 ; 部署图 (Deployment diagram) 描述系统中软、硬件的物 理体系结构,用于捕获系统硬件和软件构件的部署关系。
2)动态行为图 用于对系统的动态方面进行可视化、详述、 构造和文档化。可以把系统的动态方面看作是对系统变化部 分的表示,它由诸如随时间变化的信息流和在网络上构件的 物理运动之类的事物组成。行为图包括 :
用例图 (Use Case diagram) 从用户的角度描述系统的 功能,并指出各功能的执行者,说明执行者与提供的用例之间的某种联系 ; 顺序图 (Sequence diagram) 描述几个对象之间的动作 协作关系 ; 协作图 (Collaboration diagram) 从另一个角度展示对象 之间的动作协作关系。它可以和顺序图相互转换。在 rational rose中可以由顺序图生成协作图 ; 状态图 (State diagram) 描述一类对象具有的所有可能的状态以及状态转移关系 ; 活动图 (Active diagram) 描述系统中各种活动的执行 顺序。
1.3 RUP 简介
RUP,即Rational统一过程, 是一种适应 UML 的软件生命周期方法, 是一个通用的过程框架 , 可用于各种不同类型的软件系统、各种不同的应用领域、各种不同类型的组织、各种不同的功能级别以及各种不同的项目规模。 它 基于建模语言 UML 的、以体系结构为中心的、用例驱动与风险驱动相结合的迭代 和增量的软件开发过程。 RUP 把软件的开发周期分为 初始、细化、构造和移交 四个阶段 , 所有开发工作都围绕需求捕获、分析、设计、实现和测试 五 个核心工作来组织。构造阶段通过一系列迭代过程建造系统,每一次迭代都是一个小项目,需要对所要求的用例进行分析、设计、编码、测试和集成。
UML可视化建模系统 | |
需求模型 |
用例图、活动图 |
对象模型 |
类图、对象图、包图、 合作图、顺序图、状态图 |
体系结构模型 |
构件图、配置图 |
UML可视化建模系统支持从系统需求、系统分析到系统设计的整个建模过程,如表 1 所示。在需求分析阶段, UML 可以用用例来捕获用户需求。通过需求建模,描述对系统感兴趣的外部角色及其对用例的功能要求。在分析和设计阶段,通过 UML 的静态建模机制和动态建模机制对问题域的对象建模,描述类的属性、类之间的关系、系统动态特征。编码是一个独立的阶段,其任务是用面向对象编程语言将来自设计阶段的类转换成实际的代码。 UML 模型还可作为测试阶段的依据。同 UML还支持对系统体系结构的建模。
2 外国专家管理信息系统的建模设计
外国专家管理信息系统是专门用来管理来华的外国专家相关信息的软件系统。它的基本任务是管理,它涵盖了来华的外国专家从申请来华及在华期间,到离校的各个阶段所涉及的信息,同时还管理了外专聘请单位的基本信息、外国专家聘请需求的基本信息。通过该系统,能够快捷、方便的对来华外专的各类信息进行综合的科学的管理,提高了办公效率 , 简化了部门(企业)内部的信息管理工作,而且进一步提高了部门(企业)内部的信息交流程度,达到数据的共享,使管理工作更加规范化、科学化、全面化。
B/ S 结构的管理信息系统往往具有复杂与高度动态的特点。运用 UML 建模技术和 RUP 软件工程技术 , 就能够让开发过程更加流畅 , 确保 B/ S 结构的系统将来更容易维护。
2.1 用户和角色
系统分析要求接触用户,同时系统还要能够控制不同的用户角色和权限。通过对用户进行分类并了解他们的需求,从而确定安全机制、功能限制方案、用户界面分组和对具体内容的需求。图1 显示了几组不同的系统用户(在UML 中称为Actor , 即参与者) 。普通的用户类型(“普通用户”) 位于图的顶端,空心箭头表示generalization(泛化) 关系,表示“User”又可以具体分成两类用户: 注册用户,未注册用户。而注册用户和未注册用户各自私有的特征则在对应的参与者中说明。在本例中,注册用户又可以细分为外国专家、管理员、行管人员三种类型,系统对这些用户的处理方式应有所不同。
2.2 需求模型
需求建模的过程就是用例的获取过程。用例的获取是需求分析阶段的主要任务之一,而且是首先要做的工作。大部分用例将在项目的需求分析阶段产生,并且随着工作的深入会发现更多的用例,这些都应及时增添到已有的用例集中。用例集中的每个用例都是一个潜在的需求。
对系统需求的建模是通过 UML的用例(USE CASE)图实现的。用例模型描述的是外部执行者(Actor)所理解的系统功能。首先,它描述了待开发系统的功能需求;其次,它将系统看作黑盒,从外部执行者的角度来理解系统;第三,它驱动了需求分析之后各阶段的开发工作,不仅在开发过程中保证了系统所有功能的实现,而且被用于验证和检测所开发的系统,从而影响到开发工作的各个阶段和UML 的各个模型。
图 2 为外国专家管理信息系统用例模型。图中的椭圆是用例,表示用户与计算机之间的一次典型交互作用,图形化表示的小人是执行者,表示用户在系统中所扮演的角色,用例和执行者之间的连线表示两者之间的关联。 系统所涉及各种模块的差异较大 ,要描述系统的功能需求,只有将系统划分为多个模块分别描述其功能需求,这就需要多个用例视图。 图中列出了8个用例,对应系统来华申请、在华管理、离华管理、文件管理、统计报表、外专聘请需求的管理、外专聘请单位信息的管理、用户管理。图中还列出了3 个执行者,分别表示外国专家、行管人员、高级用户(系统管理员)。通过用例图,使得设计者在系统设计的最初阶段将主要精力集中在系统的功能上,而不是系统的具体实现上。对于比较复杂的系统,可以增加活动图显示活动流程和并发行为,使得建立的需求模型更加完整。
2.3 系统功能分析与设计
为了让系统设计能够以结构、组织方式和代码重用的形式表现出来,要对系统进行设计规划,设计阶段应该与分析阶段交迭。需求是不断地发展,而设计本身也会推动需求的发展(反之亦然) 。
外国专家管理信息系统功能的建模设计中 ,以下3个方面的问题是要关注的:业务对象的表示、业务服务的实现、用户界面的组织。
(1) 业务对象的表示。在外国专家管理信息系统中, 业务对象主要是数据库和解决数据实体类的表示方式。在外国专家管理信息系统的建模中,外专的基本信息和参加学术活动模块及学术活动模块的静态模型可以用类图表示(如图3所示) ,(图中只列了一些关键信息)其中的空心箭头表示了这些实体类对共用实体(Common Entity) 的泛化关系, 继承Common Entity 的公用方法,本图中没有显示这些实体的私有属性和方法;而普通箭头表示的是实体类的关联或依赖关系。
(2) 业务服务的实现。业务服务的实现需要完成的功能是各种业务规则和逻辑的实现,如学术活动模块的信息录入、修改、删除、查询。每个模块的信息录入、修改、删除、查询,业务规则和逻辑的实现基本相似,没有太多的规律可循。采用UML 来进行业务服务的建模,可以使用UML 的序列图、状态图、活动图。这个部分的工作,通常通过一系列的类之间的交互来完成。为了在更动态的层面上描述系统,UML 提供了许多其他类型的图。对于B/ S 系统设计而言,情节图(Scenario Diagram) 特别有用。例如页面如何与验证用户身份的代码协作。情节图分成两种: 协作图(Collaboration Diagram) ,序列图(Sequence Diagram) 。UML 建模工具Rational Rose 能够从协作图生成次序图,或者相反。
图 4 为外国专家管理信息系统中学术活动信息模块的信息录入功能的流程的序列图,可以直接由它生成相应的协作图。
(3) 用户界面的组织。用户界面布局图能够帮助组织系统页面、文件、服务的布局结构。在UML 中,对于页面和文件的组织,可以使用构件图(Component Diagram) 或类图(Class Diagram) 建模型。本系统中使用类图对界面组织建模,页面结构以及各种业务服务被捆绑到不同的区域。
2.4 应用部署的规划
在 UML 中,系统的体系结构使用部署图(DeploymentDiagram) 来完成。应用部署的规划对于规划整个B/ S 系统是很有用的。它确定了一种有效的应用部署的规划组织方式,还可以作为一个模式在多个类似B/ S 系统上应用。
2.5代码实现
在建模完成后,开发人员利用 Rational ROSE 工具可以生成程序代码框架,并对代码框架进行修改和补充,形成完整代码;而且,还可根据代码逆向生成 UML模型。这就较好地保证了模型与代码的一致性。测试必须在整个项目周期中进行,对每个阶段都要用所建立的模型进行测试,这样才能保证开发的质量,减少开发的风险。
3 结束语
统一建模语言 UML 是国际软件工程领域具有划时代意义的重要成果,适用于以面向对象技术来描述任何类型的系统,而且适用于系统开发的不同阶段,从需求规格描述直至系统完成后的测试和维护。 软件系统的规模越来越大 , 复杂度不断提高 ,RUP 迭代式增量开发方式可以降低风险 ,同时 可以适应需求变化的需要。 笔者在外国专家管理信息系统的建模和开发中,将 UML 应用于系统开发的各个阶段,建立了系统的需求模型、静态模型和动态模型。这种基于UML 建模的迭代式开发方法具有传统开发方法无可比拟的优点。 UML 建模使系统设计完全面向对象 , 实现了信息封装、数据抽象。 UML 能够帮助人们轻松地构造出 B/ S 结构系统的模型。在一定程度上实现了软件开发的自动化,实现了设计和编码的无缝的连接,提高了软件开发的效率和质量。