讓我們回顧一下需求分析的歷史,然后討論SOA中如何來(lái)進(jìn)行面向服務(wù)的分析和建模吧。
軟件工程方法中,需求分析的方法跟問(wèn)題域的復(fù)雜度和類(lèi)型緊密相關(guān)。在早期,計(jì)算需求主要來(lái)自科學(xué)計(jì)算,其抽象手段主要是“數(shù)據(jù)結(jié)構(gòu)+算法”。在溝通需求的時(shí)候,技術(shù)人員跟業(yè)務(wù)人員以自然語(yǔ)言為基礎(chǔ)來(lái)溝通,然后以過(guò)程和/或函數(shù)以及數(shù)據(jù)結(jié)構(gòu)為主要抽象手段,來(lái)建立分析模型。分析結(jié)果包含過(guò)程/函數(shù)、流程圖、數(shù)據(jù)流圖,復(fù)雜一些的,引入模塊和子系統(tǒng)來(lái)分割。然后,用自然語(yǔ)言描述為主的文檔來(lái)作為溝通的手段。如果我們還記得關(guān)于GOTO的討論,我們了解,這個(gè)計(jì)算時(shí)代經(jīng)過(guò)多年的發(fā)展,推動(dòng)了結(jié)構(gòu)化編程的發(fā)展和成熟。
伴隨著商業(yè)計(jì)算逐漸成為主流,商業(yè)計(jì)算從早期類(lèi)似于科學(xué)計(jì)算的財(cái)務(wù)等,轉(zhuǎn)向更為廣泛的領(lǐng)域,其計(jì)算的復(fù)雜度和類(lèi)型,發(fā)生了很大的變化,這中間各種數(shù)據(jù)庫(kù)技術(shù)曾經(jīng)領(lǐng)銜主演了一段時(shí)間,我們按下不表。這期間,在“軟件危機(jī)”的推動(dòng)下,對(duì)象成為基本的抽象手段,將其高度內(nèi)耦合的數(shù)據(jù)、狀態(tài)和行為結(jié)合在一起,不僅提高了抽象度,也自然地反映人們認(rèn)識(shí)和描述這個(gè)世界的方式。經(jīng)過(guò)多年的實(shí)踐、爭(zhēng)吵和合作,人們總結(jié)出了很多關(guān)于對(duì)象分析和建模的方式,組件、接口、各種分析和設(shè)計(jì)模式,逐漸地被認(rèn)識(shí)和流行,UML建立了圖例和文檔規(guī)范,以便溝通。這是軟件界的一個(gè)巨大進(jìn)步。在這種軟件工程方法中,技術(shù)人員通常用自然語(yǔ)言同業(yè)務(wù)人員溝通,然后用“Use Case”(用例)來(lái)建立各種角色所看到的系統(tǒng)邊界,再輔助以用戶(hù)交互(UI)等必要的其他模型,建立一個(gè)系統(tǒng)的分析視圖,然后,以對(duì)象(和組件)為基本手段,建立系統(tǒng)的分析模型,最后,用UML和一些過(guò)程如RUP提供的文檔模板為基礎(chǔ),提供需求分析結(jié)果。這種分析方法,今天非常流行,也很有效。
但是,商業(yè)計(jì)算的情況再次發(fā)生巨大的變化——“整合”和“靈活性”成為主要的需求。經(jīng)過(guò)幾十年的發(fā)展,商業(yè)計(jì)算已經(jīng)不再是過(guò)去白手起家的時(shí)刻,我們已經(jīng)有了很多的“歷史”,那就是我們已經(jīng)建立起來(lái)的這么多的系統(tǒng):每個(gè)企業(yè)都有IT系統(tǒng),少到幾個(gè)、幾十個(gè),多到幾千甚至上萬(wàn)。人類(lèi)花了這么多錢(qián)、這么多時(shí)間在這些系統(tǒng)上,沒(méi)有了這些系統(tǒng),核心業(yè)務(wù)會(huì)崩潰。但這些系統(tǒng)也給我們帶來(lái)了巨大的麻煩——它們能夠滿(mǎn)足不同業(yè)務(wù)部門(mén)(Line of Business,LoB)的垂直需求,可是相互不往來(lái)、也不能或者很難相互往來(lái),難以滿(mǎn)足跨業(yè)務(wù)部門(mén)的水平需求,更不要說(shuō)在今天這個(gè)平的世界里,如何將合作伙伴、客戶(hù)連接起來(lái),建立一個(gè)動(dòng)態(tài)的商業(yè)價(jià)值網(wǎng)絡(luò)。但是,全球化的經(jīng)濟(jì)結(jié)構(gòu)和運(yùn)作模式,互聯(lián)網(wǎng)作為全球化的IT基礎(chǔ)設(shè)施,從商業(yè)和技術(shù)兩個(gè)角度,透過(guò)競(jìng)爭(zhēng),既給富有創(chuàng)新和執(zhí)行能力的企業(yè)帶來(lái)了一個(gè)前所未有的商業(yè)機(jī)會(huì),又迫使跟隨的企業(yè)不得不起而迎戰(zhàn)——將業(yè)務(wù)模式調(diào)整到以客戶(hù)為中心,將自己內(nèi)部的業(yè)務(wù)系統(tǒng)連接起來(lái),水平整合業(yè)務(wù)活動(dòng)成為端到端的業(yè)務(wù)流程,透過(guò)這些流程,讓整個(gè)公司的員工可以自由地得到業(yè)務(wù)活動(dòng)需要的信息,輕松地相互協(xié)作,從而將整個(gè)企業(yè)的運(yùn)作模式轉(zhuǎn)化為一個(gè)扁平的結(jié)構(gòu),打破業(yè)務(wù)部門(mén)的邊界,極大地提高企業(yè)的效率,得到更好的客戶(hù)滿(mǎn)意度。即便如此,用戶(hù)需求、市場(chǎng)情況、商業(yè)環(huán)境的快速變化作為這個(gè)時(shí)代的特點(diǎn),要求企業(yè)能夠快速調(diào)整自己的商業(yè)模型,因此,在整合的基礎(chǔ)上,還要加上快速應(yīng)變的靈活性要求。這就涉及到了軟件的兩個(gè)魔鬼:復(fù)雜度和演變。全面整合(整個(gè)企業(yè),客戶(hù),合作伙伴)的系統(tǒng),其復(fù)雜度再次提升,而靈活應(yīng)變能力,在一個(gè)整合的世界里,大家都變,自己也沒(méi)辦法以不變應(yīng)萬(wàn)變,究竟如何因變?所以,我們需要發(fā)展軟件系統(tǒng)的構(gòu)造方法,它既可以幫助我們將問(wèn)題域進(jìn)行良好的分割,分解映射為分布世界里的獨(dú)立單元,又可以
項(xiàng)目經(jīng)理勝任力免費(fèi)測(cè)評(píng)PMQ上線(xiàn)啦!快來(lái)測(cè)測(cè)你排多少名吧~
http://opto-elec.com.cn/pmqhd/index.html