期末總復習題(軟件工程)_第1頁
期末總復習題(軟件工程)_第2頁
期末總復習題(軟件工程)_第3頁
期末總復習題(軟件工程)_第4頁
期末總復習題(軟件工程)_第5頁
已閱讀5頁,還剩34頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

1、期末總復習題2009-06-10【一】判斷題(在括號中回答Y或N1. 軟件工程的作用,主要是告訴你怎么寫文檔。(N2. 參加ACM程序設計比賽時,選手“只寫代碼行不寫注解行”這一事實,確實說明了注解行不重要,在源程序中可有可無。( N 3. 在軟件項目開發的后期,為了加快開發進度,可以多增加幾個開發人員。(N4. 在軟件項目開發的早期,為了加快開發進度,可以多增加幾個開發人員。(Y5.規范化的概要設計文檔比需求分析文檔更重要,因為有了概要設計文檔就可以進行詳細設計。( N6. 規范的詳細設計文檔比源程序更重要,因為有了文檔就可以寫出源程序。(Y7. 模塊間的耦合越強,則表明模塊里面的內聚性越強

2、。(N8. 模塊的內聚越強,則表明模塊之間的耦合越弱。(Y9. CMM是CMMI的祖先,CMMI是CMM的后續。(Y10. ISO9000是ISO9001的祖先,ISO9001是ISO9000的后續。(Y11. 軟件配置管理就等于軟件版本管理。(N12. 軟件版本管理是軟件配置管理的研究課題。(Y13. 敏捷開發模型就等于結對編程。(N14. 敏捷開發模型就是快速原型法。(N15. 面向元數據的開發方法就是傳統意義下的Jackson方法。(N16. 面向過程的開發方法就是結構化方法。(Y17. 數據流圖DFD就等于PAD圖。(N18. 數據流圖DFD就等于程序設計流程圖。(N19. “接口和實

3、現分離”是軟件設計原理之一。(Y20. “單入口和單出口”是程序設計原則之一。(Y21. 程序測試不僅能證明錯誤的存在,也能證明錯誤的不存在。(N22. 編譯系統不認識、也不編譯源程序中的注解行這一事實,確實說明了注解行不重要,在源程序中可有可無。(N23. 若兩個實體之間存在多對多的關系,則應該將第三個實體插入其中,使原來的一個多對多關系變為現在的兩個一對多關系,這里的第三個實體,實際上是一個復雜的關系,也是笛卡爾積的子集。(Y24. 質量來源于過程,過程需要改進,改進是無止境的,這就是CMMI精神。(Y25. 測試只能發現程序中的錯誤,不能發現文檔中的問題。(N26. 敏捷模型是輕載模型,

4、CMMI模型是重載模型。(Y27. 高內聚低耦合是軟件設計原理或原則之一。(Y28.軟件測試的目的是改正軟件中的錯誤。(N 應該是發現軟件中的錯誤29.同行評審會議中的同行專家,一般都是從公司外面聘請的。(N30.軟件策劃應該在需求分析之前。(N31.需求分析就是分析元數據與中間數據的關系。 (N 太片面32.信息系統需求分析主要是分析元數據與中間數據的關系。 (Y33.項目經理的主要職責就是進行數據庫設計。 (N34.編碼階段結束后,測試經理就應該立即著手編寫測試計劃。(N35.軟件設計就是數據庫設計。 (N40.軟件實現就是編程序。 (N41.軟件實現主要是編程序。 (Y42. CMMI就

5、是解決項目管理的工作規范化問題。(N43. 制定軟件測試計劃,一項重要工作是要將用戶需求分解為測試需求,然后再將測試需求轉化為測試用例。(Y44. 軟件測試與軟件調試是一回事。(N45.漸增式測試是逐個把未經過測試的模塊組裝到已經過測試的模塊上去,進行集成測試。每加入一個新模塊進行一次集成測試,重復此過程直至程序組裝完畢。(Y45.面向對象設計是運用類的思想,把分析階段得到的需求轉變成符合成本和質量要求的、抽象的系統實現方案的過程?;蛘哒f,面向對象設計就是用面向對象觀點建立求解域模型的過程。(Y 46.結構化設計(SD是面向數據流的設計,它是以需求分析階段產生的數據流圖DFD為基礎,按一定的步

6、驟映射成為系統的軟件結構。(Y47.信息隱蔽是指在設計和確定模塊時,使得一個模塊內包含的信息(過程或數據,對于不需要這些信息的其它模塊來說,是不能訪問的。(Y48.抽象是認識復雜現象過程中使用的思維工具,即抽出事物本質的共同的特征而暫不考慮它的細節,不考慮其它非本質的因素。(Y49.路徑覆蓋是指設計足夠的測試用例,覆蓋被測程序中所有可能的路徑。(Y50.判定/條件覆蓋是指設計足夠的測試用例,使得判定表達式中的每個條件的所有可能取值至少出現一次,并使每個判定表達式所有可能的結果也至少出現一次。(Y51.條件組合覆蓋是指設計足夠的測試用例,使的每個判定表達式中條件的各種可能的值的組合都至多出現一次

7、,條件組合覆蓋是比較強的覆蓋標準。(Y52.條件覆蓋是指設計足夠的測試用例,使得判定表達式中每個條件的各種可能的值至多出現一次。滿足條件覆蓋并不一定滿足判定覆蓋。(Y53.軟件工程是為了克服軟件危機。(Y54.軟件工程是完全克服了軟件危機。(N 太絕對【二】名詞解釋1.元數據元數據是關于數據的數據,組織數據的數據。如數據庫概念設計中的實體名和屬性名,數據庫物理設計中的表名和字段名等都是元數據。2.軟件工作產品(注:軟件工作產品和15.軟件產品的異同···軟件產品是最后一個階段的軟件工作產品。軟件工作產品是指開發過程中每個階段的文檔、數據和程序,即每個開發階段的輸出

8、制品。3.評審與審計評審是對軟件工作產品而言的,它針對軟件工作產品的開會(評審或匯簽(評審活動,是一次集體行為。審計是復查軟件活動的程序是否遵守規則,是否合法。它本身是審計員的一次個人行為。4.不符合項不符合項是指沒有滿足要求的項。5.黑盒測試黑盒測試又稱功能測試。在這里,盒子指的是被測試的軟件,“黑盒”就是只知道被測試軟件的外部情況,主要是界面和接口,被測試軟件的內部邏輯結構和數據結構,對測試人員來說是不可見的,主要關注被測試軟件的功能實現。6. 白盒測試白盒測試就是對程序執行路徑的測試,又叫做玻璃盒測試(Glass Box Testing、透明盒測試(Clear Box Testing、結

9、構化測試(Structured Testing、開放盒測試(Open Box Testing、基于代碼的測試(Code-Based Testing等等。7. 項目 P.326項目是一次性的多任務工作,它具有確定的開始日期、結束日期、工作范圍、經費預算、質量標準,以及特定的功能、性能和接口要求。項目管理是為了實現項目目標,運用相關的知識、技能、方法與工具,對項目的計劃、進度、質量、成本、資源進行管理和控制的活動。或(項目管理是指“在軟件項目管理活動中,運用專門的知識、技能、工具和方法,使項目能夠如期或提前實現。”9.客戶化客戶化是指按照客戶的實際情況,對軟件產品的功能、性能、接口做適當的改動。1

10、0.初始化初始化是指按照客戶的實際情況,對軟件產品的代碼表(又稱數據字典進行初始化,即將客戶的各種信息編碼錄入到相應的代碼表中。11.CMM與CMMICMM是指“能力成熟度模型”,是對于軟件組織在定義、實施、度量、控制和改善其軟件過程的實踐中各個發展階段的描述。(即評估軟件能力與成熟度等級的一套標準CMMI 的全稱為:Capability Maturity Model Integration,即能力成熟度模型集成。CMMI是CMM模型的最新版本。(···CMMI是CMM的繼承與發展,CMM只適用于軟件企業,CMMI適合于所有的IT企業12. KPA與PA關鍵過程域

11、(KPA,Key Process Area ,它指出了企業需要集中力量改進的軟件過程。同時,也指明了為了要達到該能力成熟度等級所需要解決的具體問題。項目管理員(PA,Project Administrator。13.敏捷模型或敏捷方法敏捷方法是在保證軟件開發有成功產出的前提下,盡量減少開發過程中的活動和制品的方法。其特點是對軟件生產率的高度重視,主要適用于需求模糊或快速變化下的、小型項目組的開發。14.軟件軟件的定義:軟件 = 程序 + 數據 + 文檔?,F在有一種新提法正在引起關注,這種提法是:軟件 = 知識 + 程序 + 數據 + 文檔。15.軟件產品軟件產品是指不局限于特定業務領域、能被廣

12、大用戶直接使用的軟件系統(或軟件產品是指軟件開發與測試工作已經完工、并且可投入市場銷售的軟件產品,如操作系統、編譯系統、工具系統、通用財務系統等。16.可行性分析與軟件立項(···P.63···可行性分析是世界上普遍采用的一種研究工程項目是否可行的科學。它通過各種有效的方法,對工程項目進行分析,從技術、經濟、財務等方面加以評價,最終給投資決策者提供是否選擇該項目進行投資的依據??尚行苑治鍪橇㈨椀那疤?立項是可行性分析的結果。對于軟件企業,一般不叫項目可行性分析而叫立項,只有在學校、機關、科研所等單位,才叫項目可行性分析。17. 軟件生

13、存周期軟件生存周期是指軟件的使用壽命,即生產周期加上使用周期。18. CASE工具CASE(Computer Aided(or AssistedSoftware Engineering計算機輔助軟件工程。CASE是能夠提供一組能夠自動覆蓋軟件開發生命周期各個階段的集成的、減少勞動力的,并可以加快開發速度,提高應用軟件生產率并保證應用軟件的可靠品質的工具。19.集成測試集成測試是指檢測此前測試過的單個模塊或組件,是否能完好地融入系統,與其他模塊或組件正確地一起運行。軟件產品或軟件項目有完善的文檔,并且文檔與程序代碼互相匹配,兩者完全一致。對這種軟件產品或軟件項目的維護稱為結構化維護。21. SQ

14、A P.308軟件質量保證(SQA,Software Quality Assurance是一套有計劃、有系統的用于向管理層保證擬定出的標準、步驟、實踐和方法能夠正確地被所有項目所采用的方法。22.客戶與用戶客戶是軟件企業合同的簽約方,是軟件產品的銷售對象??蛻羰穷櫩偷囊徊糠?。用戶是軟件產品的最終使用者,用戶是客戶的一部分。23.軟件質量所謂軟件質量,就是供方提供的軟件產品滿足用戶明確和隱含需求的能力特性的總和。軟件測試V模型是由開發階段和測試階段構成的最典型的測試模型。開發階段先從定義軟件需求開始,然后要把這些需求不斷地轉換到概要設計和詳細設計中去,最后形成程序代碼;測試階段是在代碼編寫完成以

15、后,先做單元測試開始,然后是集成測試、系統測試和驗收測試。25.顧客、客戶和用戶顧客的范圍比“客戶”的范圍更廣泛一些,它包括潛在的客戶。客戶是軟件企業合同的簽約方,是軟件產品的銷售對象。客戶是顧客的一部分。用戶是軟件產品的最終使用者,用戶是客戶的一部分。26.軟件配置項軟件配置管理中的基本單元,稱為軟件配置項。27.軟件功能、性能和接口軟件功能指的是軟件的作用,即使用軟件所能達到的目的;軟件性能指的是完成軟件功能的效率;軟件接口指的是軟件不同部分之間的交互接口。通常就是所謂的API應用程序編程接口,其表現形式是源代碼。28.軟件過程所謂軟件過程,就是根據選定的生存周期模型,規定軟件的開發階段,

16、及每一階段的工作步驟和文檔標準等內容。里程碑是一個標記,之需要經過內部評審。一個里程碑是一個檢查點,但不一定是基線?;€是軟件工作產品,它是經內部和外部評審過的,并且是下一階段工作的基礎。一根基線是一個里程碑或一個檢查點。30.信息系統利用計算機網絡技術、數字通信技術與數據庫技術實現信息采集和處理的系統,稱為當代信息系統。31.集成測試集成測試是指檢測此前測試過的單個模塊或組件,是否能完好地融入系統,與其他模塊或組件正確地一起運行。32.BugBug是指電腦系統的硬件、系統軟件(如操作系統或應用軟件(如文字處理軟件出現的錯誤、漏洞。33. ER圖E-R圖也即實體-聯系圖(Entity Rela

17、tionship Diagram,提供了表示實體型、屬性和聯系的方法,用來描述現實世界的概念模型。34.概念數據模型概念數據模型(CDM也稱信息模型,它以實體-聯系(Entity-RelationShip,簡稱E-R理論為基礎,并對這一理論進行了擴充。它從用戶的觀點出發對信息進行建模,主要用于數據庫的概念級設計。概念數據模型CDM,就是數據庫的邏輯設計,即E-R圖。35.物理數據模型物理數據模型(PDM就是數據庫的物理設計,即物理表。36.原型模型以某個軟件原型為參照模型的開發方法,叫做原型法。37.UMLUML是一種面向對象的圖形化的建模語言,主要用于軟件的分析與設計38.RUP統一軟件開發

18、過程(RUP,Rational Unified Process又稱為統一軟件過程,是一個面向對象且基于網絡的程序開發方法論。【三】簡答題1. 軟件工程中的理論、方法、標準、規范,主要來自于哪里?即:軟件工程的源頭或基礎是什么?【答】軟件工程中的理論、方法、標準、規范,主要來自于IT企業軟件研發的工作思路與步驟以及面向工程實踐案例。信息產業的核心是芯片與軟件,軟件工程是軟件開發、生產、服務和管理的科學。所以可以說軟件工程是以信息產業的飛速發展為源頭或基礎的。2.軟件開發文檔包括哪些具體文檔?【答】開發文檔包括目標程序、源程序、詳細設計說明書、概要設計說明書、需求規格說明書、用戶需求報告、軟件合同

19、。3. 軟件管理文檔包括哪些具體文檔?【答】管理文檔包括項目開發計劃書、測試計劃、測試報告、工作日報、會議記錄、開發進度報告、開發總結報告,其中開發進度報告又分為開發進度周報和開發進度月報。4.請詳細解釋軟件的定義和程序的定義?!敬稹寇浖亩x:軟件 = 程序 + 數據 + 文檔。這里的程序是指程序系統。這里的數據不僅包括初始化數據、測試數據,而且包括研發數據、運行數據、維護數據,也包括軟件企業積累的項目工程數據和項目管理數據中的大量決策原始記錄數據。這里的文檔指的是軟件開發過程中的分析、設計、實現、測試、維護文檔、管理文檔。現在有一種新提法正在引起關注,這種提法是:軟件 = 知識 + 程序

20、+ 數據 + 文檔。程序是計算機為完成特定任務而執行的指令的有序集合。從應用的角度可理解為:面向過程的程序 = 算法 + 數據結構面向對象的程序 = 對象 + 信息面向構件的程序 = 構件 + 構架。5.“四種開發方法”和“五個面向實施理論”的提法對嗎?為什么?【答】“四種開發方法”和“五個面向實施理論”的提法對,并且既精彩又實用。首先,“四種開發方法”是指“面向過程的方法、面向對象的方法、面向數據的方法、形式化方法”,面向過程的方法來源于面向過程的程序設計,面向對象的方法來源于面向對象的程序設計,面向數據的方法就是面向元數據的方法,它來源于關系數據庫程序設計,形式化方法來源于離散數學中的集合

21、運算和邏輯運算。四種方法各適用于不同的場合,各有優缺點,互相促進,構成一個開發方法論的多極化世界。其次,“五個面向實施理論”是指“面向流程分析、面向數據設計、面向對象實現、面向功能測試、面向過程管理”,它是在綜合“四種開發方法”各自的優點之后提出的軟件工程實施理論,是對前者的繼承與發展。6.“圖書館信息系統”的開發選用什么模型合適?為什么?【答】“圖書館信息系統”的開發選用瀑布模型比較合適。因為瀑布模型開發階段清晰,便于評審、審記、跟蹤、管理和控制,而且“圖書館信息系統”在一定程度上符合瀑布模型的條件:(1它在開發時間內需求沒有變化或很少變化。(2分析設計人員對應用領域很熟悉。(3低風險項目。

22、(4用戶使用環境比較穩定。(5用戶提出需求以外,很少參與開發工作。7. “精品課程網站”的開發選用什么模型合適?為什么?【答】“精品課程網站”的開發選用原型模型比較合適。因為現在“精品課程網站”比較普及,很容易找到一個可以事先給客戶展示的產品原型,讓客戶試用,在使用中收集客戶意見,根據意見立刻修改原型。原型模型開發速度快,用戶意見反饋實時,有利于開發商在短時間內推廣并實施多個客戶,而且“精品課程網站”在一定程度上符合原型模型的條件:(1已有產品/產品原型,只需客戶化的項目。(2簡單而熟悉的行業或領域。(3有快速原型開發工具。(4進行產品移植或升級。8.什么叫風險分析?技能風險和技術風險有何區別

23、?【答】這里的風險分析是指軟件立項過程中對產品開發、銷售等可能出現的風險進行分析。分析方法就是將一個大風險化解好多個小風險,然后一個個克服小風險。技術風險是指采用新技術的風險程度。技能風險是指項目組成員掌握新技術的風險程度。二者的區別在于一個是說新技術(如新的開發工具,新的設計思想本身的風險,一個是說人員要掌握這種新技術的風險。9.為什么需求分析特別重要、又特別難?P.66【答】需求分析特別重要,是因為:(1許多大型應用系統的失敗,最后均歸結到需求分析:要么獲取需求的方法不當,使得需求分析不到位或不徹底,導致開發者反復多次地進行需求分析,致使設計、編碼、測試無法順利進行;要么客戶配合不好,導致

24、客戶對需求不確認,或客戶需求不斷變化,同樣致使設計、編碼、測試無法順利進行。(2需求分析的輸出文檔是用戶需求報告,它既是軟件生存周期中的第一個里程碑,又是客戶、軟件開發人員和項目管理人員三者必須遵守的一根基線,是三者共同工作的基礎,是項目Alpha測試和Beta測試的準則,是供方交付產品和需方驗收產品的依據。(3需求分析要占用整個軟件開發時間或工作量的30%左右。(4需求獲取中的錯誤,屬于軟件開發中的早期錯誤,它會在后續的設計和實現中進行發散式的傳播。根據以上四項原因,IT企業的高層經理,對需求分析特別重視,常常派經驗最豐富的人員去作項目需求。正因為如此,“系統分析員”才是軟件行業中的最高技術

25、職稱。需求分析特別難,是因為:(1用戶需求具有動態性,即需求的不穩定性:在整個軟件生存周期內,應用軟件的需求會隨著時間的進展而有所變化,個別用戶甚至會朝三暮四地變化;(2用戶需求具有模糊性,即需求的不準確性:由于用戶的素質不是很高,業務流程不很規范,所以需求表達不很清楚也不夠明確。(3開發者和用戶要對需求達成完全一致的認識,用戶要在需求報告上簽字,要承擔責任;(4中國的國有企業正處于變動期(體制改革與企業重組,中國的民營企業正處于成長期(發展壯大與不完全成熟。而處于變動期和成長期的企業需求是不成熟、不穩定和不規范的,這就給信息系統的需求分析增加了難度系數。10.需求分析為什么是面向流程的?【答

26、】系統的功能、性能、接口、界面都是在流程中動態實時的反映出來。在所有的流程(物流、人流、資金流、信息流、單據流、報表流、數據流中,數據流最重要,也最具有代表性。因為在計算機網絡系統內,一切流程都表現為數據流,或者說是數據流在不同方向的投影。而流程是動態的、實時的。所以說,需求分析是面向流程的。11.軟件概要設計與軟件詳細設有什么聯系與區別?【答】概要設計說明書,一是要覆蓋需求規格說明書的全部內容,二是要作為指導詳細設計的依據。它注重框架上的設計,它是軟件系統的總體結構設計,全局數據庫(包括數據結構設計,外部接口設計,功能部件分配設計,部件之間的內部接口設計,它要覆蓋需求規格說明書中的功能點列表

27、,性能點列表,借口列表。詳細設計說明書,一是要覆蓋概要設計說明書的全部內容,二是要作為指導程序設計的依據,它注重微觀上和框架內的設計,它是各子系統的公用部件實現設計,專用部件實現設計,存儲過程實現設計,觸發器實現設計,外部接口實現設計,部門角色授權設計,其他詳細設計等。兩者的設計者不同,在一般情況下,概要設計說明書是由系統設計師負責,詳細設計說明書則由高級程序員負責。12.軟件企業為什么要對員工進行培訓?怎么進行培訓?【答】P320 內部培訓、外部培訓13.什么叫軟件發布?軟件發布要做哪些準備工作?P.252【答】軟件發布是指將軟件產品投入市場,并得到回報的一個過程。軟件發布前的準備工作:(1

28、編寫培訓教材;(2產品包裝設計;(3產品母盤制作;(4產品光盤刻錄;(5軟件資料印刷;(6銷售人員培訓;(7發布產品檢驗;(8發布產品交付;(9確定發布方式。14.怎樣理解“優秀的項目經理主要是干出來的,不是學出來的;是帶出來的,不是教出來的”?【答】一個人要成長為一名合格的項目經理主要不是靠學,而是靠干,當然學也很重要。只學不干,是絕對出不來項目經理的。光干不學,有可能會出現的情況是:其能力本來可以做一個大項目經理,但現在只能做一個小項目經理,因為他只是一個經驗主義者,缺乏理論指導,有些問題的認識可能上不去,所以不能成為大器??傊?項目經理必須通過干才能成熟起來,只要通過學才能提高起來,“干

29、”字當頭,學在其中,干學并用,互相促進,這就是項目經理成長的道路。15.請用樹型結構圖來表示軟件工程研究的主要內容與方法.【答】 16. 為什么中國人實施CMMI有做秀嫌疑,而印度人一般沒有做秀嫌疑?CMMI 的全稱為:Capability Maturity Model Integration,即能力成熟度模型集成。CMM/CMMI僅僅是一個體系,一個框架,他僅僅從過程和產品上對開發行為進行規范,而不是給你提供了完整的方法。在這個框架下面,你可以選用最適合自己的過程,最有效的開發技術。至于什么過程和什么方法,并不是最重要的。CMM/CMMI僅僅表示你往生產好的軟件走出了重要的一步,但并不是全部

30、。CMM/CMMI本身是一套非常有價值的過程模型,但簡單的將其圖騰化卻是不正確的。印度人能夠把軟件整體結構把握得很好,能夠完成大型復雜的軟件,能夠形成相當好的設計與實現文檔,能夠在國際外包市場上占據很大比例。而中國人整天在那里琢磨著的是數據結構、算法花樣和界面花招,到最后只能成為Code高手,而不是一個龐大團隊。這些高手雖然對某些特定的開發工具非常精通,比如.net和J2EE開發平臺。但就是不能按質、按量、按時把一個大型軟件穩妥而完整地開發出來。招聘印度人,給應聘者出了一份與國內差不多的試卷,有基礎概念和編程題目。等到他們完成后,我們這些中國的自認高手驚呆了!他們的編程題目簡直像是抄襲的!程序

31、結構、注釋、變量命名就不說了吧,全部都是極其類似!反觀中國的牛人和高手,每個人都有自己的一套。到了新的崗位,先把前任的程序貶損一通,然后自己再開發更多的問題代碼來代替它。我們公司統計,一個軟件中有4個以上版本,每個人都覺得別人做得差,自己再搞一套。中國人,就是這個樣子,還會辯解說:“我們這樣是創新”。其實軟件的發展,早就走過了求伯君(20世紀90年代的編程開才、WPS的發明人、現任金山軟件股份有限公司董事長兼總裁那個編碼英雄的年代,程序員已經是個坐辦公室的藍領了。你具備擰好一個螺絲釘的能力就可以了,因為Code是最低級的事情了。所以說中國人實施CMMI更多的時候有作秀的嫌疑。軟件公司需要的軟件

32、人才,主要是系統需求分析、系統架構設計、系統測試、過程改進與過程管理、程度編碼的人才,即應用型人才!難怪國內一些博士生不適應在企業工作,軟件公司將他們轟走的事常有發生。這揭示出我們與與印度軟件企業的差距!差距不僅僅在于軟件公司的規模,而在于軟件人員的職業素質與道德規范!究其原因,在于軟件組織內部的CMM/CMMI管理水平。印度人做CMM/CMMI是真正做給自己用的,即自己的軟件組織過程改進。中國人做CMM/CMMI有時是做給別人看的,比如在招標或投標中裝裝門面,在廣告中壯壯聲勢,而不是專門為了實現自己的軟件組織過程改進!(以上大家可以自行刪減但是體現比較印度和中國的語句還是寫進試卷里此上為小山

33、整合觀點,如果有不同意見或是瞧不上小山本人查找,請不要將這些寫在你的試卷上,因為對誰都是種煎熬,謝謝合作,預祝大家好成績。17.軟件設計要遵守哪些原理或原則?P.119【答】(1抽象;(2分解與模塊化;(3低耦合高內聚;(4封裝;(5接口和實現分離。18. 詳細設計有哪些描述工具?P.123【答】面向過程詳細設計的描述工具有:(1流程圖;(2N-S圖;(3程序設計語言;(4決策表。面向數據詳細設計的描述工具主要有:(1概念數據模型(CDM;(2物理數據模型(PDM;(3存儲過程。面向對象詳細設計的描述工具主要有:(1類圖;(2順序圖;(3狀態圖;(4部件圖;(5部署圖。19. 需求分析有哪些描

34、述工具?【答】需求分析描述的工具包括數據流圖、業務流程圖、用況圖、時序圖、用戶交互圖、數據模型圖和功能需求列表、性能需求列表、接口需求列表、界面需求列表等。20. 請各舉一例,說明面向過程、面向元數據、面向對象的編程代表語言各是什么語言?【答】Pascal、BISIC、C語言等Oracle、Sybase等Java、C+等21. 請各舉一例,說明面向過程、面向元數據、面向對象的編程方法,各用在什么地方?【答】在軍事上的實時跟蹤監控系統中有很好的應用。如我方偵察衛星發射后其飛行軌跡的捕獲、測量、跟蹤和預報導彈防御系統中敵方導彈發射后飛行軌跡的捕獲、測量、跟蹤和預報,其軟件系統都是采用面向過程的方法

35、設計和實現的;適合數據層(數據庫服務器設計與實現。在電子商務中的應用。網站后臺數據庫服務器上的數據處理和數據傳輸,其軟件都是利用面向數據的方法設計與實現的;在兩層結構(C/S的客戶層上,在三層結構(B/A/S的表示層和業務邏輯層上,進行詳細設計和編程實現時,要采用面向對象的方法。在電子商務中的應用有:網站前臺界面的制作,信息的發布和處理,用戶在網上瀏覽和錄入信息等應用軟件都是利用面向對象的方法設計與實現的。22. 軟件工程中有哪幾種不同的數據字典?【答】主要有一下四種數據字典:(1數據流圖中的數據字典:是對數據流圖DFD的補充。用數據字典說明每個數據流的組成、每個數據文件的內容以及每個數據項的

36、定義等;(2數據庫中的數據字典:就是數據庫中的元數據,例如表名、字段名、索引名、主鍵名等;(3數據庫管理系統中的系統數據字典:它分為系統數據字典和用戶數據字典兩部分,用這些字典來管理數據庫;(4信息系統用戶初始化中的用戶數據字典:就是一些科目代碼、單位代碼等等。23.你怎么用“Check out-Edit-Check in”對配置管理中的軟件開發庫進行具體操作?【答】“Check outEditCheck in”,這是配置管理工具的基本操作,這種操作是對3個庫而言的,對每一個庫中的內容進行操作(比如增、刪、改,要先將操作內容從庫中取出,放入內存緩沖區,這一動作叫做“Check out”。當操作

37、(Edit完成后,又要將本次操作的內容放入相應的庫中,這一動作叫做“Check in”。值得注意的是,每次Check out后,相應庫中原來的內容仍然保留著。每次Check in后,也不會覆蓋原來的內容。這就自動保存了可供追蹤的軌跡。以“Check outEditCheck in”操作為基礎,以版本控制為中心、進行軟件配置項的標識、跟蹤與管理的電子工具,就是配置管理工具。程序員只能在軟件開發庫上作“Check outEditCheck in”操作。【四】應用題1. 如果要成為一位優秀的程序員,你認為要具備什么素質?【答】(1團隊協作精神的訓練和要求;(2數據結構分析與設計能力的訓練和要求;(3

38、文檔習慣的訓練和要求;(4規范化的代碼編寫能力訓練和要求;(5復用性能力的訓練和要求;(6寫構件能力的訓練和要求;(7測試習慣的訓練和要求;(8學習和總結能的訓練和要求;2. 如果你是軟件公司的專職配置管理員,你將怎樣開展公司的軟件配置工作?【答】P.301(1與項目經理一起,識別出項目的所有基線,并標識出這些基線及其所屬的配置項,再根據有關規范和規程制定配置管理計劃;(2在配置管理服務器上建立配置管理庫,作為配置管理的工作倉庫,并對倉庫進行管理和維護;(3配置項變更控制。它包括變更申請、評審和批準、實行變更、測試變更對其他配置項的影響、變更驗證和入庫;(4基線變更控制。工作程序與配置項變更控

39、制相同;(5最終軟件版本產品生成的控制。最終軟件版本產品由軟件基線庫中的配置項組裝而成,在配置組裝之前,必須凍結該產品的所有配置項。生成之后,將此產品入庫到軟件產品庫,并對其實行凍結;(6對配置項、基線、軟件版本產品進行跟蹤和審計,并編制配置管理活動報告,供相關組和個人閱讀;(7定期或事件驅動,對軟件開發人員進行配置管理知識培訓;(8配置管理工具的安裝,配置管理服務器的日常維護。3.如果你是軟件公司的專職軟件質量保證員,你將怎樣管理公司的軟件項目或軟件產品的質量?【答】(1 事先的預防措施:制訂軟件過程開發規范和軟件產品質量標準,對軟件開發和管理人員進行這方面知識和技能的定向培訓(規范是對行為

40、的約束、標準是對產品的約束、規程是對操作的約束;事中的跟蹤監控措施:按照CMM/CMMI或ISO9000的過程管理思想,對軟件過程和軟件產品的質量控制提供可視性管理;事后的糾錯措施:對軟件工作產品和軟件產品加強評審和檢測。評審是在宏觀上框住您,在微觀上挑剔您,找出不符合項。檢測是為了發現Bug,改正錯誤。(2從4個方面來改進軟件質量:力圖從編程語言上實現突破;力圖從CASE工具上實現突破;力圖從軟件過程管上實現突破;力圖從測試與糾錯上實現突破。先后出現了各種測試方法、工具和糾錯手段。(3管理人員還需要做到:行為規范化,報告制度化,報表統一化,數據標準化,信息網絡化,管理可視化,錯世即時化。(4

41、最后還需要建立“五報一例制度”,即日報表,周報表,月報表,里程碑報表,重大事件報表和例會制度。4. 如果你是軟件公司的軟件分析師,你將怎樣進行需求分析?【答】系統分析師應對用戶進行需求分析培訓;用戶應參加業務需求分析的全過程;向用戶發放需求調查表格;召開需求調研會;深入到重點崗位了解需求;必要時參加實際的業務工作;邊分析邊整理文檔,邊征求修改意見;定期向用戶中的操作層、管理層、決策層分別匯報,演示目標系統的流程、功能、接口及界面調度需求。1面向流程分析;2找出元數據:元數據是組織數據的數據,元數據就是信息系統中實體名及其屬性名的集合;3找出中間數據:中間數據蘊藏在信息系統的輸出報表中,報表名稱

42、及其內部的數據項名稱,一般就是中間數據;4找出元數據與中間數據之間的關系;5找出單據中的流程:a該單據的上游是什么?b同一個單據內部的數據項之間,也存在一個先后次序的問題?c該單據的下游是什么?6歷史上存在三種需求分析方法:面向功能分析,面向對象分析,面向數據分析;7分析與設計要同時考慮:因為許多問題在分析“目標系統是什么”的時候發現不了,到了設計時才會暴露出來。分析與設計同時考慮,也符合迭代模型的思想,即:復雜的需求是個需求迭代的過程。8需求分析藝術:a需求分析師雙打項目。宏觀上和微觀上都要以流程為主,不能偏聽偏信。b決策層提出宏觀上的統計、查詢、決策需求,管理層提出業務管理和作業控制需求,

43、操作層提出錄入、修改、提交、處理、打印、界面、傳輸、通信、時間與速度等方面的操作需求。9提取需求技術:會談、場景、原型、實地觀察10提取對象、屬性和方法的技術a對象在哪里?屬性在哪里?方法在哪里?11實時系統需求分析法匯報兩三次,知道客戶確認位置,同時要與客戶交朋友。5. 如果你是軟件公司的軟件設計師,你將怎樣進行軟件架構設計?【答】首先要進行架構建模:1捕獲早期的設計決策;2捕獲軟件運行環境;3為底層實現提供限制條件;4為開發團隊的結構組成提供依據;5設計系統滿足可靠性、可維護性、其他性能等;6方便開發團隊間的交流;軟件架構設計要包含以下幾個方面:1軟件系統中包含了哪些子系統/部件;2每個子

44、系統/部件都完成了哪些功能;3子系統/部件對外提供或使用外部的哪些接口;4子系統/部件間的依賴關系。以及對實現和測試的影響;5系統式如何部署的;6. 如果你是軟件公司的主程序員,你將怎樣進行軟件詳細設計?【答】1基本任務是怎樣具體地實現這個系統。主要任務是設計出程序的“藍圖”,供程序員日后根據這個藍圖編寫出實際的程序代碼。2基本步驟是:確定模塊如何實現;編寫詳細設計說明書;制定單元測試計劃;評審詳細設計。3對于B/S的系統,“面向數據方法用在數據庫服務器層次上系統的設計與實現,面向對象方法用在除數據庫服務層次之外的其他層上的系統的設計與實現,面向過程方法用在其他兩種方法本身內部函數的設計與實現

45、”。4在實施的過程中,在宏觀上仍然要遵守“五個面向”的實施理論,即:“面向流程分析、面向數據設計、面向對象實現、面向功能測試、面向過程管理”。7. 如果你是項目經理,你怎么用4種不同的方法,對軟件產品的規模進行量化估計?【答】1希臘古都法:在沒有歷史數據的情況下,這種方式適用于評定過去和將來。這個技術要求有多種軟件相關經驗人的參與,互相說服對方。希臘古都法的步驟如下:a協調人向各專家提供項目規格和估計報表b協調人召集小組會,各專家討論與規模相關的因素c各專家匿名填寫迭代表格d協調人整理出一個估計總結,以迭代表的形式返回專家e協調人召集小組會,討論較大的估計差異f專家復查估計,總結并在迭代表上提

46、交另一個匿名估計g重復d- f,直到達到最低估計和最高估計一致。2類比法:適合評估一些歷史項目在應用領域、環境和復雜度的相似項目,通過新項目與歷史項目的比較得到規模估計。其基本步驟如下:a整理出項目功能列表和實現每個功能的代碼行b標識出每個功能列表與歷史項目的相同點與不同點,特別要注意劣勢項目做得不夠的地方c通過步驟a、b得出各個功能的估計值d產生規模估計3功能點估計法:是在需求分析階段基于系統功能的一種規模估計方法。通常步驟如下:a計算輸入、輸出、查詢、主控文件和接口需求的數目b將這些數據進行加權乘c估計者根據對復雜度的判讀,總數可以用+25%、0或-25%調整4無禮估計法:對各個項目活動的

47、完成時間,按三種不同情況估計:一個產品的期望規模,一個最低可能估計,一個最高可能估計。用這三個估計來得到一個產品期望規模和標準偏差的物理估計。8. 如果你是項目經理,你怎么管理一個由七名成員組成的軟件團隊?一抓需求獲取與確認;二抓計劃制定與執行;三抓團隊分工與協作;四抓后勤供應與保障;五抓產品測試與交付;六抓開發標準與規范;七抓員工考核與獎勵。9. 如果你是軟件實施經理,你怎么組織公司軟件的產品實施工作?【答】軟件工程的覆蓋范圍包括了售前、售中、售后三個階段的工作。1售前工程師/產品形象代表工作:工作職責為制定投標書,講解投標書,主持技術談判,參與合同簽約,制訂初步的實施計劃。2實施工程師:工

48、作職責為產品安裝調試,產品的客戶化,用戶培訓,產品的驗收交付。在產品發布之前,對其進行培訓,使之掌握該產品的功能、性能、接口,熟悉產品運行的軟硬件環境,熟練安裝調試系統,不但要會初始化系統,還會客戶化系統。a對于不需要客戶化的軟件產品,實施工程師將光盤上的軟件產品,安裝到用戶系統上即可。如果用戶需要培訓,用用戶指南的教材進行定期培訓。b對于只需要少量客戶化的產品,實施工程師首先要進行調查和需求分析,在與客戶達成完全一致的書面需求修改意見且經過評審和批準之后,再對軟件的產品文檔和程序進行修改和調試。同時還要保證文檔和程序的一致性。c對于需要重新做業務流程再造和需求規格定義的軟件產品,實施工程師的

49、職責相當于項目經理,或者需要成立項目組,指定項目經理,運用原形法重新做業務流程規范和需求規格定義,在此過程中要與用戶進行互動,以確保開發出來的產品與用戶需求的一致性。4 維護工程師:工作職責為產品日常維護,客戶信息反饋。10. 如果你是軟件維護經理,你怎么開展公司的軟件維護工作?【答】1軟件維護的工作程序為:維護的需求分析、維護的設計、修改程序代碼、維護后的測試、維護后的試運行、維護后的正式運行、對維護過程的評審和審計。2其流程為:分類整理用戶意見、提出維護申請、評審、審計、批準維護申請、修改需求文檔、需求維護文檔評審、修改設計文檔、設計維護文檔評審、修改源程序、回歸測試、修改軟件產品版本號、

50、交付用戶運行、手機反饋意見,準備新一輪維護。3維護管理文檔:用戶意見反饋表、用戶意見分類整理表、維護申請單、維護文檔評審報告、產品缺陷統計表、功能擴充統計表、未答復問題匯總表、未驗證問題匯總表、已修改問題匯總表、已驗證問題匯總表、維護費用統計表。11. 如果要你組織軟件組織的CMMI實施,你怎樣開展這項工作?【答】1進行CMMI基本知識的培訓。a對所有員工進行基本的軟件工程和CMMI知識培訓;b對CMMI的各個工作組的有關人員,提供專業領域知識等方面的培訓;c在每次開發過程中,還要對項目組成進行軟件過稱方面的培訓;2成立CMMI的工作小組a軟件工程過程組SEPG(組織過程焦點b軟件工程組SWE

51、Gc系統測試組STGd軟件項目跟蹤與監督組SPTOe軟件配置管理組SCMGf軟件質量保證組SQAGg評估領導組或評估成員團隊ATM(Assessment Team Member3建立軟件組織的CMMI文檔體系軟件組織文檔、關鍵過程域文檔、軟件項目文檔4進行內部模擬評審a軟件組織自己內部成員,嚴格、認真地按照CMMI規范評估過程,對自己的軟件過程進行評審,找出其中的強項和弱項,并進行修改;b在全國范圍內,由有關軟件工程和CMMI專家組成一個專門的“內部評審”機構,負責指導協調實施CMMI的活動,推進活動的深入展開,對國內軟件組織CMMI評估進行“預先評估”。5確定CMMI正式評估的工作步驟6進行

52、正式評估評估過程包括員工培訓(企業的高層領導也要參加、與選定的項目經理等人座談、問卷調查和統計、文檔審查、數據分析、與企業的高層領導討論和撰寫評估報告等,評估結果由主任評估師簽字生效。7根據評估結果改進軟件過程12. 在現實生活中,請你舉兩個實際例子(不一定是軟件開發的例子,說明原型模型與迭代模型的具體應用?【答】原型模型“精品課程網站”的開發選用原型模型比較合適。因為現在“精品課程網站”比較普及,很容易找到一個可以事先給客戶展示的產品原型,讓客戶試用,在使用中收集客戶意見,根據意見立刻修改原型。原型模型開發速度快,用戶意見反饋實時,有利于開發商在短時間內推廣并實施多個客戶迭代模型1基于模糊聚類循環迭代模型的心臟病預測方法:該方法考慮了病癥與疾病的模糊關系和關聯程度,先用模型迭代得到滿足精度的指標權重向量,然后再迭代確定樣本最終所屬的類別,其優點是整個過程不受參數的影響,避免了主觀權重對分類結果的影響.2水庫洪水調度系統的模糊循環迭代模型:多目標水庫洪水調度目標的權重確定一直是實際防洪調度中的難點,針對過去單一考慮主觀權重或客觀權重的多目標決策模式的缺陷,通過引入權重折衷系數的概念,提出了兼顧主觀決策與客觀決策統一的模糊循環迭代模型,可以同時得到方案優屬度和目標權重。由于模型同時考慮了決策者意圖和方案本身屬性,使方案排序結

溫馨提示

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

評論

0/150

提交評論