Java, Only Java!

          統(tǒng)計(jì)

          留言簿(20)

          積分與排名

          好友空間

          文檔技巧

          閱讀排行榜

          評(píng)論排行榜

          《Java大學(xué)教程》—第9章 軟件質(zhì)量

          軟件質(zhì)量:可維護(hù)性、可靠性、健壯性、可用性。

          9.3 可維護(hù)性
          系統(tǒng)維護(hù)(maintaining)是指根據(jù)需求的變化更新現(xiàn)有系統(tǒng)的過(guò)程

          9.3.1    封裝的重要性
          連鎖反應(yīng):對(duì)系統(tǒng)某一部分的改變可能會(huì)對(duì)系統(tǒng)的其余部分產(chǎn)生影響,導(dǎo)致系統(tǒng)錯(cuò)誤。
          面向?qū)ο蟮姆庋b原則保證了面向蝗程序易于維護(hù),因?yàn)榉庋b原則減弱了連鎖反應(yīng)的影響:
          每個(gè)對(duì)象都應(yīng)該在對(duì)象內(nèi)部包含工作的全部細(xì)節(jié);所有的數(shù)據(jù)都應(yīng)該隱藏在對(duì)象內(nèi)部;保證對(duì)象的任何改變都不會(huì)影響到系統(tǒng)的其余部分。

          9.3.2    文檔
          在開(kāi)發(fā)面向?qū)ο蟪绦虻臅r(shí)候,設(shè)計(jì)文檔應(yīng)該包含以下內(nèi)容:
          *    完整的類圖
          *    清晰的方法定義(參數(shù)和返回類型,必要時(shí)包含偽代碼)

          代碼內(nèi)文檔應(yīng)當(dāng)包含以下信息:
          *    用以描述代碼含義的注釋信息
          *    有意義的數(shù)據(jù)名稱
          *    用常量替換固定的數(shù)字
          *    一致清晰的縮排格式

          9.3.3    JavaDoc
          常用標(biāo)簽:@author, @version, @param, @return

          9.4        可靠性
          編譯時(shí)錯(cuò)誤(compile-time error):沒(méi)有按照語(yǔ)法規(guī)則編寫(xiě)合法的程序。
          運(yùn)行時(shí)錯(cuò)誤(run-time error):程序沒(méi)有完成指定的工作。可能是需求不符,可能是邏輯錯(cuò)誤,或者兩者兼而有之。
          測(cè)試錯(cuò)誤:從單元測(cè)試開(kāi)始,然后進(jìn)行集成測(cè)試。

          9.4.1    單元測(cè)試(unit testing,測(cè)試獨(dú)立的類)
          不要在原始類中添加main方法進(jìn)行測(cè)試,而是單獨(dú)構(gòu)造一個(gè)包含main方法的類稱為原始類的驅(qū)動(dòng)器(driver),
          這個(gè)驅(qū)動(dòng)器類只是完成對(duì)特定類的操作,不會(huì)干擾的類。
          如果要進(jìn)行單元測(cè)試的類依賴于其他的類,而被依賴的類當(dāng)前無(wú)法獲得,那么可以開(kāi)發(fā)一個(gè)啞元類(dummy class)用于替換無(wú)法獲得的類。
          啞元類是為了完成測(cè)試而開(kāi)發(fā)的模擬真實(shí)類的類。

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

          9.4.3    黑盒測(cè)試(black box testing)
          把測(cè)試組件看作不透明的盒子,即忽略組件的代碼細(xì)節(jié),構(gòu)造測(cè)試的輸入數(shù)據(jù)時(shí)可以分成多個(gè)等價(jià)組。

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

          9.4.5    測(cè)試日志
          測(cè)試日志是記錄系統(tǒng)開(kāi)發(fā)過(guò)程中進(jìn)行測(cè)試的文檔。

          9.5        健壯性
          一個(gè)程序意外地終止運(yùn)行被稱為崩潰(crash)。
          將組件推向極限的測(cè)試方法稱為壓力測(cè)試(stress testing)。
          當(dāng)違反規(guī)則時(shí)程序會(huì)報(bào)告異常(exception),報(bào)告異常的過(guò)程稱為拋出異常(throwing exception)。

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

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

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

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

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

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

          4。區(qū)分方法重寫(xiě)和方法重載的不同。
          多態(tài)性的實(shí)現(xiàn):方法重載和方法重寫(xiě)。
          方法重載指同一類中可以存在具有相同名稱的不同方法,通過(guò)它們的參數(shù)列表加以區(qū)分。
          方法重寫(xiě)指超類中的方法,可以在子類中重寫(xiě)。
          不同的方法的相互區(qū)分:在方法重載中通過(guò)不同的參數(shù)列表相互區(qū)分,在方法重寫(xiě)中通過(guò)隸屬的對(duì)象的不同相互區(qū)分。

          5。解釋什么是類型轉(zhuǎn)換,并描述Java中類型轉(zhuǎn)換是如何實(shí)現(xiàn)的。
          強(qiáng)制類型轉(zhuǎn)換(typecast):強(qiáng)制一個(gè)數(shù)據(jù)從一種數(shù)據(jù)類型轉(zhuǎn)換為另一種數(shù)據(jù)類型。
          通過(guò)在待轉(zhuǎn)換的數(shù)據(jù)前加一對(duì)含有新類型名稱的括號(hào)實(shí)現(xiàn)。

          6。解釋abstract和final修飾符分別應(yīng)用于類和方法時(shí)的作用。
          abstract class表示這個(gè)類為抽象類,不能創(chuàng)建對(duì)象,只能作為其他類的基類。
          abstract method表示這個(gè)方法是抽象方法,沒(méi)有實(shí)現(xiàn),子類如果要實(shí)例化,必須重寫(xiě)這個(gè)方法。
          final class表示這個(gè)類為最終類,不能被繼承。
          final method表示這個(gè)方法是最終的方法,子類不能重寫(xiě)。

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

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

          主站蜘蛛池模板: 彩票| 镇江市| 浦城县| 定南县| 尚志市| 安西县| 奇台县| 桐庐县| 民勤县| 龙游县| 灌南县| 平利县| 长子县| 名山县| 芷江| 新密市| 漾濞| 邢台县| 瑞金市| 安图县| 舒兰市| 佳木斯市| 宜春市| 松滋市| 新巴尔虎右旗| 墨竹工卡县| 定边县| 温州市| 嘉义县| 类乌齐县| 东平县| 阜平县| 怀化市| 砚山县| 灵寿县| 龙口市| 东平县| 衡阳市| 海阳市| 广宁县| 资源县|