目錄
什么是軟件工程?它的目標(biāo)和內(nèi)容是什么?
軟件文檔作用及包含
軟件過程模型?
瀑布模型
快速原型模型
增量模型
螺旋模型
噴泉模型
軟件生存周期?
需求分析階段的基本任務(wù)是什么??
可行性研究的任務(wù)是什么?
軟件是什么?
什么是軟件工程?它的目標(biāo)和內(nèi)容是什么?
軟件工程是一種用科學(xué)知識和技術(shù)原理來定義、開發(fā)、維護(hù)軟件的一門學(xué)科。目的是成功的建造一個(gè)大型軟件系統(tǒng),
所謂成功是要達(dá)到以下幾個(gè)目標(biāo):
付出較低的開發(fā)成本,達(dá)到要求的軟件功能;
取得較好的軟件性能;
開發(fā)的軟件易于移植;
需要較低的維護(hù)費(fèi)用;
能按時(shí)完成開發(fā)任務(wù),及時(shí)交付使用;
開發(fā)的軟件可靠性高。
軟件工程研究的主要內(nèi)容是軟件開發(fā)技術(shù)和軟件開發(fā)管理兩方面,在軟件開發(fā)技術(shù)中,主要研究軟件開發(fā)方法、軟件開發(fā)過程、軟件開發(fā)工具和環(huán)境。在軟件開發(fā)管理中,主要研究軟件管理學(xué)、軟件經(jīng)濟(jì)學(xué)、軟件心理學(xué)等。
?軟件文檔作用及包含
軟件文檔的作用是:
- 提高軟件開發(fā)過程的能見度;
- 提高開發(fā)效率;
- 作為開發(fā)人員階段工作成果和結(jié)束標(biāo)志;
- 記錄開發(fā)過程的有關(guān)信息便于使用與維護(hù);
- 提供軟件運(yùn)行、維護(hù)和培訓(xùn)有關(guān)資料;
- 便于用戶了解軟件功能、性能。
軟件開發(fā)項(xiàng)目生存期各階段應(yīng)包括得文檔以及與各類人員的關(guān)系如下:
- 可行性研究報(bào)告
- 項(xiàng)目開發(fā)計(jì)劃
- 軟件需求說明書
- 數(shù)據(jù)要求說明書
- 測試計(jì)劃
- 概要設(shè)計(jì)說明書
- 詳細(xì)設(shè)計(jì)說明書
- 用戶手冊
- 操作手冊
- 測試分析報(bào)告
- 開發(fā)進(jìn)度月報(bào)
- 項(xiàng)目開發(fā)總結(jié)
- 程序維護(hù)手冊(維護(hù)修改建議)
軟件過程模型?
瀑布模型
瀑布模型是將軟件生存周期的各項(xiàng)活動(dòng)規(guī)定為按固定順序而連接的若干階段工作,形如瀑布流水,最終得到軟件產(chǎn)品。核心思想是按工序?qū)栴}化簡,將功能的實(shí)現(xiàn)與設(shè)計(jì)分開,便于分工協(xié)作,即采用結(jié)構(gòu)化的分析與設(shè)計(jì)方法將邏輯實(shí)現(xiàn)與物理實(shí)現(xiàn)分開。將軟件生命周期劃分為制定計(jì)劃、需求分析、軟件設(shè)計(jì)、程序編寫、軟件測試和運(yùn)行維護(hù)等六個(gè)基本活動(dòng),并且規(guī)定了它們自上而下、相互銜接的固定次序,如同瀑布流水,逐級下落。
1. 特點(diǎn):
階段間具有順序性和依賴性。其中包含兩重含義:①必須等前一階段的工作完成之后,才能開始后一階段的工作;②前一階段的輸出文檔就是后一階段的輸入文檔。
2. 優(yōu)點(diǎn):
①可強(qiáng)迫開發(fā)人員采用規(guī)范化的方法。
②嚴(yán)格地規(guī)定了每個(gè)階段必須提交的文檔。
③要求每個(gè)階段交出的所有產(chǎn)品都必須是經(jīng)過驗(yàn)證的。
3. 缺點(diǎn):
①由于瀑布模型幾乎完全依賴于書面的規(guī)格說明,很可能導(dǎo)致最終開發(fā)出的軟件產(chǎn)品不能真正滿足用戶的需要。如果需求規(guī)格說明與用戶需求之間有差異,就會發(fā)生這種情況;
②瀑布模型只適用于項(xiàng)目開始時(shí)需求已確定的情況。
4. 適用場合:
需求明確且很少變更的項(xiàng)目,如二次開發(fā)或升級型項(xiàng)目。
快速原型模型
根據(jù)原型的不同作用,有三類原型模型:
⑴探索型原型。這種類型的原型模型是把原型用于開發(fā)的需求分析階段,目的是要弄清用戶的需求,確定所期望的特性,并探索各種方案的可行性。它主要針對開發(fā)目標(biāo)模糊,用戶與開發(fā)著對項(xiàng)目都缺乏經(jīng)驗(yàn)的情況,通過對原型的開發(fā)來明確用戶的需求。
⑵實(shí)驗(yàn)型原型。這種原型主要用于設(shè)計(jì)階段,考核實(shí)現(xiàn)方案是否合適,能否實(shí)現(xiàn),對于一個(gè)大型系統(tǒng),若對設(shè)計(jì)方案心中沒有把握時(shí),可通過這種原型來證實(shí)設(shè)計(jì)方案的正確性。
⑶演化型原型。這種原型主要用于及早向用戶提交一個(gè)原型系統(tǒng),該原型系統(tǒng)或者包含系統(tǒng)的框或者包含系統(tǒng)的主要功能。在得到用戶的認(rèn)可后,將原型系統(tǒng)不斷擴(kuò)充演變?yōu)樽罱K的軟件系統(tǒng),它將原型的思路擴(kuò)展到軟件開發(fā)的全過程。
1.特點(diǎn):
快速構(gòu)建可運(yùn)行的軟件模型,以便理解和澄清問題,進(jìn)一步細(xì)化需求,在新獲取需求基礎(chǔ)上進(jìn)行系統(tǒng)開發(fā)。
2.優(yōu)點(diǎn):
(1)有助于滿足用戶的真實(shí)需求;
(2)原型系統(tǒng)已經(jīng)通過與用戶的交互而得到驗(yàn)證,據(jù)此產(chǎn)生的規(guī)格說明文檔能夠正確地描述用戶需求;
(3)軟件產(chǎn)品的開發(fā)基本上是按線性順序進(jìn)行;
(4)因?yàn)橐?guī)格說明文檔正確地描述了用戶需求,因此,在開發(fā)過程的后續(xù)階段不會因?yàn)榘l(fā)現(xiàn)規(guī)格說明文檔的錯(cuò)誤而進(jìn)行較大的返工;
(5)開發(fā)人員通過建立原型系統(tǒng)已經(jīng)學(xué)到了許多東西,因此,在設(shè)計(jì)和編碼階段發(fā)生錯(cuò)誤的可能性也比較小,這自然減少了在后續(xù)階段需要改正前面階段所犯錯(cuò)誤的可能性;
(6) 快速原型的突出特點(diǎn)是“快速”。開發(fā)人員應(yīng)該盡可能快地建造出原型系統(tǒng),以加速軟件開發(fā)過程,節(jié)約軟件開發(fā)成本。
3.缺點(diǎn):
快速建立的模型加上連續(xù)的修改可能造成產(chǎn)品質(zhì)量低下。
4.適用場合:
用戶需求模糊不明的情況下。
?
增量模型
為了克服瀑布模型的局限性,使開發(fā)過程具有一定的靈活性和可修改性,于是產(chǎn)生了增量模型。它是在瀑布模型的基礎(chǔ)上加以修改而形成的。增量模型和瀑布模型之間的本質(zhì)區(qū)別是:瀑布模型屬于整體開發(fā)模型,它規(guī)定在開始下一個(gè)階段的工作之前,必須完成前一階段的所有細(xì)節(jié)。而增量模型屬于非整體開發(fā)模型,它推遲某些階段或所有階段中的細(xì)節(jié),從而較早的產(chǎn)生工作軟件。增量模型是在項(xiàng)目的開發(fā)過程中以一系列的增量方式開發(fā)系統(tǒng)。增量方式包括增量開發(fā)和增量提交。增量開發(fā)是指在項(xiàng)目開發(fā)周期內(nèi),以一定的時(shí)間間隔開發(fā)部分工作軟件;增量提交是指在項(xiàng)目開發(fā)周期內(nèi),以一定的時(shí)間間隔增量方式向用戶提交工作軟件及相應(yīng)文檔。增量開發(fā)和增量提交可以同時(shí)使用,也可以單獨(dú)使用。
1.特點(diǎn)及內(nèi)容:
增量模型也稱為漸增模型,是Mills等于1980年提出來的。使用增量模型開發(fā)軟件時(shí),把軟件產(chǎn)品作為一系列的增量構(gòu)件來設(shè)計(jì)、編碼、集成和測試。每個(gè)構(gòu)件由多個(gè)相互作用的模塊構(gòu)成,并且能夠完成特定的功能。
2.優(yōu)點(diǎn):
(1)能在較短時(shí)間內(nèi)向用戶提交可完成一些有用的工作產(chǎn)品,即從第1個(gè)構(gòu)件交付之日起,用戶就能做一些有用的工作。
(2)逐步增加產(chǎn)品的功能可以使用戶有較充裕的時(shí)間學(xué)習(xí)和適應(yīng)新產(chǎn)品,從而減少一個(gè)全新的軟件可能給用戶組織帶來的沖擊。
(3)項(xiàng)目失敗的風(fēng)險(xiǎn)較低,雖然在某些增量構(gòu)件中可能遇到一些問題,但其他增量構(gòu)件將能夠成功地交付給客戶。
(4)優(yōu)先級最高的服務(wù)首先交付,然后再將其他增量構(gòu)件逐次集成進(jìn)來。因此,最重要的系統(tǒng)服務(wù)將接受最多的測試。
3.缺點(diǎn):
(1)由于各個(gè)構(gòu)件是逐漸并入已有的軟件體系結(jié)構(gòu)中的,所以加入構(gòu)件必須不破壞已構(gòu)造好的系統(tǒng)部分,這需要軟件具備開放式的體系結(jié)構(gòu)。
(2)在開發(fā)過程中,需求的變化是不可避免的。增量模型的靈活性可以使其適應(yīng)這種變化的能力大大優(yōu)于瀑布模型和快速原型模型,但也很容易退化為邊做邊改模型,從而是軟件過程的控制失去整體性。
(3)如果增量包之間存在相交的情況且未很好處理,則必須做全盤系統(tǒng)分析,這種模型將功能細(xì)化后分別開發(fā)的方法較適應(yīng)于需求經(jīng)常改變的軟件開發(fā)過程。
4.使用場合:
需求經(jīng)常發(fā)生改變的軟件開發(fā)過程
5.針對的應(yīng)用:
(1)進(jìn)行已有產(chǎn)品升級或新版本開發(fā),增量模型是非常適合的;
(2)對完成期限嚴(yán)格要求的產(chǎn)品,可以使用增量模型;
(3)對所開發(fā)的領(lǐng)域比較熟悉而且已有原型系統(tǒng),增量模型也是非常適合的。
螺旋模型
1.特點(diǎn):
該模型將瀑布模型與快速原型模型結(jié)合起來,并且加入兩種模型均忽略了的風(fēng)險(xiǎn)分析。螺旋模型的基本思想是,使用原型及其他方法來盡量降低風(fēng)險(xiǎn)。
2.優(yōu)點(diǎn):
對可選方案和約束條件的強(qiáng)調(diào)有利于已有軟件的重用,也有助于把軟件質(zhì)量作為軟件開發(fā)的一個(gè)重要目標(biāo)。減少了過多測試或測試不足所帶來的風(fēng)險(xiǎn)。在螺旋模型中維護(hù)只是模型的另一個(gè)周期,因而在維護(hù)和開發(fā)之間并沒有本質(zhì)區(qū)別。
3.缺點(diǎn):
螺旋模型是風(fēng)險(xiǎn)驅(qū)動(dòng)的,因此要求軟件開發(fā)人員必須具有豐富的風(fēng)險(xiǎn)評估經(jīng)驗(yàn)和這方面的專門知識,否則將出現(xiàn)真正的風(fēng)險(xiǎn):當(dāng)項(xiàng)目實(shí)際上正在走向?yàn)?zāi)難時(shí),開發(fā)人員可能還以為一切正常。
4.適用場合:
支持需求不明確、特別是大型軟件系統(tǒng)的開發(fā),并支持面向規(guī)格說明、面向過程、面向?qū)ο蟮榷喾N軟件開發(fā)方法,是一種具有廣闊前景的模型。
?
噴泉模型
1.特點(diǎn):
噴泉模型是典型的面向?qū)ο笊芷谀P汀!皣娙币辉~體現(xiàn)了迭代和無間隙特性。
2.優(yōu)點(diǎn):
可以提升項(xiàng)目開發(fā)效率、縮短開發(fā)周期,因?yàn)閲娙P透鱾€(gè)階段之間無間隙,沒有順序要求,開發(fā)人員可以同步開發(fā);而且開發(fā)人員可以在某個(gè)開發(fā)階段中隨時(shí)補(bǔ)充遺漏的開發(fā)需求。
3.缺點(diǎn):
難以管理,因?yàn)閲娙P偷母鱾€(gè)階段的開發(fā)是重疊的,所以需要大量的開發(fā)人員,所以不利于項(xiàng)目管理。
4.適用場合:
用于采用對象技術(shù)的軟件開發(fā)項(xiàng)目。?
?
軟件生存周期?
1) 問題定義: 問題定義階段必須回答的關(guān)鍵問題是“要解決的問題是什么?”,正確理解用戶的真正需求。?
2) 可行性研究:?? 這個(gè)階段要回答的關(guān)鍵問題是:對于上一個(gè)階段所確定的問題“有行得通的解決辦法嗎?” ,可行性研究階段應(yīng)該導(dǎo)出系統(tǒng)的高層邏輯模型,準(zhǔn)確地估計(jì)系統(tǒng)的成本和效益。?
3) 需求分析:需求分析階段的任務(wù),主要是確定目標(biāo)系統(tǒng)必須具備的功能,得出經(jīng)用戶確認(rèn)的系統(tǒng)邏輯模型。根據(jù)該系統(tǒng)邏輯模型,準(zhǔn)確地回答“為了解決這個(gè)問題,目標(biāo)系統(tǒng)必須做什么”。
?4) 總體設(shè)計(jì):也叫概要設(shè)計(jì)或初步設(shè)計(jì)。這個(gè)階段必須回答的是“概括地說,應(yīng)該如何解決這個(gè)問題”。總體設(shè)計(jì)的目標(biāo)是將需求分析階段定義的系統(tǒng)模型轉(zhuǎn)換成相應(yīng)的軟件結(jié)構(gòu),以規(guī)定軟件的形態(tài)及各成分間的層次關(guān)系、界面及接口要求。?
5) 詳細(xì)設(shè)計(jì):詳細(xì)設(shè)計(jì)階段的任務(wù)是把解法具體化,也就是回答“應(yīng)該怎樣具體地實(shí)現(xiàn)這個(gè)系統(tǒng)”。詳細(xì)設(shè)計(jì)亦即模塊設(shè)計(jì)。它是在算法設(shè)計(jì)和結(jié)構(gòu)設(shè)計(jì)的基礎(chǔ)上,針對每個(gè)模塊的功能、接口和算法定義,設(shè)計(jì)模塊內(nèi)部的算法過程及程序的邏輯結(jié)構(gòu),并編寫模塊設(shè)計(jì)說明。
?6) 編碼:這個(gè)階段的任務(wù),是根據(jù)詳細(xì)設(shè)計(jì)的結(jié)果,選擇一種適合的程序設(shè)計(jì)語言,把詳細(xì)設(shè)計(jì)的結(jié)果翻譯成程序的源代碼。
7) 測試:以便盡早發(fā)現(xiàn)程序中的錯(cuò)誤和缺陷而進(jìn)行的一個(gè)過程,有單元測試、集成測試、確認(rèn)測試和系統(tǒng)測試4種。
8) 運(yùn)行與維護(hù):通過各種必要的維護(hù)措施支持軟件系統(tǒng)能持久地滿足用戶的需要。維護(hù)階段是軟件生存周期中花費(fèi)精力和費(fèi)用最多的階段
?
需求分析階段的基本任務(wù)是什么??
需求分析階段的基本任務(wù)是要準(zhǔn)確的定義新系統(tǒng)的目標(biāo),為了滿足用戶需要,回答系統(tǒng)必須“做什么”的問題。
本階段要進(jìn)行以下幾方面的工作:
㈠問題識別。雙方確定對問題的綜合需求,這些需求包括:功能需求、性能需求、環(huán)境需求、用戶界面需求,另外還有可靠性、安全性、保密性、可移植性、可維護(hù)性等方面的需求。
㈡分析與綜合,導(dǎo)出軟件的邏輯模型。分析人員對獲取的需求,進(jìn)行一致性的分析檢查,在分析、綜合中逐步細(xì)化軟件功能,劃分成各個(gè)子功能。這里也包括對數(shù)據(jù)域進(jìn)行分解,并分配到各個(gè)子功能上,以確定系統(tǒng)的構(gòu)成及主要成份,并用圖文結(jié)合的形式,建立起新系統(tǒng)的邏輯模型。
㈢編寫文檔。編寫“需求規(guī)格說明書”、編寫初步用戶使用手冊、編寫確認(rèn)測試計(jì)劃、修改完善軟件開發(fā)計(jì)劃
軟件需求工程的基本任務(wù)是準(zhǔn)確地回答“軟件系統(tǒng)必須做什么?”這個(gè)問題。它在系統(tǒng)工程和軟件設(shè)計(jì)之間起到橋梁的作用。用戶對軟件需求的描述不精確,導(dǎo)致軟件危機(jī)。為了使用戶需求逐步精細(xì)化,使用需求工程中需求建模技術(shù)。需求規(guī)格說明書在軟件開發(fā)中具有重要的作用,它也可以作為軟件可行性分析的依據(jù)。
需求建模的定義:用戶需求逐步精細(xì)化、完全化、一致化,需求規(guī)格說明是軟件工程測試的依據(jù)
可行性研究的任務(wù)是什么?
可行性研究是指在項(xiàng)目規(guī)劃的初期,通過對項(xiàng)目進(jìn)行綜合分析、研究和評估,探討項(xiàng)目是否可行、達(dá)成目標(biāo)的可能性和可行性的程度,發(fā)現(xiàn)項(xiàng)目存在的問題及其解決方案,最終得出項(xiàng)目可行性的結(jié)論,并為項(xiàng)目實(shí)施提供決策參考。
具體步驟:首先需要進(jìn)行概要的分析研究,初步確定項(xiàng)目的規(guī)模和目標(biāo),確定項(xiàng)目的約束和限制,把他們清楚地列舉出來。然后,分析員進(jìn)行簡要的需求分析,抽象出該項(xiàng)目的邏輯結(jié)構(gòu),建立邏輯模型。從邏輯模型出發(fā),經(jīng)過壓縮的設(shè)計(jì),探索出若干種可供選擇的主要解決方法,對每種解決方法都要研究它的可行性。
可從以下三個(gè)方面分析研究每種解決方法的可行性。
- ㈠技術(shù)可行性:對要開發(fā)項(xiàng)目的功能、性能、限制條件進(jìn)行分析,確定在現(xiàn)有的資源條件下,技術(shù)風(fēng)險(xiǎn)有多大,項(xiàng)目是否能實(shí)現(xiàn)。
- ㈡經(jīng)濟(jì)可行性:進(jìn)行開發(fā)成本的估算以及了解取得效益的評估,確定要開發(fā)的項(xiàng)目是否值得投資開發(fā)。
- ㈢社會可行性:要開發(fā)的項(xiàng)目是否存在任何侵犯、妨礙等責(zé)任問題,要開發(fā)項(xiàng)目的運(yùn)行方式在用戶組織內(nèi)是否行得通,現(xiàn)有管理制度、人員素質(zhì)、操作方式是否可行。
軟件是什么?
軟件=程序+文檔文章來源:http://www.zghlxwxcb.cn/news/detail-501585.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-501585.html
到了這里,關(guān)于軟件工程導(dǎo)論期末急救包(上)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!