面向對象技術UML教程摘錄——第一章:軟件危機及軟件工程

<!-- /* Font Definitions */ @font-face {font-family:宋體; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} @font-face {font-family:"/@宋體"; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; mso-pagination:none; font-size:10.5pt; mso-bidi-font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:宋體; mso-font-kerning:1.0pt;} /* Page Definitions */ @page {mso-page-border-surround-header:no; mso-page-border-surround-footer:no;} @page Section1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt; mso-header-margin:36.0pt; mso-footer-margin:36.0pt; mso-paper-source:0;} div.Section1 {page:Section1;} /* List Definitions */ @list l0 {mso-list-id:1205483886; mso-list-type:hybrid; mso-list-template-ids:756721068 -260126534 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;} @list l0:level1 {mso-level-start-at:2; mso-level-text:(%1); mso-level-tab-stop:58.5pt; mso-level-number-position:left; margin-left:58.5pt; text-indent:-37.5pt;} @list l0:level2 {mso-level-number-format:alpha-lower; mso-level-text:"%2/)"; mso-level-tab-stop:63.0pt; mso-level-number-position:left; margin-left:63.0pt; text-indent:-21.0pt;} @list l0:level3 {mso-level-number-format:roman-lower; mso-level-tab-stop:84.0pt; mso-level-number-position:right; margin-left:84.0pt; text-indent:-21.0pt;} @list l0:level4 {mso-level-tab-stop:105.0pt; mso-level-number-position:left; margin-left:105.0pt; text-indent:-21.0pt;} ol {margin-bottom:0cm;} ul {margin-bottom:0cm;} -->

1       一個軟件系統的開發可以從兩個方面進行刻畫:

              一方面:軟件開發過程,從軟件需求、總體設計、詳細設計、代碼實現、測試到最終產品的提交,以及後期的軟件維護及再開發過程,這方面要求軟件開發具有連續性,開發個階段得到的產品要求在邏輯上相互一致;

              另一方面:軟件開發過程中所設計的各種資源,它們包括參與開發的各種工作人員、硬件資源和軟件資源,這些資源在使用過程中需要進行協調和管理。

              正是這兩個方面之間的相互作用,形成了完整的軟件開發活動。目前軟件開發中存在的問題,究其原因,往往是由於在這兩個方面上控制不當,或協調不一致造成的。

 

(2)        軟件工程的目的:

要在規定的時間、規定的開發費用內開發出滿足用戶需求的高質量的軟件系統。這裏所說的高質量不僅是指錯誤率低,還包括好用、易用、可移植、易維護等要求。

 

       3 抽象:

              一般說來,抽象又可以分爲過程抽象和數據抽象。

              過程抽象是廣泛使用的一種抽象形式。任何一個有明確功能的操作都可被使用者作爲單個的實體看待,儘管這個操作實際上可能由一系列更低級的操作來完成。在實際應用中,將處理分解成子步驟是對付複雜性的一個基本方法。

              數據抽象定義了數據類型和施加於該類型上的操作,並限定了數據類型的值只能通過這些操作來修改和讀取。數據抽象是一個強有力的抽象機制,是控制複雜性的一個重要方法。

 

       4 )模塊:

              一般地,對模塊的要求是高內聚( cohesion ),低耦合( coupling )。

              高內聚:是指在一個模塊中應儘量多地彙集邏輯上相關的計算資源。

              低耦合:指的是模塊之間的相互作用應儘量少。

      

       5 )結構化方法和麪向對象方法

              結構化方法和麪向對象方法對現實世界採用了不同的映射方法。

              在結構化方法中,現實世界被映射爲功能的集合;

              在面向對象方法中,現實世界中的實體及其相互關係被映射爲對象與對象間的關係,實體之間的相互作用被映射爲對象間的消息發送,以及其他類似的各種映射關係。

也就是說,面向對象的模型對現實世界的映射更直觀、更有對應關係。

 

       6 )類和對象

                類是靜態的,類的語義和類之間的關係在程序執行前就已經定義好了。

                對象是動態的,對象是在程序執行時被創建和刪除的。


       7 )封裝( encapsulation

                封裝提供了兩種保護。首先封裝可以保護對象,防止用戶直接存取對象的內部細節;其次,封裝也保護了客戶端,防止對象實現部分的變化可能產生的副作用,即實現部分的改變不會影響到相應客戶端的改變。


       8 )多態

                多態屬於運行時的問題,而重載是編譯時的問題。


       9 )消息( message

                消息就是向對象發出的服務請求。它包含了提供服務的對象標識、服務標識,輸入信息和回答信息等。

                面向對象方法的一個原則就是通過消息進行對象之間的通信。消息可以包括同步消息和異步消息,如果消息是異步的,則一個對象發送消息後,就繼續自己的活動,不等待消息接收者返回控制,而函數調用往往是同步的,消息的發送者要等待接收者返回。

發佈了119 篇原創文章 · 獲贊 8 · 訪問量 33萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章