• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    軟件工程思想(5)

    發布: 2008-9-17 09:58 | 作者: 不詳 | 來源: 測試時代采編 | 查看: 28次 | 進入軟件測試論壇討論

    領測軟件測試網
    關鍵字:軟件工程思想

    第五章  系 統 設 計

    系統設計是把需求轉化為軟件系統的最重要的環節。系統設計的優劣在根本上決定了軟件系統的質量。就象“一切帝國主義都是紙老虎”那樣可以斷定“差的系統設計必定產生差的軟件系統!彼晕覀円ΡWC系統設計“根正苗紅”,把一切左傾、右傾的設計思潮消滅在萌芽狀態。

    Windows NT的一位系統設計師擁有8輛法拉利跑車,讓Microsoft公司的一些程序員十分眼紅。但你只能羨慕而不能憤恨,因為并不是每個程序員都有本事成為復雜軟件系統的設計師。系統設計要比純粹的編程困難得多。即便你清楚客戶的需求,卻未必知道應該設計什么樣的軟件系統——既能掙最多的錢又能讓客戶滿意!疤煜挛骱,最美是杭州”,千年前蘇東坡大學士對西湖精采絕倫的系統設計,使杭州榮升為“天堂”,讓后人只剩下贊嘆和破壞的份了。

    本章講述系統設計的四方面內容:體系結構設計、模塊設計、數據結構與算法設計、用戶界面設計。如果將軟件系統比喻為人體,那么:

    (1)體系結構就如同人的骨架。如果某個家伙的骨架是猴子,那么無論怎樣喂養和美容,這家伙始終都是猴子,不會成為人。

    (2)模塊就如同人的器官,具有特定的功能。人體中最出色的模塊設計之一是手,手只有幾種動作,卻能做無限多的事情。人體中最糟糕的模塊設計之一是嘴巴,嘴巴將最有價值但毫無相干的幾種功能如吃飯、說話、親吻混為一體,使之無法并行處理,真乃人類之不幸。

    (3)數據結構與算法就如同人的血脈和神經,它讓器官具有生命并能發揮功能。數據結構與算法分布在體系結構和模塊中,它將協調系統的各個功能。人的耳朵和嘴巴雖然是相對獨立的器官,但如果耳朵失聰了,嘴巴就只能發出“啊”“嗚”的聲音,等于喪失了說話的功能(所以聾子天生就是啞巴),可人們卻又能用手勢代替說話。人體的數據結構與算法設計真是十分神奇并且十分可笑。

    (4)用戶界面就如同人的外表,最容易讓人一見鐘情或一見惡心。象人類追求心靈美和外表美那樣,軟件系統也追求(內在的)功能強大和(外表的)界面友好。但隨著生活節奏的加快,人們已少有興趣去品味深藏不露的內在美。如果把Unix系統比作是健壯的漢子和婦人,那么Windows系統就象嫵媚的小白臉和狐貍精。想不到Windows系統竟然能興風作浪,占去大半市場。有鑒于此,我們應該鼓勵女士多買化妝品(男士付錢)以獲得更好的界面。

    在進行系統設計時,我們要深情地關注軟件的質量因素,如正確性與精確性、性能與效率、易用性、可理解性與簡法性、可復用性與可擴充性等等。即使把系統設計做好了,也并不意味著就能產生好的軟件系統。在程序設計、測試、維護等環節還要做大量的工作,無論哪個環節出了差錯,都會把好事搞砸了。據說上帝把所有的女士都設計成天使,可是天使們在下凡時有些雙腳先著地,有些臉先著地。上帝的這一疏忽讓很多女孩傷透了心。我們在開發軟件時,一定要吸取這個教訓。

     

    5.1  體系結構設計

     

    楊叔子院子曾這樣指點其弟子:

    文學中有科學,音樂中有數學,漫畫中有現代數學的拓撲學。漫畫家可以“幾筆”就把一個人畫出來,不管怎么美化或丑化,就是活像。為什么?因為那“幾筆”不是別的,而是拓撲學中的特征不變量,這是事物最本質的東西。

    體系結構是軟件系統中最本質的東西:

    (1)體系結構是對復雜事物的一種抽象。良好的體系結構是普遍適用的,它可以高效地處理多種多樣的個體需求。一提起“房子”,我們的腦中馬上就會出現房子的印象(而不是地洞的印象)!胺孔印笔侨藗儗ψ∷藁蜣k公環境的一種抽象。不論是辦公樓還是民房,同一類建筑物(甚至不同類的建筑物)之間都具有非常相似的體系結構和構造方式。如果13億中國人民每個人都要用特別的方式構造奇異的房子,那么960萬平方公里的土地將會變得千瘡百孔,終日不得安寧。

    (2)體系結構在一定的時間內保持穩定。只有在穩定的環境下,人們才能干點事情,社會才能發展?茖W告訴我們,宇宙間萬物無時無刻不在運動、飛行。由于我們的生活環境在地球上保持相對穩定,以致于我們可以無憂無慮地吃飯和睡覺,壓根就意識不到自己是活生生的導彈。軟件開發最怕的就是需求變化,但“需求會發生變化”是個無法逃避的現實。人們希望在需求發生變化時,最好只對軟件做些皮皮毛毛的修改,可千萬別改動軟件的體系結構。就如人們對住宿的需求也會變動,你可以經常改變房間的裝璜和擺設,但不會在每次變動時都要去折墻、拆柱、挖地基。如果當需求發生變化時,程序員不得不去修改軟件的體系結構,那么這個軟件的系統設計是失敗的。

    良好的體系結構意味著普適、高效和穩定。本節將論述兩種非常通用的軟件體系結構:層次結構和客戶機/服務器(Client/Server)結構。

     

    5.1.1 層次結構

    層次結構表達了這么一種常識:有些事情比較復雜,我們沒法一口氣干完,就把事情分為好幾層,一層一層地去做。高層的工作總是建立在低層的工作之上。層次關系主要有兩種:上下級關系和順序相鄰關系。

    一、上下級關系的層次結構

    我們從小學一直讀到博士研究生畢業,要讀20多年,可以分為五個層次。而范進的知識結構只有兩層:“私塾”和“秀才”,但讀了五十多年,如圖5.1所示。一般地處于較高層次的學生應該懂得所有低層次的知識,而處于低層次學生無法懂得所有高層次的知識。圖5.1的層次結構存在上下級關系,如同在軍隊中,上級可以命令下級,而下級不能命令上級。如果把圖5.1的層次結構當成是一個軟件系統的結構,那么上層子系統可以使用下層子系統的功能,而下層子系統不能夠使用上層子系統的功能。

    二、順序相鄰關系的層次結構

    順序相鄰關系的層次結構表明通訊只能在相鄰兩層之間發生,信息只能被一層一層地順序傳遞。這種層次結構的經典之作是計算機網絡的OSI參考模型,如圖5.2所示。為了減少設計的復雜性,大多數網絡都按層(Layer)或級(Level)的方式組織。每一層的目的都是向它的上一層提供一定的服務,而把如何實現這一服務的細節對上一層加以屏蔽。一臺機器上的第n層與另一臺機器上的第n層進行對話。通話的規則就是第n層的協議。數據不是從一臺機器的第n層直接傳送到另一臺機器的第n層。發送方把數據和控制信息逐層向下傳遞。最低層是物理介質,它進行實際的通訊。接收方則將數據和控制信息逐層向上傳遞。

    每一對相鄰層之間都有接口。接口定義了下層提供的原語操作和服務。當網絡設計者在決定一個網絡應包含多少層,每一層應當做什么的時候,其中很重要的工作是在相鄰層之間定義清晰的接口。接口可以使得同一層能輕易地用某一種實現(Implementation)來替換另一種完全不同的實現(如用衛星信道來代替所有的電話線),只要新的實現能向上層提供同一組服務就可以了。[Tanenbaum 1998]

     

    小 學 (5-6年)
     
     

     

    碩 士(2-3年)
     
                                               

                                                考上“舉人”時已五十多歲了

    本 科(4年)
     
                                                復習報考“舉人”用了幾十年

    中 學(6年)
     
    私 塾
     
    秀 才
     
    博 士(3-4年)
     
     

     

     

     

     

       圖5.1(a)從小學讀到博士存在的五個學習階段         圖5.1(b)范進的知識結構

     

    數據鏈路層
     
    網絡層
     
    傳輸層
     
    會話層
     
    表示層
     
    應用層
     
    數據鏈路層
     
    網絡層
     
    傳輸層
     
    會話層
     
    表示層
     
    應用層
     
    物理層
     
    舉人
     

    A


     

    B


     
     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    物理層
     
    圖5.2  計算機網絡的OSI參考模型

     

    三、其它的層次結構

    目前在大型商業應用軟件系統中還流行一種包含中間件(Middleware)的層次結構,如圖5.3所示[Jacobson 1997]。中間件支持與平臺無關的分布式計算,可以用DCOM和CORBA對象來實現。

     

     

     

    Middleware
     
    Business-specific Components
     
    Application Systems
     
     

     

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: 軟件工程 思想

    41/41234>

    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>