




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
軟件工程心得體會
第一篇:軟件工程心得體會
軟件工程心得體會
未接觸軟件工程之前一直都很想學(xué)這門課程,因為覺得這門課很
牛,是那些有工程師稱號的高手才擺弄的東西。學(xué)了一個學(xué)期的軟件
工程課,終于知道了個軟件工程的大概。學(xué)的時候總覺得很抽象,理
解起來好像不難,但總是摸不著頭腦一種很茫然的感覺。
曾經(jīng)以為程序就是軟件,軟件就是程序。學(xué)習(xí)這門課程第一個收
獲是,知道了二者的不同之處。以前做過的一些小型的軟件比如加密
軟件,我也只是在程序旁邊附上一個軟件的說明,看來已經(jīng)很接近作
坊了。不過大的項目沒有接觸過,用軟件工程的方法還是第一次。我
想也是程序的不斷復(fù)雜化導(dǎo)致了軟件危機(jī)的發(fā)生,使得人們不得不探
索新的解決方法。
經(jīng)過倪老師的講解,理解了軟件工程,就是一套用于軟件的團(tuán)隊
開發(fā),以提高軟件質(zhì)量和程序員工作效率為目的的規(guī)范。其核心就是,
對于軟件開發(fā)的5個重要組成部分:需求分析,設(shè)計,編碼,調(diào)試,
維護(hù),如何組織這5個部分的工作,以及如何完成每一個工作。
吾生也有涯,而知也無涯,學(xué)習(xí)永無止境。起初,對軟件工程處
于一知半解的狀態(tài),分工比較混亂。在劃分模塊后明確了各自分工,
漸漸形成良性循環(huán)。
在學(xué)習(xí)過程中,知道了團(tuán)隊合作十分重要,爭議固然存在,但通
過討論、協(xié)商,群策群力,在不斷磨合中能夠達(dá)成一致與默契。團(tuán)隊
成員中能力各有高下,互相尊重,各取所長,不宜妄自菲薄。組長多
加協(xié)調(diào),組員積極配合,才能合作愉快。
學(xué)習(xí)能力體現(xiàn)在能盡快接受新的知識,順應(yīng)變化,學(xué)為所用。上
《軟件工程導(dǎo)論》這門課,我的收獲大概如下:
我們?yōu)槭裁葱枰浖こ棠兀可厦嬉呀?jīng)給出了一些原因。專業(yè)點
講,軟件工程最終是為了實現(xiàn)〃軟件制造業(yè)〃的社會化,工業(yè)化大生產(chǎn),
提高其勞動生產(chǎn)效率。只有如此,軟件業(yè)才能實現(xiàn)社會化,工業(yè)化大生產(chǎn),
才能〃做大做強(qiáng)〃。沒有管理的設(shè)計是失敗和混亂的設(shè)計,沒有設(shè)計
指導(dǎo)的編程是無序的忙碌的。根據(jù)開發(fā)的軟件的規(guī)模,應(yīng)該適當(dāng)程度
的運(yùn)用軟件工程化的思想,需要靈活,畢竟我們開發(fā)的軟件大多數(shù)是
中小型的,大型的并不多見(我是這么認(rèn)為的)。但只要涉及人員間
的交流和溝通,或多或少都要需要軟件工程才能更有效率,工作成果
更穩(wěn)定。
其實開發(fā)軟件,就像是解決一個邏輯問題。想想自己平時是怎樣
寫程序的。首先是要有一個想法,即我寫的這個程序是要干什么的;
然后就是對要實現(xiàn)的核心功能大概構(gòu)思一種或多種實現(xiàn)方法,并從中
選出一種自認(rèn)為是較好的;接下來就是將涉及的各種主要或次要功能
分成各個模塊;最后就是分模塊來編碼和DEBUG。在我看來,除了第
一步外,其余的步驟應(yīng)該是一個循環(huán)的過程。在編碼的過程中,你總
是需要不斷地回過頭來修改原先的模塊設(shè)計,甚至最初選定的實現(xiàn)算
法。
具體到每一步的工作要怎樣完成,是非常靈活的,只要把握住大
體的方向就行。在進(jìn)行分析,設(shè)計,編碼,調(diào)試,維護(hù)這幾部分的工
作的時候,最核心的就是文檔的編寫。
1.可行性分析就是關(guān)于當(dāng)前項目能不能干的分析結(jié)果。
2.項目描述這是在決定立項以后,對當(dāng)前項目的一份扼要說明。3.
需求分析就是對客戶要求的功能的定義。
4軟件設(shè)計這就是對程序的每一個模塊的詳細(xì)設(shè)計的說明文檔。5.
開發(fā)日志我一直都認(rèn)為這是文檔中最有趣的部分。開發(fā)日志相當(dāng)于編
碼階段的文檔,它的形式可以很隨意,主要是記錄一些在寫程序時突
然萌發(fā)的靈感,或?qū)Υa的一些微小的修改,或?qū)Τ绦蚪Y(jié)構(gòu)的一些微
小變動等,還要對上述這些修改變動作些說明。
6.測試分析用于指出程序存在或潛在的缺陷和錯誤,以及程序性
能的數(shù)字描述。
第二篇:軟件工程心得體會(推薦)
軟件工程學(xué)習(xí)心得
這個學(xué)期我學(xué)習(xí)了軟件測試這門專業(yè)課程,在學(xué)期即將結(jié)束的時
候,我也對這門課程建立基本的了解。軟件測試這門課程作為軟件工
程專業(yè)中一門很重要的課程,已經(jīng)在軟件領(lǐng)域占據(jù)了不可替代的角色,
當(dāng)一個軟件從雛形到真正的在一臺計算機(jī)是哪個運(yùn)行的時候,誰也不
能保證計算機(jī)軟件能一步到位的滿足人們的需求。所以就有了軟件測
試,其目的的:第一是確認(rèn)軟件的質(zhì)量,其一方面是確認(rèn)軟件做了你
所期望的事情,另一方面是確認(rèn)軟件以正確的方式來做了這個事情。
我認(rèn)為,在整個龐大的軟件工程中,不管是需求分析、架構(gòu)設(shè)計,
甚至是最后的debug,都會產(chǎn)生引入不管的機(jī)會,這就要去作為一個
軟件測試師要掌握豐富的軟件工程原理和知識。測試的工作將會存在
于整個項目周期,即在項目開始時需要各種分析調(diào)研時就開始了,尤
其是在形成需求規(guī)格說明書時就有對文檔的測試需求,甚至主導(dǎo)整個
項目的走向。
軟件測試對邏輯思維、學(xué)習(xí)能力、反應(yīng)思維要求很高,是否有嚴(yán)
密的思維和逆向思維也非常重要。做測試還要考慮到所有出錯的可能
性,有時候還要用一些非常規(guī)的測試方法。軟件測試還很注重軟件性
能問題,也
就是要保證軟件運(yùn)行得很好;在不同環(huán)境下,考慮軟件的兼容性
同樣重要。對于測試人員來講,會比開發(fā)人員更加重視軟件產(chǎn)品的質(zhì)
量問題。在測試過程中,測試者可能會為可會的需求角度考慮更多,
由此我們可以認(rèn)為測試人員有權(quán)利決定產(chǎn)品是否可以發(fā)布。然而,通
過一個學(xué)期的學(xué)習(xí),我們又不得不懂得,軟件測試人員不是萬能的,
測試人員在面對一個設(shè)計爛編碼的軟件時,也是無法不低頭的,再怎
么測試它也變不成優(yōu)秀的軟件。
通過課上的理論和課下的實踐,以及在網(wǎng)上和一些論壇里討論和
學(xué)習(xí),使我對測試有了大致的接觸和深入的了解。以下就是我在軟件
測試方面的認(rèn)識:
每項測試都包括三個部分,一組操作,一組預(yù)期結(jié)果和一組實際
結(jié)果。另外要盡量用最少的測試用例覆蓋軟件功能的絕大方面??紤]
到各個方面的原因,我們應(yīng)考慮盡可能多的條件下的測試,這樣我們
的測試才能更具有全面性和普遍性。大體上我們的測試可以分一下幾
個方面:
(1)邊界測試,測試用戶輸入框中的數(shù)值的最大數(shù)和最小數(shù),以
及為空時的情況。
(2)非法測試,例如在輸入數(shù)字的地方輸入字母。
(3)跟蹤測試,跟蹤一條數(shù)據(jù)的流程,保證數(shù)據(jù)的正確性。
(4)在開始測試之前應(yīng)保證數(shù)據(jù)的正確性,然后再從系統(tǒng)中找出
各種BUG。
(5)接口測試,程序往往在接口的地方很容易發(fā)生錯誤,要在此
模塊測試勿掉以輕心。
(6)代碼重用測試,在開發(fā)過程中有些模塊功能幾乎相同,開發(fā)
人員在重用代碼時可能忘記在原有代碼上修改或修改不全面,而造成
的錯誤。
(7)突發(fā)事件測試,服務(wù)器上可能發(fā)生意外情況的測試,如網(wǎng)絡(luò)
中斷,電源斷電等極端的情況。
(8)外界環(huán)境測試,有些系統(tǒng)在開發(fā)時依賴于另外一個系統(tǒng),當(dāng)
另外一個系統(tǒng)發(fā)生錯誤時,這個系統(tǒng)所受到的影響的情況。
(9)系統(tǒng)兼容測試,例如有些程序在正6能運(yùn)行正常,至IJ正5下
不能運(yùn)行。有些程序在WIN2000下能運(yùn)行,而到WIN98卻不能運(yùn)行。
(10)用戶的易用性測試,往往用戶的需求是不斷的變化的,而
其中的一部份變化的原因,是由用戶操作上不方便引起的。
雖然課程已經(jīng)接近尾聲,我卻開始對軟件測試產(chǎn)生濃厚興趣,也
增加了我對其的知識,在以后的大學(xué)課余時間中我一定會更加努力,
永不放棄,世上無難事,只怕有心人!通過刻苦鉆研,相信有付出就
一定有回報,總有一天,我定能在計算機(jī)和軟件測試方面有所成就。
第三篇:軟件工程心得體會
《軟件工程》的感悟
時間飛逝,不知不覺間《軟件工程》的學(xué)習(xí)已經(jīng)過了大半了。在
這將近半學(xué)期的學(xué)習(xí)中,雖然我不能說我將《軟件工程》學(xué)習(xí)的有多
么的好,但是通過學(xué)習(xí),我還是受益良多。
在以前,我一直對軟件存在一些偏見或則是誤解,認(rèn)為軟件就是
程序,軟件的開發(fā)就是編寫程序,只要編完了程序,一切也就ok了,
而且我還片面的認(rèn)為只要我掌握了時下最新的語言和工具,那么我就
能寫程序了。一個人,只要會編程,就能寫軟件,就是程序員;一個
公司,只要招聘一些程序員,就能開發(fā)好的軟件產(chǎn)品。只要有幾個有
經(jīng)驗的程序員,再找些兼職的大學(xué)生,就能組成一個軟件公司。
但是通過了《軟件工程》這門課的學(xué)習(xí),使我認(rèn)識到了我以前的
錯誤。軟件其實不僅僅是程序,軟件開發(fā)其實也不僅僅是編寫程序,
軟件是思想在硬件上的載體和體現(xiàn),處理的是邏輯和信息。唯有對軟
件和軟件的開發(fā)過程,有充分的認(rèn)識,才能更好的開發(fā)出,過程受控、
質(zhì)量受控的軟件產(chǎn)品。
而且在以前,我一直以為軟件的開發(fā)其實是一件很輕松快樂的事
情,只要一天坐在電腦旁敲敲鍵盤,那么一切就可以了,但是現(xiàn)在我
才發(fā)現(xiàn),我以前的很多的思想是多么的膚淺可笑。編程其實是一種樂
趣和苦惱共存的一項創(chuàng)造性活動。因為編程不僅能夠滿足我們內(nèi)心深
處進(jìn)行創(chuàng)造的渴望,而且還能愉悅我們內(nèi)在的情感。
而且通過學(xué)習(xí)《軟件工程》,我還學(xué)到了很多其他的東西。比如
通過學(xué)習(xí)《軟件工程》,特別是老師每次用實際的軟件現(xiàn)場的講解,
為我提供了一個盡早接觸世界工作和真實項目的機(jī)會。計我知道如何
在以最小的成本中,訓(xùn)練自己的基本工程素質(zhì)和能力,如何激發(fā)自己
的積極性等。而且通過學(xué)習(xí)《軟件工程》,還讓我認(rèn)識和培養(yǎng)了我的
團(tuán)隊協(xié)作能力,特別是對于我們這些在校的學(xué)生來說,這種學(xué)習(xí)更是
能讓我在以后工作中少走很多的彎路。
所以,通過《軟件工程》的學(xué)習(xí),我是真的學(xué)習(xí)到了很多有用的
東西,讓我明白了很多的道理。在此我對老師的辛勤教育表示感謝,
因為是你讓我學(xué)習(xí)到了這些,是我獲益良多。
第四篇:軟件工程實驗心得體會
軟件工程實驗心得體會
軟件工程實驗心得體會一:軟件工程實驗心得體會
經(jīng)過這學(xué)期軟件工程實驗的學(xué)習(xí),深深感到用戶需求對軟件的重
要性。成功的軟件產(chǎn)品是建立在成功的需求基礎(chǔ)之上的,而高質(zhì)量的
需求來源于用戶與開發(fā)人員之間有效的溝通與合作。當(dāng)用戶有一個問
題可以用計算機(jī)系統(tǒng)來解決,而開發(fā)人員開始幫助用戶解決這個問題,
溝通就開始了。
需求獲取可能是最困難、最關(guān)鍵、最易出錯及最需要溝通交流的
活動。對需求的獲取往往有錯誤的認(rèn)識:用戶知道需求是什么,我們
所要做的就是和他們交談從他們那里得到需求,只要問用戶系統(tǒng)的目
標(biāo)特征,什么是要完成的,什么樣的系統(tǒng)能適合商業(yè)需要就可以了,
但是實際上需求獲取并不是想象的這樣簡單,這條溝通之路布滿了荊
棘。首先需求獲取要定義問題范圍,系統(tǒng)的邊界往往是很難明確的,
用戶不了解技術(shù)實現(xiàn)的細(xì)節(jié),這樣造成了系統(tǒng)目標(biāo)的混淆。
其次是對問題的理解,用戶對計算機(jī)系統(tǒng)的能力和限制缺乏了解,
任何一個系統(tǒng)都會有很多的用戶或者不同類型的用戶,每個用戶只知
道自己需要的系統(tǒng),而不知道系統(tǒng)的整體情況,他們不知道系統(tǒng)作為
一個整體怎么樣工作效率更好,也不太清楚那些工作可以交給軟件完
成,他們不清楚需求是什么,或者說如何以一種精確的方式來描述需
求,他們需要開發(fā)人員的協(xié)助和指導(dǎo),但是用戶與開發(fā)人員之間的交
流很容易出現(xiàn)障礙,忽略了那些被認(rèn)為是彳艮明顯’的信息。最后是需求
的確認(rèn),因為需求的不穩(wěn)定性往往隨著時間的推移產(chǎn)牛變動,使之難
以確認(rèn)。為了克服以上的問題,必須有組織的執(zhí)行需求的獲取活動。
需求獲取活動要完成的任務(wù)或者步驟的過程如下:
1、編寫項目視圖和范圍文檔
系統(tǒng)的需求包括四個不同的層次:業(yè)務(wù)需求、用戶需求和功能需
求、非功能性需求。業(yè)務(wù)需求說明了提供給用戶新系統(tǒng)的最初利益,反
映了組織機(jī)構(gòu)或用戶對系統(tǒng)、產(chǎn)品高層次的目標(biāo)要求,它們在項目視
圖與范圍文檔中予以說明。用戶需求文檔描述了用戶使用產(chǎn)品必須要
完成的任務(wù),這在使用實例文檔或方案腳本說明中予以說明。功能需
求定義了開發(fā)人員必須實現(xiàn)的軟件功能,使得用戶能完成他們的任務(wù),
從而滿足了業(yè)務(wù)需求。
非功能性需求是用戶對系統(tǒng)良好運(yùn)作提出的期望,包括了易用性、
反應(yīng)速度、容錯性、健壯性等等質(zhì)量屬性。需求獲取就是根據(jù)系統(tǒng)業(yè)
務(wù)需求去獲得系統(tǒng)用戶需求,然后通過需求分析得到系統(tǒng)的功能需求
和非功能需求。項目視圖和范圍文檔就是從高層次上描述系統(tǒng)的業(yè)務(wù)
需求,應(yīng)該包括高層的產(chǎn)品業(yè)務(wù)目標(biāo),評估問題解決方案的商業(yè)和技
術(shù)可行性,所有的使用實例和功能需求都必須遵從的標(biāo)準(zhǔn)。而范圍文檔
定義了項目產(chǎn)品所包括的所有工作及產(chǎn)生產(chǎn)品所用的過程。項目相關(guān)
人員對項目的目標(biāo)和范圍能達(dá)成共識,整個項目組都應(yīng)該把注意力集中
在項目目標(biāo)和范圍上。
2、用戶群分類
系統(tǒng)用戶在很多方面存在著差異,例如:使用系統(tǒng)的頻度和程度、
應(yīng)用領(lǐng)域和計算機(jī)系統(tǒng)知識、所使用的系統(tǒng)特性、所進(jìn)行的業(yè)務(wù)過程、
訪問權(quán)限、地理上的布局以及個人的素質(zhì)和喜好等等。根據(jù)這些差異,
你可以把這些不同的用戶分成不同的用戶類。與ULM中Usecase的
Actor概念一樣,用戶類不一定都指人,也可以包括其他應(yīng)用系統(tǒng)、接
口或者硬件,這樣做使得與系統(tǒng)邊界外的接口也成為系統(tǒng)需求。將用
戶群分類并歸納各自特點,并詳細(xì)描述出它們的個性特點及任務(wù)狀況,
將有助于需求的獲取和系統(tǒng)設(shè)計。
3、建立核心隊
通常用戶和開發(fā)人員不自覺的都有一種‘我們和他們’的想法,產(chǎn)牛
一種對立關(guān)系,把彼此放在對立面,每一方都定義自己的‘邊界’,只想
自己的利益而忽略對方的想法。他們通過文檔、記錄和對話來溝通,
而不是作為一個合作的整體去識別和確定需求完成任務(wù)。實踐證明這
樣的方法是不正確的,不會給雙方帶來一點益處,良好的溝通關(guān)系沒有
建立導(dǎo)致了誤解和忽略重要的信息。只有當(dāng)雙方參與者都明白要成功
自己需要什么,同時也知道要成功對方需要什么時,才能建立起一種
合作關(guān)系。
為了建立合作關(guān)系通常采取一種組隊的方式來獲取需求,建立一
個由用戶代表和開發(fā)人員組成的聯(lián)合小組作為需求獲取的核心隊伍。
聯(lián)合小組將負(fù)責(zé)識別需求、分析解決方案和協(xié)商分歧,小組成員可以
采用會議、電子郵件、綜合辦公系統(tǒng)等方式進(jìn)行交流,但交流時應(yīng)注
意以下原則:小組會議應(yīng)該由中立方來組織和主持,用戶和開發(fā)人員
都要參加;交流預(yù)先要確定準(zhǔn)備和參與的規(guī)則;議題要明確并覆蓋所有關(guān)
鍵點,但信息來源應(yīng)該自曲交流目標(biāo)要明確,并告知所有的成員。
4、確定使用實例
從用戶代表處收集他們將使用系統(tǒng)完成所需任務(wù)的描述,討論用
戶與系統(tǒng)間的交互方式和對話要求,這就是使用實例,一個單一的使
用實例可能包括完成某項任務(wù)的許多邏輯相關(guān)任務(wù)和交互順序。使用
實例方法給需求獲取帶來的好處來自于該方法是用以任務(wù)為中心和以
用戶為中心的觀點,比起使用以功能為中心和以開發(fā)者為中心的方法,
使用實例方法可以使用戶更清楚地理解和認(rèn)識到新系統(tǒng)允許他們做什
么和怎么做。描寫使用實例的時候要注意使用簡潔直白的表述,盡量
使用主動語態(tài),用‘系統(tǒng)'或者'用戶彳乍為主語,比如‘用戶提交用戶密碼,
系統(tǒng)驗證用戶密碼是否正確‘,還有一點在描述中不要設(shè)計界面細(xì)節(jié),
比如'用戶從下拉框中選擇產(chǎn)品類型使用實例為以后寫用例場景描述
中的基本路徑和擴(kuò)展路徑提供了素材。
5、分析用戶工作流程
分析用戶工作流程觀察用戶執(zhí)行業(yè)務(wù)任務(wù)的過程,通過分析使用
實例得到系統(tǒng)的用例圖。編制用例圖文檔將有助于明確系統(tǒng)的使用實
例和功能需求,統(tǒng)一建模語言的使用有助于與用戶進(jìn)一步交流。每個
用例的描述應(yīng)包括:編號,為每個用例分配一個唯一的編號,為需求的
追溯提供了方便;參與者,與這個用例交互的actor;前置條件,開始用
例前所必須具備的系統(tǒng)狀態(tài);后置條件,用例完成后系統(tǒng)達(dá)到的狀態(tài);基
本路徑,用例完成的關(guān)鍵路徑,也是用戶期望的路徑;擴(kuò)展點,基本路
徑的分枝,表示意外情況;字段說明,路徑中名稱的進(jìn)一步分解說明,
對以后類屬性的定義和數(shù)據(jù)庫字段設(shè)計起作用;設(shè)計約束,實現(xiàn)用例的
非功能約束。
6、檢查問題報告
通過檢查當(dāng)前已經(jīng)運(yùn)行系統(tǒng)的問題報告來進(jìn)一步完善需求客戶的
問題報告及補(bǔ)充需求為新系統(tǒng)或新版本提供了大量豐富的改進(jìn)及增加
特性的想法,負(fù)責(zé)提供用戶支持及幫助的人能為收集需求過程提供極
有價值的信息。
7、需求重用
如果客戶要求的功能與已有的系統(tǒng)很相似,則可查看需求是否有
足夠的靈活性以允許重用一些已有的軟件組件。業(yè)務(wù)建模和領(lǐng)域建模
式需求重用的最好方法,像分析模式和設(shè)計模式一樣,需求也有自己
的模式。
總結(jié):經(jīng)過一學(xué)期的軟工實驗,深刻感到其重要性的同時也學(xué)到
了不少的東西,將對我在今后的軟件開發(fā)過程中起極大的作用
>軟件工程實驗心得體會二:軟件工程實驗心得>>(789字)
早在我選擇民政職業(yè)技術(shù)學(xué)院就讀軟件開發(fā)與項目管理這門專業(yè)
的時候,我一直認(rèn)為軟件開發(fā)無非是努力的敲代碼,從敲代碼的過程
中去體會各行代碼的意思和用處,在沒學(xué)軟件工程時我一直都是努力
的敲代碼去學(xué)習(xí)軟件開發(fā)這門專業(yè)。在大一的時候我敲代碼的激情很
好,但是到大二的時候就出現(xiàn)問題了,我根本就不喜歡敲代碼了,看
見代碼就頭疼。所以感覺厭惡這門專業(yè),對學(xué)習(xí)也不感興趣了。而且,
還有一件更頭疼的事是在寫一個簡單的程序時竟然老是出錯,難一點
的,復(fù)雜一點的程序竟然無從下手。但是去看程序的參考答案時都看
得懂,又感覺很容易。學(xué)了軟件工程以后,我就感覺我以前的學(xué)習(xí)方
法是錯誤的。以前我只注重于代碼,而不注重理論知識以及編程的思
路,程序的架構(gòu)。以至于在些程序時沒有寫程序的思路,不能形成程
序的架構(gòu)。只想到看腦袋里是否有與此類似的代碼。越想程序越亂,
最后腦袋里一片空白。不知道程序從哪個方面下手了。
軟件工程這門課程是做軟件開發(fā)的人必學(xué)的課程,通過學(xué)這門課
程,程序員就會注重軟件開發(fā)的理論知識,以及做項目開發(fā)的思路。
學(xué)了這門課程后你寫程序就不會去盲目的去套用代碼,而是理清此程
序的架構(gòu)以及思路。程序該從什么時候開始,什么時候結(jié)束。在中間
需要添加什么樣的功能,以完善該軟件。其實學(xué)軟件工程并不難,而
且很容易。軟件工程與日常生活聯(lián)系起來的話,就是在一天中你該先
做什么,后做什么。理解了先做什么,后做什么了以后寫程序就不是
那么難了,再復(fù)雜的程序也可以分成幾大塊。你理清程序的思路后就
可以一步步的解決其中的難題,最終實現(xiàn)軟件的功能。如果沒學(xué)軟件
工程不知道理清程序的思路的話,做一個大的項目開發(fā),那么多的代
碼,沒有一個很好的結(jié)構(gòu),最終只會導(dǎo)致程序混亂,錯誤百出,知道
代碼再多也會素手無策的。
總而言之,作為一個程序員學(xué)習(xí)軟件工程這門課程是至關(guān)必要的,
如果沒學(xué)習(xí)軟件工程,你就不會做項目開發(fā),也不可能開發(fā)出一個完
善的軟件出來。
>軟件工程實驗心得體會三:軟件工程實驗心得>>(1261字)
曾經(jīng)看過一本書叫《道法自然》,內(nèi)容略記得一二,但我最欣賞
的是它的書名。軟件設(shè)計沒什么太神秘有東西,只要用心體會,其實
一切都很自然。軟件的設(shè)計之〃道〃,也不在于設(shè)計有多么的華麗、
精巧,而在于其樸實、自然,最終達(dá)到〃以無招勝有招〃,進(jìn)入一個
全新的境界。
一、軟件設(shè)計理論的層次
以我的拙見,軟件設(shè)計領(lǐng)域中的各種概念,可以分為以下幾個層
次來進(jìn)行理解:
1、軟件設(shè)計的目的:重用性、擴(kuò)展性。
這是最高的層次,是應(yīng)對軟件危機(jī)的需要。
2、設(shè)計原則:低耦合、高聚合。
各種軟件設(shè)計的原則,如依賴倒置原則、單一職則原則、面向接
口等,以及各種設(shè)計模式,其根本的目的其實只是為了降低耦合這么
簡單。因為只有低藕合才能更好的適應(yīng)變化,更好的重用和擴(kuò)展。
3、實現(xiàn)方法:運(yùn)用設(shè)計模式封裝變化、降低耦合。
設(shè)計模式只是用來〃封裝變化、降低耦合〃的工具而已。它是面
向?qū)ο笤O(shè)計時代的產(chǎn)物,其本質(zhì)就是充分運(yùn)用面向?qū)ο蟮娜齻€特性,
即:封裝、繼承和多態(tài),進(jìn)行靈活的組合運(yùn)用。
二、關(guān)于耦合1、耦合的粒度
耦合無論如何乜是不可避免的。當(dāng)我們實現(xiàn)接口、繼承父類的時
候,就會不可避免的產(chǎn)生耦合。耦合是有不同粒度的,我們解耦到什
么粒度為止,我認(rèn)為應(yīng)以模塊的重用粒度為準(zhǔn)。盡量解除重用模塊或
對象之間的耦合。而重用模塊之內(nèi)的耦合,應(yīng)屬于聚合的范疇,所以
不要盲目的去解耦,否則就陷入了誤區(qū)。
2、解耦的原理
怎樣才能解耦呢,或者說為什么各種設(shè)計模式能達(dá)到解耦的目的
呢?我覺得有以下幾個思路:
(1)將具體的東西抽象處理
(2)將分散的東西集中處理
而面向?qū)ο笾械慕涌?、繼承正為我們提供了這樣的一種機(jī)制。通
過訪問接口或基類或抽象類,而不是具體的實現(xiàn)類,從而與具體的實
現(xiàn)類達(dá)到了解耦的目的。我們還可以設(shè)計一些控制類,像潤滑劑一樣,
協(xié)調(diào)各實現(xiàn)類之間的訪問,也可以達(dá)到耦的目的。
事實上,各種設(shè)計模式的基本思想也就是這樣。創(chuàng)建型模式是為
了解除創(chuàng)建對象時產(chǎn)生的耦合,實際上是解除對類稱名的依賴,而結(jié)
構(gòu)型和行為型是為了解除對象屬性或方法的直接調(diào)用。不管什么設(shè)計
模式,都是將對具體實現(xiàn)類的訪問提升為對接口、基類或用于協(xié)調(diào)的
控制類的訪問。
三、關(guān)于接口
這一節(jié)更具體,談一談接口,因為使用接口是軟件設(shè)計的重要手
段,但已經(jīng)不屬于"道〃了~
1、接口與繼承
接口描述的是對象某一個方面行為特征。使用接口與使用繼承關(guān)
系各有優(yōu)缺點,使用子類繼承可以繼承父類的功能,體現(xiàn)了重用的精
神。而接品更加靈活,因為它解除了子類與父類之間的高度耦合,它
體現(xiàn)在靈活擴(kuò)展的精神。
2、接口與純虛類
理論上接口可以由純虛基類實現(xiàn)類似的功能,那為什么還我們不
去掉接口的概念,而直接使用虛類呢?
接口存在的理由就是它更加靈活,關(guān)系簡單,易于理解。比如一
個類可以實現(xiàn)十幾個甚至幾十個接口,但一般開發(fā)工具只支持單繼承
(由于多繼承太容易導(dǎo)致混亂和沖突),如果要繼承十幾層,系統(tǒng)結(jié)構(gòu)想
必會無法理解了,我以為這是接口存在的最重要的原因。
如果接口和虛美繼承結(jié)合使用,可以產(chǎn)生強(qiáng)大的威力,這也是許
多設(shè)計模式的〃殺手澗〃。
以上算是總結(jié)一下自己的心得??隙ㄓ胁簧倨嬷?,請各位指
教。
第五篇:軟件工程實習(xí)心得體會
軟件工程實習(xí)心得體會
(-)在這次軟件工程課程
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 旅游類自媒體賬號定制化運(yùn)營及推廣補(bǔ)償協(xié)議
- 裝修安裝免責(zé)協(xié)議書
- 道路損壞補(bǔ)償協(xié)議書
- 車輛洗車承包協(xié)議書
- 貸款展期還款協(xié)議書
- 車禍出院賠償協(xié)議書
- 車輛協(xié)助解壓協(xié)議書
- 車輛損傷賠付協(xié)議書
- 餐飲物業(yè)轉(zhuǎn)讓協(xié)議書
- 人才引進(jìn)安家費(fèi)協(xié)議書
- 漢語拼音單韻母aoeiuü課件
- 【45精品】新蘇教版四年級音樂下冊教案全冊
- JJF(鄂) 86-2021 放射性氣溶膠監(jiān)測儀校準(zhǔn)規(guī)范(高清版)
- 蔬菜捆扎機(jī)機(jī)械部分的設(shè)計說明書
- 昆蟲化學(xué)生態(tài)學(xué)資料
- 電力施工委托合同
- 腌臘肉制品生產(chǎn)車間工藝布置圖
- 計控 基于PID電加熱爐溫度控制系統(tǒng)設(shè)計
- 課程設(shè)計--鐵路綜合性貨場平面圖設(shè)計
- 大金空調(diào)設(shè)定代碼表
- 山東花卉產(chǎn)業(yè)提質(zhì)增效轉(zhuǎn)型升級實施方案
評論
0/150
提交評論