如何理解和识别系统需求?
2962字,阅读需时10分钟

在前面的课程中,已经了解了结构化开发方法和面向对象的开发方法,并且学习了分析和设计阶段的活动以及这些阶段的每一项活动的目标。从这节课开始,我们将结合人脉项目,讨论在分析阶段使用的技巧及有关任务。分析阶段有两个关键任务,分别是识别系统需求和根据系统需求为系统建立需求模型。

一般说来,负责开发软件项目的项目经理或系统分析员,需要尽可能地了解软件项目涉及的业务活动细节,这是因为只有熟悉了项目的业务活动细节,才能确保系统完全满足业务需求。例如,人脉项目是社交类项目,社交涉及的业务活动都需要熟悉和了解。如微信是主要的社交软件,只有了解微信的分享、微信公众号等业务功能,才能实现人脉项目与微信的互动。

功能和技术需求

系统分析阶段要做的主要工作就是确定系统需求。系统需求是新系统必须要完成的功能,在《人脉项目技术要求》任务说明书中已经给出了系统的功能范畴。在系统分析阶段,项目经理或系统分析员需要详细地定义和描述这些功能,换句话说,项目经理或系统分析员要把这些高层功能分解为详细的系统需求。一般而言,系统需求分为功能需求和技术需求两类。

功能需求是系统必须完成的活动,功能需求直接来自项目招标书、任务说明书、项目合同书等确定的系统功能。例如,在《人脉项目技术要求》任务说明书中规定了项目要实现这样一些功能:支持人脉资料的自动识别、批量导入和手动录入、支持人脉资料的管理和分类、支持构建人脉网络结构等等。这些都是人脉项目要实现的功能,确定和描述所有这些功能需要花费大量的时间和精力,给功能需求建模是理解功能需求最好的方式。

技术需求是描述软件运行环境和性能目标的系统需求。例如在《人脉项目技术要求》任务说明书中,要求人脉项目支持Windows和Linux平台、支持的移动终端为Android平台和iOS平台、用户访问系统并完成操作的响应时间一般控制在5秒以内等等,这些都是技术需求。

对于新系统的完整定义,功能需求和技术需求是必不可少的。这两种系统需求都包含在系统需求调查中,功能需求通常记载在已建立的分析模型中,技术需求则通常记载在技术需求的叙述性描述里。

系统相关者

系统功能需求的主要来源是新系统的各种系统相关者。系统相关者是对系统感兴趣的人。系统相关者有三类,一是类是使用系统的人,这类人也称为用户;二是购买和拥有系统的人,这类人也称为客户;三是确保系统运行的维护人员,这类人也称为技术人员。

  image.png                                        

图 1 人脉项目系统相关者

用户是使用系统处理日常事务的人,用户在使用系统时可能会处于不同的角色,不同角色的用户对系统会有不同的需求。例如在库存管理系统中,会涉及到生产部门、进货部门、仓库和销售部门,每个部门的工作人员对系统的需求都会不同。因此在调查系统需求时,必须要确保这些部门的每个人都讲述了自己的需求。

在人脉系统中,如图1所示。用户分为商务用户、普通用户、学生用户、职业用户、客户和技术人员。商务用户会有维护客户关系、拓展客户的需求;普通用户可能就是单纯记录通讯资料的需求;学生用户更注重于社交资料的真实性、个性化数字名片、校园社交等需求;职业用户包括公务员、医生、律师、科技工作者等用户,这类用户会有社交圈、分享等需求。

客户是为系统提供资金的人和组织。客户可能是项目招标方、购买系统的个人和组织、制定项目的公司管理层等。把客户包括在系统相关者列表中,是因为项目开发小组必须在项目的整个开发过程中,始终向客户提供项目进展的概要情况。

技术人员并不是真正的用户,但他们是技术需求的来源。技术人员包括系统研发人员和维护系统运行的人员。技术人员会在编程语言、技术体系、计算机平台和其它设备方面对项目提供帮助。

如何识别系统需求?

在系统开发中分析阶段的目标就是要理解项目涉及的业务流程和定义系统需求。理解一个新系统的业务流程,最好的方法就是做好系统相关者的需求调查。也可以通过确定类似系统的业务流程和活动,来推断出新系统的业务流程和系统需求。类似的系统可以是原有的系统,也可以是第三方公司的产品。

image.png

图 2  识别系统需求的方法

在进行系统分析时,项目经理或系统分析员首先要问的问题是:我需要收集哪方面的信息?通常情况下,调查系统需求主要是获取能够建立新系统逻辑模型的信息。开展系统需求调查可以从三个问题入手:

项目涉及的业务过程和活动是什么?也就是提问用户“你要干什么”?

业务过程和活动该怎样完成?也就是提问用户“你准备怎么完成它”或“需要哪些步骤”?

  需求信息是什么?也就是提问用户“为了实现这些业务过程,你需要哪些信息”?

第一个问题“你要干什么”。是从用户的角度来理解系统要完成的功能。在大多数情况下,用户会从已知的系统或者自身的需求来作出回答。作为项目经理或系统分析员需要从用户的回答中仔细辨别出用户提出的功能,哪些功能是重要的,哪些功能是需要保留的,哪些功能是需要删除的。例如,人脉项目的商务用户可能希望在节假日给选定的客户自动发送贺卡等。

第二个问题是“你准备怎么完成它?”。从用户的角度描述完成功能的步骤。例如在自动发送贺卡功能中,用户可能希望首先选定要自动发送的客户,然后设定发送的时间,再设置贺卡模板,输入贺卡内容,最后系统在设定的时间自动发送贺卡。

第三个问题是针对第一个和第二个问题的。用户提出了新系统的功能和完成步骤后,项目经理和系统分析员需要确定要给系统提供哪些信息来完成这些功能。

第一个问题和第二个问题用于确定新系统的功能及完成步骤,第三个问题给出了描述第一个问题和第二个问题的具体信息。对这三个问题的回答定义了系统需求的基础。作为一个项目经理或系统分析员,理解用户需求并建立需求模型是最重要的能力之一。

调查系统需求时也可以遵循一些已经证明行之有效的方法,这些方法往往被项目经理和系统分析员组合起来使用,提高了系统分析的效率,这些方法可以广泛地用于不同规模的软件项目开发中。下面列出了这些方法:

向系统相关者分发和收集调查表

复查现有报表、表格或过程描述

主持与用户的面谈和讨论

观察类似系统的过程和工作流

建立新系统原型

在后面的课程中会介绍如何使用这些方法。

总结回顾

1、系统需求主要由功能需求和技术需求组成。功能需求是系统必须完成的活动。项目招标书、任务说明书、项目合同书等确定了系统的功能范畴。在分析阶段,项目经理或系统分析员要把这些高层功能分解为详细的功能需求;技术需求是描述软件运行环境和性能目标的系统需求,例如系统的性能指标等。

2、系统功能需求的主要来源是新系统的各种系统相关者。系统相关者是对系统感兴趣的人。如使用系统的用户、购买或给系统提供资金的客户、技术人员等。

3、识别新系统需求最好的方法是做好系统相关者的需求调查,调查系统相关者的方法有向系统相关者分发和收集调查表、复查现有报表、表格或过程描述、主持与用户的面谈和讨论。也可以通过确定类似系统的业务流程和活动,来推断出新系统的业务流程和系统需求。

课后练习

1、功能需求和技术需求之间有什么区别?

2、系统相关者主要包括哪些人员?

3、调查系统需求可以使用哪些行之有效的方法?

我要评论
全部评论
郎宏林
授课老师
授课老师简介
项目经理,系统分析和架构师,从事多年中文信息处理技术。熟悉项目管理、擅长项目需求分析和设计、精通Java、C#、Python等编程语言。
下载APP

手机、电脑同步学

用微信或手机浏览器扫描二维码,即可下载APP。

  • 备案号:鲁ICP备15001146号
  • @1997-2018 潍坊米粒花网络技术有限公司版权所有