哈工大软件构造2022笔记(持续更新----1)
Class 1
第0節的主要內容是講課程要求:
實驗占35分,個人博客占5分,期末考試占60分(閉卷)
在cms中加入課程:鏈接在老師發的ppt里面有,這里就不展示了。
實驗要求:
在Java+Eclipse/IntelliJ IDEA+Git環境下進行,通過GitHub Classroom提交
在GitHub Classroom 里,作業deadline都設定為周日晚上23:55
TA:助教(teaching assistant)
Class2
第1節的內容主要是講軟件工程的要求和評價標準
軟件是什么?
在百度上的解釋是這樣的:
軟件(中國大陸及香港用語,臺灣稱作軟體,英文:software)是一系列按照特定順序組織的計算機數據和指令的集合。
簡單來說,我們可以通過下面這張圖進行說明:
軟件是用戶和硬件之間進行交互的部分,相比起硬件來說,它更加靠近用戶層。
軟件系統的基礎是它所處的硬件基礎和技術環境。
?多維軟件視角
?我們評價軟件可以從以下幾個維度來看:
? ? ? ? 1.Build-time View
? ? ? ? ? ? ? ? (1)? ?Build-time, moment, and code-level view
? ? ? ? ? ? ? ? (2) Build-time, period, and code-level view ?
? ? ? ? ? ? ? ? (3)?Build-time, moment, and component-level view
? ? ? ? ? ? ? ? (4) Build-time, period, and component-level view
?????? 2.Run-time View
? ? ? ? ? ? ? ? ??(5)? ?Run-time, moment, and code-level view
? ? ? ? ? ? ? ? ??(6)? ?Run-time, period and code-level view
??????????????????(7)? ?Run-time, moment, and component-level view
? ? ? ? ? ? ? ? ??(8)? ?Run-time, period, and component-level view
上面這幾個視角只是提供一種思維,就是在程序構建的各個階段,各個層次都需要注意相關的問題。不是說需要將上面的內容完全記住,只是了解即可。
軟件系統的質量標準
?可以從以下十個層面進行解釋:
1.正確性(Correctness)
????????按照事先的“規約”執行(滿足需求)
2.魯棒性(Robustness)
? ? ? ? 軟件能夠良好地應對異常情況
3.擴展性(Extendibility)
? ? ? ? 如果對程序的規約有所變化,程序應該能夠良好地處理
4.可復用性(Reusability)
? ? ? ? 避免“重復造輪子”,已經完成的任務可以在其他合適的地方使用(比如java中的庫)
5.兼容性(Compatibility )
? ? ? ? 使得不同的軟件系統之間能夠良好地集成
6.性能(Efficiency)
? ? ? ? 使得軟件運行效率較高(前提是保證正確性)
7.可移植性(Portability)
? ? ? ? 軟件能夠在不同技術環境(硬件環境、操作系統)之間遷移
8.易用性(Ease of use )
? ? ? ? 用戶能夠輕松地使用軟件(希望以后設計者能夠加強這方面,作者已經被各種復雜的軟件折磨多年了)
9.功能性(Functionality)
? ? ? ? 軟件能夠擁有更多、更加強大的功能
10.及時性(Timeliness)
? ? ? ? 軟件能夠及時迎合市場的需要
軟件構造的五個關鍵質量目標
?1.可理解性(Understandability )
? ? ? ? ?代碼風格良好(注釋、變量命名、代碼布局等等)
? ? ? ? ?項目架構清晰
2.可復用性(Reusability )
? ? ? ? 簡單來說就是已經完成的任務不必再次完成,而是可以復用之前的結果
? ? ? ? 實現手段包括:接口與實現分類、繼承、重載、重寫等等
3.可維護性和適應性(Maintainability and Adaptability)
? ? ? ? 就是指軟件能夠根據需求被修改、糾正、更新的能力
? ? ? ? 實現手段包括:模塊化設計、OO設計模式等
4.魯棒性(Robustness )
? ? ? ? 魯棒性大家應該已經很熟悉了,這里不多介紹
? ? ? ? 實現手段包括:異常處理機制、防御性編程等
?5.效率(Performance)
? ? ? ? 提高軟件性能和效率
? ? ? ? 實現手段包括:代碼優化、空間復雜性、時間復雜性控制等等
總結
以上是生活随笔為你收集整理的哈工大软件构造2022笔记(持续更新----1)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 高斯消元~
- 下一篇: java企业通用模块_[模板风格]Wor