3月23日——培訓第87天

今天是田老師的課……

田老師說找工作的事情先不用着急,筆試的題目更注重基礎……

UML的體系是比較龐雜的,一週時間都可能有,但是由於暫時做不到設計,所以也不用琢磨那麼深……

靜態結構:類圖(最重要)、包圖、對象圖、組成結構圖
動態行爲:交互圖(順序圖、通信圖、交互概觀圖、時序圖)、狀態圖(狀態機)、活動圖(類似於C語言的流程圖)
物理模型:構件圖、部署圖

-------------------------------------------------------------------------
UML:Unified Modeling Language,是一種面向對象技術的、可視化的、通用建模語言,不僅僅可以用於
軟件分析、設計,也可以應用於其他領域的業務建模。
UML是文檔,與特定的開發過程相關聯(RUP、XP)

UML創始人:Grady Booch,目前在IBM任職,是面向對象方法最早的倡導者之一
   
    James Rumbaugh,提出了面向對象的建模技術(OMT),引入了各種獨立於程序設計語言的表示
    符號。他原來是美國空軍學院的。

    Ivar Jacobson,於1994年提出了面向對象軟件工程的方法,即OOSE,曾經創造了一個系統至今未
    發生問題

MDA(Model Driven Architecture)模型驅動的設計是在UML2.0中新加入的概念,也是UML中的一次重大的
變化。

項目招標-需求分析-概要設計-詳細設計-編碼和單元測試-集成測試和系統測試-交付實施-系統維護

其實最複雜的地方就是分析、設計這裏,然後是後期的測試維護之類,其實最容易實現的就是代碼部分,現在
之所以覺得代碼有困難是因爲代碼不熟練。

UML語義:描述基於UML的精確元模型定義。
UML表示法:

UML的5個概念:
圖(diagrams)(結構圖、行爲圖)
視圖(views)設計視圖、實現視圖、部署視圖、過程視圖、用例視圖
模型元素(Model Element)
通用機制(General Mechanism)
模型驅動體系結構(Model Driven Architecture)

RUP:Rational Unified Process,統一軟件開發過程(用例驅動、以構架爲中心)
Agile/XP,敏捷建模

-------------------------------------------------------------
參與者:
必須和系統交互、責任邊界而非物理邊界、

參與者不在系統裏面,如果系統需要保存參與者信息,那麼需要把參與者識別成一個類。

確定分析類的基本準則:
爲每個由人充當的參與者確定一個主要的邊界類
爲每個初期建立的實體類確定一個基本邊界類。
爲每個由外部系統充當的參與者定義一個主要邊界類,使其代表通信接口
確定一個控制類,負責處理用例實現中的控制和協調關係,然後按照用例實現的需求
對該控制類進行精化。

識別類:
每個類大約有3到5個職責(並不一定是3到5個方法)
不存在獨立的類(好的OOAD的精化是類相互協作使得用戶受益)
   每個類應該同少量的類協作以提供所有的期望的功能
   類可以把他們的一些職責託付給專注於特定功能的其他輔助類。
當心一些非常小的類(將那些只有一兩個職責的類整合爲一個更大的類)
當心幾個非常龐大的類(查看職責大於5個的類,需要合理分解爲兩個或多個能夠承擔
     恰當數目職責的更小的類)
高內聚、低耦合

當心僞類(一般過程的函數,它僞裝成類)
當心“萬能類”(似乎能夠承擔任何工作的類,應將它們的職責分解給未內聚的子集、
   這些內聚職責的每個集合都可以分離成爲獨立的類,類進行協作以實現
   由原來萬能類所提供的行爲)
避免深度的繼承樹(繼承層次中每個層次應該具有良好定義的目的,容易添加很多實際上卻
    不能服務於任何目的的層次,不要使用繼承實現功能的分解,即每個抽象
    層次恰好有一個職責,繼承僅僅用於存在直接產生於問題域的,清晰的、
    顯而易見的繼承層次的場合)

如果你定義了一個大量使用靜態方法的類的時候,那麼很明顯,你在面向過程、而不是面向
對象了,你很可能正在做一個“萬能類”

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章