系統(tǒng)架構(gòu)是軟件開發(fā)過程中的重要組成部分,也是一個(gè)非常綜合和復(fù)雜的系統(tǒng)性工程,由很多工作環(huán)節(jié)組成,架構(gòu)設(shè)計(jì)文檔的撰寫就是其中的一個(gè)。中培偉業(yè)《詳細(xì)設(shè)計(jì)與系統(tǒng)架構(gòu)最佳實(shí)踐》培訓(xùn)專家曾老師就系統(tǒng)構(gòu)架設(shè)計(jì)文檔撰寫應(yīng)該注意的問題進(jìn)行了介紹。
曾老師指出,構(gòu)架工作應(yīng)該在需求開發(fā)完成約80%的時(shí)候開始進(jìn)行,不必等到需求開發(fā)全部完成,需要項(xiàng)目經(jīng)理以具體的判斷來評(píng)估此時(shí)是否足以開始構(gòu)建軟件構(gòu)架。
給出一致的輪廓:系統(tǒng)概述。一個(gè)系統(tǒng)構(gòu)架需要現(xiàn)有概括的描述,開發(fā)人員才能從上千個(gè)細(xì)節(jié)甚至數(shù)十個(gè)模塊或?qū)ο箢愔薪⒁恢碌妮喞?/p>
構(gòu)架的目標(biāo)應(yīng)該能夠清楚說明系統(tǒng)概念,構(gòu)架應(yīng)盡可能簡(jiǎn)化,最好的構(gòu)架文件應(yīng)該簡(jiǎn)單、簡(jiǎn)短,清晰而不雜亂,解決方案自然。
構(gòu)架應(yīng)單先定義上層的主要子系統(tǒng),應(yīng)該描述各子系統(tǒng)的任務(wù),并提供每個(gè)子系統(tǒng)中各模塊或?qū)ο箢惖牡某醪搅斜怼?/p>
構(gòu)架應(yīng)該描述不同子系統(tǒng)間相互通信的方式,而一個(gè)良好的構(gòu)架應(yīng)該將子系統(tǒng)間的通信關(guān)系降到最低。
成功構(gòu)架的一個(gè)重要特色,在于標(biāo)明最可能變更的領(lǐng)域,應(yīng)當(dāng)列出程序中最可能變更的部分,說明構(gòu)架的其他部分如何應(yīng)變。
復(fù)用分析、外購(gòu):縮短軟件開發(fā)周期、降低成本的有效方案未必是自行開發(fā)軟件,可以對(duì)現(xiàn)有軟件進(jìn)行復(fù)用或進(jìn)行外購(gòu)。應(yīng)考慮其對(duì)構(gòu)架的影響。
除了系統(tǒng)組織的問題,構(gòu)架應(yīng)重點(diǎn)考慮對(duì)于細(xì)節(jié)全面影響的設(shè)計(jì)決策,深入這些決策領(lǐng)域:外部軟件接口(兼容性、通信方式、傳遞數(shù)據(jù)結(jié)構(gòu))、用戶接口(用戶接口和系統(tǒng)層次劃分)、數(shù)據(jù)庫組織和內(nèi)容、非數(shù)據(jù)庫信息、關(guān)鍵算法、內(nèi)存管理(配置策略)、并行性、安全性、可移植性、網(wǎng)絡(luò)多人操作、錯(cuò)誤處理。
要保證需求的可追蹤性,即保證每個(gè)需求功能都有相應(yīng)模塊去實(shí)現(xiàn)。
構(gòu)架不能只依據(jù)靜態(tài)的系統(tǒng)目標(biāo)來設(shè)計(jì),也應(yīng)當(dāng)考慮動(dòng)態(tài)的開發(fā)過程,如人力資源的情況,進(jìn)度要求的情況,開發(fā)環(huán)境的滿足情況。構(gòu)架必須支持階段性規(guī)劃,應(yīng)該能夠提供階段性規(guī)劃中如何開發(fā)與完成的方式。不應(yīng)該依賴無法獨(dú)立運(yùn)行的子系統(tǒng)構(gòu)架。將系統(tǒng)各部分的、依賴關(guān)系找出來,形成一套開發(fā)計(jì)劃。