軟體工程精華

2023-01-23 23:09:04 字數 4722 閱讀 6593

軟體工程複習提綱參***

1.什麼是軟體工程?軟體工程的目的是什麼?

答:軟體工程是將系統的、規範的、可度量的工程化方法應用於軟體開發、執行和維護的全過程及上述方法的研究。

目的:是在給定成本、進度的前提下,開發出具有可修改性、有效性、可靠性、可理解性、可重用性、可適應性、可移植性、可追蹤性和可互操作性並滿足使用者需求的軟體產品。

2.什麼是軟體危機?軟體危機的表現有哪些?產生的原因是什麼?

答:軟體危機是指在計算機軟體的開發和維護過程中所遇到的一系列嚴重問題。

表現在:(1)對於軟體開發的成本和進度的估計很不準確。

(2)開發的軟體產品不能完全滿足使用者要求,使用者對已完成的軟體系統不滿意的現象常常發生。

(3)開發的軟體可靠性差。

(4)軟體通常沒有適當的文件。

(5)軟體的可維護性差。

(6)軟體開發生產率提高的速度,無遠遠跟不上計算機應用普及深入的趨勢。

原因:(1)軟體的規模愈發龐大;

(2)軟體開發的管理困難。

(3)軟體本身的獨有特點確實給開發和維護造成一些客觀困難。

(4)軟體開發和維護中千金錯誤認識和方法的形成可以歸結與計算機發展早期軟體開發的個體化特點。

(5)軟體開發技術落後。

(6)生產方式落後。

(7)開發工具落後,生產率提高緩慢。

3.要開發xx系統,能否通過充分的調查做到完全了解使用者需求,寫出正確的,非常符合使用者的需求分析報告,並且在以後的軟體開發過程中沒有需求改變的事情發生?

答:不能。因為使用者可能在開始時提出一些功能需求,每當對系統有一定的理解後又會提出一些需求,以後隨著理解的深入而不斷提出新的需求,使用者需求變動是乙個極為普遍的問題,即使是部分變動,也往往會影響需求分析的全部,導致不一致性和不完備性。

4.說明軟體開發的生命週期模型,軟體開發的幾個生命週期,每個週期裡的主要任務是什麼?

答:軟體開發的生命週期模型是描述軟體開發過程中各種活動如何執行的模型。

軟體開發的生命週期:乙個軟體從提出開發要求開始直到該軟體報廢為止的整個時期,具體分為以下四個時期:

(1)軟體分析時期;

任務:確定軟體專案的目標,軟體應具備的功能和效能,構造軟體的邏輯模型,並制定驗收標準。在此期間,要進行可行性論證,並做出成本估計和經費預算,制定進度安排。

進行可行性研究和專案開發計畫,需求分析。

(2)軟體設計時期;

任務:a.設計軟體的總體結構;

b.設計軟體具體模組的實現演算法;

c.軟體設計結束之前,也要進行有關評審,評審通過後才能進入編碼時期。

(3)編碼與測試時期;

任務:組織程式設計師將高駐地的軟體「翻譯」成計算機可以正確執行的程式;並且要經過按照軟體分析中提出需求要求和驗收標準進行嚴格的測試和審查。根據具體軟體的特點,決定是否劃分成一些階段,如編碼、單元測試、整合測試、驗收測試等等。

(4)執行與維護時期。

任務:軟體執行過程中可能由於各方面的原因,需要對它進行修改。

5.什麼是瀑布模型?什麼是原型模型?請比較一下瀑布模型和原型模型的優缺點?

答:瀑布模型是將軟體生命週期各活動規定為依線性順序聯接的若干階段的模型。

原型模型是借助一些軟體開發工具或環境盡可能快地構造乙個實際系統的簡化模型。

瀑布模型的優點:嚴格按照生命週期的各個階段來進行開發,強調了每一階段的嚴格性。這樣就能解決在開發階段後期修正不完善的需求說明將花費巨大的費用的問題。

在消除非結構化軟體、降低軟體的複雜性、促進軟體開發工程化方面起了很大作用。缺點:它是一種理想的線性開發模式,缺乏靈活性,特別是無法解決軟體需求不明確或不準確的問題。

原型模型則是利用原型法技術能夠快速實現系統的初步模型,供開發人員和使用者進行交流,以便較準確獲得使用者的需求,不斷使原型逐步完善,可以大大避免在瀑布模型冗長的開發過程中看不見產品雛形的現象。

6.如果要開發乙個xx系統,具備哪些條件,你會選擇用瀑布模型進行開發?會選擇原型模型?

答:如果要開發的系統功能和效能明確、完整、無重大變化,例如編譯系統、資料庫管理系統和操作系系統等,則會選擇瀑布模型;採用原型模型適合如下條件的軟體開發:1.

有快速建立系統原型系統的軟體工具與環境。2.那些不能預先確切定義需求的軟體開發。

3.那些專案組成成員不能很好協同配合、交流或通訊上存在困難的情況。

7.可行性研究的任務是什麼?主要是解決哪幾個方面的問題?

答:可行性研究的任務是對問題的定義,要初步確定問題的規模和目標,問題定義後,要匯出系統的邏輯模型。然後從系統的邏輯模型出發,選擇若干供選擇的主要系統方案。

主要解決的4個方面的問題:1.技術可行性研究;2.

經濟可行性研究;3.法律可行性研究;4.開發方案選擇性研究。

8.需求分析的目的是什麼?由那些部分組成,主要任務是什麼?你認為做好需求分析需要具備那些素質?

答:需求分析的目的是開發人員要進行細緻的調查分析,準確理解使用者的要求,將使用者非形式的需求陳述轉化為完整的需求定義,再由需求定義轉換到相應的形式功能規約的過程。確定系統要完成哪些工作,也就是對系統提出完整、準確、清晰、具體的要求。

主要任務:(1)問題明確定義;

(2)匯出軟體的邏輯模型;

(3)編寫文件;

需要具備素質:性格開朗,善於與人交流,具有團隊精神,做事耐心細緻,負責,善於分析,擁有良好的大局觀,具有較強的理解能力,能夠將各方面的需求系統組合在一起,具有較強編寫文件的能力,能夠協調好開發人員和使用者之間的各種需求矛盾。

9.為什麼需求分析很難做準確?說出你的理由。

答:(1)需求易變性。使用者在開始時提出一些功能需求,當對系統有一定的理解後,會提出一些需求。

以後隨著理解的深入而不斷提出新的需求。使用者需求的變動是乙個極為普遍的問題,即使是部分變動,也往往會影響到需求分析的全部,導致不一對待性和不完備性。

(2)問題的複雜性;

(3)交流障礙。進行需求分析的人員具備不同的背景知識,處於不同的角度,扮演不同的角色,造成了相互之間交流的困難。

(4)不完備性和不一致性。使用者各類人員對於系統的要求所處的角度不一樣,對問題的陳述往往是不完備的,其各方面的需求還可能存在著矛盾。

10.請舉例說明什麼是資料字典?資料字典在軟體工程開發中的作用是什麼?

答:資料字典是關於資料的資訊的集合,是對資料流圖中包含的所有元素的定義的集合。它是資料條目,資料儲存條目、資料項條目和基本加工條目的匯集。

例子:資料流名稱:訂單

別名:無

簡述:旅客訂票寫的專案

**:旅客

去向:加工1「驗訂單」

資料流量:2000份/每週

組成:編號+訂票日期+旅客編號+位址+**+銀行帳號+預定日期+目的地+數量

其中資料流量指單位時間內的傳輸次數。

作用:用來定義資料流圖中的各個成分的具體含義的,它以一種正確的,無二義的說明方式為系統分析,設計及執行維護提供了有關元素的一致定義和詳細的描述。它和資料流圖共同構成系統的邏輯模型,是需求說明書的主要組成部分。

11.有乙個xx系統。系統敘述……請完成滿足需要的資料庫設計。以及畫出資料流程圖。

12.有圖所示的乙個資料流程圖。請畫出相應的功能模組圖。

13.有乙個非結構化的程式。圖示……請修改為結構化的程式。並畫出相應的程式流程圖。

答:第六章p466

14.有比較兩個二元組的方法如下:

二元組的集合是:

e=。其中單個數的大小如下:

1≤2≤3≤4≤5≤6≤7≤8≤9≤0。

對於乙個二元組a∈e,

定義1:如果a=b,則稱a成對。

定義2:r=(a+b)%10,稱為a的點數。

定義3:如果a>b,temp=a,否則temp=b。temp稱為a的大數,記為ma。

對於a(a,b),b(c,d)∈e,比較它們大小的規則如下:

1.如果a和b都成對,則比較a,c。如果a2.成對的都比不成對的大。

3.如果都不成對,則比較點數。如果點數不同,則點數大的那個二元組大。零點最小。

4.如果都不成對,且點數相同。如果點數都是零。則a=b。如果點數不為零。則比較a和b的大數。如果ma請回答下列問題:

1. 畫出流程圖。

2. 用c語言寫出乙個比較二元組的函式。如果前乙個二元組大於後乙個二元組,則返回1,如果相等則返回3,否則返回2。函式介面如下:

int compare(int a, int b, int c, int d)

{}3.根據書上的各種黑盒和白盒的測試方法寫出你的測試資料。並且寫出期望結果。

15.有乙個程式,描述……。用c語言寫出該函式的詳細設計**。

16.請介紹一下發現物件的原則以及一些方法,並將這些方法與結構化程式開發中所使用的相應工具進行比較。比較一下結構化方法和物件導向方法在需求階段的相同和不同點。

答:發現物件的原則為正確地運用抽象原則,先要捨棄與系統責任無關的事物,保留與系統責任有關的事物。其次,要捨棄與系統責任有關的事物中與系統責任無關的特徵。

考慮將問題域中的事物對映為什麼物件以及如何對這些物件進行分類的問題,清晰而簡練的表達問題域並使系統開銷少。

方法:見課本p213的圖9—4

結構化程式開發使用的工具為資料流圖,資料字典

比較一下結構化方法和物件導向方法在需求階段的相同和不同點:

結構化分析=資料流圖+資料處理+資料儲存+端點+處理說明+資料字典

結構化分析方法是一種從問題空間到某種表示的對映方法,由資料流圖表示,面向過程,自頂而下,結構清晰的系統結構

物件導向=類和物件+結構與連線+繼承+封裝+訊息通訊

ooa的物件是對問題域中事物的完整對映,包括事物的資料特徵和行為特徵。

17.試舉例說明繼承和多繼承的概念。

答: 繼承:特殊類的物件擁有其一般類的全部屬性與服務,就是稱作特殊類對一般類的繼承。

軟體工程範本

測試計畫初稿 這裡所說的測試,主要是指整個程式系統的組裝測試和確認測試。本檔案的編制是為了提供乙個對該軟體的測試計畫,包括對每項測試活動的內容 進度安排 設計考慮 測試資料的整理方法及評價準則。4.實現階段 模組開發卷宗 開始編寫 模組開發卷宗是在模組開發過程中逐步編寫出來的,每完成乙個模組或一組密...

軟體工程報告

設計專案 圖書管理系統 專業電腦科學與技術 班級計s091 學號 093433 學生姓名李萌 同組同學郭飛 一 實驗目的 學習用軟體工程的方法開發軟體,熟練掌握用高階語言編寫 除錯和執行各種程式的設計方法。二 實驗要求 本系統需要掌握軟體工程的基本知識,對系統進行可行性分析和需求分析,並熟練運用vc...

軟體工程總結

通過這乙個多星期的學習,使我了解到很多以前都不知道的關於軟體工程的知識 現將所學知識總結如下 軟體生命週期一共有三大階段 1.定義階段 對專案先整體進行專案評估,確定待開發專案的總體要求和適用範圍,以及與之相關的硬體,支撐軟體的要求。預估整個專案需要哪些技術,相關設計人員和開發人員,專案需要的成本估...