信息系統(tǒng)開發(fā)的四種方法分別是結(jié)構(gòu)化方法、原型化方法、面向?qū)ο蠓椒ā⒚嫦蚍?wù)方法。
結(jié)構(gòu)化方法
結(jié)構(gòu)化方法是一種傳統(tǒng)的軟件開發(fā)方法,她是由結(jié)構(gòu)化分析、結(jié)構(gòu)化設(shè)計(jì)和結(jié)構(gòu)化程序設(shè)計(jì)三部分有機(jī)組合而成的。
結(jié)構(gòu)化設(shè)計(jì)方法是以自頂向下,逐步求精,模塊化為基點(diǎn),以模塊化,抽象,逐層分解求精,信息隱蔽化局部化和保持模塊獨(dú)立為準(zhǔn)則的設(shè)計(jì)軟件的數(shù)據(jù)架構(gòu)和模塊架構(gòu)的方法學(xué)。
結(jié)構(gòu)化方法目前主要應(yīng)用在一些比較成熟的系統(tǒng)上,一般來說國(guó)家或者行業(yè)層面都有成熟的建設(shè)指導(dǎo)意見了(運(yùn)用這種方法的前提是在開發(fā)之初就能全面認(rèn) 識(shí)系統(tǒng)的信息需求),例如做一個(gè)戶籍管理系統(tǒng)
我們把一個(gè)系統(tǒng)與程序看成是一層一層的。戶籍管理系統(tǒng)可以劃分為:戶籍遷入遷出,人員遷入遷出,戶籍注銷,人員注銷等幾個(gè)子系統(tǒng),而每個(gè)子系統(tǒng)又劃分為接收用戶信息,實(shí)施處理,提供返回信息等等部分。
(2)模塊化:即將幾個(gè)系統(tǒng)分成幾個(gè)模塊,每個(gè)模塊實(shí)現(xiàn)特定的功能,最終整個(gè)系統(tǒng)由這些模塊組成。模塊跟模塊之間通過接口傳遞信息,模塊最重要的特點(diǎn)就是獨(dú)立性,模塊之間還有上下層的關(guān)系,上層模塊調(diào)用下層模塊來實(shí)現(xiàn)一些功能。
(3)語句結(jié)構(gòu)化:順序結(jié)構(gòu)、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu),都是常用的語句結(jié)構(gòu)。
結(jié)構(gòu)化分析方法的實(shí)質(zhì)是著眼于數(shù)據(jù)流,自頂向下,逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。
結(jié)構(gòu)化分析的步驟如下:
(1)通過對(duì)用戶的調(diào)查,以軟件的需求為線索,獲得當(dāng)前系統(tǒng)的具體模型
(2)去掉具體模型中非本質(zhì)因素,抽象出當(dāng)前系統(tǒng)的邏輯模型
(3)根據(jù)計(jì)算機(jī)的特點(diǎn)分析當(dāng)前系統(tǒng)與目標(biāo)系統(tǒng)的差別,建立目標(biāo)系統(tǒng)的邏輯模型
(4)完善目標(biāo)系統(tǒng)并補(bǔ)充細(xì)節(jié),寫出目標(biāo)系統(tǒng)的軟件需求規(guī)格說明
(5)評(píng)審直到確認(rèn)完全符合用戶對(duì)軟件的需求
原型化開發(fā)方法
原型法就是在開發(fā)時(shí)只是開發(fā)出一個(gè)樣品,而不是完整的軟件,界面什么的不是很完美。然后給客戶使用,然后再由客戶提出的需求再進(jìn)行修改,知道客戶滿意為止。然后剩下的就是依照這個(gè)樣品開發(fā)正式的軟件了,這屬于摸著石頭過河的一種辦法。
面向?qū)ο蠓椒?/p>
面向?qū)ο蠓椒▽W(xué)在開始,是編程語言而被引入的。而把對(duì)象作為編程的實(shí)體最早是上世紀(jì)六十年代由Simula 67語言引入思維。在結(jié)構(gòu)化方法學(xué)提出幾年之后,上世紀(jì)八十年代面向?qū)ο蠓椒▽W(xué)逐漸走上歷史的舞臺(tái),并在之后乃至現(xiàn)在大放異彩。面向?qū)ο蠓椒▽W(xué)的思想是面向?qū)ο?,以?duì)象為中心,把數(shù)據(jù)封裝在對(duì)象內(nèi)部成為對(duì)象的屬性,把面向過程的函數(shù)轉(zhuǎn)為對(duì)象的行為方法,把對(duì)象抽象成為類,用以描述和設(shè)計(jì)、開發(fā)軟件系統(tǒng)。
面向?qū)ο蟮姆治龇椒ㄊ抢妹嫦驅(qū)ο蟮乃枷脒M(jìn)行建模,如實(shí)體、關(guān)系、屬性等,同時(shí)運(yùn)用封裝、繼承、多態(tài)等機(jī)制來構(gòu)造模擬現(xiàn)實(shí)系統(tǒng)的方法。
用開公司舉個(gè)例子。如果公司就只有幾個(gè)人,那么大家總是一起干活,工作可以通過“上帝視角“完全搞清楚每一個(gè)細(xì)節(jié),于是可以制定非常清晰的、明確的流程來完成這個(gè)任務(wù)。這個(gè)思想接近于傳統(tǒng)結(jié)構(gòu)化的開發(fā)。
而如果公司人數(shù)變多,達(dá)到幾百上千,這種“上帝視角”是完全不可行的。在這樣復(fù)雜的公司里,沒有一個(gè)人能搞清楚一個(gè)工作的所有細(xì)節(jié)。為此,公司要分很多個(gè)部門,每個(gè)部門相對(duì)的獨(dú)立,有自己的章程,辦事方法和規(guī)則等。獨(dú)立性就意味著“隱藏內(nèi)部狀態(tài)”。比如你只能說申請(qǐng)讓某部門按照章程辦一件事,卻不能說命令部門里的誰誰誰,在什么時(shí)候之前一定要辦成。這些內(nèi)部的細(xì)節(jié)你管不著。類似的,更高一層,公司之間也存在大量的協(xié)作關(guān)系。一個(gè)汽車供應(yīng)鏈可能包括幾千個(gè)企業(yè),組成了一個(gè)商業(yè)網(wǎng)絡(luò)。通過這種松散的協(xié)作關(guān)系維系的系統(tǒng)可以無限擴(kuò)展下去,形成龐大的,復(fù)雜的系統(tǒng)。這就是OOP想表達(dá)的思想。
面向服務(wù)的架構(gòu)
SOA 是面向服務(wù)的架構(gòu),即企業(yè)的 IT 系統(tǒng)是由服務(wù)組成的,也即企業(yè)的各個(gè)應(yīng)用系統(tǒng)是由許多標(biāo)準(zhǔn)的服務(wù)件“組裝”起來的,組成應(yīng)用系統(tǒng)中的各個(gè)服務(wù)之間是一種非常松耦合的關(guān)系。
服務(wù)基于簡(jiǎn)單的“問/答”模型——我問你問題,你給我答案,那么對(duì)于“我”來說,“你”就是“服務(wù)”。但是答案反饋有同步和異步之分,同步就是我問你問題并在線等待你答復(fù),而異步就是我問完你問題就去忙其他事情了,你有了答案之后再通知我。