軟件與人類的關(guān)系是架構(gòu)師必須面對的核心問題,也是自從軟件進(jìn)入歷史舞臺之后就出現(xiàn)的問題。與此類似地,自從有了建筑以來,建筑與人類的關(guān)系就一直是建筑設(shè)計師必須面對的核心問題。英國首相丘吉爾說,我們構(gòu)造建筑物,然后建筑物構(gòu)造我們(We shape our buildings, and afterwards our buildings shape us)。英國下議院的會議廳較狹窄,無法使所有的下議院議員面向同一個方向入座,而必須分成兩側(cè)入座。丘吉爾認(rèn)為,議員們?nèi)胱臅r候自然會選擇與自己政見相同的人同時入座,而這就是英國政黨制的起源。Party這個詞的原意就是"方"、"面"。政黨起源的關(guān)鍵就是建筑物對人的影響。來源:www.examda.com
在軟件設(shè)計界曾經(jīng)有很多人認(rèn)為功能是最為重要的,形式必須服從功能。與此類似地,在建筑學(xué)界,現(xiàn)代主義建筑流派的開創(chuàng)人之一Louis Sullivan也認(rèn)為形式應(yīng)當(dāng)服從于功能(Forms follows function)。
幾乎所有的軟件設(shè)計理念都可以在浩如煙海的建筑學(xué)歷史中找到更為遙遠(yuǎn)的歷史回響。最為的,當(dāng)然就是模式理論和XP理論。
架構(gòu)的目標(biāo)是什么
正如同軟件本身有其要達(dá)到的目標(biāo)一樣,架構(gòu)設(shè)計要達(dá)到的目標(biāo)是什么呢?一般而言,軟件架構(gòu)設(shè)計要達(dá)到如下的目標(biāo):來源:www.examda.com
·可靠性(Reliable)。軟件系統(tǒng)對于用戶的商業(yè)經(jīng)營和管理來說極為重要,因此軟件系統(tǒng)必須非??煽?。
·安全行(Secure)。軟件系統(tǒng)所承擔(dān)的交易的商業(yè)價值極高,系統(tǒng)的安全性非常重要。
·可擴展性(Scalable)。軟件必須能夠在用戶的使用率、用戶的數(shù)目增加很快的情況下,保持合理的性能。只有這樣,才能適應(yīng)用戶的市場擴展得可能性。
·可定制化(Customizable)。同樣的一套軟件,可以根據(jù)客戶群的不同和市場需求的變化進(jìn)行調(diào)整。
·可擴展性(Extensible)。在新技術(shù)出現(xiàn)的時候,一個軟件系統(tǒng)應(yīng)當(dāng)允許導(dǎo)入新技術(shù),從而對現(xiàn)有系統(tǒng)進(jìn)行功能和性能的擴展
·可維護(hù)性(Maintainable)。軟件系統(tǒng)的維護(hù)包括兩方面,一是排除現(xiàn)有的錯誤,二是將新的軟件需求反映到現(xiàn)有系統(tǒng)中去。一個易于維護(hù)的系統(tǒng)可以有效地降低技術(shù)支持的花費
·客戶體驗(Customer Experience)。軟件系統(tǒng)必須易于使用。
·市場時機(Time to Market)。軟件用戶要面臨同業(yè)競爭,軟件提供商也要面臨同業(yè)競爭。以最快的速度爭奪市場先機非常重要。
在軟件設(shè)計界曾經(jīng)有很多人認(rèn)為功能是最為重要的,形式必須服從功能。與此類似地,在建筑學(xué)界,現(xiàn)代主義建筑流派的開創(chuàng)人之一Louis Sullivan也認(rèn)為形式應(yīng)當(dāng)服從于功能(Forms follows function)。
幾乎所有的軟件設(shè)計理念都可以在浩如煙海的建筑學(xué)歷史中找到更為遙遠(yuǎn)的歷史回響。最為的,當(dāng)然就是模式理論和XP理論。
架構(gòu)的目標(biāo)是什么
正如同軟件本身有其要達(dá)到的目標(biāo)一樣,架構(gòu)設(shè)計要達(dá)到的目標(biāo)是什么呢?一般而言,軟件架構(gòu)設(shè)計要達(dá)到如下的目標(biāo):來源:www.examda.com
·可靠性(Reliable)。軟件系統(tǒng)對于用戶的商業(yè)經(jīng)營和管理來說極為重要,因此軟件系統(tǒng)必須非??煽?。
·安全行(Secure)。軟件系統(tǒng)所承擔(dān)的交易的商業(yè)價值極高,系統(tǒng)的安全性非常重要。
·可擴展性(Scalable)。軟件必須能夠在用戶的使用率、用戶的數(shù)目增加很快的情況下,保持合理的性能。只有這樣,才能適應(yīng)用戶的市場擴展得可能性。
·可定制化(Customizable)。同樣的一套軟件,可以根據(jù)客戶群的不同和市場需求的變化進(jìn)行調(diào)整。
·可擴展性(Extensible)。在新技術(shù)出現(xiàn)的時候,一個軟件系統(tǒng)應(yīng)當(dāng)允許導(dǎo)入新技術(shù),從而對現(xiàn)有系統(tǒng)進(jìn)行功能和性能的擴展
·可維護(hù)性(Maintainable)。軟件系統(tǒng)的維護(hù)包括兩方面,一是排除現(xiàn)有的錯誤,二是將新的軟件需求反映到現(xiàn)有系統(tǒng)中去。一個易于維護(hù)的系統(tǒng)可以有效地降低技術(shù)支持的花費
·客戶體驗(Customer Experience)。軟件系統(tǒng)必須易于使用。
·市場時機(Time to Market)。軟件用戶要面臨同業(yè)競爭,軟件提供商也要面臨同業(yè)競爭。以最快的速度爭奪市場先機非常重要。

