【IT168 技术文档】
文章探讨了基于UML进行面向对象的系统分析及设计方法,包括静态建模和动态建模;提出了一种实用的基于UML的需求分析及其建模方法,以活动图模型来表达业务模型,以概念层的对象图、状态图及交互图模型表达系统的结构逻辑及行为逻辑,以应用例图表达系统需求;讨论了需求分析及其建模的过程概念,并以高校开放式学籍管理系统的开发作为案例示范。
引言
UML是一种编制系统蓝图的标准化语言,可以实现大型复杂系统各种成分描述的可视化、说明并构造系统模型,以及建立各种所需的文档,它是一种定义良好、易于表达、功能强大且普遍适用的建模语言。UML的发展对软件工程的发展做出了杰出的贡献。
UML支持从需求分析开始的软件开发的全过程。UML通过三类图形建立系统模型:用例(Use Case)图、静态结构图(对象类图、对象图、组件图、配置图)和动态行为图(顺序图、协同图、状态图、活动图),这些图可以从不同的抽象角度实现系统的可视化。
URM的发展经历了以下几个阶段。
最初的阶段是专家的联合行动,由三位OO(面向对象)方法学家[8]将他们各自的方法结合在一起,形成UML 0.9。
第二阶段是公司的联合行动,由十几家公司组成的"UML伙伴组织"将各自的意见加入UML,形成UML 1.0和1.1,并作为向OMG申请成为建模语言规范的提案。
第三阶段是在OMG控制下的修订与改进,OMG于1997年11月正式采纳UML 1.1作为建模语言规范,然后成立任务组进行不断的修订,并产生了UML 1.2、1.3和1.4版本,其中UML 1.3是较为重要的修订版。
目前正处于UML的重大修订阶段,目标是推出UML 2.0,作为向ISO提交的标准提案。
1、UML的特点
UML具有以下特点:
(1)面向对象。UML支持面向对象技术的主要概念,提供了一批基本的模型元素的表示图形和方法,能简洁明了地表达面向对象的各种概念。
(2)可视化,表示能力强。通过UML的模型图能清晰地表示系统的逻辑模型和实现模型。可用于各种复杂系统的建模。
(3)独立于过程。UML是系统建模语言,独立于开发过程。
(4)独立于程序设计语言。用UML建立的软件系统模型可以用Java、VC++、SmalltaIk等任何一种面向对象的程序设计来实现。
(5)易于掌握使用。UML图形结构清晰,建模简洁明了,容易掌握使用。
使用UML进行系统分析和设计,可以加速开发进程,提高代码质量,支持动态的业务需求。UML适用于各种规模的系统开发。能促进软件复用,方便地集成已有的系统,并能有效处理开发中的各种风险。
2、UML的面向对象分析设计过程
运用UML进行面向对象的系统分析设计,其过程通常由以下3个部份组成:
(1)识别系统的用例和角色
首先对项目进行需求调研,依据项目的业务流程图和数据流程图以及项目中涉及的各级操作人员,通过分析,识别出系统中的所有用例和角色;接着分析系统中各角色和用例间的联系,再使用UML建模工具画出系统的用例图,同时,勾画系统的概念层模型,借助UML建模工具描述概念层类图和活动图。
(2)进行系统分析,并抽取类
系统分析的任务是找出系统的所有需求并加以描述,同时建立特定领域模型。建立域模型有助于开发人员考察用例,从中抽取出类,并描述类之间的关系。
(3)系统设计,并设计类及其行为
设计阶段由结构设计和详细设计组成。①结构设计是高层设计,其任务是定义包(子系统),包括包间的依赖关系和主要通信机制。包有利于描述系统的逻辑组成部分以及各部分之间的依赖关系。②详细设计就是要细化包的内容,清晰描述所有的类,同时使用UML的动态模型描述在特定环境下这些类的实例的行为。
UML面向对象分析设计在开放式学籍管理系统中的应用
UML是一种建模语言,是系统开发的一个组成部分,本身并没有关于开发过程概念的定义和表示符号[2]。UML的创始者比Booch 、Jacobson和Rumbaugh在Rational公司的支持下综合了多种系统开发过程的长处,提出新的面向对象的开发过程,称为Rational统一过程(Rational Unified Process,RUP)。RUP过程的核心工作流包括:业务建模、需求分析、系统分析与设计、实现、测试和系统配置。下面通过UML来分析并构造学籍管理模型,并结合Rational统一过程加以描述,图形用Rational Rose工具软件绘制。
1、开放式学籍管理系统概述
随着网络技术和软件技术的飞速发展,特别是Internet/Intranet的出现及其相关技术的迅速发展,信息革命带来了全球范围市场竞争的日益加剧,对传统的办公教学和生活方式产生了巨大的冲击。办公自动化就是采用Internet/Intranet技术,基于工作流的概念,使内部人员方便快捷的共享信息,高效的协同工作;改变过去复杂,低效的手工办公方式,实现迅速,全方位的信息采集,信息处理。校园网的建设,为开放式的学籍管理系统提供了技术保障。
开放式学籍管理系统是一个由学校学籍管理信息中心监控,各教学系(部)、教研室分级管理,由学生档案管理、导师管理、授课教师管理、选课管理、成绩查询管理、打印报表等几部分组成,选课学生甚至联网的邻近院校共同参与的管理系统。
学籍管理由学校学籍管理中心监控,各教学系部、教研室分级管理,任课教师,选课学生共同参与。
2、开放式学籍管理系统的用例和角色
业务建模和需求分析的目的是对学籍管理进行评估,采集和分析系统的需求,理解系统要解决的问题,重点是充分考虑系统的实用性。结果可以用一个U se Case模型表达(图1),模型中的活动者代表外部与系统交互的角色,包括学生、系统管理员,Use Case是对系统需求的描述,表达了系统的功能和所提供的服务,包括学生档案管理子系统、导师档案管理子系统、课程管理子系统、授课教师管理子系统、选课管理子系统、成绩管理子系统、打印报表子系统。
图1中模型元素之间的实线表示二者存在关联关系,是学籍管理系统层的Use Case模型,只包含了最基本的Use Case模型,是系统的高层抽象,在开发过程中,随着对系统的认识不断加深,Use Case模型可以自顶向下不断精化,演化出更为详细的Use Case模型。
3、开放式学籍管理系统分析与设计
系统分析与设计是研究欲采用的实现环境和系统结构,结果是产生一个对象模型,即设计模型。设计模型包含了Use Case的实现,可以表现对象是如何相互通信和运作来实现Use Case流的。对于系统的静态结构。可以通过对象类图、对象图、组件图和配置图来描述,对于系统的动态行为,可以通过顺序图、协同图、状态图、活动图描绘。这些图再加上支持说明文档就构成一个完整的设计模型。
(1)静态结构的分析设计
学籍管理系统中拥有大量数字化信息资源,这些资源是多种媒体、多种格式的,而且还是相互关联的。其数据量大,信息长度不定。非结构化信息与结构比信息并存。传统的数据库和信息管理系统在数据模型、系统结构、用户接口等方面都虚拟实现对这些数字化信息资源的管理和操作,这就决定了学籍管理必须采用面向对象的方法来建立数据模型和管理模型,建立面向对象的数据库。实现面向对象的信息管理系统。使用UML对学籍管理系统进行基于面向对象的分析和设计,可以从开发的第一步开始,从系统的底层就把握住学籍管理信息资源的特征,为下一步的具体实现打好基础。在为学籍管理系统建立模型时要涉及到处理大量的模型元素,如对象类、接口、组件、节点、图等。图2是学籍管理系统中的学生类。
在图2的学生类图中,包括学生类的属性和方法。例如:studentId是学生的学号,且数据类型为bigint(8),且为主码;selectCourse(courseId : bigint,studentId:bigint)return int,是类的方法,其入口参数为课程编号courseId和学生学号studentId,此方法作用是学生进行选课。
(2)动态结构的分析与设计
学籍管理馆提供的各种服务都是建立在分布、开放的信息结构之上。依托高速、可靠的网络环来完成。每项服务都可以看成一个事件流,由若干相关的对象交互合作来完成。对于这种系统内部的协作关系和过程行为,可以通过绘制顺序图和协同图来帮助观察和理解。
一个对象在双生存期间所经历的状态序列。对于把握对象的行为和状态的迁移变化是非常重要的,可以通过状态回来了解一个对象的历史,引起一个状态向另一个状态转移的事件,以及由于状态的转移而引发的动作。
此外,描述工作流和并发处理行为还可以用活动图,表达从一个活动到另一个活动的控制流,顾序图和协同图适合描述多个对象的协同行为,而状态图适合描述一个对象穿越多个Use Case的行为。状态图与活动图的区别是:状态图描述的是对象类响应事件的外部行为。活动图描述的是响应内部处理的对象类的行为。图3是学生查询成绩的活动图。
图3中,学生登陆学籍管理系统,输入其用户名和密码,若用户名和密码有误则返回,否则进入下一步:首先选择查询类型(查询成绩),然后输入查询关键词,再进行查询,系统自动生成了成绩单。
4、开放式学籍管理系统的实现、测试和系统配置
经过系统分折与设计后.就可以根据设计模型在具体的环境中实现系统,生成系统的源代码、可执行程序和相应的软件文档,建立一个可执行的系统.然后需要对系统送行测试和排错,保证系统符合预定的要求。获得一个无错的系统实现,调试的结果将确认所完成的系统可以真正使用。最后系统配置的任务是在真实的使用运行环境中配置,调试系统,解决系统正式使用前可能存在的任何问题。
小结
UML是一种功能强大的、面向对象的可视化系统分析的建模语言,它采用一整套成熟的建模技术,广泛地适用于各个应用领域。它的各个模型可以帮助开发人员更好地理解业务流程,建立更可靠、更完善的系统模型。从而使用户和开发人员对问题的描述达到相同的理解,以减少语义差异,保障分析的正确性。
通过对学籍管理系统的开发可以看到,UML作为软件工程中的建模语言,代表了面向对象方法的软件开发技术的发展方向,具有重大的经济价值和国防价值,并获得了国际上的广泛支持,具有非常好的应用前景。