資源描述:
《軟件工程李愛萍-作業(yè)參考答案-最終版修改》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、第一章1.1什么是軟件?軟件和程序的區(qū)別是什么?答:⑴軟件是程序、數(shù)據(jù)以及開發(fā)、使用和維護程序需要的所有文檔的完整集合。軟件的定義是:計算機程序、方法、規(guī)則、相關(guān)的文檔資料以及在計算機上運行程序時所必須的數(shù)據(jù)。⑵軟件不是程序,程序是軟件的一部分。程序是為了解決某個特定問題而用程序設(shè)計語言描述的適合計算機處理的語句序列。它是由軟件開發(fā)人員設(shè)計和編碼的。程序執(zhí)行時一般要輸入一定的數(shù)據(jù),也會輸出運行的結(jié)果。沒有相關(guān)文檔,僅有程序是不能稱之為軟件產(chǎn)品的。1.2什么是軟件生存周期?劃分生存周期的主要原則是什么?答:(1)軟件的生存周期是指某一軟件項目被提出并著手實現(xiàn)開始,直到該軟件報廢或停止使用為止
2、所經(jīng)歷的時間。(2)主要原則:各階段的任務(wù)彼此間盡可能相對獨立,同一個階段各項任務(wù)的性質(zhì)盡可能相同,從而降低每個階段任務(wù)的復(fù)雜性,簡化不同階段之間的聯(lián)系,有利于軟件開發(fā)過程的組織管理。1.3什么是軟件危機?它有哪些主要表現(xiàn)?為什么會產(chǎn)生軟件危機?答:(1)軟件危機是指在計算機軟件的開發(fā)和維護過程中所遇到的一系列嚴(yán)重問題。(2)主要表現(xiàn):對軟件開發(fā)成本和研制進度的估計常常很不精確,導(dǎo)致經(jīng)費預(yù)算經(jīng)常突破,進度超時完成;由于開發(fā)人員常常對用戶需求只有模糊的了解以及開發(fā)人員和用戶又未能及時交換意見,導(dǎo)致已完成的軟件不能滿足用戶的需要;軟件產(chǎn)品質(zhì)量差,可靠性得不到保證;軟件產(chǎn)品可維護性差;軟件成本在
3、計算機系統(tǒng)總成本中所占的比例逐年上升,軟件的發(fā)展跟不上硬件的發(fā)展;軟件開發(fā)生產(chǎn)率提高的速度遠遠跟不上計算機應(yīng)用速度普及深入趨勢,軟件發(fā)展跟不上用戶的要求。(3)產(chǎn)生軟件危機的原因:造成軟件危機的原因與軟件自身的特點有關(guān),也與軟件開發(fā)人員在開發(fā)和維護時采用的生產(chǎn)方式、方法、技術(shù)有關(guān)。軟件是計算機系統(tǒng)中的邏輯部件,軟件產(chǎn)品往往規(guī)模龐大,結(jié)構(gòu)復(fù)雜。給軟件的開發(fā)和維護帶來客觀的困難;軟件開發(fā)的管理困難。由于軟件規(guī)模大、結(jié)構(gòu)復(fù)雜、又具有無形性,導(dǎo)致管理困難,進度控制困難,可靠性無法保證;軟件開發(fā)費用不斷增加,維護費用急劇上升,直接威脅計算機應(yīng)用的擴大;軟件開發(fā)技術(shù)落后;生產(chǎn)方式落后;開發(fā)工具落后,生
4、產(chǎn)效率提高緩慢。另外軟件開發(fā)人員忽視需求分析的重要性,輕視軟件維護也是造成軟件危機的原因。1.4什么是軟件工程?怎樣利用軟件工程消除軟件危機?答:(1)軟件工程是指導(dǎo)計算機軟件開發(fā)和維護的一門學(xué)科(2)首先應(yīng)該對計算機軟件有一個正確的認識,徹底清除“軟件就是程序”的錯誤觀念;要使用好的開發(fā)技術(shù)和方法,并且要不斷研究探索更好更有效的技術(shù)和方法;要有良好的組織、嚴(yán)密的管理,各類人員要相互配合,共同完成任務(wù),充分認識軟件開發(fā)不是某種個體勞動的神秘技巧;應(yīng)該開發(fā)和使用好的軟件工具,從而有效提高軟件生產(chǎn)率。采用“工程化”的思想做指導(dǎo)來解決軟件研究中面臨的困難和混亂。1.5何謂面向?qū)ο筌浖こ蹋亢喪鏊?/p>
5、和傳統(tǒng)軟件工程的區(qū)別與聯(lián)系?答:(1)以面向?qū)ο蟪绦蛟O(shè)計為基礎(chǔ)的軟件工程。(2)傳統(tǒng)軟件工程是以結(jié)構(gòu)化程序設(shè)計為基礎(chǔ),而面向?qū)ο筌浖こ淌且悦嫦驅(qū)ο蟪绦蛟O(shè)計為基礎(chǔ)。與面向過程的軟件工程的開發(fā)思想相比,面向?qū)ο箝_發(fā)方法不再是以功能劃分為導(dǎo)向,而是以對象作為整個問題分析的中心,圍繞對象展開系統(tǒng)的分析與設(shè)計工作。在開發(fā)過程方面,面向?qū)ο筌浖こ毯蛡鹘y(tǒng)軟件工程一樣也是把軟件開發(fā)劃分為分析、設(shè)計、編碼和測試等幾個階段,但各個階段的具體工作不同,除了在編碼階段使用的語言不同外,面向?qū)ο筌浖こ虨榇_發(fā)軟件確定“類與對象”一般在需求分析階段進行,設(shè)計階段則主要完成對象內(nèi)部的詳細設(shè)計;而在傳統(tǒng)軟件工程中,
6、將軟件設(shè)計劃分為“總體設(shè)計”和“詳細設(shè)計”,分別完成軟件的總體結(jié)構(gòu)圖的設(shè)計和各個模塊內(nèi)部算法的詳細設(shè)計。即:傳統(tǒng)軟件工程開發(fā)過程包括需求分析、總體設(shè)計、詳細設(shè)計、面向過程的編碼和測試;面向?qū)ο筌浖こ涕_發(fā)過程包括需求分析與對象抽取、對象詳細設(shè)計、面向?qū)ο蟮木幋a和測試。1.6什么是軟件生存周期模型?試比較本章介紹的四種模型的優(yōu)缺點,說明每種模型的使用范圍答:(1)軟件生存周期模型即為軟件開發(fā)模型,是描述軟件開發(fā)過程中各種活動如何執(zhí)行的模型,是軟件過程、活動、任務(wù)的結(jié)構(gòu)框架。優(yōu)點缺點適用范圍瀑布模型能清晰直觀地表達軟件開發(fā)全過程,明確規(guī)定要完成的主要活動和任務(wù),用來作為軟件項目工作的基礎(chǔ)。只有
7、當(dāng)分析員能夠做出準(zhǔn)確的需求分析時,才能得到預(yù)期的正確結(jié)果。它是一種理想的線性開發(fā)模式,缺乏靈活性,特別是無法解決軟件需求不明確或不準(zhǔn)確的問題。適合于需求很明確的軟件項目開發(fā)的模型,對于經(jīng)常變化的項目而言,瀑布模型毫無價值??焖僭湍P屯ㄟ^實踐讓用戶了解未來目標(biāo)系統(tǒng)的概貌,以便判斷哪些功能是符合需要的,哪些方面需要改進。反復(fù)改進,最終建立完全符合用戶需求的新系統(tǒng)??朔俨寄P偷娜秉c,減少由于軟件需求不明確帶來的開發(fā)風(fēng)險。這