基于需求分析的可视化技术在软件开发中的应用

2021-03-10 09:20王智超肖玉周燕
电子技术与软件工程 2021年20期
关键词:用例订单可视化

王智超 肖玉 周燕

(湖北开放大学 湖北省武汉市 430073)

随着软件工程技术的发展,许多新技术新方法不断涌现。但是很多软件设计与开发工作人员并不了解这些新技术新方法。而这些技术的采用,可以很大程度的提高软件设计和开发的工作效率,加强软件工程师和客户之间的交流,使得软件的质量得以进一步提高,同时降低开发成本[1]。本文主要针对软件工程领域需求分析阶段所使用的技术和方法进行讨论。

1 传统软件需求分析技术

传统的需求表述方式是“软件需求规格说明书(Software Requirement Specification)”。这种方式通过功能分解来描述系统功能,每个功能模块表示一个系统提供的服务。采用这种方法描述软件需求,使得系统功能和具体的设计交叉在一起,也就是软件开发中两个不同阶段(需求分析和详细设计)的工作分不清楚界限。

这种需求分析方法往往缺乏描述各个功能模块之间的相互联系,因为很多的系统服务都是由多个模块相互协同工作来提供的。因此,也会导致后期的软件实现过程质量不高,效率降低。为了解决传统软件需求分析技术在软件开发过程中出现的问题,接下来介绍可视化软件需求分析技术。

2 可视化软件需求分析技术

为了解决传统软件需求分析技术的不足,软件行业中的许多公司或组织提出了可视化软件需求分析技术。这种技术通过各种模型来对软件系统进行分析和设计,以一种简单明了的直接方式来描述系统的各个方面,包括需求分析,总体设计,详细设计,物理架构实现及软件系统的配置与部署等。这种技术大大提高了用户与开发人员之间的沟通效率,进一步完善了需求分析阶段的主要工作内容,即“确定系统到底做什么,而不是怎么做”的问题。可视化的软件需求分析技术, 以UML 统一建模语言最具代表性,该技术标准由拥有800 多名成员公司的国际标准化组织OMG(Object Management Group,即对象管理组)所发布,目前已成为主流的系统分析和设计技术。下面先对UML技术进行描述,然后结合具体的案例,对这一可视化分析工具在完成软件系统的需求分析任务过程中的应用方法进行阐述。

3 UML可视化技术

UML(Unified Modeling Language,即统一建模语言)是一种基于面向对象技术的可视化分析与设计语言,它并不是一种编程语言,而是一种标准化的图形符号语言,这也正是可视化特点的由来。UML 目前已成功应用于电信、金融、政府、电子、国防、航天航空、制造与工业自动化、医疗、交通、电子商务等领域中。许多著名的计算机公司如Microsoft、HP、IBM 和Oracle 等都在使用并不断进行改进和完善,使其更加适合项目实践。截止到2020年,UML 最新版本为UML2.5。UML 是软件行业的建模规范,可以对软件项目建立需求模型、设计模型、实现模型、测试模型,因为UML 有精确的建模语义,各个模型之间还能有效集成,所以可以基于模型进行仿真验证,使得设计具有完整的前瞻能力。UML技术包含13 种图,分为两个大类:静态结构图和动态行为图,通俗讲也称为静态建模和动态建模[2]。这种建模技术,以可视化和立体化的方式把软件项目的分析和设计过程展现给开发者及用户,大大降低了项目参与人对项目的理解难度,避免了理解上的不一致性,提高了项目的开发效率。

在完成软件项目需求分析阶段的工作中,传统的方式是使用软件需求规格说明书来描述软件项目的用户需求,文档中经常出现系统功能说明和具体的设计描述交叉在一起的情况,也就是软件开发中两个不同阶段(需求分析和详细设计)的工作分不清楚界限,增加了该文档使用者的理解难度,导致在内容理解上容易产生不一致性。而使用UML 以可视化的方式建立项目系统的需求模型,可以有效解决传统需求分析中产生的上述问题。

4 可视化技术在需求分析中的应用

软件项目需求分析任务通常关注系统的功能需求,数据对象需求,性能需求,安全性需求等方面,本文主要对功能需求和数据对象需求使用可视化技术进行需求分析。

功能需求(Functional requirement)规定开发人员必须在产品中实现的软件功能,用户利用这些功能来完成任务,满足业务需要。功能需求有时也被称作行为需求,因为习惯上常常使用“应该”对其进行描述:“系统应该发送电子邮件来通知用户已接受其预定”。功能需求描述的是开发人员需要实现什么。

数据对象需求(Data requirement)描述软件产品中出现的业务对象及其之间的相互关系。这些对象往往具有很多不同的属性,哪些属性是系统业务处理过程中需要的,哪些是不需要的,都要通过数据分析来进行准确的描述。数据对象分析的结果对数据库的逻辑模式设计有重要的指导作用。

传统需求分析过程,需要建立在开发者对系统的业务处理流程比较熟悉的基础之上,否则很难把系统的功能需求和数据对象需求描述准确,对经验要求较高。使用UML 可视化技术建立项目系统的需求模型,来描述该系统的主要用户,以及用户使用该系统能够做什么,可以不用考虑具体的业务处理逻辑,能很好的把功能分析与设计工作分离开来。通过这种技术也能让系统需求分析员更好的关注用户的需求,提高软件产品的质量,因为用户满意度直接决定着软件项目的成败。UML 可视化需求分析技术,通过对软件项目建立需求模型来实现,其需求模型主要使用用例模型和类图模型进行描述。用例模型可以对系统用户及用户能做什么进行描述,即功能需求建模;类图模型是用面向对象技术对系统中的数据对象及其之间的相互关系进行分析,即数据对象需求建模。

例如,下面是对“网上订单处理系统”软件需求规格说明书的内容进行精简之后的需求描述内容:

(1)客户在企业网站中选择需要的产品并放入购物车,进行订购。

(2)客户输入购买细节,提交订单,系统自动将订单信息保存到数据库。

(3)客户能够要求企业营销人员与自己联系,进一步了解产品、协商价格,确认订单的细节。

(4)企业营销人员在收到客户的联系要求后,及时与客户联系,为客户提供咨询服务,确认订单的细节。如果需要修改原订单,将修改后的订单信息更新到数据库并向客户发出订单确认信息。

(5)客户收到订单确认信息后,汇款或网上支付产品款项至企业银行账户。

(6)订单处理系统检查用户账号及付款金额,若金额无误,修改订单状态,将付款成功信息通知营销人员。

(7)订单处理系统从数据库中获取订购信息和收到的付款信息生成发票后将该发票提供给营销人员。营销人员发E-mail 通知客户已发货,并将发票提供给仓库管理员。

(8)系统从数据库中获得该客户的订单信息和个人资料,生成订购信息列表,将该列表提供给仓库管理员。由仓管员根据订购信息列表配货后,向客户发货并附上发票;最后修改订单的状态。

针对上述传统需求分析方式描述的需求内容,下面使用UML中的用例模型和类图模型以可视化的方式描述功能需求和数据对象需求。

4.1 功能需求分析

用例模型是UML 中用来对系统功能需求进行建模的工具。用户并不想知道软件系统内部是如何设计与实现的,他们只关心系统到底能为用户提供什么服务,这就是用例模型的精髓所在,把系统的功能分析和设计分离开来,只描述系统的需求而不考虑如何实现的问题。用例模型主要包含三个要素:参与者(Actor),用例(Use Case)和关系(Relationship)。由这三个要素构成用例模型示例,如图1所示。

图1:用例模型示例

图1 中参与者用一个人形符号表示,不是特指人,是指在使用系统或与系统交互中所扮演的角色。因此参与者可以是人,可以是事物,也可以是时间或其他系统等等。但需要强调的是,参与者不是指人或事物本身,而是表示人或事物当时所扮演的角色[3]。例如“网上订单处理系统”中的用户和营销人员,他们并不指某个人(小李和小张),二是这两个人在系统中所扮演的用户和营销人员这两个特殊的角色。

用例表示系统提供的服务或功能,是参与者想要系统做的事情。对于用例的命名,可以给用例取一个简单、描述性的名称,一般为带有动作性的词或短语。用例在画图中用椭圆来表示,椭圆下面附上用例的名称。例如系统需求规格说明书中描述的“订购产品”的功能,该功能名称即为一个动词短语,可用椭圆用例符号表示这个系统功能需求点,如果有多个功能需求点,则采用多个用例表示即可,非常直观和清晰。

箭头用来表示参与者和系统通过相互发送信号或消息进行交互的关联关系。箭头尾部用来表示启动交互的一方,箭头头部用来表示被启动的一方,其中用例总是要由参与者来启动。该模型并没有描述用例代表的系统服务或功能是如何设计并实现的,把功能和设计很好区分开来,避免不同阶段的工作任务出现界限不清楚的问题,为软件开发人员和用户之间的沟通架起了一座很好的桥梁。

通过 “网上订单处理系统” 需求描述的分析,可以识别出两个主要参与者角色,客户(Customer)和营销人员(Salesman)。使用可视化的用例模型来描述该系统的功能需求,其功能需求模型如图2所示。

图2:功能需求模型

4.2 数据对象需求

类图模型主要用在面向对象软件开发的分析阶段,描述系统的静态结构,本文中的“网上订单处理系统”可以使用类图来进行数据对象需求的描述。在对系统进行数据对象需求分析时,通常考虑两种类型的数据对象,一种是用户角色对象,另一种是系统业务处理对象[4]。在面向对象的软件开发中,需要把系统中的数据对象抽象成类的概念进行描述,类图模型的可视化表达恰好满足这一需求。类图模型用于描述系统中所包含的类以及它们之间的相互关系,帮助开发者和用户简化对系统的理解,它是系统需求分析和设计阶段的重要产物。

系统中的数据对象用类进行表示,类一般包含3 个组成部分。第一个是类名;第二个是属性;第三个是该类的操作,如图3所示。

图3:类的组成

针对“网上订单处理系统”需求描述,要实现该系统主要功能,需要有用户,营销人员,产品,订单等基本数据对象。这4 个对象可以分别用4 个类描述,其中包含了每个数据对象的基本属性和方法,这些信息正是数据对象需求分析所要获得的重要内容。分析数据对象不仅要考虑每个数据的特点,同时还要考虑数据之间的关系。系统中的每个数据对象不是孤立的,而是有相互联系的,例如用户订购产品,营销人员修改订单。这里的“订购”和“修改”描述的就是数据对象之间的联系,在类图模型中最主要的就是关联关系,表达不同对象之间联系的多重性,比如一对一,一对多,和多对多。图4 是使用类图模型建立了用户和产品这两个数据对象以及之间的关系,以可视化的方式展现了这两个数据对象的内容,如图4所示。从图中可以看出,该系统业务实现主要需要用户对象的姓名,联系方式等基本属性信息,而用户的个人爱好属性可暂时不予考虑,即不用出现在类的属性之中。

图4:数据对象需求模型

从上述“网上订单处理系统”的用例模型和类图模型可以看出,UML 可视化模型简单、清晰的表达出了软件系统的功能需求和数据对象需求,为软件需求分析工作提供了一种可视化的、不易产生二义性的描述工具,能够很好的保证软件需求分析的质量,大大减少了软件开发后期因为需求不准确、不完整而导致的一系列增加软件开发成本的难题。

5 小结

通过对传统的和可视化的软件需求分析技术的对比分析,后者的优势显而易见。可视化的需求分析技术中,以UML 最为突出,在软件行业应用中所占的比例也将随着软件的发展而逐步增大,会有更多的软件从业人员去学习和了解,并在软件开发中发挥出积极作用。

猜你喜欢
用例订单可视化
春节期间“订单蔬菜”走俏
基于CiteSpace的足三里穴研究可视化分析
UML用例间包含关系与泛化关系的比较与分析
UML用例模型中依赖关系的比较与分析
基于Power BI的油田注水运行动态分析与可视化展示
新产品订单纷至沓来
基于CGAL和OpenGL的海底地形三维可视化
“融评”:党媒评论的可视化创新
联锁软件详细设计的测试需求分析和用例编写
從出土文獻用例看王氏父子校讀古書的得失