软件目的需求开发与管理

软件目的需求开发与管理
软件目的需求开发与管理

软件工程-软件目的需求开发与管理

需求开发与管理是软件项目中一项十分重要的工作,据调查显示在众多失败的软件项目中,由于需求原因导致的约占到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)进行需求变更影响分析。评估每项需求变更,以确定它对项目计划安排和其它需求的影响,明确与变更相关的任务并评估完成这些任务需要的工作量。通过这些分析将有助于需求变更控制部门做出更好的决策。

3)建立需求基准版本和需求控制版本文档。确定需求基准,这是项目各方对需求达成一致认识时刻的一个快照,之后的需求变更遵循变更控制过程即可。每个版本的需求规格说明都必须是独立说明,以避免将底稿和基准或新旧版本相混淆。

4)维护需求变更的历史记录。将需求变更情况写成文档,记录变更日期、原因、负责人、版本号等内容,及时通知到项目开发所涉及的人员。为了尽量减少困惑、冲突、误传,应指定专人来负责更新需求。

5)跟踪每项需求的状态。可以把每一项需求的状态属性(如已推荐的,已通过的,已实施的,或已验证的)保存在数据库中,这样可以在任何时候得到每个状态类的需求数量。6)衡量需求稳定性。可以定期把需求数量和需求变更(添加、修改、删除)数量进行比较。过多的需求变更"是一个报警信号",意味着问题并未真正弄清楚。

4 需求分析评价标准

如何判断需求规格说明的好坏,不同的软件工程规范都有自己的一套标准,这里向大家介绍一个比较常见的NASA SEL推荐方法,它是由美国国家航空和航天局软件工程实验室开发的五大常用国际软件工程规范之一,它对软件需求过程的评价标准是:清晰、完整、一致、可测试。

(1)清晰:目前大多数的需求分析采用的仍然是自然语言,自然语言对需求分析最大的弊病就是它的二义性,所以开发人员需要对需求分析中采用的语言做某些限制。例如尽量采用主语+动作的简单表达方式。需求分析中的描述一定要简单,千万不要采用疑问句、修饰这些复杂的表达方式。除了语言的二义性之外,注意不要使用行话,就是计算机术语。需求分析最重要的是和用户沟通,可是用户多半不是计算机的专业人士,如果在需求分析中使用了行话,就会造成用户理解上的困难。

(2)完整:需求的完整性是非常重要的,如果有遗漏需求,则不得不返工,在软件开发过程中,最糟糕的事情莫过于在软件开发接近完成时发现遗漏了一项需求。但实际情况是,需求的遗漏是常发生的事情,这不仅仅是开发人员的问题,更多发生在用户那里。要做到需求的完整性是很艰难的一件事情,它涉及到需求分析过程的各个方面,贯穿整个过程,从最初的需求计划制定到最后的需求评审。

(3)一致:一致性是指用户需求必须和业务需求一致,功能需求必须和用户需求一致。在需求过程中,开发人员需要把一致性关系进行细化,比如用户需求不能超出预前指定的范围。严格的遵守不同层次间的一致性关系,就可以保证最后开发出来的软件系统不会偏离最初的实现目标。

(4)可测试:一个项目的测试从什么时候开始呢?有人说是从编码完成后开始,有人说是编码的时候同时进行单元测试,编码完成后进行系统测试,这些结论都不完全正确。实际上,测试是从需求分析过程就开始了,因为需求是测试计划的输入和参照。这就要求需求分析是可测试的,只有系统的所有需求都是可以被测试的,才能够保证软件始终围绕着用户的需要,保证软件系统是成功的。

软件需求开发与管理

软件需求开发与管理 1概述 需求是从系统外部能发现系统所具有的满足于用户的特点、功能及属性等。需求是指明必须实现什么的规格说明。它描述了系统的行为、特性或属性,是在开发过程中对系统的约束。 软件需求工程划分为需求开发和需求管理,其中需求开发可进一步分为问题获取(elicitation)、分析(analysis)、编写规格说明(specification)和验证(verification)四个阶段, 需求开发活动包括以下几个方面: (1)确定产品所期望的用户类 (2)获取每个用户类的需求 (3)了解实际用户任务和目标以及这些任务所支持的业务需求 (4)分析源于用户的信息以区别用户任务需求、功能需求、业务规则、质量属性、建议解决 方法和附加信息 (5)将系统级的需求分为几个子系统,并将需求中的一部分分配给软件组件 (6)了解相关质量属性的重要性 (7)商讨实施优先级的划分 (8)将所发现的用户需求编写成规格说明和用例模型 (9)评审用例和需求规格说明,确保对用户需求达到共同的理解与认识,并在整个开发小组 接受说明之前将问题都弄清楚。 需求管理活动包括以下几个方面: (1)定义需求基线(迅速制定需求文档的主体) (2)评审提出的需求变更、评估每项变更的可能影响从而决定是否实施它 (3)以一种可控制的方式将需求变更融入到项目中 (4)使当前的项目计划与需求一致 (5)估计变更需求所产生的影响并在此基础上协商新的承诺。 (6)让每项需求都能与其对应的设计、源代码和测试用例联系起来以实现跟踪 (7)在整个项目过程中跟踪需求状态及其变更情况。 2需求工程的推荐方法 需求工程推荐方法 需求开发

软件配置管理

软件配置管理(Software configuration management,SCM) 目录 软件配置管理 (1) 什么是软件配置管理 (2) 配置管理的任务 (2) 实施软件配置管理的优点 (2) 配置软件管理实施的流程 (3) 软件配置管理与CMMI (4) 软件配置管理案例分析 (4) 案例:配置管理在软件企业中的应用 (4)

软件配置管理(SCM)是一种标识、组织和控制修改的技术。软件配置管理应用于整个软件工程过程。SCM活动的目标就是为了配置管理是对产品进行标识、存储和控制,以维护其完整性、可追溯性以及正确性的学科。目的是使错误降为最小并最有效地提高生产效率。 1.维护和编制公司配置管理规划、流程和策略。 2.负责日常运行维护及系统优化,负责配置管理工作,包括权限分配、基线管理、版本管理、变更管理、配置审计等;负责配置管理报告的编写和分析。 3.监督和审核项目过程中配置管理规范的实施情况,为项目组提供配置管理流程、工具方面的咨询、培训和支持,参与公司产品及体系认证与维护工作 4.负责建立和优化公司配置管理的相关规范和流程并进行相关推广。 不断优化公司配置管理方法和工具 (1)定义配置项:软件配置项(SCI)即软件配置管理的对象。软件开发过程中产生的所有信息构成软件配置,它们是:代码(源代码、目标代码)以及数据结构(内部数据、外部数据)、文档(技术文档、管理文档、需方文档)、报告,其中每一项称为 (2)标识配置项:正确标识软件配置项对整个管理活动非常重要,对软件开发过程中的所有软件项目赋予唯一的标识符,便于对其进行状态控制和管理。 (3)定义基线:基线标志着软件开发过程一个阶段的结束,任一软件配置项,一旦形成文档并审议通过,即成为基线。基本的作用在于把各阶段的工作划分得更明确,使本来连续的工作在这些点上断开,以便检验和肯定阶段成果。 (4)定义软件配置库:软件配置库内容涵盖开发的全过程. 实施软件配置管理的优点 ?节约费用:缩短开发周期、减少施工费用 ?利于知识库的建立:代码对象库、业务及经验库 ?规范管理:量化工作量考核、规范测试、加强协调与沟通。

需求说明书(软件项目管理系统)

需求说明书(软件项目管理系统) §1、前言 1.1概述 1.1.1 项目名称:软件项目管理系统 项目代码:ProjectManager 1.1.2 开发目的:本系统应能 a.管理软件项目和项目组; b.管理与项目相关的数据项和数据结构; c.管理与项目相关的系统功能描述和分组; d.管理与项目相关的项目任务和项目任务进度; e.管理与项目相关的问题,并且能进行问题跟踪; f.管理与项目相关的文档。 1.1.3 相关读者:部门经理,项目经理,测试人员,设计人员,编程人员。 1.1.4 本项目与其它产品(软件)关系。 1.2术语 本分析书所使用的专门术语定义: 部门经理——能建立项目和项目组的系统使用者; 项目经理——能进行§1.1.2.b - §1.1.2.f管理的系统使用者; 设计人员——能进行§1.1.2.b - §1.1.2.f管理的系统使用者; 编程人员——能进行§1.1.2.d - §1.1.2.f管理的系统使用者; 数据项——目标系统中的最小信息单位; 数据结构——数据项的有意义集合; 系统功能——通过目标系统能完成的有效活动; 项目任务——开发项目中要求完成的有效活动; 1.3参考资料 列举编写本分析书时所参考资料的详细信息、标题、作者、版本号、发表日期和来源等。 1.4运行环境 操作系统:Windows 2000 Professional; 数据库:MS SQL 2000 或Oracle。 1.5条件和限制 开发环境:Microsoft Visual Studio .NET 2003; 使用工具:C# §2、系统需求 1.1 功能说明 根据用户编码和用户密码校核该用户是否合法; 在校验用户密码后,可修改用户自己的密码;

需求管理过程

需求管理过程 本文件属深圳天源迪科信息技术股份有限公司所有, 未经书面许可,不得以任何形式复印或传播。 2008-1-31发布 2008-2-18 实施

文件建立/修改记录

目录 1 简介 (4) 1.1 目的 (4) 1.2 适用范围 (4) 1.3 背景描述 (4) 1.4 术语表 (4) 1.5 参考资料 (5) 2 总体描述 (5) 2.1 概述 (5) 2.2 职责分工 (5) 2.3 结构描述 (6) 3 活动描述 (7) 3.1 需求培训 (7) 3.2 建立需求跟踪矩阵 (8) 3.3 维护需求跟踪矩阵 (9) 3.4 检查一致性 (10) 3.5 采取更正行动 (11) 3.6 需求变更管理 (12) 4 附录 (13) 4.1 附录A-相关过程 (13) 4.2 附录B-相关规范、指南 (13) 4.3 附录C-相关模板列表 (13)

1简介 1.1目的 制定需求管理过程的目的是管理产品和组件的需求,识别需求与项目计划及工作产品之间的不一致,有效地控制需求变更、以及跟踪需求的演进,指导项目组管理需求。 1.2适用范围 本过程适用于公司所有的软件项目,贯穿项目的整个生命周期。 1.3背景描述 无。 1.4术语表 ●软件需求:用户解决某一问题或者得到某一目标所需的软件功能。 ●基线:基线是经过评审和批准的配置项的集合,其作用是明确划分项目各阶段,确定各阶 段的结束点。在项目的开发过程中,最基本的基线有需求基线、开发基线、发布基线等。 ●配置控制委员会(Configuration Control Board):简称CCB,是确定配置基线,评估、批准 变更,并保证已批准变更的实施的组织。 ●需求变更:需求变更主要来自三个方面-客户、高层和开发人员。因此,无论哪一方面提 出需求变更的要求,都应当对变更请求进行评估。需求变更通常包括三项内容:新增需求、修改需求、删除需求。每一种变更都可能影响到其他需求的变化,因此在进行变更时需要利用需求跟踪记录。 ●需求跟踪:需求跟踪主要是跟踪需求及其实现之间的一致性,需求跟踪通过管理需求跟踪 记录来进行。在需求的阶段已经建立了需求跟踪记录,在后续的开发过程中,通过不断填写需求跟踪记录,将设计、开发和测试等阶段产品与需求进行一一对应。同时,在任何一个阶段发生变更时,都要检查需求跟踪记录是否需要进行变更。需求跟踪是分布在各个开发阶段之中的。 ●涉众:专指所有会受到项目结果重大影响的人。要有效地解决任何复杂的问题,就会涉及 到满足不同涉众的需要。涉众通常会对问题持有不同的观点,因而必须用所提供的解决方案来满足不同的需要。许多涉众都是系统的用户。其中许多涉众只是系统的间接用户,或者只受到系统所影响的业务结果的影响。还有许多涉众是系统的经济型买主或支持者。了解涉众的组成及其特定需要是开发有效解决方案的关键。典型的涉众有客户(或客户代表)、用户(或用户代表)、投资者、股东、生产经理、买方、项目经理、设计人员、测试

软件开发项目配置管理工具的选择

软件开发项目配置管理工具的选择 通过软件配置管理,将对软件系统中的多重版本实施系统的管理;全面记载系统开发的历史过程,包括为什么修改,谁作了修改,修改了什么;管理和追踪开发过程中危害软件质量以及影响开发周期的缺陷和变化。并对开发过程进行有效地管理和控制,完整、明确地记载开发过程中的历史变更,形成规范化的文档,不仅使日后的维护和升级得到保证,而且更重要的是,这还会保护宝贵的代码资源,积累软件财富,提高软件重用率,加快投资回报…… 每一个软件项目,无论是工程类项目,还是产品类项目,都必须经历需求分析、系统设计、编码实现、集成测试、部署、交付、维护和支持的过程。在这个过程中,将生成各种各样不同的工件,包括文档、源程序、可执行代码、支持库。更可怕的是,频繁出现的变更是不可避免的,因此面向如此庞大且不断变动的信息集,如何使其有序、高效地存放、查找和利用就成为了一个突出的问题。 针对这一问题,最早的开发人员尝试过的解决办法是通过手工来实现: 1)文档:每次修改时都另存为一个新的文件,然后通过文件名进行区分,例如"XXX 软件需求说明书V1.0,XXX软件需求说明书V1.1,XXX 软件需求说明书V2.0.",并且在文件中注明每次版本变化的内容; 2) 源代码:每次要修改时就将整个工程目录复制一份,将原来的文件夹进行改名,例如"XX 项目V1.0、XX 项目1.01、.",然后在新的目录中进行修改; 但是这种方法,不仅十分繁琐,容易出错,而且会带来大量的垃圾数据。如果是团队协同开发或者是项目规模较大时,还是会造成很大的混乱。很显然,这样简陋的方法是无法应对这一问题的。后来,有人尝试从制造工业领域引入了"配置管理"这一概念,通过不懈的研究与实践,最终形成了一套管理办法和活动原则,这也就是软件配置管理。 通过软件配置管理,将对软件系统中的多重版本实施系统的管理;全面记载系统开发的历史过程,包括为什么修改,谁作了修改,修改了什么;管理和追踪开发过程中危害软件质量以及影响开发周期的缺陷和变化。并对开发过程进行有效地管理和控制,完整、明确地记载开发过程中的历史变更,形成规范化的文档,不仅使日后的维护和升级得到保证,而且更重要的是,这还会保护宝贵的代码资源,积累软件财富,提高软件重用率,加快投资回报。 常见的配置管理工具 正如前面所述,由于软件配置管理过程十分繁杂,管理对象错综复杂,如果是采用人工的办法不仅费时费力,还容易出错,产生大量的废品。因此,引入一些自动化工具是十分有裨益的,这也是做好配置管理的必要条件。 正是因为如此,市场上出现了大量的自动化配置管理工具,这些工具的实现原理与基本机制

IBM软件产品需求管理流程

IBM 软件产品需求管理流程 1. 简介 IBM 软件产品的版本(V.R.M.F)从市场规划和客户需求开始,到研发以及后续的交付遵循IB M软件部集成产品设计(IPD)流程。IBM 软件产品需求管理流程是IPD的一个体现,也就是一个由市场/客户驱动的,跨市场部门、研发产品管理部门及研发工程部门的端到端需求管理流程。同时,此次内容我们将描述IPD和产品需求管理流程,及流程中的角色(市场、研发产品管理部门及研发工程部门),以及他们之间是如何通过协作来管理需求的。 2. 背景——IPD IPD指导如何对软件产品发布版本进行投资决策和如何协调部门间工作以实现这些决策所 定义目标,IBM软件产品需求管理基于IPD流程,要了解这个需求管理的流程,首先我们要了解IBM所有产品开发所遵循的IPD的流程,包括其决策点。 IPD流程分为六个步骤: 1.概念:即概念验证阶段,主要对需求包进行评审,以确定其是否有足够的商业价值; 2.计划:即资源投入计划阶段,主要对需求包进行评估,以确定是否有足够的资源且在 一定的时间范围内将需求包开发出来; 3.开发:即对需求包进行开发成产品阶段; 4.验证:即对产品进行验证阶段; 5.交付:即将产品交付市场阶段; 6.生命周期:即产品在市场上销售,使用,维护和退出市场的阶段。 其中包括了几个重要的决策检查点(DCP):

1.概念决策检查点:即经过概念阶段各方面进行的一系列评审,在此检查点确定(1) 我们对需求包是否有足够的理解;(2)需求包是否有足够的商业价值。如果是,继续进入计划阶段; 2.计划决策检查点:即经过计划阶段的评估,在此检查点确定(1)我们是否有足够的 资源在既定的时间范围内完成需求包的开发(2)研发部门是否能在(1)的估计上承诺进行开发。如果是,继续进入开发阶段; 3.可交付决策检查点:即经过开发和验证阶段,在此检查点确定(1)产品是否质量合 格以交付给客户(2)我们产品的相应支持和销售是否已经准备好服务客户,如果是,产品交付市场; 4.生命周期结束决策检查点:即产品在市场使用一定时期后,在此检查点确定产品是否 退出市场。 一个产品从市场需求开始,经过概念验证,时间、资源等计划的支持,然后进行开发,验证,直至发布到市场供客户使用,最后在某个特定的时候结束产品在市场上的销售,在IBM都遵循着IPD流程。在其中过程中,这个产品的概念是否被接受,是否能得到资源上的投入的承诺,是否通过最终验证可以在市场上发布,以及什么时候在市场上停售,这些关键的决策都通过相应的委员会在不同的决策点上进行决策。 3. IPD 与产品需求管理流程 以上描述了IBM IPD的基本概念,我们接下来看IBM软件产品的需求管理是如何基于IPD 的。首先,请看下图一:产品需求管理流程。

软件需求管理之需求分析

软件产品经理之需求管理 需求分析是通过需求收集获取的用户需求,选择一种业务导向的线索将零散的需求串 联起来,进行业务分析、消除矛盾,并在业务分析基础上结合系统现状进行系统分析并最 终形成方案和系统需求说明书的过程。 需求分析总体分为8个步骤,按照顺序依次为:需求识别、业务流程/统计查询/接口 分析、数据实体分析、角色及使用场景分析、系统功能分析、数据割接分析、用户体验分析、非功能需求分析。 一、需求识别 需求人员在此步骤应该分析需求类别、需求复杂度和需求价值用来确定需求实施的优 先级。 1.需求类别确认:需求类别包含流程类需求、统计分析类需求、接口类需求,一个需 求可能为某一类型需求,也可能包含多类需求。确认需求类别后应对每类需求的数量进行 初步分析(比如流程类需求包含几个流程、统计分析类需求包含几个报表、接口类需求包 含几个接口); 2.需求复杂度分析:一般需求受理工作量在1-5人天的需求复杂度低,工作量在5-15人天的需求复杂度中,工作量在15人天以上需求复杂度高。(工作量表示需求受理全过 程需求人员需要付出的工作量)。 3.价值分析:需求人员收到需求后应根据收集需求内容初步分析需求痛点/目标、需求复杂度、业务重要程度确定需求价值,需求价值分析可参考如下模型: 二、业务流程/统计查询/接口分析 针对流程类需求必须进行业务流程分析,统计查询和接口类需求可不进行详细的流程 分析。 1.业务流程分为组织级、部门级和岗位级,部门级流程关注脉络需要分析涉及哪些具 体岗位、执行活动、每个活动之间的关联关系,它是需求分析的主线条,也是流程分析的 主要产物;组织级流程关注宏观一般不会直接绘制,是对部门级流程的概括和抽象,岗位 级流程关注每个业务活动的执行步骤属需求细节范畴,在流程分析阶段不要过度进入细节。 2.需求识别阶段确认的流程均为部门级流程,需求人员在进行流程分析应遵循如下方法: 1)业务流程确认:一个流程为一个业务事件一般是外部角色发起或系统内部主动发起(比如时间事件或状态事件),发起后会触发一系列业务活动; 2)角色及业务活动确认:流程图中的每个泳道都必须对应到角色,每个角色对应多个 业务活动,需求人员在确认业务活动时一定要保证活动的粒度,一个业务活动一定是由一 个角色完成且每个业务活动都是有价值的活动(比如项目输入项目名称是一个执行步骤, 这个动作没有价值,项目经理查询项目信息就是一个业务活动),在需求描述时针对线下 活动或新增活动应该应标识区分;

软件开发管理制度

软件开发管理制度 为加强对公司软件研发部门工作管理,缩短开发周期,提高软件开发质量,降低开发成本,提高开发效率,特制定软件研发部管理制度。 第一章、总则 为保证日常工作正常有序的进行,让开发中各个环节更紧凑,更可控,需要尽可能实现软件研发部项目管理的正规化,工作过程的流程化,以便提高软件质量和开发效率,达到项目能按质按量按期交付的目标。 1、软件开发总体遵循项目管理和软件工程的基本原则。 2、项目管理涉及项目立项、项目计划和监控、配置管理。 3、软件工程涉及需求分析、系统设计、软件实现、系统测试、用户测试、试运行、系统验收、系统上线和数据迁移、产品维护。 第二章、阶段成果 根据软件工程的过程理论并结合公司目前的实际情况,制定以下工作流程,并规定了各个重要环节需要提交的交付物。 1、立项:市场需求分析(或者合同)、项目立项申请表、项目风险分析清单。 2、需求分析:软件需求报告或设计方案、需求规格说明书。 3、总体设计:概要设计说明书或功能模块描述。 4、详细设计:详细设计说明书,包括软件接口说明、单元测试计划。 5、软件实现:软件功能说明、源代码、源代码说明或者注释 6、产品测试:测试报告 7、产品发布:产品说明书、使用手册 8、产品维护:问题反馈记录 9、项目总结:提交客户方的项目总结和公司项目汇报的PPT。 软件过程成果表:

第三章、岗位设置 根据公司目前的开发过程主要分为分析、开发、测试三个阶段。分析阶段完成用户需求文档的编写,系统总体设计的编写;开发阶段完成设计文档的编写,代码的编写、代码的维护。测试阶段完成系统的测试,测试文档及其他材料。通过逐渐的调整岗位,明确工作职责,逐步实现项目经理,需求分析工程师,高级软件开发工程师,软件开发工程师,测试工程师的岗位设置。

软件配置管理控制程序

配置管理控制程序 历史记录

目录

1.引言 1.1目的 本程序文件定义了本组织的配置管理的过程,目的是规范公司的软件配置管理活动,使公司的所有软件开发项目的软件配置管理活动都能按照统一的要求进行。 1.2 使用范围 本文件适用于公司的所有软件项目。 1.3 名词和缩写 CM(Configuration Management) 配置管理 SCCB (Software Configuration Control Board) 软件配置管理控制委员会 CC (Configuration Controller) 配置管理员 工作产品(Work Products):项目技术开发和管理工作中产生的有价值的成果,例如源代码、数据和各种文档。 配置项(Configuration Item, CI):纳入到配置管理范畴作为单个实体对待的工作产品称为配置项[IEEE Std 610.12 - 1990 ];配置项包括:项目计划书、需求文档、设计文档、源代码、可执行代码、测试用例、运行软件所需的各种数据,它们经评审和检查通过后进入软件配置管理。 基线(Baseline):一组拥有唯一标识号的需求、设计、源代码文卷以及相应的可执行代码、构造文卷和用户文档构成一条基线。基线一经放行,就可以作为从配置管理系统检索源代码文卷(配置项)和生成可执行文卷的工具。 2角色与职责 2.1软件配置管理组(CM) CM组是项目里的一个小组,根据项目大小,可以由一个人,或者多人组成,小组的成员称为配置管理员(CC),通常由公司的质量保证组安排,加入到项目组,由项目经理领导。

CM组建立并管理配置管理库系统。 CM组负责组织相关部门和人员进行有关CM活动的培训。 项目组的CM组负责在该项目的整个生命周期中进行配置管理活动。 2.2软件配置管理控制委员会(SCCB) SCCB建立在项目级,通常由项目经理、该项目的技术经理、软件开发工程师、资深工程师、测试经理/测试工程师以及CC组成。SCCB在项目策划阶段由项目经理负责筹建。 配置管理控制委员会负责审批软件配置管理计划; 配置管理控制委员会负责审批软件基线的建立; 配置管理控制委员会负责审批对软件基线配置项的变更; 配置管理控制委员会负责审核和批准产品发布。 2.3 SCCB负责人 SCCB负责人通常由项目经理担任,代表SCCB在有关文件上签署意见。 2.4 项目经理 定期或事件驱动地评审或审核CM活动。 2.5 测试组 负责审核《配置管理计划》任务列表中与测试有关的内容 2.6 开发组 负责审核《配置管理计划》任务列表中与开发有关的内容 2.7 QA组 负责审核《配置管理计划》任务列表中与QA有关的内容

(项目管理)一项目需求

一、技术要求 工作条件 1.除非在技术规格中另有说明,所有仪器、设备和系统都应符合下列要求:2.适于在气温为摄氏0℃~+40℃和相对湿度为90%的环境条件下运输和贮存。 3.适于在电源220V( 10%)/50Hz、气温摄氏-5℃~+40℃和相对湿度85%的环境条件下运行。连续正常运行的时间应不少于8小时。 4.配置符合中国有关标准要求的插头,如果没有,则需提供适当的转换插座。 5.如产品达不到上述要求,供应人应注明其偏差。如仪器设备需要特殊工作条件(如水、电源、磁场强度、温度、湿度、动强度等)供应人应在供应文件中加以说明。 其它要求: 1.为便于采购人进行接收仪器的准备工作,成交供应商应在合同生效后60天内向用户提供一套完整的使用说明书、操作手册、维修及安装说明等文件。另一套完整上述资料应在交货时随货包装提供给采购人,这些费用应计入总报价中。 2.对于需安装、校准、试运行的仪器设备,如果有必要的安装准备条件,成交供应商应在合同生效后一个月内向采购人提出详细的要求或计划。设备安装调试的费用由供应人承担,需计入成交总价中,并应单独列出,供采购人参考。 3.对于人员培训所需的仪器、设备,供应文件中应注明。 4.对于在采购人所在地进行的培训,供应人培训人员的旅费、食宿费用等费用由供应人自理。 5.对于需到制造厂家所在地进行的培训,供应文件中将注明培训日程和时间要求。受训人员的旅费、食宿费、培训场地费及培训资料费等培训费用均应由供应人支付。 6.在评审过程中,谈判小组有权向供应人索取任何与评审有关的资料,供应人务必在接到此类要求后,在规定时间内予以答复。对于无答复的供应人,谈

软件研发部管理制度

软件研发部管理制度 为加强对公司软件研发部门工作管理,缩短开发周期,提高软件开发质量,降低开发成本,提高开发效率,特制定软件研发部管理制度。 第一章、总则 为保证日常工作正常有序的进行,让开发中各个环节更紧凑,更可控,需要尽可能实现软件研发部项目管理的正规化,工作过程的流程化,以便提高软件质量和开发效率,达到项目能按质按量按期交付的目标。 1、软件开发总体遵循项目管理和软件工程的基本原则。 2、项目管理涉及项目立项、项目计划和监控、配置管理。 3、软件工程涉及需求分析、系统设计、软件实现、系统测试、用户测试、试运行、系统验收、系统上线和数据迁移、产品维护。 第二章、阶段成果 根据软件工程的过程理论并结合公司目前的实际情况,制定以下工作流程,并规定了各个重要环节需要提交的交付物。 1、立项:市场需求分析(或者合同)、项目立项申请表、项目风险分析清单。 2、需求分析:软件需求报告或设计方案、需求规格说明书。 3、总体设计:概要设计说明书或功能模块描述。 4、详细设计:详细设计说明书,包括软件接口说明、单元测试计

划。 5、软件实现:软件功能说明、源代码、源代码说明或者注释 6、产品测试:测试报告 7、产品发布:产品说明书、使用手册 8、产品维护:问题反馈记录 9、项目总结:提交客户方的项目总结和公司项目汇报的PPT。软件过程成果表:

第三章、岗位设置 根据公司目前的开发过程主要分为分析、开发、测试三个阶段。分析阶段完成用户需求文档的编写,系统总体设计的编写;开发阶段完成设计文档的编写,代码的编写、代码的维护。测试阶段完成系统的测试,测试文档及其他材料。通过逐渐的调整岗位,明确工作职责,逐步实现项目经理,需求分析工程师,高级软件开发工程师,软件开发工程师,测试工程师的岗位设置。

项目管理系统需求说明书模板

项目管理系统需求说明书

成都鼎域前沿科技有限公司 2015.4 目录 一引言 (1) 1编写目的 (1) 2范围 (1) 2.1软件系统的名称 (1) 2.2软件功能概述 (1) 二项目概述 (2) 1项目描述 (2) 2产品功能 (3) 2.1系统角色定义 (3) 2.2系统功能 (3) 3用户特点 (3) 3.1管理员及超级管理员用户 (3) 3.2企业领导、项目经理和项目成员 (4)

3.3用户使用本系统相关说明 (4) 3.4一般约束 (4) 三项目需求 (6) 1功能需求 (6) 1.1功能结构一览 (6) 1.2登陆 (7) 1.3项目管理 (7) 1.3.1项目立项 (7) 1.3.2项目新增 (7) 1.3.3项目过程管理 (8) 1.3.4项目群管理 (11) 1.4项目工具 (15) 1.4.1原因分析工具 (15) 1.4.2数据收集分析工具 (15) 1.4.3评估工具和决策工具 (15) 1.4.4TRIZ系列工具 (15) 1.5人才管理 (15) 1.6知识管理 (16) 1.7权限管理 (17) 1.7.1用户信息管理 (17) 1.7.2系统模块管理 (17)

1.7.3角色管理 (17) 1.7.4权限分配 (17) 2外部接口需求 (18) 2.1用户接口 (18) 2.2硬件接口 (18) 3性能需求 (18) 3.1静态数值需求 (18) 3.2动态数值需求 (19) 3.3硬件限制..................................................... 错误!未定义书签。4属性. (19) 4.1可用性 (19) 4.2安全性 (19) 4.3可靠性 (21) 4.4系统性能 (22) 4.5易用性 (23) 4.6可维护性 (23) 4.7其他需求 (24)

软件需求管理知识及案例

软件需求管理知识及案例 通过这篇文章,总结自己在工作实践中需求管理的方法论——普拉姆方法。总结这个方法论的特点是,用最轻量化的投入,与他人协作,并管理需求,推动需求上线。这套方 法论组合了项目管理、敏捷开发的知识,希望能对大家有所帮助。 1. 为什么要做需求管理? 1.1 我们的工作是否像救火 总是做迫在眉睫的事情,会令人丧失目标。——《普拉姆原则》 我在工作中体会到每天忙东忙西的处理需求,虽然每天都很充实,但确实极为耗费精力,时间长久就会缺乏动力。 上面讲的是个人的角度,如果一个组织或者团队面对大量的需求,在处理需求的时候,没有节奏和规划,会产生消极的影响。从小的方面看会影响团队士气,往大的方面看,会 影响组织实现既定的目标。 我的工作环境是,作为后台产品经理,处在业务运营团队和技术团队之间,要作为一 个桥梁,保障业务运营团队从我这里输出高质量的需求,也要保障具有不同知识背景团队,能过通过需求,高效沟通,快速推进需求上线。 于是,我就通过工作实践,形成了自己的管理需求方法论——普拉姆方法。 存在即有标识。——《普拉姆原则》 为了便于总结和归纳,我给这个方法论起了个名字。在需求管理中,需求的名称也是 很重要的因素,之后会提到。 1.2 需求管理是什么? 我的定义是,通过协作,管理需求内容和进程,实现成功发布。 便于理解这个概念,在这里讲一个海湾战争的故事。 在海湾战争中,美军在前期并没有派出大规模的地面部队进行战术打击。而是,派出 一批批的特种部队渗透到敌人境内,侦查清楚敌人重要的军事目标,并将精准坐标和信息,传递给后方。顷刻之间,海洋上的战舰派出飞机和战斧导弹对其进行精准轰炸,并取得战 术和战略上的胜利。 在这个例子中,特种部队是业务运营团队,飞机和战斧导弹是技术团队。产品经理通 过需求管理的方法论,用高效和轻量化的方式,去精准的做出需求,实现预期的效果。 1.3 宗旨是什么? 普拉姆方法的宗旨是积极主动,知识共享,相互尊重。 什么是宗旨?可以理解为这套方法论的价值观。这套方法论的每一个细节,都应该遵 循这个宗旨来实践,并遵循这个宗旨发展和进化。 “积极主动,知识共享,相互尊重”的宗旨,是我借鉴了美国西南航空的价值观。美 国西南航空是美国航空业受到911事件巨大打击的背景下,依然能够盈利的廉价航空。在航空业极为复杂的管理模式下,使用廉价航空的经营方式实现盈利,还是令人十分震撼的。所以,阅读了相关书籍之后,将美国西南航空的价值观的精华,吸纳为普拉姆方法的宗旨。

需求分析及需求管理工具介绍

需求工程及需求管理工具 介绍 V 1.0 Marco Lee 2012-09-04

Contents 一、需求工程综述 (3) 1)需求定义 (3) 2)需求工程概述 (4) 3)需求工程主要过程 (4) 4)需求分析的特点 (5) 5)需求开发的十种常用方法 (5) 6)需求建模方法 (5) 7)主要概念区分 (7) 1、项目范围管理 (7) 2、需求开发、需求管理、项目范围管理的区别和联系 (7) 二、CMMI需求开发过程 (7) 1)基本概念 (7) 2)需求调查方法 (8) 3)CMMI需求分析过程 (9) 三、需求管理工具介绍 (12) 1)Rational RequisitePro (12) 2)IBM Rational DOORS (12) 3)Borland CaliberRM (14) 4)Cloudtopo Topo (14)

摘要 需求是研发团队工作的起点,很多研发团队的开发过程混乱的源头都在于需求管理没有做好。项目失败或严重超支的八个最重要原因中有五个都与需求相关: 1)不完整的需求; 2)缺乏用户的参与; 3)不实际的客户期望; 4)需求和需求规格说明的变更; 5)提供许多不必要的功能。 本文就有关需要的概念以及主流需求管理系统,进行了论述。 一、需求工程综述 图1-需求分析组成部分 1)需求定义 通俗的讲,“需求”就是用户的需要,它包括用户要解决的问题、达到的目标、以及实现这些目标所需要的条件,它是一个程序或系统开发工作的说明,表现形式一般为文档形式。 按CMMI软件能力成熟度的定义,需求是开发方和客户方就系统未来所达到的功能和质量所达成的一致约定和协议。

XM-202-2008 软件需求管理V1

文档编号:XM-202-2008 文档版本:第一版 发布日期:2008-3-5 实施日期: 2008-3-5 适用范围:公司软件开发项目 密 级:普密 北京天阳宏业软件技术有限公司 项目管理规范:软件需求管理 北京天阳宏业软件技术有限公司 二○○八年二月 TS 102-2008

目 录 1概述 (1) 1.1术语定义 (1) 1.2本规范的“原型” (2) 1.3本规范的使用说明 (2) 2软件需求管理模型 (3) 2.1需求开发 (4) 2.2需求变更 (4) 3需求开发 (5) 3.1需求获取 (7) 3.1.1 通过项目立项启动会获取初步需求 (7) 3.1.2 通过需求调研收集基本需求 (7) 3.1.3 通过技术验证充实需求 (8) 3.2需求分析 (8) 3.3软件需求说明书编制及项目组内审 (9) 3.4需求验证 (10) 3.4.1 技术验证 (10) 3.4.2 需求评审 (10) 3.4.3 测试 (10) 3.4.4 验收 (10) 4需求变更 (11) 4.1项目组需求变更 (11) 4.2公司需求变更 (12) 附件A1:项目需求概要表 (13) 附件A2:用例表述单 (14)

1 概述 需求分析奠定了软件工程和项目管理的基础,公司目前在软件需求管理方面普遍存在如下问题: 1)对需求管理的重视程度不够,缺少完备的需求收集、整理汇总和分析机制; 2)项目执行中需求工作持续时间短,需求分析不充分,需求没有有效地分层分级; 3)需求表达缺乏结构化,直接影响了项目团队对需求理解的一致性和成果的质量; 4)项目人员关注技术,不关注客户和应用; 5)没有需求基线,需求变更控制缺乏依据。 上述这些问题是导致项目延期、成本增大、客户投诉的重要因素,也是项目后期遗留问题“越来越多”的直接诱因。 本规范是北京天阳宏业软件技术有限公司(以下简称公司)项目管理规范系列之软件需求管理分册,用于指导项目软件需求管理,属公司保密文件。 本规范适用于公司所有的软件开发项目(以下简称项目)。 本规范不是一成不变的,它会随着公司发展和企业项目管理实践进行修订。 1.1 术语定义 本节对所涉及到的与需求管理相关的术语予以定义,其他术语参见《XM-201-2008 项目管理规范:总体框架和操作平台》。 1) 系统内部和系统外部 对软件系统而言,系统内部是指属于本软件系统范围内的工作,而系统外部则特指超出本软件系统的所有工作。例如,系统外部接口就是指与其他软、硬件系统的数据交互通道、数据格式和交互规则等。 2) 需求 需求是指从软件系统外部能发现系统所具有的、满足用户的特点、功能和属性,需求为开发者指明了系统的功能行为和质量特性,是对开发者进行软件开发的要求。 本文的需求等同于软件需求。 3) 需求层次 软件需求包括三个密切相关的层次:业务需求、用户需求和功能需求(含非功能需求)。 4) 特性 特性(Feature)是指逻辑上相关的功能需求的集合,给用户提供处理能力并满足业务需求。

论如何进行有效的需求管理

论如何进行有效的需求管理 很多人会有这种感受,一个项目做了很久,感觉总是做不完,就像一个“无底洞”。你想加人尽快完成这个项目,而用户总是有新的需求要项目开发方来做,就像用户是一个不知廉耻的要求者,而开发方是在苦苦接收的接受者。实际上,这里涉及到一个需求管理的概念。项目中哪些该做,哪些不该做,做到什么程度,都是由需求管理来决定的。需求管理是软件项目中一项十分重要的工作,据调查显示在众多失败的软件项目中,由于需求原因导致的约占了很大的一部分,因此,需求工作将对软件项目能否最终实现产生至关重要的影响。 在软件项目的开发过程中,需求变更贯穿了软件项目的整个生命周期,从软件的项目立项,研发,维护,用户的经验在增加,对使用软件的感受有变化,以及整个行业的新动态,都为软件带来不断完善功能,优化性能,提高用户友好性的要求。在软件项目管理过程中,项目经理经常面对用户的需求变更。如果不能有效处理这些需求变更,项目计划会一再调整,软件交付日期一再拖延,项目研发人员的士气将越来越低落,将直接导致项目成本增加、质量下降及项目交付日期推后。这决定了项目组必须拥有需求管理策略。 下面主要针对需求开发及需求管理两个方面对需求进行分析。 1. 需求开发,从目前我们的实际工作情况来看按顺序主要分成如下几个部分: ?请教行业专家 行业客户对信息化的需求越来越细化,对专业性以及行业能力的全面性要求越来越高,惟有深入行业,洞察其需求,研发出更适合客户需求的产品,才能成功。因此有必要先请这方面的行业专家对于客户的业务需求进行从流程上的梳理。为什么请行业专家,而不是直接请客户进行交谈,得到其实需求,个人认为主要是因为目前各政府部门、企事业单位对于信息化与业需求的整合这一块缺少经验,大部分情况还不能完全整理出完善、清晰的系统需求来。只有通过行业专家对其实业务流程进行梳理,一方面更容易与客户产生共鸣,另一方面也可以大大减少因为知识方面的差异导致错识需求的产生。 ?和客户交谈 你要面对“正确”的客户区分不同层次的客户需求,要面对不同层级,不同部门的客户,把客户分类,区分需求的优先级别。如果你做的项目业务是你熟悉的,那还好,如果是你不熟悉的,一定要花点精力学习一下这个行业业务的背景资料,这也是我上面谈到的先请行业专家的原因。毕竟,客户是不可能给你系统地介绍业务的。只有你通晓了行业业务,才能和用户交流,并正确而有效地引导客户,做好需求分析,你不能指望客户能明确地说出需求。

项目管理系统_需求规格说明书V3

品高项目管理系统 软件开发需求

目录 1引言 (2) 1.1编写目的 (2) 2功能性需求 (2) 2.1系统登录 (3) 2.2对内项目管理子系统 (6) 2.3对外项目交流系统 (22)

1 引言 1.1 编写目的 本文档可作为 1. 设计人员进行系统设计的输入源。 2. 开发人员对系统功能开发的依据。 3. 测试人员编写系统测试计划,测试案例编写的输入源。 4. 产品经理检查系统实现程度的依据。 5. 项目团队外人员进行沟通的外部接口,用于他们评审和理解系统。 6. 项目需求阶段的主要交付物。 7. 收集并记录所有的外部接口,以用于作为完成设计和实现系统的参考。 2 系统概貌 2.1 系统背景 随着公司发展,客户范围不断增长,项目数量多且繁杂,给公司的和客户了解项目实际情况带来很大不便,公司及客户之间缺乏有效快速的沟通交流环境. 基于上诉背景,我们提出需建立一套完善的项目管理系统,作为公司及客户之间对项目信息的了解及在线交流, 以满足公司发展的需求。 2.2 用户描述 本系统用户为我们公司业务人员、项目成员、项目经理、管理中心、财务合同管理员、部门经理,项目管理层等。 2.3 系统角色权限 系统的不同角色对信息的权限见附件表 角色权限表.xlsx 2.4 一般限制 ? 应用系统应采用B/S 结构,客户端支持IE6.0 以上的版本。 ? 应用系统的开发工具与技术应采用Microsoft .NET 的技术体系。 ? 应用系统中所有数据统一保存到SQL Server 数据库。

2.5出错处理 ?所有的应用系统错误都应记录到系统日志文件中。 ?所有的Windows服务错误都应记录到Windows服务日志文件中。 ?所有的Web服务错误都应记录到Web服务日志文件中。 2.6假设和依赖条件 ?本系统假设.Net Framework 4.0平台稳定可靠,性能满足实际需求。系统构建在Microsoft .Net Framework平台中,严重依赖于该平台的可靠性,稳定性和性能。 ?本系统假设Microsoft SQL Server数据库稳定可靠,性能满足实际需求。系统数据存储于Microsoft SQL Server数据库中,依赖Microsoft SQL Server数据库的可靠性,稳定性和性能。 ?本系统假设涉及的外部接口可靠运行,提供正确数据。系统部分数据展现依赖于外部接口,当外部接口不能正确工作时,可能会导致部分展示数据不正确或无法显示。 ?本系统假设网络状态良好。本系统和客户端交互时依赖于网络状况,当网络故障或者性能低下时,可能会造成系统无法访问,系统响应速度变慢,数据无法提交等现象。但不应出现数据完整性和一致性的损坏。 ?本系统假设工作流引擎稳定可靠,性能满足要求。 ?本系统假设硬件服务器工作状态良好。 3功能性需求 3.1系统登录 【REQ_1】使用系统的用户分2类,内部用户及外部用户 【REQ_2】内部用户访问系统的时候,需要输入AD帐号密码进行身份验证检查 【REQ_3】外部用户访问系统的时候,需要输入用户名和密码进行身份验证检查 3.2首页 【REQ_4】每个用户登录后都可进入自己所属角色的首页 3.2.1.1业务人员 【REQ_5】列出业务人员本人的预立项的项目列表,已完成的合同列表,个人待办事宜,如下图示:

软件目的需求开发与管理

软件工程-软件目的需求开发与管理 需求开发与管理是软件项目中一项十分重要的工作,据调查显示在众多失败的软件项目中,由于需求原因导致的约占到45%,因此,需求工作将对软件项目能否最终实现产生至关重要的影响。虽然如此,在项目开发工作中,很多人对需求的认识还远远不够,从本人参与或接触到的一些项目来看,小到几十万元,大到上亿元的软件项目的需求都或多多少的存在问题,有的是开发者本身不重视原因、有的是技术原因、有的是人员组织原因、有的是沟通原因、有的是机制原因,以上种种原因都表明做好软件需求开发是一项系统工作,而不是简单的技术工作,只有系统的了解和掌握需求的基本概念、方法、手段、评估标准、风险等相关知识,并在实践中加以应用,才能真正做好需求的开发和管理工作。 本文将通过介绍关于软件需求的基本知识和个人在实际工作中总结的一些经验,帮助读者了解软件需求,学习需求开发的一些基本方法,避免因需求原因而导致的项目失败。 1 什么是软件需求和需求工程 1.1 软件需求的定义 在IEEE软件工程标准词汇表(1997年)中定义软件需求为: (1)用户解决问题或达到目标所需的条件或能力。 (2)系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或能力。

(3)一种反映上面(1)或(2)所描述的条件或权能的文档说明。实通俗的讲,“需求”就是用户的需要,它包括用户要解决的问题、达到的目标、以及实现这些目标所需要的条件,它是一个程序或系统开发工作的说明,表现形式一般为文档形式。 1.2 需求工程的定义 需求分析的过程,也叫做需求工程和需求阶段,它包括了需求开发和需求管理两个部分。需求开发是指从情况收集、分析和评价到编写文档、评审等一系列产生需求的活动,分为四个阶段:情况获取、分析、制订规格说明和评审。这四个阶段不一定是遵循线性顺序的,他们的活动是相互独立和反复的。需求管理是软件项目开发过程中控制和维持需求约定的活动,它包括:变更控制、版本控制、需求跟踪、需求状态跟踪等工作。 2 需求分析的风险 由于需求分析的参与人员、业务模式、投资、时间等客观因素的影响和需求本身具有主观性和可描述性差的特点,因此,需求分析工作往往面临着一些潜在的风险。这些风险主要表现在: (1)用户不能正确表达自身的需求。在实际开发过程中,常常碰到用户对自己真正的需求并不是十分明确的情况,他们认为计算机是万能的,只要简单的说说自己想干什么就是把需求说明白了,而对业务的规则、工作流程却不愿多谈,也讲不清楚。这种情况往往会增加需求分析工作难度,分析人员需要花费更多的时间和精力与用户交流,帮助他们梳理思路,搞清用户的真实需求。

(项目管理)软件项目管理规范

软件项目管理规范 一、软件项目管理的定义 软件项目管理是软件工程和项目管理的交叉学科,软件项目管理的概念涵盖了管理软件产品开发所必须的知识、技术及工具。根据美国项目管理协会PMI对项目管理的定义可以将软件项目管理定义为:在软件项目活动中运用一系列知识、技能、工具和技术,以满足软件需求方的整体要求。 软件工程的活动包括问题定义、可行性研究、需求分析、设计、实现、确认、支持等,所有这些活动都必须进行管理,软件项目管理贯穿于软件工程的演化过程之中,如图1所示。 图1 软件工程的演化过程 二、软件项目管理的过程 为保证软件项目获得成功,必须清楚其工作范围、要完成的任务、需要的资源、需要的工作量、进度的安排、可能遇到的风险等。软件项目的管理工作在技术工作开始之前就应开始,而在软件从概念到实现的过程中继续进行,且只有当软件开发工作最后结束时才终止。管理的过程分为如下几个步骤: (1)启动软件项目 启动软件项目是指必须明确项目的目标和范围、考虑可能的解决方案以及技术和管理上的要求等,这些信息是软件项目运行和管理的基础。 (2)制定项目计划 软件项目一旦启动,就必须制定项目计划。计划的制定以下面的活动为依据。 ●估算项目所需要的工作量 ●估算项目所需要的资源 ●根据工作量制定进度计划,继而进行资源分配 ●做出配置管理计划 (3)跟踪及控制项目计划 在软件项目进行过程中,严格遵守项目计划,对于一些不可避免的变更,要进行适当的控

制和调整,但要确保计划的完整性和一致性。 (4)评审项目计划 对项目计划的完成程度进行评审。并对项目的执行情况进行评价。 (5)编写管理文档 项目管理人员根据软件合同确定软件项目是否完成。项目一旦完成,则检查项目完成的结果和中间记录文档,并把所有的结果记录下来形成文档而保存。 三、软件项目管理的内容 软件项目管理的内容涉及上述软件项目管理过程的方方面面,概括起来主要有如下几项。 (1)软件项目需求管理 软件需求是软件工程过程中的重要一环,是软件设计的基础,也是用户和软件工程人员之间的桥梁。简单地说,软件需求就是确定系统需要做什么,严格意义上,软件需求是系统或软件必须达到的目标与能力。 1、目标 需求管理是一种获取、组织并记录软件需求的系统化方案,同时也是一个使客户与项目开发组对不断变更的软件需求达成并保持一致的过程。在需求管理中,软件工程组的工作是采取适当的措施来保证分配的需求,即要将分配的需求文档化,控制需求的变化,负责项目实施过程中需求的实现情况。需求管理的目的是在客户和处理客户需求的软件项目组之间建立对客户需求的共同理解。需求管理的目标有两个: ●使软件需求受控,并建立供软件工程和管理使用的需求基线。 ●使软件计划、产品和活动与软件需求保持一致。 在需求管理过程,为实现第一个目标,必须控制需求基线的变动,按照变更控制的标准和规范的过程进行需求变更控制和版本控制;为实现第二个目标,必须就变更和软件项目各小组达成共识,对软件项目计划做出调整,其中包括人员的安排、用户的沟通、成本的调整、进度的调整等。 2、原则 为进行有效的需求管理,一般要遵循如下五条原则: ●需求一定要分类管理 进行软件项目管理的时候,一定要将软件需求分出层次。不同层次需求的侧重点、描述方式、管理方式是不同的。 ●需求必须分优先级

相关文档
最新文档