转:业务分析3

软件需求分析方法收集
责任编辑:李倩作者:csdn博客   2009-07-10  
文本Tag: 需求分析 【IT168 分析评论】
    项目需求分析是一个项目的开端,也是项目建设的基石。在以往建设失败的项目中,80%是由于需求分析的不明确而造成的。因此一个项目成功的关键因素之一,就是对需求分析的把握程度。
    项目需求分析是一个项目的开端,也是项目建设的基石。在以往建设失败的项目中,80%是由于需求分析的不明确而造成的。因此一个项目成功的关键因素之一,就是对需求分析的把握程度。在原则上,需求阶段监理应尊重承建方的项目管理和项目分析能力;在具体的任务开展上,以不深入、不干扰承建方的自主权为主,除非在项目合作过程中发现承建方的项目管理以及项目分析能力存在很大的差距和不足。
    为了保证项目的成功,监理方必须加强项目管理和项目分析工作,在具体的操作上可以坚持吸收、同化、贯彻的方法和手段。其中,需求分析是一个项目的开端,也是项目建设的基石。在以往建设失败的项目中,80%是由于需求分析的不明确而造成的。因此一个项目成功的关键因素之一,就是对需求分析的把握程度。而项目的整体风险往往表现在需求分析不明确、业务流程不合理,用户不习惯或不愿意去用承建方的软件。作为第三方的监理公司,必须提醒承建方、客户方重视需求分析的重要性,采用必要的手段和方法来进行需求调研,同时监理方也应深入具体的需求调研中去。只有这样才能切切实实地把握用户的需求和方向,才能在将来的功能界定、开发范围上有发言权。
    如何进行需求分析
    需求分析不象侦探推理那样需从蛛丝马迹着手,而是应该先了解宏观的问题,再了解细节的问题。
    一个应用软件系统(记为S)的涉及面可能很广,可以按不同的问题域(记为D)分类,每个问题域对应于一个软件子系统。
    S={D1,D2,D3,…Dn}
    问题域Di由若干个问题(记为P)组成,每个问题对应于子系统中的一个软构件。
    Di={P1,P2,P3,…Pm}
    问题Pj有若干个行为(或功能,记为F),每个行为对应于软构件中的实现接口。
    Pj={F1,F2,F3,…Fk}
    需求说明书应该对于那些只想了解宏观需求的领导,和需要了解细节的技术员都合适。在写需求说明书时应该注意两个问题:
    1.最好为每个需求注释“为什么”,这样可让程序员了解需求的本质,以便选用最合适的技术来实现此需求。
    2.需求说明不可有二义性,更不能前后相矛盾。如果有二义性或前后相矛盾,则要重新分析此需求。
    重点监控需求分析
    由于项目的特殊性和行业覆盖的广阔性,以及需求分析的高风险性,软件需求分析的重要性是不言而喻的,同时需求分析又的的确确难做。其原因基本是由于以下情况造成的。
    客户说不清楚需求
    有些客户对需求只有朦胧的感觉,当然说不清楚具体的需求。例如全国各地的很多部门、机构、单位在进行应用系统以及网络建设时,客户方的办公人员大多不清楚计算机网络有什么用,更缺乏IT系统建设方面的专家和知识。此时,用户就会要求软件系统分析人员替他们设想需求。工程的需求存在一定的主观性,为项目未来建设埋下了潜在的风险。
    需求自身经常变动
    根据以往的历史经验,随着客户方对信息化建设的认识和自己业务水平的提高,他们会在不同的阶段和时期对项目的需求提出新的要求和需求变更。事实上,历史上没有一个软件的需求改动少于三次的!所以必须接受“需求会变动”这个事实,在进行需求分析时要懂得防患于未然,尽可能地分析清楚哪些是稳定的需求,哪些是易变的需求,以便在进行系统设计时,将软件的核心建筑在稳定的需求上,同时留出变更空间。咨询监理方在需求分析的功能界定上担任一个中间、公平、公正的角色,所以也必须积极参与到需求分析的准备中来,以便协助客户方和承建方来界定“做什么”、“不做什么”的系统功能界限。
    分析人员或客户理解有误
    软件系统分析人员不可能都是全才,更不可能是行业方面的专家。客户表达的需求,不同的分析人员可能有不同的理解。如果分析人员理解错了,可能会导致以后的开发工作劳而无功。记得一则笑话,有个外星人间谍潜伏到地球刺探情报,它给上司写了一份报告:“主宰地球的是汽车。它们喝汽油,靠四个轮子滚动前进,嗓门极大,双眼在夜里能射出强光……有趣的是,车里住着一种叫作‘人’的寄生虫,这些寄生虫完全控制了车。”所以分析人员知识的专一性也会造成需求分析的误解和失败。这时,咨询监理公司就必须根据实际的项目需求调研计划,提醒承建方加强业务了解程度和注重沟通技巧。
    需求分析方法论
    根据以往的工程经验,需求分析工作方法,应该定位在“三个阶段”(也称“三步法”)。
    第一阶段:“访谈式”(Visitation)
    这一阶段是和具体用户方的领导层、业务层人员的访谈式沟通,主要目的是从宏观上把握用户的具体需求方向和趋势,了解现有的组织架构、业务流程、硬件环境、软件环境、现有的运行系统等等具体情况、客观的信息。建立起良好的沟通渠道和方式。针对具体的职能部门以及各委办局,最好能指定本次项目的接口人。
    实现手段:访谈、调查表格
    输出成果:调查报告、业务流程报告
    第二阶段:“诱导式”(Inducement)
    这一阶段是在承建方已经了解了具体用户方的组织架构、业务流程、硬件环境、软件环境、现有的运行系统等等具体实际、客观的信息基础上,结合现有的硬件、软件实现方案,做出简单的用户流程页面,同时结合以往的项目经验对用户采用诱导式、启发式的调研方法和手段,和用户一起探讨业务流程设计的合理性、准确性、便易性、习惯性。用户可以操作简单演示的DEMO,来感受一下整个业务流程的设计合理性、准确性等等问题,及时地提出改进意见和方法。
    实现手段:拜访(诱导)、原型演示
    输出成果:调研分析报告、原型反馈报告、业务流程报告
    第三阶段:“确认式”(Afirm)
    这一阶段是在上述两个阶段成果的基础上,进行具体的流程细化、数据项的确认阶段,这个阶段承建方必须提供原型系统和明确的业务流程报告、数据项表,并能清晰地向用户描述系统的业务流设计目标。用户方可以通过审查业务流程报告、数据项表以及操作承建方提供的DEMO系统,来提出反馈意见,并对已经可接受的报告、文档签字确认。
    实现手段:拜访(回顾、确认),提交业务流程报告、数据项表;原型演示系统
    输出成果:需求分析报告、数据项、业务流程报告、原型系统反馈意见(后三者可以统一归入需求分析报告中,提交用户方、监理方进行确认和存档)
    整体来讲,需求分析的三个阶段是需求调研中不可忽视一个重要的部分,三个阶段或者说三步法的实施和采用,对用户和承建方都同样提供了项目成功的保证。当然在系统建设的过程中,特别在采用迭代法的开发模式时,需求分析的工作需一直进行下去,而在后期的需求改进中,工作则基本集中在后两个阶段中。
 
---------------------
论软件需求分析方法和工具的选用
责任编辑:罗吉作者:ITPUB论坛   2008-07-30  
文本Tag: 需求分析 【IT168 技术文章】
  我于1998年8月至2000年7月参加了某个大型集团的企业信息系统的开发工作,该大型集团的业务主要涉及到IT类产品的进销存。本人在项目中负责系统分析的工作,该集团企业原先已委托某个电脑公司开发过一套IT类产品管理系统,但是该老系统存在两个主要的问题:(一)系统运行速度非常慢,如商品销售开单时,从确定开单到开单完成有时需要1~2分钟左右的响应时间,让客户无法忍受。(二)系统数据不准确,经常出现实物库存与电脑库存严重不相匹配的情况,使销售数据的统计产生一些混乱,有关财务的数据因此无法有效使用,只能采用人工录入方式补充进行。在这种情况下,该集团的总经理决定参考原有系统重新开发一个系统,以便解决原系统所存在的上述两个难以克服的难题。注;原系统采用PB6.5开发,数据库采用SYBASE,服务器采用Windows2000Server,客户端采用Windows 98,程序架构采用的是传统的C/S结构。
  鉴于该集团业务操作复杂,流程多,涉及人员多等特点,以及项目完成时间短,经费有限,人员有限等限制约束条件,再考虑到必须避免前一系统出现过的结构混乱与难于维护等问题,我们决定要对原系统的需求做一个比较彻底的和切实可行的分析,由于原有系统已经开发了近两年,并且客户也有了一定的使用经验,业务基本流程本身也并没有太大的变化,因此,我们把需求分析的过程分为三步:()分析原有系统的结构,主要是数据库结构和程序结构,(2)在获得第(1)步结果的基础上写出基本需求,交由客户评审补充,(3)在第(2)步的基础上开发原型,利用此原型与客户交流,从而获得最终可用的需求结果。下面按上述三步分别加以论述。
  第一步是实施逆向工程,获取原有系统的基本需求
  由于原有系统在功能上大体上能基本满足客户的需求,并且在两年多的开发中也积累了不少经验,因此,从中可以获得一些有益的参考,也可以避免多走弯路。在这一阶段,我们采用的主要工具是PB自带的Power Designer和PB Documents;前者主要用来分析数据库结构,后者主要用来分析程序结构,便于开发人员与高级用户理解程序。采用这两个工具的原因是:原系统过于庞大,模块多,数据库模式多,表格量很大,仅靠人工的方法很难从中获得一个比较完整的、明确的系统结构以及整体构成,而且原有系统未能提供一套正确完整有效的设计文档,于是我们只能依靠工具辅助来进行。在使用Power Designer分析数据库,并且用PB Documents分析原程序中的PBL以后,我们对原系统的结构有了一个初步的了解,再结合对原系统的使用,基本明确了功能与流程的需求,并在此基础上用人工录入方式,产生了初步需求的自然语言文档。这里指出,使用Power Designer的一个不足之处是:如果一个表中的字段过多,而且又同时依赖多个表时,输出的表格相关图形很复杂,有很多交叉,且难于调整,不方便阅读及打印。
  第二步是在第一步的基础上进行的,即写出系统基本需求,交由客户评审和补充
  通过第一步的逆向工程,我们获得了系统的基本需求。为了充分记录需求的变化及需求之间的依赖关系,我们决定选用Rational公司的Requisite PRO作为我们的需求管理工具,Rational公司有一整套用于需求管理的工具,功能非常强大,包括Requisite Pro、Clear Quest等等,这些需求分析工具可以对需求进行全面的管理,包括记录需求的变化情况,需求之间的依赖关系等等。但是,我们考虑到Rational的一套工具全面实施会非常昂贵与复杂,需要非常强的项目管理能力才能全面实施,因此,我们只采用了其中最简单的一部分功能,那就是记录需求变更,记录需求之间的依赖关系,其他跟RUP有关的功能都给略去了。之所以这样做,主要是考虑到项目的经费、人力以及国内软件开发的实际情况。正如前面所说,我们根据自己的理解并写出基本需求后,交由客户做评审井做适当补充,我们将经过补充整理后的需求作为正式需求记录入Requisite Pro所维护的数据库中,并对各个需求进行分类,设定优先级等,这些工作完成后,就可以从数据库中直观地了解客户到现在为止提出了哪些需求,哪些需求是必须优先考虑的,哪些是难度较大的等等。在这个过程中,我们遇到了一些问题,譬如:用户对我们用自然语言书写的需求文档有许多地方不理解,往往在花了较长时间阅读之后,仍不明白我们所描写的需求过程与他们所完成的业务之间的对应关系;另外是由于首次采用Requisite Pro进行需求管理,在类型划分,属性值的确定上,部分开发人员没有经验,造成了不少反复,对于前者,我们的方法是想办法增加一些示意图,将大的流程分解为小流程,再与客户反复交流与沟通,最终达到双方理解一致的目的。对第二个问题,则参考了一些例子,再结合实际中属性的使用情况,给予取舍或者选择,经过这一阶段的工作,我们建立了基本的需求库,定出了基本需求规格说明。
  第三步则是在第二步的基础上建立起原型,利用原型与客户进行更深入的交流,通过交流修改相应的需求
  在这一阶段的工作是在对第二步任务进行报告交流的基础上进行的。我们用PB开发了一个原型系统,就具体的业务流程与客户进行交流与沟通,通过原型,客户发现了许多我们与他们的理解相互不协调的地方,我们在修改需求的同时,也在Requisite Pro需求数据库中记录下修改的历史。事实证明,这种记录历史的作用是很有效的,如曾经有客户在两个不同的时间对同一需求提了相反的需求,我们根据历史记录很快证实了该客户的提法有错误,在事实面前无需再作争论,同时利用Requisite Pro,我们还发现了一些需求相互之间有矛盾。经过这一阶段工作,我们终于获得了经过用户认可的需求基线,即是可用于下一步进行详细设计的基线需求。
  在这个项目中,我们利用了Power Designer、PB Documents等逆向工程分析工具和Requisite Pro需求管理工具,这些工具的使用,使我们提高了工作效率,起到了一定的辅助作用。但是,就需求分析工具方面而言。我们觉得国内应用得还是太少了,这一方面是因为对需求分析不够重视,另一方面是因为管理水平还达不到相应的层次。Rational公司的一整套需求分析工具,其功能是非常强大的,国外已在普遍地使用,在国内也逐渐开始普及,特别是那些通过CMM二级以上评审的单位,都必须使用工具对需求进行管理。在本项目中,我们仅仅利用了Requisite Pro功能的一些小方面,已经体会到该工具对于项目管理的诸多好处。如果一个有实力的公司能够全面实施RUP,那么需求管理这个老大难的问题会变得不再那么棘手了,项目的质量也会得到相应的提高。目前国内由于CMM热潮的兴起,已经逐渐重视需求分析,也逐渐使用需求分析工具,这是非常可喜的,当然,更希望在不久的将来,能用上国产的需求分析工具,那时我们的软件产业也许会真正地腾飞了。
  评注;采用逆向工具进行再工程的应用很多,本文给出了一个实际的例子。写作有条理,也很实际。合理地界定了需求分析的现实水平。所采用的需求分析的方法与工具相对较合理科学。能在对项目讨论的同时抒发议论、使用体会、爱国心和事业心。深度还可以提高,例子宜更加丰富一些。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13966397/viewspace-666215/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/13966397/viewspace-666215/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值