李 琪,李聚宝,刘相坤
(中国铁道科学研究院 电子计算技术研究所,北京 100081)
软件需求分析是软件生存期间重要的环节。铁路旅客综合服务信息系统设计的范围和内容比较复杂,而且面对不同层次的用户,所采用的服务方式也是多种多样的,准确而有效的需求分析才能实现效益最大化,更好的满足用户的需要。铁路旅客综合服务信息系统需求分析的研究作为独立的研究项目,工作中先后经历了项目任务规划、调研方案研究、对铁路其它信息系统及国内外其它行业客服系统的调查分析、深入现场需求调研、分析功能和非功能需求、阶段评审、需求汇总讨论、专家内部评审、提交详细需求分析报告等阶段。文中从需求分析流程、需求调研、需求分析等3个方面做了深入探讨和研究。
图1 需求分析流程图
项目初始阶段的策划等获得批准后,进入分析问题、调研工作阶段。需要完成国内外现状分析、调研方法研究、现场调研工作、网上调研工作、调研资料加工处理、调研汇总分析等任务。这一阶段的分析文档和调研报告加入到资料库,以备后续分析使用。
根据分析问题阶段的结果与现有资料来定义需求,包括功能需求和非功能需求。功能需求描述系统必须提供的活动和服务,这是系统的最终用户直接感受到的部分。非功能需求描述系统的其它特征、特点和约束条件,如结构、布局、网络组织、信息量、性能、接口、安全、维护等需求。此项任务的交付成果是定义需求的初稿,在后续工作中可能会对其做出修改。
分析功能需求能被验证并可以同业务人员和技术人员沟通。非功能需求分析中采用了逻辑模型表示。分析功能需求时,充分利用初始阶段的调研分析结果,并采用定性与定量相结合的方法给出功能需求的各项指标,在此基础上需求排列优先次序以及合理性研究得以继续开展。分析需求草稿、系统逻辑模型加入资料库中。
需求分析报告结构的初步确定,可以为检查和完善需求提供形式上的保证。非功能需求和功能需求的结合也是该阶段的任务,确保目标系统的功能需求能够在系统设计阶段实现。需求修订版和需求修改过程加入资料库,方便进一步跟踪。
需求的次序排列主要是确定需求的优先权,以便在时间、资源等方面发生冲突时做出合理控制。此项任务主要按照需求的相对重要性分类,如强制需求和非强制需求、关键需求和普通需求。此项任务将含优先权的需求加入资料库。
此项任务是对前面工作的总结,对已有分析结果的内部审核。邀请相关专家给出意见。讨论的问题有的需要进一步做调查分析,所以此项任务必要时会反复执行。最后将需求分析修订版、讨论纪录加入资料库。
对系统业务需求的深入分析以及上一阶段的汇总讨论,必要时会重新定义项目范围并修改计划。修改后的项目范围和项目计划加入资料库。
需求分析项目完成推动了需求分析的最后一步,即需求评审。需求分析研究报告,作为本项目最终的成果物提交项目管理部门。在整个工作过程中精心准备的资料库中,提取所有的需求、模型、支持文档构成需求陈述在需求评审会上做汇报。评审意见同样应该加入资料库。
科学的调研方法是调研结果是否真实反映系统需求的关键。调研数据及统计分析是需求分析的基础和依据。
为了达到需求分析的全面性、准确性和先进性的目标,做了5个专题调研,作为需求分析的依据。包括:与旅客服务有关的铁路信息系统建设情况报告、铁路旅客需求调研分析报告、国外铁路旅客服务信息系统调研与分析报告、铁路工作人员对系统需求建议的分析报告、国内服务行业客户服务信息系统调研与分析报告。
分析该项目特点,针对不同的调研对象,从旅客的角度、铁路企业的角度、社会群体的角度,设计调查表。调查分为网上调查和现场调查两部分,现场调查的对象包括车站旅客、列车旅客和铁路工作人员。对旅客群体的调查,由于旅客服务要求与旅客的知识背景有较强的相关性,因此在调查方案中还需要确定调查的样本大小和对旅客群体的分类方法。针对这些情况,设计了5个调查表,包括:旅客购票服务调查表、旅客车站服务调查表、旅客列车服务调查表、车站工作人员旅客服务调查表、列车工作人员旅客服务调查表、旅客服务网上调查表。
在调研方案设计中,为保证调研具有代表性,按照地区等级、车站等级、线路等级、列车等级,采用正交设计法来设计,有效地分配调研路线,分别派人开展调研。每一组调查的有效问卷要达到规定的数量,以求能够充分代表本类调查特点。共收回有效问卷11 096 份。
抽样调查是市场调查中常采用的方法,抽样的方法可分为随机抽样和非随机抽样,随机抽样技术主要分为:简单随机抽样、等距抽样、分层抽样、整群抽样和多阶段抽样等。本次调研由于旅客群体结构复杂,不同地区、职业、学历、收入水平、出行目的等旅客对铁路服务信息的要求不尽相同,应采用分层抽样的方式。
旅客乘坐火车需要经过不同的阶段,在每一阶段对铁路要求也有所不同。旅客从计划旅行开始主要经过选择列车、购票、进站、乘车、出站等几个环节。每一个环节的需求不同。
通过分析调查结果的重合度,确定调查结果的普适性;通过对相关性问题的反馈信息进行相容性分析,可确定反馈信息的真伪;采用专家评议分析,对于用统计方法分析的结果进行复核。
通过设计尽可能全面的调查问卷,使用尽可能先进、科学的统计分析方法,对调研结果的分析和有效利用,才能做好需求分析,也才能真正为旅客综合服务系统的建设提供充分需求信息。
需求分析是在需求调查的基础上抽取系统需求的过程,因为调研的结果包括方方面面的信息,为了能够准确地抽取系统需求,主要采用了以下分析方法。
面向对象的分析方法是在信息模型和面向对象的程序设计语言的概念上提炼出来的,面向对象的分析方法主要包括一下5个步骤:标示对象、标示结构、定义主题、定义属性、定义服务。
为保证需求分析能够从总体上把握系统建设目标,采用面向对象的分析方法是非常重要的。面向对象的方法是需求分析最先进的方法之一,可以使我们自然地从需求空间的对象、对象层次和结构、对象属性和行为等方面来认识需求;此外面向对象的分析方法得到的分析结果可直接用于设计阶段,并容易得到设计人员理解。
功能分解法就是用一些步骤和子步骤划分功能,它的策略是以先前的经验为依据,选择对新系统所期望的处理步骤和子步骤。功能分解将问题空间映射到功能和子功能。结构分析法将旅客服务信息系统映射成数据流和一系列加工。在分析系统时跟踪数据的流动,并将数据流映射到以后的分析和规格说明。信息模型的主要工具是实体关系图(E_R图),它可以帮助捕获问题空间的实质内容。
研究和实践发现,面向对象方法在某些内容的描述和表示上也存在不足,因此在需求分析的不同层次和不同部分将充分结合结构分析方法、信息模型法和功能分解法,使本项目的研究既能关注需求空间的对象及其结构等重点,又能关注流程、控制等细节。
需求分析的基础是进行需求调查和对调查结果的分析、归纳和总结,为使分析结果更科学可靠,定量分析是非常重要的。如时间特性指标包括:响应时间、更新处理时间、数据转换和处理时间等可以量化。但也不可能对调查信息进行完全的定量分析:由于没有现成的量化指标体系可供借用,强行量化将有失科学性;由于需求空间的复杂性,不可能对任何问题分析都进行量化。因此采用定量分析与定性分析相结合的方法,以定量分析为基础开展本项目的研究工作。
需求分析是每个软件必经的重要环节,做的怎样直接影响软件的设计和开发,更会对软件的使用和维护有着深远的影响。做好需求分析也是软件从业者孜孜追求的目标之一。本文的观点和方法在铁路旅客综合服务信息系统需求分析项目的研究中得到实践和应用,希望信息系统的需求分析能越做越好,尽可能减少软件开发的反复。
[1]Jeffrey L.Whitten, Lonnie D.Bentley, Kevin C.Dittman..系统分析与设计方法[M]. 肖 刚,孙 慧,等译. 北京:机械工业出版社,2003.
[2]Lan K.Bray.需求工程导引[M]. 舒忠梅,罗文村,李卫华,等译. 北京:人民邮电出版社,2003.
[3]Jack R.Meredith, Samuel J.Mantel.项目管理—管理新视角[M]. 郑 晟,杨 磊,李兆玉,等译. 北京:电子工业出版社,2002.
[4]郑人杰,殷人昆,陶永雷. 实用软件工程[M]. 北京:清华大学出版社,1997.