第5章描述了標記法-UML圖,分為兩大類,即描述靜態結構的結構圖和描述動態行為的行為圖。在這不一一列舉,實踐地時候可以去查如何使用相應的標記法。這些標記法可不是一出來就一成不變的,而是需要經曆概念性模型、邏輯模型和物理模型的演變,在項目開發的不同階段使用不同的模型。
問題:1. 這麼多的標記法,我們在實踐中都要一一畫出嗎?
2. 在項目開發的不同階段,都應該相應地使用哪些標記法。
對於問題一,答案是不必使用全部標記法,就像RUP過程理論一樣,它是力求一種通用的理論,但在實際的項目過程中,往往是理論的子集。對於問題2,後面會結合實戰來分析。
第6章描述了軟體開發過程,首先描述了成功項目的特徵:存在很強的架構願景(從本質上講,好的架構應該是物件導向的,由組件構成);應用了管理良好的迭代、增量式開發生命週期。追求理性的開發過程,理透不同開發過程的關鍵方面,倡導核心觀念是理解不同實踐過程的關鍵。過程被定義為宏觀過程和微觀過程,它們不同在於宏觀過程關注的是總體軟體開發生命週期,而微觀過程關注的是具體的分析和設計技術。我們以RUP生命週期為基本,參考其他。
宏觀過程,宏觀過程確定了系統將以演化式的方式,通過不斷最佳化,最後得到產品系統。其過程可以從兩個維度進行描述,即內容和實踐--做什麼和什麼時候做。內容維度描述了角色、任務和工作產品,也可以從科目(需求、分析與設計、實現、測試、部署+專案管理、配置和變更管理、環境)來描述,從邏輯上對內容進行分組。時間這一維描述了這個過程的生命週期,可以從裡程碑(範圍已理解、架構已穩定、系統已準備好進行終端使用者測試、系統已準備好進行部署)、階段(初始、細化、構造、移交)和迭代的角度來描述。
微觀過程(即宏觀的分析與設計科目),如我們從兩個維度來描述宏觀過程一樣,我們也將從兩個關鍵的維度來描述微觀過程,即抽象層次和內容(活動與工件)。在微觀過程中,傳統的分析階段和設計階段被有意地模糊了,取而代之的是進行不同層次的抽象,形成以連續光譜。分析關注的是行為,而不是形式;設計時創造一些元素,它們提供了分析元素所要求的行為。架構和組件的確定過程對於微觀迭代具有指導意義。組件與架構比起來抽象層次更低。具體的活動包括去頂元素、確定元素間的協作、確定元素間的關係、確定元素間的語義,相應的每輪活動都會產生相應的工件。
第7章聚焦於物件導向開發實戰,例如人員管理、發行管理和品質保證。可能對於技術人員來說,這些主題極度乏味,但它們是成功建造複雜軟體系統必須面對的現實。
1. 風險管理與制定計劃
2. 人員配備。物件導向資源配置一般比傳統的方式要少,很多工作不是大爆炸式的。其項目中主要有三類角色:項目架構師(複雜演化和維護系統架構)、組件主管(對項目進行最初的抽象,組件主管是一個類聚集與之相關的機制的最終擁有者,同時也負責在系統演化過程中對系統進行測試和發布)、應用工程師(通常完成一項或兩項職責)。在更大型的項目中,還需要其他不同的開發角色來完成工作。
3. 組態管理(Software Configuration Management,SCM)是一種標識、組織和控制修改的技術。軟體組態管理應用於整個軟體工程過程。軟體組態管理可以提煉為三個方面的內容:版本控制、變更控制和過程支援。
4. 建立複用制度。
。。。