哈工大软件构造第一章
1. 軟件構造過程中的多維度視圖
多維度視圖
在這里插入圖片描述
??? Moment維度關注于程序在某一個時刻的表現,而Period維度更關注于程序在一段時間內的表現;
??? Build-time維度關注程序還未被投入運行,編碼階段的表現,而Run-time維度更關注于程序運行時的表現;
??? Code-level維度關注程序的語句層面,Component-level維度更關注于一段代碼,當作一個塊觀察比如一個包、一個庫。
(1) Build-time, moment, and code-level view 關注的是源碼的組織情況,可在詞匯(源碼)、語法(抽象語法樹)、語義(類圖)三個層面分別分析。
(2) Build-time, period, and code-level view 關注的是代碼的變化(Code churn代碼變化)
(3) Build-time, moment, and component-level view 關注的是包/庫,而且是靜態鏈接庫
(4) Build-time, period, and component-level view 關注代碼的更迭,與(2)中不同的是,這個維度下更關注文件版本的變化,而不是具體語句的變化(2中關注的是哪一行代碼被修改了)----VCS的引出
(5) Run-time, moment, and code-level view 關注的是程序在某個時間點內存中的情況,如代碼快照圖(Code Snapshot)、內存信息轉儲(Memory dump)。
(6) Run-time, period and code-level view 關注的是代碼的執行情況,執行跟蹤
(7) Run-time, moment, and component-level view 關注的也是包/庫,但卻是在代碼執行過程中的情況,如動態鏈接庫
(8) Run-time, period, and component-level view 關注的是系統的使用情況,使用日志查看
2. 視圖之間的聯系
在這里插入圖片描述
從無到有,寫出了代碼,就進入了Build-time維度,開始只是單個的沒有任何聯系的代碼文件,所以是在moment+Code-level維度,此時隨著時間的推移,代碼刪刪改改,就屬于Period+Code-level了,而代碼越寫越多成為了一個包,甚至形成了一個庫,于是就屬于moment+Component-level維度了,但是隨著時間的推移,你的庫文件由于需求的變化發生了變化,所以就屬于Period+Component-level。代碼寫好了,投入運行,進入Run-time維度,觀察的如果是某一句代碼的執行后結果,那就是moment+Code-level維度,但如果看的是代碼執行的軌跡,那就是Period+Code-level維度,而如果看的是一個庫文件的連接情況等,那就是moment+Component-level維度了,如果看的是線程或進程的執行過程,也就是通過日志等手段查看一段時間內系統都做了什么事情,那么就是Period+Component-level了。
3. 軟件構造過程中的質量因素
3.1 外部質量因素
①外部質量因素的第一個就是正確性,正確性是最重要的質量指標,在進行軟件構造時一定要按照事先定義好的規約進行,構造過程中的每一個層次都要確保正確。在進行軟件構造時,可以通過測試和調試、防御式編程、形式化方法去發現問題、改正問題。
②外部質量因素的第二個就是健壯性,健壯性是針對異常情況的處理,要確保程序在出現異常時不會崩潰。
③外部質量因素的第三個就是可擴展性,主要是關注對于軟件的規約的修改是否容易,一般規模越大的軟件的可擴展性越差,但是保留一定的可擴展性是必要的,我們需要軟件能夠應對變化。
④外部質量因素的第四個就是可復用性,指的是軟件一次開發可以多次使用,我們在開發過程中要找到不同函數、軟件之間的共性,以此來增強可復用性。
⑤外部質量因素的第五個就是兼容性,要求軟件在不同的系統之間可以相互容易地集成,在不同的系統、架構之下也可以使用軟件,這個是有一定難度的,因為不同軟件有著不同的設定、規定。
⑥外部質量因素的第六個就是性能,這一點是建立在正確性的基礎上的,必須先保證了正確性,然后再考慮性能的因素,如果無法絕對保證正確性,那么性能也是可以略作折中的。如果對一個軟件進行過多的優化,那么很可能導致這個軟件將無法在別的地方繼續使用,可復用性降低,因為對于性能的提升必然要用到一些系統的特性,所以如果將軟件性能提高最多,勢必無法移動到別的地方繼續使用。
⑦外部質量因素的第七個就是可移植性,要求軟件可以簡單地在不同的技術環境之間移植。
其實還有一些因素,但是不是非常重要了,所以就先不寫啦。
3.2 內部質量因素
內部質量因素主要指的就是代碼的可讀性、代碼量、復雜性、清晰程度。
3.3 外部內部質量因素的權衡
在正確的軟件構造開發過程中,開發者應該將不同質量因素之間如何做出折中的設計決策和標準明確地寫下來。雖然需要折中,但是正確性絕對不能折中。
?
總結
以上是生活随笔為你收集整理的哈工大软件构造第一章的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 天和流量王v4.69官方版-2011最新
- 下一篇: NPDP产品经理小知识-团队发展的五个阶