軟體工程課程總結

來源:互聯網
上載者:User

標籤:

     通過這半學期我對軟體工程的學習,老師在課堂上從軟體工程的基礎到使用者的需求分析,最後到黑盒白盒測試通過自身做過的一些案例,生動形象的講解了軟體工程這門本身枯燥乏味的課程,這不僅增強了學生學習的積極性,也通過讓我們自己去做一些需求分析,我們從中學到了許多知識。

     老師不僅僅在課堂上對我們悉心的知道,在課外還讓我們多看一些有關軟體工程方面最前沿的理論,通過這段時間我讀了《軟體工程——實踐者的研究方法》、《件工程案例》這兩本書,通過自己的讀書學習,我有以下心得體會。

     眾所周知軟體對於一個公司,一個企業乃至一個國家都是十分重要的,因此一個軟體的維護也十分重要,下面我就講一些關於軟體維護的知識。

     維護階段是軟體生存期中時間最長的一個階段,也是花費的精力和費用最多的一個階段。由於作業系統軟體和基礎軟體版本升級或應用管理系統軟體的不斷開發、完善,需要對軟體進行維護。但當運行環境改變或者系統功能、效能需求發生變化,使原軟體不能通過維護的手段滿足使用者需求時,則需要進行軟體更新。

1.軟體維護的類型:

軟體的開發過程對軟體的維護有較大的影響。若不採用軟體工程的方法開發軟體,則軟體只有程式而無文檔,維護工作非常困難,這是一種非結構化的維護。若採用軟體工程的方法開發軟體,則各階段都有相應的文檔,容易進行維護工這是一種結構化的維護。非結構化維護活動只能從閱讀、理解和分析來源程式開始,這樣做難以弄清系統功能、軟體結構、資料結構等問題,常常造成誤解。同時由於沒有測試文檔,也不可能進行迴歸測試很難保證程式的正確性。這種軟體維護方法僅在軟體工程時代之前採用。在進行結構化維護活動時,需從評價需求說明開始,弄清楚軟體功能、效能上的改變;對設計說明文檔進行評價,並進行修改和複查;根據設計的修改,進行程式的變動;根據測試文檔中的測試案例進行迴歸測試;最後,把修改後的軟體再次交付使用。這對於減少精力、減少花費和提高軟體維護效率有很大的作用。

2.軟體維護的困難:

軟體維護的困難主要是由於軟體需求分析和開發方法的缺陷造成的。軟體生存周期中的開發階段沒有嚴格而科學的管理和規劃,就會引起軟體運行時的維護困難。這種困難表現在如下幾個方面。

(1)讀懂別人的程式是困難的。

(2)文檔的不一致性。這種不一致性表現在各種文檔之間的不一致以及文檔與程式之的不一致。

(3)軟體開發和軟體維護在人員和時間上存在差異。

(4)軟體維護不是一項迷人的工作。

3. 軟體維護的費用:

軟體維護的費用在總費用中的比重是不斷增加的,它在 1970 年占 35%~40%,1980 年上升到 40%~60%,1990 年上升到 70%~80%。軟體維護費用不斷上升,這隻是軟體維護有形的代價,另外還有無形的代價,即要佔用更多的資源。由於大量軟體的維護活動要使用較多的硬體、軟體和軟體人員等資源,這樣一來,投入新的軟體開發的資源就因不足而受到影響。由於維護時的改動,在軟體中引入了潛在的故障,從而降低了軟體的品質。

4.軟體維護的分類

軟體維護有改正性維護、適應性維護、完善性維護和預防性維護 4 類。

(1)改正性維護。在軟體交付使用後,由於開發時測試的不徹底、不完全,必然會有一部分隱藏的錯誤被帶到運行階段來,這些隱藏下來的錯誤在某些特定的使用環境下就會暴露。為了識別和糾正軟體錯誤、改正軟體效能上的缺陷、排除實施中的誤使用,應當進行的診斷和改正錯誤的過程,就叫做改正性維護。例如,改正性維護可以是改正原來程式中未使開關(off/on)複原的錯誤;解決開發時未能測試各種可能情況帶來的問題;解決原來程式中遺漏處理檔案中最後一個記錄的問題等。

(2)適應性維護。隨著電腦的飛速發展,外部環境(新的硬、軟體配臵)或資料環境(資料庫、資料格式、資料輸入/輸出方式、資料存放區介質)可能發生變化,為了使軟體適應這種變化,而去修改軟體的過程就叫做適應性維護。例如,適應性維護可以是為現有的某個應用問題實現一個資料庫;對某個指定的事務編碼進行修改,增加字元個數;調整兩個程式,

使它們可以使用相同的記錄結構;修改程式,使其適用於另外一種終端。

(3)完善性維護。在軟體的使用過程中,使用者往往會對軟體提出新的功能與效能要求。為了滿足這些要求,需要修改或再開發軟體,以擴充軟體功能、增強軟體效能、改進加工效率、提高軟體的可維護性,這種情況下進行的維護活動叫做完善性維護。例如,完善性維護可能是修改一個計算工資的程式,使其增加新的扣除項目;縮短系統的應答時間,使其達到特定的要求;把現有程式的終端對話方式加以改造,使其具有方便使用者使用的介面;改進圖形輸出;增加線上說明(Help)功能;為軟體的運行增加監控設施等。在維護階段的最初一兩年,改正性維護的工作量較大。隨著錯誤發現率急劇降低,並趨於穩定,就進入了正常使用期。然而,由於改造的要求,適應性維護和完善性維護的工作量逐步增加,在這種維護過程中又會引入新的錯誤,從而加重了維護的工作量。實踐表明,在幾種維護活動中,完善性維護所佔的比重最大。即大部分維護工作是改變和加強軟體,而不是錯誤修正。所以,維護並不一定是救火式的緊急維修,而可以是有計劃、有預謀的一種再開發活動。事實證明,來自使用者要求而擴充、加強軟體功能、效能的維護活動約佔整個維護工作的 50%。

(4)預防性維護。除了以上三類維護之外,還有一類維護活動,叫做預防性維護。這是為了提高軟體的可維護性、可靠性等,為以後進一步改進軟體打下良好基礎。通常,預防性維護定義為:“把今天的方法學用於昨天的系統以滿足明天的需要”。也就是說,採用先進的軟體工程方法對需要維護的軟體或軟體中的某一部分(重新)進行設計、編製和測試。

在整個軟體維護階段所花費的全部工作量中,預防性維護只佔很小的比例,而完善性維護佔了幾乎一半的工作量,軟體維護活動所花費的工作占整個生存期工作量的 70%以上。這是由於在漫長的軟體運行過程中需要不斷對軟體進行修改,以改正新發現的錯誤、適應新的環境和使用者新的要求。這些修改需要花費很多精力和時間,而且有時修改不正確,還會引入新的錯誤。同時,軟體維護技術不像開發技術那樣成熟、正常化,消耗工作量自然就比較多。

5.軟體維護:

(1)資料維護

大多應用軟體的資料隨著應用規模的日益擴大和使用者環境的迅速發展,不但基礎資訊,其他所有專題資訊也需要經常地進行維護和更新。應根據系統的規模和實際需求,建立系統的資料維護更新機制,規定資料維護更新的周期,使系統的所有資料均相對地始終處於最新的狀態。資料對一個軟體的重要性,越來越被人們認識。但是,資料如果不經常更新,則有可能失去應用價值,這是每個軟體維護和運行所應重視的問題。

(2)硬體維護

在軟體啟動並執行過程中,應建立硬體裝置的日常維護制度,並根據裝置的使用說明進行及時的維護,以保證裝置完好和系統的正常運行。但當裝置的處理能力達不到要求,或者裝置本身已經過時、淘汰,或者裝置損壞,買不到零配件,或者修理不值得時,應考慮硬體更新。系統硬體更新應按關於硬體評價指標的規定要求重新進行選型。

(3)軟體維護的原因

要求進行軟體維護的原因多種多樣,歸結起來有 3 種類型。改正在特定的使用條件下暴露出來的一些潛在程式錯誤或設計缺陷。因在軟體使用過程中資料環境發生變化(例如,一個交易處理代碼發生改變)或處理環境發生變化(例如,安裝了新的硬體或作業系統),需要修改軟體以適應這種變化。使用者和資料處理人員在使用時常提出改進現有功能、增加新的功能,以及改善總體效能的要求,為滿足這些要求,就需要修改軟體把這些要求納入到軟體之中。

6. 軟體維護的過程

一個維護申請提出之後,經評審需要維護,則按下列過程實施維護。

(1)首先要確定進行維護的類型。在許多情況下,使用者可以把一個請求看作改正性維護,而軟體開發人員可以把這個請求看作適應性或完善性維護。此時,對不同觀點就需要協商解決。

(2)對改正性維護從評價錯誤的嚴重性開始。如果存在一個嚴重的錯誤,例如,一個系統的重要功能不能執行,則有管理者組織有關人員立即開始分析問題。如果錯誤並不嚴重,

則改正性維護與軟體其他任務一起進行,統一安排,按計划進行維護工作。

(3)適應性和完善性維護如同它是另一個開發工作一樣,建立每個請求的優先權,安排所需求的工作。

(4)實施維護任務。不管維護類型如何,大體上要開展相同的技術工作。這些工作包括修改軟體設計、必要的代碼修改、單元測試、整合測試、確認測試及複審。每種維護類型的側重點不一樣。

(5)“救火”式維護。並不完全適合上面所述的經過仔細考慮的維護申請,而是對於出現突發性的重大故障的維護。

以上是我對軟體工程中軟體維護的初步認識,以後我會更加努力的學習軟體工程這門課程。

 

軟體工程課程總結

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.