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