基于粒度计算的覆盖算法在文本挖掘中的应用研究

时间:2022-10-05 04:34:59

基于粒度计算的覆盖算法在文本挖掘中的应用研究

摘要:RUP与UML结合是目前最有效的面向对象的建模技术。然而,RUP非常庞大,使用时还得做裁剪。通过对RUP进行裁剪,可以得到很多不同的软件开发过程。基于RUP和UML,该文提出了一种能有效快速建模开发软件的方法,并通过对一个课程管理系统的建模,给出该方法的应用细节。实践表明,在软件的开发过程中,这种基于用例驱动,以类图为核心的软件开发过程,比RUP更简单实用,能清晰快速地构建软件系统的模型。

关键词:软件开发;面向对象建模;RUP;UML;课程管理系统

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)11-2556-06

Abstract: RUP combined with UML is the most effective object oriented modeling technology. However, RUP is very large and complex, and must be cuted before using. Cutting of RUP can get a lot of different software development process. Based on RUP and UML, this paper presents an effective method for rapid modeling and developing software, and reveals the details of this method in application, by modeling on a course management system. Practice shows that, in the development of the software, this based on use case driven, class diagram centered software development process, is more simple and practical than RUP, and can quickly build software system model.

Key words: software development; Object―Oriented modeling; RUP; UML; course management system

统一建模语言[1](Unified Modeling Language, UML)是一种定义良好、易于表达、功能强大且普遍适用于软件开发的建模语言。但是UML本身并没有告诉人们怎样使用它,为了有效地使用UML,需要有一种方法应用于它。Rational的统一过程[2](Rational Unified Process,RUP),是由发明UML的3位方法学家提出的,与其他软件开发过程相比,使用RUP可以更好地进行UML建模[3]。然而,RUP是一个通用的过程模板,由于它非常庞大所以对具体的开发机构和项目,用RUP时还要做裁剪,也就是要对RUP进行配置。RUP就像一个元过程,通过对RUP进行裁剪和改进可以得到很多不同的开发过程[4-8]。

本文基于RUP中的需求分析、系统分析、系统设计、系统实施、系统测试五个工作流;选取UML中的用例图、类图、活动图、状态图、顺序图、组件图、部署图等7种图作为各个工作流的产品,围绕RUP以用例为驱动、以构架为中心、增量迭代的三个特点,结合结构化方法的思路,构建了一种快速建模开发软件的方法。软件开发的演进过程如图1所示。

该方法重视用户需求,以用例图和GUI原型双重工具来保证用户需求分析的准确性,分析模型类图到设计模型类图的转换体现了增量迭代,以类图为核心来设计数据库,自动生成代码框架,可以提高软件开发效率,避免模型之间转换的误差。

1 需求分析

需求分析的主要任务是以用例图作为工具,辅以GUI原型来描述用户的需求。

操作步骤为:首先,从业务描述中提取术语表,根据业务描述和术语表设计出用例图,并且给出详细的用例描述,然后,给出系统的GUI原型,最后让用户确认,客户不满意,进行修改,可迭代多次,以挖掘用户潜在的需求,直到客户满意。

1.1 绘制用例图

用例图是软件设计的依据,包括用例、参与者、关系与系统四个部分。要注意的是用例是一个完整的功能,而不是某个功能的一个执行步骤;参与者是系统的使用者或跟系统有数据来往的人、设备、其他系统等;关系包含有关联关系、泛化关系、包含关系和扩展关系。一个完整的用例模型不仅包含用例图,还应该有用例描述。

1.2 构建GUI原型

构造GUI原型的目的是让用户提前预览一下系统开发出来以后大概是什么样子,挖掘出潜在的需要。

以课程管理系统为例,其业务描述为:

目前,高校教师课程管理基本还处于教师上课,上完课布置作业,学生交作业,教师批改作业,统计成绩,期末还得统计全班学生一学期作业的成绩,而且有些教师还不只教一门课一个班,管理十分麻烦。希望能开发一个系统来帮助管理课程,系统具有登录和找回密码功能,教师登录以后能对课程信息和用户信息进行增、删、查、改等管理操作,可以布置作业,批改作业,自动生成成绩单;学生可以查看课程信息,下载课件,提交作业,查看成绩单等操作。

首先,根据以上业务描述然后,根据用例图和业务描述构建一个系统GUI原型,教师登录后显示主窗口,通过主窗口中能实现用户管理,课程信息管理,批改作业等功能;学生登录后显示主窗口,能实现查看课程信息,下载课件,提交作业,查看成绩等功能。

最后,让用户测试GUI,如果不满意,给出反馈意见,根据反馈意见对用例图和GUI原型进行修改,再交给客户测试,如此反复直到客户满意。

2 系统分析

系统分析主要任务是构建分析模型类图,为主要对象和业务绘制状态图和活动图。在构建类图时发现用例图,或者潜在的需求,可进行迭代,修改完善用例图。

2.1 绘制分析模型类图

类图是系统模型中最重要的图形,是软件设计的核心,它是UML中唯一能产生程序代码的图形。类图包括类和关系两个部分。类由类名、属性和操作组成;关系分为关联关系、泛化关系、依赖关系、实现关系、组合关系和聚合关系。

分析模型类图中的类和编程中的类不一样,不包含控制类和界面类,而且和系统实际编码中的类可能也对应不上。它只是表达业务领域中的一个静态结构,包括业务实体、各个业务实体所具有的业务属性及业务操作、业务实体之间具有的关系。

分析模型类图的设计可用动词名词法,将业务描述或者用例图中的所有名词找出来,再进行筛选,抽象成类或类的属性;将所有的动词找出来,筛选出来,设计成类的操作。可以使用类―责任―协作者(class―responsibility―collaborator,CRC)卡片法,分析检查类图设计的合理性。2.2 绘制状态图、活动图

2.2.1 状态图

状态图是描述一个实体基于事件反应的动态行为,显示了该实体如何根据当前所处的状态对不同的事件做出反应的,由表示状态的节点和表示状态之间转换的带箭头的直线组成。

对于状态较多,转换比较频繁的系统对象,给出状态图。2.2.2 活动图

活动图主要用于描述阐明了业务用例实现的工作流程,又称面向对象领域中的流程图,但与流程图又有区别。活动图能够表示并发活动的情形,而流程图做不到。流程图着重描述处理过程,各个处理之间有严格的顺序和时间关系;活动图有泳道,描述的则是对象活动的顺序关系所遵循的规则,着重表现的是系统的行为。

在用例图基础上,进一步细化用例描述,以分析模型类图中类的对象为泳道,绘制出主要的活动图。

3.1 绘制设计模型类图

设计模型类图一般包括三个类:实体类、控制类、界面类,具体如下:

1) 实体类即系统需求中的实体,一般需要保存在数据库表或文件中,包括存储、传递数据的类和操作数据的类,主要来源于需求说明中的名词。

2) 控制类用于体现应用程序的执行逻辑,提供相应的业务操作,将控制类抽象出来可以降低界面和数据库之间的耦合度,一般是由动宾结构的短语转化来的名词命名。

3) 边界类用于对外部用户与系统之间的交互对象进行抽象,主要包括界面类,如对话框、窗口、菜单等。

可把分析模型类图中的类映射成设计模型类图中的实体类,把增、删、查、改等公共操作封装成控制类,根据用户确认的GUI型设计界面类。分析模型类图到设计模型类图的转换体现了增量迭代。顺序图是对系统的动态建模,是对设计模型类图的补充,它描述了对象的方法的调用情况,顺序图和类图的联系最为紧密,在顺序图中添加一个消息,就应该在消息所指向的对象类图中的类添加一个方法。

3.2.2 组件图

组件图是用来反映代码的物理结构,提供当前模型的物理视图,对系统的静态实现视图建模。组件图显示一个系统物理设计时,组件所映射的类和对象的配置。根据用例图和设计模型类图,画出系统的组件图。课程管理系统组件图如图12。

3.2.3 部署图

部署图描述运行软件的系统中硬件和软件的物理结构。部署图中节点是在运行时代表计算资源的的物理元素,关联关系表示各节点之间通信路径一般使用反应连接类型的构造型命名。

4 系统实施

系统实施主要任务是设计并实现数据库,并且选择编程语言进行编码,将模型转换成可运行的系统。

4.1 数据库的实现

分析模型类图与数据库设计中的E-R图是紧密相关的,类图中的类就是E-R图中的实体,类与类之间的关系与E-R图中的关联是相对应的,所以,在面向对象开发方法中,一般可以直接将分析模型类图映射成数据库中的表。将类与类关系映射成表与表之间的关系[3]。由于依赖关系强调的是类操作间的使用关系,类图到表结构的映射中并不涉及这种关系,只要考虑泛化关系、关联关系到表的映射规范。这样可以迅速构建数据库,具体方法如下[3]:

1)泛化关系只将子类映射为表,表中包含子类自身的属性和继承自父类的属性,并添加一个ID号作为主键。

2)关联关系的映射分为三种情况:一对多的关系,一方的主键加入多方成为外键;一对一的关系一方的主键加入另一方成为外键;多对多的关系映射:产生第三张表,将两个多方的主键加入其中成为外键,两个外键的组合成为主键。

4.2 ROSE正向工程的应用

软件系统的各种UML模型只是模型,并非可执行的系统,为了快速开发软件,可以使用一些UML建模工具,如Rational Rose等,根据UML模型自动生成软件系统的主要框架代码,然后,再由系统开发人员补充必要的系统细节代码。

5 系统测试

系统实施完毕后,对可运行系统进行单元测试、α测试和β测试,然后将系统部署到实际工作环境中去,进行系统验收测试,最后正式交给用户使用。由于需求分析阶段让用户对GUI原型作了反复测试,确认了需求,只要系统β测试没问题,应该是能很好地满足用户需求的。

6 结束语

本文展示了软件开发过程及UML之间的关系,围绕RUP以用例为驱动、以构架为中心、增量迭代的三个特点,结合结构化方法的思路,提出了一种利用UML快速建模开发软件的方法,并且给出了课程管理系统这一实例,以展示该方法的应用细节。该方法重视需求分析,以类图为核心生成代码,设计数据库,比RUP更简单实用,比结构化方法更快捷,思路更接近人的自然思维。希望本文对快速开发软件项目具有一定的理论和现实意义。

参考文献:

[1] Unified Modeling Language Specification 2.0[S].OMG,2005,7.

[2] 克鲁奇特.Rational统一过程引论(中译本)[M]. 2版.北京:机械工业出版社,2002.

[3] 牛丽平,郭新志,宋强,等.UML面向对象设计与分析[M].北京:清华大学出版社,2010.

[4] 常晓,王凤霞,张景,等.基于RUP的UML建模方法研究[J].计算机工程与应用,2004,40(21):126-130.

[5] 苏士勇,宁云才,李学庆.改进的基于RUP的软件分析设计方法[J].计算机工程与设计,2009(11): 2610-2614.

[6] 王璐,王永贵,曲海成.RUP可视化建模的研究与应用[J].计算机工程与科学,2009,31(3):101-103.

[7] 张献忠,崔玲.基于RUP的可视化建模研究与应用[J].电脑知识与技术,2013,9(2):793-795.

[8] 王萍,和海莲.基于RUP的UML建模技术的研究及应用[J].信息与电脑,2013(4):38-39.

上一篇:任务与案例驱动法在面向对象程序设计教学中的... 下一篇:无线光通信的传输与接入分析