軟件評測師寫作專欄之敏捷開發方法和數據流圖22

各位學員大家好,大家在學習軟件工程知識時,會涉及到敏捷開發方法和數據流圖等知識爲了讓大家快速掌握這方面的知識點,接下來就帶領大家一起來學習一下!

例題1:以下關於極限編程(XP)的敘述中,正確的是( 1 )。XP的12個最佳實踐,不包括( 2 )

1、A、XP是激發開發人員創造性、使管理負擔最小的一組技術

   B、每一個不同的項目都需要一套不同的策略、約定和方法論

   C、多個自組織和自治小組並行地遞增實現產品

   D、有一個使命作爲指導,它設立了項目的目標,但並不描述如何達到這個目標

2、A、重構  

B、結對編程  

C、精心設計  

D、隱喻

【昊洋詳解】:本題考查敏捷開發方法的基礎知識。

常見的敏捷開發方法包括以下四種:

極限編程XP:ExtremeProgramming,簡稱XP,是由KentBeck在1996年提出的。極限編程是一個輕量級的、靈巧的軟件開發方法,同時它也是一個非常嚴謹和周密的方法。極限編程是激發開發人員創造性、使得管理負擔最小的一組技術。核心價值觀是溝通(Communication)、簡單(Simplicity)、反饋(Feedback)、勇氣(Courage)、謙遜(Modesty)。XP的12個最佳實踐爲:

1)、簡單設計:爲明確的功能進行最優的設計,不考慮未來可能需要的功能。

2)、測試先行(測試驅動開發):先寫測試,後寫代碼。

3)、重構:不斷優化系統設計,使之保持簡單。

4)、結對編程:系統的每一行代碼都是兩個人用一個鍵盤完成的。

5)、集體代碼所有制(代碼集體所有權):開發隊伍中任何人可以修改任何其他人的代碼,代碼不屬於某個個人。

6)、持續集成:至少每天將整個系統集成一次,保持一個能運轉的系統。

7)、每週工作40小時(每週40小時工作制):保證休息,保持體力。

8)、現場客戶(客戶測試):客戶自己也是軟件開發隊伍的重要一份子。

9)、編碼標準:必須有統一的編碼規範,確保代碼的可讀性。

10)、規劃策略(計劃遊戲):計劃是持續的、循序漸進的。每2周,開發人員就爲下2周估算候選特性的成本,而客戶則根據成本和商務價值來選擇要實現的特性。

11)、小型發佈(小版本發佈):儘快發佈,儘早發佈。

12)、隱喻(系統隱喻):將整個系統聯繫在一起的全局視圖;它是系統的未來影像,是它使得所有單獨模塊的位置和外觀變得明顯直觀。如果模塊的外觀與整個隱喻不符,那麼你就知道該模塊是錯誤的。


水晶法Crystal:由Alistair Cockburn在20世紀90年代末提出。他把開發看做是一系列的協作遊戲,而寫文檔的目標是幫助團隊在下一個遊戲中取得勝利。水晶方法的工作產品包括用例、風險列表、迭代計劃、核心領域模型,以及記錄了一些選擇結果的設計註釋。水晶方法也爲這些產品定義了相應的角色。值得注意的是這些文檔沒有模板,描述也不太規範,但目標清晰,能夠滿足下次遊戲開始的條件。水晶法認爲每—個不同的項目都需要一套不同的策略、約定和方法論。

並列爭球法(scrum):在Scrum的工作方式下,總共只有三個角色, 這三個角色分別是產品負責人(PO),Scrum Master和開發團隊。Scrum的開發團隊對實現Sprint目標需要做的所有事情負責,包括技術方案和決策,團隊分工(誰做什麼),執行Sprint開發任務等,而且作爲自組織的團隊,他們也對他們的工作進度的跟蹤和管理負責。scrum使用迭代的方法,其中把每30天一次的迭代稱爲個衝刺, 並按需求的優先級來實現產品多個自組織和自治小組並行地遞增實現產品,協調是通過簡短的日常情況會議進行。

自適應軟件開發(ASD)有六個基本的原則:

1)、在自適應軟件開發中,有一個使命作爲指導,它設立了項目的目標,但不描述如何達到這個目標;

2)、特徵被視爲客戶鍵值的關鍵,因此,項目是圍繞着構造的構件來組織並實現特徵;

3)、過程中的迭代是很重要的,因此重做與做同樣重要,變化也包含其中;

4)、變化不視爲是一種更正,而是對軟件開發實際情況的調整;

5)、確定的交付時間迫使開發人員認真考慮每一個生產版本的關鍵需求;

6)、風險也包含其中,它使開發人員首先跟蹤最艱難的問題。

綜上所述,第一空中,選項A描述的是極限編程XP,選項B描述的是水晶法Crystal,選項C描述的是並列爭球法(scrum),選項D描述的是自適應軟件開發(ASD)的第一個原則。故第一空的正確答案爲A。

第二空中,C選項的精心設計顯然是錯誤的,極限編程的最佳實踐之一是簡單設計。故第二空的正確答案爲C。


例題2:對某商店業務處理系統採用數據流圖(DFD)進行功能建模,其中“檢查訂貨單”是其中一個(1 )。由於在進行訂貨單檢查時,需要根據客戶的欠款情況、訂單金額等多個條件判斷是否採取發出催款單、準備貨物、發出發貨單等行爲,此時適合採用(2 )進行描述。

1、A、外部實體  

B、加工       

C、數據流     

D、數據存儲

2、A、流程圖       

B、決策樹  

C、僞代碼     

D、程序語言代碼


【昊洋詳解】:本題考查結構化分析方法中數據流圖的基礎知識。

數據流圖:Data Flow Diagram,簡稱DFD,它從數據傳遞和加工角度,以圖形方式來表達系統的邏輯功能、數據在系統內部的邏輯流向和邏輯變換過程,是結構化系統分析方法的主要表達工具及用於表示軟件模型的一種圖示方法。

數據流程圖中有以下幾種主要元素(下面的名稱的斜槓前面表示圖示):

→/數據流:數據流是數據在系統內傳播的路徑,因此由一組成分固定的數據組成。如訂票單由旅客姓名、年齡、單位、身份證號、日期、目的地等數據項組成。由於數據流是流動中的數據,所以必須有流向,除了與數據存儲之間的數據流不用命名外,數據流應該用名詞或名詞短語命名。

□/數據源或宿(“宿”表示數據的終點):代表系統之外的實體,可以是人、物或其他軟件系統。

○/對數據的加工(處理):加工是對數據進行處理的單元,它接收一定的數據輸入,對其進行處理,併產生輸出。描述加工的方式有決策樹(判定樹)、決策表(判定表)和結構化語言。

〓/數據存儲:表示信息的靜態存儲,可以代表文件、文件的一部分、數據庫的元素等。

綜上所述,“檢查訂貨單”表示了對數據檢查處理,是一個加工,故該題目的第一空正確答案爲B。

描述加工的方式有決策樹、決策表和結構化語言。由於在進行訂貨單檢查時,需要根據客戶的欠款情況、訂單金額等多個條件判斷是否採取發出催款單、準備貨物、發出發貨單等行爲,所以採用決策樹剛好可以解決分支判定的問題,故該題目的第二空的正確答案也爲B。


鞏固練習題

(1)銀行系統數據流圖中,某個加工根據客戶的多個不同屬性的值來執行不同的操作,則對該加工最適宜採用(  )描述。

A、結構化語言 

B、判定表 

C、自然語言 

D、流程圖


(2)以下關於數據流圖的敘述中,不正確的是(  )。

A、每條數據流的起點或終點必須是加工

B、應該保持父圖與子圖平衡 

C、每個加工必須有輸入數據流,但可以沒有輸出數據流

D、應該畫出數據流而不要畫控制流



練習題參考答案

(1)解析:本題考查結構化分析方法中數據流圖的基礎知識。

數據流圖中描述加工的方式有決策樹(判定樹)、決策表(判定表)和結構化語言。

結構化語言是一種介於自然語言和形式化語言之間的半形式化語言,並沒有嚴格的語法。其結構通常分爲內層和外層,外層用來描述控制結構,採用順序、選擇和循環三種基本結構,而內層可以用接近自然語言的描述。在加工的一組動作依賴於多個邏輯條件的取值時用自然語言和結構化語言不易清晰表達,而判定樹和判定表則可以很好的表示。自然語言具有二義性,不適合用來描述加工。流程圖不用於描述加工。

故該題目的正確答案爲B。

 

(2)解析:本題考查結構化分析方法中數據流圖的基礎知識。

數據流圖是結構化分析方法的重要模型,用於描述系統的功能、輸入、輸出和數據存儲等。在繪製數據流圖中,每條數據流的起點或者終點必須是加工,即至少有一端是加工。在分層數據流圖中,必須要保持父圖與子圖的平衡。每個加工必須既有輸入數據流又有輸出數據流。必須要保持數據守恆。也就是說,一個加工所有輸出數據流中的數據必須能從該加工的輸入數據流中直接獲得,或者是通過該加工能產生的數據。

故該題目的正確答案爲C。

寫於2020年9月24日

作者:昊洋講師

版權所有,侵權必究

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