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