论文部分内容阅读
【摘要】科学而有效的计算机软件项目管理需求分析有助于项目开发的成功。本文对目前计算机软件项目管理需求进行了分析,得出了软件项目管理需求分析的内容和目标,并总结了其实施过程中的步骤方法。
【关键词】计算机 软件项目 需求分析
【中图分类号】TP311.52 【文献标识码】A 【文章编号】1672-5158(2013)04-0008-01
一、计算机软件项目管理涵义
项目是一件事情、一项独一无二的任务,也可以理解为是在一定的时间和一定的预算内所要达到的预期目的。具有明确的目标性、资源成本的约束性、项目实施的一次性、结果的不可逆转性以及创新性。
项目管理是指在项目活动中运用专门的知识、技能、工具和方法,使项目能够在有限资源限定条件下,实现或超过设定的需求和期望。
软件需求分析就是把软件计划期间建立的软件可行性分析求精和细化,分析各种可能的解法,并且分配给各个软件元素。其对象是软件工程项目,和其他的项目管理相比有相当的特殊性。在计算机软件项目管理过程域中,主要包括:项目规划、立项管理、需求管理、项目监控、风险管理和结项管理等。
二、计算机软件项目管理中的需求分析内容
软件需求工程是计算机软件项目开发工作的一个重要源头,涉及到需求开发和需求管理。需求开发涉及到需求调研,需求收集,需求分析,需求开发等工作,其中的重点有业务流程,数据字典,业务规则,界面原型;需求管理工作涉及到需求的状态管理,变更管理,需求的跟踪,需求的验证和确认等重要内容。
软件需求分析特别重要,在软件开发的过程中具有举足轻重的地位,但是我们常常会忽视两点:一个就是缺乏需求分析和开发的过程,把用户需求直接作为了软件需求,没有需求建模和抽象的过程。另外一点就是对于性能,安全,易用性,可维护性和扩展性等非功能性需求没有考虑,导致开发出来的系统是一个不好用的半成品。
三、计算机软件项目管理中的需求分析目标
在计算机软件项目管理的实际工作中,管理者必须在每一项工作中,全面分析问题,正确评估任务,制定详细的计划表,从而实现既定目标。软件需求分析的主要实现目标包括:
1)对实现软件的功能做全面的描述,帮助用户判断实现功能的正确性、一致性和完整
性,促使用户在软件设计启动之前周密地、全面地思考软件需求;
2)了解和描述软件实现所需的全部信息,为软件设计、确认和验证提供一个基准;
3)为软件管理人员进行软件成本计价和编制软件开发计划书提供依据。
四、计算机软件项目管理中的需求分析的步骤方法
(一)获取用户需求。这是该阶段的一个最重要的任务,可能是软件开发中最困难、最关键、最易出错及最需要交流的方面。首先,了解客户方的所有用户类型以及潜在的类型。然后,根据他们的要求来确定系统的整体目标和系统的工作范围。其次对用户进行访谈和调研。交流的方式可以是会议、电话、电子邮件、小组讨论、模拟演示等不同形式。需要注意的是,每一次交流一定要有记录,对于交流的结果还可以进行分类,便于后续的分析活动。例如,可以将需求细分为功能需求、非功能需求(如响应时间、平均无故障工作时间、自动恢复时间等)、环境限制、设计约束等类型。再次,需求分析人员对收集到的用户需求做进一步的分析和整理。下面是几条常见的准则:(1)对于用户提出的每个需求都要知道“为什么”,并判断用户提出的需求是否有充足的理由;(2)将那种以“如何实现”的表述方式转换为“实现什么”的方式,因为需求分析阶段关注的目标是“做什么”,而不是“怎么做”,(3)分析由用户需求衍生出的隐含需求,并识别用户没有明确提出来的隐含需求(有可能是实现用户需求的前提条件),这一点往往容易忽略掉,经常因为对隐含需求考虑得不够充分而引起需求变更。最后,需求分析人员将调研的用户需求以适当的方式呈交给用户方和开发方的相关人员。大家共同确认需求分析人员所提交的结果是否真实地反映了用户的意图。需求分析人员在这个任务中需要执行下述活动:(1)明确标识出那些未确定的需求项(在需求分析初期往往有很多这样的待定项),(2)使需求符合系统的整体目标;(3)保证需求项之间的一致性,解决需求项之间可能存在的冲突。
(二)分析用户需求。在系统设计之前和设计、开发过程中对用户需求所作的调查与分析,是系统设计、系统完善和系统维护的依据。可以通过审查业务流程、Demo界面和UML图,征求反馈意见。评审对软件系统运行时所处环境的要求。例如硬件、数据通信接口等等,在软件方面,采用什么支持系统软件运行(如操作系统、网络软件、数据库管理系统等)。从工作流程和数据流出发,逐步细化软件功能,找出系统各模块之间的联系、接口特性和客观限制,分析它们是否满足功能要求。针对可靠性、安全l生和扩展性评审,TCMS系统涉及公司内部最高机密,聘请第三方机构进行需求分析评审。
(三)文档编写。需求开发的最终成果是:客户和开发小组对将要开发的产品达成一致。为此,我们还必须编写软件需求说明书,进一步理解业务需求,用户需求,功能需求,为设计、开发和测试以及产品相关人员的提供参考。软件需求说明书采用什么样的形式能够把功能描述清楚,如何让使用人员尽快了解产品的功能,采用什么样的编写方式,是软件需求分析人员需要考虑的问题。经过最近的摸索和积累,个人觉得编写需求文档不一定要长篇大论,要多用表格和流程图,并且至少包括以下内容:(1)目的。即使用场景描述,先用几句话简要概括做该软件是用来解决什么问题。不要一开始就描述功能,至少让设计人员大致了解该功能的使用目的。(2)涉众。软件是让谁来使用,列举所有可能使用到此功能的用户或者角色。(3)功能列表。菜单树,展示具体包含的子功能和上下级关系。由于不同类型用户关注的重点可能不同,所以最好应给出各子功能中对应的默认用户权限。(4)数据字典。列表描述功能涉及的字段名称、数据类型、取值范围、默认值、备注信息等。(5)流程图。描述用户使用的正常流程和异常流程,如果涉及到状态转换最好给出状态迁移图。(6)UI。展示所涉及界面布局和原型,不必描述具体提示内容信息,可以在字符串资源表中去定义。(7)相关影响。该功能对其他相关模块的影响,还有其他相关模块对此功能的影响。
(四)需求验证。与客户经过沟通或验证,会产生两种结果:一类是确认双方达成共识,另一种情况是还需要再进一步沟通的。包括以下内容:(1)审查需求文档:对需求文档进行正式审查是保证软件质量的很有效的方法。组织一个由不同代表(如分析人员,客户,设计人员,测试人员)组成的小组,对需求规格说明书及相关模型进行仔细的检查。另外在需求开发期间所做的非正式评审也是有所裨益的。(2)依据需求编写测试用例:根据用户需求所要求的产品特性写出黑盒功能测试用例。客户通过使用测试用例以确认是否达到了期望的要求。还要从测试用例追溯回功能需求以确保没有需求被疏忽,并且确保所有测试结果与测试用例相一致。同时,要使用测试用例来验证需求模型的正确性,如对话框图和原型等。(3)编写用户手册:在需求开发早期即可起草一份用户手册,用它作为需求规格说明的参考并辅助需求分析。优秀的用户手册要用浅显易懂的语言描述出所有对用户可见的功能。而辅助需求如质量属性、性能需求及对用户不可见的功能则在需求规格说明书中予以说明。(4)确定合格的标准:确定合格的标准让用户描述什么样的产品才算满足他们的要求和适合他们使用的。将合格的测试建立在使用情景描述或使用实例的基础之上。
参考文献:
[1]吴艳艳:周长伦:姜家轩:王春梅:许自国::软件项目管理中的需求管理[J]:信息技术与信息化:2008年02期
[2]孙莉::软件项目管理中的需求管理[J]:信息系统工程:2011年04期
[3]李虹:闫德恒::基于项目需求工程理论的软件需求管理浅析[J]:中国科技信息:2011年16期
【关键词】计算机 软件项目 需求分析
【中图分类号】TP311.52 【文献标识码】A 【文章编号】1672-5158(2013)04-0008-01
一、计算机软件项目管理涵义
项目是一件事情、一项独一无二的任务,也可以理解为是在一定的时间和一定的预算内所要达到的预期目的。具有明确的目标性、资源成本的约束性、项目实施的一次性、结果的不可逆转性以及创新性。
项目管理是指在项目活动中运用专门的知识、技能、工具和方法,使项目能够在有限资源限定条件下,实现或超过设定的需求和期望。
软件需求分析就是把软件计划期间建立的软件可行性分析求精和细化,分析各种可能的解法,并且分配给各个软件元素。其对象是软件工程项目,和其他的项目管理相比有相当的特殊性。在计算机软件项目管理过程域中,主要包括:项目规划、立项管理、需求管理、项目监控、风险管理和结项管理等。
二、计算机软件项目管理中的需求分析内容
软件需求工程是计算机软件项目开发工作的一个重要源头,涉及到需求开发和需求管理。需求开发涉及到需求调研,需求收集,需求分析,需求开发等工作,其中的重点有业务流程,数据字典,业务规则,界面原型;需求管理工作涉及到需求的状态管理,变更管理,需求的跟踪,需求的验证和确认等重要内容。
软件需求分析特别重要,在软件开发的过程中具有举足轻重的地位,但是我们常常会忽视两点:一个就是缺乏需求分析和开发的过程,把用户需求直接作为了软件需求,没有需求建模和抽象的过程。另外一点就是对于性能,安全,易用性,可维护性和扩展性等非功能性需求没有考虑,导致开发出来的系统是一个不好用的半成品。
三、计算机软件项目管理中的需求分析目标
在计算机软件项目管理的实际工作中,管理者必须在每一项工作中,全面分析问题,正确评估任务,制定详细的计划表,从而实现既定目标。软件需求分析的主要实现目标包括:
1)对实现软件的功能做全面的描述,帮助用户判断实现功能的正确性、一致性和完整
性,促使用户在软件设计启动之前周密地、全面地思考软件需求;
2)了解和描述软件实现所需的全部信息,为软件设计、确认和验证提供一个基准;
3)为软件管理人员进行软件成本计价和编制软件开发计划书提供依据。
四、计算机软件项目管理中的需求分析的步骤方法
(一)获取用户需求。这是该阶段的一个最重要的任务,可能是软件开发中最困难、最关键、最易出错及最需要交流的方面。首先,了解客户方的所有用户类型以及潜在的类型。然后,根据他们的要求来确定系统的整体目标和系统的工作范围。其次对用户进行访谈和调研。交流的方式可以是会议、电话、电子邮件、小组讨论、模拟演示等不同形式。需要注意的是,每一次交流一定要有记录,对于交流的结果还可以进行分类,便于后续的分析活动。例如,可以将需求细分为功能需求、非功能需求(如响应时间、平均无故障工作时间、自动恢复时间等)、环境限制、设计约束等类型。再次,需求分析人员对收集到的用户需求做进一步的分析和整理。下面是几条常见的准则:(1)对于用户提出的每个需求都要知道“为什么”,并判断用户提出的需求是否有充足的理由;(2)将那种以“如何实现”的表述方式转换为“实现什么”的方式,因为需求分析阶段关注的目标是“做什么”,而不是“怎么做”,(3)分析由用户需求衍生出的隐含需求,并识别用户没有明确提出来的隐含需求(有可能是实现用户需求的前提条件),这一点往往容易忽略掉,经常因为对隐含需求考虑得不够充分而引起需求变更。最后,需求分析人员将调研的用户需求以适当的方式呈交给用户方和开发方的相关人员。大家共同确认需求分析人员所提交的结果是否真实地反映了用户的意图。需求分析人员在这个任务中需要执行下述活动:(1)明确标识出那些未确定的需求项(在需求分析初期往往有很多这样的待定项),(2)使需求符合系统的整体目标;(3)保证需求项之间的一致性,解决需求项之间可能存在的冲突。
(二)分析用户需求。在系统设计之前和设计、开发过程中对用户需求所作的调查与分析,是系统设计、系统完善和系统维护的依据。可以通过审查业务流程、Demo界面和UML图,征求反馈意见。评审对软件系统运行时所处环境的要求。例如硬件、数据通信接口等等,在软件方面,采用什么支持系统软件运行(如操作系统、网络软件、数据库管理系统等)。从工作流程和数据流出发,逐步细化软件功能,找出系统各模块之间的联系、接口特性和客观限制,分析它们是否满足功能要求。针对可靠性、安全l生和扩展性评审,TCMS系统涉及公司内部最高机密,聘请第三方机构进行需求分析评审。
(三)文档编写。需求开发的最终成果是:客户和开发小组对将要开发的产品达成一致。为此,我们还必须编写软件需求说明书,进一步理解业务需求,用户需求,功能需求,为设计、开发和测试以及产品相关人员的提供参考。软件需求说明书采用什么样的形式能够把功能描述清楚,如何让使用人员尽快了解产品的功能,采用什么样的编写方式,是软件需求分析人员需要考虑的问题。经过最近的摸索和积累,个人觉得编写需求文档不一定要长篇大论,要多用表格和流程图,并且至少包括以下内容:(1)目的。即使用场景描述,先用几句话简要概括做该软件是用来解决什么问题。不要一开始就描述功能,至少让设计人员大致了解该功能的使用目的。(2)涉众。软件是让谁来使用,列举所有可能使用到此功能的用户或者角色。(3)功能列表。菜单树,展示具体包含的子功能和上下级关系。由于不同类型用户关注的重点可能不同,所以最好应给出各子功能中对应的默认用户权限。(4)数据字典。列表描述功能涉及的字段名称、数据类型、取值范围、默认值、备注信息等。(5)流程图。描述用户使用的正常流程和异常流程,如果涉及到状态转换最好给出状态迁移图。(6)UI。展示所涉及界面布局和原型,不必描述具体提示内容信息,可以在字符串资源表中去定义。(7)相关影响。该功能对其他相关模块的影响,还有其他相关模块对此功能的影响。
(四)需求验证。与客户经过沟通或验证,会产生两种结果:一类是确认双方达成共识,另一种情况是还需要再进一步沟通的。包括以下内容:(1)审查需求文档:对需求文档进行正式审查是保证软件质量的很有效的方法。组织一个由不同代表(如分析人员,客户,设计人员,测试人员)组成的小组,对需求规格说明书及相关模型进行仔细的检查。另外在需求开发期间所做的非正式评审也是有所裨益的。(2)依据需求编写测试用例:根据用户需求所要求的产品特性写出黑盒功能测试用例。客户通过使用测试用例以确认是否达到了期望的要求。还要从测试用例追溯回功能需求以确保没有需求被疏忽,并且确保所有测试结果与测试用例相一致。同时,要使用测试用例来验证需求模型的正确性,如对话框图和原型等。(3)编写用户手册:在需求开发早期即可起草一份用户手册,用它作为需求规格说明的参考并辅助需求分析。优秀的用户手册要用浅显易懂的语言描述出所有对用户可见的功能。而辅助需求如质量属性、性能需求及对用户不可见的功能则在需求规格说明书中予以说明。(4)确定合格的标准:确定合格的标准让用户描述什么样的产品才算满足他们的要求和适合他们使用的。将合格的测试建立在使用情景描述或使用实例的基础之上。
参考文献:
[1]吴艳艳:周长伦:姜家轩:王春梅:许自国::软件项目管理中的需求管理[J]:信息技术与信息化:2008年02期
[2]孙莉::软件项目管理中的需求管理[J]:信息系统工程:2011年04期
[3]李虹:闫德恒::基于项目需求工程理论的软件需求管理浅析[J]:中国科技信息:2011年16期