从猴子说起谈软件需求工程的重要性平雨人生

有这样一个笑话:一个旅客走进硅谷的一家宠物店,浏览展示的宠物。这时,走进一个顾客,对店主说:"我要买一只C猴。"店主点了点头,走到商店一头的兽笼边,抓出一只猴,递给顾客说:"总共5000美元。"顾客付完款,然后带走了他的猴子。

这位旅客非常惊讶,走到店主跟前说:"那只猴子也太贵了!"

店主说:"那只猴子能用C编程,非常快,代码紧凑高效,所以值那么多钱。"

这时,旅客看到了笼子中的另一只猴子,它标价10000美元。于是又问:"那只更贵了!它能做什么?"

店主回答:"哦,那是一只C++猴;它会面向对象的编程,会用VisualC++,还懂得一点Java,是非常有用的。"

旅客又逛了一会儿,发现了第三只猴子,它独占一个笼子,脖子上的标价是50000美元。旅客倒抽一口气,问道:"那只猴子比其他所有猴子加起来都贵!它究竟能做什么?"

店主说:"我们也不知道它究竟能做什么,不过它是做项目顾问出身的。"

虽然这只是一个笑话,但是有一点是可以肯定的,项目管理是非常重要的,而项目管理的人才又是极为缺乏的。在软件工业发达的国家,大家多少都知道点软件工程规划的重要性。在我们身边的台湾、印度、日本,都不乏因实施软件工程而成功的软件团体,更不用说身为软件大国的美国,已经从较低级的软件实现摆脱出来,进入了设计和营销的境界。

软件首先是一种产品(软件是服务还是产品的问题,向来未有定论),看看世界上制造业的发展历程,就会发现一些很有意思的现象。在本世纪早些的年代,西方国家的制造业经历了规模生产、提高质量等等促进生产力提高的过程。可是由于西方国家的人力资源成本不断的攀升,越来越难降低产品成本,所以西方国家又不可避免的经历了一次将制造业外移的过程(制造业外移的结果是成本大幅下降、国际贸易频繁、接受制造业的国家发展了自身的制造业),而西方国家只留下营销和设计的能力,掌握了产品生产的重点。

同样,IT行业也在经历这种过程:美国将软件外包给印度,硬件外包给台湾。而中国的硬件也在崛起,但是在软件行业,中国和其他国家的差距还是太大了,且不说在软件行业中处于核心地位的操作系统、数据库。即便是应用软件,中国的软件水平也实在低的可怜。在国外制造业刚刚迁移进中国的时候(改革开放),中国的小企业家同样没有任何管理经验、质量意识。但是随着

制造业的发展和国外先进思想的进入,中国也诞生了极为出色的全球制造业巨头。而中国的软件行业现在正是处于刚刚有了一点管理思想,但还没有成熟的地步。我们有理由相信,在不久的将来中国也会诞生出出色的全球性软件企业。

憧憬归憧憬,现实的问题还是必须要考虑的。软件这个产品很奇特,软件企业的管理思想同样很奇特。不同于现在企业推崇的各种管理思想,软件企业的管理思想主要是针对项目的管理,确保项目的成功。

1.2.项目和需求

笑话里的猴子对应到项目就是指项目管理人员,这里要引入一个角色的概念(同样的人可以担任多种的角色),通常的项目管理角色包括:项目经理、项目复审员、变更控制经理、企业流程分析师、业务模型设计师、需求分析员、需求复审员、系统分析员…在一个成功的项目里,多种角色职责明确,分工合作,共同完成项目的设计实施。

那么这些"猴子"在项目中都做了些什么呢?RUP(RationalUnifiedProcess瑞理统一过程,本文采用了众多的RUP的思想)把一个项目分成10个核心工作流程(CoreWorkflows)和4个阶段(Phases),并以核心工作流程为Y轴,阶段为X轴建立起一个项目视图(图一)。

本文将主要对先启阶段做介绍。在先启阶段,需求是重中之中,这里指的需求不仅仅是RUP的一个工作流程(在业务建模下),而是比较广义的概念,包括了RUP的工作流程中的业务建模、需求、一部分的分析、测试计划、配置和变更管理。

1.3.需求是根本

由于忽略需求过程造成的项目返工是恶性的,大量的项目在需求阶段就注定了它的失败。以下是

需求过程不科学的典型例子:

开发人员在用户处呆了两三天就埋头开发;

用户告诉开发人员我要开发一个XX系统,但是我很忙,你先开发一个让我看看;

上面的这两种态度都意味着项目的不成功,应该说上面的开发人员和用户都应该对此负责。需求是开发者和用户交互的一个过程,任何一方的不投入都会导致项目的失败。当然,由于用户不是专业人士,开发者有权利告诉用户应该采用何种态度来对待项目的需求。曾经和几个朋友聊过他们公司开发过的项目,最后得出一个结论,所有最成功的项目都有一个重要的特性:用户非常的支持。

评判一个软件项目成功的标准是看它是否解决了用户的问题,而用户的问题就是体现为用户的需求,需求也就顺理成章的成为项目的成功标准。而需求阶段的一个不慎都有可能导致软件实现阶段的大量返工,而需求的不慎不是说你小心就可以的,因为很多需求是隐性的,连用户都不清楚自己的需求。这时候就需要一种科学的方法来帮助软件组织实施需求过程。

1.4.需求是变化的

大师说:"没有不变的需求,世上的软件都改动过3次以上,唯一一个只改动过两次的软件的拥有者已经死了,死在去修改需求的路上。"

需求是不稳定的,那么需求之中是不是没有稳定的东西呢?有的,就是对象。世界都是由对象组

1.5.需求是什么

在RUP中定义了需求工作流程的工作目的:

客户和其他涉众*在系统的工作内容方面达成并保持一致。

使系统开发人员能够更清楚地了解系统需求。

定义系统边界(限定)。

为计划迭代的技术内容提供基础。

义系统的用户界面,重点是用户的需要和目标。

*涉众:涉众是所有会受到项目结果重大影响的人。如客户(或客户代表)用户(或用户代表)、投资者、股东、生产经理、买方、设计员、测试员、文档编写员等

似小型的瀑布式项目。

需求分析过程主要做的事情无非就是获取涉众对系统的要求,可是需求是多变的,而你不可能告诉客户等到他们把一切都固定下来再开发软件。所以需求管理过程做的事情就是保证需求变更的可管理性。

1.6.需求的层次

对应到RUP的工作流程,业务需求其实是RUP的业务建模流程(BusinessModeling),在这个流程中,参与者主要是业务流程分析员(Business-ProcessAnalyst)。主要的目的是对企业目前的业务流程进行评估,并根据要进行的项目,确定进行何种程度的业务建模(你要做一个ERP项目就意味着你必须优化业务流程,而上一个部门级MIS项目就没有必要用牛刀了)。然后你会得到一个叫做业务前景(BusinessVision)的东西,其实就是项目成功后会是个什么样

子,并在涉众范围内达成一致。业务需求层次需要投入的精力视具体项目而定,而业务需求的确定对之后的用户需求和功能需求起了限定作用,业务需求就是需求过程的宪法,任何需求不得与之相违背。

到了用户需求层次上(RUP的需求工作流程),重心就转移到如何收集用户的需求上,即确定角色和角色的用例(这里的角色和用例是UML中的概念,我们在下文会讨论),需求分析是很难的,因为很多需求是隐性的,很难获取,更难保证需求完整,而需求又是易变的。一般来说,在过去作需求分析的时候,更多依靠的是阅读企业的文件,但是企业的文件往往有局限性,例如落后于当前的业务,不够明确,依赖于管理水平的高低,所以后来获取需求的方法逐渐倾向组织访谈会(Interview)。

功能需求依赖于用户需求,可以说是用户需求在系统上的一个映射(Mapping)。开发者思考的角度从用户转移到开发者。在这个层次上,为用户做一个软件原型是一个很不错的主意。直到现在,用户对软件还是没有一个实实在在的概念,如果你给用户一个原型,用户就会说,"哦,我的XX系统原来就是这样的。"这就避免了用户在软件开发完成后才看到软件所带来的一些风险。是否有必要采用快速原型开发法和原型应开发到何种地步取决于具体的项目,很多时候,用一些非正规的方法来生成原型:如果你要开发一个WEB系统,让你的美工做几个页面给用户看看,如果你做一个C/S系统,做一个界面给用户,都已经足够用了,甚至你完全可以在黑板上画一画你将来的软件的面貌都可以。用户大都是比较友善的,不要把问题想的过于复杂。

1.7.需求的标准

明确:目前大多数的需求分析采用的仍然是自然语言(因为如果采用形式化语言的话,和用户的沟通将成为一个大问题,这意味着客户在开发软件之前必须先进行形式化语言培训,这是不现实的)。自然语言对需求分析最大的弊病就是它的二义性。所以我们不得不对需求分析中采用的语言做某些限制。例如尽量采用主语+动作的简单表达方式。说白了,需求分析中的描述让人看上去像是刚学习写作的小孩子就对了,千万不要采用疑问句、修饰这些华丽的表达方式。

除了语言的二义性之外,注意不要使用行话,就是计算机术语。需求分析最重要的是和用户沟通,可是用户多半不是计算机的专业人士,如果在需求分析中使用了行话,就会造成用户理解上的困难。

打个比方,如果你要做一个银行的信用卡系统,你就可以这样描述软件需求:银行的卡部管理信用卡,每张信用卡只属于一个帐户。信用卡有卡号、余额。一张信用卡有多笔的交易记录。

THE END
1.宠物店选择理想店址的重要性宠物店怎样选址派多格宠物连锁加盟...通常,宠物店店址被视为商店的三个主要资源之一,理想的宠物店址对商品销售有着举足轻重的影响。店铺的特定开设地点决定了店铺顾客的多少,也决定了店铺销售额的高低。宠物店址选择的重要性体现在下面几个方面。 1.宠物店店址投资数额较大且时期较长,关系着店铺的发展前途 ...http://www.apetdog.com/html/Article34690/Index.html
1.宠物店是做什么的它与宠物诊所和宠物医院的区别跟着住民糊口程度晋升及豢养宠物看法遍及,宠物经济非常火爆,宠物正在人们一样平常糊口中的位置逐步降低,这就动员了全部宠物行业的疾速生长,宠物店特指供给宠物出卖,宠物用品售卖,宠物洗护效劳的一体化商铺。上面咱们一同具体看一下宠物店常识百科吧。 宠物店是做甚么的 ...https://www.zhppw.com/baike/288176.html
2.宠物店一年利润怎么样合理安排员工的工作时间和工作量,避免浪费人力资源,提高员工的效率和积极性; 节约水电费用,合理使用空调、灯光、音响等设备,避免不必要的浪费。 02 宠物店一年的平均利润 根据以上的分析,我们可以知道,宠物店一年的利润,取决于多种因素,没有一个固定的答案。不过,我们可以参考一些数据来源,来估算一下宠物店一年的平均...https://www.jianshu.com/p/c9b8b1e6c5e0
3.宠物用品集合店随着我国经济的快速发展,人们的生活水平不断提高,宠物已经成为越来越多家庭的重要成员,为了满足宠物主人的需求,各类宠物用品层出不穷,而宠物用品集合店作为一种新兴的商业模式,以其一站式购物体验和丰富的商品种类,逐渐成为宠物主人喜爱的购物场所,本文将带您走进宠物用品集合店,领略其魅力。 http://www.qmfvimzgmh.cn/post/8864d099113.html
4....此处安全可靠且可实体店挑选选宠!犬舍猫狗宠物店南通市南通来福乐猫犬舍(崇州店)是一家值得信赖的宠物店,无论是从宠物的健康保障、售后服务,还是店铺的专业性和信誉度,都让人感到放心和满意。如果你正在寻找一个理想的宠物家园,不妨来南通来福乐猫犬舍(崇州店)看看,相信你一定会找到那个陪伴你度过美好时光的小生命。 https://www.163.com/dy/article/JH1FVAV305566L7X.html
5.国内化妆品行业市场现状分析(精选8篇)中国经济的迅猛发展,促使生活资料的销售特别的活跃,同样化妆品的销售也不示弱。化妆品是属于消耗品的范畴,根据现有中国企业对生活易耗品的销售观点,更多地是强调质量与保质期的重要性。而化妆品却有别于其它易耗品。无论从竞争趋势还是从商品特点或从营销现象而言化妆品必须比其他易耗品更重视服务营销。 https://www.360wenmi.com/f/filer3r5ps72.html
6.兔子养殖致富互联网头条3.宠物兔:宠物店、宠物市场等。 现在养兔子利润和前景怎么样? 利润: 1.卖商品兔。年出栏商品兔350只,每只平均重2.5千克共计875千克,按国家正常年份平均收购价格12元/千克计共收入10500元。 2.种兔处理费。种兔利用期过后需作为商品兔淘汰,每只平均4.5千克,按12元/千克计算,每只54元,12只648元,分摊到2.5年...https://www.300.cn/toutiao/t_142514.html
7.萌宠取名指南:让你的宠物店名字脱颖而出!公司起名宠物店名字的重要性 一个好的宠物店名字不仅能吸引更多的宠物主人前来购买,还能帮助您的宠物店建立良好的品牌形象。宠物店名字的好坏直接影响着宠物主人对于店铺的第一印象。如果宠物店的名字很特别、很有创意,那么宠物主人就会对这个店铺产生兴趣,并且想要了解更多关于这个店铺的信息。 https://www.cngidc.com/dmpq/151428.html
8.高档宠物店名字大全,超级拉风的宠物店名常见问题给宠物店起名字,让自己的宠物店生意红红火火,首先一定要有一个好的公司名字,注册宠物店要了解注册流程,公司名字等重要的环节,宠物店名字不仅仅是一个简单的文字符号,它也是宠物店形象、品牌展示、扩大公司影响力、广告宣传等方面也起到了积极的传播作用,今天,企业名童在这里为您推荐高端宠物店名,超酷的宠物店名。 https://www.wen51.com/news/show/142781/
9.电商年终工作总结(精选21篇)(1)、分散流量是网站推广的重要事情之一 SEO是网络营销方式之一,只有与SEM、EDM、事件营销等相结合,项目组主要靠360、百度、搜狗等搜索引擎,至于其他搜索引擎引流不是很多,根据去年的一年的时间的关注,目前xx网站日PV:1000-20xx之间,IP:700-1000,这样的流量属于偏少阶段,同期相比下降很多,这说明我们现在推广宣传力度...https://www.yjbys.com/zongjie/nianzhongzongjie/2152411.html
10.司机驾车被哈士奇咬伤,引起宠物管理的关注(动物的安全与责任)宠物店应承担的责任 作为一家出售和养育宠物的商家,宠物店应当对所售卖的宠物进行健康检查和品种鉴定,并向买家提供科学的养护方法和法律知识。同时,为了防止出现宠物攻击事件,宠物店还应设置相应的安全措施和预警机制,确保宠物和人类的安全。 关于宠物保险的重要性 ...https://www.pettb.cn/article-36509-1.html
11.宠物救助是什么意思宠物不想养了能送去哪→MAIGOO知识2、重要性 宠物救助站在保护宠物福利、维护社会和谐方面发挥着重要作用。它不仅帮助了那些无辜的小生命,也让人们看到了社会的温暖和爱心。同时,通过参与救助站的活动,人们可以增进对宠物养护知识的了解,提高社会对宠物福利的关注程度。 3、救助站的运作 宠物救助站的运作依赖于志愿者、捐助者和工作人员的共同努力。救助...https://www.maigoo.com/goomai/727067.html
12.医院经营范文12篇(全文)目前相当一部分医院虽然建立了内控制度, 但不健全, 内部控制制度残缺不全或有关内容不够合理, 使医院内部人员无章可循;还有的医院内部控制制度没有从本单位实际情况出发或更新不及时, 导致内部控制制度失去时效性;还有些医院意识到内部控制的重要性, 制定了比较科学、全面的内部控制制度, 但并未较好地执行。 https://www.99xueshu.com/w/ikeyiya7s2gb.html
13.毕业设计ssm宠物管理系统宠物店管理系统毕业设计经过数十年的发展和各大宠物店的努力,宠物行业可以说是比较成熟了,不论是宠物的数量、类型都比数十年前有了质的飞跃。它在提高用户的生活质量和拉动地区经济方面贡献着自己的力量,也是国家文化输出的重要工具。新时代的用户在网上可以实现许多交易活动,如预定宠物用品、宠物商店、宠物领养、宠物挂失、论坛信息、宠物资...https://blog.csdn.net/m0_50936939/article/details/137863005