軟體工程學習心得

2022-06-22 12:57:13 字數 2314 閱讀 7853

軟體工程的特點在於它要求開發的軟體具有適用性、有效性、可修改性、可靠性、可理解性、可維護性、可維護性、可重用性、可移植性、可追蹤性、可互操作性。然而近年來的研究和實踐表明軟體危機依然存在,軟體開發仍然存在成本高、質量得不到保證、進度和成本難以控制等方面的問題,許多 軟體專案被迫延期甚至取消。同時,隨著時代的發展,網際網路的應用越來越普及,部署在網路基礎上的軟體系統的規模和複雜性越來越高,並表現出諸如持續性、自適應性、互動性、動態性、開放性、異構性等特點。因此,如何支援這類複雜系統的開發、緩解和消除現階段的軟體危機是當前軟體工程面臨的一項重要挑戰。為了迎接上述挑戰,近年來軟體 工程領域的一些學者提出了許多新的方法和技術。比如敏捷軟體開發。軟體工程追求開發軟體要盡力追求投入更少的成本,但卻要適應現代使用者的需求變化。為了解決這個問題,敏捷軟體開發發揮了他的作用。軟體開發一般分為兩種:重型軟體開發方法、輕型軟體開發方法。重型軟體開發方法一般具有嚴格和詳盡的軟體開發過程,軟體開發需產生大量的文件。輕型軟體開發方法則強調軟體開發過程的簡潔性和靈活性,軟體開發只需編寫少量的文件。敏捷軟體開發是一類輕型的軟體開發方法,它提供了一組思想和策略來指導軟體系統的快速開發並響應使用者需求的變化。不同於已有的其它軟體開發方法,該方法對軟體開發具有 以下四個方面的基本認識:(1)較之於過程和工具,應更加重視人和互動的價值;(2)較之於面面俱到的文件,應更加重視可執行軟體的價值;(3)較之於合同談判,應更加重視客戶 合作的價值;(4)較之於遵循計畫,應更加重視響應使用者需求變化的價值。對我們而言,最重要的是通過盡早和不斷交付有價值的軟體滿足客戶需要。我們歡迎需求的變化,即使在開發後期。敏捷過程能夠駕馭變化,保持客戶的競爭優勢。經常交付可以工作的軟體,從幾星期到幾個月,時間尺度越短越好。業務人員和開發者應該在整個專案過程中始終朝夕在一起工作。圍繞鬥志高昂的人進行軟體開發,給開發者提供適宜的環境,滿足他們的需要,並相信他們能夠完成任務。在開發小組中最有效率也最有效果的資訊傳達方式是面對面的交談。可以工作的軟體是進度的主要度量標準。敏捷過程提倡可持續開發。出資人、開發人員和使用者應該總是維持不變的節奏。對卓越技術與良好設計的不斷追求將有助於提高敏捷性。簡單--盡可能減少工作量的藝術至關重要。最好的架構、需求和設計都源自自我組織的團隊。每隔一定時間,團隊都要總結如何更有效率,然後相應地調整自己的行為。敏捷軟體開發有四個原則,首先敏捷軟體開發是遞增而不是連續的,它要求開發軟體的過程中不需要等到乙個小部分完成後再完成另外乙個小部分。第二個便是避免不必要的開銷,這開銷更多指的是時間成本。一直以來,人們將文件視為是對軟體開發各個階段成果進行記錄、促進人員之間進行交流的重要媒介和工具,也是軟體開發和維護的主要依據。然而,編制過多的文件不僅會耗費大量時間和精力,而且當使用者需求變化時難以實現文件與**的同步,這勢必會影響軟體系 統的開發和維護。敏捷軟體開發方法提倡在軟體開發過程中只編寫少量短小精煉的文件。與其大家開會爭吵半天,編寫大量的文件,還不如趕緊動手做。第三個便是協作精神,乙個團隊,只有互相合作才能以最快的效率完成開發任務,才能在出現問題的時候迅速解決問題。敏捷軟體開發方法認為人是軟體開發中最為重要的因素,軟體開發應堅持以人為本;優秀的軟體開發團隊離不開人員之間良好的溝通與合作,相比較而言團隊的合作與溝通能力比單純的程式設計能力更為重要,改善人員之間的交流與合作將有助於提公升團隊的軟體開發水平;應根據軟體開發團隊的特點擊擇合適的軟體開發過程第四個就是要實事求是,在團隊合作中,不要害怕自己不懂的問題,害怕被別人看輕而不敢說真話。除此之外,敏捷式開發還注重與使用者的交流成功的軟體開發不應單純依賴於合同條款和工作說明,而應 將使用者和軟體開發團隊緊密地結合在一起,讓使用者積極參與軟體開發並提供持續不斷、頻繁的反饋資訊。在軟體開發過程中,使用者需求總會發生變化,這是由於使用者需求難以一次性完全捕獲,開發人員和使用者對於需求的認識會不斷地調整。此外,使用者的業務本身也可能會動態地發生變化。在複雜軟體系統的開發過程中,響應使用者需求變化的能力常常決定著軟體專案的成敗。為了適應使用者需求的變化,敏捷軟體開發認為軟體開發計畫不應考慮的太遠,不要進行過於周密、詳細的計畫,只應覆蓋短期的工作任務,對於中長期的任務只需有乙個粗略的規劃即可,要保留計畫 的充分靈活性,並根據需求的變化適時地調整計畫。

敏捷軟體開發與迭代式開發具有相似之處,都是注重於在較短的時間裡完成軟體開發,但敏捷開發方法的週期可能更短,並且更加強調隊伍中的高度協作。對比瀑布式開發兩者沒有很多的共同點,瀑布模型式是最典型的預見性的方法,嚴格遵循預先計畫的需求、分析、設計、編碼、測試的步驟順序進行。步驟成果作為衡量進度的方法,例如需求規格,設計文件,測試計畫和**審閱等等。瀑布式的主要的問題是它的嚴格分級導致的自由度降低,專案早期即作出承諾導致對後期需求的變化難以調整,代價高昂。瀑布式方法在需求不明並且在專案進行過程中可能變化的情況下基本是不可行的。相對來講,敏捷方法則在幾周或者幾個月的時間內完成相對較小的功能,強調的是能將盡早將盡量小的可用的功能交付使用,並在整個專案週期中持續改善和增強。

敏捷軟體開發宣言

:基於構件的敏捷軟體開發方法

軟體工程學習心得

學習軟體工程乙個學期以來,我在鄒一波老師的教導下確實獲益匪淺。軟體工程這門課,讓我對軟體的認識有了大大的提公升,從一開始對軟體工程的一無所知,到現在一學期下來的不斷學習,懂得了許多的知識。軟體不僅僅是程式,而是思想在硬體上的載體和體現,軟體工程與其說是一門課程,不如說是一門思想。讓我懂得如何去分析和...

網易雲課堂 軟體工程學習心得

通過十周的學習,老師要求的網易雲課堂 軟體工程的學習,終於結束了。從開始的對linux平台的不熟悉,到能夠熟練運用linux書寫 我相信大家和我一樣都學到了很多。這是學習的進度表 實驗一 實驗二 實驗三 實驗四 實驗五 實驗七 實驗 庫 這是最高的層次,是應對軟體危機的需要。2 設計原則 低耦合 高...

軟體工程學習筆記

1 軟體工程的基本概念 軟體的概念 軟體 程式 文件 軟體是能夠完成預定義功能的可執行的電腦程式和使程式正常執行所需要的資料,加讓描述程式的操作和文件。程式 適合計算機處理的語句序列 它的目的是啥呢?是為了解決某個特殊的問題 文件 開發活動的記錄 用於通訊和交流,開發過程的管理和執行階段的維護 軟體...