软件工程与项目管理的关系_软件工程:软件工程概述13个问题解答?
1、軟件工程為什么要強(qiáng)調(diào)規(guī)范化和文檔化?
軟件工程強(qiáng)調(diào)規(guī)范化和文檔化。規(guī)范化的目的是使眾多的開發(fā)者遵守相同的規(guī)范,使軟件生產(chǎn)擺脫個人生產(chǎn)方式,進(jìn)入標(biāo)準(zhǔn)化、工程化的生產(chǎn)方式。
文檔化是將軟件的設(shè)計思想、設(shè)計過程和實現(xiàn)過程完整地記錄下來,以便于后人的使用和維護(hù),在開發(fā)過程中各類相關(guān)人員借助于文檔進(jìn)行交流和溝通。另外,在開發(fā)過程中產(chǎn)生的各類文檔使得軟件的生產(chǎn)過程由不可見變?yōu)榭梢?#xff0c;便于管理者對軟件生產(chǎn)進(jìn)度和開發(fā)過程進(jìn)行管理。在用戶最終驗收時可以通過對提交的文檔進(jìn)行技術(shù)審查和管理審查,保證軟件的質(zhì)量。
2、軟件工程層次是如何劃分的?
軟件工程的內(nèi)容具有層次化結(jié)構(gòu),最底層是質(zhì)量保證層,中間是過程層和方法層,最上層是工具層。
如:工具層,方法層,過程層,質(zhì)量保證層
其中過程層定義了一組關(guān)鍵過程域,目的是保證軟件開發(fā)過程的規(guī)范性和可控性。方法層提供了軟件開發(fā)的各種方法,包括如何進(jìn)行軟件需求分析和設(shè)計,如何實現(xiàn)設(shè)計,如何測試和維護(hù)等方法。
軟件工程的研究內(nèi)容具有層次化結(jié)構(gòu),它的最底層是質(zhì)量保證層,中間是過程層和方法層,最上層是工具層。
全面的質(zhì)量管理和質(zhì)量需求是推動軟件工程過程不斷改進(jìn)的動力,正是這種改進(jìn)的動力導(dǎo)致了更加成熟的軟件工程方法不斷涌現(xiàn)。過程層定義了一組關(guān)鍵過程域,目的是保證軟件開發(fā)過程的規(guī)范性和可控性。方法層提供了軟件開發(fā)的各種方法,包括如何進(jìn)行軟件需求分析和設(shè)計,如何實現(xiàn)設(shè)計,如何測試和維護(hù)等方法。工具層為軟件工程方法和過程提供了自動或半自動的支撐環(huán)境。目前市場上已經(jīng)有許多不錯的軟件工程工具,應(yīng)用效果良好。
3、什么是軟件生存周期模型?
軟件生命周期模型反映的是軟件開發(fā)過程、活動和任務(wù)的結(jié)構(gòu)框架。它能夠清晰、直觀地表達(dá)軟件開發(fā)全過程,明確規(guī)定要完成的主要活動和任務(wù)。對于不同的軟件系統(tǒng),可能采用不同的開發(fā)方法,使用不同的程序設(shè)計語言、不同的管理方法和手段、以及各種具有不同技能的人員參與工作,但是對于軟件生命周期模型來說都應(yīng)該是穩(wěn)定有效和普遍適用的。
到目前為止,已經(jīng)提出了多種模型,主要有瀑布模型、演化模型、噴泉模型、螺旋模型、智能模型。模型的選擇是基于軟件的特點和應(yīng)用領(lǐng)域。
4、軟件工程的發(fā)展至今為止經(jīng)歷了哪幾個階段?各階段的特征是什么?
軟件工程經(jīng)歷了以下幾個發(fā)展階段:結(jié)構(gòu)化程序設(shè)計、面向?qū)ο蟮某绦蛟O(shè)計和系統(tǒng)分
析、基于組件軟件系統(tǒng)開發(fā)等三個階段。
結(jié)構(gòu)化程序設(shè)計:
世紀(jì)年代中葉到的上代初,程序模塊概念的提出,逐漸形成了結(jié)構(gòu)化程序設(shè)計的思想。模塊是指一組邏輯相關(guān)、功能聚合的子例程或函數(shù),這些子例程或函數(shù)可以改變程序的狀態(tài)或進(jìn)行數(shù)據(jù)的特定計算處理。模塊化的思想強(qiáng)調(diào)模塊的獨立性,將程序系統(tǒng)分割為一組松散連接的組成模塊,有利于大型軟件
系統(tǒng)的小組開發(fā)模式的實施,可以有效減小和控制系統(tǒng)的復(fù)雜性。
面向?qū)ο蟮某绦蛟O(shè)計:
模塊發(fā)展的下一階段是抽象數(shù)據(jù)類型發(fā)展的高級階段是面向?qū)ο蟮某绦蛟O(shè)計和系統(tǒng)分析。面向?qū)ο蟮某绦蛟O(shè)計以對象作為程序設(shè)計的基本構(gòu)件,整個程序由不同的對象組成,各對象分工執(zhí)行各自在系統(tǒng)中負(fù)責(zé)完成的任務(wù),并通過相互協(xié)作實現(xiàn)系統(tǒng)的整體任務(wù)。面向?qū)ο蟮某绦蛟O(shè)計和系統(tǒng)分析主要任務(wù)是發(fā)現(xiàn)系統(tǒng)中的對象及對象其間的類層次關(guān)系和服務(wù)關(guān)系,將數(shù)據(jù)和對數(shù)據(jù)的處理封裝在一個個的對象中,通過建立對象間的關(guān)系構(gòu)造系統(tǒng)的整體任務(wù)求解模型。
基于組件軟件系統(tǒng)開發(fā):
組件化是軟件技術(shù)發(fā)展到一定階段的產(chǎn)物,是改善軟件的可靠性、可維護(hù)性、可重用性行之有效的方法。
在20世紀(jì)70年代基本形成了軟件工程的概念、框架、方法和手段,被稱之為第一代軟件工程,即傳統(tǒng)軟件工程。結(jié)構(gòu)化分析、結(jié)構(gòu)化設(shè)計和結(jié)構(gòu)化編程方法是這個時期的代表。
80年代出現(xiàn)的Smalltalk 80程序設(shè)計語言標(biāo)志著面向?qū)ο蟪绦蛟O(shè)計進(jìn)入了實用階段,從80年代中到90年代中,研究的重點轉(zhuǎn)移到面向?qū)ο蠓治龊驮O(shè)計上來,從而演化成軟件工程的第二代,稱之為對象工程。
90年代后期,軟件工程的一個重要進(jìn)展就是基于組件的開發(fā)方法。為了提高軟件生產(chǎn)力,避免草率地開發(fā)應(yīng)用程序,盡可能地利用可復(fù)用組件來組裝成新的應(yīng)用軟件系統(tǒng)。到目前為止,組件技術(shù)的研究和發(fā)展形成了新一代軟件工程,即第三代軟件工程,也有不少人稱之為組件工程。
軟件工程至今還在不斷發(fā)展,無論是組件工程還是對象工程都在不斷發(fā)展,即使是傳統(tǒng)軟件工程的一些基本概念、框架,也隨著技術(shù)的進(jìn)步在發(fā)生變化。總之,軟件工程代與代之間并沒有鴻溝,它們不僅交叉重疊,也攜手并進(jìn)。
5、根據(jù)相關(guān)的法律,對于侵犯軟件著作權(quán)的行為,根據(jù)情節(jié)應(yīng)當(dāng)給予什么處罰?
對于侵犯軟件著作權(quán)的行為,要根據(jù)情況承擔(dān)停止侵害、消除影響、賠禮道歉、賠償損失等民事責(zé)任;損害社會公共利益的,由著作權(quán)行政管理部門責(zé)令停止侵權(quán)行為,沒收違法所得,沒收、銷毀侵權(quán)復(fù)制品,并處罰款;
情節(jié)嚴(yán)重的,著作權(quán)行政管理部門可以沒收用于制作侵權(quán)復(fù)制品的材料、工具、設(shè)備等;觸犯刑律的,依法追究刑事責(zé)任。
6、職業(yè)化軟件工程師十大忌諱是哪些?
7、什么叫職業(yè)化?職業(yè)化軟件工程師的必備條件是什么?
所謂職業(yè)化,簡單說就是能勝任工作,讓人放心。
“能勝任工作”,就需要具備相應(yīng)的專業(yè)技能、知識和經(jīng)驗;“讓人放心”意味著很多,包括遵守行業(yè)成文的或未成文的規(guī)則和規(guī)范,積極有效地和同事溝通,確保自己的工作產(chǎn)品是大家所期望的,盡可能地向客戶提供最專業(yè)的服務(wù)和產(chǎn)品。自律、溝通和技能是成為職業(yè)化軟件工程師的必要條件。
自律:
軟件區(qū)別于其它傳統(tǒng)產(chǎn)品,軟件只有安裝運(yùn)行后,人們才看見它的界面;開發(fā)進(jìn)度也是肉眼看不見的,很難準(zhǔn)確判斷開發(fā)任務(wù)完成了80%還是30%;質(zhì)量更是不可見的,只有通過非常認(rèn)真、全面的測試和度量,才能了解代碼的質(zhì)量。一個程序員認(rèn)真思考問題時的模樣和他發(fā)呆時的表現(xiàn)一樣,外人很難判斷。因此說,“自律”對軟件工程師來說更為重要。
溝通:
軟件的規(guī)模越來越大,而且處在不斷的變化過程中。因此需要軟件工程師進(jìn)行大量書面的、口頭的、或面對面的溝通。大到產(chǎn)品的整體功能和性能要求,小到程序的結(jié)構(gòu),甚至一個函數(shù)、一個變量的含義都需要溝通。溝通有標(biāo)準(zhǔn)化的、可視化的工具語言,如UML。軟件工程強(qiáng)調(diào)文檔的重要性就是以文檔作為溝通的工具,與客戶溝通明確用戶需求;工程師之間溝通明確設(shè)計方案,市場人員和工程師溝通確定產(chǎn)品特征。軟件工程的實踐表明,缺乏主動溝通,往往導(dǎo)致整個團(tuán)隊的技術(shù)方案出現(xiàn)偏差,使整個項目的進(jìn)度受到影響。
技能:
軟件工程師常常強(qiáng)調(diào)自己掌握的編碼技術(shù),往往忽視用戶需求和軟件開發(fā)的規(guī)范。作為職業(yè)化軟件工程師,需求分析、軟件設(shè)計、軟件構(gòu)造、軟件測試、軟件維護(hù)、配置管理、軟件項目管理、軟件過程改進(jìn)、軟件工具和方法以及軟件質(zhì)量保證等是更為重要的技能。
8、請比較軟件生命周期瀑布模型和螺旋模型的特點。
瀑布模型有什么特點?
1、其核心思想是按工序?qū)栴}簡單化。
2、采用結(jié)構(gòu)化的分析與設(shè)計方法將邏輯實現(xiàn)以物理實現(xiàn)分開。
3、瀑布型將軟件生命周期劃分為軟件計劃、需求分析和定義(前兩者為定義階段)、軟件設(shè)計、軟件編碼、軟件測試(前面為開發(fā)階段)、軟件運(yùn)行維護(hù)(最后一個為維護(hù)階段)6個階段。
優(yōu)點:
可強(qiáng)迫開發(fā)人員采用規(guī)范的方法(例如,結(jié)構(gòu)化技術(shù));
嚴(yán)格地規(guī)定了每個階段必須提交的文檔;
要求每個階段交出的所有產(chǎn)品都必須經(jīng)過質(zhì)量保證小組的仔細(xì)驗證。
螺旋模型的主要特點和優(yōu)點有:
1)支持用戶需求的動態(tài)變化。
2)原型可看作形式的可執(zhí)行的需求規(guī)格說明,易于為用戶和開發(fā)人員共同理解,還可作為繼續(xù)開發(fā)的基礎(chǔ),并為用戶參與所有關(guān)鍵決策提供了方便。
3)螺旋模型特別強(qiáng)調(diào)原型的可擴(kuò)充性和可修改性,原型的進(jìn)化貫穿整個軟件生存周期,這將有助于目標(biāo)軟件的適應(yīng)能力。
4)為項目管理人員及時調(diào)整管理決策提供了方便,進(jìn)而可降低開發(fā)風(fēng)險。
瀑布模型最重要的特點:只有當(dāng)一個階段的任務(wù)完成、交付相應(yīng)的文檔、通過審查小組的審查合格后,才能開始下一個階段的工作。瀑布模型的優(yōu)點:有利于大型軟件開發(fā)過程中人員的組織、管理,有利于軟件開發(fā)方法和工具的研究,從而提高了大型軟件項目開發(fā)的質(zhì)量和效率。瀑布模型的缺點:(1)開發(fā)過程一般不能逆轉(zhuǎn),否則代價太大;(2)實際的項目開發(fā)很難嚴(yán)格按該模型進(jìn)行;(3)客戶往往很難清楚地給出所有的需求,而該模型卻要求如此。(4)軟件的實際情況必須到項目開發(fā)的后期客戶才能看到,這要求客戶有足夠的耐心。
螺旋模型的主要優(yōu)勢在于它是風(fēng)險驅(qū)動的,每個方案在實施前都要經(jīng)過風(fēng)險分析。如果風(fēng)險過大,則項目應(yīng)該停止,或改變方案。螺旋模型的優(yōu)點:(1)設(shè)計上的靈活性,可以在項目的各個階段進(jìn)行變更;(2)以小的分段來構(gòu)建大型系統(tǒng),使成本計算變得簡單容易;(3)客戶始終參與每個階段的開發(fā),保證了項目不偏離正確方向以及項目的可控性;(4) 隨著項目推進(jìn),客戶始終掌握項目的最新信息 , 從而他或她能夠和管理層有效地交互。 螺旋模型的缺點:(1)采用螺旋模型需要具有相當(dāng)豐富的風(fēng)險評估經(jīng)驗和專門知識,在風(fēng)險較大的項目開發(fā)中,如果未能夠及時標(biāo)識風(fēng)險,勢必造成重大損失;(2)過多的迭代次數(shù)會增加開發(fā)成本,延遲提交時間。
9、指出瀑布模型中下列任務(wù)的順序:驗收測試,項目計劃,單元測試,需求評審,成本估計,概要設(shè)計,詳細(xì)設(shè)計,系統(tǒng)測試,設(shè)計評審,編碼,需求規(guī)格說明書。
項目計劃->成本估計->需求規(guī)格說明書->需求評審->概要設(shè)計->詳細(xì)設(shè)計->設(shè)計評審->編碼->單元測試->系統(tǒng)測試->驗收測試
10、什么是軟件危機(jī)?軟件危機(jī)表現(xiàn)在哪幾個方面?
由于軟件具有上述這些特點,長期以來一直沒有發(fā)明一種高效的開發(fā)方法,從而導(dǎo)致軟件生產(chǎn)效率非常低,交付期一拖再拖,最終交付的軟件產(chǎn)品在質(zhì)量上很難保障。這種現(xiàn)象早在20世紀(jì)60年代被定義為“軟件危機(jī)”。它的具體表現(xiàn)如下:
1) “已完成”的軟件不滿足用戶的需求。
2) 開發(fā)進(jìn)度不能保障,交付時間一再拖延。
3) 軟件開發(fā)成本難以準(zhǔn)確估算,開發(fā)過程控制困難造成開發(fā)成本超出預(yù)算。
4) 軟件產(chǎn)品的質(zhì)量沒有保證,運(yùn)算結(jié)果出錯、操作死機(jī)等現(xiàn)象屢屢出現(xiàn)。
5) 軟件通常沒有適當(dāng)?shù)奈臋n資料,或文檔與最終交付的軟件產(chǎn)品不符,軟件的可維護(hù)程度非常低。
11、試述產(chǎn)生軟件危機(jī)的主要原因?
導(dǎo)致軟件危機(jī)的主要原因有:
(1)軟件日益復(fù)雜和龐大
(2)軟件開發(fā)管理困難和復(fù)雜
(3)軟件開發(fā)技術(shù)落后
(4)生產(chǎn)方式落后
(5)開發(fā)工具落后
(6)軟件開發(fā)費用不斷增加
軟件的特點是導(dǎo)致軟件危機(jī)的客觀因素,而軟件開發(fā)和軟件維護(hù)過程中使用的不正確方法是主觀因素,主要表現(xiàn)為:忽視軟件開發(fā)前期的調(diào)研和分析工作,沒有統(tǒng)一的、規(guī)范的方法論指導(dǎo),文檔資料不齊全,忽視人員之間的交流,忽視測試工作,輕視軟件的維護(hù)。
12、什么是軟件工程?軟件工程的目標(biāo)是什么?
什么是軟件工程?軟件工程的目標(biāo)是什么?
軟件工程的定義:
軟件工程是一門旨在生產(chǎn)無故障的、及時交付的、在預(yù)算之內(nèi)的和滿足用戶需求的軟件的學(xué)科。本質(zhì)上,軟件工程就是采用工程的概念、原理、技術(shù)和方法來開發(fā)與維護(hù)軟件,把經(jīng)過時間考驗而證明正確的管理方法和先進(jìn)軟件開發(fā)技術(shù)結(jié)合起來,運(yùn)用到軟件開發(fā)和維護(hù)過程中,解決軟件危機(jī)。
即
1、將系統(tǒng)化的、規(guī)范的、可度量的方法應(yīng)用于軟件的開發(fā)、運(yùn)行和維護(hù)過程,也就是說,將工程化應(yīng)用于軟件開發(fā)和管理之中;
2、對1中所選方法的研究。
軟件工程的目標(biāo):
實現(xiàn)預(yù)期的軟件功能,達(dá)到較好的軟件性能,滿足用戶的需求;
增強(qiáng)軟件過程的可見性和可控性,保證軟件的質(zhì)量;
提高所開發(fā)軟件的可維護(hù)性,降低維護(hù)費用;
提高軟件開發(fā)生產(chǎn)率,及時交付使用;
合理預(yù)算開發(fā)成本,付出較低的開發(fā)費用。
軟件工程是:① 將系統(tǒng)化的、規(guī)范的、可度量的方法應(yīng)用于軟件的開發(fā)、運(yùn)行和維護(hù)過程,也就是說將工程化應(yīng)用于軟件開發(fā)和管理之中;② 對①中所選方法的研究”。
軟件工程旨在開發(fā)滿足用戶需要、及時交付、不超過預(yù)算和無故障的軟件,其主要目標(biāo)如下:
a) 實現(xiàn)預(yù)期的軟件功能,達(dá)到較好的軟件性能,滿足用戶的需求。
b) 增強(qiáng)軟件過程的可見性和可控性,保證軟件的質(zhì)量。
c) 提高所開發(fā)軟件的可維護(hù)性,降低維護(hù)費用。
d) 提高軟件開發(fā)生產(chǎn)率,及時交付使用。
e) 合理預(yù)算開發(fā)成本,付出較低的開發(fā)費用。
13、職業(yè)化軟件工程師要注意的問題是什么?
職業(yè)化軟件工程師要注意的十大問題:
總結(jié)
以上是生活随笔為你收集整理的软件工程与项目管理的关系_软件工程:软件工程概述13个问题解答?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基线是什么意思_需求工程在项目管理中有什
- 下一篇: python 从字符串中随机选取4个字符