论文部分内容阅读
摘 要:在面向对象软件开发中,软件设计师们需要对实际需求进行抽象,也就是建模,来完成实际需求到软件体系结构的映射。有一个好的模型或者软件架构,在软件开发中,尤为重要。UML(一种建模语言)技术可以清晰的描述模型体系,比如类的职责定义,对外的依赖关系,以及类之间的交互动作等,可以提高建模的准确性。因此,研究UML建模技术在软件设计中具有指导价值。
关键词:UML;软件设计;建模;模型图
UML(Unified Modeling Language)在软件工程中得到了广泛的应用。UML有严格的语法和语义规范,定义了标准的图形符号,立足于对事物的实体、性质、关系、结构、状态和动态变化过程的全程描述,构建了用例图、类图等各种各样的图,用于描述软件的体系结构。软件设计的过程中,UML可以很好的描述系统的结构,可以有效地指导软件设计工作的进行。
一、UML建模技术概述
UML是一种标准的建模语言,用来描述软件的设计。作为建模语言,UML拥有规范的定义,统一的符号以及语义,可以准确地表示和定义软件项目中的概念。UML具备可视化的特点,UML不再是“文字”式的语言,构成元素分为模型元素、图、视图和通用机制等几个部分,图形相比于文字更具备直观性,UML元素相互结合,以图的形式将项目的流程,模块,设计等以可视化的方式表现出来。语言本质是为了交流,而UML以其简单、可视、规范、统一的特点,恰如其分的充当着这个交流的工具。一个软件项目有产品,架构师,程序员,测试者等众多参与者,UML语言使得参与者之间的交流更加简单。到目前为止UML语言已经发展到了2.5版本,已经应用与电子、航天、金融等众多领域。
二、UML建模技术
UML的精髓在于各种图,图是模型最直观的表达,UML有以下各式各样图:用例图、类图、对象图、包图、状态图、活动图、序列图、通信图、构件图、部署图等。每个图都从一个方面反应这软件的设计。用例图描述系统功能职责及与用户交互关系;通信图描述对象间通过消息进行的交互;类图描述类内部职责及类之间关系;包图描述包之间关系;构件图描述系统中的构件、接口及关系;对象图描述系统对象之间的关系;活动图描述活动的控制流程;部署图描述在硬件节点上的软件部署以及彼此通信。其中用例图、类图、和时序图是最常使用的,这里以图书馆管理系统为例,重点说这三种图。
首先是用例图。用例图用来描述软件的执行者和软件的功能,它描述了一个用户能够观察到的系统功能模型图,在图书馆管理系统中,这里的用户有管理员和借阅者,管理员对应的软件功能有图书借阅、图书预约、图书归还、超期罚款等子功能,借阅者对应的软件功能有借阅者信息、登录、检索、图书借阅、图书归还、超期缴费等子功能,这些用户与系统子功能之间的关系构成了用例图。从用例图中可以很清楚的理解软件的整个系统需要哪些功能模块,有哪些用户,以及各个用户所对应的功能,用例图画出来以后,就相当于界定了模块之间的大致关系。
其次类图。类图描述了系统内部类与类之间的关系,是静态的。实际开发过程中,就是根据类图进行代码编写的。举个例子,图书馆管理系统中,借阅者信息这一模块可以抽象出一个类,那么这个类的职责可以有:修改个人信息,查阅个人信息,查阅借书信息,预约信息等。类不是孤立存在的,类与类之间需要交互。类图中有6大关系:泛化、实现、组合、聚合、关联、依赖。泛化表示一般和特殊的关系,实现是类与接口的问题,组合是整体与部分的关系且整体与部分不可单独存在,聚合是整体与部分的关系且整体和部分可以单独存在,关联是拥有的关系,依赖是使用的关系。软件设计的过程就是将实际场景中的功能抽像到类,并确定好类与类之间关系的过程,借助于UML的类图,这个过程可以很准确而清晰的实现。
最后是序列图。序列图描述的是类与类之间动态交互的关系。序列图按照时间顺序,将这些类之间的交互信息依次排列。消息分为同步信息,异步信息和返回信息。序列图的元素主要有角色,对象,生命线,焦点,信息等。举个例子, 借阅者网上预约的简单时序过程应该如下:1.调用登录子系统身份验证;2.经过检索系统获取图书信息;3.在预约系统完成预约;4.推出登录系统。在这个简单的订阅过程中,借阅者依次与登录、检索、预约等子系统进行交互,和类图纯粹的静态关系相比,这些信息是动态的,序列图可以清晰的描述软件内部的交互逻辑。
三、软件设计中的UML建模技术应用流程
软件工程的过程一般可分为的需求分析、架构设计、代码实现、測试、后期维护等主要阶段,其中UML的作用主要体现在需求分析和软件设计阶段。一旦设计完成,开发人员便可根据UML设计架构实施编码。
1.需求分析环节。该环节,设计者主要应用UML建模技术中的用例图。用例是一个系统中所进行的一连串的处置活动,该活动主要是要能够满足系统外部的执行者对于系统的某种期望。首先设计者需要了解系统的所有需求,并对需求进行相应的描述,划分系统的功能子系统。然后设计者要提取系统中有哪些活动,活动的参与者有谁,活动需要哪些系统提供的服务,系统需要提供的服务有哪些等等。最后结合活动和系统的需求提取出用例,在UML中描绘出用户与系统间的交互作用,子系统的划分,子系统之间的关系,并表明用户能够实现的目标,便绘制出了用例图。
2.架构设计环节。在架构设计中,设计者主要应用UML的类图和序列图。设计者需要对需求分析阶段的系统模型进行进一步的扩展与细化,分离出具体的类,设计各个类的内部职责和外部依赖,然后结合系统现有需求及将来扩展的可能性,以及子系统的输入数据与输出数据等,对这些类进行进一步的优化、分离或者合并。类设计完成后,还要完成数据库,通信机制,系统流程调度等设计工作。最后对各个子系统的职责进行总结抽象,抽象出共同职责,分离抽象层和接口的设计,完成架构的高层设计。UML类图中提供了各种抽象类,接口等机制,以及各种类之间的关系,可以简单明明确地表达这些关系。UML类图绘制完成,就代表着系统架构设计的基本完成,在UML类图的指导下,开发者的编码工作会变得非常清晰简单,UML类图不仅提高了而开发效率,还减少代码中的漏洞,提高了代码质量。由于类图属于静态图,只能描述类之间的静态关系,无法体现流程的动态执行过程,所以为了更清楚的体现架构的动态流程特性,还需要绘制UML序列图。UML序列图属于动态视图,主要用于描述系统中各个对象的交互以及通讯。设计者依次列出类之间的方法调用关系,根据时间顺序,将系统中用例的活动行为在UML序列图中绘制出来,便制作出了序列图根据UML序列图。根据序列图,可以清晰地了解对象之间的消息的发送与接收详情,获知软件系统内部动态的交互流程。
总之,UML建模技术可以提高软件设计的效率和有效性,值得推广应用。开发人员如果能深入了解UML建模技术的各种视图及应用特点,在软件设计中正确使用视图,充分发挥出UML建模技术的作用,便可设计出高质量的软件架构,保证软件的质量。
参考文献:
[1]骆元.软件工程中的UML建模技术.2017.
[2]刘海生,探讨UML在软件工程中的应用.2018.
关键词:UML;软件设计;建模;模型图
UML(Unified Modeling Language)在软件工程中得到了广泛的应用。UML有严格的语法和语义规范,定义了标准的图形符号,立足于对事物的实体、性质、关系、结构、状态和动态变化过程的全程描述,构建了用例图、类图等各种各样的图,用于描述软件的体系结构。软件设计的过程中,UML可以很好的描述系统的结构,可以有效地指导软件设计工作的进行。
一、UML建模技术概述
UML是一种标准的建模语言,用来描述软件的设计。作为建模语言,UML拥有规范的定义,统一的符号以及语义,可以准确地表示和定义软件项目中的概念。UML具备可视化的特点,UML不再是“文字”式的语言,构成元素分为模型元素、图、视图和通用机制等几个部分,图形相比于文字更具备直观性,UML元素相互结合,以图的形式将项目的流程,模块,设计等以可视化的方式表现出来。语言本质是为了交流,而UML以其简单、可视、规范、统一的特点,恰如其分的充当着这个交流的工具。一个软件项目有产品,架构师,程序员,测试者等众多参与者,UML语言使得参与者之间的交流更加简单。到目前为止UML语言已经发展到了2.5版本,已经应用与电子、航天、金融等众多领域。
二、UML建模技术
UML的精髓在于各种图,图是模型最直观的表达,UML有以下各式各样图:用例图、类图、对象图、包图、状态图、活动图、序列图、通信图、构件图、部署图等。每个图都从一个方面反应这软件的设计。用例图描述系统功能职责及与用户交互关系;通信图描述对象间通过消息进行的交互;类图描述类内部职责及类之间关系;包图描述包之间关系;构件图描述系统中的构件、接口及关系;对象图描述系统对象之间的关系;活动图描述活动的控制流程;部署图描述在硬件节点上的软件部署以及彼此通信。其中用例图、类图、和时序图是最常使用的,这里以图书馆管理系统为例,重点说这三种图。
首先是用例图。用例图用来描述软件的执行者和软件的功能,它描述了一个用户能够观察到的系统功能模型图,在图书馆管理系统中,这里的用户有管理员和借阅者,管理员对应的软件功能有图书借阅、图书预约、图书归还、超期罚款等子功能,借阅者对应的软件功能有借阅者信息、登录、检索、图书借阅、图书归还、超期缴费等子功能,这些用户与系统子功能之间的关系构成了用例图。从用例图中可以很清楚的理解软件的整个系统需要哪些功能模块,有哪些用户,以及各个用户所对应的功能,用例图画出来以后,就相当于界定了模块之间的大致关系。
其次类图。类图描述了系统内部类与类之间的关系,是静态的。实际开发过程中,就是根据类图进行代码编写的。举个例子,图书馆管理系统中,借阅者信息这一模块可以抽象出一个类,那么这个类的职责可以有:修改个人信息,查阅个人信息,查阅借书信息,预约信息等。类不是孤立存在的,类与类之间需要交互。类图中有6大关系:泛化、实现、组合、聚合、关联、依赖。泛化表示一般和特殊的关系,实现是类与接口的问题,组合是整体与部分的关系且整体与部分不可单独存在,聚合是整体与部分的关系且整体和部分可以单独存在,关联是拥有的关系,依赖是使用的关系。软件设计的过程就是将实际场景中的功能抽像到类,并确定好类与类之间关系的过程,借助于UML的类图,这个过程可以很准确而清晰的实现。
最后是序列图。序列图描述的是类与类之间动态交互的关系。序列图按照时间顺序,将这些类之间的交互信息依次排列。消息分为同步信息,异步信息和返回信息。序列图的元素主要有角色,对象,生命线,焦点,信息等。举个例子, 借阅者网上预约的简单时序过程应该如下:1.调用登录子系统身份验证;2.经过检索系统获取图书信息;3.在预约系统完成预约;4.推出登录系统。在这个简单的订阅过程中,借阅者依次与登录、检索、预约等子系统进行交互,和类图纯粹的静态关系相比,这些信息是动态的,序列图可以清晰的描述软件内部的交互逻辑。
三、软件设计中的UML建模技术应用流程
软件工程的过程一般可分为的需求分析、架构设计、代码实现、測试、后期维护等主要阶段,其中UML的作用主要体现在需求分析和软件设计阶段。一旦设计完成,开发人员便可根据UML设计架构实施编码。
1.需求分析环节。该环节,设计者主要应用UML建模技术中的用例图。用例是一个系统中所进行的一连串的处置活动,该活动主要是要能够满足系统外部的执行者对于系统的某种期望。首先设计者需要了解系统的所有需求,并对需求进行相应的描述,划分系统的功能子系统。然后设计者要提取系统中有哪些活动,活动的参与者有谁,活动需要哪些系统提供的服务,系统需要提供的服务有哪些等等。最后结合活动和系统的需求提取出用例,在UML中描绘出用户与系统间的交互作用,子系统的划分,子系统之间的关系,并表明用户能够实现的目标,便绘制出了用例图。
2.架构设计环节。在架构设计中,设计者主要应用UML的类图和序列图。设计者需要对需求分析阶段的系统模型进行进一步的扩展与细化,分离出具体的类,设计各个类的内部职责和外部依赖,然后结合系统现有需求及将来扩展的可能性,以及子系统的输入数据与输出数据等,对这些类进行进一步的优化、分离或者合并。类设计完成后,还要完成数据库,通信机制,系统流程调度等设计工作。最后对各个子系统的职责进行总结抽象,抽象出共同职责,分离抽象层和接口的设计,完成架构的高层设计。UML类图中提供了各种抽象类,接口等机制,以及各种类之间的关系,可以简单明明确地表达这些关系。UML类图绘制完成,就代表着系统架构设计的基本完成,在UML类图的指导下,开发者的编码工作会变得非常清晰简单,UML类图不仅提高了而开发效率,还减少代码中的漏洞,提高了代码质量。由于类图属于静态图,只能描述类之间的静态关系,无法体现流程的动态执行过程,所以为了更清楚的体现架构的动态流程特性,还需要绘制UML序列图。UML序列图属于动态视图,主要用于描述系统中各个对象的交互以及通讯。设计者依次列出类之间的方法调用关系,根据时间顺序,将系统中用例的活动行为在UML序列图中绘制出来,便制作出了序列图根据UML序列图。根据序列图,可以清晰地了解对象之间的消息的发送与接收详情,获知软件系统内部动态的交互流程。
总之,UML建模技术可以提高软件设计的效率和有效性,值得推广应用。开发人员如果能深入了解UML建模技术的各种视图及应用特点,在软件设计中正确使用视图,充分发挥出UML建模技术的作用,便可设计出高质量的软件架构,保证软件的质量。
参考文献:
[1]骆元.软件工程中的UML建模技术.2017.
[2]刘海生,探讨UML在软件工程中的应用.2018.