Java, Only Java!

          統計

          留言簿(20)

          積分與排名

          好友空間

          文檔技巧

          閱讀排行榜

          評論排行榜

          《Java大學教程》—第9章 軟件質量

          軟件質量:可維護性、可靠性、健壯性、可用性。

          9.3 可維護性
          系統維護(maintaining)是指根據需求的變化更新現有系統的過程

          9.3.1    封裝的重要性
          連鎖反應:對系統某一部分的改變可能會對系統的其余部分產生影響,導致系統錯誤。
          面向對象的封裝原則保證了面向蝗程序易于維護,因為封裝原則減弱了連鎖反應的影響:
          每個對象都應該在對象內部包含工作的全部細節;所有的數據都應該隱藏在對象內部;保證對象的任何改變都不會影響到系統的其余部分。

          9.3.2    文檔
          在開發面向對象程序的時候,設計文檔應該包含以下內容:
          *    完整的類圖
          *    清晰的方法定義(參數和返回類型,必要時包含偽代碼)

          代碼內文檔應當包含以下信息:
          *    用以描述代碼含義的注釋信息
          *    有意義的數據名稱
          *    用常量替換固定的數字
          *    一致清晰的縮排格式

          9.3.3    JavaDoc
          常用標簽:@author, @version, @param, @return

          9.4        可靠性
          編譯時錯誤(compile-time error):沒有按照語法規則編寫合法的程序。
          運行時錯誤(run-time error):程序沒有完成指定的工作。可能是需求不符,可能是邏輯錯誤,或者兩者兼而有之。
          測試錯誤:從單元測試開始,然后進行集成測試。

          9.4.1    單元測試(unit testing,測試獨立的類)
          不要在原始類中添加main方法進行測試,而是單獨構造一個包含main方法的類稱為原始類的驅動器(driver),
          這個驅動器類只是完成對特定類的操作,不會干擾的類。
          如果要進行單元測試的類依賴于其他的類,而被依賴的類當前無法獲得,那么可以開發一個啞元類(dummy class)用于替換無法獲得的類。
          啞元類是為了完成測試而開發的模擬真實類的類。

          9.4.2    集成測試(integrating testing,測試組成應用的所有的類)
          在完成程序中每個類的獨立測試后,需要將它們組合,進行綜合測試,目的是保證類之間的接口可以正常地工作。
          為了進行接口測試需要對所有類進行重編譯。防止類間的接口不一致。

          9.4.3    黑盒測試(black box testing)
          把測試組件看作不透明的盒子,即忽略組件的代碼細節,構造測試的輸入數據時可以分成多個等價組。

          9.4.4    白盒測試(white box testing)
          把測試組件看作透明的盒子,構造測試集,盡可能覆蓋組件所有可能的執行路徑。

          9.4.5    測試日志
          測試日志是記錄系統開發過程中進行測試的文檔。

          9.5        健壯性
          一個程序意外地終止運行被稱為崩潰(crash)。
          將組件推向極限的測試方法稱為壓力測試(stress testing)。
          當違反規則時程序會報告異常(exception),報告異常的過程稱為拋出異常(throwing exception)。

          9.6        可用性(usability)
          程序的可用性是指應用程序的使用者與程序交互過程的容易度。

          9.6.1    文本格式化
          轉義符:\n, \t, \", \', \\

          9.6.2    圖形用戶界面
          是 友好的,易于用戶操作的。

          自測題:
          1。解釋什么是繼承?
          繼承是指在類之間共享屬性和方法。繼承關系是一種層次關系,也被稱為a-kind-of關系。

          2。在UML類圖中如何描述繼承關系?
          用空心的三角形表示繼承關系,三角形的尖指的是基類。

          3。在Java中,使用哪個關鍵字聲明一個類是另一個類的子類?
          class 子類 extends 基類,用extends關鍵字代表繼承關系。

          4。區分方法重寫和方法重載的不同。
          多態性的實現:方法重載和方法重寫。
          方法重載指同一類中可以存在具有相同名稱的不同方法,通過它們的參數列表加以區分。
          方法重寫指超類中的方法,可以在子類中重寫。
          不同的方法的相互區分:在方法重載中通過不同的參數列表相互區分,在方法重寫中通過隸屬的對象的不同相互區分。

          5。解釋什么是類型轉換,并描述Java中類型轉換是如何實現的。
          強制類型轉換(typecast):強制一個數據從一種數據類型轉換為另一種數據類型。
          通過在待轉換的數據前加一對含有新類型名稱的括號實現。

          6。解釋abstract和final修飾符分別應用于類和方法時的作用。
          abstract class表示這個類為抽象類,不能創建對象,只能作為其他類的基類。
          abstract method表示這個方法是抽象方法,沒有實現,子類如果要實例化,必須重寫這個方法。
          final class表示這個類為最終類,不能被繼承。
          final method表示這個方法是最終的方法,子類不能重寫。

          編程練習:代碼附件
          1.    QualityQ2.java
          2.    Reactor.java
          3.    EscapeSequence.java
          4.    FindCost3.java
          b)    說實話,這么簡單的輸出,真不知道還需要怎樣改善信息的布局。       

          posted on 2016-08-30 21:37 zYx.Tom 閱讀(173) 評論(0)  編輯  收藏 所屬分類: 1.Java世界

          主站蜘蛛池模板: 乌鲁木齐县| 漳平市| 若羌县| 吉林市| 杭锦后旗| 秦皇岛市| 陆丰市| 色达县| 新竹市| 四会市| 儋州市| 福贡县| 日喀则市| 黔西| 扎鲁特旗| 多伦县| 托里县| 兴文县| 湖北省| 平阳县| 甘德县| 新宾| 河池市| 邵武市| 肃宁县| 宜良县| 海阳市| 永济市| 克拉玛依市| 上林县| 南和县| 南宁市| 嘉峪关市| 布拖县| 乌审旗| 定远县| 汉源县| 攀枝花市| 阜康市| 新营市| 玛沁县|