軟件工程學(xué)習(xí)心得體會(huì)
我們得到了一些心得體會(huì)以后,可以尋思將其寫進(jìn)心得體會(huì)中,這樣就可以總結(jié)出具體的經(jīng)驗(yàn)和想法。那么要如何寫呢?下面是小編為大家整理的軟件工程學(xué)習(xí)心得體會(huì),歡迎閱讀,希望大家能夠喜歡。
軟件工程學(xué)習(xí)心得體會(huì)1
通過這半學(xué)期我對軟件工程的學(xué)習(xí),老師在課堂上從軟件工程的基礎(chǔ)到用戶的需求分析,最后到黑盒白盒測試通過自身做過的一些案例,生動(dòng)形象的講解了軟件工程這門本身枯燥乏味的課程,這不僅增強(qiáng)了學(xué)生學(xué)習(xí)的積極性,也通過讓我們自己去做一些需求分析,我們從中學(xué)到了許多知識(shí)。
老師不僅僅在課堂上對我們悉心的知道,在課外還讓我們多看一些有關(guān)軟件工程方面最前沿的理論,通過這段時(shí)間我讀了《軟件工程——實(shí)踐者的研究方法》、《件工程案例》這兩本書,通過自己的讀書學(xué)習(xí),我有以下心得體會(huì)。
眾所周知軟件對于一個(gè)公司,一個(gè)企業(yè)乃至一個(gè)國家都是十分重要的,因此一個(gè)軟件的維護(hù)也十分重要,下面我就講一些關(guān)于軟件維護(hù)的知識(shí)。
維護(hù)階段是軟件生存期中時(shí)間最長的一個(gè)階段,也是花費(fèi)的精力和費(fèi)用最多的一個(gè)階段。由于操作系統(tǒng)軟件和基礎(chǔ)軟件版本升級或應(yīng)用管理系統(tǒng)軟件的不斷開發(fā)、完善,需要對軟件進(jìn)行維護(hù)。但當(dāng)運(yùn)行環(huán)境改變或者系統(tǒng)功能、性能需求發(fā)生變化,使原軟件不能通過維護(hù)的手段滿足用戶需求時(shí),則需要進(jìn)行軟件更新。
1.軟件維護(hù)的類型:
軟件的開發(fā)過程對軟件的維護(hù)有較大的影響。若不采用軟件工程的方法開發(fā)軟件,則軟件只有程序而無文檔,維護(hù)工作非常困難,這是一種非結(jié)構(gòu)化的維護(hù)。若采用軟件工程的方法開發(fā)軟件,則各階段都有相應(yīng)的文檔,容易進(jìn)行維護(hù)工這是一種結(jié)構(gòu)化的維護(hù)。非結(jié)構(gòu)化維護(hù)活動(dòng)只能從閱讀、理解和分析源程序開始,這樣做難以弄清系統(tǒng)功能、軟件結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)等問題,常常造成誤解。同時(shí)由于沒有測試文檔,也不可能進(jìn)行回歸測試很難保證程序的正確性。這種軟件維護(hù)方法僅在軟件工程時(shí)代之前采用。在進(jìn)行結(jié)構(gòu)化維護(hù)活動(dòng)時(shí),需從評價(jià)需求說明開始,弄清楚軟件功能、性能上的改變;對設(shè)計(jì)說明文檔進(jìn)行評價(jià),并進(jìn)行修改和復(fù)查;根據(jù)設(shè)計(jì)的修改,進(jìn)行程序的變動(dòng);根據(jù)測試文檔中的測試用例進(jìn)行回歸測試;最后,把修改后的軟件再次交付使用。這對于減少精力、減少花費(fèi)和提高軟件維護(hù)效率有很大的作用。
2.軟件維護(hù)的困難:
軟件維護(hù)的困難主要是由于軟件需求分析和開發(fā)方法的缺陷造成的。軟件生存周期中的開發(fā)階段沒有嚴(yán)格而科學(xué)的管理和規(guī)劃,就會(huì)引起軟件運(yùn)行時(shí)的維護(hù)困難。這種困難表現(xiàn)在如下幾個(gè)方面。
(1)讀懂別人的程序是困難的。
(2)文檔的不一致性。這種不一致性表現(xiàn)在各種文檔之間的不一致以及文檔與程序之的不一致。
(3)軟件開發(fā)和軟件維護(hù)在人員和時(shí)間上存在差異。
(4)軟件維護(hù)不是一項(xiàng)吸引人的工作。
3. 軟件維護(hù)的費(fèi)用:
軟件維護(hù)的費(fèi)用在總費(fèi)用中的比重是不斷增加的,它在 1970 年占 35%~40%,1980 年上升到 40%~60%,1990 年上升到 70%~80%。軟件維護(hù)費(fèi)用不斷上升,這只是軟件維護(hù)有形的代價(jià),另外還有無形的代價(jià),即要占用更多的資源。由于大量軟件的維護(hù)活動(dòng)要使用較多的硬件、軟件和軟件人員等資源,這樣一來,投入新的軟件開發(fā)的資源就因不足而受到影響。由于維護(hù)時(shí)的改動(dòng),在軟件中引入了潛在的故障,從而降低了軟件的質(zhì)量。
4.軟件維護(hù)的分類
軟件維護(hù)有改正性維護(hù)、適應(yīng)性維護(hù)、完善性維護(hù)和預(yù)防性維護(hù) 4 類。
(1)改正性維護(hù)。在軟件交付使用后,由于開發(fā)時(shí)測試的不徹底、不完全,必然會(huì)有一部分隱藏的錯(cuò)誤被帶到運(yùn)行階段來,這些隱藏下來的錯(cuò)誤在某些特定的使用環(huán)境下就會(huì)暴露。為了識(shí)別和糾正軟件錯(cuò)誤、改正軟件性能上的缺陷、排除實(shí)施中的誤使用,應(yīng)當(dāng)進(jìn)行的診斷和改正錯(cuò)誤的過程,就叫做改正性維護(hù)。例如,改正性維護(hù)可以是改正原來程序中未使開關(guān)(off/on)復(fù)原的錯(cuò)誤;解決開發(fā)時(shí)未能測試各種可能情況帶來的問題;解決原來程序中遺漏處理文件中最后一個(gè)記錄的問題等。
(2)適應(yīng)性維護(hù)。隨著計(jì)算機(jī)的飛速發(fā)展,外部環(huán)境(新的硬、軟件配置)或數(shù)據(jù)環(huán)境(數(shù)據(jù)庫、數(shù)據(jù)格式、數(shù)據(jù)輸入/輸出方式、數(shù)據(jù)存儲(chǔ)介質(zhì))可能發(fā)生變化,為了使軟件適應(yīng)這種變化,而去修改軟件的過程就叫做適應(yīng)性維護(hù)。例如,適應(yīng)性維護(hù)可以是為現(xiàn)有的某個(gè)應(yīng)用問題實(shí)現(xiàn)一個(gè)數(shù)據(jù)庫;對某個(gè)指定的事務(wù)編碼進(jìn)行修改,增加字符個(gè)數(shù);調(diào)整兩個(gè)程序,使它們可以使用相同的記錄結(jié)構(gòu);修改程序,使其適用于另外一種終端。
(3)完善性維護(hù)。在軟件的使用過程中,用戶往往會(huì)對軟件提出新的功能與性能要求。為了滿足這些要求,需要修改或再開發(fā)軟件,以擴(kuò)充軟件功能、增強(qiáng)軟件性能、改進(jìn)加工效率、提高軟件的可維護(hù)性,這種情況下進(jìn)行的維護(hù)活動(dòng)叫做完善性維護(hù)。例如,完善性維護(hù)可能是修改一個(gè)計(jì)算工資的程序,使其增加新的扣除項(xiàng)目;縮短系統(tǒng)的應(yīng)答時(shí)間,使其達(dá)到特定的要求;把現(xiàn)有程序的終端對話方式加以改造,使其具有方便用戶使用的界面;改進(jìn)圖形輸出;增加聯(lián)機(jī)幫助(Help)功能;為軟件的運(yùn)行增加監(jiān)控設(shè)施等。在維護(hù)階段的最初一兩年,改正性維護(hù)的工作量較大。隨著錯(cuò)誤發(fā)現(xiàn)率急劇降低,并趨于穩(wěn)定,就進(jìn)入了正常使用期。然而,由于改造的要求,適應(yīng)性維護(hù)和完善性維護(hù)的工作量逐步增加,在這種維護(hù)過程中又會(huì)引入新的錯(cuò)誤,從而加重了維護(hù)的工作量。實(shí)踐表明,在幾種維護(hù)活動(dòng)中,完善性維護(hù)所占的比重最大。即大部分維護(hù)工作是改變和加強(qiáng)軟件,而不是糾錯(cuò)。所以,維護(hù)并不一定是救火式的緊急維修,而可以是有計(jì)劃、有預(yù)謀的一種再開發(fā)活動(dòng)。事實(shí)證明,來自用戶要求而擴(kuò)充、加強(qiáng)軟件功能、性能的維護(hù)活動(dòng)約占整個(gè)維護(hù)工作的 50%。
(4)預(yù)防性維護(hù)。除了以上三類維護(hù)之外,還有一類維護(hù)活動(dòng),叫做預(yù)防性維護(hù)。這是為了提高軟件的可維護(hù)性、可靠性等,為以后進(jìn)一步改進(jìn)軟件打下良好基礎(chǔ)。通常,預(yù)防性維護(hù)定義為:“把今天的方法學(xué)用于昨天的系統(tǒng)以滿足明天的需要”。也就是說,采用先進(jìn)的軟件工程方法對需要維護(hù)的軟件或軟件中的某一部分(重新)進(jìn)行設(shè)計(jì)、編制和測試。
在整個(gè)軟件維護(hù)階段所花費(fèi)的全部工作量中,預(yù)防性維護(hù)只占很小的比例,而完善性維護(hù)占了幾乎一半的工作量,軟件維護(hù)活動(dòng)所花費(fèi)的工作占整個(gè)生存期工作量的 70%以上。這是由于在漫長的軟件運(yùn)行過程中需要不斷對軟件進(jìn)行修改,以改正新發(fā)現(xiàn)的錯(cuò)誤、適應(yīng)新的環(huán)境和用戶新的要求。這些修改需要花費(fèi)很多精力和時(shí)間,而且有時(shí)修改不正確,還會(huì)引入新的錯(cuò)誤。同時(shí),軟件維護(hù)技術(shù)不像開發(fā)技術(shù)那樣成熟、規(guī)范化,消耗工作量自然就比較多。
5.軟件維護(hù):
(1)數(shù)據(jù)維護(hù)
大多應(yīng)用軟件的數(shù)據(jù)隨著應(yīng)用規(guī)模的日益擴(kuò)大和用戶環(huán)境的迅速發(fā)展,不但基礎(chǔ)信息,其他所有專題信息也需要經(jīng)常地進(jìn)行維護(hù)和更新。應(yīng)根據(jù)系統(tǒng)的規(guī)模和實(shí)際需求,建立系統(tǒng)的數(shù)據(jù)維護(hù)更新機(jī)制,規(guī)定數(shù)據(jù)維護(hù)更新的周期,使系統(tǒng)的所有數(shù)據(jù)均相對地始終處于最新的狀態(tài)。數(shù)據(jù)對一個(gè)軟件的重要性,越來越被人們認(rèn)識(shí)。但是,數(shù)據(jù)如果不經(jīng)常更新,則有可能失去應(yīng)用價(jià)值,這是每個(gè)軟件維護(hù)和運(yùn)行所應(yīng)重視的問題。
(2)硬件維護(hù)
在軟件運(yùn)行的過程中,應(yīng)建立硬件設(shè)備的日常維護(hù)制度,并根據(jù)設(shè)備的使用說明進(jìn)行及時(shí)的維護(hù),以保證設(shè)備完好和系統(tǒng)的正常運(yùn)行。但當(dāng)設(shè)備的處理能力達(dá)不到要求,或者設(shè)備本身已經(jīng)過時(shí)、淘汰,或者設(shè)備損壞,買不到零配件,或者修理不值得時(shí),應(yīng)考慮硬件更新。系統(tǒng)硬件更新應(yīng)按關(guān)于硬件評價(jià)指標(biāo)的規(guī)定要求重新進(jìn)行選型。
(3)軟件維護(hù)的原因
要求進(jìn)行軟件維護(hù)的原因多種多樣,歸結(jié)起來有 3 種類型。改正在特定的使用條件下暴露出來的一些潛在程序錯(cuò)誤或設(shè)計(jì)缺陷。因在軟件使用過程中數(shù)據(jù)環(huán)境發(fā)生變化(例如,一個(gè)事務(wù)處理代碼發(fā)生改變)或處理環(huán)境發(fā)生變化(例如,安裝了新的硬件或操作系統(tǒng)),需要修改軟件以適應(yīng)這種變化。用戶和數(shù)據(jù)處理人員在使用時(shí)常提出改進(jìn)現(xiàn)有功能、增加新的功能,以及改善總體性能的要求,為滿足這些要求,就需要修改軟件把這些要求納入到軟件之中。
6. 軟件維護(hù)的過程
一個(gè)維護(hù)申請?zhí)岢鲋螅?jīng)評審需要維護(hù),則按下列過程實(shí)施維護(hù)。
(1)首先要確定進(jìn)行維護(hù)的類型。在許多情況下,用戶可以把一個(gè)請求看作改正性維護(hù),而軟件開發(fā)者可以把這個(gè)請求看作適應(yīng)性或完善性維護(hù)。此時(shí),對不同觀點(diǎn)就需要協(xié)商解決。
(2)對改正性維護(hù)從評價(jià)錯(cuò)誤的嚴(yán)重性開始。如果存在一個(gè)嚴(yán)重的錯(cuò)誤,例如,一個(gè)系統(tǒng)的重要功能不能執(zhí)行,則有管理者組織有關(guān)人員立即開始分析問題。如果錯(cuò)誤并不嚴(yán)重,則改正性維護(hù)與軟件其他任務(wù)一起進(jìn)行,統(tǒng)一安排,按計(jì)劃進(jìn)行維護(hù)工作。
(3)適應(yīng)性和完善性維護(hù)如同它是另一個(gè)開發(fā)工作一樣,建立每個(gè)請求的優(yōu)先權(quán),安排所需求的工作。
(4)實(shí)施維護(hù)任務(wù)。不管維護(hù)類型如何,大體上要開展相同的技術(shù)工作。這些工作包括修改軟件設(shè)計(jì)、必要的代碼修改、單元測試、集成測試、確認(rèn)測試及復(fù)審。每種維護(hù)類型的側(cè)重點(diǎn)不一樣。
(5)“救火”式維護(hù)。并不完全適合上面所述的經(jīng)過仔細(xì)考慮的維護(hù)申請,而是對于出現(xiàn)突發(fā)性的重大故障的維護(hù)。
以上是我對軟件工程中軟件維護(hù)的初步認(rèn)識(shí),以后我會(huì)更加努力的學(xué)習(xí)軟件工程這門課程。
軟件工程學(xué)習(xí)心得體會(huì)2
整本書的內(nèi)容邏輯很清晰明了,由淺入深循序漸進(jìn),首先我就大概描述下我們所學(xué)的內(nèi) 容,第一章是從整體分析軟件工程這門學(xué)科的發(fā)展和所處的社會(huì)環(huán)境,接著后面的幾章深入分析了軟件開放過程和模式、軟件項(xiàng)目管理、計(jì)算機(jī)工程、需求分析、結(jié)構(gòu)化分析建模以及基于UML面向?qū)ο蠓治鼋5?。接著我就詳?xì)介紹下我對這門課程知識(shí)點(diǎn)的理解概括:
軟件工程是指導(dǎo)計(jì)算機(jī)軟件開發(fā)和維護(hù)的工程學(xué)科。
軟件生存周期:一個(gè)軟件從定義到開發(fā)、使用和維護(hù),直到最終被棄用,要經(jīng)歷一個(gè)漫長的時(shí)期,通常把軟件經(jīng)歷的這個(gè)漫長的時(shí)期稱為生存周期。軟件的生存周期可分為八個(gè)階段:
①問題定義;
②可行性研究;
③需求分析;
④總體(概要)設(shè)計(jì);
⑤詳細(xì)設(shè)計(jì);
⑥編碼與單元測試;
⑦綜合測試;
⑧軟件維護(hù); 瀑布模式:原型進(jìn)化模式:增量模式:螺旋模式:
軟件開發(fā)的整個(gè)過程:
①需要項(xiàng)目團(tuán)隊(duì),組建優(yōu)秀的團(tuán)隊(duì)可以開發(fā)出更搞質(zhì)量的軟件產(chǎn)品。任務(wù)開發(fā)團(tuán)隊(duì)要求小而精,成員大多在8人以內(nèi),主要成員有項(xiàng)目負(fù)責(zé)人、開發(fā)人員、資料管理員和軟件測試員。
②項(xiàng)目計(jì)劃是為了使軟件開發(fā)各項(xiàng)工作有秩序地進(jìn)行,包括任務(wù)分配和基于里程碑的進(jìn)度安排,甘特圖和任務(wù)網(wǎng)絡(luò)圖是用來描述進(jìn)度計(jì)劃的工具。項(xiàng)目計(jì)劃書可以作為軟件開發(fā)的工作指南。
③項(xiàng)目成本估算,由于項(xiàng)目有來自各方面的成本包括工資開支、場地費(fèi)、差旅費(fèi)、設(shè)備費(fèi)和資料費(fèi)等,但是軟件主要是對人力成本的估算,常用的方法有程序代碼成本估算法等。
④軟件風(fēng)險(xiǎn)管理包括很多不確定的風(fēng)險(xiǎn)因素,如計(jì)劃風(fēng)險(xiǎn)、管理風(fēng)險(xiǎn)、需求風(fēng)險(xiǎn)、技術(shù)風(fēng)險(xiǎn)、人員風(fēng)險(xiǎn)、產(chǎn)品風(fēng)險(xiǎn)、用戶風(fēng)險(xiǎn)和商業(yè)風(fēng)險(xiǎn)等等,而風(fēng)險(xiǎn)管理的主要任務(wù)是:風(fēng)險(xiǎn)識(shí)別、風(fēng)險(xiǎn)評估、和風(fēng)險(xiǎn)防范。
⑤軟件文檔管理,軟件文檔是工程模式軟件開發(fā)的成果體現(xiàn),包括技術(shù)文檔、管理文檔和用戶文檔。 ⑥軟件配置管理與軟件質(zhì)量管理,包括配置規(guī)劃、軟件變更控制、軟件版本控制和質(zhì)量控制計(jì)劃。
《軟件工程》課程既強(qiáng)調(diào)基本概念和基本知識(shí)的理解和掌握,又側(cè)重軟件項(xiàng)目的分析、設(shè)計(jì)、實(shí)現(xiàn)和維護(hù)的基本技能。比較注意“點(diǎn)”和“面”的結(jié)合。我還是蠻喜歡這門課的,通過對這門課的學(xué)習(xí)讓我意識(shí)到理論學(xué)習(xí)很重要,實(shí)踐更重要,實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn),只有將理論與實(shí)際結(jié)合,才更能發(fā)揮我們所學(xué)的知識(shí)的作用,更能直接的創(chuàng)造效益,社會(huì)和國家做出貢獻(xiàn)。