第一篇:軟件工程心得體會
《軟件工程》的感悟
時間飛逝,不知不覺間《軟件工程》的學習已經過了大半了。在這將近半學期的學習中,雖然我不能說我將《軟件工程》學習的有多么的好,但是通過學習,我還是受益良多。
在以前,我一直對軟件存在一些偏見或則是誤解,認為軟件就是程序,軟件的開發就是編寫程序,只要編完了程序,一切也就ok了,而且我還片面的認為只要我掌握了時下最新的語言和工具,那么我就能寫程序了。一個人,只要會編程,就能寫軟件,就是程序員;一個公司,只要招聘一些程序員,就能開發好的軟件產品。只要有幾個有經驗的程序員,再找些兼職的大學生,就能組成一個軟件公司。
但是通過了《軟件工程》這門課的學習,使我認識到了我以前的錯誤。軟件其實不僅僅是程序,軟件開發其實也不僅僅是編寫程序,軟件是思想在硬件上的載體和體現,處理的是邏輯和信息。唯有對軟件和軟件的開發過程,有充分的認識,才能更好的開發出,過程受控、質量受控的軟件產品。
而且在以前,我一直以為軟件的開發其實是一件很輕松快樂的事情,只要一天坐在電腦旁敲敲鍵盤,那么一切就可以了,但是現在我才發現,我以前的很多的思想是多么的膚淺可笑。編程其實是一種樂趣和苦惱共存的一項創造性活動。因為編程不僅能夠滿足我們內心深處進行創造的渴望,而且還能愉悅我們內在的情感。
而且通過學習《軟件工程》,我還學到了很多其他的東西。比如通過學習《軟件工程》,特別是老師每次用實際的軟件現場的講解,為我提供了一個盡早接觸世界工作和真實項目的機會。讓我知道如何在以最小的成本中,訓練自己的基本工程素質和能力,如何激發自己的積極性等。而且通過學習《軟件工程》,還讓我認識和培養了我的團隊協作能力,特別是對于我們這些在校的學生來說,這種學習更是能讓我在以后工作中少走很多的彎路。
所以,通過《軟件工程》的學習,我是真的學習到了很多有用的東西,讓我明白了很多的道理。在此我對老師的辛勤教育表示感謝,因為是你讓我學習到了這些,是我獲益良多。
第二篇:軟件工程心得體會
軟件工程心得體會
未接觸軟件工程之前一直都很想學這門課程,因為覺得這門課很牛,是那些有工程師稱號的高手才擺弄的東西。學了一個學期的軟件工程課,終于知道了個軟件工程的大概。學的時候總覺得很抽象,理解起來好像不難,但總是摸不著頭腦一種很茫然的感覺。
曾經以為程序就是軟件,軟件就是程序。學習這門課程第一個收獲是,知道了二者的不同之處。以前做過的一些小型的軟件比如加密軟件,我也只是在程序旁邊附上一個軟件的說明,看來已經很接近作坊了。不過大的項目沒有接觸過,用軟件工程的方法還是第一次。我想也是程序的不斷復雜化導致了軟件危機的發生,使得人們不得不探索新的解決方法。
經過倪老師的講解,理解了軟件工程,就是一套用于軟件的團隊開發,以提高軟件質量和程序員工作效率為目的的規范。其核心就是,對于軟件開發的5個重要組成部分:需求分析,設計,編碼,調試,維護,如何組織這5個部分的工作,以及如何完成每一個工作。
吾生也有涯,而知也無涯,學習永無止境。起初,對軟件工程處于一知半解的狀態,分工比較混亂。在劃分模塊后明確了各自分工,漸漸形成良性循環。
在學習過程中,知道了團隊合作十分重要,爭議固然存在,但通過討論、協商,群策群力,在不斷磨合中能夠達成一致與默契。團隊成員中能力各有高下,互相尊重,各取所長,不宜妄自菲薄。組長多加協調,組員積極配合,才能合作愉快。
學習能力體現在能盡快接受新的知識,順應變化,學為所用。上《軟件工程導論》這門課,我的收獲大概如下:
我們為什么需要軟件工程呢?上面已經給出了一些原因。專業點講,軟件工程最終是為了實現“軟件制造業”的社會化,工業化大生產,提高其勞動生產效率。只有如此,軟件業才能實現社會化,工業化大生產,才能“做大做強”。沒有管理的設計是失敗和混亂的設計,沒有設計指導的編程是無序的忙碌的。根據開發的軟件的規模,應該適當程度的運用軟件工程化的思想,需要靈活,畢竟我們開發的軟件大多數是中小型的,大型的并不多見(我是這么認為的)。但只要涉及人員間的交流和溝通,或多或少都要需要軟件工程才能更有效率,工作成果更穩定。
其實開發軟件,就像是解決一個邏輯問題。想想自己平時是怎樣寫程序的。首先是要有一個想法,即我寫的這個程序是要干什么的;然后就是對要實現的核心功能大概構思一種或多種實現方法,并從中選出一種自認為是較好的;接下來就是將涉及的各種主要或次要功能分成各個模塊;最后就是分模塊來編碼和DEBUG。在我看來,除了第一步外,其余的步驟應該是一個循環的過程。在編碼的過程中,你總是需要不斷地回過頭來修改原先的模塊設計,甚至最初選定的實現算法。
具體到每一步的工作要怎樣完成,是非常靈活的,只要把握住大體的方向就行。在進行分析,設計,編碼,調試,維護這幾部分的工作的時候,最核心的就是文檔的編寫。
1.可行性分析就是關于當前項目能不能干的分析結果。
2.項目描述這是在決定立項以后,對當前項目的一份扼要說明。3.需求分析就是對客戶要求的功能的定義。
4.軟件設計這就是對程序的每一個模塊的詳細設計的說明文檔。5.開發日志我一直都認為這是文檔中最有趣的部分。開發日志相當于編碼階段的文檔,它的形式可以很隨意,主要是記錄一些在寫程序時突然萌發的靈感,或對代碼的一些微小的修改,或對程序結構的一些微小變動等,還要對上述這些修改變動作些說明。
6.測試分析 用于指出程序存在或潛在的缺陷和錯誤,以及程序性能的數字描述。
第三篇:軟件工程課 心得體會
心得體會
通過本學期的學習,獨立完成了軟件工程方法實踐與案例的作業,同時也收獲了學習方法和思維方式。由于我是從電氣專業調劑到計算機專業,幾乎沒有基礎,所以在剛開始進入學習時感覺非常的困難。但是,李老師每節課都循序漸進的引導教學,讓我慢慢理解了軟件工程的學習思維,并且堅持學習,逐漸找到了學習軟件工程的方法。在整個的學習中,一點一點的學習:上網搜索、問同學和老師、找參考書、查文獻,甚至下倉庫管理的軟件進行使用研究,用了很多方法,也終于對軟件工程的整體設計有了深刻概念和理解。
老師給我們分組分配任務,同時又每個人有不同的具體任務,這樣既鍛煉了我們的合作溝通的能力,同時也強調了獨立自主的思考。我們倉庫管理小組進行過好幾次集體討論,大家互相討論,共同學習,也曾出現過意見不統一,通過探討,共同解決,我覺得這也是學習提升的過程。明確了自己的任務后,就努力去完成,按時完成自己的任務。
在完成作業的同時,學到了很多的數據庫知識和軟件使用方法。首先接觸了visio軟件,發現了它畫圖比較方便,之后老師介紹用rose軟件后,發現其功能更加強大。由于rose軟件是英文版,所以剛開始用的時候比較吃力,經過搜索使用教程和多次使用練習后,終于可以熟練使用了。
整個設計過程,包括調研設計、需求分析、概要設計、數據庫設計、詳細設計等。其中,我對UML圖印象最為深刻,也是從這個地方開始,我對軟件設計有了質的改變,體會和理解了軟件設計應該樹立的思維方式,對以后的學習和任務有有很大幫助,后期做作業時也沒有那么困難了。
在這整個課程學習和完成作業過程中,收獲知識,提高能力的同時,我也學到了很多人生習慣,懂得怎么樣去制定計劃,怎么樣去實現這個計劃,并掌握了在執行過程中怎么樣去克服心理上的不良情緒。因此在以后的生活和學習的過程中,我一定會把這種習慣帶到生活中,不畏,勇往直前!
最后感謝李老師對我們耐心的教育和指導,認真細心的給我們批改作業,給予我們這些沒有基礎的學生耐心指導,謝謝老師!
第四篇:zzf軟件工程心得體會
軟件開發特別是大型軟件是一項浩大的工程,需要幾個人、十幾個人、幾十個人甚至幾百個人合作開發幾個月、十幾個月甚至幾年。要保證系統的協調性、統一性和連續性,就需要在開發之前制定嚴格、詳細的開發規范。開發規范的制定需要花費一定的時間和精力,但是“磨刀不誤砍柴功”,它相當于把今后開發過程中開發人員都要遇到的問題提前做了一個考慮。有了開發規范,在后續的開發過程中,設計人員就不必每次考慮如何為一個字段命名,編程人員也不必去想某個程序的結構和布局應當 怎樣,測試人員也有了判斷程序對錯的標準。開發規范在項目開發工作中起著事前約定的作用,需要所有開發人員共同遵守。它約束開發人員的行為和設計、編程風格,使不同子系統和模塊的設計、編程人員達成默契,以便形成整個系統的和諧步調和統一風格,也便于今后的系統維護和擴展工作。
最初接觸軟工的時候以為是一門程序設計的課程,主要講述的是軟件的編寫。結果上了課以后才發現這確實是一門有關軟件的課程,雖然不教授具體的代碼編寫,但是這確確實實是一門有關軟件開發的課程,是一門對于我們來講必不可少的課程。有的人會覺得會編寫代碼就可以了啊,但是他忽視了我們現階段接觸的軟件開發都是比較簡單的,工作量較小的課題。然而當項目的規模變得越發巨大而且越來越復雜的時候,我們就需要軟件工程這門學科來讓大家理清設計思路,并且學會分工合作。在我看來,軟件工程與其說是一門課程,不如說是一門思想。是一個如何去分析和處理問題的過程,應該說其范疇已經遠遠不止局限于該門課程,成為了一個綜合的一個能夠解決問題的思想集合。這讓我們收益匪淺。在課程設計的過程中,我們發現讓大家齊心協力去完成工作并沒有那么簡單,每個人的時間規劃都不一樣,擅長的也不相同!也許未來我們面對的團隊合作會更加的困難。調整了心態才能夠行更遠的路,收獲成功。
第五篇:軟件工程讀書心得體會
軟件工程讀書心得體會
040730111 步入大四,課程變的少了,學期伊始,我很認真地上課、聽講;很快就過了1個月了,學校的就業中心開始忙碌起來,作為就業大軍中的一員,我開始忙碌我的工作,聽宣講會、筆試、面試,漸漸地上課不用心了,還曠過課,在這里請老師原諒,下面是我對于軟件工程各方面知識的理解,請老師指正:
(一)軟件度量方面
軟件度量是對軟件開發項目、過程及其產品進行數據定義、收集以及分析的持續性定量化過程,目的在于對此加以理解、預測、評估、控制和改善。沒有軟件度量,就不能從軟件開發的暗箱中跳將出來。通過軟件度量可以改進軟件開發過程,促進項目成功,開發高質量的軟件產品。在軟件開發中,軟件度量的根本目的是為了管理的需要,利用度量來改進軟件過程。對于管理層人員來說:沒有對軟件過程的可見度就無法管理;而沒有對見到的事物有適當的度量或適當的準則去判斷、評估和決策,也無法進行優秀的管理。所以軟件度量在軟件開發中起到不可或缺的作用。
項目度量是針對軟件開發項目的特定度量,目的在于度量項目規模、項目成本、項目進度、顧客滿意度等,輔助項目管理進行項目控制。軟件開發項目規模度量(size measurement)是估算軟件項目工作量、編制成本預算、策劃合理項目進度的基礎。規模度量是軟件項目失敗的重要原因之一。一個好的規模度量模型可以解決這一問題。有效的軟件規模度量是成功項目的核心要素:基于有效的軟件規模度量可以策劃合理的項目計劃,合理的項目計劃有助于有效地管理項目。規模度量的要點在于:由開發現場的項目成員進行估算;靈活運用實際開發作業數據;杜絕盲目迎合顧客需求的“交期逆推法”。軟件開發成本度量主要指軟件開發項目所需的財務性成本的估算。主要方法如下:
類比估算法。類比估算法是通過比較已完成的類似項目系統來估算成本,適合評估一些與歷史項目在應用領域、環境和復雜度方面相似的項目。其約束條件在于必須存在類似的具有可比性的軟件開發系統,估算結果的精確度依賴于歷史項目數據的完整性、準確度以及現行項目與歷史項目的近似程度。
細分估算法。細分估算法是將整個項目系統分解成若干個小系統,逐個估算成本,然后合計起來作為整個項目的估算成本。細分估算法通過逐漸細化的方式對每個小系統進行詳細的估算,可能獲得貼近實際的估算成本。其難點在于,難以把握各小系統整合為大系統的整合成本。
周期估算法。周期估算法是按軟件開發周期進行劃分,估算各個階段的成本,然后進行匯總合計。周期估算法基于軟件工程理論對軟件開發的各個階段進行估算,很適合瀑布型軟件開發方法,但是需要估算者對軟件工程各個階段的作業量和相互間的比例具有相當的了解。
(二)軟件項目管理
軟件項目管理的對象是軟件工程項目。它所涉及的范圍覆蓋了整個軟件工程過程。為使軟件項目開發獲得成功,關鍵問題是必須對軟件項目的工作范圍、可能風險、需要資源(人、硬件/軟件)、要實現的任務、經歷的里程碑、花費工作量(成本)、進度安排等做到心中有數。這種管理在技術工作開始之前就應開始,在軟件從概念到實現的過程中繼續進行,當軟件工程過程最后結束時才終止
軟件項目管理是為了使軟件項目能夠按照預定的成本、進度、質量順利完成,而對人員(People)、產品(Product)、過程(Process)和項目(Project)進行分析和管理的活動。
軟件項目管理的根本目的是為了讓軟件項目尤其是大型項目的整個軟件生命周期(從分析、設計、編碼到測試、維護全過程)都能在管理者的控制之下,以預定成本按期,按質的完成軟件交付用戶使用。而研究軟件項目管理為了從已有的成功或失敗的案例中總結出能夠指導今后開發的通用原則,方法,同時避免前人的失誤。
軟件項目管理的內容主要包括如下幾個方面:人員的組織與管理,軟件度量,軟件項目計劃,風險管理,軟件質量保證,軟件過程能力評估,軟件配置管理等。這幾個方面都是貫穿、交織于整個軟件開發過程中的,其中人員的組織與管理把注意力集中在項目組人員的構成、優化;軟件度量把關注用量化的方法評測軟件開發中的費用、生產率、進度和產品質量等要素是否符合期望值,包括過程度量和產品度量兩個方面;軟件項目計劃主要包括工作量、成本、開發時間的估計,并根據估計值制定和調整項目組的工作;風險管理預測未來可能出現的各種危害到軟件產品質量的潛在因素并由此采取措施進行預防;質量保證是保證產品和服務充分滿足消費者要求的質量而進行的有計劃,有組織的活動;軟件過程能力評估是對軟件開發能力的高低進行衡量;軟件配置管理針對開發過程中人員、工具的配置、使用提出管理策略。
(三)CMM CMM是是一種用于評價軟件承包能力并幫助其改善軟件質量的方法,側重于軟件開發過程的管理及工程能力的提高與評估。CMM分為五個等級:一級為初始級,二級為可重復級,三級為已定義級,四級為已管理級,五級為優化級。除了第1級外,其他每一級由幾個關鍵過程方面組成。每一個關鍵過程方面都由上述5種公共特性予以表征。CMM給每個關鍵過程了一些具體目標。按每個公共特性歸類的關鍵慣例是按該關鍵過程的具體目標選擇和確定的。如果恰當地處理了某個關鍵過程涉及的全部關鍵慣例,這個關鍵過程的各項目標就達到了,也就表明該關鍵過程實現了。這種成熟度分級的優點在于,這些級別明確而清楚地反映了過程改進活動的輕重緩急和先后順序。
(四)SPP SPP模型將項目管理、項目研發、機構支撐所包含的工作劃分為相對獨立的三類過程,各個過程域之間的關系直觀明了。這樣,機構領導、項目經理、開發人員、測試人員、質量保證人員、外包與采購管理人員等人根據SPP模型,很容易知道自己“應該在什么時候、按照什么規范做什么事情”。所以SPP模型有助于使機構內的各個職能單位有條不紊地開展工作。SPP模型的三類過程貫穿了產品的整個生命周期,19個最常見的過程域都合理地安排在產品生命周期中的某些階段。用戶可以根據自己產品的特征,適當地裁剪或擴充SPP的過程域,很容易制定出最適合于本產品的過程模型。
在讀了軟件工程以后,我覺得我前期不認真看書真的是錯誤的做法,經過這次對軟件工程的閱讀,我覺得受益匪淺,非常干些老師的教導,我覺得我對軟件工程的認識還遠遠不夠,在以后的日子里,我仍然需要努力學習,做到更深入的學習,提高解決問題的能力。