论需求分析方法及应用 摘要: 我就职于一家在线教育互联网公司,公司为了深耕中、小学的教学资源消费市场,决定在2017年3月份决定升级一款教学资源搜索与下载产品,“*校通”。我有幸作为该产品系统分析师,负责了系统分析工作。本文以该产品升级的需求分析过程为例,论述了需求分析工作过程与运用的需求分析方法:首先,将需求调研结果进行了分析,并回顾了经典的需求分析工作过程中的主要内容;其次,根据需求的实际情况,确定采用面向对象分析方法(OOA)来完成需求建模,以识别参与者、合并需求获得用例,细化用例描述,这三个阶段来描述建模的实践过程;事实证明,正是采用了OOA方法使分析的需求具有无二义性与正确性,该产品历经7个月时间于2017年10上线,上线之后系统的稳定运行与良好的用户体验得到了用户的一致好评。 正文: 我就职的企业是一家在线教育互联网公司,公司是国内较大、较权威的k12领域的教学资源提供商之一,涵盖全学科的试题、试卷、学案、教案等各类教学资源700多万套。公司为了深耕中、小学的教学资源消费市场,要能够吸引更多的学校用户,计划在2017年3月份决定升级一款教学资源搜索与下载产品,“*校通”。该产品由用户中心、资源网站、资源定制与推荐、资源评价等子系统构成,在历经了7个月的开发后,于10月上线,至今为已有运行半年,良好的用户体验与产品的稳定运行,得到了广大学校的一致好评。公司任命本为系统分析师,负责了该产品的系统分析工作。需求分析是系统分析的重要工作之一,其核心内容就是采用正确的需求分析方法来保障需求具有无二义性与正确性。 在选择需求分析方法之前,我们对此次产品升级需求调研的结果进行了如下分析:第一,在2个月的需求调研工作期间,采用了问卷调查、用户访谈、情节串联、联合需求计划等需求获取技术,获取了近90条有效需求。第二,在需求调研文档的整合过程中,梳理出了粗粒度的系统模块、流程处理逻辑、状态转换逻辑、算法规则、与外部系统对接要求等内容。第三,将这获取的90条需求点向需求提出者进行讲解、讨论,但需求描述仍然是以文字化为主,没有较直观的呈现。 在了解到这次产品升级需求调研文档之后,接下的工作是需求分析工作,需求分析工作的核心工作是确定需求分析的工作过程,因此我们对经典的需求分析的工作过程进行了回顾。工作过程包括:(1)绘制关系图:用于定义系统与外部分实体间的界限和接口的简单模型,为需求确定了一个范围;(2)创建原型:使用快速开发工具开发一个抛弃式原型,用于直观的呈现需求;(3)分析可行性:对需求进行成本、性能和技术的可行性研究,并分析是否存在冲突与对外依赖。(4)确定需求优先级:以需求的用户满意程度为指标,划分需求开发的优化级;(5)建立分析模型:使用E-R图、用例图等来用描述系统的数据、功能、用户界面和运行的外部行为;(6)创建数据字典:是对系统用到的所有数据项和结构进行定义;(7)使用QFD:将产品特性、属性与对用户的重要性联系起来。我们在对经典的工作过程与实际工作的结合讨论后,确定了创建原型、建立分析模型、确定需求优级、整合需求分析文档等工作过程。 建立分析模型是需求分析工作的重点工作之一。为了更好的描述用户需求,经我们讨论与决定了采用面向对象分析方法(OOA),它有系统化的分析过程,分析结果不会涉及到系统的内部结构与设计,以用例图的形式来描述需求。OOA中的用例建模过程是具有流程化工作过程,在经历了识别参与者、合并需求获得用例、细化用例描述、调整用例模型这几个阶段后,最终完成用例建模。接下来我将介绍此次用例建模过程中体会较深的阶段: 识别参与者是将需求中的功能使用者识别出来。首先,要划分系统模块边界与明确职责,然后在对每个模块中的参与者进行识别。因此我们将调研文档中的梳理的功能模块进一步分析与整合,划分出了:用户中心、资源上传与审核、资源搜索与下载、资源收藏与评论,资源推荐、月下载报表等子功能模块;其次,在确定功能模块后,要进一步分析用户使用功能的场景与抽象使用者,在将使用者进行识别与归类后确定了参与者。例如:资源上传与审核模块的参与者是编辑人员与审核人,资源搜索与下载的参与者是教师,用户中心的参与者是校长、教师。最后,是识别隐含的参与者,它常以其它系统、硬件、时钟等形式出现。在资源推荐、月下载报表模块的识别参与者的过程中,除了要识别这些模块的使用者外,更重要的是识别提供这些数据的来源:数据分析系统、相关性分析工具、月份。可将这些数据提供来源也作为系统的参与者。 合并需求获得用例是将需求点合并后抽象为用例并将参与者分配到用例上。首先,在分析用例之前需要将需求点进行合并处理,其目的是将使用者与功能关系进行合并,从而清晰的描绘需求功能。例如:校长和教师都可搜索与下载资源、教师使用资源进行教学与学生可以获得教学资源学习,从而可合并为校长和教师都可搜索与下载资源、教师和学生都可用使用资源。其次,在合并的需求后,可将用户在系统做事进行抽象为功能点,并将这些功能点转换为用例。例如:教师可搜索与下载资料、教师可对下载的资料评论与收藏、校长对查看资源下载量,可将这些用户做的事抽象为搜索资源、下载资源、评论资源、收藏资源等功能点,并将这些功能以用例形式来呈现。最后,是将识别出的参与者分配到用例身上,同时分析用例的包含及扩展关系,最终形成用例图。 细化用例描述是以编写用例文档的形式来体现的。在合并需求获得用例后,接着就要是编写用例描述文档。要编写一个合格的用例说明文档,首要的是定义一个清晰的用例模板,它是为一个给定项目的所有人员定义了用例规约的结果。因此在定义用例模板时,我们将收集的模板实例与用例图详细程度进行了融合分析后,确定了描述用例的模板结构。包括了:用例名、参与者、目标、前置条件、事件流和后置条件等描述项。在编写用例文档的过程中,较有难度是事件流的描述,它是指当参与者和系统试图达到一个目标时所发生的一系列活动,因此要从俯视的角度来编写,指出参与者的动作,以及系统的响应。另外,在编写用例文档时,我们对用例进行了非功能性的需求分析,确定一些性能指标、可用性指标、安全性指标等。编写用例文档是用例分析中的最耗时的工作,因此我们对该进行的适度的简化,只针对于重要、复杂的用例进行编写,这样提高工作效率也不影响质量。 在历经了7个月的开发,“*校通”的升级产品于在2017年10月上线。上线之后我们通过调查问卷、热力图分析与市场的销售的反馈,得了用户的一致好评。正是选择符合实际的需求分析方法,使产品升级的需求正确性得到了保障。通过此次产品升级开发,使我对于面向对象分析方法使用有了更深刻的认识,其核心思想是对问题域进行分析和理解,正确认识其中的事物及它们之间的关系,通过建立用例模型将需求立体化,使需求描述更加的真实。正是此次开发工作,让我对需求分析的过程,有更多知识储备与积累了可贵的经验,对我今后的工作有很大帮助。 此文出自某考生 |
|