软件项目的需求开发和管理
软件开发过程中的需求分析与管理

软件开发过程中的需求分析与管理在软件开发过程中,需求分析和管理是非常重要的环节。
因为只有了解了客户的需求,才能为客户提供更好的服务和解决方案。
本文将探讨软件开发过程中的需求分析和管理。
一、需求分析需求分析是软件开发中的第一步。
它是了解客户需求和目标,确定可行性和实现的必要性,以及开发任务的数据和信息,包括建立和分析软件功能。
因此,确定需求是软件开发过程中的关键环节。
以下是需求分析的重要内容:1.了解客户需求客户的需求往往与实际产品有很大的差别,因此,我们需要深入了解客户的真正需求,包括功能性和非功能性需求。
这可以通过组织面向客户的会议、采取变换式的方法、开展客户调查等方式来实现。
2.分析和记录需求需求分析还包括分析和记录需求。
分析需求要求我们从客户提供的各种信息中归纳出可操作的需求,而记录需求则是将这些需求写成文档,使其他项目成员可以按照此文档来开发系统。
3.实现需求实现需求是开发人员进行需求分析之后,开始制定软件需求规格说明书,指导编码、测试、维护等软件生命周期过程。
需求规格说明书的目的是清晰明确的确容易理解,从而为开发人员提供清晰的建议,详细说明所需述的概念,建立业务场景,并提出数据字典、流程图、结构图等工具,以便让开发人员更好地理解实际情况。
二、需求管理需求管理是软件开发过程中的另一个关键环节。
为了保障项目能够按时按量地完成,我们必须对需求进行管理。
需求管理的主要内容包括:1.需求变更需求变更是软件开发过程中常见的问题之一。
因为在开发过程中,随着客户需求的变化以及新的想法的提出,需求变更是难以避免的。
因此,我们需要制定详细的需求变更管理计划,按照一定的规模、时间和审批机制来处理变更,保证改变的次数尽可能少,并且能够及时得到跟踪和管理。
2.需求溢出控制需求溢出是指开发人员在实现某个特性或功能时,意外地执行了额外的额要求。
为了避免出现这种情况,我们需要对需求进行溢出控制。
我们可以把需求分成两类:必须的(核心)和可选的(次要的)。
软件开发项目管理岗位职责

软件开发项目管理岗位职责
软件开发项目管理岗位职责主要包括以下几个方面:
1. 项目计划制定和执行:制订软件开发项目计划,并跟踪执行,及时调整计划和资源分配,确保项目按时按质地完成。
2. 项目需求分析和管理:全面了解项目需求,与各方沟通,决
定项目实施方案,并随时掌握需求变化情况,及时作出调整。
3. 项目资源管理:安排项目团队成员的工作内容和职责,协调
团队成员之间的协作关系,保证团队成员的工作顺利开展。
4. 项目风险管理:识别并评估项目风险,采取适当的风险控制
措施,确保项目进展顺利。
5. 项目质量管理:制定项目质量管理计划,对项目进行质量控制,管理项目质量标准,确保项目成果符合质量要求。
6. 项目沟通管理:与项目相关的各方进行沟通和协调,包括相
关部门、客户和合作伙伴等。
7. 项目成本管理:制定项目成本管理计划,细化项目成本核算,利用成本控制技术,控制项目成本。
以上就是软件开发项目管理岗位的主要职责。
需要具备良好的
沟通协调能力、财务管理能力、项目风险管理能力、责任心和团队
协作精神。
同时,技术能力也是软件项目管理中不可或缺的一部分,需要掌握软件开发流程、编程语言、数据库、测试方法等相关技术
知识,才能更好地管理软件项目。
软件开发项目管理的基本流程和方法

软件开发项目管理的基本流程和方法随着科技的发展,软件开发在现代社会已经成为一项重要的工作。
为了保证软件项目的成功完成,项目管理起着至关重要的作用。
本文将介绍软件开发项目管理的基本流程和方法,以帮助团队有效地组织和管理软件开发项目。
一、项目准备阶段1.明确项目目标和范围:确定项目的期望结果,明确项目的边界和涵盖的功能。
2.制定项目计划:确定项目的时间表、预算和资源需求,制定详细的项目计划。
3.组建项目团队:根据项目需要,组建合适的团队,并确保每个团队成员的角色和职责清楚明确。
二、需求分析和设计阶段1.需求收集和分析:与项目的相关利益相关者合作,收集和分析项目的功能和非功能需求。
2.系统设计:基于需求分析的结果,进行系统设计,包括系统架构、数据库设计、界面设计等。
三、开发和测试阶段1.编码和开发:根据系统设计,开发团队进行编码和开发工作,按照项目计划进行工作。
2.单元测试:开发人员针对编写的代码进行单元测试,确保其功能正常。
3.集成测试:将各个模块进行集成,测试系统各个部分之间的协调和交互是否正常。
4.系统测试:对整个系统进行功能和性能方面的测试,确保系统符合需求和质量标准。
四、上线和维护阶段1.系统上线:在经过充分测试后,将系统正式部署上线,让用户开始使用。
2.用户培训和支持:为用户提供必要的培训,确保用户能够正确地使用系统,并及时提供技术支持。
3.系统维护:定期检查系统的性能和安全性,并进行必要的维护工作,修复潜在问题和漏洞。
4.项目总结和回顾:在项目结束后,进行项目总结和回顾,评估项目的成功和不足之处,并为未来的项目提供经验教训。
五、敏捷开发方法敏捷开发是一种迭代和增量式的软件开发方法,强调在整个开发过程中与客户密切合作和快速响应变化。
敏捷开发方法可以应对需求变更和项目风险的挑战,使团队更加灵活和高效。
以下是敏捷开发的一些基本原则和方法:1.迭代开发:将项目分解为多个迭代周期,进行短期规划和开发,每个迭代都有可交付的产品增量。
软件项目开发管理流程

软件项目开发管理流程软件项目开发管理流程是指为了高效、有序地完成一个软件项目的全过程所需遵循的一系列步骤和管理方法。
一个好的管理流程能够帮助开发团队提高工作效率,降低项目风险,保证项目按时、按质完成。
下面将从项目启动、需求分析、设计开发、测试交付、运维支持等几个方面详细介绍软件项目开发管理流程。
一、项目启动阶段项目启动阶段是整个项目的前期准备阶段,包括项目立项、需求调研、项目规划等内容。
在这个阶段,需要明确项目目标、项目范围和时间、人力资源以及工作分配等。
1.确定项目目标:明确项目的目标和核心问题,确定项目的可行性以及预期效果。
2.需求调研:收集、整理和分析用户需求,明确项目的具体功能和特性,以便后续的项目规划和设计。
3.项目规划:根据需求调研结果,制定项目计划,包括任务分解、时间节点、人员分配、风险管理等。
二、需求分析阶段需求分析阶段是整个软件项目开发过程中最为关键的一环,它直接影响到后续的设计和开发工作。
1.需求澄清:通过与用户进行深入的沟通和讨论,进一步澄清和细化项目需求,确保清楚准确地理解用户的需求。
2.需求文档编写:根据需求澄清的结果,编写详细的需求文档,包括功能说明、用例分析、系统设计等。
3.需求评审:组织开发团队成员进行需求评审,确保需求的完整性、一致性和可行性,避免后期需求变更导致的额外工作量和项目迭延。
三、设计开发阶段设计开发阶段是按照需求分析阶段的结果进行具体的系统设计和编码开发。
1.系统设计:根据需求文档编写详细的系统设计文档,包括数据库设计、模块设计、接口设计等。
2.编码实现:根据系统设计文档,进行具体的编码和实现,采用适当的编码规范和开发工具。
3.代码评审:组织开发团队成员进行代码评审,确保代码的质量和可维护性,避免潜在的问题和漏洞。
4.软件集成:将各个模块进行集成和组合,进行系统测试,确保各个模块的功能和接口的正确性。
四、测试交付阶段测试交付阶段是对已开发的软件系统进行全面的测试和验证,并按时交付给用户。
软件开发岗位实习报告:软件项目管理与需求分析

软件开发岗位实习报告:软件项目管理与需求分析一、实习背景在过去的几个月里,我有幸参与了一家软件开发公司的实习项目,负责的岗位是软件项目管理与需求分析。
这段实习经历让我对软件开发项目整个生命周期有了更深入的了解,也锻炼了我的沟通协调能力和问题解决能力。
二、软件项目管理1. 项目规划在软件项目管理的初期阶段,项目规划是至关重要的环节。
我参与了一项中小型软件项目的规划工作,需要确定项目的目标、范围、时间表、人员配备和资源分配等。
我们首先进行了项目范围的定义和界定,明确了项目的具体目标和可交付成果。
然后,我们进行了项目工作分解,将整个项目划分为若干个可管理的工作包,并制定了相应的时间表和人员配备计划。
最后,我们考虑到项目风险和变更管理,制定了一系列应对策略。
2. 团队协作与沟通在软件项目管理中,团队协作与沟通是非常重要的。
我负责协调开发团队的各个成员,确保他们明确任务目标、合理分配工作资源,并按时完成各项任务。
为了加强团队协作与沟通,我引入了一系列协作工具和方法,如项目管理软件、在线会议工具和工作日志系统等。
通过这些工具和方法,我们成功提高了团队的工作效率和沟通效果。
3. 需求管理与变更控制在软件项目管理中,需求管理和变更控制是一个复杂而关键的过程。
我参与了一个大型软件项目的需求管理工作,需要对客户的需求进行收集、分析和整理,并与开发团队进行沟通和协调。
为了确保项目的顺利进行,我们采用了一套完整的需求管理流程,包括需求确认、需求分析和需求验证等。
同时,我们也建立了变更控制机制,及时应对需求的变更和调整,确保项目的稳定性和可控性。
三、需求分析1. 需求收集与分析在需求分析的阶段,我负责收集和分析用户的需求,确保软件开发团队完全理解客户的期望和需求。
为了实现这一目标,我采用了多种需求收集方法,如面对面访谈、问卷调查和用户故事工作坊等。
通过这些方法,我了解到了客户的实际需求和痛点,并将这些需求转化为具体的需求规范和用例场景,以供开发团队参考。
软件开发过程的管理和控制

软件开发过程的管理和控制一、引言在信息化时代,软件开发已经成为各行业的基础设施,软件开发过程管理和控制是软件项目成功的关键因素之一。
因此,本文将从需求分析、设计、编码、测试、发布等方面,阐述软件开发过程的管理和控制。
二、需求分析需求分析是软件开发的第一步,它是软件开发过程中最重要的一个环节,也是最容易被忽视的一个环节。
在需求分析的过程中,开发团队需要与客户充分沟通,了解客户的需求和想法。
要做好需求分析,需要做到以下几点:1.聆听并理解客户的需求;2.对需求进行分类和整理,并形成详细的需求描述文档;3.对需求进行分析和评估,并制定相应的解决方案;4.与客户达成共识,并形成正式的需求确认书。
三、设计在需求分析完成之后,开发团队需要根据需求分析结果进行软件设计。
软件设计是软件开发的核心环节,它涉及到软件的架构设计、模块设计、功能设计等方面。
在软件设计过程中,需要注意以下几点:1.采用适当的设计模式和编程语言,确保软件的可扩展性和可维护性;2.充分利用已有的软件框架和组件,提高开发效率;3.优先考虑软件的质量和性能,避免在后期进行大规模的修改和维护;4.对设计结果进行评审,并不断进行优化和改进。
四、编码编码是将设计结果转化为实际代码的过程。
在编码的过程中,需要遵循以下几个原则:1.保持良好的代码风格和命名规范,使代码易读易维护;2.遵循模块化的设计原则,确保代码的可拓展性;3.有效利用代码注释,方便后期维护和修改;4.进行代码测试和代码评审,确保代码的质量和稳定性。
五、测试测试是软件开发过程的最后一个环节,也是最关键的一个环节。
在测试过程中,需要充分测试软件的各个功能,确保软件的质量和稳定性。
测试的过程中,需要遵循以下几个原则:1.充分利用自动化测试工具,提高测试效率和准确性;2.严格遵循测试用例,确保测试覆盖度和测试质量;3.进行回归测试,确保每次测试结果的稳定性;4.及时处理测试结果,对发现的问题进行改进和优化。
软件开发流程从需求到交付的全过程管理

软件开发流程从需求到交付的全过程管理在软件开发领域,有效的项目管理和流程控制是确保项目顺利完成的关键。
本文将从需求分析、设计、开发、测试、交付等方面,探讨软件开发全过程的管理。
一、需求分析需求分析是软件开发的起点,也是重要的一步。
在需求分析阶段,项目团队需要与客户充分沟通、理解客户的需求和期望,确保开发出符合客户要求的软件产品。
为了有效管理需求分析,建议项目团队采用以下流程:1. 收集需求:与客户进行会议或访谈,了解需要解决的问题和功能要求,记录并整理需求。
2. 需求优先级确定:根据需求的重要性和紧急程度,确定需求的优先级,以便在开发过程中优先考虑。
3. 需求可行性评估:评估需求的可行性,包括技术可行性、资源可行性、时间可行性等方面。
4. 需求明细化:将高层次的需求细化为具体的功能需求,包括输入输出、界面设计等。
5. 需求确认:与客户进行确认,确保需求完整、准确,并获得客户的认可。
二、设计设计阶段是将需求转化为可执行方案的过程。
在设计阶段,项目团队需要根据需求分析的结果,制定合理的架构设计和系统设计,以确保软件开发过程高效有序。
为了有效管理设计阶段,建议项目团队采用以下流程:1. 架构设计:确定系统的总体结构,包括系统层次结构、模块划分和模块之间的关系。
2. 详细设计:基于架构设计,进行更加详细的设计,包括数据库设计、算法设计、界面设计等。
3. 设计评审:进行设计评审,确保设计方案符合需求,并得到开发团队的认可。
4. 设计文档编写:编写详细的设计文档,记录设计过程和设计决策,为开发人员提供参考。
三、开发开发阶段是根据需求和设计进行具体编码的过程。
在开发阶段,项目团队需要按照设计要求,进行代码编写、模块集成和单元测试,以确保软件的功能和质量。
为了有效管理开发阶段,建议项目团队采用以下流程:1. 任务分配:根据设计要求和人员技能,合理分配开发任务,并设定明确的工期和目标。
2. 编码实现:根据详细设计和编码规范,进行代码编写,并进行适当的注释和文档编写。
软件需求分析与管理的实践经验分享

软件需求分析与管理的实践经验分享随着信息技术的不断发展,软件作为一种重要的工具和产品,越来越成为现代社会的基础设施。
软件产品的质量和效率,往往取决于软件开发过程中的需求分析和管理。
作为一名软件项目开发人员,我在长期的实践中积累了一些有益的经验,现在就和大家分享一下。
需求分析阶段软件开发的第一步,是需求分析阶段。
这一阶段的主要任务是明确软件产品需要实现的功能,以及用户需求和业务流程。
在这个过程中,有以下需要注意的地方:1.与用户沟通:向用户了解需求,协商业务流程,是需求分析的核心。
需要注意的是,与用户沟通需要耐心细致,并且对用户的需求做出适当的引导和规范。
有时候用户提出的需求不一定是最好的解决方案,需要我们根据自己的专业知识提出更好的建议。
2.规范需求文档:在需求分析阶段,需要输出一份需求文档,这份文档必须规范明确,确保每个需求条目都包含完整的信息。
需要注意的是,需求文档中应该尽量避免使用模糊或者歧义的术语,否则可能会导致后续开发出现偏差或失误。
3.注重可行性分析:需求分析不仅要考虑用户需求,还要考虑项目的可行性和成本效益。
需求分析师需要对项目的技术、人员和资源情况有一定的了解,确保提出的需求能在预算和时间范围内实现。
同时,在需求分析的过程中,还需要对具体的业务流程进行分析,确保提出的需求能够符合实际操作的要求。
4.注重需求的变更控制:软件需求是动态变化的,需要采取一定的变更控制措施。
在需求变更的时候,需要对变更内容进行评估,并且及时更新需求文档,同时也需要确保变更后的需求与其他模块的需求不发生冲突。
需求管理阶段需求管理是软件开发的一个重要环节。
在这个阶段,我们需要进行需求跟踪、需求评审、需求变更等管理工作。
以下是我在需求管理方面的一些经验:1.建立需求跟踪矩阵:需求跟踪矩阵是一个重要的工具,它可以帮助我们追踪不同版本的需求状态,并且清楚地了解每个需求的实现情况和质量。
在建立需求跟踪矩阵的时候,需要清晰地定义需求状态、进展情况,并且与需求文档保持同步更新。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要需求开发与管理是软件项目中一项十分重要的工作,据调查显示在众多失败的软件项目中,由于需求原因导致的约占到45%,因此,需求工作将对软件项目能否最终实现产生至关重要的影响。
如何从各种各样的应用专业领域中特别是直接从最终用户处捕获需求,并完整、准确地予以描述与分析,需求工程成为研究的热点之一。
本文通过对需求工程的基本概念、需求开发和管理中的主要风险和对策进行研究和总结,希望在实践中加以应用,真正做好需求的开发和管理工作。
关键字:软件项目、需求工程、需求分析、需求开发、需求管理、X围管理、X围变更控制目录1软件需求和需求工程3 1.1软件需求的基本概念31.2软件需求的重要性31.3需求工程的基本概念41.4需求开发过程域41.5需求管理过程域51.6需求工程的一些感悟52需求开发和管理的主要风险63需求开发和管理的主要对策6 3.1建立需求开发和管理工作机制需考虑的几个因素7 3.2需求开发和管理流程73.2.1需求调查73.2.2细化用户需求83.2.3撰写需求说明书83.2.4需求确认93.2.5需求跟踪103.2.6需求变更控制104总结13软件项目的需求开发和管理1软件需求和需求工程1.1 软件需求的基本概念在IEEE软件工程标准词汇表(1997年)中定义软件需求为:1)用户解决问题或达到目标所需的条件或能力。
2)系统或系统部件要满足合同、标准、规X或其它正式规定文档所需具有的条件或能力。
3)一种反映上面1)或2)所描述的条件或权能的文档说明。
实通俗的讲,“需求”就是用户的需要,它包括用户要解决的问题、达到的目标、以及实现这些目标所需要的条件,它是一个程序或系统开发工作的说明,表现形式一般为文档形式。
所以我们可以理解,软件需求来源于用户的一些“需要”,这些“需要”被分析、确认后形成完整的文档,该文档详细地说明了产品“必须或应当”做什么。
1.2 软件需求的重要性软件需求是整个产品链的源头,需求工作的优劣将直接影响到产品的设计,生产,销售和维护的全过程。
就像一条河流,如果源头被污染了,那么整条河流也就被污染了。
Frederick Brooks在他的经典文章“No Silver Bullet”是这样描述需求的重要性的:开发软件系统最困难的部分就是准确说明开发什么。
最困难的概念性工作是编写出详细的需求,包括所有面向用户、面向机器和其它软件系统的接口。
此工作一旦做错,将会给系统带来极大的损害,并且以后对它修改也极为困难。
1.3 需求工程的基本概念1)把所有与需求直接相关的活动通称为需求工程。
2)需求工程中的活动可分为两大类,一类属于需求开发,另一类属于需求管理。
3)需求工程的结构图图1:需求工程结构图1.4 需求开发过程域1)需求开发的目的是通过调查与分析,获取用户需求并定义产品需求。
2)需求调查的目的是通过各种途径获取用户的需求信息(原始材料),产生《用户需求说明书》。
3)需求分析的目的是对各种需求信息进行分析,消除错误,刻画细节等。
常见的需求分析方法有“问答分析法”和“建模分析法”两类。
4)需求定义的目的是根据需求调查和需求分析的结果,进一步定义准确无误的产品需求,产生《产品需求规格说明书》。
系统设计人员将依据《产品需求规格说明书》开展系统设计工作。
1.5 需求管理过程域1)需求管理的目的是在客户与开发方之间建立对需求的共同理解,维护需求与其它工作成果的一致性,并控制需求的变更。
2)需求确认是指开发方和客户共同对需求文档进行评审,双方对需求达成共识后作出书面承诺,使需求文档具有商业合同效果。
3)需求跟踪是指通过比较需求文档与后续工作成果之间的对应关系,建立与维护“需求跟踪矩阵”,确保产品依据需求文档进行开发。
4)需求变更控制是指依据“变更申请-审批-更改-重新确认”的流程处理需求的变更,防止需求变更失去控制而导致项目发生混乱。
1.6 需求工程的一些感悟1)不论是合同项目还是自主研发的产品,都必须开展需求开发和需求管理活动。
2)开发者对待需求工程的态度可分“被动型”、“主动型”和“领先型”三种,只有后两种才有可能开发出成功的产品。
a)“被动型”是指开发者被动地对待需求工程中的各项活动,能少干则少干,能偷懒则偷懒。
他们认为需求是用户的事情而不是自己的事情。
开发过程中经常发生需求变更,导致产品迷失方向,不是半途而废就是陷入半死不活的状态。
b)“主动型”是指开发者积极地开展需求工程中的各项活动。
他们把获取准确的需求当作自己的职责,会想尽一切办法克服需求开发和需求管理过程中的困难,而不是找借口推卸责任。
俗话说“良好的开端是成功的一半”,“主动型”需求工程是开发成功产品的必备条件。
c)“领先型”是需求工程的最高境界。
开发者发掘了连用户自己都没有意识到的需求,导致用户跟着新产品跑而不是新产品围着用户转,这叫引导消费。
需求工程做到这个份上,才能使产品立于不败之地,长盛不衰。
2需求开发和管理的主要风险由于需求分析的参与人员、业务模式、投资、时间等客观因素的影响和需求本身具有主观性和可描述性差的特点,因此,需求分析工作往往面临着一些潜在的风险。
这些风险主要表现在:1)用户不能正确表达自身的需求。
这种情况往往会增加需求分析工作难度,分析人员需要花费更多的时间和精力与用户交流,帮助他们梳理思路,搞清用户的真实需求。
2)业务人员配合力度不够。
有的用户日常工作繁忙,他们不愿意付出更多的时间和精力向分析人员讲解业务,这样会加大分析人员的工作难度和工作量,也可能导致因业务需求不足而使系统无法使用。
3)用户需求的不断变更。
由于需求识别不全、业务发生变化、需求本身错误、需求不清楚或对应政策法规发生了变化等原因,需求在项目的整个生命周期都可能发生变化,一旦发生了需求变化,就不得不修改设计、重写代码、修改测试用例、调整项目计划等等,需求的变化就像是万恶之源,为项目的正常的进展带来不尽的麻烦。
4)忽略了用户的特点分析。
分析人员往往容易忽略了系统用户的特点,系统是由不同的人使用其不同的特性,使用频繁程度有所差异,使用者受教育程度和经验水平不尽相同。
如果忽略这些的话,将会导致有的用户对产品感到失望。
3需求开发和管理的主要对策首先需要建立一个有效的工作机制,只有建立了工作机制,才能保证需求工作按照既定方案执行,需求开发和管理的参与者才会在一种有序的状态下工作。
其次才是充分运用工作机制和个人能力去获取问题、分析问题、编写需求文档和进行需求管理。
3.1 建立需求开发和管理工作机制需考虑的几个因素1)抓住决策者最迫切和最关心的问题,引起重视。
用户方决策者对项目的关心重视程度是项目能否顺利开展的关键,决策者的真实意图也是用户方的最终需求,因此,在开发过程中要利用一切机会了解决策者关心的问题,同时也要引导他们了解和重视项目的开发,当决策者认识到项目的重要性时,需求分析工作在人力、物力、时间上就有了保障。
2)建立良好的沟通环境和氛围。
分析人员与用户沟通的程度关系到需求分析的质量,因此建立一个良好的沟通氛围、处理好分析人员与用户之间的关系显得尤其重要。
3)需求质量控制要制度化。
需求的变化是软件项目不可避免的事实,因此需求质量控制是一项艰苦的工作,要保证该项工作的顺利实施,就必须有制度保证,这个制度可以在项目质量控制方案中制定,该方案主要是具体化、定量化的描述用户要求,形成全面、一致、规X的软件需求分析规格说明书,明确需求分析规格说明书的工作程序和要素,规X开发活动,为后续软件设计、实现、测试、评审及验收提供依据。
3.2 需求开发和管理流程3.2.1需求调查1)首先,需求分析员起草需求调查问题表,将调查重点锁定在该问题表内,否则调查工作将变得漫无边际。
问题表可以是层次化的,随着调查的深入,问题表将不断地被细化。
问题表应当以“选择题”和“是非题”为主。
2)其次,需求分析员应当确定需求调查的方式。
例如:与用户交谈,向用户提问题,向用户群体发调查问卷等,还可以从用户的工作流程,相关文档以及行业标准、规则中提取需求。
分析已经存在的同类软件产品,提取需求。
3)最后,需求分析员与被调查者建立联系,确定调查的时间、地点、人员等,进行需求调查。
3.2.2细化用户需求根据用户需求调查,对用户的需求进行细化,对比较复杂的用户需求进行建模分析,以帮助软件开发人员更好地理解需求。
例如采用Rational 的Rose工具进行需求的建模分析。
3.2.3撰写需求说明书需求分析员按照指定的文档模板撰写《需求说明书》。
《需求说明书》的参考模板如下:图2:《需求说明书》参考模板3.2.4需求确认需求确认是指开发方和客户方共同对《需求说明书》进行评审,双方对需求达成共识后作出承诺。
需求确认包括两方面的工作:“需求评审”和“需求承诺”。
1)需求评审:对需求的必要性和可行性进行分析,确定需求文档。
2)需求承诺:开发方和客户方的对通过了正式技术评审的《需求说明书》做出承诺,按照“变更控制规程”执行,明确指出需求的变更将导致双方重新协商成本、资源和进度等。
3.2.5需求跟踪需求跟踪的目的是建立与维护“需求-设计-编程-测试”之间的一致性,确保所有的工作成果符合用户需求。
需求跟踪有两种方式:1)正向跟踪:检查《需求说明书》中的每个需求是否都能在后继工作成果中找到对应点。
2)逆向跟踪:检查设计文档、代码、测试用例等工作成果是否都能在《需求说明书》中找到出处。
正向跟踪和逆向跟踪合称为“双向跟踪”。
不论采用何种跟踪方式,都要建立与维护需求跟踪矩阵。
需求跟踪矩阵保存了需求与后继工作成果的对应关系。
3.2.6需求变更控制3.2.6.1 需求变更的原因在软件项目中,变更可能来自方案服务商、客户或产品供应商等,也可能来源于项目组内部。
虽然需求变更的表现形式千差万别,但究其根本不外乎以下几种原因:1)X围没有圈定就开始细化。
细化工作是由需求分析人员完成的,一般是根据用户提出的描述性的、总结性的短短几句话去细化的,提取其中的一个个功能,并给出描述(正常执行时的描述和意外发生时的描述)。
当细化到一定程度后并开始系统设计时,X围会发生变化,那细节用例的描述可能就有很多要改动。
2)没有指定需求的基线。
3)没有良好的软件结构适应变化。
3.2.6.2 如何控制需求变更为了将项目变更的影响降低到最小,就需要采用项目X围变更控制方法。
进行项目X围变更控制的主要依据是X围管理计划、变更请求和提供了项目执行状况信息的绩效报告。
按照现代项目管理的概念,一个项目的生命周期分为启动、计划、执行、监控、收尾五个过程组。
X围变更的控制不应该只是项目实施过程考虑的事情,而是要分布在整个项目生命周期的全过程。
1)项目启动、计划阶段的变更预防。
对于任何项目,变更都无可避免,也无从逃避,只能积极应对,这个应对应该是从项目启动的需求分析阶段就开始了。