项目管理 软件目的需求开发与管理
- 格式:docx
- 大小:14.87 KB
- 文档页数:13
软件项目管理中的需求管理与变更管理1. 引言在软件项目管理中,需求管理与变更管理是软件开发过程中非常重要的一环。
正确的需求管理能够保证软件开发人员真正理解客户对软件系统的需求,从而开发出符合客户要求的软件;变更管理能够帮助团队应对客户需求的变化,及时做出调整,保证软件开发项目能够按时交付。
2. 需求管理需求管理是软件开发过程中的一项基本管理活动,也是软件开发的第一步。
在需求管理中,开发团队需要与客户多次沟通,理解客户的需求,分析客户的需求,确定开发目标,明确开发计划。
需求管理分为需求获取、需求分析、需求确认、需求跟踪等多个阶段。
2.1 需求获取需求获取是需求管理的第一步,其目的是收集客户的需求,确定客户的真正需求。
在需求获取中,软件开发团队需要耐心听取客户的需求,整理好客户对软件系统的要求,以便进一步分析和确认。
2.2 需求分析需求分析是在需求获取的基础上,分析客户需求,将需求明确具体化,并进行可行性分析。
在需求分析中,开发人员需要对客户的需求进行分类、整理、分析,明确需求的重要性、优先级,以便为开发进一步制定计划。
2.3 需求确认需求确认是需求管理中最为重要的一个环节。
在需求确认中,开发团队需要将对客户需求的分析结果提交给客户,进行确认和讨论。
在确定客户需求与软件开发的实际情况相符后,团队可以开始软件开发工作;若客户对需求分析结果存在异议,则需要进一步与客户沟通,以修改、确认需求。
2.4 需求跟踪需求跟踪是一项重要的需求管理工作。
在需求跟踪中,开发团队需要跟踪需求的变化,及时进行调整,确保软件开发项目可以按时交付。
此外,需求跟踪还可以帮助团队分析需求变更的原因和趋势,优化需求管理的流程。
3. 变更管理变更管理是软件开发过程中一项非常重要的管理活动,它负责跟踪、评估、协调和实现识别的软件问题,以期使软件产品能够按时按质量要求交付。
变更管理包括变更识别、变更控制、变更评估、变更实现等四个方面。
3.1 变更识别变更识别是变更管理中的第一步,其目的是识别软件开发过程中出现的问题,及早发现潜在的问题,并及时进行处理。
软件开发的具体流程与管理制度详解软件开发管理制度第⼀节总则第⼀条为规范⾃有软件研发以及外包软件的管理⼯作,特制定本制度。
本制度适⽤于公司总公司软件研发与管理,分公司参照执⾏。
第⼆条本制度中软件开发指新系统开发和现有系统重⼤改造。
第三条本制度中⾃⾏开发是指主要依赖公司⾃⾝的管理、业务和技术⼒量进⾏系统设计、软件开发、集成和相关的技术⽀持⼯作,⼀般仅向外购置有关的硬件设备和⽀撑软件平台;合作开发是公司与专业IT公司(合作商)共同协作完成IT应⽤的项⽬实施和技术⽀持⼯作,⼀般形式是公司负责提供业务框架,合作商提供技术框架,双⽅组成开发团队进⾏项⽬实施,IT系统的⽇常⽀持由研发部和合作商共同承担,研发负责内部⽀持,合作商负责外部⽀持;外包开发是指将IT应⽤项⽬的设计、开发、集成、培训等任务承包给某家专业公司(可以是专业的IT公司或咨询公司等),由该公司(承包商)负责应⽤项⽬的实施。
第四条软件开发遵循项⽬管理和软件⼯程的基本原则。
项⽬管理涉及⽴项管理、项⽬计划和监控、配置管理、合作开发管理和结项管理。
软件⼯程涉及需求管理、系统设计、系统实现、系统测试、⽤户接受测试、试运⾏、系统验收、系统上线和数据迁移。
第五条除特别指定,本制度中项⽬组包括业务组(营销部、运维部)、IT组(研发部和合作开发商)。
第⼆节⽴项管理第六条提出开发需求的营销部、运维部等业务部门参与公司层⾯⽴项,研发部进⾏⽴项的技术可⾏性分析,共同编写《⽴项分析报告》(附件⼀),开展前期筹备⼯作。
《⽴项分析报告》应明确项⽬的范围和边界。
第七条应⽤系统主要使⽤部门将《⽴项分析报告》上交公司进⾏⽴项审批,以保证系统项⽬与公司整体策略相⼀致。
第⼋条《⽴项分析报告》得到批准后,成⽴项⽬组(如果是外包开发,则成⽴外包商项⽬组;如果是合作开发,则与外包商共同成⽴合作开发项⽬组,以下统称“项⽬组”),项⽬组应包括业务组(由公司相关业务部门组成)和IT组(⾃⾏开发为研发部;外包开发为外包商成员;合作开发为研发部和外包商成员)。
软件需求管理制度一、引言软件需求是软件开发的基础,正确、清晰和完整的需求对于软件项目的成功至关重要。
因此,建立一套科学、合理、可行的软件需求管理制度,对于提高软件开发的效率和质量具有重要意义。
本文将介绍一套软件需求管理制度的具体要求和实施流程。
二、软件需求管理制度的目的1. 确保软件需求的正确性和完整性,避免软件项目中需求变更的频繁发生。
2. 提高软件项目的可计划性和可控性,减少项目风险。
3. 加强开发人员与用户之间的沟通和协调,确保软件需求与用户期望一致。
4. 提高软件开发的效率和质量,减少项目资源浪费。
三、软件需求管理制度的内容1. 需求获取(1)建立需求收集机制,明确需求收集的渠道和方式。
(2)组织需求调研和需求分析工作,确保对需求的准确理解和全面收集。
(3)建立需求库,对收集到的需求进行分类和整理,形成清晰的需求文档。
2. 需求分析(1)设立专门的需求分析小组,由业务人员和项目开发人员共同参与。
(2)审查需求文档,梳理需求之间的依赖关系,划分基本需求和衍生需求。
(3)为每个需求分配唯一的标识符,确保需求的唯一性和可追踪性。
3. 需求确认(1)与用户进行需求确认,明确用户的需求和期望。
(2)建立需求确认记录,确保用户需求的一致性和稳定性。
(3)及时处理用户对需求的新要求和变更。
4. 需求变更管理(1)建立需求变更流程,包括变更申请、变更审批、变更实施和变更验证等环节。
(2)严格控制需求变更,实施变更评估和变更影响分析,避免不必要的需求变更。
5. 需求跟踪与追踪(1)建立需求跟踪表,记录每个需求的实现进度和质量状况。
(2)及时发现并解决需求实现过程中遇到的问题和阻碍。
6. 需求发布和交付(1)按照发布计划和交付计划,组织需求的发布和交付工作。
(2)建立需求发布和交付评审机制,确保需求的质量和可靠性。
四、软件需求管理制度的实施流程1. 需求管理小组负责制定和修订软件需求管理制度,明确责任和权限。
管理目标1、所有关系人清晰明确地了解工程的需求和期望,努力做到满足工程所有关系人的不同需求;工程关系人包括:工程团队成员和工程团队外(内部/外部客户,内部/外部合作伙伴,经销商/客户等)。
2、工程管理三要素平衡(时间/成本/质量),即开发工程按需按时按质的完成。
3、目标:功能满足需求,设计支持变化,开发快速迭代,成果持续交付。
执行概述1、建立有效的工作流程保证工程的顺利进行,初期使用传统RUP过程,引入部分敏捷方法,团队磨合完成后逐步实现敏捷开发全流程管理。
2、明确工程目标,制定具有可行性的工程计划,有效明确的分解工程需求。
3、跟踪设计/开发/测试/回归/发布全流程,推动工程按预定计划执行。
4、解决工程过程中出现的问题和冲突,一般集中在需求不明/工作量或时长/开发难度/跨部门协调等几个方面。
5、调动开发团队的积极性,创造力,推动团队成员在工程过程中的学习成长。
6、风险识别、风险控制以及风险的预案。
工程管理1、需求阶段对工程进行技术可行性分析、技术评估、成本评估以及风险评估。
与需求提出方的代表进行需求讨论,明确工程的目标、价值。
确定工程范围、功能及优先级。
组建工程团队,特别要搞清楚工程的关键人。
工程启动会议,相关的关系人都必须参加。
2、设计阶段根据确认后的软件需求规格说明书,制定工程进度计划,工作任务分解(WBS);资源申请,工程涉及到的开发资源、测试资源、设计资源(包括人员和软硬件资源);数据库设计;系统设计;文档(包括系统用例、Demo、测试用例等);评审会议。
设计阶段结果交付一般为系统用例/系统原型/系统设计文档(概要设计和详细设计)/数据库设计文档等。
该阶段交付成果需要进行评审。
3、执行阶段(开发和测试)准备开发环境、测试环境。
跟踪,推动工程按计划进行。
工程成员以日报/工程负责人以周报的形式通报各关系人当前工程的进展情况。
按里程碑对阶段成果进行评估,以确保该阶段完成的质量。
代码审核,包括CS审核、SQL审核、WEB审核等。
企业级应用软件开发项目管理与实践企业级应用软件是指为了满足企业管理和业务流程的需要,专门针对企业内部实现自我管理以及企业与外部系统协同工作的软件。
这类软件不仅涵盖面广,而且功能复杂,开发周期长,维护成本高,因此企业级应用软件开发项目的管理显得尤为重要。
本文将从需求分析、开发阶段、测试阶段、发布阶段和维护阶段五个方面来讲述企业级应用软件开发项目的管理与实践。
一、需求分析需求分析是企业级应用软件开发的第一步,对于软件的成功实施和保障运行以及协同工作都至关重要。
首先,项目经理应该与使用人员和管理人员进行沟通交流,收集用户需求、功能需求、性能需求以及安全需求等信息。
其次,开发团队应该对收集到的需求进行梳理和分类,确定需求的优先级。
最后,应对需求进行分析,明确需求的可行性,确定需求是否在预算范围内,评估开发难度和维护难度,确保需求能够满足客户实际需求并满足业务流程的需求。
二、开发阶段开发阶段是企业级应用软件开发的核心阶段,其关键是要满足项目预算、时间和质量的要求。
在开发阶段,需要遵循良好的开发流程。
首先,开发团队应该通过设立代码审查制度,确保代码质量符合标准。
其次,开发团队应该进行合理的任务分配和时间安排。
在开发过程中,应该及时进行代码提交、测试、维护和更新,确保高质量的软件交付。
三、测试阶段测试阶段是确保开发出来的软件质量的重要过程,包括集成测试、功能测试、性能测试和安全测试等。
在测试阶段,应该对项目进行有针对性的测试,持续改进测试方法。
首先,对测试用例的编写应该充分考虑测试覆盖率,确保每一个模块都能够得到完整的测试覆盖。
其次,在测试前应该进行测试计划的制定,以确保测试的全面性和有效性。
最后,应该建立缺陷数据库,记录测试过程中发现的缺陷,并及时进行修复。
四、发布阶段发布阶段是企业级应用软件开发的最后一个阶段,其目标是将软件交付给客户使用,并对客户进行培训。
在发布阶段,需要做好软件上线前的准备工作。
首先,应该制定上线计划,确保上线的流程和时间能符合客户的需求。
软件工程项目管理实践软件工程项目管理是指对软件开发过程进行规划、组织、协调和控制,以实现项目目标的过程。
在软件开发过程中,项目管理的实践起着至关重要的作用。
本文将从项目计划、团队管理和风险控制等方面探讨软件工程项目管理的实践。
一、项目计划项目计划是软件工程项目管理的基础,具体包括项目目标、项目范围、项目进度和项目资源等四方面内容。
1. 项目目标项目目标是软件工程项目的价值所在,明确项目的目的和预期成果。
项目经理应与项目相关方充分沟通,确保项目目标明确、具体且可衡量。
2. 项目范围项目范围确定软件开发过程中应包含的功能和特性。
细化和明确项目范围有助于避免项目需求不断变更的问题。
3. 项目进度项目进度是软件工程项目按计划完成各个阶段和任务的时间安排。
项目经理需要根据项目目标和范围制定详细的项目进度计划,并对其进行有效管理和跟踪。
4. 项目资源项目资源包括人力资源、物质资源和财务资源等。
项目经理应根据项目计划的需求,合理分配和利用资源,确保项目的顺利进行。
二、团队管理团队管理是软件工程项目管理中不可或缺的一环,有效的团队管理可以提高团队成员的工作效率和积极性。
1. 团队建设团队建设包括团队成员的选拔、培训和激励等。
项目经理应根据项目需求和团队成员的能力和特长,合理分配任务和角色,搭建一个高效协作的团队。
2. 沟通协作良好的沟通协作是团队管理的关键。
项目经理应建立起开放、透明和高效的沟通机制,促进团队成员之间的有效沟通和协同工作。
3. 目标导向项目经理应明确团队的工作目标,并对团队成员进行激励和奖励,以提高工作的积极性和团队凝聚力。
三、风险控制软件工程项目管理过程中,风险无处不在,项目经理应积极主动地进行风险识别、分析和控制。
1. 风险识别项目经理应对项目的各个方面进行全面分析,识别和评估潜在的风险。
通过制定风险清单,及时发现并处理可能对项目造成威胁的问题。
2. 风险分析风险分析是对已经识别的风险进行进一步的评估和分析。
软件开发管理规范一、引言软件开发管理规范旨在确保软件开发过程的高效性、质量和可靠性,以满足用户的需求并提供可持续的软件解决方案。
本文档将详细描述软件开发管理的各个方面,包括项目计划、需求分析、设计、编码、测试、发布和维护等。
二、项目计划1. 项目目标和范围定义项目的目标和范围,明确软件开发的目的和预期成果。
2. 项目计划和时间安排制定详细的项目计划,包括里程碑、任务分解和时间安排等,以确保项目按时交付。
3. 资源分配和管理确定项目所需的人力、物力和财力资源,并进行合理的分配和管理。
4. 风险管理识别项目风险并制定相应的风险管理计划,包括风险评估、应对策略和风险监控等。
三、需求分析1. 需求收集和确认与用户和相关利益相关者合作,收集和确认软件需求,确保需求的准确性和完整性。
2. 需求分析和规格说明对需求进行分析和整理,编写详细的需求规格说明文档,包括功能需求、非功能需求和用户界面设计等。
3. 需求变更管理建立需求变更管理机制,确保对需求变更的及时评估、审批和实施。
四、设计1. 系统架构设计设计软件系统的整体架构,包括模块划分、组件设计和接口定义等。
2. 数据库设计设计和规划数据库结构,包括表结构、关系和约束等。
3. 界面设计设计用户界面,包括界面布局、交互设计和视觉效果等。
五、编码1. 编码规范制定统一的编码规范,包括命名规则、代码风格和注释要求等,以提高代码的可读性和可维护性。
2. 编码实践采用合适的开发工具和技术,进行模块化开发、单元测试和代码审查等。
六、测试1. 测试策略和计划制定详细的测试策略和计划,包括测试目标、测试方法和测试资源的分配等。
2. 单元测试对软件的各个模块进行单元测试,确保模块的功能和性能符合预期。
3. 集成测试对软件的各个模块进行集成测试,验证模块之间的交互和整体功能。
4. 系统测试对整个软件系统进行系统测试,验证系统的功能、性能和稳定性。
七、发布和维护1. 发布计划制定详细的发布计划,包括版本管理、发布时间和发布方式等。
需求开发和管理过程附需求调研指南1. 前言1.1 意图和价值意图:明确需求,确保利益相关者的共同理解,并调整需求、计划和工作产品。
价值:确保客户的需求和期望得到满足。
1.2 适用范围本过程文档是项目经理需求开发人员(包括:售前市场人员、需求调研人员等)执行需求开发与管理过程活动的依据和指导。
本过程适用于公司所有软件项目,且贯穿于整个生命周期。
1.3 名词术语用户需求是用户对要建立的系统的要求描述,它主要说明用户“要做什么”、“想做什么”的问题。
软件需求也叫产品需求,是软件产品能否满足用户需求的要求描述,它主要说明软件产品“能做什么”、“不能做什么”的问题。
2. 过程定义2.1 角色和职责2.2 入口准则需求开发人员已经确定;初步的《项目计划》已经通过评审。
2.3 输入初步的《项目计划》;《项目合同》;《技术解决方案》;客户原始需求文档。
2.4 过程活动需求阶段包括需求开发和需求管理两个过程活动。
需求开发过程需求开发过程是获取用户需求并对用户需求进行分析整理形成软件需求的过程。
需求开发过程可以包括用户需求调研、用户需求分析、软件需求定义和软件需求评审四个过程,也可以根据具体情况对该过程进行裁减。
需求开发的结果文档包括用户需求类文档、软件需求类文档、有时为了满足软件产品前期设计的需要,也会制作形成业务模型、数据字典、系统开发原型(Demo)文档等。
所有的需求文档经过用户和开发方双方评审认可并签字后,形成项目的需求基线。
需求管理过程需求管理是在需求文档基线化后,对需求实现的跟踪以及当需求发生变更时,对需求变更进行控制和管理的过程。
需求管理包括变更控制、版本控制、需求跟踪过程。
需求管理同时包括变更的需求及相关需求之间的关系管理。
2.4.1 需求开发过程2.4.1.1 用户需求调研在项目正式立项后,项目经理组建需求开发团队,需求开发人员根据初步《项目计划》、客户原始需求文档(包括:市场人员从客户那里得到的初步需求文档,投标文件中定义的技术方案内容等),确定需求调研时间及需求获取相关干系人,并将此活动更新到《干系人计划》中,同时制定出《需求调研计划》。
项目管理——软件目的需求开发与管理需求开发与管理是软件项目中一项十分重要的工作,据调查显示在众多失败的软件项目中,由于需求原因导致的约占到45%,因此,需求工作将对软件项目能否最终实现产生至关重要的影响。
虽然如此,在项目开发工作中,很多人对需求的认识还远远不够,从本人参与或接触到的一些项目来看,小到几十万元,大到上亿元的软件项目的需求都或多多少的存在问题,有的是开发者本身不重视原因、有的是技术原因、有的是人员组织原因、有的是沟通原因、有的是机制原因,以上种种原因都表明做好软件需求开发是一项系统工作,而不是简单的技术工作,只有系统的了解和掌握需求的基本概念、方法、手段、评估标准、风险等相关知识,并在实践中加以应用,才能真正做好需求的开发和管理工作。
本文将通过介绍关于软件需求的基本知识和个人在实际工作中总结的一些经验,帮助读者了解软件需求,学习需求开发的一些基本方法,避免因需求原因而导致的项目失败。
1 什么是软件需求和需求工程1.1 软件需求的定义在IEEE软件工程标准词汇表(1997年)中定义软件需求为:(1)用户解决问题或达到目标所需的条件或能力。
(2)系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或能力。
(3)一种反映上面(1)或(2)所描述的条件或权能的文档说明。
实通俗的讲,“需求”就是用户的需要,它包括用户要解决的问题、达到的目标、以及实现这些目标所需要的条件,它是一个程序或系统开发工作的说明,表现形式一般为文档形式。
1.2 需求工程的定义需求分析的过程,也叫做需求工程和需求阶段,它包括了需求开发和需求管理两个部分。
需求开发是指从情况收集、分析和评价到编写文档、评审等一系列产生需求的活动,分为四个阶段:情况获取、分析、制订规格说明和评审。
这四个阶段不一定是遵循线性顺序的,他们的活动是相互独立和反复的。
需求管理是软件项目开发过程中控制和维持需求约定的活动,它包括:变更控制、版本控制、需求跟踪、需求状态跟踪等工作。
2 需求分析的风险由于需求分析的参与人员、业务模式、投资、时间等客观因素的影响和需求本身具有主观性和可描述性差的特点,因此,需求分析工作往往面临着一些潜在的风险。
这些风险主要表现在:(1)用户不能正确表达自身的需求。
在实际开发过程中,常常碰到用户对自己真正的需求并不是十分明确的情况,他们认为计算机是万能的,只要简单的说说自己想干什么就是把需求说明白了,而对业务的规则、工作流程却不愿多谈,也讲不清楚。
这种情况往往会增加需求分析工作难度,分析人员需要花费更多的时间和精力与用户交流,帮助他们梳理思路,搞清用户的真实需求。
(2)业务人员配合力度不够。
有的用户日常工作繁忙,他们不愿意付出更多的时间和精力向分析人员讲解业务,这样会加大分析人员的工作难度和工作量,也可能导致因业务需求不足而使系统无法使用。
(3)用户需求的不断变更。
由于需求识别不全、业务发生变化、需求本身错误、需求不清楚等原因,需求在项目的整个生命周期都可能发生变化,因此,我们要认识到,软件开发的过程实际上是同变化做斗争的过程,需求变化是每个开发人员、项目管理人员都会遇到的问题,也是最头痛的问题,一旦发生了需求变化,就不得不修改设计、重写代码、修改测试用例、调整项目计划等等,需求的变化就像是万恶之源,为项目的正常的进展带来不尽的麻烦。
(4)需求的完整程度。
需求如何做到没有遗漏?这是一个大问题,大的系统要想穷举需求几乎是不可能的,即使小的系统,新的需求也总会不时地冒出来。
一个系统很难确定明确的范围并把所有需求一次性提出来,这会导致开发人员在项目进展中去不断完善需求,先建立系统结构再完成需求说明,造成返工的可能性很大,会给开发人员带来挫折感,降低他们完成项目的信心。
(5)需求的细化程度。
需求到底描述到多细,才算可以结束了?虽然国家标准有需求说明的编写规范,但具体到某一个需求上,很难给出一个具体的指标,可谓仁者见仁,智者见智,并没有定论。
需求越细,周期越长,可能的变化越多,对设计的限制越严格,对需求的共性提取要求也越高,相反,需求越粗,开发人员在技术设计时不清楚的地方就越多,影响技术设计。
(6)需求描述的多义性。
需求描述的多义性一方面是指不同读者对需求说明产生了不同的理解;另一方面是指同一读者能用不同的方式来解释某个需求说明。
多义性会使用户和开发人员等项目参与者产生不同的期望,也会使开发、测试人员为不同的理解而浪费时间,带来不可避免的后果便是返工重做。
(7)忽略了用户的特点分析。
分析人员往往容易忽略了系统用户的特点,系统是由不同的人使用其不同的特性,使用频繁程度有所差异,使用者受教育程度和经验水平不尽相同。
如果忽略这些的话,将会导致有的用户对产品感到失望。
(8)需求开发的时间保障。
为了确保需求的正确性和完整性,项目负责人往往坚持要在需求阶段花费较多的时间,但用户和开发部门的领导却会因为项目迟迟看不到实际成果而焦虑,他们往往会强迫项目尽快往前推进,需求开发人员也会被需求的复杂和善变折腾的筋疲力尽,他们也希望尽快结束需求阶段。
3 如何做好需求工作需求分析是软件项目开发中最困难的一项工作,它不仅要求分析人员具有丰富的需求分析经验和良好的专业素质,还要求分析人员具有良好的学习能力、公关能力、语言能力和组织能力。
在实际工作中分析人员要面对不同的单位、不同的部门、不同的人员、不同的文化、不同的关系、不同的管理水平等等不同的情况,面对如此纷繁复杂的环境,如何做好需求分析工作?首先需要建立一个有效的工作机制,只有建立了工作机制,才能保证需求工作按照既定方案执行,需求开发和管理的参与者才会在一种有序的状态下工作。
其次才是充分运用工作机制和个人能力去获取问题、分析问题、编写需求文档和进行需求管理。
3.1 建立需求分析工作机制需考虑的几个因素(1)抓住决策者最迫切和最关心的问题,引起重视。
用户方决策者对项目的关心重视程度是项目能否顺利开展的关键,决策者的真实意图也是用户方的最终需求,因此,在开发过程中要利用一切机会了解决策者关心的问题,同时也要让他们了解项目的情况。
在诸如谈判、专题汇报、协调会议、领导视察、阶段性成果演示等过程中用简短明确的语言或文字抓住领导最关心的问题,引导他们了解和重视项目的开发,当决策者认识到项目的重要性时,需求分析工作在人力、物力、时间上就有了保障。
(2)建立组织保障,明确的责任分工。
项目开发一般都会成立相应的项目组或工程组,目前,常见的组织形式是:产品管理组、质量与测试组、程序开发组、用户代表组和后勤保障组,各组的主要分工是:产品管理组负责确定和设置项目目标,根据需求的优先级确定功能规范,向相关人员通报项目进展。
程序管理组负责系统分析,根据软件开发标准协调日常开发工作确保及时交付开发任务,控制项目进度。
程序开发组负责按照功能规范要求交付软件系统。
质量与测试组负责保证系统符合功能规范的要求,测试工作与开发工作是独立并行的。
用户代表组负责代表用户方提出需求,负责软件的用户方测试。
后勤保障组负责确保项目顺利进行的后勤保障工作。
(3)建立良好的沟通环境和氛围。
分析人员与用户沟通的程度关系到需求分析的质量,因此建立一个良好的沟通氛围、处理好分析人员与用户之间的关系显得尤其重要,一般情况,用户作为投资方会有一些心理优势,希望他们的意见得到足够的重视,分析人员应该充分的认识到这一点,做好心理准备,尽量避免与他们发生争执,因为我们的目的是帮助用户说出他们的最终需要。
在沟通时分析人员应注意以下几个方面:1)态度上要尊重对方,但不谦恭。
谦恭可能会让用户一时感到满意,但对长期合作并没有好处,尤其是在发生冲突的时候,用户会习惯性地感到自己的优势,而忽略分析人员地意见。
2)分析人员要努力适应不同用户的语言表达方式。
每个人都有自己的表达方式,所以优秀的分析人员应该是一个优秀的“倾听者”,他们能很快的适应用户的语言风格,理解他们的意思。
3)善于表达自己,善于提问。
分析人员在开口前应该先让对方充分表达他的意思,在领会了后,自己再说,尽量不要抢话。
4)工作外的交流有助于增进理解,加强沟通。
(4)需求质量控制要制度化需求的变化是软件项目不可避免的事实,因此需求质量控制是一项艰苦的工作,要保证该项工作的顺利实施,就必须有制度保证,这个制度可以在项目质量控制方案中制定,该方案主要是具体化、定量化的描述用户要求,形成全面、一致、规范的软件需求分析规格说明书,明确需求分析规格说明书的工作程序和要素,规范开发活动,为后续软件设计、实现、测试、评审及验收提供依据。
在方案中要明确项目组各部门关于需求质量控制的职责,制定需求分析的工作程序,包括编制需求分析工作计划、编制《需求分析说明书》、《需求分析规格说明书》的评审和确认、《需求分析规格说明书》修改控制、确定需求质量控制的质量记录文档规范等内容。
3.2 需求开发与管理的一些方法需求开发是一项复杂的工作,使用的方法也很多,不同的开发方式有不同的方法,这里简单介绍一些相关的方法:(1)绘制关联图:绘制系统关联图是用于定义系统与系统外部实体间的界限和接口的简单模型。
(2)可行性分析:在允许的成本、性能要求下,分析每项需求实施的可行性,提出需求实现相关风险,包括与其它需求的冲突,对外界因素的依赖和技术障碍。
(3)需求优先级:确定使用实例、产品特性或单项需求实现的优先级别。
以优先级为基础确定产品版本将包括哪些特性或哪类需求。
(4)系统原型:当用户自身对有的需求不十分清楚时,我们可以建立一个系统原型,用户通过评价原型更好地理解所要解决的问题。
(5)图形分析模型:绘制图形分析模型是编制软件需求规格说明重要手段。
它们能帮助分析人员理清数据、业务模式、工作流程以及他们之间的关系,找出遗漏、冗余和不一致的需求。
这样的模型包括数据流图、实体关系图、状态变换图、对话框图、对象类及交互作用图。
(6)数据字典:数据字典是对系统用到的所有数据项和结构的定义,以确保开发人员使用统一的数据定义。
在需求阶段,数据字典至少应定义客户数据项,确保客户与开发小组是使用一致的定义和术语。
(7)质量功能调配:质量功能调配是一种高级系统技术,它将产品特性、属性与对客户的重要性联系起来。
该技术提供了一种分析方法以明确哪些是客户最为关注的特性。
它将需求分为三类:期望需求、普通需求、兴奋需求。
需求管理的目的就是要控制和维持需求事先约定,保证项目开发过程的一致性,使用户得到他们最终想要得产品。
需求管理的方法主要包括以下一些方面:1)确定需求变更控制过程。
制定一个选择、分析和决策需求变更的过程,所有的需求变更都需遵循此过程。
2)进行需求变更影响分析。
评估每项需求变更,以确定它对项目计划安排和其它需求的影响,明确与变更相关的任务并评估完成这些任务需要的工作量。