1 引言
二十世紀六十年代的軟件危機使得人們開始重視軟件工程的研究。起初,人們把軟件設(shè)計的重點放在數(shù)據(jù)結(jié)構(gòu)和算法的選擇上,隨著軟件系統(tǒng)規(guī)模越來越大、越來越復(fù)雜,整個系統(tǒng)的結(jié)構(gòu)和規(guī)格說明顯得越來越重要。
軟件體系結(jié)構(gòu)(Software Architecture,軟件架構(gòu))的設(shè)計是整個軟件開發(fā)過程中關(guān)鍵的一步。對于當(dāng)今世界上龐大而復(fù)雜的系統(tǒng)來說,沒有一個合適的體系結(jié)構(gòu)而要有一個成功的軟件設(shè)計幾乎是不可想象的。不同類型的系統(tǒng)需要不同的體系結(jié)構(gòu),甚至一個系統(tǒng)的不同子系統(tǒng)也需要不同的體系結(jié)構(gòu)。體系結(jié)構(gòu)的選擇往往會成為一個系統(tǒng)設(shè)計成敗的關(guān)鍵。
典型的軟件體系結(jié)構(gòu)風(fēng)格有很多。例如,設(shè)計圖形用戶界面(GUI)常用的事件驅(qū)動風(fēng)格、設(shè)計操作系統(tǒng)常用的層次化設(shè)計風(fēng)格、設(shè)計編譯程序常用的管道與過濾器風(fēng)格、設(shè)計分布式應(yīng)用程序常用的客戶機/服務(wù)器風(fēng)格等。一個實用的軟件系統(tǒng)通常是幾種典型體系結(jié)構(gòu)風(fēng)格的組合[1]。
近年來,我們致力于軟件體系結(jié)構(gòu)理論和實踐應(yīng)用研究,取得了一些初步成績。在第2節(jié)中,我們將給出一個選擇和應(yīng)用軟件體系結(jié)構(gòu)的實例。
2 軟件體系結(jié)構(gòu)的選擇和應(yīng)用
本節(jié)以某省社會保險管理信息系統(tǒng)(SIMIS)為例,討論軟件體系結(jié)構(gòu)的選擇和應(yīng)用。
2.1 項目背景
SIMIS服從于國家勞動和社會保障部關(guān)于保險管理信息系統(tǒng)的總體規(guī)劃,系統(tǒng)建設(shè)堅持一體化的設(shè)計思想,總體目標是建立比較完備、高效、與勞動和社會保障事業(yè)發(fā)展相適應(yīng)、與國家經(jīng)濟信息系統(tǒng)相銜接的勞動和社會保險管理信息系統(tǒng),實現(xiàn)勞動和社會保險管理體系的技術(shù)現(xiàn)代化、管理科學(xué)化。
SIMIS系統(tǒng)以IC卡為信息載體,完成勞動和社會保險的主要業(yè)務(wù)管理,即“五保合一”管理,包括養(yǎng)老保險、醫(yī)療保險、勞動就業(yè)和失業(yè)保險、工傷保險、女工生育保險。整個業(yè)務(wù)流程十分復(fù)雜,牽涉面相當(dāng)廣泛。SIMIS系統(tǒng)由省、地市、縣三級組成,網(wǎng)絡(luò)縱向覆蓋全省各級勞動和社會保障機構(gòu),橫向與財稅、銀行、衛(wèi)生、郵政、企事業(yè)單位聯(lián)網(wǎng),是一個典型的廣域網(wǎng)絡(luò)系統(tǒng);系統(tǒng)設(shè)計按照社會保險與個人賬戶相結(jié)合的模式,以養(yǎng)老保險為重點,并以此為全省勞動和社會保險管理信息網(wǎng)絡(luò)主干網(wǎng)絡(luò),帶動勞動力市場等其他社會保險業(yè)務(wù)管理信息系統(tǒng)建設(shè)。
二十世紀六十年代的軟件危機使得人們開始重視軟件工程的研究。起初,人們把軟件設(shè)計的重點放在數(shù)據(jù)結(jié)構(gòu)和算法的選擇上,隨著軟件系統(tǒng)規(guī)模越來越大、越來越復(fù)雜,整個系統(tǒng)的結(jié)構(gòu)和規(guī)格說明顯得越來越重要。
軟件體系結(jié)構(gòu)(Software Architecture,軟件架構(gòu))的設(shè)計是整個軟件開發(fā)過程中關(guān)鍵的一步。對于當(dāng)今世界上龐大而復(fù)雜的系統(tǒng)來說,沒有一個合適的體系結(jié)構(gòu)而要有一個成功的軟件設(shè)計幾乎是不可想象的。不同類型的系統(tǒng)需要不同的體系結(jié)構(gòu),甚至一個系統(tǒng)的不同子系統(tǒng)也需要不同的體系結(jié)構(gòu)。體系結(jié)構(gòu)的選擇往往會成為一個系統(tǒng)設(shè)計成敗的關(guān)鍵。
典型的軟件體系結(jié)構(gòu)風(fēng)格有很多。例如,設(shè)計圖形用戶界面(GUI)常用的事件驅(qū)動風(fēng)格、設(shè)計操作系統(tǒng)常用的層次化設(shè)計風(fēng)格、設(shè)計編譯程序常用的管道與過濾器風(fēng)格、設(shè)計分布式應(yīng)用程序常用的客戶機/服務(wù)器風(fēng)格等。一個實用的軟件系統(tǒng)通常是幾種典型體系結(jié)構(gòu)風(fēng)格的組合[1]。
近年來,我們致力于軟件體系結(jié)構(gòu)理論和實踐應(yīng)用研究,取得了一些初步成績。在第2節(jié)中,我們將給出一個選擇和應(yīng)用軟件體系結(jié)構(gòu)的實例。
2 軟件體系結(jié)構(gòu)的選擇和應(yīng)用
本節(jié)以某省社會保險管理信息系統(tǒng)(SIMIS)為例,討論軟件體系結(jié)構(gòu)的選擇和應(yīng)用。
2.1 項目背景
SIMIS服從于國家勞動和社會保障部關(guān)于保險管理信息系統(tǒng)的總體規(guī)劃,系統(tǒng)建設(shè)堅持一體化的設(shè)計思想,總體目標是建立比較完備、高效、與勞動和社會保障事業(yè)發(fā)展相適應(yīng)、與國家經(jīng)濟信息系統(tǒng)相銜接的勞動和社會保險管理信息系統(tǒng),實現(xiàn)勞動和社會保險管理體系的技術(shù)現(xiàn)代化、管理科學(xué)化。
SIMIS系統(tǒng)以IC卡為信息載體,完成勞動和社會保險的主要業(yè)務(wù)管理,即“五保合一”管理,包括養(yǎng)老保險、醫(yī)療保險、勞動就業(yè)和失業(yè)保險、工傷保險、女工生育保險。整個業(yè)務(wù)流程十分復(fù)雜,牽涉面相當(dāng)廣泛。SIMIS系統(tǒng)由省、地市、縣三級組成,網(wǎng)絡(luò)縱向覆蓋全省各級勞動和社會保障機構(gòu),橫向與財稅、銀行、衛(wèi)生、郵政、企事業(yè)單位聯(lián)網(wǎng),是一個典型的廣域網(wǎng)絡(luò)系統(tǒng);系統(tǒng)設(shè)計按照社會保險與個人賬戶相結(jié)合的模式,以養(yǎng)老保險為重點,并以此為全省勞動和社會保險管理信息網(wǎng)絡(luò)主干網(wǎng)絡(luò),帶動勞動力市場等其他社會保險業(yè)務(wù)管理信息系統(tǒng)建設(shè)。