軟件工程概要介紹

什么是軟件工程
大概總結(jié)一下:就是一個(gè)研究如何讓軟件開發(fā)的過程變得更加規(guī)范,可控,流程化,工廠化的研究體系。
學(xué)了這么長時(shí)間的軟件工程,相信有很多人對(duì)這門學(xué)科會(huì)產(chǎn)生很多的疑問,我在這里談?wù)勎覀€(gè)人對(duì)軟件工程的理解和感受,希望對(duì)各位有所幫助和借鑒。如果大家有更好的想法也希望能夠提出來一起交流。
首先談?wù)勈裁词擒浖こ?。相信大家肯定都聽說過橋梁工程、道路工程等等這些名詞,我們得理解工程這個(gè)詞的定義,工程說簡單點(diǎn)就是各個(gè)行業(yè)的工程師或者應(yīng)用人員通過總結(jié)規(guī)律或者方法,以最短的時(shí)間和人力、物力來做出高效可靠的東西。因此,我們也就能理解橋梁工程,其實(shí)就是人們通過經(jīng)驗(yàn)的總結(jié)和各種研究得出來的、用來修建橋梁時(shí)所采用的高效的方法,當(dāng)然這種方法是可套用的。那么我們將這個(gè)思想應(yīng)用到軟件上,于是就產(chǎn)生了一門新的學(xué)科—軟件工程。
以往,人們做軟件基本上是沒有章法可循,不知道該怎么去設(shè)計(jì)一個(gè)軟件,很多時(shí)候只能憑一些在軟件行業(yè)摸爬滾打了很多年的資深人士做出經(jīng)驗(yàn)上的判斷,這樣得出來的軟件不僅耗費(fèi)人力物力,而且質(zhì)量還得不到保證,同時(shí)維護(hù)起來也是困難重重。于是為了能夠?qū)崿F(xiàn)軟件的流水線式生產(chǎn),在設(shè)計(jì)和構(gòu)建軟件時(shí)能夠有一種規(guī)范和工程化的方法,人們便提出了軟件工程這個(gè)概念。
需要強(qiáng)調(diào)的是,目前有關(guān)軟件工程方法真實(shí)本質(zhì)的爭論一直都在持續(xù)進(jìn)行著,要真正將軟件工程變成一個(gè)全成熟的學(xué)科,還有大量的工作要做。
軟件工程的內(nèi)容
目前,一個(gè)通用的軟件工程過程框架通常包括5個(gè)活動(dòng):溝通-策劃-建模-構(gòu)建-部署。根據(jù)不同的過程模型(后文再介紹)這5個(gè)框架活動(dòng)的順序是不一定的。下面我們來一一介紹這5個(gè)框架活動(dòng)的內(nèi)容。
溝通:一個(gè)軟件在設(shè)計(jì)之前一定要充分了解客戶的需求,不然得到的結(jié)果很有可能會(huì)南轅北轍,有很多軟件系統(tǒng)都是在已經(jīng)實(shí)現(xiàn)之后卻發(fā)現(xiàn)跟客戶的需求有很大差異,或者沒有達(dá)到客戶的期望,最后弄得雙方都十分尷尬。這種案例就是前期的溝通沒有做好,一方面客戶的需求可能非常理想化,他們對(duì)軟件的實(shí)現(xiàn)完全不了解,他們想達(dá)到的功能很有可能是目前技術(shù)還無法實(shí)現(xiàn)的,我們在溝通時(shí)一定要在他心中建立一個(gè)正確的觀念。另一方面,客戶可能自己都不知道要做一個(gè)具有哪些功能的軟件,他們只是有一個(gè)初步的想法,這個(gè)時(shí)候就需要開發(fā)人員去引導(dǎo),最好的方式就是提出各種版本方案讓客戶選擇,最后再擇優(yōu)處理。很多人肯定都覺得軟件開發(fā)大部分時(shí)間都花在編碼,其實(shí)恰恰相反,一個(gè)軟件的開發(fā)周期,其中一大半都是花在需求分析,也就是我們的溝通階段。有一個(gè)例子就使我印象特別深刻。
我的大學(xué)數(shù)據(jù)庫老師曾經(jīng)接了一個(gè)醫(yī)院數(shù)據(jù)庫開發(fā)項(xiàng)目,然后他們團(tuán)隊(duì)負(fù)責(zé)需求分析的幾個(gè)人就集體搬到了醫(yī)院一個(gè)小房間住下來,然后天天"纏在"各個(gè)部門的負(fù)責(zé)人身邊,問東問西,做各種數(shù)據(jù)的分析,例如醫(yī)院的職位分配是怎么樣的制度,每個(gè)部門有多少分職,藥庫是怎樣管理的…等等等等。然而,就算是天天住在那里,都面臨著各種阻礙。首先是對(duì)方不愿意也沒有時(shí)間來做各種需求的統(tǒng)計(jì)(像醫(yī)院這種地方,每個(gè)人都很忙),其次他們自己也不太清楚自己的需求。甚至到了最后居然出現(xiàn)了某個(gè)部門的負(fù)責(zé)人常常不來辦公室(躲著他們)的情況。可想而知,項(xiàng)目最后的結(jié)果也不太理想。所以,很多時(shí)候我們做軟件開發(fā)的應(yīng)該多多學(xué)習(xí)怎么樣跟利益相關(guān)者打交道,引導(dǎo)他們做出準(zhǔn)確的需求分析。說了這么多,足以見得前期的溝通有多么重要。
策劃:策劃階段就是要做出我們整個(gè)軟件系統(tǒng)的“設(shè)計(jì)地圖”,有了地圖我們才能將旅程變得簡單而且易于掌握。這個(gè)地圖就是我們的軟件項(xiàng)目計(jì)劃,它包括需要執(zhí)行的技術(shù)任務(wù)、可能存在的風(fēng)險(xiǎn)、需要用到的資源、整個(gè)項(xiàng)目的工作進(jìn)度等等。
建模:顧名思義,建模就是建立我們軟件設(shè)計(jì)的模型,最初的草圖包括整個(gè)項(xiàng)目的體系結(jié)構(gòu)、不同的組件模塊之間怎么連接,以及其他的一些特性。最后經(jīng)過不斷的討論與設(shè)計(jì),對(duì)草圖進(jìn)行精化,得到每一個(gè)功能模塊的具體類與接口,這樣即使團(tuán)隊(duì)中有人離職,不得已讓新人進(jìn)來取代的時(shí)候,也能根據(jù)設(shè)計(jì)模型以及各種UML圖游刃有余的進(jìn)行編碼,這也就是為什么要有一個(gè)圖紙的原因之一。
構(gòu)建:建模完了以后,我們就可以進(jìn)行編碼了,有了設(shè)計(jì)圖紙,編碼當(dāng)然也就不再困難。但是要注意的是編碼的時(shí)候要不斷的進(jìn)行冒煙測試(頻率非常高的一種測試模式),如果離項(xiàng)目的驗(yàn)收期限非常近了,還可以進(jìn)行敏捷開發(fā)(一種團(tuán)隊(duì)集中在一起進(jìn)行高強(qiáng)度、高效率的開發(fā)方式)。
部署:軟件開發(fā)完成后,就可以交付給用戶了,將我們的軟件部署在用戶端系統(tǒng)上,用戶對(duì)它進(jìn)行評(píng)測并給出反饋意見。
到此為止,我們軟件工程的五大過程框架就簡單的給大家介紹了一遍,其實(shí)研究的最多的也就是這幾大活動(dòng),但是這幾個(gè)過程的執(zhí)行順序在現(xiàn)實(shí)應(yīng)用中都不會(huì)是線性的一步接一步,往往在編碼的時(shí)候還有可能在做需求分析,也有可能會(huì)先開發(fā)出系統(tǒng)的主要功能,然后再慢慢往上加其他的拓展功能。這就不得不提軟件工程的過程模型。
過程模型
最早提出過程模型就是為了改變軟件開發(fā)的混亂狀況,使軟件開發(fā)更加有序。這里我就介紹幾種常見的過程模型。
瀑布模型:這是一種經(jīng)典的模型,顧名思義,瀑布就是順流而下的,瀑布模型也是一種線性的、順序的軟件開發(fā)方法,從最開始的溝通,到最后的部署,一步緊接一步線性執(zhí)行到最后。因此我們也能想象,實(shí)際的項(xiàng)目是很少遵守瀑布模型提出的順序的。因?yàn)槠俨寄P鸵罂蛻艟哂惺置鞔_的需求,這在現(xiàn)實(shí)中是基本不存在的。
增量過程模型:即前面所提到的先開發(fā)出系統(tǒng)的核心功能,然后再依據(jù)重要性評(píng)估交付新添的增量,直到最終產(chǎn)品的產(chǎn)生。
螺旋模型:螺旋模型在瀑布模型的基礎(chǔ)上加了風(fēng)險(xiǎn)分析,同時(shí)迭代式的開發(fā)一系列的演進(jìn)版本。螺旋最中間的就是項(xiàng)目的起點(diǎn),螺旋式的進(jìn)行著五個(gè)框架活動(dòng),一直進(jìn)行到螺旋最外圈。螺旋模型是開發(fā)大型系統(tǒng)和軟件的很實(shí)際的方法,像大型的軍工軟件系統(tǒng)都是使用的螺旋模型進(jìn)行開發(fā)的,而且像這種系統(tǒng)的螺旋終點(diǎn)是沒有的,因?yàn)檐姽ぎa(chǎn)品需要不停地進(jìn)行更新迭代,不然很快就會(huì)被時(shí)代淘汰。
螺旋模型
相信大家看到現(xiàn)在應(yīng)該對(duì)軟件工程已經(jīng)有了一個(gè)大體的了解。
到此這篇關(guān)于軟件工程概要介紹的文章就介紹到這了,更多相關(guān)軟件工程內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!
相關(guān)文章
求實(shí)計(jì)量專家軟件 v1.0.0.1 安裝版
求實(shí)計(jì)量專家軟件是一款專為工程項(xiàng)目準(zhǔn)備的計(jì)算工具,該軟件集合了鋼筋和工程量為一體,可以為用戶們提供多種操作模式,讓用戶們可以充分利用現(xiàn)在工程計(jì)算工具,去計(jì)算工程2021-08-17MathCAD(PTC工程計(jì)算軟件) v15.0.0.436 中文破解版(附安裝教程)
MathCAD是一款PTC工程計(jì)算軟件,它是一個(gè)很好的工程師使用的用于科學(xué)計(jì)算的工具,有著方便運(yùn)算人員設(shè)計(jì)、回顧、共享自己的工作成果、可以將一張工作文件中將公式、文字、圖2021-06-24品茗bim模板工程設(shè)計(jì)軟件 v3.3.0.11078 免費(fèi)安裝版
品茗bim模板工程設(shè)計(jì)軟件是一款專業(yè)性非常強(qiáng)的工程設(shè)計(jì)輔助工具。軟件支持利用布置的模型架體,一鍵實(shí)現(xiàn)整棟、單層、局部三維模型顯示,是方案好幫手,成本大管家。歡迎下2022-12-20化學(xué)工程仿真軟件Chemstations CHEMCAD Suite 7免費(fèi)安裝及激活教程
CHEMCAD 7如何免費(fèi)使用?下文中為大家?guī)砹嘶瘜W(xué)工程仿真軟件Chemstations CHEMCAD Suite 7免費(fèi)安裝及激活教程,感興趣的朋友不妨閱讀下文內(nèi)容,參考一下吧2021-05-08Chemstations CHEMCAD Suite v7.1.6.12867 特別安裝版 附激活教程
CHEMCAD是一套直觀的化學(xué)過程模擬軟件,適用于化學(xué)工程工作流程,可提高工程師的工作效率。歡迎下載體驗(yàn)2021-05-08工程計(jì)算軟件PTC Mathcad Prime 7.0 中文免費(fèi)破解版(附補(bǔ)丁+安裝教程)
PTC Mathcad Prime7.0是一個(gè)非常好用且功能強(qiáng)大的工程計(jì)算軟件,也是目前一款可以用戶輕松執(zhí)行、分析、記錄和共享計(jì)算的數(shù)學(xué)軟件,這里提供最新PTC Mathcad Prime 7.0最新2021-03-27工程建筑設(shè)計(jì)軟件 IDEA StatiCa v20.1.5115.1 中文完美激活版
IDEA StatiCa 20是一款全球領(lǐng)先的工程建筑設(shè)計(jì)分析平臺(tái),旨在為廣大用戶提供最全面、最權(quán)威、最專業(yè)的工程設(shè)計(jì)解決方案,可用于各種類型的結(jié)構(gòu)設(shè)計(jì),列如連接、橫截面、梁2021-02-20品茗iBIM v4.0.1 (全過程造價(jià)跟蹤審計(jì)BIM應(yīng)用) 免費(fèi)安裝版
品茗iBIM是以BIM三維模型和數(shù)據(jù)為載體,關(guān)聯(lián)造價(jià)過程中的進(jìn)度、合同、資料,為項(xiàng)目提供數(shù)據(jù)支撐,實(shí)現(xiàn)全過程的跟蹤審計(jì),為咨詢企業(yè)轉(zhuǎn)型BIM提供有力的工具保障,歡迎下載體驗(yàn)2023-09-25