




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第七章第七章 小組設計小組設計n在TSPi中:n設計階段關注系統的總體結構。這個階段制作出軟件設計說明書(SDS),它將較高層次的設計形成了文檔。n下一個層次的設計或詳細設計則在實現階段提出。第七章第七章 小組設計小組設計n本章內容:設計的原則以小組為單位的設計設計的標準設計的復用性設計的可用性設計的可測性設計的復核和檢查TSPi設計草案第七章第七章 小組設計小組設計n設計過程的主要目標是為產品實現生成一個準確、完整、高質量的基礎。n當一個人制作一個設計時,他(或她)要做完所有的工作。在一個小組里,靠把產品分割成一些部分,讓每個小組成員設計和實現一些部分,你能工作得更快。但這種方法要求一些總體
2、設計,這些總體設計不是清楚準確的,沒有仔細考慮過,那么系統的各個部分將不會和諧地工作。這正是許多項目在集成和系統測試階段耗費大量時間的原因之所在。這些時間大部分是用來發現和修正總體設計的問題的,而這些問題應在設計階段就被解決掉。7.1 7.1 設計的原則設計的原則n設計應該生成一個關于產品如何被建立的完整、準確的說明。n一個完整的設計定義了產品的主要部分,描述這些部分如何交互工作,還詳細描述它們如何裝配到一起來產生最終結果。7.1 7.1 設計的原則設計的原則n設計總體設計、細節設計n.總體設計與細節設計和實現的差別僅在于范圍和細節。n例如,在總體設計層次,你將產品分割成一些可獨立設計和實現的
3、部分。因此總體設計必須生成一個說明,以便工程師們在獨立設計過程中能使用它。7.1 7.1 設計的原則設計的原則n當設計模糊或不準確時,工程師們在細節設計時要浪費時間來填充總體說明的不足。當問題出現時,每個工程師要獨立地解決這些問題,而他們各自的決定是否一致,我們不能確切地知道。這種情況常常導致這樣的結果:直到集成測試和系統測試階段才察覺各部分不兼容。錯誤的設計不僅導致了時間的浪費,還引起嚴重的進程延遲。7.1 7.1 設計的原則設計的原則n當總設計準確完整時,工程師能很快制作出各個部份的細節設計。為達到這一點,他們需要知道每個部件、它們的界面以及狀態行為的完整的功能的規格說明。然后,為了制作出
4、最終產品,實現工程師們需要一個細節設計,它為每個程序定義了邏輯結構、所有循環初始化和步進條件、細化的狀態結構以及狀態轉換。n隨后,實現工程師們生產實現設計的代碼。他們的目標是源代碼能夠正確地執行所有被詳細描述的功能,能適當地使用所有的系統設備,能結合可獲得的重使用功能,而且遵循編碼和系統的標準與習慣。最終完成的產品應該是一個編譯和運行都沒有任何錯誤或問題的源程序。7.2 7.2 小組設計小組設計n當你獨自設計一個產品時,你的主要問題是:n如何生成一個設計n以何順序來設計產品的不同部分。n但當你在一個小組中工作時,你還面臨另外三個問題:n各部分應由誰來設計?n他們應該以何順序來進行這項工作?n這
5、些部分如何組合到一起? 7.2 7.2 小組設計小組設計n7.2.1 7.2.1 使用整個小組使用整個小組n設計大的軟件系統中的一個共同難題是:在你進行任何事情之前,需要定義系統的總體結構。但在結構被設置好之前,劃分工作是困難的。n處理這個難題的一種方法是整個小組一起致力于總體結構設計。n另一種方法是,當一或兩名工程師定義結構和足夠詳細(即每個部件的設計都被完整地詳細說明)地描述系統部件時,確定小組其人能干的任務。7.2 7.2 小組設計小組設計n讓整個小組一起致力于總體設計浪費了大量的時間。n通常只需要一兩名工程師來將總體設計形成文檔,詳細描述界面,在部件中間分配系統功能,以及定義程序總體結
6、構和邏輯。n對于類似于TSPi中通常開發的系統一樣的小系統,總體設計工作可能不會用去太長時間。n對于大的產品,通常每個人都被要等到總體設計工作完成。一種選擇是確定工程師能做的其它任務。有三類這樣的工作:設計研究,標準開發和重使用。7.2 7.2 小組設計小組設計n7.2.2 7.2.2 設計研究設計研究n為指導有用的設計研究,開始你必須對可能的產品部件和它們的功能有個初步的想法。n當系統設計者正在制作外部部份說明時,其它工程師能思考設計部份的一些其它方式,他們甚至可能建立起原型。n早一點建立一個界面原型。 7.2 7.2 小組設計小組設計n7.2.3 7.2.3 使用整個小組的才智使用整個小組
7、的才智n在小組設計中另一個問題是所有成員想法的有效使用。小組的主要好處在于他們潛在的強有力的技巧和知識。在合作中最重要的問題是讓所有成員都充分地貢獻。當人們工作于小組中時,他們有時不愿說出或提出建議和想法。這個問題在軟件小組中特別重要,因為主要的設計決定必須在工程早期形成,可那時小組剛組建,工程師們還互相不了解。而這正是小組成員最不愿說話的時候。7.2 7.2 小組設計小組設計n7.2.3 7.2.3 使用整個小組的才智使用整個小組的才智n所有的小組成員都應該意識到這個問題,都應該認識到小組有廣泛的經驗和知識。每個人都應該貢獻,無論他們是否認為自己具有專業的知識和經驗。主持小組會議和討論的任何
8、人都應該堅持不去問:某人是否對正討論的論題有更深遠的想法或相關的知識。這樣就可以充分利用小組的貢獻。這樣做的小組通常工作更有效率。7.3 7.3 設計的標準設計的標準n幾種重要的設計標準:n命名約定。命名約定。應詳細陳述命名結構并讓產品支持經理建立一個系統詞匯表。n界面格式。界面格式。定義部件界面的內容和格式。n系統消息和錯誤消息。系統消息和錯誤消息。要為系統消息和錯誤消息建立標準的格式和程序。n缺陷標準。缺陷標準。建議你采用PSP缺陷的類型標準。nLOCLOC的計算。的計算。在開始設計之前,你需要意見一致的LOC的計算。n設計表示的標準設計表示的標準。設計表示的標準定義了設計工作的產品。7.
9、3 7.3 設計的標準設計的標準n7.3.1 7.3.1 設計表示的標準設計表示的標準n你需要準確地把每一個設計做成文檔。n無論你是使用PSP設計樣板還是其它方法,你的設計是完整準確的才是最重要的。n節省了實現時間n產生了一個在實現前可檢驗的可復核設計。 7.3 7.3 設計的標準設計的標準n7.3.2 7.3.2 使用情形或使用情形或PSPPSP操作腳本操作腳本n靠描述一系列的輸入活動以及系統對每個輸入活動的反應,腳本描述了程序的外部動態可視行為。菜單選擇行為和對錯誤輸入的正確程序活動即為范例。n腳本幫助你考慮程序將怎樣使用。在產生腳本時,你常常發現細微的設計或可用性問題。n腳本還能用于定義
10、測試條件。在總體設計期間,生成了一個腳本,這個腳本要對程序的每一個關鍵功能詳細說明其測試順序。n當制作集成測試和系統測試計劃時,你要使用這個腳本。n部件層次的測試腳本也能暴露界面問題、功能問題和可用性問題。7.3 7.3 設計的標準設計的標準n7.3.37.3.3狀態機分析狀態機分析n無論你采用什么設計方法,狀態機分析能有助于你發現復雜的、難以發覺的邏輯問題。n當你對程序行為感到懷疑時,最好做一個狀態機分析。狀態分析是真實了解程序如何工作的唯一方式。n在程序經過幾個開發周期的升級后,程序狀態行為變得復雜。為確保升級沒有引入不可能的或自相矛盾的條件,定義和分析程序狀態機行為是種好的想法。7.3
11、7.3 設計的標準設計的標準n7.3.4 7.3.4 生成準確的設計生成準確的設計n盡管生成一個準確的設計要花去相當數量的時間,但這樣的設計會節省更多的實現和測試時間。n有一個完整定義的設計,你能快速地理解非常復雜的程序行為。n在小組工程中準確設計是特別重要的,因為膚淺的設計常存在單個工程師獨自一人所看不出的基本邏輯問題。這些問題通常在測試階段很難診斷,以致有時不得不對實現的主要部分進行返工來改正它。7.4 設計的復用設計的復用n在總體設計階段,有效利用小組時間的一種方式是定義小組的復用標準。這項工作包括確定可能的公共功能,以及提出可復用部分的一個初始集。n對于小的TSPi產品,我們在設計階段
12、引入復用。對更大一點的項目,你可以在需求和策略開發期間開始考慮復用。n設計的復用的主要問題是定義標準界面和調用約定,建立文檔標準,產生高質量的產品,以及提供應用支持。 7.4 設計的復用設計的復用n7.4.1 7.4.1 復用界面標準復用界面標準n在復用中的一個關鍵問題是使成份便于使用。做這的最好方式是定義自包含、獨立的可復用功能。為了一致地做這,你需要比較設計的一種方式。在TSPi中建議的標準是看那種設計有低的耦合、高的內聚。7.4 設計的復用設計的復用n7.4.1 7.4.1 復用界面標準復用界面標準n最重要的復用標準之一是調用-返回界面。如果可能,使這些標準類似于你正開發的產品中使用的標
13、準。這個工作節省了標準定義的工作,消除了一個混亂的來源,還減少了錯誤。n伴隨產品界面標準,要詳細說明那些參數是作為變量來使用,那些參數是為了返回,那些參數是針對特殊消息和錯誤條件。你還要定義標準的錯誤消息和條件以及對錯誤條件反應的標準方式。最后,你要為變量和參數及可重用部分設立命名約定。7.4 設計的復用設計的復用n7.4.1 7.4.1 復用界面標準復用界面標準n當為單個工程開發可重用部分時,你能利用公共體系結構框架和唯一的系統標準集。框架和標準的結合使得在工程師中共享成份更容易,而且它增加了你確認公共部份和程序的能力。7.4 設計的復用設計的復用n7.4.2 7.4.2 復用文檔標準復用文
14、檔標準n文檔標準是可復用部分與不可復用部分的區別之所在。n當某一部分的功能沒有被很好地制做成文檔,可能的用戶必須尋找源代碼來確定它是如何工作的。因為尋找要花費時間,絕大多數的工程師都把復用限制在他們個人書寫和理解的程序上。n當工程師們不必看源代碼就理解如何使用可復用程序時,小組復用就被最大化了。n這要求可復用部分列表包含每個部分的外部行為的完整的詳細說明。在每個可復用部分的源程序的頂部有一個如何使用的注釋段落,是一個好主意。7.4 設計的復用設計的復用n7.4.3 7.4.3 復用部分的質量復用部分的質量n高質量是復用策略的要素。n為達到部分的高質量:n應充分地使用己定義的過程,指導個人復核,
15、仔細檢查設計和代碼。在PSP中,這通常需要PSP2.1或PSP3.0個人過程。n運行通過單元測試來確保程序是適合于所有的變量和參數值的。這包括對名義值,上下界和界外的測試。這個部分同樣應該用清楚標明錯誤輸入或錯誤條件的錯誤消息來設計。7.4 設計的復用設計的復用n在決定復用一個己有的程序時,你應考慮下列問題。n程序有適合的功能?n程序界面是適合于新的應用?n程序性能是適合于新的應用?n所有需要的資料,如源代碼,測試情況,測試數據和應用說明,是否可以得到?n程序是否生成了合適的標準,諸如語言水平,編碼標準,命名標準和文件標準,以及消息標準和幫助標準?n程序是否有可論證的高質量?7.4 設計的復用
16、設計的復用n7.4.4 7.4.4 應用支持應用支持n為最大程度復用,應使工程師們容易發現可用部分以及了解如何使用它們。n最好有一個包含每個部分功能的清楚的詳細說明的部分索引。n當你開始程序的設計或實現時,盡可能復用可得到的部件。一個小組做這個工作是靠每天召開一個簡單的會議,來復核設計者的正在開發的功能,更新可復用功能的列表。7.4 設計的復用設計的復用n7.4.4 7.4.4 應用支持應用支持n在TSPi中,產品支持經理是復用的提倡者:n要為支持可復用部分和保持對它們的完整記錄承擔責任。這就為小組尋找幫助提供了一個中心點。n產品支持經理還要在總體設計中和設計及代碼檢查期間使小組注意力保持在復
17、用上,幫助小組確認可能的可復用部分以及確保可復用部分被廣泛使用。7.5 7.5 可用性設計可用性設計n使產品可用的一種方式是為每一個關鍵的用戶功能制作腳本,確信它們反映了用戶所想要的那種系統。n當你不清楚功能如何工作時,應和應用專家復核相關腳本或者建立和示范一個簡單的原型。n如果你能得到有效的原型化工具,將所有的用戶界面原型化并示范,這通常是個不錯的主意。7.6 7.6 可測性設計可測性設計n詳細的單元測試需要專門的測試代碼提供一個合適的測試環境。你應嘗試制作一個需要盡量少的測試代碼的設計。n進行一個詳細的測試計劃工作也是重要的。當小組正計劃集成測試和系統測試時,他們通常在測試的計劃期間比實際
18、測試期間發現更多的錯誤。完整的計劃和廣泛的腳本集能加速測試的計劃工作,改進測試的效率。7.6 7.6 可測性設計可測性設計n黑箱測試和白箱測試。都是十分有用的,都應該被使用。n在系統層次的黑箱測試不要求專門的準備,因為這些測試類似于用戶使用產品的方式。另一方面,單個模塊和部件的黑箱測試通常需要一些界面驅動程序和專門的支持程序來提供模擬的系統環境。但靠以適當的順序開發部件,你能使這種專門的驅動程序的需要降至最少。n白箱測試在設計期間需要一些思考。在此處,困難在于提供測試程序結構的每個方面的能力。通常,一般目的測試工具能有助于做這個工作,但專門開發的測試代碼或專一的測試設施同樣也需要。再者,你要考
19、慮你的設計和開發策略怎樣能使專門測試代碼的需要最小化。7.7 7.7 設計的復核和檢查設計的復核和檢查n對一個有效的設計檢查,你首先需要的是完全文檔化的設計。n當你正進行個人設計復核或者為設計的檢查做準備時,你一定要做一個詳盡的設計分析。僅僅看一個設計不能發問題。應檢查每一個設計要素以確保它適當地工作。例如,檢查界面,檢查循環的初始化、步進和終止。以及分析狀態行為。 7.8 7.8 TSPiTSPi設計草案設計草案n7.8.1 7.8.1 開始標準開始標準7.8 7.8 TSPiTSPi設計草案設計草案7.8 7.8 TSPiTSPi設計草案設計草案n7.8.2 7.8.2 總體設計總體設計n
20、以如下步驟產生一個總體設計;決定總體產品結構,命名產品部件,將產品功能分配給部件,制件部件的外部說明,分配使用情形功能(casefunction)給這些部件,以及確定要完成的設計任務。n7.8.3 7.8.3 設計標準設計標準n質量(或過程)經理帶領小組生成設計標準和命名詞匯表。7.8 7.8 TSPiTSPi設計草案設計草案n7.8.4 7.8.4 總體產品結構總體產品結構n你的小組要對總體結構、總件名稱、在部件中分配產品取得一致意見。n為了把品功能分配給不同的部件,使用類似于定義策略時使用的一個可跟蹤表。你還要考慮對每個開發周期你將在何時何處進行升級;盡管在概念設計階段你已經完成了第一次分
21、配,但現在你需要考慮其它可選擇的方式,并確定你的設計是合理的。 7.8 7.8 TSPiTSPi設計草案設計草案n7.8.5 7.8.5 設計任務的分配設計任務的分配n開發經理領導小組安排SDS文檔的設計,確定制件這個文檔所需的工作,然后把這些工作分為幾個部分。隨后,在小組領導人的幫助下,小組把這些部分分配給小組成員,并得到他們何時完成各自的部分的承諾。 n7.8.6 7.8.6 設計詳細說明設計詳細說明n當你正在制作SDS時,要為每個部件定義外部界面和功能規范。作為SDS的一部分,產生一個包含所有部件外部功能的腳本的全集。但要注意,每個腳本可能包含了幾個功能。總體設計的最后一步是制作出不同的設計文檔,這些文檔詳細說明了主要系
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 零售企業數字化供應鏈協同中的供應鏈可視化技術應用報告
- 2025年元宇宙社交平臺虛擬社交平臺社交焦慮緩解與用戶體驗研究
- 鄉村振興中的職業技能培訓:鄉村旅游人才培養報告
- 2025年醫院信息化建設與醫患溝通平臺初步設計評估報告
- 2025年餐飲業食品安全監管信息化技術應用與餐飲企業食品安全風險預警體系建設報告
- 2025年醫藥企業研發外包(CRO)在臨床試驗數據隱私保護中的法律法規報告001
- 周籃嫂的課件
- 2025年CCS項目在能源領域應用的經濟效益與投資決策支持研究報告
- 5G+AI融合的2025年科技互聯網產業創新生態構建報告
- 環保產業園2025年循環經濟發展模式中的綠色供應鏈管理與創新研究報告
- 放射科質控培訓課件
- 北方華創招聘考試真題2024
- 2025春新版三年級下冊科學?必背知識點考點
- 小學信息化培訓:AI賦能教學與教師能力提升
- 項目工程管理鐵三角
- 腫瘤病人的心理特點與心理護理
- 艾滋病梅毒乙肝防治培訓
- 2025年高考英語復習知識清單(全國)專題17 部分倒裝和完全倒裝十五種典型用法(講案)解析版
- 《夕陽紅的守護:老年人權益保障法主題課件》
- 改裝各類防彈車行業深度研究報告
- SCR脫硝催化劑體積及反應器尺寸計算表
評論
0/150
提交評論