摩托罗拉a768论基于UML的需求分析
摘要:
需求分析是系统开发⼈员经过细致的调研和分析,准确理解⽤户对系统的功能、⾮功能性、约束条件以及扩展接⼝的具体要求,将⽤户⾮形式化的需求转化为完整的需求定义,从⽽确定系统必须做什么。⽽UML可以使⽤各种静态图和动态图很好的来将需求分析的结果以形象化的图例展⽰给⽤户和项⽬组成员,让其可以很好的理解软件的蓝图并作为后续开发的指南。 本⽂通过我参与过的仓库管理系统项⽬的需求分析过程,主要通过⽤例图、类图、活动图、部署图的建⽴过程来讨论了基于UML技术的需求分析⽅法。经过采⽤各种UML的相关技术,使得我们很好的描绘并展⽰出系统的需求,有效的保证了需求⼯作的质量,并提⾼了⽤户满意度。最后,分析了实际⼯作中碰到的问题,并提出了相关改进⽅法。
正⽂:
2017年3⽉,我有幸参与了我所在某电⼦元器件集团公司其中⼀个分公司的ERP系统的设计和开发。公司的长远战略⽬标是在2021年之前完成所有6个据点的系统统⼀化,预计投资额为6百万,⽽该跟⼦公司支付网关
就是作为系统实现的第⼀站。整个系统包含,⽣产计划模块、销售计划、⽣产管理模块、出货管理模块、仓库管理模块、财务管理模块。 公司也专门成⽴了专门项⽬组,包括项⽬办公室,项⽬管理组和各个功能模块⼩组,项⽬⼀开始我就做为⼀个系统分析师的⾓⾊驻现场,带领其中⼀个⼩组针对其中⼀个⼦模块-仓库管理系统进⾏前期的系统分析⼯作。⽽作为第⼀个实施的据点,其中的风险性和重要性不⾔⽽喻。
该项⽬具有较⾼的业务需求风险和技术风险,各个⼦公司都有各⾃⼀套独⽴的运⾏系统,虽然系统⽼旧但是运⾏稳定,加上我们并没有成熟系统作为参照。
所以前期需求分析以及⽤户的反应和⽀持将对总公司上层领导对我们团队和整个战略信⼼起很⼤的作⽤。整个系统被分为了多个⼦模块,所以各组负责⼈⼀起讨论了在需求分析期间采⽤的策略、⽅法和⼯具。我们排除了传统的⾯向结构的⽅法,因为它存在⼀些局限性,不能很好的满⾜软件的易复⽤性、易扩展性和可维护性,同时没有很好的原型系统⽀持,⽤户需求处于多变的状态,所以不太适合。我们最终选择了⾯向对象的⽅法,并且采⽤UML-统⼀建模语⾔,它使⽤了统⼀的表⽰法,呈现⼀致的业界都可以⽀持的风格,并配套了多种静态图和动态图来展⽰需求。同时也⽀持了复⽤,可扩展性,并具备多种配套的case⼯具。我们就采⽤了⼀种优秀的开源⼯具StarUML作为最终项⽬需求分析⼯具。并主要应⽤⽤例图、类图、活动图、顺序图和部署图5中图例。
1.⽤例图获取和设计
⽤例图主要描述⼀个个系统功能单元,描述参与者与系统⼀次交互作⽤,⽤例图是展⽰系统需求给⽤户最好的图形模式。我们认为⽤例图获取关键在于如何从⽤户那⾥尽可能的挖掘系统的功能性、⾮功能性、系统约束和接⼝信息等系统需求,并通过识别参与者、合并需求获取⽤例、细化⽤例描述和调整⽤例模型完成⽤例图模型的设计。 在识别参与者环节,考虑到历史系统具备⼀定的稳定性和可操作性,因此现场领导和⽤户对陌⽣系统和陌⽣⼈有⼀定的抗拒因素,⽽且不同层次的⼈对系统的理解和操作的细节把握不尽相同,所以我们⾸先通过现场调查,友好询问⽅式总结出⽬前的业务逻辑和实际操作步骤,根据我们的所见所得,通过Viso⼯具绘制出初步的简单的形象的⽤例模型,然后在通过联合计划会议⽅式组织相关的领导,IT技术⼈员、项⽬组,会议记录,⽽我作为会议主持,主导多次会议。我们通过对初步⽤例模型展⽰和讲解,然后通过确认反复跟⽤户确认如下问题来不断的识别参与者并为下⼀步骤做准备。
1.这个活动谁是主要参与者?
2.这个活动需要系统提供服务吗?
3.需要提供什么服务?
4.系统需要其他系统提供什么服务吗?
海部俊树
我们通过这种⽅式逐步合并需求,建⽴初步⽤例模型,在初步需求收集完之后,识别出主要的参与者,由此我们基本明确了仓库管理系统的主要⽬标和主要功能特性,并得出整个系统包含主要10个主要⽤例包,料架管理⽤例包,物料上架⽤例包,出货单⽤例包,物流排载⽤例包,海关报关⽤例包,捡料单⽤例包,标签打印⽤例包,包装扫描⽤例包,出库确认扫描⽤例包,库存管理⽤例包。⼀共包含了60个具体⽤例.
在获取初步⽤例模型后,还需要对⽤例进⾏细化,对⽤例进⾏合并或者分解,同时编写⽤例规约,⽤例规约规定了系统需要完成的步骤,包含了前置条件、后置条件和事件流,前置条件表明⽤例执⾏前系统处于的状态,后置条件是执⾏后系统应该处于的某种状态,事件流描述了⽤例执⾏的步骤,与之配套的包含了基流、分⽀流、替代流,基流描述了⽤例执⾏的基本步骤,没有分⽀和替代,分⽀流主要描述执⾏过程中根据不同的条件和不同选择可能执⾏的步骤,替代流主要描述当出现故障时,执⾏的相关的替代步骤。我们为每个⽤例设计了基流,主要步骤设置了替代流。
诉求对象最后我们还逐步的完善⽤例的描述,我们通体采⽤“肯定句”⽅式细化⽤例说明,并组织编写了能够被领导、⽤户和项⽬成员都能理解的《需求规格说明书》,通过评审后,作为项⽬验收的依据。
绵阳师范学院学报2.类图的设计
蒸汽弹射
⽤例图可以描述系统需求的动态结构,但是对于需求特征和⽤例中出现的概念,并没有统⼀详细的分析,对于⽤例中的抽象对象,我们设计
类图描述其属性和操作,同时描述这些类之间的各种关系,包括泛化、关联、扩展、实现等关系。
3.活动图的设计
活动图主要是⽤来描述各⽤例的内部⾏为,是⽤例图的⼀个补充,包含并发和同步⾏为,我们针对主要的10个⽤例给出了内部实现⽅式和顺序执⾏规则,同时包含了相关部门和单位的联动⽅式和执⾏步骤。
4.部署图的设计
在设计部署图时,我们主要针对各应⽤服务器、⽹络、终端电脑、扫描设备、打印设备做了部署。考虑到与总公司最初总设计思路接轨,我们将主要的服务器部署在总公司,并由专门的服务器组进⾏监管。通过与⽹络专员确认,采⽤快速的⽹络专线链接主⼲道,信息终端采⽤普通的⽹线连接。根据包装线的安排和货架的分配,定义了终端电脑、扫描设备和打印设备的定位。同时在部署图中并给出了所有设备部署相关的标识和描述。
我们最终⽤了3个⽉时间完成了需求分析并完善了相关的《需求规格说明书》,在此期间各级领导给
了我们莫⼤的⽀持,同时⽤户⽆论是在调查过程和设计过程也给了我们很⼤的帮助,虽然在后续的系统开发过程中,随着系统的完善,我们的需求也有⼀些细节上的变动,但是主体内容并没有受到影响,所以整个需求分析⼯作是成功的。
通过此次系统需求分析经验,我意识到强调配合和引导⽤户为主体进⾏需求分析的重要性,同时发掘具有强⼤功能的UML,结合专业的CASE⼯具StarUML可以很好的完成需求分析⼯作,并为我以后的⼯作提供了很好的经验基础。