前面我一直在反复强调这样一个观点,需求分析不是一蹴而就的,是一个反复迭代的过程。它将从第一次需求分析开始,一直持续到整个项目生命周期。为什么这样说呢?让我们一起来分析分析。
在第一次的需求分析阶段,我们在一段时期内需要与客户进行反复地讨论,这个过程往往是这样一个反复循环的过程:需求捕获->需求整理->需求验证->再需求捕获••••••
需求捕获,就是我们与客户在一起开研讨会,讨论需求的活动。客户可能会描述他们的业务流程,这时我们在纸上绘制简单的流程草图,及时地记录下来;客户在描述业务的同时,可能会反复提到一些业务名词,详细询问这些名词的含义,以及它们与其它名词的关系,用类图或者对象图绘制简单的草图;客户在描述业务的同时,还会提出今后的软件希望实现的功能,如能够展示某个报表、能够导出文件,以需求列表的形式记录下来。一个功能,在需求列表中会有多个需求,而每个需求应当能够用1、2句话,在20个字以内就可以描述清楚。需求列表是客户提出的最最原始的需求,他不掺杂任何分析设计,是我们的每项功能必须实现的内容。需求列表是需求验证以及日后的用户验收测试的依据,不论我们今后如何分析和设计这些功能,都要能如实地实现这个列表中提出的需求。(需求列表应当如何编写,将在后面的章节详细描述。)
需求整理,就是在需求研讨会后,需求分析人员对研讨内容的分析和整理的过程。首先,需求分析人员应当通过用例模型,划分整个系统的功能模块,以及各个模块的业务流程。用例模型分析是一个由粗到细的过程,这样一个过程也是符合人类认识世界的思维习惯的一个过程。最先,我们应当对整个系统绘制用例图,设计用例场景,并依次对这些用例进行用例描述、流程分析、角色分析等分析过程。当然,在整体用例分析的同时,我们还应当进行一个整体的角色分析,绘制一个角色分析图,进行一个流程分析,绘制一个流程分析图(可以是传统的流程图、UML中的行动图,甚至一个简单的示意图,等等)。
然后,我们再在整体用例图的基础上,依次对每个用例绘制用例图。每个用例图中,会更细致地划分出多个用例,并依次进行用例描述、流程分析、角色分析等分析工作。如此这般地不断细化,直到我们认为需求已经描述清楚为止。
在一个系统中,用例需要细化几次,是由这个用例的业务复杂程度决定的。对于一个简单的用例,只需要细化一次就够了;而对于比较复杂的用例,则需要细化2~3次,甚至更多。
用例分析的过程,之所以称之为分析,它掺入了很多需求分析人员对业务的理解与设计:模块如何划分、流程如何设计、业务如何转换,等等。用例分析,还需要让需求分析员与架构师、设计师等技术人员共同协作来完成,因为用例分析还包含对业务需求的技术可行性分析。只有一份可行的需求分析,才能为后续的设计开发扫清障碍,有效降低项目风险。最后,需求分析员应当将需求列表中的内容,逐一地与用例进行核对,以避免分析人员忽略用户的某项业务需求。(后面将详细描述用例模型的搭建过程。)
在用例分析的同时,需求分析人员还需要对业务中的相关事物,制作领域模型。领域模型,是对用户业务领域中相关事物、相互关系、相互行为操作的描述,它是以对象图和类图的形式表达的。需求人员对领域模型的分析,对业务理解的深度,对日后软件的设计,以及软件的功能扩展、升级演化,都起到了至关重要的作用。(后面将更加详细地讲述领域模型。)
最后,当我们完成了一系列的分析整理并形成文档以后,应当对及时地与客户进行反馈,确认我们的理解是否正确,也就是需求验证工作。需求验证工作应当贯穿整个研发周期,并且在不同时期表现出不同的形式。首先,在需求分析阶段,需求验证工作表现为对需求理解是否正确的信息反馈。需求分析人员与客户再次坐在一起,一项一项描述我们对需求的整理和理解,客户则时不时地对一些问题进行纠正,或者更加深入地加以描述。我们则认真地记录,回来整理,并等待下一次的验证。在需求分析后期,我们还可以制作一些简单的原型,更加形象地描述我们对需求的理解,会使我们与客户的沟通更加顺畅。随后的设计开发阶段,我们则应当以迭代开发的形式进行。每开发完一个迭代周期,将开发的成果与客户反馈。这样做的结果是,客户可以及时地提出我们对需求理解的偏差,或者及时提出对我们设计不满意的地方,使我们存在的问题得到及时地发现与解决。问题及时的解决,使我们修复问题的代价得以降至最小。之后,当开发进入到验收测试阶段,我们则是与客户一道,一项一项地验证我们的软件是否满足需求列表中要求的业务需求。最后,当软件迎来下一次升级开发时,我们将开启另一次轮回。
因此,需求分析就是按照这样的过程,每次多理解一些,再多理解一些,更多理解一些,逐渐深入的过程。每深入一步,我们的软件就更接近客户的满意。
我们应当怎样做需求分析
我们应当怎样做需求调研:初识
我们应当怎样做需求调研:拜访
我们应当怎样做需求调研:研讨会
我们应当怎样做需求调研:需求研讨
我们应当怎样做需求调研:迭代
我们应当怎样做需求调研:需求捕获(上)
我们应当怎样做需求调研:需求捕获(下)
我们应当怎样做需求分析:功能角色分析与用例图
我们应当怎样做需求分析:业务流程分析(上)
我们应当怎样做需求分析:业务流程分析(下)
我们应当怎样做需求分析:用例说明
我们应当怎样做需求分析:查询报表分析
我们应当怎样做需求分析:子用例与扩展用例
我们应当怎样做需求分析:行动图和状态图
我们应当怎样做需求分析:业务领域分析
我们应当怎样做需求分析:原文分析法
我们应当怎样做需求分析:领域驱动设计
我们应当怎样做需求分析:非功能需求
我们应当怎样做需求确认:需求列表
我们应当怎样做需求确认:一个需求列表的实例
我们应当怎样做需求确认:快速原型法
我们应当怎样做需求确认:需求规格说明书
我们应当怎样做需求确认:评审与签字确认会
(续)
分享到:
相关推荐
我们应当怎样做需求调研:迭代 10 我们应当怎样做需求调研:需求捕获 12 我们应当怎样做需求分析:功能角色分析与用例图 15 我们应当怎样做需求分析:业务流程分析 18 我们应当怎样做需求分析:用例说明 21 我们应当...
《软件需求调研规范》是一份旨在规范软件项目需求调研流程的文档,其内容涵盖了从编制目的到需求提交的详细步骤和原则。以下是根据文档内容提炼出的知识点: 1. 编制目的 编制目的部分没有给出具体内容,但可以推断...
在软件开发过程中,需求调研是至关重要的第一步,它为项目的成功奠定了坚实的基础。本文档将详细阐述软件项目需求调研的方法论,旨在提供一套系统化的流程和策略,帮助项目团队更有效地理解和收集用户需求。 1. ...
《需求调研计划》是软件开发或信息系统建设过程中的重要文档,它为项目的成功奠定了坚实的基础。这份由XXXX有限公司编写的计划旨在明确项目需求,确保所有相关人员对项目目标和实施路径有清晰的理解。以下是对该计划...
接下来,我们将详细探讨2021最新产品需求模板系列中的需求调研确认模板,分析其关键步骤,并提供应用这一模板的有效方法。 首先,我们要明确需求调研确认书编号的重要作用。编号制度不仅为每一个需求确认过程提供了...
【花椒直播页 VS 映客直播页功能点调研】 本次调研旨在通过对比花椒直播和映客直播这两款产品的主要页面...在实际应用中,产品设计者应当结合用户数据和市场反馈,不断迭代优化,以适应不断变化的用户需求和市场环境。
- **没有最好,只有最适合**:企业在选择技术方案时,应当根据自身的实际情况和需求来做出最佳选择。 - **让AI实现自动化的要素**:除了技术本身,还包括组织架构的调整、员工培训等因素,这些都是实现AI自动化的...
【需求分析调研方案】 需求分析调研是IT项目中至关重要的一步,它涉及到对客户业务的深入理解和优化。这个过程是一个迭代、逐步深化的过程,旨在确保最终解决方案能够贴合实际业务需求,提高效率并解决问题。 首先...
1. **功能与实现分离**:规格说明应该描述“做什么”,而非“怎么做”。 2. **认知模型**:规格说明应作为一个认知模型,而非设计或实现模型。 3. **面向处理的语言**:使用面向处理的规格说明语言。 4. **系统上...
2. 课程内容应当适应产业升级的需求,特别是考虑多学科融合和企业实际需求,增加课程的系统性和针对性。企业对复合型人才的需求强烈,课程体系的设计和开发应与企业的需求紧密结合,从而缩短学生从校园到职场的过渡...
通过深入的市场需求调研,教育机构和学生可以明确人才培养和自我提升的方向,从而更好地应对未来的挑战。计算机平面设计专业人才将在广告创意、媒体传播、电商营销、影视制作等多个领域发挥重要作用。因此,不断提升...
- **流程图**:应当包含所有关键活动、角色职责以及工作产品的详细信息,并考虑到可能的迭代过程。 #### 四、考虑其他支持活动 在定制需求开发流程时,还需考虑其他支持活动,如质量管理(SQA)、配置管理(SCM)...
在这个过程中,我们需要对每个网站的具体需求进行深入理解和详细规划。以下是对"12个网站需求分析报告"中可能涉及的知识点的详细说明: 1. **需求识别**:在开始分析前,首要任务是明确每个网站的目标群体、业务...
### 学生管理系统需求...通过细致的需求调研和合理的功能模块划分,可以构建出既符合学校实际需求又易于操作的高效信息平台。未来,随着教育技术的不断进步,此类系统也将持续迭代升级,为教育信息化贡献更大的力量。
**需求描述**应当详细说明需求的来源、涉及的部门、岗位、菜单、使用频率、预期完成日期和期望交期。此外,**核心价值**部分应明确需求实施后可能带来的效益,如效率提升、成本降低等。 **需求类型**的分类有助于...
在立项阶段,需求经过初步筛选,形成产品路线图,如A类需求(关键需求)、B类需求(重要需求)和C类需求(次要需求),以及技术发展类需求。在开发阶段,需求被进一步细化并纳入项目范围。在发布阶段,需求的实现...
需求开发是一个迭代的过程,主要包括以下几个阶段: 1. **需求收集**:通过各种方式收集用户需求。 2. **需求分析**:对收集到的需求进行分析,确定其可行性及优先级。 3. **需求定义**:明确定义软件系统需要实现...
复盘时发现,缺乏数据支持或基于个人主观判断的需求往往更容易失败,因此产品经理应当提高数据分析和用户调研在决策中的权重。 第三,明确需求的目的对于复盘来说也十分关键。需求的目的可能包括提升核心数据、优化...
### 开源工具调研报告 ...这些工具不仅能满足企业对数据处理的基本需求,还能够通过不断的迭代升级来适应不断变化的技术环境和业务需求。对于寻求成本效益最大化的企业而言,开源BI工具无疑是一个值得考虑的选择。