【軟件設(shè)計】軟件架構(gòu) software architecture

Definition: Software Architecture

? the set of significant decisions about the organisation of a software system

? the selection of the structural elements and the interfaces by which the system is composed

? their behaviour as specified in the collaborations among those elements

? the composition of these structural and behavioural elements into progressively larger subsystems

? the architectural style that guides this organisation

軟件架構(gòu)是一個系統(tǒng)的草圖。軟件架構(gòu)描述的對象是直接構(gòu)成系統(tǒng)的抽象組件。各個組件之間的連接則明確和相對細致地描述組件之間的通訊。在實現(xiàn)階段,這些抽象組件被細化為實際的組件,比如具體某個類或者對象。在面向?qū)ο箢I(lǐng)域中,組件之間的連接通常用接口來實現(xiàn)。

??????? 沒蓋過房子,我想,大家都看過蓋房子吧,特別是樓房。首先,選一片地方,然后打地基,搭建樓房的架子,再慢慢刷墻,貼瓷磚等等。這個過程跟軟件架構(gòu)師是一樣的,先做出一個軟件的框架來,然后不斷完善軟件代碼。

Significant Non-Functional Requirements

Capturing Architectural Requirements

? Usability

o e.g. aesthetics and consistency in the UI.

? Reliability

o e.g. availability (the amount of system "up time"), accuracy of system calculations, and the system's ability to recover from failure.

? Performance

o e.g. throughput, response time, recovery time, start-up time, and shutdown time.

? Supportability

o e.g. testability, adaptability, maintainability, compatibility, configurability, installability, scalability, and localizability.

Common Steps in Architectural Analysis

Steps (occurs in early elaboration):

1. Identify/analyse architectural factors: requirements with impact on the architecture (esp. non-functional)

o overlaps with requirements analysis

o some identified/recorded during inception, now investigated in more detail

2. For the architectural factors, analyse alternatives and create solutions: architectural decisions

o e.g. remove requirement; custom solution; stop project; hire expert



Logical Architecture:

? The large-scale organisation of the software classes into packages, subsystems and layers.

? Logical: not concerned with networking, physical computers, or operating system processes (cf. deployment architecture)

Layer:

? Coarse-grained grouping of classes, packages, or subsystems that has cohesive responsibility for a major aspect of the system

Strict:

? Layer only calls upon the services of the layer directly below it

o e.g. a network protocol stack

Relaxed:

? A layer calls upon the services in several lower layers

o e.g. information systems






?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi閱讀 7,872評論 0 10
  • **2014真題Directions:Read the following text. Choose the be...
    又是夜半驚坐起閱讀 11,224評論 0 23
  • 我喜歡你?。?超級超級超級喜歡你! 好像年紀越大,越是說不出這種話了。喜歡的人,也越來越難碰到。 遙想多年前我還早...
    追星星的許茶茶閱讀 270評論 0 0
  • 原本以為小米會在Note這條路上持續(xù)發(fā)力,沒曾想近兩年還是保留在第一代,昔日的旗艦如今也只是千元機的水平了,價格更...
    吃撒啊等我打完發(fā)閱讀 530評論 2 0
  • 見到老師好開心哇,老師看著我們笑的好慈祥,謝謝您!給同學們?nèi)ニ土速R卡,恭喜他們上完課,什么是最重要的事情呢,讓身邊...
    葉子卷閱讀 918評論 0 3

友情鏈接更多精彩內(nèi)容