如何做好需求分析
- 格式:doc
- 大小:67.50 KB
- 文档页数:8
如何做好需求分析需求分析是软件开发的关键步骤之一,它涉及到对用户需求进行理解和规划,同时也是设计和开发过程中的基础。
下面是一些关键的步骤和技巧,可以帮助您做好需求分析。
1.确定和理解用户需求:与用户进行深入的沟通和访谈,以了解他们的需求。
确保准确地获取用户的期望和目标。
这可以通过使用各种技术,例如访谈、问卷调查和原型创建来实现。
2.建立需求规范:根据从用户那里收集到的信息,制定一份完整的需求规范文档。
这份文档应该包括功能需求、非功能需求、优先级、约束条件以及与其他系统的交互等内容。
3.分析和拆解需求:将整体需求拆分成更小、更具体的单元。
这样可以更好地理解和处理需求。
可以使用工具和技术,如用例图、流程图和状态转换图,来帮助分析和拆解需求。
4.确认需求的可行性:验证和确保所提出的需求是可行的,并且能够在给定的限制条件下实现。
这可以通过技术评审、成本估算和风险分析等方法来实现。
5.管理变更和优先级:需求分析过程中,很有可能会出现需求变更。
因此,需要建立一个良好的变更管理机制,确保所有的变更都得到适当的审查和批准。
另外,还需要为不同的需求给出优先级,以便在设计和开发过程中能够有条不紊地进行。
6.与其他团队成员的合作:需求分析过程中需要与设计、开发和测试团队紧密合作。
确保他们充分理解需求,并在开发过程中的每一个阶段都能满足这些需求。
7.使用合适的工具和技术:使用适当的工具和技术来支持需求分析过程。
这些工具可以帮助您管理和维护需求规范,创建和查看需求文档,以及与其他团队成员进行需求的共享和讨论。
8.精确的描述和文档化:需求分析的结果需要进行准确的描述和文档化。
确保将需求规范文档清晰地记录下来,并与其他相关文档进行适当的链接,以便在需要时能够方便地查阅。
9.进行评审和验证:在需求分析过程的不同阶段进行评审和验证,以确保分析结果的准确性和合理性。
可以邀请用户和其他团队成员参与评审和验证过程,以获取更多的反馈和建议。
需求分析是软件开发过程中非常重要的环节,以下是一些做好需求分析的方法:
1、充分了解用户需求:要了解用户的需求和期望,采取多种形式的沟通,如面对面交流、问卷调查、用户访谈等。
2、制定需求规格说明书:将收集到的需求整理成需求规格说明书,详细描述需求,规定需求的优先级和实现方式。
3、识别和分析需求:使用各种方法,如用例分析、数据流图等,对需求进行识别和分析,确定需求的重要性、可行性、稳定性等。
4、确定需求变更流程:对需求变更进行管理,规定变更流程,确定变更的影响范围和变更后的需求规格说明书。
5、与用户保持沟通:需求分析是一个持续的过程,需要与用户保持沟通,及时了解用户的反馈和变更意见。
6、需求评审:在需求分析的过程中,要组织专业人员进行需求评审,对需求进行审核和确认,保证需求的合理性和可行性。
以上是一些做好需求分析的方法,需求分析是软件开发过程中最关键的环节之一,做好需求分析可以有效地降低后期开发的风险和成本。
如何进行市场需求分析市场需求分析是企业成功的关键之一。
了解市场需求,能够帮助企业更好地定位产品和服务,并制定相关营销策略。
在本文中,我们将探讨如何进行市场需求分析。
一、目标市场确定要进行市场需求分析,首先需要确定目标市场。
目标市场是指企业希望销售产品或服务的特定受众群体。
选择目标市场时,可以考虑人口统计数据、消费者行为和偏好以及竞争对手情况等因素。
通过明确定义目标市场,企业可以有针对性地进行市场需求分析。
二、市场调研市场调研是市场需求分析的关键步骤。
通过市场调研,我们可以了解受众的需求、偏好、购买行为以及竞争对手的情况。
市场调研可以采用定性研究和定量研究相结合的方法。
定性研究可以通过访谈、焦点小组讨论等方式获取深入的消费者见解;定量研究则可以通过问卷调查、数据分析等手段获得更具体的数字信息。
三、了解消费者需求了解消费者需求是市场需求分析的核心。
我们需要了解消费者的基本需求是什么,以及他们对产品或服务的具体要求和期望。
这可以通过市场调研收集到的信息来推断。
此外,也可以通过消费者反馈、用户评价等方式进一步了解消费者需求。
通过透彻了解消费者需求,企业可以更好地满足消费者期待,推出符合市场需求的产品或服务。
四、分析竞争对手竞争对手分析对于市场需求分析至关重要。
我们需要了解竞争对手的产品或服务特点、定位以及市场份额等信息。
通过对竞争对手的分析,我们能够发现市场的差距和机会,并据此调整自身的产品或服务策略。
竞争对手分析还可以帮助企业发现创新点,提升产品或服务的竞争力。
五、整理市场需求信息在进行市场需求分析的过程中,我们收集了大量的市场信息。
为了更好地利用这些信息,我们需要将其进行整理和归纳。
可以利用Excel 表格或其他数据处理工具整理定量数据,同时采用文字描述的方式整理定性数据。
整理市场需求信息的过程中,可以通过绘制图表和制作报告的方式,清晰地展现市场的需求情况。
六、制定营销策略在完成市场需求分析后,我们可以根据信息制定相应的营销策略。
如何进行有效的客户需求分析和解决方案设计在商业领域中,了解和满足客户需求是一项至关重要的任务。
客户需求分析和解决方案设计是帮助企业提供高质量产品和服务的关键过程。
本文将介绍如何进行有效的客户需求分析和解决方案设计。
一、客户需求分析1. 建立有效的沟通渠道为了了解客户的需求,首先要与客户建立良好的沟通渠道。
可以通过面对面的会议、电话交流、在线调研等方式与客户进行有效的沟通,了解他们的具体需求和期望。
2. 进行市场调研通过市场调研可以了解行业的趋势和竞争对手的情况,进而更好地把握客户需求。
可以通过调查问卷、采访行业专家、研究竞争对手的产品等方式进行市场调研,获取客观全面的信息。
3. 运用需求识别工具需求识别工具可以帮助我们快速、准确地捕捉客户的需求。
比如KANO模型、故事板、用户故事等工具都可以用来分析客户需求,并帮助我们更好地理解和归纳客户的期望。
4. 与团队共同探讨客户需求分析并不是一个人的事情,需要与团队成员共同探讨和评估。
团队协作可以帮助更全面地理解客户需求,并为解决方案设计提供更多的创意和建议。
二、解决方案设计1. 确定解决方案目标在解决方案设计过程中,我们需要明确解决方案的目标和期望效果。
这些目标应该与客户需求紧密相连,并具备具体、可衡量的特点。
只有明确目标,才能有针对性地进行解决方案设计。
2. 制定解决方案策略解决方案策略的制定需要考虑多个方面,包括技术可行性、资源投入、时间安排等。
通过权衡各种因素,制定出合理的解决方案策略,以保证项目的成功实施。
3. 设计解决方案方案在设计解决方案过程中,需要结合市场需求、技术能力以及商业目标等多个方面进行综合考虑。
设计出的解决方案应该能够满足客户需求,并提供创新的解决方式。
4. 评估解决方案可行性在最终确定解决方案之前,需要对解决方案的可行性进行评估。
这包括技术可行性、经济可行性、商业可行性等多个方面。
只有在各个方面都能够得到验证和支持的情况下,才能够推进解决方案的实施。
测试人员如何做好需求分析在软件开发中,测试人员扮演着至关重要的角色。
他们负责确保软件在满足用户需求的同时,具备高质量和稳定性。
而需求分析则是测试人员进行测试的前提和基础。
本文将就测试人员如何做好需求分析进行探讨。
需求分析是软件开发过程中非常关键的一步。
测试人员需要准确理解并把握用户的需求,为软件的开发和测试提供明确的指导。
以下将介绍测试人员如何做好需求分析的一些建议。
1. 理解项目背景和目标在进行需求分析前,测试人员应该全面了解项目的背景和目标。
这包括了解软件所处的行业背景、用户群体、产品定位等。
通过对项目背景和目标的了解,测试人员可以更好地理解用户需求,并在需求分析过程中提出准确的问题和建议。
2. 与需求方充分沟通测试人员应与需求方充分沟通,明确需求细节和特性。
通过与需求方的交流,测试人员可以深入了解用户的期望和需求。
同时,测试人员应该提出问题并验证需求的可行性,以确保需求的准确性和完整性。
3. 确定需求的优先级和重要性在需求分析过程中,测试人员需要区分和评估各个需求的优先级和重要性。
这有助于在开发和测试过程中分配资源和精力,并确保满足用户的核心需求。
测试人员可以与相关人员合作,对需求进行评估和排序,并提供有针对性的测试策略和计划。
4. 使用合适的工具和技术测试人员可以借助一些专业的工具和技术来辅助需求分析工作。
例如,可以使用原型设计工具来快速展示和验证需求,使用追踪工具来跟踪需求和变更,使用数据分析工具来辅助需求评估等。
通过合适的工具和技术,测试人员可以提高需求分析的效率和准确性。
5. 深入了解业务流程和规则在进行需求分析时,测试人员应该对相关业务流程和规则进行深入了解。
这有助于测试人员更好地理解用户需求,并在测试过程中设计出符合实际业务场景的测试用例。
通过深入了解业务流程和规则,测试人员可以更准确地触发和验证软件的各种功能和逻辑。
6. 编写准确且可操作的需求文档需求文档是测试人员进行需求分析的重要产物,同时也是其他相关人员了解需求的重要依据。
七步让你做好需求分析确定项目目标第一步是与团队一起明确项目的目标和范围。
这些目标需要从多个利益相关者的角度进行审查,并且应该能够明确地解释给所有人。
一、了解业务需求首先,需要对项目的业务需求进行深入了解。
这包括对业务过程、业务规则、数据模型等方面的分析。
在这个阶段,可以与业务相关人员进行沟通,听取他们的意见和建议。
同时,可以借助各种工具和技术,如流程图、数据字典、用例图等来帮助理解业务需求。
二、分析用户需求除了业务需求,还需要对用户需求进行分析。
用户需求是指用户对系统或产品的期望和要求,包括功能需求、性能需求、可靠性需求、安全需求等。
在这个阶段,可以采用用户调研、问卷调查等方法,收集用户的反馈和建议。
同时,也可以通过竞品分析、市场研究等方式,了解用户的偏好和需求趋势。
三、制定需求规格说明书为了更好地明确项目目标,需要制定一份完整的需求规格说明书。
该文档应包括项目的业务需求、用户需求、功能列表、性能指标、安全要求等信息,以及各种约束条件和假设前提。
在制定需求规格说明书时,需要注意以下几点:1.明确需求的优先级。
不同的需求具有不同的重要性和紧急程度,需要按照一定的优先级进行排序。
2.确保需求可行性。
需求规格说明书中列举的需求应当是可行的,不要超出技术或资源的限制。
3.避免冲突和歧义。
需求规格说明书中应尽量避免冲突和歧义,以免后续开发过程中出现问题。
四、与利益相关者沟通在确定项目目标的过程中,需要与各方利益相关者进行充分沟通。
这包括业务代表、用户、开发团队、测试团队、运维团队等。
通过与他们的沟通,可以更好地理解各方的需求和期望,协调各方的利益关系,确保项目成功完成。
五、制定项目计划最后,确定项目目标之后,需要制定一个详细的项目计划。
该计划应包括项目的时间表、里程碑、资源分配、风险管理等方面的内容。
在制定项目计划时,需要充分考虑各方的需求和利益,确保项目目标得以实现。
总之,通过对业务需求和用户需求的分析,制定完整的需求规格说明书,并与各方利益相关者充分沟通,最终制定一个详细的项目计划,可以更好地确定项目目标。
需求分析方法需求分析是指在软件工程中对用户需求进行详细的调查、分析和界定的过程。
需求分析的目的是为了准确地理解用户的需求,为软件开发的后续工作提供清晰的指导和依据。
在软件开发过程中,需求分析是至关重要的一步,它直接关系到软件最终的质量和用户满意度。
因此,选择合适的需求分析方法对于软件开发来说至关重要。
一、访谈法。
访谈法是需求分析中常用的一种方法,通过与用户进行面对面的交流,了解用户的需求和期望。
访谈法可以直接获取用户的真实需求,有利于深入了解用户的需求背后的真正目的和动机。
在进行访谈时,需求分析人员需要充分准备,提前制定好访谈问题,确保访谈的高效和准确。
同时,需要注意保持良好的沟通和交流技巧,以便更好地引导用户表达他们的需求。
二、问卷调查法。
问卷调查法是另一种常用的需求分析方法,通过设计问卷并向用户发放,收集用户的意见和建议。
问卷调查法适用于用户群体较大或用户分散的情况,可以更全面地了解用户的需求和看法。
在进行问卷调查时,需要设计合理的问题,确保问题的准确性和完整性,同时也需要考虑用户填写问卷的便利性和有效性。
三、头脑风暴法。
头脑风暴法是一种集体讨论和思维碰撞的方法,通过团队成员之间的交流和讨论,收集和整理用户的需求。
头脑风暴法可以激发团队成员的创造力和想象力,从而获得更多新颖的需求点和创意。
在进行头脑风暴时,需要注意引导团队成员发表自己的观点和想法,确保每个人都能有机会表达自己的看法。
四、原型法。
原型法是通过制作软件原型,让用户直接体验和感受软件的功能和界面,从而获取用户的需求和反馈。
原型法可以直观地展现软件的功能和交互流程,有利于用户更直观地表达自己的需求和期望。
在进行原型设计时,需要注重原型的易用性和真实性,确保原型能够准确地反映用户的需求。
五、观察法。
观察法是通过观察用户的行为和环境,获取用户的需求和习惯。
观察法适用于用户无法清晰表达自己需求的情况,通过观察用户的行为和环境,可以更加直观地了解用户的需求。
如何进行有效的需求分析与设计需求分析与设计是软件开发过程中至关重要的一步。
只有在充分了解用户需求的基础上,才能设计出满足用户期望的软件系统。
本文将介绍如何进行有效的需求分析与设计,并提供一些实用的方法和技巧。
一、需求分析1. 明确目标:在进行需求分析之前,首先要明确项目的目标。
明确目标有助于指导需求分析的方向,并避免过多的无效分析。
2. 收集需求:收集用户的需求是需求分析的关键步骤。
可以通过面对面的访谈、问卷调查、观察用户行为等方式收集用户需求。
3. 细化需求:将收集到的用户需求进行整理和归纳,确保每个需求都具备清晰的描述和明确的定义。
可以使用用例图、需求文档等工具来细化需求。
4. 优先级排序:根据用户需求的重要性和紧急程度,对需求进行优先级排序。
这有助于合理安排开发进度,并确保核心功能的优先实现。
5. 确定可行性:在需求分析的过程中,需要考虑技术可行性、资源可行性和经济可行性。
确保需求可行性有助于避免项目失败风险。
6. 验证需求:需求验证是需求分析的最后一步,通过与用户进行沟通和确认,确保需求的准确性和全面性。
可以通过原型演示、用户测试等方式进行需求验证。
二、设计阶段1. 系统设计:根据需求分析的结果,进行系统架构设计和模块划分。
确保系统的可扩展性和灵活性。
2. 数据库设计:根据需求确定的数据模型,设计数据库结构和表关系。
确保数据库的完整性和一致性。
3. 用户界面设计:根据用户需求和使用习惯,进行用户界面的设计。
界面设计要美观、简洁、易用。
4. 功能设计:根据需求分析的结果,设计软件系统的各个功能模块。
确保功能的完备性和高效性。
5. 安全设计:在设计阶段考虑系统的安全性和数据的保护措施。
确保系统能够有效地防范安全风险和威胁。
6. 完整性和一致性设计:在设计阶段考虑系统各个组件之间的完整性和一致性。
确保系统各部分能够协同工作,提供一致的用户体验。
三、需求分析与设计的技巧1. 多角度考虑:在需求分析与设计过程中,要从不同的角度考虑问题,充分理解用户需求。
简述需求分析的方法需求分析是软件开发过程中极为重要的一个环节,它涉及到客户需求、用户需求、产品功能以及其他相关方面,旨在明确开发团队应该如何设计、实现和测试软件。
需求分析的方法可以分为顾客为中心的方法、商业为中心的方法、用户为中心的方法、敏捷开发方法、以及原型开发方法等等。
下面我将会逐一介绍这些方法并分析它们的优缺点。
1. 顾客为中心的方法这种方法的主要思路是:客户永远是最重要的。
顾客为中心的方法强调了正向沟通,即要求开发者和客户之间进行大量的交流和互动,以确保在软件开发过程中不会偏离最初的计划。
该方法的一个典型例子是亲身了解你的顾客,这是一项通过与客户进行深入交流来明确客户需求的方法。
尽管这种方法在理论上效果很好,但是在实践中它通常需要更多的时间和人力资源。
这是因为开发者需要了解客户、沟通和反馈,这些都需要花费更多的精力和时间。
因此,在实践中需要权衡好时间和资源,以便达到最佳效果。
2. 商业为中心的方法商业为中心的方法通过了解企业规划和市场趋势,来确定设计软件的方向。
这种方法的主要思考点是:软件的最终目标是什么?软件应该如何成为企业成功的一部分?通过分析商业的目标和策略,可以相对比较容易的找到软件的功能点。
该方法的优势在于:客户不必花费大量的时间和劳力来描述软件的功能点,因为所有的功能点都以一种较为清晰的方式呈现出来。
但是,商业为中心的方法有一个很大的缺点,那就是它缺乏详细的用户需求分析。
这种方法有时会忽略软件在实际使用时的一些需求,因此,在进行商业为中心的方法时要注意不要忽略用户需求分析。
3. 用户为中心的方法这种方法的核心是理解和满足用户的需求。
通过观察和分析用户的行为、习惯、偏好和遇到的问题,可以开发出更加贴近用户需求的软件。
这种方法的优点是用户参与度高,并且可以快速反馈用户意见和需求,同时具有明显的成本优势。
然而,与其他方法相比,用户为中心的方法可能需要花费更多的时间进行研究和交流,以便满足不同用户的不同需求。
需求分析的方法和步骤在软件开发过程中,需求分析是非常重要的一个环节,它直接关系到最终产品的质量和用户满意度。
一个好的需求分析能够帮助团队更好地理解用户需求,提高开发效率,避免后期的修改和重构。
那么,需求分析应该如何进行呢?下面我们将介绍需求分析的一般方法和步骤。
1. 识别需求来源需求来源是需求分析的第一步,我们需要明确需求的来源是谁,可能包括用户、业务部门、市场部门等。
通过与需求来源的沟通和交流,可以帮助我们更好地理解需求,并确保需求的准确性和完整性。
2. 收集需求信息在识别需求来源的基础上,我们需要收集具体的需求信息。
这可以通过各种方式进行,例如面对面的访谈、问卷调查、参与用户活动等。
收集需求信息的过程中,需要注意记录详细的信息,并确保信息的准确性和完整性。
3. 分析需求一旦我们收集到了需求信息,就需要对这些信息进行分析。
在这个过程中,我们需要理清需求之间的关系,发现需求之间的冲突和不一致之处。
通过分析需求,可以帮助我们更好地理解需求,为后续的需求确认和需求验证奠定基础。
4. 需求建模需求建模是需求分析的重要环节,它可以帮助我们将抽象的需求信息转化为可视化的模型。
常用的需求建模工具包括用例图、活动图、顺序图等。
通过需求建模,可以帮助团队更好地理解需求,发现潜在问题,并为后续的设计和实现提供指导。
5. 确认需求在进行需求分析的最后阶段,我们需要与需求来源和相关利益相关者进行确认,确保需求的准确性和完整性。
在确认需求的过程中,可能需要进一步的沟通和交流,以便及时发现和解决可能存在的问题。
通过以上方法和步骤,我们可以更好地进行需求分析,确保最终产品与用户需求相匹配,提高软件开发的成功率和质量。
需求分析虽然是一个繁琐的过程,但却是软件开发过程中必不可少的一环,对于项目的成功至关重要。
如何做好需求分析发表于Thursday, December 06 @ 11:32:33 CST 由adminWPMI会员:九点已发表在《程序员》杂志12月期】本文是“网站项目管理(WPM)是如何完成的”系列文章第一篇。
本系列文章将网站项目管理(WPM)与软件工程的统一过程管理(RUP)进行参照比较,并结合实际工作经验,力求将网站工程管理(WPM)的角色、分工、流程进行完整的阐述,使网站项目管理逐渐走向规范化。
网站项目管理(WPM)是如何完成的之一如何做好需求分析【发表在《程序员》杂志12月期】前言随着技术的不断发展和用户对网站功能性的需求不断提高,如今网站项目的设计已经不能再仅仅简单地利用静态Html文件来实现,与前几年网站设计由一两名网页设计师自由的创作相比,网站项目的设计和开发越来越像一个软件工程,也越来越复杂,网站项目的设计和开发进入了需要强调流程和分工的时代,建立规范的、有效的、健壮的开发机制,才能适应用户不断变化的需要,达到预期的计划目标。
网站项目管理(WPM)的含义为Web-based Project Management,即以Web 应用程序为主要表现方式的架构来进行的项目设计及管理,这样的架构中包含了浏览器、网络和Web 服务器等关键主体,主要体现在网站设计、以浏览器为客户端的Web应用程序开发(例如信息类网站、网上商店、虚拟邮局、客户关系管理。
)等项目管理中。
在本文中,笔者将网站项目管理(WPM)与软件工程的统一过程管理(RUP)进行参照比较,并结合实际工作经验,力求将网站工程管理(WPM)的角色、分工、流程进行完整的阐述,使网站项目管理逐渐走向规范化。
按照笔者的经验,网站项目管理可以分为以下七个阶段进行控制:1. 需求分析及变更管理2. 项目模型及业务流程分析3. 系统分析及软件建模4. 界面设计、交互设计及程序开发5. 系统测试和文档编写6. 客户培训、技术支持和售后服务需要说明的是,这些阶段虽然具有一定的延续性,但是并非完全隔断的,例如需求变更管理和测试工作、文档编写都是贯穿整个项目过程的,许多工作时交叉进行或同时进行的。
(一)如何做好需求分析及变更管理?业务员与客户进行的沟通,撰写需求分析报告是项目展开的基础。
项目是以客户的需求为中心,而不是为技术而迁就需求。
本章包括以下内容:一. 让客户畅所欲言,罗列出所有的需求二. 透过现象分析潜在的需求三. 利用自然的语言描述项目模型四. 利用示意图和图表将用户的需求表现出来。
五. 什么人要看需求分析报告?六. 建立需求变更日志,制作新版本的需求分析报告。
七. 本阶段重点工作角色八. 总结一:让客户畅所欲言,罗列出所有的需求让用户将所有的想法尽可能的阐述清楚,并把所有的要求罗列出来,不要遗漏。
这时候不应该害怕"勾引"起客户的潜在需求而增加设计开发的工作量,从而被今后客户无止境的变更拖入泥潭,直接明白地跟客户把问题和要求一条条地列出来,把条理、归纳、分析先都扔到一边去,将用户最原始、最完整的要求准确地记录下来就完成了第一步的工作。
很明显,假如客户的需求做的都不完整,随时可能会产生意想之外的变更,甚至这个变更会破坏已经做的模型及结构,那么这个项目从开始就注定了会失败;比如站点所有的功能都实现了,本地测试起来也没有什么问题了,但是你却不知道客户的系统是要承受每天100万独立IP的访问,而你原来想当然的以为了不起就是1万独立IP访问的访问流量,稍微有经验的开发人员都会明白这样的设计是个灾难,无论是应用服务器、数据库还是程序全部要重新开发!二:透过现象分析潜在的需求很多情况下客户并非专业人士,在他们滔滔不绝的描述中不能指望他们帮助我们整理出重点和技术难关,这需要我们去为客户进行分析、归纳和整理,尤其是客户谈的不多却又是技术上实现难度和强度很高的地方特别值得注意。
客户往往对需求的概念是非常模糊的,大多时候给出的需求都是笼统而且尺度难以控制的,这就要求业务人员在倾听了客户的详细说明以后,帮助客户进行整理和分析,同时预测客户在开发过程中变更及今后应用中可能进行修改升级的潜在需求。
比如在为客户设计办公自动化系统的时候,也许就要为客户预留将来与他们的业务单位进行交互的通道;在设计邮件系统的时候要考虑可能会需要广告管理服务器;设计网络电子商店时今后增加库存产品进销存统计分析等等;限于时间财力的考虑,客户通常能够接受分阶段实施的开发过程,在需求分析时,提早为客户设想到今后的需求变更除了使项目开发更加顺利以外,也为今后业务的进一步深入打下了更好的基础。
笔者曾负责一个大型新闻网站的设计,当客户拿着将近五十页厚的一本设计要求报告时,我发现有四十页的内容对程序开发来说都是重复的,而在其中一页的角落却画了个"搜索其他网站相关新闻"的按钮,并且没有做任何说明,仅仅这10个字所完成的工作量完全顶的上其他整整四十页重复赘述所做的工作,客户完全不知道这个要求引发的问题实际就是一个搜索引擎的开发,通过协商,客人同意了修改成站内搜索的引擎。
三:利用自然的语言描述项目模型在业务员与客户进行沟通和调查时撰写的需求分析,尽可能用自然的语言进行描述,虽然客户的水平和资历有所不同,但是最自然的描述能够使项目开发的各个成员都能清楚地理解需求含义,不至于在理解上产生偏差。
对客户而言,这样的模型描述最接近真实,容易参与修订,并能以此为测试和验收的依据。
请比较以下两份关于需求的描述,"用户在访问首页的时候可以在点击'客户通道'按钮,弹出填写'用户名'和'密码'的窗口,输入正确后在新窗口打开客户通道的首页,在该页显示所有可操作的功能的导航条和最新的导读新闻链接列表""站点分为公开和加密两种状态,通过身份验证机制使特有的用户可以访问到加密信息,并提供不同于普通用户的功能。
"前段描述我们就很容易想象的出来设计完成的网站是什么样子,而后一段的描述可能会做出无数不同的版本,造成对需求理解的歧意。
四:利用示意图和图表将用户的需求表现出来。
需求分析无论文字上怎么样表述都还是抽象的,对客户而言理解毕竟是困难的,将基本确定的需求制作出示意图是最直观有效的。
制作示意图可以有很多种方式,用PowerPoint或Visio制作流程示意,用Html文档制作界面示意都是可行的,最简单利用画图和Word表格方式也完全可以,关键是利用示意图将客户的需求和即将开始设计的系统体现起来,在进行系统分析和程序开发之前,双方对今后要完成的产品就能够有直观的认识,换言之,就是在产品还没有真正进入开发阶段的时候,双方就对工作的结果达成统一的意见,这将大大地减轻需求变更所带来的困扰,同时客户更容易地参与到项目的开发过程,保证项目往正确的方向进行。
在RUP中有这样的描述:"利用电影、卡通、图片、表格和动画片等制作示意图开始,告诉我们用户是谁,要发生什么事情,如何发生。
•以用户友好的方式帮助收集并改进用户需求。
•鼓励更有创造性、更加创新的设计解决方案。
•鼓励团队复审,并避免所有人都不希望出现的特征。
•确保以可理解、直观的方式实施特征。
•使访谈过程变得轻松,避免出现访谈没有结果的现象。
简单地说,制作示意图就是使用工具向用户(主角) 说明(有时是动画演示)系统如何适应组织的需要,并表明系统将如何运转。
协调员将初始示意板展示给小组,小组成员提供意见。
之后,在举办研讨班期间,示意板也进行"实时"演进。
所以,您需要一种可以轻松更改示意板的画图工具。
为了避免分散注意力,一般最好使用简单的工具,比如图表、白板或PowerPoint。
"五:什么人要看需求分析报告项目经理、系统分析员、开发经理、交互设计师、测试人员、文档人员包括客户代表都应该看需求分析,并进行共同的讨论,达成一致的意见。
我们经常会遇到业务人员辛辛苦苦谈下来的项目,对开发人员来说却是难以实现的,而技术人员设计的产品却常常得不到客户的认可,甚至发生纠纷,因此参与项目开发的人员都应该对这份需求有统一清晰的认识,并根据自己的工作对需求提出意见,通过与客户的沟通修订,最终确定项目实现的目标。
例如:•项目经理通过需求分析才能组建所需要的团队包括配置工作环境,制定开发周期。
•开发周期的限制和功能上的要求可能会影响到程序员采用什么样的语言和工具进行编写;•操作用户的技能水平将影响到交互设计师进行前台设计时做到什么样的精度;•界面设计人员根据项目的性质和定位确定表现方式。
•测试人员了解测试环境和条件后才能对项目质量进行跟踪和检测;通过下表,我们可以看的出不同角色根据需求的变更所进行的工作流程:六:建立需求变更日志,制作新版本的需求分析报告尽管我们费了许多功夫在需求分析进行了最大可能的努力,但几乎可以肯定的是,这份需求分析在开发过程中一定会发生变化,也许是出自客户的遗漏,也可能是在开发过程中被激发出来的,这种变更有时是如此的频繁和琐碎,以至于往往不能将变更及时反馈到项目的各个角色中,那么做好需求变更日志就显得非常重要。
在需求分析后面附上变更日志,并将修改后的需求分析制作成新版本,保留每次更改过的版本,而不是覆盖,这样就比较容易地跟踪到需求变更过程中所带来的工作调整。
在新版本的需求分析中,将变更多部分用特殊方式表明出来,并在日志中记录变更多重的明细。
关于需求分析和变更管理可以参照下图示意:七:本阶段重点工作角色在需求分析和变更管理的过程中,工作量最大的角色为客户代表、业务员和项目经理。
客户代表提出需求,业务员帮助整理和分析,项目经理对整个项目进行评估。
在实际工作中,很多项目失败的起因都和需求分析有关。
客户代表和业务员通常并非从事技术开发的专业人员,在讨论需求的时候往往对项目的技术难度、工作量、时间进度把握不准确,这时候需要项目经理或技术人员进行参谋。
为了降低项目的风险,提高工作效率,有必要设计规范的需求管理计划书,帮助客户代表和业务员更好的完成任务。
以下提供一份需求管理计划的模板可作为参考:八:总结根据笔者的经验,要尽快做好需求分析掌握以下要点,也许能事半功倍:•仔细聆听,罗列客户的所有要求;•将需求进行分析,确认可操作的系统模型;•利用最自然的语言将系统进行描述,使每个开发人员不会产生歧意;•迅速确定网站的用户角色;比如访客、会员、重要客户、前台管理员、网站管理员、业务员等;•分析确定每个角色的权限及可操作的功能;比如会员可以查看特别信息、修改个人信息、退出登陆等;前台管理员能够登录管理系统,能够发布编辑修改信息,能够审查会员资格等;网站管理员可以更改栏目、修改网站界面等;•制作流程图和示意图将需求表现出来;•让客户参与到示意图的设计中,及时正确的反应出需求变更。