3、 可擴(kuò)充性:系統(tǒng)方案的升級(jí)、擴(kuò)容、擴(kuò)充性能
系統(tǒng)在建成后會(huì)有一段很長(zhǎng)的運(yùn)行周期,在該周期內(nèi),應(yīng)用在不斷增加,應(yīng)用的層次在不斷升級(jí),因此采用的構(gòu)架設(shè)計(jì)等方案因充分考慮升級(jí)、擴(kuò)容、擴(kuò)充的可行性和便利。
4、 可移植性
不同客戶端、應(yīng)用服務(wù)器、數(shù)據(jù)庫(kù)管理系統(tǒng):如果潛在的客戶使用的客戶端可能使用不同的操作系統(tǒng)或?yàn)g覽器,其可移植性必須考慮客戶端程序的可移植性,或盡量不使業(yè)務(wù)邏輯放在客戶端;數(shù)據(jù)處理的業(yè)務(wù)邏輯放在數(shù)據(jù)庫(kù)管理系統(tǒng)中會(huì)有較好的性能,但如果客戶群中不能確定使用的是同一種數(shù)據(jù)庫(kù)管理系統(tǒng),則業(yè)務(wù)邏輯就不能數(shù)據(jù)庫(kù)管理系統(tǒng)中;
達(dá)到可移植性一定要注重標(biāo)準(zhǔn)化和開(kāi)放性:只有廣泛采用遵循國(guó)際標(biāo)準(zhǔn),開(kāi)發(fā)出開(kāi)放性強(qiáng)的產(chǎn)品,才可以保證各種類型的系統(tǒng)的充分互聯(lián),從而使產(chǎn)品更具有市場(chǎng)競(jìng)爭(zhēng)力,也為未來(lái)的系統(tǒng)移植和升級(jí)擴(kuò)展提供了基礎(chǔ)。
5、 需求的符合性
從源代碼的組織結(jié)構(gòu)看需求的符合型主要考慮針對(duì)用戶需求可能的變化的軟件代碼及構(gòu)架的最小冗余(同時(shí)又要使得系統(tǒng)具有一定的可擴(kuò)展性)。
五、寫系統(tǒng)構(gòu)架設(shè)計(jì)文檔應(yīng)考慮的問(wèn)題
構(gòu)架工作應(yīng)該在需求開(kāi)發(fā)完成約80%的時(shí)候開(kāi)始進(jìn)行,不必等到需求開(kāi)發(fā)全部完成,需要項(xiàng)目經(jīng)理以具體的判斷來(lái)評(píng)估此時(shí)是否足以開(kāi)始構(gòu)建軟件構(gòu)架。
給出一致的輪廓:系統(tǒng)概述。一個(gè)系統(tǒng)構(gòu)架需要現(xiàn)有概括的描述,開(kāi)發(fā)人員才能從上千個(gè)細(xì)節(jié)甚至數(shù)十個(gè)模塊或?qū)ο箢愔薪⒁恢碌妮喞?P> 構(gòu)架的目標(biāo)應(yīng)該能夠清楚說(shuō)明系統(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)列出程序中最可能變更的部分,說(shuō)明構(gòu)架的其他部分如何應(yīng)變。
復(fù)用分析、外購(gòu):縮短軟件開(kāi)發(fā)周期、降低成本的有效方案未必是自行開(kāi)發(fā)軟件,可以對(duì)現(xiàn)有軟件進(jìn)行復(fù)用或進(jìn)行外購(gòu)。應(yīng)考慮其對(duì)構(gòu)架的影響。
除了系統(tǒng)組織的問(wèn)題,構(gòu)架應(yīng)重點(diǎn)考慮對(duì)于細(xì)節(jié)全面影響的設(shè)計(jì)決策,深入這些決策領(lǐng)域:外部軟件接口(兼容性、通信方式、傳遞數(shù)據(jù)結(jié)構(gòu))、用戶接口(用戶接口和系統(tǒng)層次劃分)、數(shù)據(jù)庫(kù)組織和內(nèi)容、非數(shù)據(jù)庫(kù)信息、關(guān)鍵算法、內(nèi)存管理(配置策略)、并行性、安全性、可移植性、網(wǎng)絡(luò)多人操作、錯(cuò)誤處理。
要保證需求的可追蹤性,即保證每個(gè)需求功能都有相應(yīng)模塊去實(shí)現(xiàn)。
構(gòu)架不能只依據(jù)靜態(tài)的系統(tǒng)目標(biāo)來(lái)設(shè)計(jì),也應(yīng)當(dāng)考慮動(dòng)態(tài)的開(kāi)發(fā)過(guò)程,如人力資源的情況,進(jìn)度要求的情況,開(kāi)發(fā)環(huán)境的滿足情況。構(gòu)架必須支持階段性規(guī)劃,應(yīng)該能夠提供階段性規(guī)劃中如何開(kāi)發(fā)與完成的方式。不應(yīng)該依賴無(wú)法獨(dú)立運(yùn)行的子系統(tǒng)構(gòu)架。將系統(tǒng)各部分的、依賴關(guān)系找出來(lái),形成一套開(kāi)發(fā)計(jì)劃。