开发一个大的软件项目,程序员要为“正确”、“精确”四个字竭尽精力。
与正确性、精确性相关的质量因素是容错性和可靠性。
容错性首先承认软件系统存在不正确与不精确的因素,为了防止潜在的不正确与不精确因素引发灾难,系统为此设计了安全措施。在一些高风险的软件系统,如航空航天、武器、金融等系统中,容错性设计非常重要。
可靠性是指在一定的环境下,在给定的时间内,系统不发生故障的概率。可靠性本来是硬件领域的术语。比如某个电子设备,一开始工作很正常,但由于工作中器件的物理性质会发生变化(如发热),慢慢地系统就会失常。所以一个设计完全正确的硬件系统,在工作中未必就是可靠的。软件在运行时不会发生物理性质的变化,人们常以为如果软件的某个功能是正确的,那么它一辈子都是正确的。可是我们无法对软件进行彻底地测试,无法根除软件中潜在的错误。平时软件运行得好好的,说不准哪一天就不正常了,如“2000年”问题。因此把可靠性引入软件领域是有意义的。我曾买了一本关于软件可靠性的著作,此书充满了数学公式。我发现以我目前的学历实在难以看懂书上讲了些什么。请宽恕我的愚昧,我把此书给“供”起来,没敢用笔画一处记号。
3.3.2 性能与效率
用户都希望软件的运行速度高些(高性能),并且占用资源少些(高效率)。旧社会地主就是这么对待长工的:干活要快点,吃得要少点。程序员可以通过优化算法、数据结构和代码组织来提高软件系统的性能与效率。优化的关键工作是找出限制性能与效率的“瓶颈”,不要在无关痛痒的地方瞎忙乎。如果你想职称升得快,光靠增加课时能顶屁用;你就该一年写它几十篇文章,争取破格升教授。
3.3.3 易用性
易用性是指用户感觉使用软件的难易程度。用户可能是操作软件的最终用户,也可能是那些要使用源代码的程序员。现代人的生活节奏快,干啥事都想图个方便。所以把易用性作为重要的质量因素无可非议。
导致软件易用性差的根本原因是开发人员犯了“错位”的毛病:他以为只要自己用起来方便,用户也一定会满意。俗话说“王婆卖瓜,自卖自夸”。当程序员向用户展示软件时,常会得意地讲:“这个软件非常好用,我操作给你看,……是很好用吧!”软件的易用性要让用户来评价。当用户真的感到软件很好用时,一股温暖的感觉油然而生,于是就用“友好”来评价易用性。
3.3.4 可理解性与简洁性
可理解性表达了人们一种质朴的愿望:我化钱买了它,总得让我明白它是什么东西。我小时候的一个伙伴在读中学时,就因无法理解电荷之分正负,觉得很烦恼,便早早地缀学当工人。
可理解性也是对用户而言的。开发人员只有在自己思路清晰时才可能写出让别人能理解的程序。编程时还要注意不可滥用技巧,应该用自然的方式编程。我们的确不知道自己的得意之举究竟是锦上添花,还是画蛇添足。就象蒸出一笼馒头,在上面插一朵鲜花,本想弄点诗情画意,却让人误以为那是一堆热气腾腾的牛粪。
简洁是一种美,不管是自己还是用户都会有同感。在生活中,与简洁对立的是“罗里罗嗦”。中国小说中最“婆婆妈妈”的男人是唐僧。有一项民意调查:如果世上只有唐僧、孙悟空、猪八戒和沙僧这四类男人,你要嫁给哪一类?请列出优先级。调查结果表明,现代女性毫不例外地把唐僧摆在老末。
一个原始的应用问题可能很复杂,但高水平的人就能够把软件系统设计得很简洁。如果软件系统臃肿不堪,它迟早会出问题。简洁是人们对工作“精益求精”的结果。
废话大师有句名言:“如果我令你过于轻松地明白了,那你一定是误解了我说的话。”我最近有一种奇怪的体会:如果把学术文章写得很简洁,让人很容易理解,它往往中不了;只有加上一些玄乎的东西,把本来简单的弄成复杂的,才会增加投稿的命中率。事实上,我可以在5分钟之内说清楚三年来读博所做的工作,根本用不着写100多页的博士论文。我是在临近毕业时,才发觉自己完全不适合读博士学位。将来工作后,我一定要好好编程,重新做人。
3.3.5 可复用性与可扩充性
复用的一种方式是原封不动地使用现成的软构件,另一种方式是对现成的软构件进行必要的扩充后再使用。可复用性好的程序一般也具有良好的可扩充性。本书第六章将论述如何设计可复用、可扩充的C++程序。
3.4 质 量 检 查
检查是人们不信任自己和别人的一种行为。当某些事情涉及到利益分配时,更需要有检查活动来保证公平。估计即使进入了共产主义社会,也少不了检查。
质量检查并不是要等到项目结束时才执行唯一的一次,应该在每个实践环节都要执行。对应于进度表,在每个里程碑到达时执行质量检查比较合理。质量检查的内容有二:一是作出评审,是合格还是不合格?能打多少分?二是作出建议,对质量为什么好为什么差进行分析,以便“改差为好”、“好上加好”。
以下是人们经常采用的软件质量检查措施[Pressman 1999]:
(1)事先把检查的主要内容制成一张表,使检查活动集中在主要问题上。
(2)只评审工作,不评审开发者。评审的气氛应该是融洽的。存在的错误应该被有礼貌地指出来,任何人的意见都不应被阻挠或小看。
(3)建立一个议事日程并遵循它。检查过程不能放任自由,必须排照既定的方向和日程进行。
(4)不要化太多的时间争论和辩驳。
(5)说清楚问题所在,但不要企图当场解决所有问题。
(6)对检查人员进行适当的培训。
……
做好检查工作并不是件容易的事。自古以来“上有政策,下有对策”。 虚假的质量检查还不如不检查,下面讲两个故事作为解释。
故事一
不久前我回到西北那所读了六年多的大学,惊奇地发现校园里房前屋后长满了待收割的小麦!这所大学是从事电子科技的,种小麦干啥呀?朱总理曾讲过:“目前国家粮食充足,再来三年自然灾害也不怕。”现在国泰民安,似乎用不着“深挖洞,广积粮”。我素知学校提创勤俭节约、自力更生,但与其种小麦还不如种蔬菜呢。老同学告诉我,种小麦是为了应付“211”工程(为21世纪选拔100所重点大学)的检查团,因为“211”工程有较高的绿化指标。偏偏检查赶在冬天,那时的西北极难长草。我那所大学本来就人多地少,地上一长草马上就会被谈恋爱的学生给折磨死。一到冬天,整个校园就光秃秃一片。用小麦绿化校园可谓千古绝笔,检查团的那些权贵人士早已五谷不分,岂知所见的“草坪”乃是麦田。
检查工作要预防被检查者弄虚作假。
故事二
我上高中时,班里举行一次入团评审。侯选人中有几位是好学生,有几位是坏学生。我心想“伸张正义”的机会到了,绝不能让坏蛋混进纯洁的团里。可天知道团支部书记是聪明绝顶还是蠢笨之极。他竟说:“班里还有一些同学没有入团,现在他们申请入团,有不同意的请举手。”我们都不知道该怎么办了。书记接着说:“既然没有人举手反对,就表示全部同意,请大家鼓掌欢迎。”这次入团评审不到一分钟就结束了,从此后我再也没想过争取入党。
检查工作要有科学的评审方式。
3.5 小 结
不知为什么,国内很多大的企业都喊着要进世界500强。如果真的实现了,世界500强还不全被中国霸占了。软件的项目计划和质量管理都不是用来喊叫的口号。做项目计划时切忌“冒进”,不要指望在项目陷入困境后靠增加人手来解救。软件的高质量主要是设计出来的,不是“管”出来的,更不能依赖质量检查。为此程序员要充分了解软件的质量因素,只有提高设计水平,才能开发出高质量的软件。
第四章 可行性分析与需求分析
可行性分析是要决定“做还是不做”。
需求分析是要决定“做什么,不做什么”。
即使可行性分析是客观的、科学的,但决策仍有可能是错误的。因为决策者是人,人会冲动,有赌博心态。如果可行性分析表明做某件事的成功率是10%,失败率是90%,倘若该事情的意义非常大,决策者也许会一拍脑袋:“豁出去,干!”于是这世界就多了一份极喜与极悲。4.1节讲述可行性分析的四大要素:经济、技术、社会环境和人。
目前国内很多软件公司做系统集成项目,如果谈谈系统集成项目的可行性分析将很有意思。可是那些系统集成项目大多是政府机构的,由于软件行业尚不规范并且客户方存在腐败现象,所以业内流传“没有做不了的系统集成项目”。软件公司的注意力几乎全集中在“如何拿到项目订单”以及“拿到订单后如何蒙混过关”上,使我丧失了卖弄“可行性分析”的机会。既然不能正面指点一个人如何做好事,那么就规劝他不要做坏事吧。
4.2节讲述可行性分析案例——投资软件公司失败的教训。
小说推荐
- 软软入相思
- 都城白府,突然多出来了一位大小姐白木雨 众人好奇,却意外发现这被白家宝贝的女儿,脑子好像不大正常 一场宴会,众人得见盛装的白小姐 神祀下诏,白氏女,无根人 真龙之人得之,如虎添翼。旁人得之,不得善终>所以,是福?还是祸 半夜,白小姐的闺房里突然闯进来了个登徒子 自称对白小姐一见钟情,并决定要一缠二闹
- 都市言情言凝倪连载中
- 最新章:(两百三十五)我守着你
- 程心程意
- 从小老师就教育我们叔中自有黄金屋,叔中自有颜如玉。程锦之最大的愿望就是能嫁给隔壁老程直到有一天—程牧白:锦之,跟我回家。程锦之:那你不许勾搭别的女人!程牧白:除了你,我有过别人?从此双程合璧想想还有点小激动呢o 作者:所写的《程心程意》无弹窗免费全文阅读为转载作品,章节由网友发布
- 都市言情未知完本
- 最新章:第46章
- 程少的心尖小软糖
- 尹茜一直知道自己的婚姻不幸福,爹不疼娘不爱,丈夫更是不爱自己,在这场婚姻中,她也只不过是两个集团的交易品而已,可是让她没想到的是,亲手葬送她婚姻的竟然是她最好的闺蜜 而她一次次的忍气吞声,换来的却是丈夫当着她的面跟自己的闺蜜上演“动作戏。撕心裂肺后的她决定“我卖艺不卖身”尹茜的话让程天泽不退反进“卖
- 都市言情牛油果酥酥连载中
- 最新章:第1194章 大结局
- 在moto手机上使用的txt阅读软件
- 在moto手机上使用的txt阅读软件支持机型为:MOTOROLA系列:V3V300-V600(i)V360C501L7L6E398E375E680C650C381v635E1E2E680E680IA780A1200C975C980E1000E770V3IV3X诺基亚系列:32505140i60606
- 未知连载中
- 最新章:第1章
- TXT电子书批量转换中文Unicode编码的软件
- 经常看TXT电子书,但网上下载的经常不是Unicode编码的,打开后会出现乱码,要在电脑上转换,有了这个工具,可以批量转换了,不用一个个另存为Unicode编码了 作者:所写的《TXT电子书批量转换中文Unicode编码的软件》无弹窗免费全文阅读为转载作品,章节由网友发布
- 未知连载中
- 超级软件
- 众所周知,电脑只有装了软件,才会有各种功能,办公、上网、游戏、影音娱乐等等;如果人的大脑也能够安装软件,安装计算器,就能心算;千千静听,就能够歌唱;QQ、浏览器、暴风影音、WOW…一个平凡的少年,要做养家的爷们;一只手机从天而降,大脑安装软件,人生从此不同 作者:钓鱼所写的《超级软件》无弹窗免费全文
- 都市言情钓鱼完本
- 最新章:第四百零八章 向前看(全书完)
- 修仙软件
- 《修仙软件》作者:稀凤【完结】在无名之辈之中惊艳而出,在修仙世界里嚣张跋扈。一代修仙者的豪言!萧泽尧携带自己编程的修仙软件,闯入异界,开始修仙。这里有有被千年诅咒的情侣,生生世世轮回。神魔两道的第一次合作,以及,泉眼浩劫的镇压。萧泽尧的穿越,将改变整个修真史的历史。修仙成神的是惊艳之辈,超凡入圣的是
- 武侠小说未知连载中
- 最新章:第117章
- 人形软件
- 《人形软件》作者:谭剑【完结“我不写科幻本身,我写科幻世界中的真实人性”华语科幻星云奖,最佳长篇小说与最佳作家银奖,科幻小说的后科技之作。本书采用了畅销小说的写法,情节性颇强,时时引着读者读下去,其中对未来网路及灵魂上载的描写亦别开生面。它不仅展现了我们的替身在网路世界的传奇冒险,展现了虚拟生命对真
- 科幻小说未知连载中
- 最新章:第31章
- 我是杀毒软件
- 我游走在黑暗与光明之间,杀戮是我的挚友,邪恶是我的仆从,白骨累累化作我的权杖,鲜血殷殷染红我的披风,阴冷双翼所过之处,死亡的哭号必将震天动地 我是死神。同时也是一个杀毒软件。作者自定义标签:冷酷 作者:懒鸟所写的《我是杀毒软件》无弹窗免费全文阅读为转载作品,章节由网友发布
- 玄幻小说懒鸟连载中
- 最新章:没有后记的后记