软件开发需求分析怎么做
- 格式:doc
- 大小:38.00 KB
- 文档页数:11
软件工程--需求分析软件工程需求分析在软件工程的领域中,需求分析是整个项目开发过程中至关重要的环节。
它就像是一座大厦的基石,如果基石不稳,整座大厦都可能摇摇欲坠。
简单来说,需求分析就是要弄清楚软件需要做什么,为谁而做,以及要达到什么样的效果。
需求分析的第一步,是明确软件的目标用户群体。
比如说,我们要开发一个在线学习平台,是面向小学生、中学生还是大学生?是为了提供课程辅导,还是为了培养兴趣爱好?不同的用户群体有着不同的需求和使用习惯。
如果把这个平台定位为小学生使用,那么界面就需要简洁明了、色彩鲜艳,操作要简单易懂;如果是面向大学生,可能就需要更多的专业课程资源和深入的学习功能。
接下来,要深入了解用户的具体需求。
这可不是简单地问问用户想要什么就行了,而是要通过各种方法去挖掘他们潜在的、真正的需求。
比如,可以进行用户访谈,和他们面对面交流,了解他们在学习过程中的痛点和期望;也可以进行问卷调查,收集大量的数据进行分析;还可以观察用户在现有类似平台上的行为,从中发现问题和改进的方向。
举个例子,如果我们要开发一个购物软件,用户可能会说希望能快速找到想要的商品,这只是表面需求。
进一步挖掘,我们会发现他们其实更希望有精准的搜索功能、个性化的推荐,以及清晰的商品分类和详细的商品信息。
这些才是用户真正关心的,也是我们在需求分析中要重点关注的。
在需求分析中,还需要考虑软件的使用场景。
是在移动端使用,还是在电脑端?是在有网络的环境下,还是离线也能使用?不同的使用场景会对软件的功能和性能产生不同的要求。
比如,一个在户外使用的地图导航软件,就需要具备离线使用的功能,并且要能快速定位和加载地图。
同时,要明确软件需要具备哪些功能。
这包括基本功能和扩展功能。
以一个社交软件为例,基本功能可能是添加好友、发送消息、分享动态等;扩展功能可能是群组聊天、视频通话、直播等。
在确定功能时,要权衡功能的必要性和实现的难度,不能一味追求功能的丰富而忽略了项目的可行性和成本。
软件需求分析方法软件需求分析是软件开发过程中的重要环节,它通过系统化的方法和工具,对用户需求进行分析和抽象,将用户需求转换为软件需求规格说明书,为软件开发提供明确的目标和方向。
在软件需求分析过程中,一些常用的方法有以下几种:1. 需求采集:需求采集是软件需求分析的起点,它主要通过与用户的沟通和访谈,收集用户的需求。
在需求采集过程中,可以采用面对面的交谈、问卷调查、观察等方法,以确保准确获取用户的需求。
采集的需求可以分为功能性需求和非功能性需求,并采用需求列表、用例图、用户故事等形式进行记录和整理。
2. 需求分析:需求分析是将采集来的需求进行分析和抽象的过程。
在需求分析过程中,可以采用功能分解、数据流图、状态图等方法,以将需要系统实现的功能分解为更具体的模块或子功能,并进行详细的描述和定义。
同时,对用户需求进行可行性分析,确定是否能够实现用户需求,并考虑软件系统的可靠性、可扩展性等方面。
3. 需求建模:需求建模是将需求进行进一步抽象和整理的过程。
在需求建模过程中,可以使用UML(统一建模语言)等工具,采用用例图、活动图、类图等方式对系统的需求进行建模和描述。
用例图描述了系统与外界的交互,活动图描述了系统的流程和交互,类图描述了系统中各个类之间的关系。
4. 需求验证:需求验证是验证需求的正确性和完整性的过程。
在需求验证过程中,可以采用原型演示、模拟测试、用户验收测试等方法,以验证需求是否满足用户的期望,并及时发现和纠正需求中的问题和缺陷。
5. 需求管理:需求管理是对需求进行跟踪和管理的过程,以确保软件开发的目标和进度。
需求管理包括需求变更管理、版本管理和配置管理等方面。
需求变更管理是管理需求变更的过程,包括需求审批、变更需求分析和实施变更等环节。
版本管理是管理需求版本的过程,包括需求的版本控制、变更追踪和回归测试等环节。
配置管理是管理需求配置的过程,包括需求管理工具的选择和配置、需求跟踪和跟踪需求变更等环节。
如何进行软件需求分析软件需求分析是软件开发过程中的关键步骤之一,它对于确保软件项目成功实施至关重要。
本文将介绍软件需求分析的步骤、方法和技巧,以帮助读者深入了解如何进行软件需求分析。
一、引言在软件开发过程中,软件需求分析是一个关键环节。
它帮助开发团队准确理解客户需求,并确保软件功能、性能以及用户体验满足客户的期望。
因此,正确进行软件需求分析对于项目的成功实施至关重要。
二、需求收集需求收集是软件需求分析的第一步。
在这个阶段,分析师与客户进行沟通交流,了解客户需求、期望以及业务流程等信息。
常用的需求收集方法包括面谈、问卷调查、焦点小组讨论等。
根据需要,可以采用单一或多种方式来收集需求信息。
三、需求整理与分类在需求收集完毕后,分析师需要对收集到的需求进行整理和分类。
这一步骤的目的是将收集到的需求按照不同的维度进行归类,以便更好地理解和处理各类需求。
常见的需求分类包括功能需求、非功能需求、用户需求、系统需求等。
四、需求分析与建模需求分析与建模是软件需求分析的核心步骤。
在这个阶段,分析师需要详细分析并理解需求。
可以利用工具和技术如数据流图、用例图、状态转换图等来进行需求建模,以帮助分析师更好地理解需求,并形成一致的需求规格说明。
五、需求验证与确认需求验证与确认是确保需求规格说明的正确性和完整性的一个重要步骤。
在这个阶段,分析师与客户共同审查需求规格说明,确保其准确地描述了客户的需求,并没有遗漏或错误的信息。
如果发现问题,及时进行修正和调整,直至最终确认。
六、需求管理与变更控制需求管理与变更控制是软件需求分析的最后一步。
在软件开发过程中,需求往往会发生变更。
因此,需要建立一套合理的需求管理与变更控制机制,以确保在变更过程中不对软件项目的进度、质量和预算产生过大的影响。
七、总结软件需求分析是软件开发过程中至关重要的一个环节。
正确进行软件需求分析可以帮助开发团队更好地理解客户需求,确保软件项目成功实施。
在进行软件需求分析时,需要遵循一系列的步骤和方法,包括需求收集、需求整理与分类、需求分析与建模、需求验证与确认以及需求管理与变更控制等。
软件开发中的需求分析一、用户需求收集需求分析的首要步骤是收集用户需求。
这通常通过问卷调查、用户访谈、焦点小组、用户观察、原型测试等多种方式进行。
在这一阶段,我们需要确保与所有利益相关者(包括最终用户、项目经理、开发人员等)进行充分的沟通,以便了解他们对软件系统的期望和需求。
二、业务目标明确在收集到用户需求后,接下来需要明确业务目标。
这包括理解项目的商业价值和目的,以及软件如何支持这些目标和价值。
通过明确业务目标,我们可以确保软件开发工作始终围绕项目的核心需求进行。
三、功能需求分析功能需求分析是确定软件应提供哪些功能的过程。
这需要对用户需求进行深入分析,将其转化为具体的功能需求。
功能需求通常包括数据输入、数据处理、数据输出、用户界面、系统安全等方面的要求。
四、非功能需求分析除了功能需求外,非功能需求也是需求分析的重要组成部分。
非功能需求包括性能需求(如响应时间、吞吐量等)、可用性需求(如易用性、可访问性等)、可靠性需求(如故障恢复、数据完整性等)以及可维护性和可扩展性需求等。
五、数据需求解析数据需求解析是确定软件系统中所需的数据类型、数据结构、数据存储和数据流等的过程。
这需要对业务数据进行详细分析,以确保软件能够正确地处理和管理这些数据。
六、系统性能要求系统性能要求是确定软件系统应达到的性能标准的过程。
这包括响应时间、吞吐量、并发用户数、资源利用率等方面的要求。
系统性能要求应根据业务需求和非功能需求进行设定,并作为后续系统设计和开发的重要参考。
七、约束条件分析约束条件分析是识别和分析影响软件开发的各种约束条件的过程。
这些约束条件可能包括技术约束(如使用的技术栈、平台兼容性等)、时间约束(如项目交付时间等)、成本约束(如预算限制等)以及政策和法规约束等。
通过约束条件分析,我们可以确保软件开发工作在满足需求的同时,也符合各种限制和要求。
八、交互与界面需求交互与界面需求是确定软件系统与用户进行交互的方式和界面的过程。
需求分析是软件开发过程中非常重要的环节,以下是一些做好需求分析的方法:
1、充分了解用户需求:要了解用户的需求和期望,采取多种形式的沟通,如面对面交流、问卷调查、用户访谈等。
2、制定需求规格说明书:将收集到的需求整理成需求规格说明书,详细描述需求,规定需求的优先级和实现方式。
3、识别和分析需求:使用各种方法,如用例分析、数据流图等,对需求进行识别和分析,确定需求的重要性、可行性、稳定性等。
4、确定需求变更流程:对需求变更进行管理,规定变更流程,确定变更的影响范围和变更后的需求规格说明书。
5、与用户保持沟通:需求分析是一个持续的过程,需要与用户保持沟通,及时了解用户的反馈和变更意见。
6、需求评审:在需求分析的过程中,要组织专业人员进行需求评审,对需求进行审核和确认,保证需求的合理性和可行性。
以上是一些做好需求分析的方法,需求分析是软件开发过程中最关键的环节之一,做好需求分析可以有效地降低后期开发的风险和成本。
软件需求分析软件需求分析是系统开发过程中的重要环节。
它是指对用户需求进行分析和理解,然后将其转化为可执行的软件需求规格。
软件需求分析的目标是明确软件系统的功能、性能、可靠性、安全性等方面的要求,以便指导软件设计、编码和测试。
以下是软件需求分析的步骤:1. 确定需求的来源和范围:需求可以来自于用户、管理层、市场分析等不同方面,需求的范围可以是整个系统,也可以是系统的一个模块或功能。
2. 收集需求信息:与用户、管理人员、开发人员进行沟通,了解他们的需求和期望。
使用各种技术手段收集和整理需求信息,如面谈、问卷调查、文档分析等。
3. 定义需求:将收集到的需求信息进行整理和分类,并以明确的方式描述出来,如用案例、用例图、需求规格说明书等。
4. 分析需求:对需求进行分析,理解用户的真正需求背后的目标和意图。
分清主次需求,确定需求的优先级和紧急程度。
5. 验证需求:与用户进行验收,确保需求的准确性、完整性、一致性和可行性。
通过原型设计、模拟演示等方式与用户进行互动。
6. 管理需求变更:需求是动态的,可能会随着项目的推进而发生变化。
需要建立一套有效的变更控制机制,及时识别和管理需求变更。
7. 文档化需求:将需求整理为文档形式,包括需求规格说明书、用例文档、用户故事等。
确保需求的清晰可理解,以便于后续的开发和测试工作。
软件需求分析是系统开发过程中非常重要的一环,它直接影响着后续系统的设计、开发和测试工作。
只有明确、准确、全面的需求分析,才能确保最终开发出满足用户期望的软件系统。
如何进行软件开发项目的需求分析需求分析是软件开发项目中非常重要的一环。
只有对项目需求进行深入全面的分析,才能确保开发出满足用户需求的软件产品。
本文将介绍软件开发项目的需求分析过程以及一些有效的方法和技巧。
一、需求分析的重要性需求分析是软件开发项目的第一步,它的目的是明确项目的目标和范围,理解用户的需求和期望。
只有在需求分析阶段充分沟通和理解用户需求,才能避免日后的问题和纠纷。
需求分析不仅有助于确保软件功能的准确性和完整性,还可以节省后续开发和测试中的时间和成本。
二、需求分析的步骤1. 确定项目目标和范围需求分析的第一步是明确项目的目标和范围。
项目目标是指开发的软件产品应该实现的具体功能和效果,而项目范围则涉及到软件的功能模块、用户群体以及技术要求等方面。
在确定目标和范围时,可以与客户和团队成员进行深入的讨论和协商,从而达成一致。
2. 收集用户需求收集用户需求是需求分析的核心环节。
可以通过面对面的访谈、问卷调查、文档分析等多种方式来获取用户的需求。
在这个过程中,需要与用户进行充分的沟通和交流,确保对用户需求的理解准确无误。
3. 分析和整理需求在收集到用户需求后,需要进行分析和整理。
这一步骤的目的是将收集到的需求进行分类和归纳,形成一份清晰明了的需求文档。
需求文档应包含需求的详细描述、优先级和可行性评估等内容。
4. 验证需求需求分析的最后一步是验证需求的准确性和完整性。
可以通过与用户进行反复确认、原型演示、用例测试等方式来确保需求的正确性。
只有在验证通过后,才能进入后续的设计和开发阶段。
三、需求分析的方法和技巧1. 使用适当的工具需求分析过程中可以借助一些工具来提高效率。
例如,可以使用原型设计工具来创建软件的交互原型,以便更好地展示和沟通需求;还可以使用需求管理工具来协同管理和跟踪需求的变更和进展情况。
2. 进行用户调研在需求分析过程中,进行用户调研是非常重要的。
通过与用户的面对面交流,可以更深入地了解他们的需求和期望,从而准确把握软件的功能和界面设计方向。
软件开发中的需求分析技巧软件开发是当今信息技术领域的一个重要行业,它提供了各种各样的解决方案,能够帮助我们解决许多现实中的问题。
但是,要做好软件开发工作,必须要从需求分析开始,因为需求分析是软件开发过程中最重要的一步。
本文将介绍一些软件开发中的需求分析技巧,以帮助软件开发人员更好地理解和实践这一步骤。
一、确定需求首先,确定需求是需求分析中最基础的一步骤。
在确定需求时,我们需要考虑哪些问题才能确保得到准确的需求呢?首先,我们需要确保与客户进行合适的沟通,以获取他们的需求,而不是仅仅根据我们自己的理解进行开发。
其次,要清晰明确的定义需求,以避免模糊不清或者有歧义的情况。
最后,需求必须是可验证的,这样可以确保软件开发人员能够正确地工作,并且满足客户的要求。
二、需求规范化需求规范化是将客户的需求转换为可行的规范化文档的过程。
规范化对于开发人员非常重要,它能确保软件开发人员明确地理解到客户的需求。
需求规范化的过程非常复杂,需要考虑各种各样的因素,比如需求软硬件环境、可靠性、安全性、性能等。
在需求规范化的过程中,需要将客户的需求翻译成可执行的计划,以提高软件开发效率。
三、需求分解需求分解是将复杂的需求拆解为多个更简单可行的需求的过程,以达到更好的管理和实现。
在需求分解过程中,将需求分为几个不同的部分,这些部分通常被称为子需求或实现功能。
通过需求分解,我们可以更好地管理需求,同时也可以减少需求之间的耦合问题。
四、需求追踪需求追踪是满足软件开发过程中一种特殊的需求,即定义各个需求之间的关系以及如何验证一个完整的需求。
在开发软件时,通常会有许多不同的需求,这些需求之间会存在许多复杂的关系。
因此,在需求追踪过程中,我们必须保证清晰明确地跟踪所有的需求,并且维护它们之间的关系,以确保开发的整个软件系统满足客户的需求。
五、需求变更管理需求变更是任何开发过程中都可能发生的事情。
由于客户往往无法预见所有的问题,因此,他们不得不在开发过程中反复修改需求。
如何进行软件需求分析在进行软件开发过程中,软件需求分析是至关重要的一步。
它是为了确保软件开发团队完全理解项目的需求和目标,并能够准确地满足用户和客户的需求。
本文将介绍如何进行软件需求分析,并提供一些有效的方法和工具来帮助您在此过程中取得成功。
1. 确定需求参与者在软件需求分析过程中,首先要确定各个需求参与者,包括系统管理员、最终用户、开发团队成员等。
每个参与者在软件开发过程中都有不同的利益和需求,因此了解他们的需求对于设计一个成功的软件系统至关重要。
2. 收集需求在收集需求之前,需要明确主要的需求源,例如用户调查、市场调研、竞争分析等。
接着,可以使用各种技术和方法来收集需求,例如:2.1 用户访谈:直接与用户交谈,了解他们的需求和期望。
2.2 观察方法:观察用户在真实环境中使用类似软件的方式和习惯。
2.3 文档分析:分析类似软件的文档,查找相关需求和规定。
2.4 需求工作坊:组织一些小组会议,让各个参与者一起讨论需求并达成一致。
3. 定义需求在收集到足够的需求后,需要对其进行整理和归类,并将它们转化为明确、具体、可衡量和可跟踪的需求。
这些需求应包括功能需求、性能需求、可用性需求、安全性需求等。
此外,还需要确定需求的优先级和稳定性,以帮助开发团队确定开发的重点和进度。
4. 需求验证需求验证是确保需求准确、完整和可验证的过程。
在这个阶段,可以使用以下方法来验证需求:4.1 原型开发:创建一个原型,让用户和客户评审和测试,以确保需求的准确性和满足度。
4.2 需求审查:邀请各个参与者对需求文档进行审查和评审,以寻找潜在的问题和遗漏。
4.3 验收测试:在软件开发过程的最后阶段,对已实现的软件系统进行验收测试,以确保满足最初定义的需求。
5. 需求管理需求管理是在软件开发过程中跟踪和控制需求变更的过程。
在需求分析阶段,往往会出现需求的变更和添加。
为了避免开发团队在需求变更过程中失去重点和进度,需要进行有效的需求管理,包括需求的变更评估和影响分析、变更记录和跟踪等。
软件需求分析的流程与方法软件需求分析是软件开发过程中最关键、最复杂的部分之一。
例如,一款软件可能包含数百项功能,而不同的用户和使用场景会对这些功能产生不同的要求,这就需要对需求进行详细的分析和梳理,才能确保软件具有足够的可用性和可靠性。
本文将介绍软件需求分析的一般流程和常用方法。
一、需求收集和分析要进行有效的软件需求分析,首先需要收集和梳理用户的需求。
一般来说,这涉及到以下几方面:1. 调研用户通过面对面交流、问卷调查或小组讨论等方式,了解用户的实际需求,包括他们的使用场景、行为习惯、期望功能等。
这些数据对于后续的需求分析和设计非常重要。
2. 定义用户故事用户故事是以用户的角度描述软件的功能和价值。
通过定义一系列用户故事,可以梳理出软件的主要功能和用户想要解决的问题。
3. 制定原型原型是一种演示软件功能和界面的模型。
通过原型,可以直观地展示软件的设计和实现,以吸引用户对软件的认可和反馈。
二、需求规划和描述在进行了前期的用户需求收集和分析后,需要将这些需求进一步加工排版,确定如何进行软件开发和实现的步骤。
一般来说,这包括以下步骤:1. 定义功能列表在这一步中,需要将前面收集和分析到的用户需求转化为一个具体的功能列表,将每个需求点作为一个功能项进行描述,以便后续的开发能够基于该列表进行。
2. 分解需求在软件开发中,不能一步到位地实现所有的功能,需要将需求分解成具体的任务,以便优先级和时序上的编排和安排。
这个过程需要将功能列表中的每个功能分解为多个小任务,并确定每个任务的难度和优先级。
3. 编写用户手册为了帮助用户更好地使用软件,需要编写一份详细的用户手册,介绍软件的功能、操作指南以及常见问题的解决方式等。
这个手册应该是一份易于理解和操作的文档,以便用户能够快速熟悉软件。
三、需求确认和验证软件需求分析的最后一步是需求的确认和验证。
这个过程涉及到以下几个方面:1. 确认需求的准确性在需求分析过程中,有时用户可能会提出一些模糊的或不实用的需求,这个时候需要对其进行进一步的澄清和完善,以提供更准确、实用的需求描述。
目录1 到用户前的准备 (2)1.1 组织队伍 (2)1.2准备相应文档 (2)1.3 联系及了解用户方 (3)1.4 编写计划 (3)2 需求调研 (4)2.1 第一日 (4)2.2 调研过程 (4)2.3 三个阶段 (5)3 一般情况下需明确的问题 (5)4 需求完全明确情况 (6)5 需求不完全明确情况 (6)6 需求分析的方法 (7)7 完成需求确认 (10)8 误区 (10)8.1 分析结果越复杂越好 (10)8.2 必须一次到位 (11)8.3 客户的需求必须全部满足 (11)1 到用户前的准备1.1 组织队伍根据实际的工作量及其他情况,组建需求调研队伍,提供办分设备,明确责任、启动任务。
1.2准备相应文档开发商方的系统分析人员同用户的需求提供人员正式接触前,完成一个问询表及需求分析计划。
一般情况下只需要完成一个整体细节问询表,问询用户为明确需求已经完成的文档情况(如果可以在进行正式接触前可以得到并了解完成最好)、业务目的、当前目标、长远目标、当前准备情况、完成的业务功能列表、将来系统操作人员的业务及电脑技术了解情况、最终操作用户、当前及将来的硬件、软件及网络环境等问题。
由开发商系统分析人员根据对业务的了解程度,适当编写各业务功能细节问询表。
不过业务功能细节问询表的使用,是在业务需求调研过程中用户表明其需求后,再根据问题还没有明确的情况下再进行问询的。
其他业务相关政策法规、技术文档、技术支持人员的通信录等也要进行相应的准备。
1.3 联系及了解用户方同用户进行联系并取得对方的人员名单、分工情况、权重、工作计划、工作时间、节假日安排(特别是用户公司内部的额外规定),如果可能的情况下要求也有用户的IT人员参加需求过程,实际的需求如果没有IT人员的参加,在后面的更改一般是IT人员提出的。
应在需求过程中把用户IT人员的需求调研,作为业务调研中一部分。
1.4 编写计划根据当前情况,编写需求分析计划,明确正式开始日期,中间阶段性日期(时间段可多个,调研时间不大于3天),结束时间,人员名单,分工情况,需用户提供的帮助等。
将计划发送给用户请其确认,在可能的情况下协调用户和开发商的计划,以便共同开展工作。
对于计划如果能编写及控制到每日是最好的,但是否可以达到真正可控制到日,那就看你的能力了。
如果每3天为一个中间性阶段进行控制,延迟的时间可以通过加班来弥补。
计划最好根据一天工作8小时进行。
如果要去用户所在地进行工作,还要准备相应的办公工具,人手一台笔记本电脑(电源插座及网络互连线也要考虑)是比较好的资源配置。
2 需求调研2.1 第一日本次所说的第一日是开发商系统开发人员到用户处正式需求调研过程的第一日。
如果是异地调研,那么在第一日前一日开发商系统开发人员应到达用户所在地,住宿,了解住宿地周边情况。
最好是早些休息,为第一日工作开始做好准备。
一般第一日的上午是开发商系统分析人员和用户业务需要者进行整体介绍,了解办公环境,建立需求调研过程办公环境。
如果是小型项目涉及人员不多(双方人员共同不多于3人),一般上午可以进行调研工作1到2小时,不然下午才能正式开始工作(也就说做计划时第1天一般只有半日的工作时间)。
2.2 调研过程调研的过程推荐开发商系统开发人员有专人进行会议记录,并在每日会议结束后,当场宣布本次会议的结果,并由参加会议人员进行签字。
第二日复印或发送电子文件给参加会议人员及相关人员。
以便做到有据可查,明确过程。
开发商系统开发人员每周对用户提供开发周报,告诉用户当前开发的进展、是否有问题、是否用户协助等,这是一个好的加强双方沟通的方法。
注意:在调研过程的中系统开发人员的变更会对计划产生重大的影响,不要简单认为是人员更换的问题。
因为在调研过程中对业务的理解,不是通过看看文档就可以达到。
3天通过讨论达到对需求理解的程序,9天对文档的学习也不一定能达到。
2.3 三个阶段分析的初期,即总体分析阶段,需要得到整体意义上的轮廓需求,此时,应与客户方总工以上层次的人员进行交流,这一层次的人,对未来的系统会有完整的描绘,可以划分出子系统、及其之间的关系,这也是高级管理层对系统的期望。
可以以此作为纲领性的文档指导进一步的分析,并约束后续的分析过程,避免需求范围漫无边际的扩大;专业系统分析阶段,通常,客户单位都会有专业分工,彼此之间既相互独立,又会在某些点上发生联系。
此阶段应与客户方专业人员进行深入的讨论。
这一层次的人,对自己的专业相当熟悉,对专业内的需求会非常到位,大都年富力强,有相当的阅历和理解能力,甚至自己都可以绘制业务流图,总结业务功能点。
对他们应充分鼓励,尽量调动其积极性;系统关联分析阶段,在各专业系统得到充分分析的基础上,紧接着就要理清它们之间的关系,这是提升需求档次的关键阶段,也是高级领导层和专业人员都关心的阶段。
通常,客户单位都会有一些零散的软件,如财务软件,部颁软件等,这些专业软件都发挥着重要的作用,但都是些信息孤岛,客户会很自然的希望能把这些信息融合到整个系统中来,为更多的人所共享。
同时,也希望数据能够在各专业系统间顺畅的流动,从而减少重复劳动,提高工作效率。
此阶段应把总工层和专业人员召集到一起,共同理清系统间的接口。
经过这三个阶段,对需求的描述将比较准确和完整。
3 一般情况下需明确的问题当前整体业务需求的目的要求提供的需求功能列表将来发展的设想明确服务器、客户机的软、硬件及性能要求(容量、速度、可操作性等)用户目前相关的技术人员和业务人员情况将来最终系统操作人员的技术及业务人员情况用户需求的系统及用户本身或其它系统的接口要求用户的其它要求4 需求完全明确情况对于整体调研过后就要进行各个具体业务需求的调研,对于具体需求调研如果是用户提供的现有文档,开发商的系统分析人员只是对业务进行了解及进行修改为系统分析人员及业务人员全可以看懂的需求说明书,那么这个过程就比较容易。
只要系统分析人员把业务文档看懂看明白,并且对于一些难理解的业务描述修改为易懂(有些业务名词有一定的专业性就要进行额外的说明)、明确进出的单据(数据项)就可以。
当然编写需求说明书具体的细节可以参见其他的众多的书籍及文件模版。
5 需求不完全明确情况如果用户对于自己的需求在调研开始并没有完全明确,需要进行引导及细化,那么这个过程就比较麻烦了。
对于用户本身需求不明情况下,对于业务要先从基本业务进行细化,对于不明业务或不确定业务在后面进行。
对于进出的单据一般在这种情况下用户当没有现存文档,这个过程只需明确单据进出的必须数据源就可以,如果做到细节,由用户在需求调研期确定单证,是不太可能的----只是设计单据的样式、风格就不是短时间可以完成的。
对于报表也只能明确基本报表要求及数据项。
一般这种情况使用原型法进行,先做一个简单的,在简单的上面再进行完善。
对于用户本身需求不明情况下的调研要做每日(或2到3天,最多3天为间隔)的工作(分析进展)记录,由双方签字,因为调研过程会出现为用户要求添加一支新业务,对新业务进行分析后,因某些原因发现不能添加。
这个过程的结果是一个0,但为证明是0这结果可能花了很长的时间。
要记录这个过程,说明调研过程中做了什么事情,有时有些人可能会说为什么这么长时间才出这点点东西,到时以便说明原因。
6 需求分析的方法1.绘制系统关联图,这种关联图是用于定义系统与系统外部实体间的界限和接口的简单模型。
同时它也明确了通过接口的信息流和物质流。
2.创建用户界面原型,当开发人员或用户不能确定需求时,开发一个用户界面原型——一个可能的局部实现,这样使得许多概念和可能发生的事更为直观明了。
用户通过评价原型将使项目参与者能更好地相互理解所要解决的问题。
3.分析需求可行性,在允许的成本、性能要求下,分析每项需求实施的可行性,明确与每项需求实现相联系的风险,包括与其它需求的冲突,对外界因素的依赖和技术障碍。
4.确定需求的优先级别,应用分析方法来确定使用实例、产品特性或单项需求实现的优先级别。
以优先级为基础确定产品版本将包括哪些特性或哪类需求。
当允许需求变更时,在特定的版本中加入每一项变更,并在那个版本计划中作出需要的变更。
5.为需求建立模型,需求的图形分析模型是软件需求规格说明极好的补充说明。
它们能提供不同的信息与关系以有助于找到不正确的、不一致的、遗漏的和冗余的需求。
这样的模型包括数据流图、实体关系图、状态变换图、对话框图、对象类及交互作用图。
6.依据分析阶段确定合适的客户方配合人员。
7.多方位描述同一需求有一些需求贯穿了从基层人员到高层领导,对此需求应该从各个角度、各个方位给以描述,总结之后才能得到完整的表达,否则可能会漏掉一些信息。
这也为后续的设计工作打好基础。
比如,在设备管理类软件中,有一个概念叫"缺陷",指由于材料老化或外力作用,使得设备处于不正常的运行状态,但还没有到立刻就酿成"事故"的程度,但如不及时检修,就可能出事。
对于设备缺陷业务,就涉及到从班组人员到领导,上上下下对此都非常关心,但各层次的人关心的侧重点却不尽相同:领导关心"消缺率"(即缺陷消除率)、"消缺及时率";专业人员关心缺陷类型和处理方法;班组人员关心消缺工作的人员安排及时间地点。
缺陷的业务处理流程依赖于"设备缺陷单"(用于记录缺陷及消除情况),如果仅仅局限于从由基层得到的设备缺陷单上的数据结构(设备名称、缺陷发现人、发现时间、二级单位确认时间、缺陷性质、安排消缺时间、消缺人员、消除日期、处理方法),无法满足专业人员的分析要求:对设备的缺陷情况按类型、零部件、型号、生产厂家等分类统计,为设备采购时作为选型参考、调整设备及其零部件的检修周期以减少缺陷发生的频率等,因此需要在原来的设备缺陷单上增加一些相关信息。
8.清晰化每一数据项由于需求将作为设计的基础,弄清所有的数据项的来龙去脉对于设计是必不可少的。
不能有模糊不清的地方,同时通过对数据项来源的分析,可以让分析人员更清楚的看到数据的流动情况,也会发现一些新的需求点。
9.充分挖掘潜在需求由于分析人员对软件技术非常熟悉,一些由于技术所带来的潜在需求对于客户来说,一般很难被发现。
不实现这些需求,对整个系统也没什么实质性的影响;实现这些需求,则会锦上添花。
对这些潜在需求,会有两种处理方式:告诉客户,客户会得到启发,可能进一步提出新的需求,会有一些更大胆的想法,从而扩大了需求范围,增加了工作量,甚至会影响到工期;不告诉客户,等客户想到了再说。
这些需求如果对于产品软件,可能会是一个卖点,要尽可能的去挖掘。
但对项目软件,考虑各种风险,有时候可能会回避,或对客户隐瞒。
10.积累领域知识领域知识对于分析人员很重要,这些知识的广度和深度影响分析结果的准确性和分析进度。