浅谈软件项目中的需求管理

浅谈软件项目中的需求管理
浅谈软件项目中的需求管理

浅谈软件项目中的需求管理

曾创能-332070063

2013年4月17日

摘要:

需求管理在软件开发项目管理中起着至关重要的作用。本人以曾作为项目经理参与的国内某期货交易所核心结算业务系统(下称“结算系统”)的项目为例,阐述需求管理的流程和自己摸索出的一些需求管理方法和心得。

关键词:

项目管理需求管理软件项目开发

引言:

在如今软件开发领域,尽管各种开发技术越来越先进,可利用的软件开发工具和方法也越来越多,但仍然有相当比例的软件项目失败。究其原因,常常是由于在项目开始阶段没有正确地理解、确定和定义需求,或者是由于在项目进展过程中没有正确地管理需求。

众所周知,项目管理的三要求为TQC(时间、质量、成本)。我个人认为,在软件开发项目中,要使TQC目标最大化,范围管理中的需求管理有着至关重要的作用,这与当今中国软件开发的特征有很大关系。当前中国软件开发的领域集中在应用开发领域,多以开发业务管理系统为主。而中国是新型经济体,在企业管理等领域处于逐步摸索、不断变更,以适应国际化竞争的转型初期。在此转型阶段,各企业的管理模式、业务管理方法等有很大不同,且自身也处于不断否定自己的管理、不断变更自己的管理方法和调整业务模式之中。作为软件项目开发承接方,必须适应中国这一各企业“需求各不相同”、“需求多变”的国情。

本人以曾作为项目经理参与的国内某期货交易所核心结算业务系统(下称“结算系统”)的项目为例,阐述需求管理的流程和自己摸索出的一些需求管理方法和心得。

软件需求管理的流程:

软件需求是软件项目开发工作的一个重要源头。需求管理一般由需求分析师和项目经理共同完成的。需求分析师尽可能准确的理解和获取客户需求及潜在需求,编写《需求规格说明书》,而项目经理则需通过加强需求管理,有效的防范和减少不必要的需求变更。按我多年项目开发管理经验,我个人认为,需求阶段准备把握了各类需求(功能、非功能、潜在需求等)并有效地管理需求,项目也就已经成功了一半。

在我负责结算系统时,按需求工程的方法论,将需求管理的流程可划分为如下几部分:

?制定需求管理计划

需求管理计划往往被软件项目管理人员所忽视,很多项目经理在开发项目时,一上来就是让需求分析师跟客户谈需求去,这样做会导致需求

工作的盲目性甚至可能让需求分析师无所适从。

在本项目启动时,我通过如下步骤制定需求管理计划:

1、确定需求沟通机制;

2、确定需求变更管理办法;

3、确定需求跟踪方法;

4、确定需求管理涉及的干系人,并明确职责;

5、明确需求管理工具;

6、编写需求管理计划。

?需求调研

需求调研是需求分析师一项非常重要的工作。在本项目中,我确定了对期货核心结算业务吃得很透,具有5年以上相关经验的技术人员作为需求分析师负责与客户的需求访谈和调研,并成立需求组,在需求组中还配备了软件设计师和软件测试工程师旁听。我认为,在需求阶段,虽然以需求分析师为主,但软件设计师和软件测试工程师参与非常重要,他们可以了解第一手的需求信息。

?需求分析和定义

针对获取的用户需求进行分析和整理,并规格化,形成需求规格说明书。针对每项功能需求,定义需求的重要性、优先级、实现的难易程度。

?需求确认

针对需求规格说明,和客户业务、技术人员起来,通过讲解的方式,确认需求,并最终让客户方需求接口负责人签字确认。

?管理需求变更

管理需求变更是需求管理中非常重要的一环,也是经验不足的项目经理容易忽视的地方。

在软件项目中,没有不变的需求,不能指望在需求阶段一蹴而就,就此确定下来。随着设计和开发的深入,有些原定的需求本来就可能显得不合理;加之时间的推移会伴随着客户业务的变化和发展,需求变更是不可避免的。管理需求变更,是项目成功的关键因素。

在结算系统项目中,我采用如下方式对需求变更进行管理:

1、需求变更申请需书面提出,并由客户方需求接口人签字认可。当我方收到需求变更申请时,先由项目组经理与客户方需求接口人协商,协商未果,由包括双方领导在内组成的CCB审核,是否接受变更;

2、CCB审核确定接受的需求变更,录入需求管理工具TD,并通知相关方(包括设计组、开发组、测试组),评估影响范围及工作量;

3、针对需求变更,进行相应的设计和开发的调整;

4、验证需求变更是否完成。

?需求跟踪

针对需求列表,定期对需求进展进行跟踪。

需求跟踪是指跟踪一个需求从定义、实现到验证的全过程,包括编制每个需求同系统各类元素之间的联系文档,这些元素包括其他类型的需求、体系结构、其他设计组件或模块、源代码模块、测试用例、帮助文件等。需求跟踪的目的是建立与维护“需求-设计-编码-测试”之间的一致性,确保所有的工作成果符合用户需求。

如果采用手工操作方式,对需求进行跟踪,将是一个非常繁重的体力活。在本项目中,我们应用TD管理工具,该工具把需求定义、设计(每项设计关联一个或多个需求点)、开发(建立开发模块与需求点的关联矩阵)、测试(每个测试用例关联一个或多个需求点)有机的联系在一起。

我负责专人(本项目以系统集成人员兼职)来定期扫描和跟踪需求的进展,可以让我随时了解项目的进展以及离完全符合客户所有需求还有多远的距离。

软件需求管理的心得体会

?要充分识别客户的需求和潜在需求

客户的需求各种各样,纷繁复杂,我们要从中将这些需求进行分类。有些需求是现有的业务规则和功能、有些是对现有工作的抱怨、有些是客户根据自己理解设想的业务规则和功能。针对各类需求,我们要有不同的对待方法,尤其要慎重对待对现有工作抱怨的需求,这类客户他对现实不满,但又没有想法设想一套新的业务规则和功能,这时候需要我们充分理解,抓住客户抱怨的本质,通过自身对客户业务的理解,帮助客户设计一套能解决他的抱怨的新的规则和功能。

在本项目开发中,我们有重点地针对客户抱怨较大或较多的需求,内部召集相关人员充分挖掘客户的需求和潜在需求,并运用快速开发工具AxureRP-Pro搭建系统原型,以直观易懂的界面作为交流工具,充分讨论其是否满足客户的真实需求。

?需求确认非常重要

在以前的项目中,经常在项目验收时存在客户反悔、扯皮的事情,而项目开发时需求文档等各类开发文档却都很齐全。究其原因,跟需求没有正式确认有很大关系。有些项目经理或需求分析人员抱怨项目时间紧,客户需求人员没空,所以免了需求确认这一环节。但我认为这一环节一定不能免。哪怕项目组再忙,客户再忙,一定要想办法让客户书面确认需求并签字。在本项目中,需求分析完成后,我通过给客户逐步讲解需求,同时逐步让客户对需求进行确认。在客户需求变更后,我通过会议纪要、需求变更单等让客户确认签字以保护当前协商的成果。

?需求双方都要务实

需要双方领导层达成共识,需求是无止境的,项目成功才是关键的。在本项目初期,我请求我方领导和客户方领导多次沟通,定下保证实现项目主要需求,一定要保障项目成功的基调,并为此做了一些物质上的一些激励,即我方拿出项目合同额10%的钱,激励由甲、乙双方共同实际参与此项目的项目人员,当然包括客户方的需求人员,如果项目按时上线,实现所有主要的日常业务功能,那么就可以参与分享此项目奖,否则该项目奖池归零。

?设计实现别让需求扩大化

追求完美是技术人员的通病。在校期间,课程设计等计算机实现方面,学生追求算法完美可以认为是一种美德,但项目是受多种因素约束的,我们不可能实现完美无缺的项目。我们的设计人员一定不要把需求放大,放到一个更完美,适应性更强的模型中,这样无形中扩大了项目范围,加大了项目的实现成本,对项目对个人都是有害的。我们在提炼客户需求的时候,可以采用“往前跨半步”的方式,满足客户现在以最近的将来可能需要的需求以满足系统的灵活性,切忌追求更加抽象化,更加完美,盲目扩大需求范围,要知道,简单是美,适用的才是最好的。

?严格规范需求变更控制流程

项目开发中,需求变更是永恒的主题,我们要采取恰当的措施,正视这个问题。以前项目开发过程中,由于客户方相关人单方面跟项目某一个开发人员指出说原理解的需求不正确,需重新拟定,导致后来需求变更泛滥,项目无法收尾的惨剧。

在本项目中,由双方领导层、双方项目经理等组成变更控制委员会CCB,并要求开发人员不得私自答应或接受客户某一个需求提出人员的需求变更,所有变更必须以客户方需求接口人汇总整理后,以书面方式提出向开发方项目经理申请,开发方项目经理可以与客户方需求接口人讨论是否接受和拒绝需求变更,当不能达成一致时,交由CCB,由CCB决定是否变更,确有变更的,录入到变更控制系统TD,并通知各方实施变更。通过这套机制,客户要实现需求变更不是那么随便,有很多人会参与监督这一变更过程,客户也害怕自己的形象受损,有效杜绝了客户需求提出人员对需求的朝令夕改和源源不断提出的可有可无的需求的情况发生。

?别忽视需求跟踪

不要等到UAT时,才发现需求未实现,或实现不全,这样会让验收工作苦笑不得,影响在客户方的形象。在本项目中,我委派系统集成人员兼做定期的需求跟踪,每个月一次,以检查正在进行的设计和开发,其功能点是否符合对应的需求。

?抓住客户方需求接口人

在项目启动初期,一定要要求客户规定唯一一个需求接口人,这个接口人就是项目开发方的教练(coach)。在需求阶段,需求接口人需始终跟需求组一起,跟客户的各个部门一起讨论客户需求,所有部门的需求需经需求接口人同意。这

样做好处很多,客户方需求接口人起着沟通项目甲乙双方桥梁的作用,甚至算半个乙方(项目开发方)的人。在讨论和汇总客户各部门、各人员的需求时,客户方需求接口人可以帮项目组过滤一些无用或很次要的需求,也可以协调客户部门各人员需求的冲突,更可以协调项目甲、乙双方的需求理解偏差和冲突。客户方需求接口人还可以通过全程参与项目需求管理,了解更多以前没有机会了解的业务,提升自身业务能力,这也是他(她)所乐见的。在项目验收时,客户方需求接口人可以根据自身全程参与,更深入地理解系统需求的重点,在验收或试用阶段如果有实际操作人员有反悔的情况,他(她)可以以更深入地对业务和对系统的理解来调停。

苦练内功,适当引导客户需求

有很多时候,项目组开发人员抱怨客户需求太霸道,实现起来很别扭。但究其原因,发现是由于你别客户牵着鼻子走,客户说怎样就怎样,但客户又不是计算机设计专家,导致项目开发人员抱怨不断。我们在项目开发过程中,一定先要虚心听,且要多问几个为什么,然后在自己公司找相关业务专家、行业顾问多咨询,以更简洁、更合理的模型来满足客户需求。如果自己公司缺乏行业经验,一定要聘请业务专家、行业顾问等专业人士,通过行业知识和业务的培训和专业指导等方式,提高项目团队特别是需求分析师对客户需求的把握能力。此外,还可以对客户方业务人员提供免费的计算机和软件开发等基础支持的培训,以便引导客户需求提出人员以更接近技术人员的方式提出合理的需求。

结尾

以上是我在负责国内某期货交易所的结算系统项目中,对需求管理流程的一些认识和心得体会,供广大同行交流,希望能抛砖引玉,为我国信息系统项目管理水平提高做点应有的贡献。

--------------------

参考文献:

《信息系统项目管理师教程(第2版)》

作者简介:

曾创能,35岁,上海某软件公司开发总监,从事银行、证券、期货领域软件项目开发十余年,具有多年的信息系统架构设计和项目管理经验,在项目管理、部门建设方面有许多独到之处,有十余个负责的金融项目曾获得过行业大奖。

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

需求说明书(软件项目管理系统) §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 功能说明 根据用户编码和用户密码校核该用户是否合法; 在校验用户密码后,可修改用户自己的密码;

第2章 软件项目需求管理复习题

第2章软件项目需求管理复习题 一、填空题: 1、需求是从系统外部能发现系统所具有的满足于用户的特点、功能与属性等。 2、软件需求的四个层次依次分别是:原始问题描述、用户需求、系统需求、软件设计描述。 3、原始问题描述和用户需求的抽象层次比较高,能帮助我们的较高抽象层次上进行交流,而系统需求和软件设计描述则是具体的,可以根据它们的来进行编码。 4、通常情况下,在4个不同层次的软件需求描述中,由于原始问题描述和软件设计描述过于抽象和过于具体而不常出现,人们经常提到的是用户需求和系统需求。 5、系统需求一般分为功能需求、非功能需求和领域需求。 6、功能需求描述系统所应提供的功能和服务,包括系统应该提供的服务、对输入如何响应 及特定条件下系统行为的描述。 7、功能需求取决于软件的类型、软件的用户及系统的类型等。 8、功能需求应该具有全面性和一致性。 9、功能需求全面性指对用户所需要的所有服务进行描述。 10、功能需求一致性则指需求的描述不能前后自相矛盾。 11、非功能需求是指那些不直接与系统的具体功能相关的一类需求。它们与系统总体特性相关,如可靠性、响应时间及需要的存储空间等。 12、非功能性需求定义了对系统提供的服务或功能的约束,包括时间约束、空间约束、开发过程约束及应遵循的标准等。 13、非功能需求还与系统的开发过程有关,例如对在软件过程中必须要使用的质量标准的描述、设计中必须使用的CASE工具集的描述以及软件过程所必须遵守的原则等。 14、按照非功能需求的起源,可将其分为产品需求、机构需求和外部需求3大类。 15、产品需求对产品的行为进行描述;机构需求描述用户与开发人员所在机构的政策和规定;外部需求范围比较广,包括系统的所有外部因素和开发过程。 16、一个好的需求集应该包含用户解决问题需要的功能服务,而且尽量避免涉及软件设计与软件实现的细节。区分一个需求集质量的高低可通过软件需求质量度量的9个元素,即正确性、无歧义、完备性、一致性、分级别、可验证性、可修改性、可跟踪性、可理解性。17、需求工程可分解为需求开发和需求管理。需求开发关注需求的生成,需求管理关注需求变更的控制。 18、需求开发与需求管理之间的界限是基准需求规格。 19、需求管理是一个使客户与项目团队不断变更的软件需求达成并保持一致的过程。 20、需求开发的结果应该有项目视图、范围文档、用例文档、软件需求规格说明书及相关分析模型。 21、需求评审有两类,其中的正式技术评审也称为同行评审。 22、实现需求跟踪的一种通用方法是采用需求跟踪矩阵。 二、简答题: 1、软件需求的定义是什么,分别从用户角度和开发者角度给以阐述。 用户角度:用户解决问题或达到目标所需的条件或能力; 开发者角度:系统或系统不见腰满足合同、标准、规范或其他正式文档所需具有的条件或能力。

酒店管理项目-需求分析

酒店订房管理项目 项 目 说 明 书 荆州市职业技术学院国际信息技术学院 撰写:GX1202全体参赛人员 班级:GX1202

1项目背景 1.1目的 酒店客房管理系统在正常运营中需要对客房资源、客人信息、结算信息等进行管理,利用酒店客房管理信息系统对客房的各个操作进行管理,能够及时了解各个环节中信息的变更,有利于提高管理的效率 1.2 背景 组织本届软件编程大赛旨在激发武汉厚溥教育科技有限公司各合作院校学生学习软件知识的热情、运用软件技术的兴趣、检验软件编程的水平、推动软件产品的应用、提高学生的实际开发能力。同时通过此次大赛,期望激励学生的创新精神、团队合作精神、加强动手能力、培养创造能力、提高学生综合能力及社交能力、促进学生对软件开发的兴趣以及各合作院校计算机技术专业教学的交流与合作。 1.3运行环境 客户端:手机系统android 2.3以上,支持重力感应功能,手机内存10M以上. 前台及后台管理:cpu:奔腾4 1.6Ghz 内存:256M 硬盘:300M空余空间显卡无要求网络要求:最低56K Modem 操作系统:Windows 2000/xp/7 响应时间:<2s 存储速度:<4s 网络通信功能:联网实时更新,最低56k Modem. 开发环境:系统基于Java和MySql 的windows xp/7环境下. 以上以及更多

第二章项目整体需求概述 酒店订房大致框架图: 项目需求详细说明: 1.我们采用现在最流行的移动式设备手机为客户端,群体比较大,推广度比较强, 为酒店能够带来质的突破,解放了人力订房的千年陈规,可以实现远程登录 服务器订房,适合白领人群,搭车过车中都可以订房,节省时间 2.到达酒店后前台服务人员会询问您是否订房,如果有通过客户端订房的可以省 去一些步骤,通过前台直接可以入住,省去登记时间和流程,更快更高效 3.如果客户对于房间不是非常满意可以通过客户端提出换房的要求,只能换房三 次,如果超过三次换房,系统会默认扣除押金,也可以直接到前台提出换房或 者是退房要求,不收取任何手续费用 4.入住酒店之后可以选择给予该酒店服务,硬件设施等进行评价

项目管理:怎样做需求分析

项目管理:怎样做需求分析 如果将需求分析阶段的工作归结为编写需求规格说明书,这种简化的做法往往是导致项目后期层出不穷问题的罪魁祸首。建议采用以下步骤形成软件需求:获取用户需求→分析用户需求→编写需求文档→评审需求文档→管理需求。下面我们先来讨论前两个步骤(获取用户需求、分析用户需求)的做法。 获取用户需求 这是该阶段的一个最重要的任务。以下为获取用户需求需要执行的活动(如图1所示)。 ●了解客户方的所有用户类型以及潜在的类型。然后,根据他们的要求来确定系统的整体目标和系统的工作范围。 ●对用户进行访谈和调研。交流的方式可以是会议、电话、电子邮件、小组讨论、模拟演示等不同形式。需要注意的是,每一次交流一定要有记录,对于交流的结果还可以进行分类,便于后续的分析活动。例如,可以将需求细分为功能需求、非功能需求(如响应时间、平均无故障工作时间、自动恢复时间等)、环境限制、设计约束等类型。 ●需求分析人员对收集到的用户需求做进一步的分析和整理。下面是几条常见的准则:⑴对于用户提出的每个需求都要知道“为什么”,并判断用户提出的需求是否有充足的理由; 图1 获取用户需求的活动

⑵将那种以“如何实现”的表述方式转换为“实现什么”的方式,因为需求分析阶段关注的目标是“做什么”,而不是“怎么做”; ⑶分析由用户需求衍生出的隐含需求,并识别用户没有明确提出来的隐含需求(有可能是实现用户需求的前提条件),这一点往往容易忽略掉,经常因为对隐含需求考虑得不够充分而引起需求变更。 ●需求分析人员将调研的用户需求以适当的方式呈交给用户方和开发方的相关人员。大家共同确认需求分析人员所提交的结果是否真实地反映了用户的意图。需求分析人员在这个任务中需要执行下述活动: ⑴明确标识出那些未确定的需求项(在需求分析初期往往有很多这样的待定项); ⑵使需求符合系统的整体目标; ⑶保证需求项之间的一致性,解决需求项之间可能存在的冲突。 分析用户需求 在很多情形下,分析用户需求是与获取用户需求并行的,主要通过建立模型的方式来描述用户的需求,为客户、用户、开发方等不同参与方提供一个交流的渠道。这些模型是对需求的抽象,以可视化的方式提供一个易于沟通的桥梁。用户需求的分析与获取用户需求有着相似的步骤,区别在于分析用户需求时使用模型来描述,以获取用户更明确的需求。分析用户需求需要执行下列活动: ●以图形表示的方式描述系统的整体结构,包括系统的边界与接口; ●通过原型、页面流或其它方式向用户提供可视化的界面,用户可以对需求做出自己的评价; ●系统可行性分析,需求实现的技术可行性、环境分析、费用分析、时间分析等; ●以模型描述系统的功能项、数据实体、外部实体、实体之间的关系、实体之间的状态转换等方面的内容。

论软件项目中需求管理的重要性

需求管理对软件项目的重要性 信息技术革命正以迅猛之势更新着我们生存的社会。信息技术不再仅作为一项独立技术而存在。各行各业中信息化手段与技术的采用越来越突出,软件需求量越来越大,与此蓬勃发展的软件产业前景相反的是,软件行业落后的生产方式无法满足目前信息化时代飞速增长的软件需要,大型信息系统的成功率持续低迷。 以计算机软件、集成电路技术为主导的信息技术革命正以迅猛之势更新着我们生存的社会,信息技术不再仅作为一项高科技技术而存在,而是广泛渗透于各个行业领域的生产、经营、管理等过程,成为它们发展的辅助手段和管理工具。 信息的采集、分析、处理、整合、发布是信息产业的核心内容,它们都离不开软件。软件是计算机的核心,信息社会需要众多功能灵活的软件系统。 但是,自20世纪60年代以后,全球软件行业落后的软件生产方式无法满足目前信息化时代飞速增长的软件需要,传统的软件开发方式与软件产品设计过程已不能满足当今对软件产品多样化的业务需要,从而导致软件开发与生命周期维护过程中出现一系列严重的问题。 所以我认为“软件项目中的需求管理”是软件项目成败的关键,对项目成败具有决定性的作用。以下将阐述软件项目中需求管理的重要性。 现阶段需求管理的问题主要体现在以下几个方面:

1.软件项目中范围、进度、成本估算准确率低。 软件项目开发的实际成本远远高出估算成本高出;同时实际进度比预期进度延后几个月甚至几年。这种现象降低了软件组织的信誉。 2.客户对最终交付产品满意度低。 软件开发人员在对用户需求未有清晰了解的基础上,对所面对的问题领域还没有确切分析与设计的情况下,即着手进行开发、编写程序。造成实际产品与客户期望功能产生偏离,无法解决客户的真实需求而造成客户满意度降低。 3.软件产品质量差强人意。 软件质量保证技术没有贯彻地采用到软件开发的过程中,这必会导致软件产品发生质量问题。缺乏审核、复审和全面测试的软件难免质量低下,出错率高。 4.软件不可维护、生命周期短。 软件程序中错误难以改正,出现新的需求或者需求变更时原有架构不易于维护,不能根据用户的新需求在原有架构中进行改变。造成软件的使用年限缩短,软件成本加深。 5.软件缺乏配套文档资料。 软件产品应具备整套文档资料。然而在进度与成本的制约下,文档的编写与更新工作也使得软件组织疲惫不堪,每个人对文档内容的深度与阐述程度不尽相同。加之企业缺乏与之配合的文档制度、文档模板,更为文档编写带来困难之处。而缺乏相关文档对软件的二

软件项目管理之需求分析

软件项目管理之需求分析 需求分析是项目开发的基础,所以在进行软件项目开发之前,我们必须要了解下用户的需求是什么,避免在投入大量人力、物力、财力、时间等之后,开发出来的软件没人要。本文将从需求分析的过程、层次、需求开发阶段的重点以及需求分析的任务做详细介绍: 1.需求分析的过程 需求过程包括需求开发和需求管理2个部分: (1)需求开发就是对开发前期的管理,与客户的沟通过程,可以分为4个阶段:需求获取、需求分析、编写需求和需求验证。 (2)需求管理:就是软件项目开发过程中控制和维持需求约定的活动。包括:变更控制、版本控制、需求跟踪、需求状态跟踪。 2.需求的层次 需求的层次包括:业务需求、用户需求、功能需求、非功能需求等4个方面。 3.需求开发阶段的重点 (1)提取业务对象 业务对象是指系统使用的真实对象,例如一个供应链管理(简称SCM)业务对象主要包括:生产批发商、零售商、送货商、顾客多个层次。 (2)提取业务流程 在了解业务逻辑的过程中,应该列举出所开发软件模块的各自职能,并细化每个工作流程,深入分析业务逻辑。 (3)性能需求 在分析的前期应该注意客户对所开发软件的技术性能指标,如存储容量限制、运行时间限制、安全保密性等。 (4)环境需求 环境需求是指软件平台运行时所处环境的要求,如硬件方面:机型、外部设备、数据通信接口;软件方面:系统软件,包括操作系统、网络软件、数据库管理系统方面;使用方面:使用部门在制度上,操作人员上的技术水平上应具备怎样的条件。

(5)可靠性需求 对所开发软件在投入运行后发生故障的概率,应该按实际的运行环境提出要求。对于重要的软件,或是运行失效会造成严重后果的软件,应提出较高的可靠性要求。 (6)安全保密要求 在需求分析时应当在这方面恰当地做出规定,对所开发的软件给予特殊的设计,使其在运行中,其安全保密方面的性能得到必要的保证。 (7)用户界面需求 为用户界面细致地规定到达的要求。 (8)资源使用需求 开发的软件在运行时和开发时所需要的各种资源。 (9)软件成本消耗与开发进度需求 在软件项目立项后,根据合同规定,对软件开发的进度和各步骤的费用提出要求,作为开发管理的依据。 (10)开发目标需求 预先估计以后系统可能达到的目标,这样可以比较容易对系统进行必要的补充和修改。 4.需求分析的任务 需求分析的主要任务是借助于当前系统的逻辑模型导出目标系统的逻辑模型,其流程如下: (1)确定对系统的综合需求(功能、性能、运行、扩充需求) (2)制作产品需求文档(PRD) (3)分析系统的数据需求(概念模型、数据字典、规范化) (4)导出目标系统的详细的逻辑模型(数据流图、数据字典、主要功能描述) (5)开发原形系统 (6)从PRD提取编制软件需求规格说明书(SRS) 总之,需求分析的任务就是解决“做什么”,在准确表达所接受的用户需求以后,根据用户需求来设计软件,避免我们开发出来的产品客户不要。

(项目管理)一项目需求

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

软件项目管理系统要求规范

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

IT项目管理需求分析说明书

I T项目管理需求分析说 明书 内部编号:(YUUT-TBBY-MMUT-URRUY-UOOY-DBUYI-0128)

IT项目管理需求分析说明书

目录 1.第一章引言 1.目的 本软件分析报告的目的是对根据客户的需求,对系统功能、性能需求向××客户、项目组开发成员、项目实施组和测试成员提供一个清晰的陈述。对IT项目管理功能的后续阶段等过程提供指导和工作原则。 2.IT项目管理内容简介 2.1.按管理目标 从IT项目管理的目标来看,IT项目管理需要管理项目费用/预算和项目过程。 项目费用/预算管理:对于项目费用/预算要求做到能够即时的查 询到本年度或者历史年度的预算以及费用付款情况,需要明细到 分公司的付款情况。目前具体的管理方法是由省局信息中心制定 编写年度预算,项目立项后制定付款计划。分公司实施付款计 划,在每次付款完成后将付款记录录入到系统中,省局信息中心 负责汇总。主要涉及到的文档/数据有,IT项目年度预算表,项 目立项表,项目付款计划,分公司付款记录,年度付款情况(报 表)。 项目过程管理:对于项目的过程要求能过做到能够将项目过程管 理中产生的文档/数据做统一的管理,在需要的时候能够随取随

用。并且做到能够查询到本年度或者历史年度计划的项目和实际 实施的项目对比报表。目前具体的管理办法是省局统一立项,制 定全省推广计划,分公司根据推广计划实施推进项目计划。主要 涉及的文档/数据有,IT项目立项表,全省计划表,计划明细表 (工作项/里程碑),招标表,合同表,年度项目完成情况(报 表)。 2.2.按IT项目的进程阶段 ××局的IT项目管理可以分为以下几个阶段:年度规划,项目立项,招投标管理,项目启动\建设,项目维护,每个阶段有特定的事务和对象需要处理,每个阶段又有特定的里程碑点来控制整个项目的进程。 1、年度计划:这个阶段主要是省局信息中心根据省局的各个部门和各地 市公司提交的信息化要求,和烟草局本身发展的需要,编制下一年度的IT项目预案,一般在三季度完成。涉及对象主要是IT项目年度计划。 2、立项管理:信息中心根据实际情况,在年度计划中挑选项目进行立 项,编制定立项表,招标表,合同表等。如果不在年度计划中的项目需要立项的话,要求先将其添加到年度计划中才能立项。 3、招投标管理:这是一个特殊的环节,管理项目中需要招投标的事务, 主要是管理招标表,甚至保留招标内容。一个项目中可能会有多个招标事务。招标完成和由省局和中标单位签订合同,也可能会要求各个

软件项目中需求管理工作的重要性

软件项目中需求管理工作的重要性 开发一个软件项目,如果采用瀑布模型(或改进型瀑布模型)的话,通常会包括以下几个开发阶段,即:需求分析、系统设计、系统编码、系统测试、系统交付(及后续维护)。在项目管理过程域中,主要包括:项目规划、立项管理、需求管理、项目监控、风险管理和结项管理等。 我们把所有与需求相关的活动统称为需求工程。需求工程的活动又可分为两大类,即需求开发和需求管理。需求分析师通过需求调查(调研)、需求分析和需求定义,完成需求开发工作。而项目经理则通过对需求确认、需求跟踪和需求变更控制的主导,实现需求管理。 软件需求工程是软件项目开发工作的一个重要源头。它是由两个角色共同完成的。需求分析师一定要尽可能准确的获取客户需求,尽量一次做对,编写出高质量的《用户需求说明书》和《产品需求规格书》,努力降低项目中后期因需求变更对项目的成本、质量和进度的影响。而项目经理则需通过加强需求管理,有效的防范和减少不必要的需求变更。曾有人做过统计分析,如果在需求分析阶段发生的需求变更对项目带来的额外工作量是5的话,那么在系统分析和系统编码阶段发生的需求变更对工作量的增加分别是20和100。 对于那些软件能力成熟度高的软件企业的项目经理而言,可以毫不夸张的说:只要把需求管理做好了,项目也就已经成功了一半。 CMMI中对需求管理流程的定义与我项目实践的体会

集成式能力成熟度模型(CMMI:Capability Maturity Model Integration)把需求管理流程划分为六部分,分别是:1、制定需求管理计划;2、求得对需求的理解;3、求得对需求的承诺;4、管理需求变更;5、维护对需求的双向跟踪;6、识别项目工作与需求之间的不一致性。 毋容置疑,上述六个部分是构成需求管理流程的重要组成部分。但在实际操作中,仅仅是机械的遵循这些标准流程和要点,往往又是不够的。根据我在过去十年在国内的多个大型软件项目(涉及仓储管理、物流园区信息平台、保税区海关联网监管系统,以及港口社区综合信息平台等)担任项目经理的管理实践,我的看法就是:要想成功的执行需求管理,涉及到的一些关键成功因素还远不止这些。以下就是我的一些经验和体会。 我的两点经验 一、应紧密结合国内企业的实际特点和人文环境,通过多种手段消除“需求的不确定性” 开发企业级大型应用软件项目,需要应对的重要挑战就是“需求的不确定性”。那么,什么是“需求的不确定性”呢?我这里先例举两个场景。场景一:开发人员没有行业背景,不能很好的理解业务需求。某个开发项目,尽管经过了多轮次、十分详尽和深入的需求研讨,而且开发人员都确信自己已经明白了客户提出的业务需求,但费尽千辛万苦把系统做出来以后,客户却说:“对不起,这并不是我想要的!”于是几百万,甚至上千万的开发投入打了水漂;场景二:开发人员具备丰富的行业经验,也确实理解了业务需求,但开发项目组因为没有很好的平衡各

医院管理系统项目需求分析

医院管理系统项目需求分析 目录 1引言 ............................................................................................................................................ 错误!未定义书签。 1.1编写目的......................................................................................................................... 错误!未定义书签。 1.2适用范围......................................................................................................................... 错误!未定义书签。 1.3背景................................................................................................................................. 错误!未定义书签。 1.4术语定义......................................................................................................................... 错误!未定义书签。 1.5参考资料......................................................................................................................... 错误!未定义书签。2项目概述..................................................................................................................................... 错误!未定义书签。 2.1目标................................................................................................................................. 错误!未定义书签。 2.2用户特点......................................................................................................................... 错误!未定义书签。3功能需求..................................................................................................................................... 错误!未定义书签。 3.1流程图............................................................................................................................. 错误!未定义书签。 3.1.1门诊管理流程图................................................................................................. 错误!未定义书签。 3.1.2住院管理流程图................................................................................................. 错误!未定义书签。 3.1.3药库药房流程图................................................................................................. 错误!未定义书签。 3.2功能表............................................................................................................................. 错误!未定义书签。 3.3用例................................................................................................................................. 错误!未定义书签。 3.3.1门诊管理用例图................................................................................................. 错误!未定义书签。 3.3.2门诊管理用例说明............................................................................................. 错误!未定义书签。 3.3.2.1门诊挂号人员登录:......................................................................................... 错误!未定义书签。 3.3.2.2门诊挂号人员修改密码:................................................................................. 错误!未定义书签。 3.3.2.3门诊挂号人员对挂号单的录入:..................................................................... 错误!未定义书签。 3.3.2.4门诊挂号人员对挂号单的查询:..................................................................... 错误!未定义书签。 3.3.2.5门诊挂号人员退号:......................................................................................... 错误!未定义书签。 3.3.2.6门诊挂号人员退出登录:................................................................................. 错误!未定义书签。 3.3.2.7门诊挂号人员结算:......................................................................................... 错误!未定义书签。 3.3.2.8门诊划价人员登录:......................................................................................... 错误!未定义书签。 3.3.2.9门诊划价人员修改密码:................................................................................. 错误!未定义书签。 3.3.2.10门诊划价人员对处方的录入:....................................................................... 错误!未定义书签。 3.3.2.11门诊划价人员对划价单的查询: ................................................................... 错误!未定义书签。 3.3.2.12门诊划价人员退出登录:............................................................................... 错误!未定义书签。 3.3.2.13门诊收费人员登录:....................................................................................... 错误!未定义书签。 3.3.2.14门诊收费人员修改密码:............................................................................... 错误!未定义书签。 3.3.2.15门诊收费人员收费:....................................................................................... 错误!未定义书签。 3.3.2.16门诊收费人员退出登录:............................................................................... 错误!未定义书签。 3.3.2.17门诊收费人员结算:....................................................................................... 错误!未定义书签。 3.3.3住院管理用例图................................................................................................. 错误!未定义书签。 3.3.4住院管理用例说明............................................................................................. 错误!未定义书签。 3.3. 4.1住院部管理员登录:......................................................................................... 错误!未定义书签。 3.3. 4.2住院部管理员修改登录密码............................................................................. 错误!未定义书签。

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

项目管理系统需求说明书

成都鼎域前沿科技有限公司 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)

浅谈软件开发外包项目的管理

浅谈软件开发外包项目的管理 所谓软件外包就是一些发达国家的软件公司将他们的一些非核心的软件项目通过外 包的形式交给人力资源成本相对较低的国家的公司开发,以达到降低软件开发成本的目的。众所周知,软件开发的成本中70%是人力资源成本,所以,降低人力资源成本将有效地降低软件开发的成本。那么,在软件外包项目管理中要注意哪些问题呢? 一、如何选择外包商 1.公司规模 a) 具有一定规模的公司才有可能具有全面的软件开发能力,有客户需要的各类技术高手。 b) 接触过的企业比较多,才有可能接触过很多的项目,积累丰富的经验。可以将其他公司行业知识或是系统架构方面的经验进行分享。 c) 公司的声誉,财政状况,招工吸引力等,以保证项目期间无经济困扰,在软件人才频繁进出的情况下,有能力招募高手,有钱不断培训新人,从而力保高水平完成外包项目。 d) 后续服务的保障性。基本上,我们希望的厂商都是要能够长期合作的,毕竟默契跟关系是需要长期培养的,万一厂商规模太小,忽然有一天消失了,重新找厂商以及试运行项目又会是一个不太愉快的过程,更别说以前项目的维护工作可能没法得到保障了。 2.规范化。 a) 如果一个企业做得比较规范,我们会认为他们更可信。 b) 项目管理能力: 厂商使用的方法论是否完整;是否经历过大量项目的检验;是否运用数字化的管理工具;是否有明确的KPI;是否取得国际级的认证,如 CMMI;比如说获得CMMI 的认证,在国内好像也没听说过谁是真的过不去的,毕竟这个对培训机构来说也是一种商品化后的服

务项目,我的回复一向是:“是的,但是过了总比没过的好,总是多加了一份保障。” 3.价格:至于价格当然是越少越好,但不是要考虑的第一要素。Total cost的概念,包括项目的整体成本,以及后续需要维护的人员成本,是否有加值服务的提供(技术领域以及行业领域)。最早开始的时候,我们在议价的时候,更多的是考虑每个人天的单价,合作过几家厂商之后,发现如果从 Total 开发成本的角度来看,其实大家能提供的价格还是差不多的,单价低的可能项目周期会比较长,或是项目质量不如单价高的厂商,我们后续需要的测试以及维护成本加起来,其实成本是非常接近的,所以,还是建议找质量比较好的厂商,不要完全以人天单价或是项目总体价格来当作唯一的考虑点。毕竟省下来的钱是公司的,项目搞砸的 Credit是自己背的。 4.人员素质 沟通能力;英语能力;文档编写能力;是否对他专一,有资源一心一意压在他的项目上,而不要撤东墙补西墙。 5.地域性因素。这点随着互联网的普及以及各式沟通工具越来越多,倒是没有那么强的影响了,可以考虑在最后才使用这个指标衡量。 6.对你所在企业的认识。我们的经验是,对你越了解的合作伙伴,越容易培养默契,在项目的合作上也越容易体现出弹性,说的再虚一点的话,最好连合作伙伴的企业文化也能跟我们比较接近是最好的了,因为不管对方的老板答应你什么,真正干活的还是下面这批人。 二、管理外包商的要点 1.需求管理 在软件项目开发的早期,最主要解决的问题就是明确软件需求,但是现实中开发商往往很难理解企业的业务需求,加上业务需求会随着时间的推移而发生变化,造成软件需求一直在发生变化;另一方面,开发商提供的需求文档也很难被业务部门所理解,造成

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

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

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

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

相关文档
最新文档