可能很多人跟我一样,认为有了职业资格证就能妥当了,没有那么太多的需求。针对需求分析我们来了解一下:

  先给大家看一则小故事:

  老师在课堂上想考考学生们的智商,就问一个男孩:“树上有十只鸟,开枪打死一只,还剩几只

?”

  男孩反问:“是×××么?”

“不是.”

“枪声有多大?”

 “80~100分贝.”

“那就是说会震的耳朵疼?”

 “是.”

“在这个城市里打鸟犯不犯法?”

‘不犯.”

“您确定那只鸟真的被打死啦?”

“确定.”老师已经不耐烦了,”拜托,你告诉我还剩几只就行了,OK?”

“OK.鸟里有没有聋子?”

“没有.”

“有没有关在笼子里的?”

“没有.”

  ...

最后学生说:“如果您的回答没有骗人,打死的鸟要是挂在树上没掉下来,那就只剩一只,如果掉下来,就一只不剩。”本来这个笑话的场景与需求分析无关,但是在很多人看了后,都会认可这个学生,思路敏捷,考虑问题全面,知识面也算比较广,这样的人做去需求分析,效果一定会很好。的确,做需求分析需要这样的素质和能力。面对复杂的需求和系统的不确定性,我们需要有一个严谨、逻辑和跳跃的思维习惯。严谨,是要不放过任何一个小问题;逻辑,是要求思考的过程应该是符合规则的推导,跳跃,是要求思路不是一走到底而是多条路子并行。只有这样的思维习惯,才能不断的创造新思路,尝试和接受失败,总结经验教训,提高分析问题和处理问题的能力。

 给大家介绍一个相当不错的需求分析训练营:http://www.csairk.com/user/xch/from.aspid=487&wh=201212(有兴趣的可以看看)
       开课了解需知:http://www.csairk.com/user/xch/from.asp?id=488&wh=201212(进一步了解)

所以在现实中,仅靠这些并不够的。需求分析的过程同时又是一个现实的,目的性很强的工作。任何一项分析工作,在特定的环境下才有特定的意义。我们面临的很多问题并不是算术题,往往问题实现的方式很多也各有利弊,抓住主要矛盾,合理取舍,才能获得最可行的方案。如果思维过于发散,就失去了基本的目的,因此并不能推崇。在分析之前,最好要了解需求方的所有用户类型(包括潜在的用户群体),然后根据他们的要求确定整体目标和系统的工作范围,也就是确定分析的边界,这样范围下的分析才更有意义和针对性。

需求分析是在可行×××的基础上,将用户对系统的描述,通过开发人员的分析概括,抽象为完整的需求定义,再形成一系列文档的过程。可行×××旨在评估目标系统是否值得去开发,问题是否能够解决,而需求分析旨在回答"系统做什么"的问题,确保将来开发出来的软件产品能够真正满足用户的需要。这对于和客户交流的时更清晰便于客户了解。

构建一个软件系统最困难的工作是确定构建什么。其他任何工作都不会像这部分工作那样,在出错之后会如此严重地影响随后实现的系统,并且在以后修补竟会如此的困难。需求分析是一个非常重要的过程,它的意义也相当的重要,它完成的好坏直接影响后续软件开发的质量。一般情况下,用户并不熟悉计算机的相关知识,而软件开发人员对相关的业务领域也不甚了解,用户与开发人员之间对同一问题理解的差异和习惯用语的不同往往会为需求分析带来很大的困难。所以,开发人员和用户之间充分和有效的沟通在需求分析的过程中至关重要。

有效的需求分析通常都具有一定的难度,一方面是因为交流存在障碍,另一方面是因为用户通常对需求的陈述不完备、不准确和不全面,并且还可能不断地变化。开发人员不仅需要在用户的帮助下抽象现有的需求,还需要挖掘隐藏的需求。此外,把各项需求抽象为目标系统的高层逻辑模型对日后的开发工作也至关重要。合理的高层逻辑模型是系统设计的前提。

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

相关学习资料:

系统分析师考试真题解析视频教程:http://www.csairk.com/user/xch/from.asp?id=395&wh=201212

2010年5月软考答案讨论:http://www.csairk.com/user/xch/from.asp?id=345&wh=201212

软考电子商务技术员考试大纲:http://www.csairk.com/user/xch/from.asp?id=473&wh=201212

2010年上半年网络规划设计师试题分析:http://www.csairk.com/user/xch/from.asp?id=241&wh=201212

数据库系统工程师考试经验分享:http://www.csairk.com/user/xch/from.asp?id=270&wh=201212