科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道应用软件软件需求的关键:分解用例场景

软件需求的关键:分解用例场景

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

做软件需求最重要就是分解用例场景,没有用例就不是需求。

作者:ItpmiCOM 来源:ItpmiCOM 2007年9月9日

关键字: 软件需求 用例

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共19页)

做软件需求最重要就是分解用例场景,没有用例就不是需求。软件工程这类书要学,不过软件工程软件需求最关键就是用例场景的合理建立,这条,好象没有什么大学教科书谈到,仿佛中国的大学计算机科学系教师统统没有做过软件项目的,完全没有这个概念。所谓的软件需求,如果不是变成走不通的伪代码,就是用不上的美工方案,程序员对此除了干瞪眼是没辄的。

其中最大的原因就是从事网站或者类似的软件需求的许多人都不懂真正的软件需求是什么东西,包括我处理过的SAP/ERP项目这类都是同样的问题,尽管那不是网站;他们犯的一般共同的错误就是把网页表现形式(那其实是美工的工作),以及内容的采排看作是需求,完全没有一个用例的观念。

用例,usecase,目前多见于UML下的对面向对象程序中的对象行为的表达;不过,这不是它的源泉;它之所以被看作是这类语言的标准URL描述手段,是因为面向对象本身就是在虚拟程序中模拟真实世界那样地工作;而真实世界,就是围绕着用例展开的。用例的观念其实也不能算是一个软件概念,只不过在软件领域定义得最为精确而已,今天从每个人的生老病死,婚姻嫁娶,其实都是一个个的用例的描述和实施。用例,顾名思意,就是假如(假设)出现某种情况,采取什么样的行动;可能会有什么样的结果;然后,根据这个结果,再采取什么样的行动......直到得到希望的某个最终结局。

用例也叫场景,软件,实际上就是对场景操作过程的描述,而不是一堆版面框架网页的集成。没有用例支持就不叫软件,更加不叫项目——连垃圾都算不上。很多时侯我们说需求不明确,其实就是说这个用例不清晰;在电子商务网站中,除了人员素质导致对基本概念方法不明白外,最可能的导因就是商业模式不明确,或者不成立。这个成立与否,实际上可以从上面的假如如何那般的推导中进行初步的可行性推演。所以,程序员实际上有两个层次,一个是你说什么他做什么,但永远没有结果的。他却的确实现了你(需求人员)提出的所有要求,但这个项目却必然是永远没有结果的,因为,它本身只是把这个程序员当成网页编辑用了,项目没有基本用例的支持。我想90%的程序员是这类"程序员",没有用例明确定义也就没有软件能力的评估,因为软件人员不是美工。另一种程序员则可以从上诉推演中发现整个项目本身有没有用例,以及用例是否合理(理论上没有明显的逻辑障碍);虽然程序员一般不应该关心商业模式是否合理,但实际上他有这个能力,常常是第一个发现商业模式的问题,假如他也关心的话。

可惜大部分用户需求人员不明白这个道理,反而可能会以为程序员是在推卸责任,或者是刁难需求;也正因为这个原因,需求人员和实现人员的冲突在项目中屡见不鲜,倒不是个人矛盾的冲突,而是由于双方没能有一个基本的立足点。我见过这样的项目,需求人员建一个大型网站的需求就是一大箩的每个网页的非常详细的描述,到每个字每个连接......直至每个网页出现的次序,项目经理说一个笑话:万一他摔一跤,这箩子东西鬼才能再捡回原来的模样。的确,负责需求的客户方副老总和一帮企业需求编辑辛苦做了两个月,但其实这不是需求,而是使用这个项目软件的具体编辑排版的安排;根本不是程序员要看的东西。程序员需要的是使用这个网站时需要有那几种用例逻辑,然后抽象出其中的对象,根据对象建立存储方式(象数据库存储结构)和内容采摘方式。那大箩东东,实际上什么用处也没有的。开发软件如同建房子,旁观者可能问一句:"建房子啊"就拍手说明白了,但对于开发员来说,如果得不到准确的房子细到砖砖瓦瓦的准确设计(需求定义);要知道建小平房和建金茂大夏都是建房子,建宾馆还是建殡仪馆也是建房子,到底客户要的是什么房子合适,不搞清楚干下去的程序都是不负责任的,或者是冒牌货。

不懂软件需求的需求人员一般会犯如下错误:一是把版面美工形式看作需求,其实程序员看程序如同医生透过X光看一个人,看到的是骨架,至于是美人还是丑八怪如果能看出来,那个医生一定是变态的;在开发过程中都强调实现用例功能实现,而不是首先色彩如何花梢漂亮,后者不但不是主要的,也不是次要的,在开发过程中什么都不是;一开始把精力放在这里当成需求实现是浪费时间浪费金钱。二是把静态网页当成需求,特别是当把静态网页当成prototype时更经常犯这个错误;常常说:"按prototype做出来不就行了?"实际上prototype本身如果不是看不出清楚的用例逻辑,就是可能有几种用例解释;何况真正变成动态程序,与静态的东西是不一样的。我在网上看到的美女明星下了台到眼前成了丑八怪,就是这个道理。而且更遭的是,客户还同时犯第一个错误,看着那里不顺眼就改一改版面还一天三变,不知不觉的基本用例就变成了另外一个东西,原来是宾馆现在成了盖殡仪馆,原来搞错了因为不知道躺的人不同叫不同的馆(死人还是活人),试问,如何实现?项目开始和后期看到的同一个版面成为不同的故事绝对是经常出现的故事,软件上称为需求变迁,这是项目经常延期的最主要原因。

三是需求人员把定制了解成按客户所有想法迎合静态页面,而不是按客户的业务用例要求建立相应的程序;还要求程序员也这样做;实际上,如果不能拨乱反正的话,任何项目到此为止已经是死路一条:那不是软件,无非是静态网页人员出租!需求人员常犯的另一个错误仍是不懂用例,就是把用例的使用方式当成了需求;这种错误有时连初级程序员都会犯,最典型就是把一个菜单栏目当成需求,而程序员无法从菜单中看出明显的简洁的用例逻辑——这是一个没有意义的菜单,天晓得里头是什么?同样地,里头的要干的东西还一天三变。事实上,同一种逻辑用例可以用到N个栏目,那是"软件的使用而不是软件本身"。

以上的错误常见于网站建设,所以网站建设最通常的结局是不了了之,大概占了50%以上,无论设入多少钱多少人花多少时间都是如此的;除非有人能够拨乱反正,让项目需求走上正道。而在ERP/DRP这类项目中,需求人员一般情况下是业务的行家,他们反而很容易理解用例是什么东西,象医院收费,绝对不会把精力放在收费界面有没有脱衣舞女让收费员提神上,收费这个用例有多少个环节是他们理解的。这种项目需求最易犯的错误是让先进的计算机工具重复原始状态下的不合理的流程。最典型的笑话就是:手工审批要盖五个章,用五天时间;现在电算化效率提高了一百倍,所以可以盖五百个章(电子签名呢!),时间嘛,仍然是五天!在这里,矛盾不是有没有用例,而是用例是不是合理的,最高效率的。

所以对于需求由于用例的冲突,程序员如果不想不了了之最后责任全部背上身的话,最好就是坚持原则;程序员迎合网页编写是没有意义的,迁就需求也不是没有意义的,因为......无法迁就的,越是迁就就越是没有办法实现,或者客户没有办法满意的。软件其实很简单的,无非是分析好用例,然后让计算机一步步实现而已,用例,是所有软件实现的前提:不然,软件到底要干什么?好的软件项目都有一个共同的特点,就是简单的逻辑,明确用例。最典型的,看google,ebay。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    闂傚倸鍊搁崐鎼佸磹妞嬪孩顐介柨鐔哄Т閻骞栧ǎ顒€濡肩紒鎰殜閺岋繝宕堕埡浣锋睏闂佸搫顑呴柊锝夊蓟閺囷紕鐤€閻庯綆浜炴禒鐐節濞堝灝鐏犻柕鍫熸倐瀵寮撮敍鍕澑闁诲函缍嗘禍鏍磻閹捐鍐€妞ゆ挶鍔庣粙蹇涙⒑鐠恒劌娅愰柟鍑ゆ嫹

    婵犵數濮烽弫鍛婃叏閻戝鈧倹绂掔€n亞鍔﹀銈嗗坊閸嬫捇鏌涢悢閿嬪仴闁糕斁鍋撳銈嗗坊閸嬫挾绱撳鍜冭含妤犵偛鍟灒閻犲洩灏欑粣鐐烘⒑瑜版帒浜伴柛鎾寸洴閹儳煤椤忓應鎷洪梻鍌氱墛閸楁洟宕奸妷銉ф煣濠电姴锕ょ€氼參宕h箛鏃傜瘈濠电姴鍊绘晶娑㈡煕鐎c劌濡介柕鍥у瀵粙濡歌閳ь剚甯¢弻鐔兼寠婢跺﹥娈婚梺鍝勭灱閸犳牠骞冨⿰鍫濈厸闁稿本绋撹ぐ瀣煟鎼淬値娼愭繛鍙壝悾婵堢矙鐠恒劍娈鹃梺鍓插亝濞叉牠鎮″☉銏$厱閻忕偛澧介惌瀣箾閸喐鍊愭慨濠勭帛閹峰懐绮电€n亝鐣伴梻浣规偠閸斿宕¢崘鑼殾闁靛繈鍊曢崘鈧銈嗗姂閸庡崬鐨梻鍌欑劍鐎笛呯矙閹寸姭鍋撳鐓庡籍鐎规洑鍗冲畷鍗炍熼梹鎰泿闂備線娼ч悧鍡涘箠鎼淬垺鍙忔い鎺嗗亾闁宠鍨块崺銉╁幢濡炲墽鍑规繝鐢靛О閸ㄦ椽鏁嬮柧鑽ゅ仦娣囧﹪濡堕崨顔兼闂佺ǹ顑呴崐鍦崲濞戙垹骞㈡俊顖濐嚙绾板秹鏌f惔銏e妞わ妇鏁诲璇差吋閸偅顎囬梻浣告啞閹搁箖宕版惔顭戞晪闁挎繂顦介弫鍡椼€掑顒婂姛闁活厽顨嗙换娑㈠箻閺夋垹鍔伴梺绋款儐閹瑰洭寮婚敐鍛婵炲棙鍔曠壕鎶芥⒑閸濆嫭婀扮紒瀣灴閸╃偤骞嬮敃鈧婵囥亜閺囩偞鍣洪柍璇诧功缁辨捇宕掑▎鎴濆濡炪們鍔岄幊姗€骞嗗畝鍕<闁绘劙娼х粊锕傛煙閸忚偐鏆橀柛鏂跨焸閹偤宕归鐘辩盎闂佸湱鍎ら崹鐢割敂閳哄懏鍊垫慨姗嗗墻濡插綊鏌曢崶褍顏€殿喕绮欐俊姝岊槼闁革絻鍎崇槐鎾存媴缁涘娈┑鈽嗗亝缁诲牆顕f繝姘亜缁炬媽椴搁弲锝夋偡濠婂啰效闁诡喗锕㈤幊鐘活敆閸屾粣绱查梺鍝勵槸閻楀嫰宕濇惔锝囦笉闁绘劗鍎ら悡娑㈡倶閻愯泛袚闁哥姵锕㈤弻鈩冩媴閻熸澘顫掗悗瑙勬礈閸犳牠銆佸鈧幃鈺呮惞椤愩倝鎷婚梻鍌氬€峰ù鍥х暦閸偅鍙忛柟鎯板Г閳锋梻鈧箍鍎遍ˇ顖炲垂閸岀偞鐓㈡俊顖滃皑缁辨岸鏌ㄥ┑鍡╂Ц缂佲偓鐎n偁浜滈柡宥冨妿閳藉绻涢崼鐔虹煉婵﹨娅e☉鐢稿川椤斾勘鈧劕顪冮妶搴′簼婵炶尙鍠栧畷娲焵椤掍降浜滈柟鍝勬娴滈箖姊洪幐搴㈢┛濠碘€虫搐鍗遍柟鐗堟緲缁秹鏌涢锝囩畼妞ゆ挻妞藉铏圭磼濡搫顫岄悗娈垮櫘閸撴瑨鐏冮梺鍛婁緱閸犳岸宕㈤幖浣光拺闁告挻褰冩禍浠嬫煕鐎n亜顏柟顔斤耿閺佸啴宕掑☉姘箞闂佽鍑界紞鍡涘磻閸℃ɑ娅犳い鎺戝€荤壕濂告煕鐏炲墽鈽夌紒妞﹀洦鐓欓柣鐔告緲椤忣參鏌熼悡搴㈣础闁瑰弶鎸冲畷鐔兼濞戞瑦鐝¢梻鍌氬€搁崐椋庣矆娓氣偓楠炴牠顢曢妶鍌氫壕婵ê宕崢瀵糕偓瑙勬礀缂嶅﹪寮婚崱妤婂悑闁告侗鍨界槐閬嶆煟鎼达紕鐣柛搴ㄤ憾钘濆ù鍏兼綑绾捐法鈧箍鍎遍ˇ浼存偂閺囥垺鐓涢柛銉e劚婵$厧顭胯閸ㄤ即婀侀梺缁樓圭粔顕€顢旈崼鐔虹暢闂傚倷鐒︾€笛呮崲閸屾娑樜旈崨顓犲幒闂佸搫娲㈤崹娲偂閸愵亝鍠愭繝濠傜墕缁€鍫熸叏濡寧纭鹃柦鍐枛閺屾洘绻涜鐎氱兘宕戦妸鈺傗拺缂備焦锚婵洦銇勯弴銊ュ籍闁糕斂鍨藉鎾閳ユ枼鍋撻悽鍛婄叆婵犻潧妫楅埀顒傛嚀閳诲秹宕堕妸锝勭盎闂婎偄娲︾粙鎰板箟妤e啯鐓涢悘鐐靛亾缁€瀣偓瑙勬礋娴滃爼銆佸鈧幃銏$附婢跺澶�

    重磅专题
    往期文章
    最新文章