影響軟體架構的因素

來源:果殼範文吧 2.72W

質量屬性是軟體架構的一個重要方面,而質量屬性中也包含了時間和情感的因素。

影響軟體架構的因素
影響軟體架構的因素

公元前1世紀,古羅馬御用工程師、建築師Marcus Vitruvius Pollio在其《建築十書》中最早提出了建築的三要素“堅固、實用、美觀”。英文的表述為Firmitas,Utilitas, Venustas,通俗的說也就是Solid,Useful, Beautiful。軟體架構同樣需要具備這三個要素,用計算機的術語表述就是:

Firmness: Achieve asatisfactory level of freedom from damaging failure.

Commodity: Utility toaccomplish the tasks it is purported to be for.

Delight: Pleasure in use.

馬爾庫斯·維特魯威·波利奧是古羅馬的作家、建築師和工程師,他的創作時期在公元前1世紀,他的生平不詳,連他的名字馬爾庫斯和姓波利奧也只是由伐溫提努斯提到過,他的生平年代主要是根據他的作品確定的`。

時至今日,這三個要素仍然是成功軟體設計的重要組成部分。這三個方面談的都是架構的質量屬性。如何理解呢?

無論從架構設計還是工程實施的角度,時間都是軟體設計的重要因素。架構在時間推進的過程中演化,其實現在一個個PDCA迴圈中迭代,軟體也在與使用者的磨合中生死。

統計質量控制 (SQC) 之父,沃特·阿曼德·休哈特在1931年就指出過質量評價的主觀性——質量包含了人對客觀現實的思考,感受,感知。

"There are two common aspects of quality: One of them has to do with the consideration of the quality of a thing as an objective reality independent of the existence of other has to do with what we think, feel, or sense as a result of the objective reality. In other words, there is a subjective side of quality." —W.A. Shewart, 1931

2016年9月份《美國計算機學會通訊》上刊登了Peter J. Denning博士的文章《Software Quality》,介紹了軟體質量評價從程式碼視角向用戶視角的演化,很好的詮釋了軟體質量的Firmness,Commodity和Delight三個要素。

軟體質量的評價已經明顯的從上世紀70年代程式碼視角的評估演化到今天使用者視角的評估。——Peter J. Denning博士

1.1 程式碼視角

根據Peter J. Denning博士的觀點,傳統的軟體質量評價體系都是從程式碼視角出發的。其基本原則是制定客觀的測量指標,監測軟體的所有屬性,量化軟體本身。比如我們經常說的UT覆蓋率,TA覆蓋率,程式碼靜態檢查(Sonar)指標,在軟體設計開發過程中制定詳細的規範,ISO 9216,ISO-25010:2011等等。這些軟體質量評價方法一般都包括correctness,reliability,integrity,usability,efficiency,maintainability,testability,interoperability,flexibility,reusability,portability,clarity,modifiability,documentation,resilience,understandability,validity,functionality,generality,economy等指標,每一個指標都可以展開成一套程式設計師必須遵循的規則。沒人敢說軟體質量是一件簡單的事情!

1.2 使用者視角

從使用者的角度看,使用者不會問“軟體是不是有很好的架構並且通過了ISO9126標準?”,使用者關心的是“軟體是否能夠幫助完成我工作?”,“我可以依靠它嗎?”。這說明使用者體驗的滿意度影響到使用者對軟體質量的評價。Peter J. Denning博士在文章中提出了6個級別來評估使用者視角的軟體質量。

Level -1: No trust. 使用者不信任該軟體。軟體可能包含很多bug、引起系統崩潰或帶有惡意外掛。

Level 0: Cynical satisfaction.無忠誠度的滿意。使用者不信任軟體提供商的所有宣告。

Level 1: Software fulfills allbasic promises.軟體滿足所有基本承諾。ISO軟體量標準定義就在這個級別。

Level 2: Software fits environment.軟體適應使用者環境。什麼意思呢?軟體提高了使用者完成重要工作的能力。

Level 3: Software produces nonegative consequences.軟體不會有任何負面影響。這包括兩方面:第一,軟體能夠處理使用者沒能預見的錯誤場景;第二,軟體可以滿足使用者未來的需求。

Level 4: Software delights.軟體愉悅。這個級別的產品遠遠超出使用者的期望,併產生新的,意想不到的,有時令人驚訝的積極作用。使用者在該軟體上收穫了極大的愉悅並願意推廣給其他的使用者。使用者感覺軟體設計者是理解了使用者的真實世界並認為軟體改善了他們的生活。

文獻《Software Quality Models and Philosophies》總結軟體質量具備以下兩個屬性:

The meaning and definition of software quality:

Conformance to specification:Quality that is defined as a matter of products and services whose measurable characteristics satisfy a fixed specification ? that is, conformance to an inbeforehand defined specification.

Meeting customer needs: Quality that is identified independent of any measurable characteristics. Thatis,quality is defined as the products or services capability to meet customer expectations ? explicit or not.

從上面的定義可以很容易推匯出軟體開發過程中常用的兩個重要質量保證框架:DoD和CoS。正如Peter J. Denning博士所說:最高級別的軟體愉悅出現在客戶和開發者之間美好的互動關係中。

熱門標籤