天天看點

《UML及模組化》讀書筆記

《UML及模組化》讀書筆記

(一)面向對象技術概述

一、軟體及其特性

  軟體是計算機系統的思維中樞,是軟體産業的核心。作為資訊技術的靈魂——計算機軟體,在現代社會中起着極其重要的作用。

概念:

  軟體是計算機系統操作有關的程式、規程、規則及其文檔和資料的統稱。

  程式是按事先設計的功能和性能要求執行的語句序列。資料是程式所處理資訊的資料結構。文檔是與程式開發、維護和使用相關的各種圖文資料,如規範說明書、設計說明書、使用者手冊等。

  軟體由兩部分組成:一是機器可執行的程式和有關的資料;二是與軟體開發、運作、維護、使用和教育訓練有關的文檔。

二、軟體的特點

  軟體是一種邏輯産品而不是實物産品,軟體功能的發揮依賴于硬體和軟體的運作環境,沒有計算機相關硬體的支援,軟體毫無實用價值。

  1.軟體固有的特性(複雜性、抽象性、依賴性、軟體的使用特性)

  2.軟體的生産特性(軟體的開發特性、軟體産品的形式特性、軟體的維護特性)

  

三、軟體危機

  軟體危機是指計算機軟體的開發和維護過程中所遇到的一系列嚴重問題。

  1.軟體危機的突出表現

   a.軟體生産率低。

   b.軟體産品常常與使用者要求不一緻。

   c.軟體規模的增長。

   d.不可維護性突出。

   e.軟體文檔不完整。

  2.産生軟體危機的原因

   a.軟體獨有的特點給開發和維護帶來困難。

   b.軟體人員的錯誤認識。

   c.軟體生産技術進步緩慢。

   d.軟體開發工具自動化程式低。

四、軟體工程的目标

  軟體工程的目标是基于軟體項目目标的成功實作而提出的,主要展現在以下幾方面:

  1.軟體開發成本較低;

  2.軟體功能能夠滿足使用者的需求;

  3.軟體性能較好;

  4.軟體可靠性高;

  5.軟體易于使用、維護和移植;

  6.能按時完成開發任務,并及時傳遞使用。

  在實際開發中,企圖讓以上幾個品質目标同時達到理想的程度往往是不現實的。

五、軟體工程學研究範疇

  軟體工程學是研究軟體開發過程、開發方法、工程開發技術和工具,指導軟體生産和管理的一門綜合性的應用學科。根據研究範疇,軟體工程學分成軟體開發技術與軟體工程管理兩個方面。軟體開發技術又可分為軟體開發方法、軟體工具和軟體工程環境三方面。軟體工程管理又可分為軟體管理學、軟體經濟學和軟體産權保護。

六、定義軟體品質的主要特性:正确性、可靠性、效率、完整性、可用性、風險性、可了解性、可維修性、靈活性、可測試性、可移植性、可重用性、可運作性。

七、控制軟體複雜性的基本方法

  1.推遲實作

  2.逐漸求精

  3.抽象

  4.資訊隐蔽

  5.子產品化

八、面向對象領域中的基本概念

  (需了解的有:對象、類、執行個體、封裝、繼承、消息、關聯、多态性、永久對象、主動對象)

(二)軟體模組化和軟體開發過程

  引言:模型是某個事物的抽象,其目的是在建構這個事物之前先來了解它。因為模型忽略了那些非本質的細節,這樣有利于更好地了解和表示事物。

一、概念

  随着軟體系統規模的增加,以及開發團隊人數的增加,需要在軟體開發過程中引入更多的規範。采用建立模型的方法是人類了解和求解問題的一種有效政策,也是軟體工程方法學中最常使用的工具。

  所謂模型就是為了了解事物而對事物做出的一種抽象,是對事物規範的、無歧義描述的一種工具。

  常見的模型可以分為三種類型:數學模型、描述模型和圖形模型。

  數學模型是描述系統技術方面的一系列公式,用來精确表示系統的某些特征。

  描述模型是描述系統某些方面的叙述性的備忘錄、報表或清單。

  圖形模型是由一組圖形符号群組織這些符号的規則組成的,利用它們來定義和描述問題域中的概念和術語。

  軟體過程是指實施于軟體開發和維護中的階段、方法、技術、實踐及相關産物(計劃、文檔、模型、代碼、測試用例和手冊等)的集合。

二、模組化原則

  1.準确原則 模型必須準确地反映軟體系統的真實情況。

  2.分層原則 在模組化過程中,必須有不同的模型,以不同的抽象程式,反映系統的不同側面。

  3.分治原則 軟體系統是複雜的,對于軟體模型的任意一個側面,不可能用一個模型來反映所有整個系統的任何側面。

  4.标準的原則 模型必須在某種程度上是通用的。

(三)統一模組化語言UML簡介

  引言:模組化是為軟體開發服務的,是以,如果模型所包含的資訊足夠完備,就可以以這些資訊為基礎,進行軟體系統的建造。統一模組化語言UML是一種總結了以往模組化技術的經驗并吸收當今優秀成果的标準模組化技術,利用UML表達的軟體模型,可以直接和某種設計語言建立映射關系,通過UML建造工具,将UML模型轉換為對應的程式設計語言源代碼架構。

一、UML概述

  UML是一個通用的可視化模組化語言,是用于對軟體進行描述、可視化處理、構造和建立軟體系統制品的文檔。其中制品是指軟體開發過程中産生的各種産物,例如模型、源代碼、測試用例等。UML适用于各種軟體開發方法、軟體生命周期的各個階段、各種應用領域及各種開發工具。

二、UML的主要特點

  1.統一的标準。UML是被OMG接受為标準的模組化語言,越來越多的開發人員使用UML進行軟體開發,越來越多的廠商支援UML。

  2.面向對象。UML是支援面向對象軟體開發的模組化語言。

  3.概念明确。模組化表示法簡潔,圖形結構清晰,可視化、表示能力強大,容易掌握和使用。

  4.獨立于過程。UML不依賴于特定的軟體開發過程。

三、UML中的視圖

  1.用例視圖

  2.邏輯視圖

  3.元件視圖

  4.部署視圖

四、UML的體系結構

  UML由三部分組成:基本構造塊、規則和公用機制。其中,

    基本構造塊又包括三種類型:事物、關系和圖。

      事物劃分為以下四種類型

        1.結構事物。包括類、接口、協作、用例、主動類、元件和節點。

        2.行為事物。包括互動機和狀态。

        3.分組事物。UML中的分組事物是包。整個模型可以看成是一個根包,它間接包含了模型中的所有内容。子系統是另一種特殊的包。

        4.注釋事物。注釋給模組化者提供資訊,它提供了關于任意資訊的文本說明,但是沒有語義作用。

      關系分為依賴、關聯、泛化、實作等關系。

      圖(用例圖、順序圖、協作圖、類圖、對象圖、狀态圖、活動圖、元件圖、部署圖)

    規則(名字、作用域、可見性、完整性、執行)

    公用機制分規範說明、修飾、公共劃分和擴充機制(構造型、标記值、限制)

   

(四)模組化

  模組化有用例模組化,結構模組化,行為模組化,軟體系統體系架構模組化。

  用例模型主要由用例、用例描述和用例圖組成,用來描述系統的外部特征。它表示了從系統的外部使用者(即參與者或角色)的觀點看系統應該具備什麼功能,是以它隻說明系統實作什麼功能,而不必說明如何實作。一幅用例圖包含的模型元素有系統、參與者、用例及用例之間的關系。

  用例模型描述的是系統的外部特性,包括從系統外部看到的軟體的靜态結構和行為特征。為了捕獲完整、精确的軟體系統的需求,還需要對軟體的内部結構和行為特征進行分析和設計。

  結構模組化是描述軟體的内部結構的一個重要手段,也是從用例視力出發進行軟體建造的第一步。結構模組化的結果是得到邏輯視力的重要組成部分——類圖。類圖提供了用對等(關聯)和層次(泛化和聚合)結構組織類的方法。很多面向對象的學者是把模型的這部分結構稱作靜态模型,也有稱其為對象模型。

  結構模型的概述:

  結構模型是分析階段的重要模型,它的目的是在系統中形成一個邏輯的、可維護的結構。“邏輯”意味着實際的實作環境不被考慮,是以主要着眼于基本的系統功能。人們可以通過對用例的分析,把系統分解成互相協調的分析類,利用類圖來描述系統中所有對象類的屬性及對象之間的互相關系,描述系統的結構特征,建立靜态模型。

  結構模型的建構是進行抽象的過程,應避免去解決某些具體問題和處理某些需求,最好将它們推遲到設計階段去完成。是以,結構模型中提出的結構不可能一直持續下去,需要在設計與實作階段對其進行一定的處理和折中。“維持結構”在實際操作中是行不通的,原因很簡單,即在設計階段要考慮實作平台:程式設計語言、作業系統、系統架構、遺留系統等。從效益的角度來看,當過渡到設計模型關構造系統時,通過修改模型的結構可以獲得一個較好的架構。

  建立結構模型的幾點建議:

  1.把建立結構模型的三個活動(發現對象、定義屬性與操作、識别對象間的關系)安排得比較接近,根據需要随時從一個活動切換到另一個活動。

  2.在識别了一些主要對象之後,就可以做一個最初的原型,随着分析工作的深入進行,采用增量式原型開發。在開發的早期階段建立的原型主要用于證明使用者的需求。

  3.在分析較小的系統時,可以活力劃分包的活動,或把該活動放在對象模型建立之後進行。在分析大中型系統時,可以按需求先劃分包,根據包進行分工,然後開始正規的分析。在分析過程中,若需要,仍可以用包來組織模型元素。

  行為模型的任務是定義并描述系統結構元素的動态特征及行為。

  一個完整的模型必須描述系統的靜态和動态兩個方面。通過對對象及對象之間的操作與行為進行分析與描述,有助于了解系統和認識系統在空間和時間上的行為。行為模型元素是UML模型的動态組成部分。

  在UML中,行為模型包括狀态模型、活動模型和互動模型。狀态模型關注一個對象的生命周期内的狀态及狀态變遷,以及引起狀态變遷的事件和對象在狀态中的動作等。活動模型用于描述多個對象在互動時采取的活動,它關注對象如何互相活動以完成一個事務。互動模型強調對象間的合作關系與時間順序,通過對象間的消息傳遞來完成系統的互動。

  面向對象的設計是将分析所建立的分析模型(靜态模型、動态模型)轉換為設計模型,對分析模型進行細化與補充,确定系統的體系架構,選擇元件并完成設計類。與傳統方法不同,面向對象的設計模型采用的符号與分析模型是一緻的,設計是結合實作環境不斷細化、調整概念類的過程。

(五)Web模組化

  引言:随着Internet的迅速發展,Web方式的應用越來越多。一方面是因為開發Web應用程式的工具、技術的快速發展,但更主要的原因是系統的設計者意識到Web應用系統與傳統的應用系統相比具有更重要的優勢。同樣,模組化對于Web系統的開發也非常重要。

一、Web模組化概述

  Web技術的發展,使得管理系統的開發更友善、功能更強大,在此系統的開發過程中,Web技術起了一個骨架式的支援作用。與此同時元件技術的發展為系統的開放性、內建性提供了便利,有效合理地引入元件技術是目前Web系統開發與發展的一個方向。通過對系統的開發進行模組化,形象直覺的圖形化表示,可以顯示系統的流程與功能。

  Web應用系統中很多概念是一般應用系統中所沒有的,例如,HTTP協定、HTML、表單、架構網頁、Session等。對于基于Web技術的應用系統,使用者直接面對的是用戶端浏覽器。浏覽器是運作在客戶機上的應用程式,與網絡上的伺服器連接配接并請求擷取資訊頁。浏覽器通過HTTP與Web伺服器通信,承擔顯示伺服器傳回的格式化的資訊。一般網頁還都含有其他網頁的連結,這樣使用者就可以通過這些連結導航,從Web伺服器請求獲得新的網頁。

二、Web模組化

  Web模組化主要考慮兩方面的問題,一是如何表示Web應用系統的體系結構,另一個是如何表示Web應用系統中一些特有的概念。頁面、腳本、表單和架構是Web應用系統的關鍵部分,資料流程的模型化表示的關鍵就是用UML對上述Web元素應用及其關系模組化。在對Web應用系統模組化時,需要利用UML的擴充機制對UML的模組化元素進行擴充,主要是在類和關聯上定義一些構造以解決Web應用系統模組化的問題。

  幾種元素的模組化:頁面模組化(伺服器頁、客戶機頁、<<Build>>關聯、<<Link>>關聯),表單模組化(表單、<<Submit>>關聯),架構模組化。

(六)軟體設計模式

  幾個比較有代表性的軟體設計模式有:

  1.Facade模式

  2.Adapter模式

  3.Abstract Factory設計模式

  4.Observer設計模式

(七)面向對象的軟體模組化工具

一、軟體開發工具的作用

  ·提供了引導人們有效建立正确模型的手段;

  ·可縮短開發時間,有助于減少枯燥、煩瑣的重複工作;

  ·便于對系統的修改和維護;

  ·提供了存儲和管理有關資訊的機制和手段,具有保持資訊一緻性的能力;

  ·可幫助使用者編制、生成及修改各種文檔;

  ·有助于生成程式代碼;

  ·為重用提供了友善。

二、軟體開發工具的分類。按功能分為以下幾類:

  1.業務系統規劃工具

  2.項目管理工具

  3.支援工具

  4.分析和設計工具

  5.程式設計工具

  6.測試和分析工具

  7.原型工具

  8.維護工具

三、面向對象軟體模組化工具所應具有的功能

  1.繪圖

  2.存儲

  3.一緻性檢查

  4.對模型進行組織

  5.導航

  6.協作支援

  7.代碼生成

  8.逆向工程

  9.內建

  10.支援多種抽象層和開發過程

  11.文檔生成

  12.适當的資訊隐蔽

  13.模型庫管理

  14.列印支援

  15.腳本程式設計

  16.元模組化

四、支援UML的常見工具

  0.Rational Rose (Rational公司)

  1.Together 2006 (Borland公司)

  2.Enterprise Architect(EA) (Sparx Systems公司)

  3.Visual Paradigm

  Visual Paradigm Suite For UML (VP-UML)是一個UML CASE工具,可以很好地和Visual Studio程式設計環境內建在一起,非常友善使用。

  4.Visio (Microsoft公司)

  5.Poseidon for UML (德國Gentleware AG公司)

  6.JUDE(Java and UML Developers Environment)  JUDE是一款輕量級UML模組化工具。

(完 畢)