| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5201 人关注过本帖, 1 人收藏
标题:燃烧敬献:软件工程思想,每日一贴,大家一起学习!
取消只看楼主 加入收藏
燃烧
Rank: 1
等 级:新手上路
帖 子:3267
专家分:1
注 册:2006-2-6
收藏
得分:0 

3.3 软件的质量因素

“运行正确”的程序就是高质量的程序吗?

不贪污的官就是好官吗?

时下老百姓对一些腐败的地方政府深痛恶绝,对“官”不再有质量期望。只要当官的不贪污,哪怕毫无政绩,也算是“好官”。也有一些精明的老百姓打出旗号:宁要贪污犯,不要大笨蛋。相比之下,程序员是够幸福的了。因为我们能通过努力,由自己来把握软件的命运。那么就不要轻易放弃提高软件质量的权利了。

“运行正确”的程序不见得就是高质量的程序。这个程序也许运行速度很低并且浪费内存;也许代码写得一塌糊涂,除了开发者本人谁也看不懂也不会使用。正确性只是反映软件质量的一个因素而已。

软件的质量因素很多,如正确性、精确性、可靠性、容错性、性能、效率、易用性、可理解性、简洁性、可复用性、可扩充性、兼容性等等(还可以列出十几个)。这些质量因素之间“你中有我,我中有他”,非常缠绵。如果程序员每天要面对那么多质量因素咬文嚼字,不久就会迂腐得象孔乙已,并且有找不到女朋友的危险。

为了便于理解,可以参照武侠小说中的武学分类,将质量因素粗略地分成几大派。你想那武学源源流长,相互渗透,谁能数得清有多少江湖派别。但想在道上混,总得知道六大门派:“少林派”、“武当派”、“峨嵋派”、“华山派”、“昆仑派”和“崆峒派”。软件质量因素的分类如图3.2所示。其中“正确性与精确性”排在首位,地位如同“少林派”与“武当派”;而“性能与效率”,“易用性”,“可理解性与简洁性”和“可复用性与可扩充性”亦是举足轻重的质量因素,地位仿佛“峨嵋派”,“华山派”,“昆仑派”和“崆峒派”。其它的质量因素总可以在图3.2中找到合适的亲缘关系,本节不再一一细表。

图片附件: 游客没有浏览图片的权限,请 登录注册


3.3.1
正确性与精确性

正确性与精确性之所以排在质量因素的第一位,是因为如果软件运行不正确或者不精确,就会给用户造成不便甚至造成损失。机器不会主动欺骗人,软件运行不正确或者不精确一般都是人造成的。即使一个软件能100% 地按需求规格执行,但是如果需求分析错了,那么对客户而言这个软件也存在错误。即使需求分析完全符合客户的要求,但是如果软件没有100% 地按需求规格执行,那么这个软件也存在错误。开发一个大的软件项目,程序员要为“正确”、“精确”四个字竭尽精力。

与正确性、精确性相关的质量因素是容错性和可靠性。

容错性首先承认软件系统存在不正确与不精确的因素,为了防止潜在的不正确与不精确因素引发灾难,系统为此设计了安全措施。在一些高风险的软件系统,如航空航天、武器、金融等系统中,容错性设计非常重要。

可靠性是指在一定的环境下,在给定的时间内,系统不发生故障的概率。可靠性本来是硬件领域的术语。比如某个电子设备,一开始工作很正常,但由于工作中器件的物理性质会发生变化(如发热),慢慢地系统就会失常。所以一个设计完全正确的硬件系统,在工作中未必就是可靠的。软件在运行时不会发生物理性质的变化,人们常以为如果软件的某个功能是正确的,那么它一辈子都是正确的。可是我们无法对软件进行彻底地测试,无法根除软件中潜在的错误。平时软件运行得好好的,说不准哪一天就不正常了,如“2000年”问题。因此把可靠性引入软件领域是有意义的。我曾买了一本关于软件可靠性的著作,此书充满了数学公式。我发现以我目前的学历实在难以看懂书上讲了些什么。请宽恕我的愚昧,我把此书给“供”起来,没敢用笔画一处记号。

3.3.2 性能与效率

用户都希望软件的运行速度高些(高性能),并且占用资源少些(高效率)。旧社会地主就是这么对待长工的:干活要快点,吃得要少点。程序员可以通过优化算法、数据结构和代码组织来提高软件系统的性能与效率。优化的关键工作是找出限制性能与效率的“瓶颈”,不要在无关痛痒的地方瞎忙乎。如果你想职称升得快,光靠增加课时能顶屁用;你就该一年写它几十篇文章,争取破格升教授。

3.3.3 易用性

易用性是指用户感觉使用软件的难易程度。用户可能是操作软件的最终用户,也可能是那些要使用源代码的程序员。现代人的生活节奏快,干啥事都想图个方便。所以把易用性作为重要的质量因素无可非议。

导致软件易用性差的根本原因是开发人员犯了“错位”的毛病:他以为只要自己用起来方便,用户也一定会满意。俗话说“王婆卖瓜,自卖自夸”。当程序员向用户展示软件时,常会得意地讲:“这个软件非常好用,我操作给你看,……是很好用吧!”软件的易用性要让用户来评价。当用户真的感到软件很好用时,一股温暖的感觉油然而生,于是就用“友好”来评价易用性。

3.3.4 可理解性与简洁性

可理解性表达了人们一种质朴的愿望:我化钱买了它,总得让我明白它是什么东西。我小时候的一个伙伴在读中学时,就因无法理解电荷之分正负,觉得很烦恼,便早早地缀学当工人。

可理解性也是对用户而言的。开发人员只有在自己思路清晰时才可能写出让别人能理解的程序。编程时还要注意不可滥用技巧,应该用自然的方式编程。我们的确不知道自己的得意之举究竟是锦上添花,还是画蛇添足。就象蒸出一笼馒头,在上面插一朵鲜花,本想弄点诗情画意,却让人误以为那是一堆热气腾腾的牛粪。

简洁是一种美,不管是自己还是用户都会有同感。在生活中,与简洁对立的是“罗里罗嗦”。中国小说中最“婆婆妈妈”的男人是唐僧。有一项民意调查:如果世上只有唐僧、孙悟空、猪八戒和沙僧这四类男人,你要嫁给哪一类?请列出优先级。调查结果表明,现代女性毫不例外地把唐僧摆在老末。

一个原始的应用问题可能很复杂,但高水平的人就能够把软件系统设计得很简洁。如果软件系统臃肿不堪,它迟早会出问题。简洁是人们对工作“精益求精”的结果。

废话大师有句名言:“如果我令你过于轻松地明白了,那你一定是误解了我说的话。”我最近有一种奇怪的体会:如果把学术文章写得很简洁,让人很容易理解,它往往中不了;只有加上一些玄乎的东西,把本来简单的弄成复杂的,才会增加投稿的命中率。事实上,我可以在5分钟之内说清楚三年来读博所做的工作,根本用不着写100多页的博士论文。我是在临近毕业时,才发觉自己完全不适合读博士学位。将来工作后,我一定要好好编程,重新做人。

3.3.5 可复用性与可扩充性

复用的一种方式是原封不动地使用现成的软构件,另一种方式是对现成的软构件进行必要的扩充后再使用。可复用性好的程序一般也具有良好的可扩充性。本书第六章将论述如何设计可复用、可扩充的C++程序。


[此贴子已经被作者于2006-4-7 19:41:47编辑过]


Give me a world !   A beautiful world !
2006-04-07 19:40
燃烧
Rank: 1
等 级:新手上路
帖 子:3267
专家分:1
注 册:2006-2-6
收藏
得分:0 

3.4 质 量 检 查

检查是人们不信任自己和别人的一种行为。当某些事情涉及到利益分配时,更需要有检查活动来保证公平。估计即使进入了共产主义社会,也少不了检查。

质量检查并不是要等到项目结束时才执行唯一的一次,应该在每个实践环节都要执行。对应于进度表,在每个里程碑到达时执行质量检查比较合理。质量检查的内容有二:一是作出评审,是合格还是不合格?能打多少分?二是作出建议,对质量为什么好为什么差进行分析,以便“改差为好”、“好上加好”。

以下是人们经常采用的软件质量检查措施[Pressman 1999]:

(1)事先把检查的主要内容制成一张表,使检查活动集中在主要问题上。

(2)只评审工作,不评审开发者。评审的气氛应该是融洽的。存在的错误应该被有礼貌地指出来,任何人的意见都不应被阻挠或小看。

(3)建立一个议事日程并遵循它。检查过程不能放任自由,必须排照既定的方向和日程进行。

(4)不要化太多的时间争论和辩驳。

(5)说清楚问题所在,但不要企图当场解决所有问题。

(6)对检查人员进行适当的培训。

……

做好检查工作并不是件容易的事。自古以来“上有政策,下有对策”。 虚假的质量检查还不如不检查,下面讲两个故事作为解释。

故事一

不久前我回到西北那所读了六年多的大学,惊奇地发现校园里房前屋后长满了待收割的小麦!这所大学是从事电子科技的,种小麦干啥呀?朱总理曾讲过:“目前国家粮食充足,再来三年自然灾害也不怕。”现在国泰民安,似乎用不着“深挖洞,广积粮”。我素知学校提创勤俭节约、自力更生,但与其种小麦还不如种蔬菜呢。老同学告诉我,种小麦是为了应付“211”工程(为21世纪选拔100所重点大学)的检查团,因为“211”工程有较高的绿化指标。偏偏检查赶在冬天,那时的西北极难长草。我那所大学本来就人多地少,地上一长草马上就会被谈恋爱的学生给折磨死。一到冬天,整个校园就光秃秃一片。用小麦绿化校园可谓千古绝笔,检查团的那些权贵人士早已五谷不分,岂知所见的“草坪”乃是麦田。

检查工作要预防被检查者弄虚作假。

故事二

我上高中时,班里举行一次入团评审。侯选人中有几位是好学生,有几位是坏学生。我心想“伸张正义”的机会到了,绝不能让坏蛋混进纯洁的团里。可天知道团支部书记是聪明绝顶还是蠢笨之极。他竟说:“班里还有一些同学没有入团,现在他们申请入团,有不同意的请举手。”我们都不知道该怎么办了。书记接着说:“既然没有人举手反对,就表示全部同意,请大家鼓掌欢迎。”这次入团评审不到一分钟就结束了,从此后我再也没想过争取入党。

检查工作要有科学的评审方式。


Give me a world !   A beautiful world !
2006-04-08 10:22
燃烧
Rank: 1
等 级:新手上路
帖 子:3267
专家分:1
注 册:2006-2-6
收藏
得分:0 

3.5 小 结

不知为什么,国内很多大的企业都喊着要进世界500强。如果真的实现了,世界500强还不全被中国霸占了。软件的项目计划和质量管理都不是用来喊叫的口号。做项目计划时切忌“冒进”,不要指望在项目陷入困境后靠增加人手来解救。软件的高质量主要是设计出来的,不是“管”出来的,更不能依赖质量检查。为此程序员要充分了解软件的质量因素,只有提高设计水平,才能开发出高质量的软件。


Give me a world !   A beautiful world !
2006-04-08 10:22
燃烧
Rank: 1
等 级:新手上路
帖 子:3267
专家分:1
注 册:2006-2-6
收藏
得分:0 
以下是引用龙之吻在2006-4-8 23:13:00的发言:
顶一下了.斑竹每天多发点吧

一下都发了,就太多了,不一定能有人看~


Give me a world !   A beautiful world !
2006-04-09 08:43
燃烧
Rank: 1
等 级:新手上路
帖 子:3267
专家分:1
注 册:2006-2-6
收藏
得分:0 

第四章 可行性分析与需求分析

可行性分析是要决定“做还是不做”。

需求分析是要决定“做什么,不做什么”。

即使可行性分析是客观的、科学的,但决策仍有可能是错误的。因为决策者是人,人会冲动,有赌博心态。如果可行性分析表明做某件事的成功率是10%,失败率是90%,倘若该事情的意义非常大,决策者也许会一拍脑袋:“豁出去,干!”于是这世界就多了一份极喜与极悲。4.1节讲述可行性分析的四大要素:经济、技术、社会环境和人。

目前国内很多软件公司做系统集成项目,如果谈谈系统集成项目的可行性分析将很有意思。可是那些系统集成项目大多是政府机构的,由于软件行业尚不规范并且客户方存在腐败现象,所以业内流传“没有做不了的系统集成项目”。软件公司的注意力几乎全集中在“如何拿到项目订单”以及“拿到订单后如何蒙混过关”上,使我丧失了卖弄“可行性分析”的机会。既然不能正面指点一个人如何做好事,那么就规劝他不要做坏事吧。

4.2节讲述可行性分析案例——投资软件公司失败的教训。作者本来没有资格谈论投资,但事有凑巧:近一年来我关闭了一个亏损30万元的软件公司(我自己的);休克一个年亏损200万元的软件公司(朋友的);扼杀一个200万元的投资方案(陌生人的);踩灭一个处于萌芽状态的100万元的投资设想(熟人的)。鉴于现在比较富有的民营企业渴望投资软件行业的越来越多,值得谈谈这方面的可行性分析。我将讲述亲身经历后的感受,提一些建议。

不论是为客户做软件项目还是为自己做软件产品,都要进行需求分析。需求分析最恼人之处是难以在项目刚启动时搞清楚需求,如果在项目做了一大半时需求发生了变化,那将使项目陷入困境。4.3节解释需求分析为什么困难,4.4节讲述如何进行需求分析。本章的需求分析均不涉及编程,所以不考虑结构化、面向对象等分析方法。


Give me a world !   A beautiful world !
2006-04-09 08:44
燃烧
Rank: 1
等 级:新手上路
帖 子:3267
专家分:1
注 册:2006-2-6
收藏
得分:0 

4.1可行性分析的要素

做可行性分析不能以偏盖全,也不可以什么鸡毛蒜皮的细节都加以权衡。可行性分析必须为决策提供有价值的证据。

联想集团领导人柳传志曾说:“没钱赚的事我们不干;有钱赚但投不起钱的事不干;有钱赚也投得起钱但没有可靠的人选,这样的事也不干。”柳传志为决策立了上述准则,同时也为可以行性分析指明了重点。

一般地,软件领域的可行性分析主要考虑四个要素:经济、技术、社会环境和人。本节只是泛泛地解释这四个要素,旨在建立全局分析的观念。4.2节将结合案例围绕上述要素进行重点分析与评注。

4.1.1 经济

经济可行性分析主要包括:“成本——收益”分析和“短期——长远利益”分析。

一、成本——收益分析

成本——收益分析最容易理解,如果成本高于收益则表明亏损了,如果成本大大高于收益那就亏大了。商人都不喜欢做吃亏的事情。有些商店成天贴着“最后一天跳楼大拍卖”的标语,意思是:我准备吃大亏让你占便宜,同志,你快上钩吧。

如果是为客户做软件项目,那么收益就写在合同中。如果是做自己的软件产品,那么收益就是销售额。

人们在预估产品销售额时常常过分乐观而犯下大错。那些对你的产品说恭维话的人并不见得就是要买货的人,俗话说“嫌货才是买货人”。当你没碰到一个挑刺的人而感觉这产品好得会让你发大财时,就要做好会破产的心理准备。

如果做的是小本生意,那可得对成本进行细算。软件的成本不是指存放软件的那张光盘的成本,而是指开发成本。要考虑的成本有:

(1)办公室房租。

(2)办公用品,如桌、椅、书柜、照明电器、空调等。

(3)计算机、打印机、网络等硬件设备。

(4)电话、传真等通讯设备以及通讯费用。

(5)资料费。

(6)办公消耗,如水电费、打印复印费等。

(7)软件开发人员与行政人员的工资。

(8)购买系统软件的费用,如买操作系统、数据库、软件开发工具等。有些老板买盗版的系统软件,却按市场价算成本,可从美国佬那里赚一笔。

(9)做市场调查、可行性分析、需求分析的交际费用。

(10)公司人员培训费用。

(11)产品宣传费用。如果用Internet作宣传,则要考虑建设Web站点的费用。

(12)如果客户是政府部门,还要充分考虑用于吃喝玩乐、行贿的费用。

(13)如果公司的风水不好,会有很多莫名其妙的管理费。每戳一个红艳艳的公章都要化一把钞票。

二、短期——长远利益分析

人们喜欢吃着碗里的、看着锅里的,还想着别人家里的。短期利益和长远利益兼得是人们梦寐以求的事。在商业上,这等好事可不会轻易降临。

短期利益容易把握,风险较低。国内软件公司经常出现一窝蜂地去做信息管理系统、多媒体光盘、系统集成项目或Internet服务。每当我们沉迷于短期利益不思进取时,应该好好回忆童年时代那些伟大的抱负,给自己一些激励。

长远利益难以把握,风险较大。能为了长远利益不惜短期亏损的人,要么是雄心勃勃的将帅之才,要么是“纸上谈兵”、“眼高手底”的那一类庸人。国内目前有不少Internet企业,只投入不产出。为了成就将来的霸业,甘愿现在拼财力、比耐性。最后存活下来的几个公司将瓜分市场。

那些为长远利益奋斗的人们,你们可得把长征的路途走完啊,千万别让事业中途夭折。

4.1.2 技术

技术可行性分析至少要考虑以下几方面因素:

(1)在给定的时间内能否实现需求说明中的功能。如果在项目开发过程中遇到难以克服的技术问题,麻烦就大了。轻则拖延进度,重则断送项目。

(2)软件的质量如何?有些应用对实时性要求很高,如果软件运行慢如蜗牛,即便功能具备也毫无实用价值。有些高风险的应用对软件的正确性与精确性要求极高,如果软件出了差错而造成客户利益损失,那么软件开发方可要赔惨了。

(3)软件的生产率如何?如果生产率低下,能赚到的钱就少,并且会逐渐丧失竞争力。在统计软件总的开发时间时,不能漏掉用于维护的时间。软件维护是非常拖后腿的事,它能把前期拿到的利润慢慢地消耗光。如果软件的质量不好,将会导致维护的代价很高,企图通过偷工减料而提高生产率,是得不偿失的事。

技术可行性分析可以简单地表述为:做得了吗?做得好吗?做得快吗?

4.1.3 社会环境

社会环境的可行性至少包括两种因素:市场与政策。

市场又分为未成熟的市场、成熟的市场和将要消亡的市场。

涉足未成熟的市场要冒很大的风险,要尽可能准确地估计潜在的市场有多大?自己能占多少份额?多长时间能实现?

挤进成熟的市场,虽然风险不高,但油水也不多。如果供大于求,即软件开发公司多,项目少,那么在竞标时可能会出现恶性杀价的情形。国内第一批卖计算机的、做系统集成的公司发了财,别人眼红了也挤进来,这个行业的平均利润也就下降了。

将要消亡的市场就别进去了。尽管很多程序员怀念DOS时代编程的那种淋漓尽致,可现在没人要DOS应用软件了。学校教学尚可用用DOS软件,商业软件公司则不可再去开发DOS软件。

政策对软件公司的生存与发展影响非常大。整个90年代,中国电信的收费相当高,仅此一招就把国内互联网企业打得奄奄一息。某些软件行业的利润很高,但可能存在地方保护政策,使竞争不公平。政策不当将阻碍软件公司的健康发展,可最怕的还是政府干预企业的正当行为。例如:

现在家电行业竞争非常激烈,其中有一个著名企业的总裁十分了得,把对手打得节节败退。于是中央领导人就来视察该企业并作讲话:“你们的业绩辉煌,得到了中央的高度重视,……但我们是社会主义国家,不是资本主义国家,你们总得给兄弟企业的同志们留口饭吃吧!”

有一次我拜访了北京大学一位研究经济学的朋友。这个年青人,还是个党员,竞然这么说:“我最近在研究国内明星企业的兴衰问题,我发现了一个规律,明星企业一旦被政府领导人视察过,它就忘了自己是谁,就会做些走向死亡的蠢事。”

我实在不明白企业中为什么还要有“书记”职位。我以为“书记”乃是天下第一号可笑的官衔,“书记”本是“秘书”(secretary)的同义词,是个可有可无的行政人员的称呼,在中国竟然成了最大的官衔。每次看到新闻联播把国家主席错叫成总书记我都十分气愤:因为总书记的称喟只对几千万的党员适用,国家的新闻机构难道不面向十多亿普通老百姓?如果我将来的工作单位还靠“书记”来管事,我每天准忙着生气,那里还有精力去编程。

4.1.4

有句名言:“人分四类——人物,人才,人手,人渣。”

如果一个软件公司里上述四类人齐全了,那么最好的分工是让“人物”当领导,“人才”做第一线的开发人员,“人手”做行政人员,“人渣”负责行贿。

这里只谈公司的领导与开发人员“行还是不行”。“人物”毕竟是少数,“人才”可是济济的。举重若轻的那类“人才”可以做领导,举轻若重的那类人才适合做软件开发人员。假如一群持有学士、硕士博士文凭的毕业生到软件公司应聘,该如何录用呢?我的建议如下:

先选择本科毕业生,因为他们正当青春、干劲十足、不摆架子、不耻下问、要求不高、奉献甚多。

其次选择硕士毕业生,如果该生没象范进中举时那么老,并且在读硕士时没有天天去造文章而丢弃了编程工作,那么让有经验的学士程序员带他们煅练几个月就可以用了。

如果学士、硕士被其它公司取光了,那只好捡几个博士充数。博士到了软件公司有什么用呢?我想不出有什么用,只知道他们挺值得可怜的:从硕士读到博士出头,这六七年时间,真本事没学多少,倒学会“眼高手低”甚至“弄虚作假”;毕业时蓦然回首,发觉青春已被虚度,心灵已呈老态,唯有长叹短嘘,强把自负作自信。我也将博士毕业,就要论为三手贷贱卖了。真羡慕那些比我年轻的学士、硕士们,他们可以远走高飞,唉!


Give me a world !   A beautiful world !
2006-04-09 08:45
燃烧
Rank: 1
等 级:新手上路
帖 子:3267
专家分:1
注 册:2006-2-6
收藏
得分:0 

4.2 可行性分析案例——投资软件公司失败的教训

谈到软件产业,不能不提及比尔·盖茨与Microsoft公司。因为比尔·盖茨创建了Microsoft公司并成为世界首富的事实,使得无数从事软件工作的人们心存同样的梦想。有太多人急着想做中国的比尔盖茨 。有个年青人发明了一种汉字输入法,便在媒体上放言欲覆盖比尔·盖茨。中央电视台特冲动地把一个上了年纪的院士请来,让他谈谈自己与比尔·盖茨的比较,害得这位院士一个劲地辨解自己不是中国的比尔·盖茨。

近几年来,一批Internet英雄企业如Yahoo、Netscape兴起。尤如打破了秦始皇一统的天下,重返春秋战国时代。让软件人员走出了Microsoft的阴影,看到了阳光灿烂的软件世界。于是各色各样小不点儿的软件公司在国内遍地开花。

打破水缸的小孩子很多,但并不见得就会有司马光的业绩。由于“经济、技术、社会环境、人的因素存在差异,有些事情美国人能做成,我们模仿着做未必就能做得成功。虽然“星星之火、可以燎原”,但我们的国力薄弱,实在容不得把有限的火种扔到不毛之地。所以要进行可行性分析,如果不可行,就不要急着去做。本节三个案例是作者亲身经历的,我力求讲清楚错在哪里,并总结经验教训。希望读者看后能提高警惕,免犯相同的错误。

4.2.1可行性分析案例之一

这个案例讲述我从开公司到关闭公司的一些经历和感受。

我从本科三年级开始编写图形程序,一见钟情后便如痴如醉,不管一切地抛弃了本科与硕士的微电子专业。1997年春季,我到了向往已久的浙江大学CAD&CG国家重点实验室读博士学位。我幸福地幻想着大干一番自己喜爱的专业。开学的第一天,我兴冲冲地奔向实验室。进门不到5分钟,就因不懂规矩被看门的年青女子训了几次。为了不再冒犯规矩,我就老老实实地抓起一份计算机报纸并且站着阅读。突然一个气得脸色铁青的男人(机房管理员之一)对我断喝:“你在干什么!你怎么可以不经允许就翻看别人的报纸!”我就象一个情窦初开的少年飘飘然地去拥抱梦中情人,不料迎来两个耳光,此下场比《猫和老鼠》中的猫还惨。

不出几日,我就发现实验室里人们大多轻言寡语、小心翼翼、井水不犯河水。初到此实验室的北方同学极为迷惑地问我:“你们浙江人是不是都这个德性?我看你不太象嘛。”

如果不允许一个男人在工作时仰天大笑,这样的地方不去也罢。

我颇费周折地考入CAD&CG实验室,却尚未热身就全力而退,决心自立门户(至今我都没有用实验室的计算机编过一行程序)。

那时我穷困潦倒,只有一床,一盆,一壶,一碗。我那些穷朋友们象挤牙膏一样挤一些钱资肋我。我买了一台计算机,就在宿舍里开发软件。1997年8月,我去北京参加首届中国大学生电脑大赛软件展示。路费也是借的,同学为我壮胆时说:“如果不能获奖,就回到实验室干活吧。”我说一定会拿第一名,这是必须实现的近期目标。

于是我拿了第一名,号称大学生“软件明星”。回到浙大后没啥反应,我就向杭州的几个报社发一份简讯。不久有一个记者来采访我,谈了一天,我发现记者还是不太明白,干脆自己写新闻报道,并且含蓄地做了一个广告:万事俱备,只待投资。10月份我被评上浙江省青年英才(大学生代表),又获得中国大学生跨世纪发展基金特等奖。我到东软集团(沈阳)参加“民族软件产业青年论坛”,大不咧咧地作了一次演讲。由于我能说会道,频频上电视,引来近10个投资者。我选择了一位年龄比我大一倍、非常精明的商人作合伙人,成立了“杭州临境软件开发有限公司”。彼时,我可谓光芒四射,卓而不群,名片上印着“以振兴民族软件产业为已任,做真实、正直、优秀的科技人员。”浙江大学想开除我,被我“晓之以理、动之以情”安抚住。

我当时想开发一套名为Soft3D的图形系统,此系统下至开发工具,上至应用软件,无所不包。公司名字起为“临境”有两个含义:一是表示身临其境,这是我对图形技术的追求;二是表示快到了与SGI公司称兄道弟的境界,这是我对事业的追求。

我从实验室挖来一位聪明绝顶的师弟做技术伙伴(他的头明显比我的大,估计其脑容量至少是我1.5倍)。我曾经以师兄的身份为他洗过一双袜子,他因此觉得我是个好人。我俩一拍即合,常常为Soft3D的设计方案自我倾倒。一想到Microsoft公司的二维Windows系统即将被Soft3D打击得狼狈不堪时,我们就乐不可支,冲劲十足。到了1998年7月份,我们做了一套既不是科研又不全象商品的软件,我宣传了几个月都没有人要。1998年10月份,我用光了30万元资金,只好关闭公司。不久我被一位朋友捉到北大方正去“劳改”,两个月后我才心服口服地承认自己失败了。

在失败一周年来临之际,我客观地从可行性分析角度说明了我和投资方所犯的错误,写此文以祭我那幼年夭折的软件公司。

一、我的主要错误

(1)年青气盛,在不具备条件的情况下,想一下子做成石破天惊的事。我的设计方案技术难度很大(有一些是热门的研究课题),只有30万元资金的小公司根本没有财力与技术力量去做这种事。分析经济与技术可行性,即可否定我的设计方案。

(2)我以技术为中心而没有以市场为中心去做产品,以为自己喜欢的软件别人也一定喜欢。我涉足的是在国内尚不成候的市场,我无法估计这市场有多大,人们到底要什么。伙伴们跟着我瞎忙乎一整年,结果做出一个洋洋洒洒没人要的软件。分析市场可行性也可否定我的设计方案。

(3)我做到了“真实、正直”,但并没有达到优秀的程度。我曾得到很多炫目的荣誉,但学生时代的荣誉只是一种鼓励,并不是对我才能和事业的确认。正因为我不够优秀,学识浅薄,加上没有更高水平的人指点我,才会把事情搞砸了。

二、投资方的错误

(1)投资方是个精明的商人,他把我的设计方案交给美国的一个软件公司分析,结论是否定的。但他觉得我这个人很有利用价值,希望可以做成功其它事情,即使Soft3D软件做不成功,只要挣到钱就行。这种赌博心态使得正确的可行性分析变得毫无价值。

(2)由于我不懂商业,又象所有单纯的学生那样容易相信别人。他让我写下了不公正的合同,我竟然向他借钱买下本来就属于我的30%技术股份。他名为投资方,实质上双方各出了一半的资金(他出51%,我出49%)。他在明知Soft3D软件不能成功的情况下,却为了占我的便宜而丧失了应有的精明,最终导致双方都损失。

关闭公司时,他搬走了所有的固定财产。我明明投入了技术,又亏了15万元,却一无所得。几个月后当我意识到不公平而找他协商时,他说:“只能怨你自己愚蠢,读到博士,连张合同都看不懂。”

我觉得自己在此事上虽愚但不蠢,诚实正直的品质加上不懈的努力会让我变得有智慧。自己的奋斗没什么可以后悔的,学到的远比失去的多,下一次会做得更好。

4.2.2 可行性分析案例之二

1999年3月,一位与我同年同月同日同时辰出生的朋友请我帮忙,对一份长达8页的投资方案:

《万向为什么不投资互联?》

——“中国供应商信息网”引资方案

(以下简称“引资方案”)进行可行性分析。

万向集团是浙江省民营企业的老大,有的是钱,找它投资真的是找对了。我当时忙着对自己进行查漏补缺,正在复习本科的计算机基础课程。不耐烦地看完那份“引资方案”,觉得比我去年写的Soft3D设计方案荒唐十倍以上,于是毫不迟疑地否决。

朋友问:“为什么?”

我答曰:“因为内行的人都会否决。”

朋友嘲笑:“这是废话,如果投资者都是内行的话,就不用请人分析了。你要写出让农民企业家看得懂的可行性分析报告,才叫有水平。”

我说:“好,好,就看在同年同月同日同时辰的份上,帮你一把。”

于是我就为拥有几十亿资产的一群农民伯伯写了一份6页纸的可行性分析报告。此“引资方案”是个很典型的不可行方案,我将摘录一部分内容作为案例进行分析。我不认识写“引资方案”的人,虽然批评很多,但是我对他(她)本人毫无恶意。由于我的可行性分析报告是写给不具备计算机基础知识的人看的,文中采用较为形象的日常事例来比喻、解释信息产业的一些现象。这些比喻在一定程度上是合理的,但可能是不严谨的。

该“引资方案”有四段主要内容,每段的主题思想简述如下。

第一段,介绍了Internet企业的红火,得出一些结论,这是“建议投资互联网”的关键论据之一。主要文字如下:

“国际互联网英雄企业雅虎(Yahoo)、网景(Netscape)……这些互联网企业有一个特点,就是赢利都还不多甚至微利运转。它们的年收入尚以万来计算,而股市却达到几十亿乃至百亿。……几乎所有互联网企业只要一上市,它的股价就可以青云直上,无人能用任何股市定理来推算它们将涨到什么程度。”

第二段,概括了在国内投资Internet企业的几大好处,这是建议万向集团投资Internet企业的关键论据。主要文字如下:

“……借互联网这个金蛋与广大投资者的看好,股票必能大幅上升。借美国网股的升幅样板,广大中国股民可能在短期内即可推动股票实现翻番。……”

“……相信不久的将来,互联网企业的黄金赢利期即可到来。事实上,由于进入互联网经营网站的直接成本很低,目前国内的绝大部分网站皆为小打小闹,几乎没有几个网站有雄厚的资金注入建设。……”

“……通过建设一个大网站所带来的全国乃至全世界的广告影响是无可估量的。…很容易造势,效果远远优于同等金额的电视、报纸广告。……”

第三段,该方案的作者说自己已经建立了一个公司,经营一个叫“中国供应商信息网”的站点。目前他有一些构思,希望万向集团投资200万元/年,按他的方案,可以很快使万向集团股票狂升,机会千载难逢。主要文字如下:

“我们经营的网站有2年多历史了。…年经营成本9万元,我只找了一个助手。…全年收入近10万元,虽说不亏,但我无法满足现状。…希望吸取资金200万。…预计年收入1200万至2000万。”

“……增加网站每日求购信息的整编工作,做到任何其它一个网站有的我们都有。”

“……增加中国及世界经济新闻版块,由每周更新到每日更新。”

“……建立网上信用卡收帐系统,一旦需要,可立即投入使用。”

第四段,他说自己是萧山人,万向集团也源于萧山。


Give me a world !   A beautiful world !
2006-04-10 15:28
燃烧
Rank: 1
等 级:新手上路
帖 子:3267
专家分:1
注 册:2006-2-6
收藏
得分:0 

一、对“引资方案”第一段的分析与评论

Internet英雄企业是典型的知识经济产物。雅虎、网景公司的营业利润与其股市相比是极微的。从外表上看:一个固定资产可以被忽略的,几乎没有营业利润的Internet企业,可以有极高的股市价值,并且市值不停上涨。为什么能够这样?这是有极苛刻的前提条件的。但是“引资方案”一开始就立论:

几乎所有互联网企业只要一上市,它的股价就可以青云直上,无人能用任何股市定理来推算它们将涨到什么程度。

这显然是胡吹,我认为即使外行也不会相信。尽管我也不够资历去评论雅虎、网景公司,但愿意尽力不离谱地通俗地解释雅虎、网景现象。

让我们把Internet想象成无边无际的网,把每个网的交织点叫做网站,在每个网站中至少可以放一台计算机。Internet的基本功能是让网上的所有计算机能够相互通讯。由于现在的一台计算机能做十年前不敢想的事,真的无法估量上亿台计算机相联的Internet有多么强大的本领。Internet极其相关产业成了美国的支柱产业。

为了在一台计算机上可以看到其它计算机的信息,必须安装一种叫浏览器的软件。浏览器的重要性如同发动机对于车辆。一个美国年轻人最先发明了浏览器。同时,计算机工业界的一位伟大人物,SGI公司(世界最大计算机公司之一)的创始人远见卓识,投资数千万美元开发这种刚诞生的浏览器。他们成立了网景公司,一位是站在前面的年轻英雄,一位是站在后面的老英雄。网景公司刚上市的时候,浏览器还没有销售(更谈不上利润),但是浏览器实在太有价值了(能让微软公司都害怕被击跨),所以网景公司上市第一天就升值十几亿美元。而网景公司销售产品得到的利润只是用来运转公司的,远比不上其该有的价值(股市价值)。可并不是随便一个Internet企业都象网景公司那么辉煌。

举杭州西湖的例子吧。西湖的一些景点收门票,卖纪念品,一年不多的经营收入,只够用来打扫卫生、修修补补、种树植草。但西湖有白居易、苏东坡巨大的贡献,千年累积的“人文、历史、地理”价值何止千百亿。假设杭州西湖上市,起价1亿元人民币,真不知道有多少人来争抢,股值当然会狂升千百倍。而我家乡的一个鱼塘也叫“西湖”,主人从来不幻想他的“西湖”值多少个亿,但他知道卖不出鱼就会贫穷,一天不争几元钱就会挨饿。

接下去说雅虎公司吧。

由于有了浏览器,用Internet交流信息就十分方便,推进了Internet的发展。还有另一个问题,用户在用互联网之前,总得先知道要找的信息在什么地方(打电话也要先知道对方的号码),不可能对上亿台计算机挨个浏览吧。这时就需要一种叫做搜索引擎的软件系统,它专门用于存放与检索互联网信息。假如一个用户想查找一种叫“万向节”的汽车零件,只需要输入“万向节”三个字,搜索引擎就会在很快查找出全球有关“万向节”的网站地址。搜索引擎的重要性,就象一个封建皇朝的藏宝图与挖掘机。美国的几个年轻人(头头是个华裔)发明了搜索引擎,他们成立了雅虎公司,该公司得到日本软件巨头SoftBank公司的投资。也是由于雅虎公司的搜索引擎实在太有价值了,所以股值很快达到其投资的百倍。现在去做搜索引擎想发大财已经太晚了。人家都用导弹打飞机了,我们还做梦用弓箭射飞机。

雅虎、网景现象小结:只有在具备极大的市场需求、极优秀的知识产品、业界杰出人物的条件下,才可能使一个公司的股值远远高于其“原始投资 + 经营利润”。如果去投资一个没有价值、不产生利润的公司,那只会拖跨投资方,这是投资常识。

二、对“引资方案”第二段的分析与评论

(1)……借互联网这个金蛋与广大投资者的看好,股票必能大幅上升。借美国网股的升幅样板,广大中国股民可能在短期内即可推动股票实现翻番。

评论:用童话故事“皇帝的新装”来比喻很恰当:他是那个裁缝,投资方是那个笨蛋皇帝,股民就相当于傻乎乎的臣民。如果有那么容易的事情,身为经济学家的总理早就做了,中国的信息产业也不会太落后。

(2)……相信不久的将来,互联网企业的黄金赢利期即可到来。事实上,由于进入互联网经营网站的直接成本很低,目前国内的绝大部分网站皆为小打小闹,几乎没有几个网站有雄厚的资金注入建设。…

评论:他说进入互联网经营网站的直接成本很低 ,那简直是黑白颠倒,哪有成本低才小打小闹的!表明他对中国ISP(Internet服务供应商)发展史全无知。在整个90年代,有成百上千的ISP死掉,主要原因是经营成本(付给电信局的钱)太高而用户太少。为什么还有一些ISP在小打小闹?那是因为该死掉的全死啦,剩一口气的与刚出生的正在一块儿垂死挣扎。现在还能在互联网上指手划脚的都是与中国电信部门有密切关系的ISP。为什么几乎没有几个网站有雄厚的资金注入建设 ?因为怕啦。

请看看近几年的“中国计算机报”、“计算机世界”,中国ISP发展史简直就是软件业界勇士与中国电信抗争的血泪史。国内最了不起的ISP是北京“赢海威时空”,在中国教育科研网建立之前,它就建立了中国人自己的“小型Internet”,连《读者》也报道过那些感人事迹。投资超过千万(投资方是银行)。但由于亏损太大,在1998年,“赢海威时空”总裁张树新女士,一位富有才华的ISP创业者,被董事会强行解职,原有创业者跟着全被辞退。此事震动软件业界。还有谁的钱比银行多?有谁比中国电信更能控制互联网?

(3)通过建设一个大网站所带来的全国乃至全世界的广告影响是无可估量的。…很容易造势,效果远远优于同等金额的电视、报纸广告。

评论:这是梦话。有一篇评论说中国老百姓通过Internet获取信息所付出的代价是美国人的1000倍以上。看一个简单的算术就能明白:中国老百姓的工资不及美国人的十分之一,中国网站的有用信息远不及美国的十分之一,中国Internet传输速率不及美国的十分之一,电话费用又比美国的高。仅此几项乘积,代价已是美国人的1000倍以上。

这个数字说明,很多事情在美国能成功,在中国就难以成功。在Internet这个问题上,存在1000倍的难度,足以扼杀普通公司。

我和同事都是软件专业的博士生,Internet对我们而言就象眼睛与耳朵一样重要。可是连我们也没有条件使用Internet,成了专业的瞎子与聋子,普通老百姓更不用说了。如果没有群众用户,ISP广告给谁看?过不了一年,ISP就得饿死,怎么去产生全球影响?怎么去迎接不久将来的滚滚财源?

三、对“引资方案”第三段的分析与评论

(1)我们经营的网站有2年多历史了。…年经营成本9万元,我只找了一个助手。…全年收入近10万元,虽说不亏,但我无法满足现状。…希望吸取资金200万。…预计年收入1200万至2000万。

评论:可以看出,他的经营能力为10万/年,是个单干户。怎么能一下子就可以经营“年投资200万,并且预计年收入达千万的企业?”刚学会走路,就夸口能跑得跟子弹一样快,神仙?

(2)增加网站每日求购信息的整编工作,做到任何其它一个网站有的我们都有。

评论:这句话雅虎公司都不敢夸口。

(3)增加中国及世界经济新闻版块,由每周更新到每日更新。

评论:他能做到的,中央电视台、新华社的网站应该早做到了。

(4)建立网上信用卡收帐系统,一旦需要,可立即投入使用。

评论:这种事情,必须是公安部门、税务部门、银行、系统集成商等一起商量好了后才可以做的。

四、对“引资方案”第四段的分析与评论

他说自己是萧山人,万向集团也源于萧山,因此他首先选择万向集团。

评论:他建议万向集团投资互联网,可不是为了万向集团,也不是为了萧山的老百姓,这一点连我们做学生的都明白。商业投资不应该带有太多的感情色彩,即便是万向集团的人提出的方案,如果不可行,也要否决。

根据以上的分析,我全盘否定了该“投资方案”,并建议万向集团不要投资ISP。可惜当初没人否定我开公司时的方案。

4.2.2 可行性分析案例之三

看了第一个案例,你可能会惋惜。看了第二个案例,你可能觉得好笑。如果看了第三个案例,你肯定会生气。

1999年1月,有一个民营企业家G先生向我请教一个问题:“我给一个年轻人投资了100万元,建立一家从事环保信息应用开发的软件公司。他曾许诺一年内创利润上千万元,可是才过去5个月,他就把100万元用完了,什么也没挣到。我实在不明白是怎么回事,请你帮我分析分析。”

这位G先生年龄有我的2.5倍,曾在西北当过几十年的技术兵,性格豪爽。他投资的那个年轻人叫Y(以下称Y经理),自称有英国的管理学文凭,能对公司的市场、技术、管理一把抓。G先生喜欢说“钱我没问题”,于是想也不想就投了100万元,并且给Y经理40%的股份。

G先生请Y经理到家里坐谈。我那时突然狡猾起来,自称是G先生的远房亲戚,在浙大读半导体物理,特羡慕那些做软件的同龄人,渴望听听Y经理的高见。Y经理果然信口开河,滔滔不绝,连绵不断,如黄河泛滥,一发而不可收拾。我激动地想去参观他的公司和产品,并表示要抛弃物理专业,立马转向软件专业。Y经理得意而笑:“对于IT行业你就不懂了,我们经营的是一种理念而不是产品,这是国外最先进的思想。你可以来参观我的公司,但你看不到具体的东西,只能用心去领会。”这屁话比曹元朗(《围城》)的诗还臭。我搞软件只有8年功夫,说我不懂IT行业并不过分。可我读了10年大学都没听到过如此“先进”的思想。如果这是英国管理学教育的成果,我认为自己已经发现了这个曾经是“日不落帝国”的衰败的真真原因,有必要找英国首相切磋一番。

我对G先生说:“Y经理根本不懂技术,为人极其浮夸。应马上关闭公司,以绝后患。那100万元你也亏得起,就买个教训吧。”

G先生说:“钱我没问题,那100万元就算我在澳门赌博输掉了。”

1999年5月,G先生又来找我请教另一个问题。

他说:“小林啊,你上次说得很有道理,我接受了教训。”

我说:“那是好事,不论年龄大小,知错就改总是好孩子嘛。”

他叹了一口气:“最近几个月,Y经理又花了我100万元。”

我当时差点给噎死,气凶凶地训G先生:“我早跟您讲过,Y经理不是好东西,叫你关闭公司你不听,你老说钱没问题,亏你200万元活该。”

老先生象犯了错误的小孩子:“Y经理每一次向我要钱时,都拍拍胸脯保证下个月就有利润,所以我一而再、再而三地掏钱给他,希望能救活软件公司。现在该怎么办?”

一个有20名职员的软件公司,程序员只有三四个,连“十羊九牧”都不如。200万元的财务报表中,有100多万元用于吃喝玩乐和行贿。这种公司完全无药可救。台湾的李敖曾说过:“当你没法扶一个人上马时,也许应该拉他下马”。从5月份到8月份,我行侠仗义,替G先生清理软件公司,根除Y经理这些败类。

可是难哪,因为G先生投资的公司根本不把G先生放在眼里,又岂能让我插手。就在我想方设法卡住Y经理的脖子时,Y经理总能从G先生那里挖出钱。G先生就象被吸血鬼附身,却仍存幻想:“如果吸血鬼能治好我的病,就让它再吸些血吧。”

Y经理又和一个来自深圳的骗子H想了注意,教唆G先生再投资100万元新建一个“指纹”公司,说利润将比环保信息的应用开发更加可观(估计要用亿来度量)。就在他们准备鉴合同之际,我偶而路过,发现异常,便强行阻止。

G先生是个好人,但太顽固。好几次我气极想撒手不管,但又不忍心好人被坏人欺负。我曾请求G先生:“我求您别再说钱没有问题,您的私人财产会被人骗光。请让我把这漏洞堵住吧,好让我安心地回学校做完博士学位论文。”

到8月份,我和G先生的两个儿子,伙同黑社会的朋友,强行把那个软件公司搬回G先生的工厂中,辞退所有员工。现在那个软件公司被别人接管,仍然半死不活,好在每月亏损不过几万元,G先生承受得起,我就不再去碰G先生的伤疤。

我以前从未玩过与人勾心斗角的游戏,此三个月的经历让我疲惫不堪。那个软件公司的员工曾透露,Y经理的英国文凭大约是在上海或杭州某个大专培训班里混来的,《围城》中的方鸿渐买美国克莱顿大学博士文凭尚知羞耻,而Y经理却趾高气扬。害得我平白无故为英国教育界担心,回想起英国鬼子曾打劫过中国,倍感耻辱。

G先生是正人君子,不防小人,实在不是现代的商人。我和他成了忘年交。G先生第一次见到我时问我工资几何,我答曰:“300元,够买几本书。”G先生甚为着急:“这样的条件怎么能生活?你就搬到我家来住吧,我家条件好,你可以安心地学习,将来可为国家多作贡献。”后来他几次相邀,我就看在国家的份上住入他家。自从读中学以来,我第一次享受食来张嘴,不用洗衣的奢侈。唯一的麻烦是我得向很多朋友解释:“我不是被别人养起来了,是为了国家的利益,不得已才这么做的。G先生是男的不是女的,并且没有待出嫁的女儿。”


Give me a world !   A beautiful world !
2006-04-10 15:28
燃烧
Rank: 1
等 级:新手上路
帖 子:3267
专家分:1
注 册:2006-2-6
收藏
得分:0 

4.3 需求分析为什么困难

有几种原因使需求分析变得困难:(1)客户说不清楚需求;(2)需求自身经常变动;(3)分析人员或客户理解有误。

4.3.1 客户说不清楚需求

有些客户对需求只有朦胧的感觉,当然说不清楚具体的需求。例如全国各地的很多政府机构在搞网络建设,这些单位的领导和办公人员大多不清楚计算机网络有什么用,反而要软件系统分析人员替他们设想需求。这类工程的需求是如此的主观,以致产生很多贪污腐败现象。

有些客户心里非常清楚想要什么,但却说不明白。读者可能很不以为然。就举日常生活的事例吧,比如说买鞋子。我们非常了解自已的脚,但没法说清楚脚的大小和形状。只能拿鞋子去试,试穿时感觉到舒服才会买鞋(居然也有神通广大的售货员,看一眼客户的手,就知道应该穿什么样的鞋)。

如果客户本身就懂软件开发,能把需求说得清清楚楚,这样的需求分析将会非常轻松、愉快。如果客户全不懂软件,但信任软件开发方,这事也好办。分析人员可以引导客户,先阐述常规的需求,再由客户否定不需要的,最终确定客户真正的需求。最怕的就是“不懂装懂”或者“半懂充内行”的客户,他们会提出不切实际的需求。如果这些客户甚至觉得自己是上帝的爸爸,那么沟通和协商都会很困难。

4.3.2 需求自身经常变动

唐僧曾说:“妖要是有了仁慈之心,就不再是妖,是人妖。”(《大话西游之大圣娶亲》)

连妖都会变心,别说人了。所以喜新厌旧乃人之常情,世界也因此变得多姿多彩。

软件的需求会变化吗?

答:据历史记载,没有一个软件的需求改动少于三次。唯一只改动需求两次的客户是个死人。这个可怜的家伙还是在运送第三次需求的路上被车子撞死的。[Cline 1995]

让我们先接受“需求会变动”这个事实吧,免得在需求变动时惊慌失措。明白“需求会变动”这个道理后,在进行需求分析时就要留点神:

(1)尽可能地分析清楚哪些是稳定的需求,哪些是易变的需求。以便在进行系统设计时,将软件的核心建筑在稳定的需求上,否则将会吃尽苦头。

(2)在合同中一定要说清楚“做什么”和“不做什么”。如果合同含含糊糊,日后扯皮的事情就多。要防止象韩复渠那样,在别人请他喝酒吃饭时他什么都点头(人家就更加献殷勤),吃完了他就宣布刚才答应的事都不算数,便扬长而去。

4.3.3 分析人员或客户理解有误

有个外星人间谍潜伏到地球刺探情报,它给上司写了一份报告:“主宰地球的是车。它们喝汽油,靠四个轮子滚动前进。嗓门极大,在夜里双眼能射出强光。……有趣的是,车里住着一种叫作‘人’的寄生虫,这些寄生虫完全控制了车。”

软件系统分析人员不可能都是全才。客户表达的需求,不同的分析人员可能有不同的理解。如果分析人员理解错了,可能会导致开发人员白干活,吃力不讨好。我读中学时候最怕写作文逃题,如果逃题了,不管作文写得多长,总是零分。所以分析人员写好需求说明书后,要请客户方的各个代表验证。如果问题很复杂,双方都不太明白,就有必要请开发人员快速构造软件的原型,双方再次论证需求说明书是否正确。

由于客户大多不懂软件,他们可能觉得软件是万能的,会提出一些无法实现的需求。有时客户还会把软件系统分析人员的建议或答复给想歪了。

有一个软件人员滔滔不绝地向客户讲解在“信息高速公路上做广告”的种种好处,客户听得津津有味。最后,心动的客户对软件人员说:“好得很,就让我们马上行动起来吧。请您决定广告牌的尺寸和放在哪条高速公路上,我立即派人去做。”

为什么软件系统分析员的工资要比普通程序员高?就是因为需求分析困难嘛。


Give me a world !   A beautiful world !
2006-04-11 19:53
燃烧
Rank: 1
等 级:新手上路
帖 子:3267
专家分:1
注 册:2006-2-6
收藏
得分:0 

4.4 如何进行需求分析

上一节诉说了需求分析的困难,本节要知难而进。

进行需求分析不象情人之间的浪漫做法——“让我摸摸你的头发,感觉它是什么颜色。”我们要围绕两个核心问题开展需求分析:(1)应该了解什么?(2)通过什么方式去了解?

4.4.1 应该了解什么

那怕是天下最无能的市长或书记,都知道在作报告时要先从宏观上讲一、二、三、四、五,再从细节上讲A、B、C、D、E。需求分析不象侦探推理那样从蛛丝马迹着手。应该先了解宏观的问题,再了解细节的问题,如图4.1所示。

图片附件: 游客没有浏览图片的权限,请 登录注册



一个软件系统(记为 S)的涉及面可能很广,可以按不同的问题域(记为D)分类,每个问题域对应于一个软件子系统。

S = { D1,D2,D3,… Dn }

问题域Di 由若干个问题(记为P)组成,每个问题对应于子系统中的一个软构件。

Di = { P1,P2,P3,… Pm }

问题Pj有若干个行为(或功能,记为F),每个行为对应于软构件中的接口。

Pj = { F1,F2,F3,… Fk }

按图4.1结构写成的需求说明书,对于那些只想了解宏观需求的领导,和需要了解细节的技术员都合适。在写需求说明书时还应该注意两个问题:

(1)最好为每个需求注释“为什么”,这样可让程序员了解需求的本质,以便选用最合适的技术来实现此需求。

(2)需求说明不可有二义性,更不能前后相矛盾。如果有二义性或前后相矛盾,则要重新分析此需求。

4.4.2 通过什么方式去了解

了解需求的方式有好几种:

(1)直接与客户交谈。如果分析人员生有足球评论员的那张“大嘴”,就非常容易侃出需求。

(2)有些需求客户讲不清楚,分析人员又猜不透,这时就要请教行家。有些高手真的很厉害,你还没有开始问,他就能讲出前因后果。让你感到“听君一席言,胜读十年书。”

(3)有很多需求可能客户与分析人员想都没有想过,或者想得太幼稚。要经常分析优秀的和蹩脚的同类软件,看到了优点就尽量吸取,看到了缺点就引以为戒。前人既然付了学费,后人就不要拒绝坐享其成。

[此贴子已经被作者于2006-4-12 6:39:28编辑过]


Give me a world !   A beautiful world !
2006-04-12 06:38
快速回复:燃烧敬献:软件工程思想,每日一贴,大家一起学习!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020926 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved