軟件工程心得體會 (一)_第1頁
軟件工程心得體會 (一)_第2頁
軟件工程心得體會 (一)_第3頁
軟件工程心得體會 (一)_第4頁
軟件工程心得體會 (一)_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論