軟體工程思考題

2023-01-22 15:33:03 字數 4650 閱讀 6840

姓名班級學號日期第一章1. 查閱資料,看看還有哪些軟體開發的方法和模型。它們的基本思想是什麼,有什麼特點。

軟體開發方法:

一、parnas方法

資訊隱蔽原則:在概要設計時列出將來可能發生變化的因素,並在模組劃分時將這些因素放到個別模組的內部。

第二條原則是在軟體設計時應對可能發生的種種意外故障採取措施。

二、sasd方法

用結構化分析(sa)對軟體進行需求分析,然後用結構化設計(sd)方法進行總體設計,最後是結構化程式設計(sp)。

三、面向資料結構的軟體開發方法

1、jackson方法

從目標系統的輸入、輸出資料結構入手,匯出程式框架結構,再補充其它細節,就可得到完整的程式結構圖。該方法也可與其它方法結合,用於模組的詳細設計。jackson方法有時也稱為面向資料結構的軟體設計方法。

2、warnier方法

warnier方法與jackson方法類似。差別有三點:一是它們使用的圖形工具不同,分別使用warnier圖和jackson圖;另乙個差別是使用的偽碼不同;最主要的差別是在構造程式框架時,warnier方法僅考慮輸入資料結構,而jackson方法不僅考慮輸入資料結構,而且還考慮輸出資料結構。

四、問題分析法

考慮到輸入、輸出資料結構,指導系統的分解,在系統分析指導下逐步綜合。這一方法的具體步驟是:從輸入、輸出資料結構匯出基本處理框;分析這些處理框之間的先後關係; 按先後關係逐步綜合處理框,直到畫出整個系統的pad圖。

五、物件導向的軟體開發方法

這是一種自底向上和自頂向下相結合的方法,而且它以物件建模為基礎,從而不僅考慮了輸入、輸出資料結構,實際上也包含了所有物件的資料結構。oo技術在需求分析、可維護性和可靠性這三個軟體開發的關鍵環節和質量指標上有了實質性的突破,徹底地解決了在這些方面存在的嚴重問題,從而宣告了軟體危機末日的來臨。

1、自底向上的歸納

omt從問題的陳述入手,構造系統模型。從。在自底向上的歸納過程中,為使子類能更合理地繼承父類的屬性和行為,可能需要自頂向下的修改,從而使整個類體系更加合理。

這種類體系的構造是從具體到抽象,再從抽象到具體。otm中這一工作可由一般開發人員較快地完成。在物件模型建立後,很容易在這一基礎上再匯出動態模型和功能模型。

這三個模型一起構成要求解的系統模型。

2、自頂向下的分解

系統模型建立後的工作就是分解。與yourdon方法按功能分解不同,在omt中通常按服務(service)來分解。服務是具有共同目標的相關功能的集合,如i/o處理、圖形處理等。

這一步的分解通常很明確,而這些子系統的進一步分解因有較具體的系統模型為依據,也相對容易。所以omt也具有自頂向下方法的優點,即能有效地控制模組的複雜性,同時避免了yourdon方法中功能分解的困難和不確定性。

3、omt的基礎是物件模型

jackson方法和pam中輸入、輸出資料結構與整個系統之間的鴻溝在omt中不再存在。omt不僅具有jackson方法和pam的優點,而且可以應用於大型系統。更重要的是,在omt中系統邊界的改變只是增加或減少一些物件而已,整個系統改動極小。

4、需求分析徹底

需求分析過程已與系統模型的形成過程一致,開發人員與使用者的討論是從使用者熟悉的具體例項(實體)開始的。開發人員必須搞清現實系統才能匯出系統模型,這就使使用者與開發人員之間有了共同的語言,避免了傳統需求分析中可能產生的種種問題。

5、可維護性大大改善

omt的基礎是目標系統的物件模型,而不是功能的分解。功能是物件的使用,它依賴於應用的細節,並在開發過程中不斷變化。由於物件是客觀存在的,因此當需求變化時物件的性質要比物件的使用更為穩定,從而使建立在物件結構上的軟體系統也更為穩定。

omt徹底解決了軟體的可維護性。徹底解決了軟體的可修改性,從而也徹底解決了軟體的可維護性。oo技術還提高了軟體的可靠性和健壯性。

六、視覺化開發方法

視化開發就是在可視開發工具提供的圖形使用者介面上,通過操作介面元素,諸如選單、按鈕、對話方塊、編輯框、單選框、核取方塊、列表框和滾動條等,由可視開發工具自動生成應用軟體。這類應用軟體的工作方式是事件驅動。對每一事件,由系統產生相應的訊息,再傳遞給相應的訊息響應函式。

這些訊息響應函式是由可視開發工具在生成軟體時自動裝入的。

七、icase

系統整合方式經歷了從資料交換(早期ca se採用的整合方式:點到點的資料轉換),到公共使用者介面(第二代case:在一致的介面下呼叫眾多不同的工具),再到目前的資訊中心庫方式。

這是icase的主要整合方式。它不僅提供資料整合和控制整合,還提供了一組使用者介面管理設施和一大批工具,水平工具集以及開放工具槽。發展則是與其它軟體開發方法的結合,如與物件導向技術、軟體重用技術結合,以及智慧型化的i-case。

icase的最終目標是實現應用軟體的全自動開發,即開發人員只要寫好軟體的需求規格說明書,軟體開發環境就自動完成從需求分析開始的所有的軟體開發工作,自動生成供使用者直接使用的軟體及有關文件。

八、軟體重用和元件連線

軟體重用(reuse)又稱軟體復用或軟體再用。在構造新的軟體系統的過程中,對已存在的軟體人工製品的使用技術。"軟體人工製品可以是源**片斷、子系統的設計結構、模組的詳細設計、文件和某一方面的規範說明等。

利用已有的軟體成份來構造新的軟體。

典型的開發模型有:

1. 邊做邊改模型(build-and-fix model);

2. 瀑布模型(wate***ll model);

3. 快速原型模型(rapid prototype model);

4. 增量模型(incremental model);

5. 螺旋模型(spiral model);

6. 演化模型(evolution model);

7. 噴泉模型(fountain model);

8. 智慧型模型(四代技術(4gl));

9. 混合模型(hybrid model)

邊做邊改模型(build-and-fix model)

在這種模型中,既沒有規格說明,也沒有經過設計,軟體隨著客戶的需要一次又一次地不斷被修改。在這個模型中,開發人員拿到專案立即根據需求編寫程式,除錯通過後生成軟體的第乙個版本。在提供給使用者使用後,如果程式出現錯誤,或者使用者提出新的要求,開發人員重新修改**,直到使用者滿意為止。

其主要問題在於:

(1) 缺少規劃和設計環節,軟體的結構隨著不斷的修改越來越糟,導致無法繼續修改;

(2) 忽略需求環節,給軟體開發帶來很大的風險;

(3) 沒有考慮測試和程式的可維護性,也沒有任何文件,軟體的維護十分困難。

瀑布模型(wate***ll model)

瀑布模型將軟體生命週期劃分為制定計畫、需求分析、軟體設計、程式編寫、軟體測試和執行維護等六個基本活動,並且規定了它們自上而下、相互銜接的固定次序,如同瀑布流水,逐級下落。在瀑布模型中,軟體開發的各項活動嚴格按照線性方式進行,當前活動接受上一項活動的工作結果,實施完成所需的工作內容。當前活動的工作結果需要進行驗證,如果驗證通過,則該結果作為下一項活動的輸入,繼續進行下一項活動,否則返回修改。

要求每個階段都要仔細驗證。但是,這種模型的線性過程太理想化,已不再適合現代的軟體開發模式,幾乎被業界拋棄,其主要問題在於:

(1) 各個階段的劃分完全固定,階段之間產生大量的文件,極大地增加了工作量;

(2) 由於開發模型是線性的,使用者只有等到整個過程的末期才能見到開發成果,從而增加了開發的風險;

(3) 早期的錯誤可能要等到開發後期的測試階段才能發現,進而帶來嚴重的後果。

快速原型模型(rapid prototype model)

快速原型模型的第一步是建造乙個快速原型,實現客戶或未來的使用者與系統的互動,使用者或客戶對原型進行評價,進一步細化待開發軟體的需求。通過逐步調整原型使其滿足客戶的要求,開發人員可以確定客戶的真正需求是什麼;第二步則在第一步的基礎上開發客戶滿意的軟體產品。

快速原型的關鍵在於盡可能快速地建造出軟體原型,一旦確定了客戶的真正需求,所建造的原型將被丟棄。因此,原型系統的內部結構並不重要,重要的是必須迅速建立原型,隨之迅速修改原型,以反映客戶的需求。

增量模型(incremental model)

又稱演化模型。在增量模型中,軟體被作為一系列的增量構件來設計、實現、整合和測試,每乙個構件是由多種相互作用的模組所形成的提供特定功能的**片段構成。增量模型在各個階段並不交付乙個可執行的完整產品,而是交付滿足客戶需求的乙個子集的可執行產品。

整個產品被分解成若干個構件,開發人員逐個構件地交付產品,這樣做的好處是軟體開發可以較好地適應變化,客戶可以不斷地看到所開發的軟體,從而降低開發風險。但是,增量模型也存在以下缺陷:

(1) 由於各個構件是逐漸併入已有的軟體體系結構中的,所以加入構件必須不破壞已構造好的系統部分,這需要軟體具備開放式的體系結構。

(2) 在開發過程中,需求的變化是不可避免的。增量模型的靈活性可以使其適應這種變化的能力大大優於瀑布模型和快速原型模型,但也很容易退化為邊做邊改模型,從而是軟體過程的控制失去整體性。

螺旋模型(spiral model)

將瀑布模型和快速原型模型結合起來,強調了其他模型所忽視的風險分析,特別適合於大型複雜的系統。

螺旋模型沿著螺線進行若干次迭代,圖中的四個象限代表了以下活動:

(1) 制定計畫:確定軟體目標,選定實施方案,弄清專案開發的限制條件;

(2) 風險分析:分析評估所選方案,考慮如何識別和消除風險;

(3) 實施工程:實施軟體開發和驗證;

乙個階段首先是確定該階段的目標,完成這些目標的選擇方案及其約束條件,然後從風險角度分析方案的開發策略,努力排除各種潛在的風險,有時需要通過建造原型來完成。如果某些風險不能排除,該方案立即終止,否則啟動下乙個開發步驟。最後,評價該階段的結果,並設計下乙個階段。

複習思考題

1.國際 商品結構 2.轉口 3.里昂惕夫之謎 4.戰略性 政策 5.最惠國待遇 6.普遍優惠制 7.畢業條款 8.關稅配額 9.自動 出口限制 10.技術性 壁壘 11.出口補貼 12.出口信貸國家擔保制 13.關稅結構 14.自由 區 15.創造 1.h o定理的主要內容。2.李斯特幼稚工業保護...

材料工程基礎複習思考題

第一章緒論 1 材料科學與材料工程研究的物件有何異同?2 為什麼材料是人類賴以生存和發展的物質基礎?3 為什麼材料是科學技術進步的先導?4 材料的製備技術或方法主要有哪些?5 材料的加工技術主要包括哪些內容?6 進行材料設計時應考慮哪些因素?7 在材料選擇和應用時,應考慮哪些因素?8 簡述金屬 陶瓷...

材料分析思考題

習題五1 物相定性分析的原理是什麼?對食鹽進行化學分析與物相定性分析,所得資訊有何不同?答 物相定性分析的原理是根據每一種結晶物質都有自己獨特的晶體結構,即特定點陣型別 晶胞大小 原子的數目和原子在晶胞中的排列等。因此,從布拉格公式和強度公式知道,當x射線通過晶體時,每一種結晶物質都有自己獨特的衍射...