軟件工程復習_第1頁
軟件工程復習_第2頁
軟件工程復習_第3頁
軟件工程復習_第4頁
軟件工程復習_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、Chapter 11. What is Software Engineering?(什么是軟件工程?)1)軟件工程師利用他們的計算機和計算方面的知識,以幫助解決問題。2)軟件工程師使用技術、工具、程序、和范例來增強他們的軟件產(chǎn)品的質量。他們的 目的是使用有效的富有成果的途徑來產(chǎn)生有效的問題解決方案。3)一名軟件工程師集中于把計算機作為一個解決問題的工具,而不是調(diào)查硬件的設計 或證明有關算法如何工作理論。2. What is good software?(什么是好的軟件?)1)The quality of the product2)The Quality of the Process3)Qual

2、ity in the context of the business Environment 3. What are 9 activities in software development? (軟件開發(fā)的9個活動)1) 需求分析和定義2) 系統(tǒng)設計3) 程序設計4) 程序實現(xiàn)5) 單元測試6) 集成測試7) 系統(tǒng)測試8) 系統(tǒng)交付9) 維護4. How has software engineering changed? (What are seven key factors that altered /changed software engineering practice?)(改變/更改

3、軟件工程的七個關鍵因素是什么?)1)對商品而推向市場時間上的危急性2)計算方面經(jīng)濟上轉移:較低硬件費用和較高的開發(fā)和維護費用3)能有有桌面計算的利用4)廣泛的局域和廣域網(wǎng)絡互聯(lián)5)面向對象技術的可用性和實用6)運用窗口、圖標、菜單和指針的圖形用戶接口(GUI) 7)軟件開發(fā)的分布模型的不可能性預測性5. What is the Wassermans discipline of software engineering?(軟件工程的Wasserman原則)1)抽象2)分析設計方法和概念3)用戶界面原型4)軟件體系結構5)軟件過程6)復用7)度量8)工具和集成環(huán)境Chapter 2(1) Conc

4、epts (What is): (概念)1) waterfall model(瀑布模型):瀑布模型是將軟件生存周期的各項活動規(guī)定為按固定順序而連接的若干階段工作,形如瀑布流水,最終得到軟件產(chǎn)品。瀑布模型核心思想是按工序將問題化簡,將功能的實現(xiàn)與設計分開,便于分工協(xié)作,即采用結構化的分析與設計方法將邏輯實現(xiàn)與物理實現(xiàn)分開。將軟件生命周期劃分為制定計劃、需求分析、軟件設計、程序編寫、軟件測試和運行維護等六個基本活動,并且規(guī)定了它們自上而下、相互銜接的固定次序,如同瀑布流水,逐級下落。2) incremental model(增量模型):增量模型是一種非整體開發(fā)模型。在各個階段并不交付一個可運行的完

5、整產(chǎn)品,而是交付滿足客戶需求的一個子集的可運行產(chǎn)品??蛻魧γ恳粋€增量的使用和評估都作為下一個增量發(fā)布的新特征和功能,這個過程在每一個增量發(fā)布后不斷重復,直到產(chǎn)生了最終的完善產(chǎn)品3) iterative model(迭代模型):迭代是重復反饋過程的活動,其目的通常是為了逼近所需目標或結果。每一次對過程的重復稱為一次“迭代”,而每一次迭代得到的結果會作為下一次迭代的初始值。(2)Benefits (advantages) and drawbacks (disadvantages) of waterfall model?(瀑布模型優(yōu)缺點)advantages:1) 為項目提供了按階段劃分的檢查點2)

6、 當前一階段完成后,您只需要去關注后續(xù)階段3) 可在迭代模型中應用瀑布模型增量迭代應用于瀑布模型。迭代1解決最大的問題。每次迭代產(chǎn)生一個可運行的版本,同時增加更多的功能。每次迭代必須經(jīng)過質量和集成測試。4) 它提供了一個模板,這個模板使得分析、設計、編碼、測試和支持的方法可以在該模板下有一個共同的指導disadvantages: 1) 各個階段的劃分完全固定,階段之間產(chǎn)生大量的文檔,極大地增加了工作量。2) 由于開發(fā)模型是線性的,用戶只有等到整個過程的末期才能見到開發(fā)成果,從 而增加了開發(fā)風險。3) 通過過多的強制完成日期和里程碑來跟蹤各個項目階段4) 瀑布模型的突出缺點是不適應用戶需求的變化

7、(3) Benefits (advantages) of phased development(階段化開發(fā)模型)/incremental and iterative(增量迭代模型) model?增量模型1) 由于能夠在較短的時間內(nèi)向用戶提交一些有用的工作產(chǎn)品,因此能夠解決用戶的一些急用功能2) 由于每次只提交用戶部分功能,用戶有較充分的時間學習和適應新的產(chǎn)品。3) 對系統(tǒng)的可維護性是一個極大的提高,因為整個系統(tǒng)是由一個個構件集成在一起的,當需求變更時只變更部分部件,而不必影響整個系統(tǒng)。迭代模型1) 降低了在一個增量上的開支風險。如果開發(fā)人員重復某個迭代,那么損失只是這一個開發(fā)有誤的迭代的花費。

8、2) 降低了產(chǎn)品無法按照既定進度進入市場的風險。通過在開發(fā)早期就確定風險,可以盡早來解決而不至于在開發(fā)后期匆匆忙忙。3) 加快了整個開發(fā)工作的進度。因為開發(fā)人員清楚問題的焦點所在,他們的工作會更有效率。4) 由于用戶的需求并不能在一開始就作出完全的界定,它們通常是在后續(xù)階段中不斷細化的。因此,迭代過程這種模式使適應需求的變化會更容易些。Chapter 41、作業(yè)(1)Describe the process of determining requirements.(描述需求過程)首先我們通過問問題、論證相似系統(tǒng),甚至開發(fā)目標系統(tǒng)的全部或部分原型同顧客共同工作以引出需求。接著,我們捕捉在一份文檔

9、或數(shù)據(jù)庫中的需求。需求首先被寫下來以便于我們和顧客對系統(tǒng)應做什么達成一致。需求常被以一種更加數(shù)學化的表示方法重寫,以便設計員能更好地將系統(tǒng)需求轉換為好的系統(tǒng)設計。一個查核步驟保證需求是完全的、正確的、一致的。一個確認步驟,確保我們已經(jīng)描述了顧客在最產(chǎn)品中看到的東西。(2)It is usually helpful to separate the requirements into three categories. What are these three categories? Explain why it is helpful.(將需求分為三類是有好處的。這三類是什么?解釋為什么它是有幫助

10、的。)1)絕對要滿足的需求 2)很可取但不是必需的需求 3)可能但可以削減的需求。Why: 按類需求分析助于各方來理解什么是真還需要的。這種按類需求分析在軟件開發(fā)項目受時間或資源限制時也是有用的;如果被定義的影響花費太多或耗時太長而不能開發(fā)的話,那么更可刪去第3類需求,并分析第2類需求看能否削減或延期。(3)What is a requirements definition document? What is a requirements specification document ?(什么是需求定義文檔?什么是需求規(guī)范文檔?)需求定義文檔:是以顧客能理解的術語寫下的,需求定義完全地得出了顧

11、客期望系統(tǒng)要做的每件事。代表了顧客和開發(fā)者對顧客需要成想要的東西的理解,且通常由顧客和開發(fā)者聯(lián)合書寫。需求規(guī)范文檔:需求規(guī)格重新以適合開發(fā)系統(tǒng)設計的技術術語來重新表達需求定義,也是需求定義文檔的技術副本,是由需求分析員寫的。有時單獨一個文檔服務于兩個目標,顧客、需求分析員和設計員的共同影響。但通常兩型文檔都需要,并且在將需求定義重新解釋為規(guī)格時,特別要小心信息丟失或變化。(4)What is a functional requirement ? Give an example to explain.(什么是功能性需求?舉一個例子來解釋。)一條功能性需求描述了系統(tǒng)和環(huán)境的相互作用。例如,為確是功

12、能的需求,我們決定什么狀態(tài)是可接受的,系統(tǒng)將處于的狀態(tài)。而且,功能的需求描述了系統(tǒng)對給定激勵應如何舉動。舉例,對一個打印一周一次付薪支票的系統(tǒng),功能的需求必須回答定于付薪支票何時發(fā)布的問題,要打印一張付薪支票,必需的輸入是什么?什么條件下支付數(shù)量可改變?什么促使了一名雇員從薪水冊列表中刪除?(5) What is a nonfunctional requirement ? Give an example to explain. (什么是一個解功能性需求?舉一個例子來解釋。)一條解功能的需求或約束描述了施加于系統(tǒng)上的一條限制,限制了我們構建問題解決方案的選擇。例如,我們可能被告知系統(tǒng)必須在一臺A

13、ardvark計算機上開發(fā)或者讀取初始數(shù)據(jù)后不超過4小時時間里付薪支票必須被分發(fā)到雇員手中。類似地,我們被告知對系統(tǒng)的查詢必須在3秒內(nèi)得到回答。這些限制通常限制了我們對語言平臺或實現(xiàn)技術或工具的選擇,然而,直到需求已被指定后的設計階段才做出這樣的選擇。2、For the problem of XXXXX , Please draw its data flow diagram.(繪制分層數(shù)據(jù)流圖)某銀行計算機儲蓄系統(tǒng)的工作過程大致如下:儲戶填寫的存款單或取款單由業(yè)務員鍵入系統(tǒng),如果是存款則系統(tǒng)記錄存款人姓名、住址(或電話號碼)、身份證號碼、存款類型、存款日期、到期日期、利率及密碼(可選)等信息,

14、并印出存款單給儲戶;如果是取款而且存款時留有密碼,則系統(tǒng)首先核對儲戶密碼,若密碼正確或存款時未留密碼,則系統(tǒng)計算利息并印出利息清單給儲戶。請對以上問題畫出分層數(shù)據(jù)流圖。Chapter 51、作業(yè) (不包含面向數(shù)據(jù)流的設計方法既軟件結構圖);(1)、For each type of coupling, give an example of two components coupled in that way.  1)當一個組件要修改另一個組件的內(nèi)部數(shù)據(jù)或是一個組件要進入另一個組件的分支時,內(nèi)容耦合就發(fā)生了2)公共數(shù)據(jù)的改變就意味著所有對它進行訪問的組件都將受到影響。這就是所謂的公共耦合

15、3)控制耦合是指一個組件對另一個組件傳遞的參數(shù)是用于控制第二個組件的。4)當數(shù)據(jù)結構本身作為信息在兩個組件件傳遞的時候就發(fā)生了標記耦合5)如果僅僅是數(shù)據(jù)被傳遞的話,就是數(shù)據(jù)耦合(2)、For each type of cohesion, write a description of a component exhibiting that kind of cohesion.1)最低程度的內(nèi)聚是偶然內(nèi)聚,即組件中的某些部分是完全無關的。這種情況下,不相關的功能、過程或是數(shù)據(jù)被放在同一個組件中。2)邏輯內(nèi)聚的程度稍微高點兒,但也是不希望看到的,即幾個邏輯上相關的功能或是數(shù)據(jù)被置于同一組件中。3)一個

16、組件被用于初始化一個系統(tǒng)或一組變量。這樣的一個組件要按順序完成幾個功能,但是功能又僅和時間安排有關系,這就是時間內(nèi)聚。4)通常,功能都是以一個確定的順序執(zhí)行的。當一個組件中的幾個功能被分組的時候,就是為了保證能按這個順序執(zhí)行,這就是過程內(nèi)聚。5)如果一些特定的功能都是對相同數(shù)據(jù)集合進行操作或是產(chǎn)生相同的數(shù)據(jù)集合的話,我們可以把它們關聯(lián)起來,組件的這種組織方式就是通訊內(nèi)聚。6)如果組件中一個部分的輸出正好是另一個部分的輸入的話,就稱為順序內(nèi)聚。7)而最理想的還應該是功能內(nèi)聚,在組件中,每一個處理元素都是為了完成一個單一的功能,并且所有必需的元素都包含在這一個組件中。(1) Concepts (W

17、hat is): (概念)1)coupling:耦合衡量不同模塊彼此間互相依賴(連接)的緊密程度  2)cohesion:內(nèi)聚衡量一個模塊內(nèi)部各個元素彼此結合的緊密程度(2) The following is the pseudocode of a program. Please draw its program flow diagram.Start畫出偽代碼的程序流程圖(類似題型)START FIF p THENpWHILE q DOFTgEND DOFqELSE程序流程圖BLOCKTng nfEND BLOCKEND IFStopSTOPChapter 6一、作業(yè)1.(

18、1) What are major characteristics of object orientation?(面向對象的主要特點是什么?)1) 一致性2) 抽象3) 分類4) 封裝5) 繼承6) 多態(tài)性7) 連續(xù)性(2) What is the key difference between more traditional procedural development and the OO development?(傳統(tǒng)的程序開發(fā)和面向對象的開發(fā)之間的關鍵區(qū)別?)這個跨過程的一致性是較多的傳統(tǒng)的開發(fā)過程和面向對象的開發(fā)過程的關鍵不同點(3) What is a use case?(用例)個

19、用例描述了一個系統(tǒng)通過建立對話操作或展示一個用戶,外部系統(tǒng)或其他實體在所開發(fā)的系統(tǒng)中的函數(shù)性2 Draw a use case diagram for the ATM problem.(畫ATM問題的用例圖)瀏覽取款放款ATM用例圖客戶管理員4 Classify each of the following relationships as either an inheritance relationship(繼承關系), an aggregation relationship(聚合關系), or a general association(一般關聯(lián)). (1) Person Student;

20、an inheritance relationship (2) Library Library patron;. an aggregation relationship (3) Car Driver.a general association5. (1) Draw a use case diagram for the simple library problem.P174 (2) Draw a class diagram for the simple library problem. Suppose the classes in this problem are the library, bo

21、ok, copies of books, and patron.LibraryBooktitlePatronNameCopy (3) Suppose we have the following scenario for the simple library problem. A patron goes to the library and checks out a book. Two months later, he brings the overdue library book back to the library. Please draw a sequence diagram and a

22、 collaboration diagram for the scenario.時序圖:讀者 還書系統(tǒng) 罰款系統(tǒng) 借書系統(tǒng) 超時還書還書系統(tǒng)超時書已歸還 罰款該書可借閱數(shù)+1協(xié)作圖: 讀者罰款歸還借書系統(tǒng)還書還書系統(tǒng)罰款系統(tǒng)超時6(1) The following is a part of the Royal Service Station requirement:The Royal Service Station provides three types of services to its customers: refueling, vehicle maintenance, and par

23、king. Use the noun-in-text-description to identify the classes from the above requirement statement.答:Classes:service station,services,customer,refueling, vehicle maintenance, and parking. (2) Please draw a class diagram for (1).ServicesCustomerservice stationRefuelingVMParking7 (1) The following is

24、 a part of the Royal Service Station requirement: The station manager uses the system to control inventory. The system will warn of low inventory and automatically order new parts and fuel.Use the noun-in-text-description to identify the classes from the above requirement statement.答:system,manager,

25、inventory,fuel,parts (2) Please draw a class diagram for (1).InventoryManagerSystemPartsFuel (3) Please draw the state diagrams for the fuel and parts classes.(參照p338)二、Class diagram, state diagram; noun-in-text-description method;Use case diagram;類圖(作業(yè)題),狀態(tài)圖;文本描述方法中的名詞;用例圖(ATM【作業(yè)】、皇家服務站p325、圖書館p174

26、、自動售貨機); 自動售貨機系統(tǒng)用例圖 自動售貨機系統(tǒng)含擴展和使用關系的用例圖三、Concepts and examples 1)aggregation(聚集/聚合):when one class is part of another class. For example, the ordered item is part of the order.【聚集是整體與部分之間的關系。例如計算機和主板,計算機是一個整體,主板是其中的一部分,主板、顯卡、顯示器等部件組成了計算機。聚合中類之間可以獨立出來,比如一塊主板可以狀態(tài)A計算機上,也可以裝在B計算機上。也就是說這塊主板離開A計算機之后仍然是有意義

27、的。聚集使用空心菱形+實線表示】2)composition(組合):組合關系中的整體與部分具有同樣的生存期. 即組合是一種特殊形式的聚集?!窘M合中的類也是整體與部分的關系,與聚合不同的而是,其中的類不能對立出來。例如一個人由頭、手、腿和軀干等組成,如果這個頭離開了這個人,那么這個頭就沒有任何意義了。組合使用實心菱形和實線表示】3)association(關聯(lián)):Two classes are associated when they occur together, and when the relationship must be preserved for some period of ti

28、me. (ps:聚集和組合是關聯(lián)的特殊情況)For example, each order is associated with a salesperson. Until the order is complete, it is important to link the order with the salesperson.【關聯(lián)是指兩個類之間存在某種特定的對應關系,例如客戶和訂單,一個訂單只能屬于某個客戶,一個客戶可能會有多張訂單。根據(jù)方向,分為單向和雙向。根據(jù)對應的數(shù)量分為一對一、一對多、多對多等。關聯(lián)關系用實線+箭頭表示】4)generalization(泛化【繼承】):【泛化比較好理解,就是兩個類之間具有繼承關系。例如人和學生,學生繼承了人,除過具有人的一般的屬性和方法之外,他還要有學習的方法。泛化用空心三角形+實線表示】 Chapter 8 (1) What are the main software testing objectives(軟件測試目標)?測試是以發(fā)現(xiàn)錯誤為核心(2)Explain the following terms: 1)Unit test(單元測試):是指對軟件中的最小可測試單元進行檢查和驗證。單元測試是在軟件開發(fā)過程中要進行的最低級別的測試活動,軟件的獨立單元將在與程序的其他部分相隔離的情況下進行測試。2)integration tes

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論