版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Word第第頁(yè)軟件工程實(shí)驗(yàn)心得體會(huì)軟件工程試驗(yàn)心得體會(huì)1
曾經(jīng)看過(guò)一本書(shū)叫《道法自然》,內(nèi)容略記得一二,但我最觀賞的是它的書(shū)名。軟件設(shè)計(jì)沒(méi)什么太神奇有東西,只要專(zhuān)心體會(huì),其實(shí)一切都很自然。軟件的設(shè)計(jì)之“道”,也不在于設(shè)計(jì)有多么的華麗、精致,而在于其樸實(shí)、自然,最終到達(dá)“以無(wú)招勝有招”,進(jìn)入一個(gè)全新的境界。
一、軟件設(shè)計(jì)理論的層次
以我的拙見(jiàn),軟件設(shè)計(jì)領(lǐng)域中的各種概念,可以分為以下幾個(gè)層次來(lái)進(jìn)行理解:
1、軟件設(shè)計(jì)的目的:重用性、擴(kuò)展性。
這是最高的層次,是應(yīng)對(duì)軟件危機(jī)的需要。
2、設(shè)計(jì)原則:低耦合、高聚合。
各種軟件設(shè)計(jì)的原則,如依靠倒置原則、單一職則原則、面對(duì)接口等,以及各種設(shè)計(jì)模式,其根本的目的其實(shí)只是為了降低耦合這么簡(jiǎn)潔。由于只有低耦合才能更好的適應(yīng)改變,更好的重用和擴(kuò)展。
3、實(shí)現(xiàn)方法:運(yùn)用設(shè)計(jì)模式封裝改變、降低耦合。
設(shè)計(jì)模式只是用來(lái)“封裝改變、降低耦合”的工具而已。它是面對(duì)對(duì)象設(shè)計(jì)時(shí)代的產(chǎn)物,其本質(zhì)就是充分運(yùn)用面對(duì)對(duì)象的三個(gè)特性,即:封裝、繼承和多態(tài),進(jìn)行敏捷的組合運(yùn)用。
二、關(guān)于耦合
1、耦合的粒度
耦合無(wú)論如何也是不行避開(kāi)的。當(dāng)我們實(shí)現(xiàn)接口、繼承父類(lèi)的時(shí)候,就會(huì)不行避開(kāi)的產(chǎn)生耦合。耦合是有不同粒度的,我們解耦到什么粒度為止,我認(rèn)為應(yīng)以模塊的重用粒度為準(zhǔn)。盡量解除重用模塊或?qū)ο笾g的耦合。而重用模塊之內(nèi)的耦合,應(yīng)屬于聚合的范疇,所以不要盲目的去解耦,否則就陷入了誤區(qū)。
2、解耦的原理
怎樣才能解耦呢,或者說(shuō)為什么各種設(shè)計(jì)模式能到達(dá)解耦的目的呢?我覺(jué)得有以下幾個(gè)思路:
〔1〕將詳細(xì)的東西抽象處理
〔2〕將分散的東西集中處理
而面對(duì)對(duì)象中的接口、繼承正為我們供應(yīng)了這樣的一種機(jī)制。通過(guò)訪問(wèn)接口或基類(lèi)或抽象類(lèi),而不是詳細(xì)的實(shí)現(xiàn)類(lèi),從而與詳細(xì)的實(shí)現(xiàn)類(lèi)到達(dá)了解耦的目的。我們還可以設(shè)計(jì)一些掌握類(lèi),像潤(rùn)滑劑一樣,協(xié)調(diào)各實(shí)現(xiàn)類(lèi)之間的訪問(wèn),也可以到達(dá)耦的目的。
事實(shí)上,各種設(shè)計(jì)模式的基本思想也就是這樣。創(chuàng)建型模式是為了解除創(chuàng)建對(duì)象時(shí)產(chǎn)生的耦合,事實(shí)上是解除對(duì)類(lèi)稱(chēng)名的依靠,而結(jié)構(gòu)型和行為型是為了解除對(duì)象屬性或方法的直接調(diào)用。不管什么設(shè)計(jì)模式,都是將對(duì)詳細(xì)實(shí)現(xiàn)類(lèi)的訪問(wèn)提升為對(duì)接口、基類(lèi)或用于協(xié)調(diào)的掌握類(lèi)的訪問(wèn)。
三、關(guān)于接口
這一節(jié)更詳細(xì),談一談接口,由于使用接口是軟件設(shè)計(jì)的重要手段,但已經(jīng)不屬于“道”了~
1、接口與繼承
接口描述的是對(duì)象某一個(gè)方面行為特征。使用接口與使用繼承關(guān)系各有優(yōu)缺點(diǎn),使用子類(lèi)繼承可以繼承父類(lèi)的功能,表達(dá)了重用的精神。而接品更加敏捷,由于它解除了子類(lèi)與父類(lèi)之間的高度耦合,它表達(dá)在敏捷擴(kuò)展的精神。
2、接口與純虛類(lèi)
理論上接口可以由純虛基類(lèi)實(shí)現(xiàn)類(lèi)似的功能,那為什么還我們不去掉接口的概念,而直接使用虛類(lèi)呢?
接口存在的理由就是它更加敏捷,關(guān)系簡(jiǎn)潔,易于理解。比方一個(gè)類(lèi)可以實(shí)現(xiàn)十幾個(gè)甚至幾十個(gè)接口,但一般開(kāi)發(fā)工具只支持單繼承〔由于多繼承太簡(jiǎn)單導(dǎo)致混亂和沖突〕,假如要繼承十幾層,系統(tǒng)結(jié)設(shè)想必會(huì)無(wú)法理解了,我以為這是接口存在的最重要的緣由。
假如接口和虛類(lèi)繼承結(jié)合使用,可以產(chǎn)生強(qiáng)大的威力,這也是很多設(shè)計(jì)模式的“殺手锏”。
以上算是總結(jié)一下自己的心得。確定有不少片面之處,請(qǐng)各位指教。
軟件工程試驗(yàn)心得體會(huì)2
早在我選擇民政職業(yè)技術(shù)學(xué)院就讀軟件開(kāi)發(fā)與項(xiàng)目管理這門(mén)專(zhuān)業(yè)的時(shí)候,我始終認(rèn)為軟件開(kāi)發(fā)無(wú)非是努力的敲代碼,從敲代碼的過(guò)程中去體會(huì)各行代碼的意思和用途,在沒(méi)學(xué)軟件工程時(shí)我始終都是努力的敲代碼去學(xué)習(xí)軟件開(kāi)發(fā)這門(mén)專(zhuān)業(yè)。在大一的時(shí)候我敲代碼的激情很好,但是到大二的時(shí)候就消失問(wèn)題了,我根本就不喜愛(ài)敲代碼了,觀察代碼就頭疼。所以感覺(jué)厭惡這門(mén)專(zhuān)業(yè),對(duì)學(xué)習(xí)也不感愛(ài)好了。而且,還有一件更頭疼的事是在寫(xiě)一個(gè)簡(jiǎn)潔的程序時(shí)竟然老是出錯(cuò),難一點(diǎn)的,冗雜一點(diǎn)的程序竟然無(wú)從下手。但是去看程序的參考答案時(shí)都看得懂,又感覺(jué)很簡(jiǎn)單。學(xué)了軟件工程以后,我就感覺(jué)我以前的學(xué)習(xí)方法是錯(cuò)誤的。以前我只注意于代碼,而不注意理論學(xué)問(wèn)以及編程的思路,程序的架構(gòu)。以至于在些程序時(shí)沒(méi)有寫(xiě)程序的思路,不能形成程序的架構(gòu)。只想到看腦袋里是否有與此類(lèi)似的代碼。越想程序越亂,最終腦袋里一片空白。不知道程序從哪個(gè)方面下手了。
軟件工程這門(mén)課程是做軟件開(kāi)發(fā)的人必學(xué)的課程,通過(guò)學(xué)這門(mén)課程,程序員就會(huì)注意軟件開(kāi)發(fā)的理論學(xué)問(wèn),以及做項(xiàng)目開(kāi)發(fā)的思路。學(xué)了這門(mén)課程后你寫(xiě)程序就不會(huì)去盲目的去套用代碼,而是理清此程序的架構(gòu)以及思路。程序該從什么時(shí)候開(kāi)頭,什么時(shí)候結(jié)束。在中間需要添加什么樣的功能,以完善該軟件。其實(shí)學(xué)軟件工程并不難,而且很簡(jiǎn)單。軟件工程與日常生活聯(lián)系起來(lái)的話,就是在一天中你該先做什么,后做什么。理解了先做什么,后做什么了以后寫(xiě)程序就不是那么難了,再冗雜的程序也可以分成幾大塊。你理清程序的思路后就可以一步步的解決其中的難題,最終實(shí)現(xiàn)軟件的功能。假如沒(méi)學(xué)軟件工程不知道理清程序的思路的話,做一個(gè)大的項(xiàng)目開(kāi)發(fā),那么多的代碼,沒(méi)有一個(gè)很好的結(jié)構(gòu),最終只會(huì)導(dǎo)致程序混亂,錯(cuò)誤百出,知道代碼再多也會(huì)素手無(wú)策的。
總而言之,作為一個(gè)程序員學(xué)習(xí)軟件工程這門(mén)課程是至關(guān)必要的,假如沒(méi)學(xué)習(xí)軟件工程,你就不會(huì)做項(xiàng)目開(kāi)發(fā),也不行能開(kāi)發(fā)出一個(gè)完善的軟件出來(lái)。
軟件工程試驗(yàn)心得體會(huì)3
經(jīng)過(guò)這學(xué)期軟件工程試驗(yàn)的學(xué)習(xí),深深感到用戶(hù)需求對(duì)軟件的重要性。勝利的軟件產(chǎn)品是建立在勝利的需求基礎(chǔ)之上的,而高質(zhì)量的需求來(lái)源于用戶(hù)與開(kāi)發(fā)人員之間有效的溝通與合作。當(dāng)用戶(hù)有一個(gè)問(wèn)題可以用計(jì)算機(jī)系統(tǒng)來(lái)解決,而開(kāi)發(fā)人員開(kāi)頭關(guān)心用戶(hù)解決這個(gè)問(wèn)題,溝通就開(kāi)頭了。
需求獵取可能是最困難、最關(guān)鍵、最易出錯(cuò)及最需要溝通溝通的活動(dòng)。對(duì)需求的獵取往往有錯(cuò)誤的熟悉:用戶(hù)知道需求是什么,我們所要做的就是和他們交談從他們那里得到需求,只要問(wèn)用戶(hù)系統(tǒng)的目標(biāo)特征,什么是要完成的`,什么樣的系統(tǒng)能適合商業(yè)需要就可以了,但是事實(shí)上需求獵取并不是想象的這樣簡(jiǎn)潔,這條溝通之路布滿(mǎn)了荊棘。首先需求獵取要定義問(wèn)題范圍,系統(tǒng)的邊界往往是很難明確的,用戶(hù)不了解技術(shù)實(shí)現(xiàn)的詳情,這樣造成了系統(tǒng)目標(biāo)的混淆。
其次是對(duì)問(wèn)題的理解,用戶(hù)對(duì)計(jì)算機(jī)系統(tǒng)的力量和限制缺乏了解,任何一個(gè)系統(tǒng)都會(huì)有許多的用戶(hù)或者不同類(lèi)型的用戶(hù),每個(gè)用戶(hù)只知道自己需要的系統(tǒng),而不知道系統(tǒng)的整體狀況,他們不知道系統(tǒng)作為一個(gè)整體怎么樣工作效率更好,也不太清晰那些工作可以交給軟件完成,他們不清晰需求是什么,或者說(shuō)如何以一種精確的方式來(lái)描述需求,他們需要開(kāi)發(fā)人員的幫助和指導(dǎo),但是用戶(hù)與開(kāi)發(fā)人員之間的溝通很簡(jiǎn)單消失障礙,忽視了那些被認(rèn)為是很明顯的信息。最終是需求確實(shí)認(rèn),由于需求的不穩(wěn)定性往往隨著時(shí)間的推移產(chǎn)生變動(dòng),使之難以確認(rèn)。為了克服以上的問(wèn)題,必需有組織的執(zhí)行需求的獵取活動(dòng)。
需求獵取活動(dòng)要完成的任務(wù)或者步驟的過(guò)程如下:
1、編寫(xiě)項(xiàng)目視圖和范圍文檔
系統(tǒng)的需求包括四個(gè)不同的層次:業(yè)務(wù)需求、用戶(hù)需求和功能需求、非功能性需求。業(yè)務(wù)需求說(shuō)明白供應(yīng)給用戶(hù)新系統(tǒng)的最初利益,反映了組織機(jī)構(gòu)或用戶(hù)對(duì)系統(tǒng)、產(chǎn)品高層次的目標(biāo)要求,它們?cè)陧?xiàng)目視圖與范圍文檔中予以說(shuō)明。用戶(hù)需求文檔描述了用戶(hù)使用產(chǎn)品必需要完成的任務(wù),這在使用實(shí)例文檔或方案腳本說(shuō)明中予以說(shuō)明。功能需求定義了開(kāi)發(fā)人員必需實(shí)現(xiàn)的軟件功能,使得用戶(hù)能完成他們的任務(wù),從而滿(mǎn)意了業(yè)務(wù)需求。
非功能性需求是用戶(hù)對(duì)系統(tǒng)良好運(yùn)作提出的期望,包括了易用性、反應(yīng)速度、容錯(cuò)性、健壯性等等質(zhì)量屬性。需求獵取就是依據(jù)系統(tǒng)業(yè)務(wù)需求去獲得系統(tǒng)用戶(hù)需求,然后通過(guò)需求分析得到系統(tǒng)的功能需求和非功能需求。項(xiàng)目視圖和范圍文檔就是從高層次上描述系統(tǒng)的業(yè)務(wù)需求,應(yīng)當(dāng)包括高層的產(chǎn)品業(yè)務(wù)目標(biāo),評(píng)估問(wèn)題解決方案的商業(yè)和技術(shù)可行性,全部的使用實(shí)例和功能需求都必需遵從的標(biāo)準(zhǔn)。而范圍文檔定義了項(xiàng)目產(chǎn)品所包括的全部工作及產(chǎn)生產(chǎn)品所用的過(guò)程。項(xiàng)目相關(guān)人員對(duì)項(xiàng)目的目標(biāo)和范圍能達(dá)成共識(shí),整個(gè)項(xiàng)目組都應(yīng)當(dāng)把留意力集中在項(xiàng)目目標(biāo)和范圍上。
2、用戶(hù)群分類(lèi)
系統(tǒng)用戶(hù)在許多方面存在著差異,例如:使用系統(tǒng)的頻度和程度、應(yīng)用領(lǐng)域和計(jì)算機(jī)系統(tǒng)學(xué)問(wèn)、所使用的系統(tǒng)特性、所進(jìn)行的業(yè)務(wù)過(guò)程、訪問(wèn)權(quán)限、地理上的布局以及個(gè)人的素養(yǎng)和愛(ài)好等等。依據(jù)這些差異,你可以把這些不同的用戶(hù)分成不同的用戶(hù)類(lèi)。與ULM中Usecase的Actor概念一樣,用戶(hù)類(lèi)不肯定都指人,也可以包括其他應(yīng)用系統(tǒng)、接口或者硬件,這樣做使得與系統(tǒng)邊界外的接口也成為系統(tǒng)需求。將用戶(hù)群分類(lèi)并歸納各自特點(diǎn),并具體描述出它們的獨(dú)特特點(diǎn)及任務(wù)狀況,將有助于需求的獵取和系統(tǒng)設(shè)計(jì)。
3、建立核心隊(duì)
通常用戶(hù)和開(kāi)發(fā)人員不自覺(jué)的都有一種我們和他們的想法,產(chǎn)生一種對(duì)立關(guān)系,把彼此放在對(duì)立面,每一方都定義自己的邊界,只想自己的利益而忽視對(duì)方的想法。他們通過(guò)文檔、記錄和對(duì)話來(lái)溝通,而不是作為一個(gè)合作的整體去識(shí)別和確定需求完成任務(wù)。實(shí)踐證明這樣的方法是不正確的,不會(huì)給雙方帶來(lái)一點(diǎn)好處,良好的溝通關(guān)系沒(méi)有建立導(dǎo)致了誤會(huì)和忽視重要的信息。只有當(dāng)雙方參加者都明白要?jiǎng)倮约盒枰裁?,同時(shí)也知道要?jiǎng)倮麑?duì)方需要什么時(shí),才能建立起一種合作關(guān)系。
為了建立合作關(guān)系通常實(shí)行一種組隊(duì)的方式來(lái)獵取需求,建立一個(gè)由用戶(hù)代表和開(kāi)發(fā)人員組成的聯(lián)合小組作為需求獵取的核心隊(duì)伍。聯(lián)合小組將負(fù)責(zé)識(shí)別需求、分析解決方案和協(xié)商分歧,小組成員可以采納會(huì)議、電子郵件、綜合辦公系統(tǒng)等方式進(jìn)行溝通,但溝通時(shí)應(yīng)留意以下原則:小組會(huì)議應(yīng)當(dāng)由中立方來(lái)組織和主持,用戶(hù)和開(kāi)發(fā)人員都要參與;溝通預(yù)先要確定預(yù)備和參加的規(guī)章;議題要明確并掩蓋全部關(guān)鍵點(diǎn),但信息來(lái)源應(yīng)當(dāng)自由;溝通目標(biāo)要明確,并告知全部的成員。
4、確定使用實(shí)例
從用戶(hù)代表處收集他們將使用系統(tǒng)完成所需任務(wù)的描述,商量用戶(hù)與系統(tǒng)間的交互方式和對(duì)話要求,這就是使用實(shí)例,一個(gè)單一的使用實(shí)例可能包括完成某項(xiàng)任務(wù)的很多規(guī)律相關(guān)任務(wù)和交互挨次。使用實(shí)例方法給需求獵取帶來(lái)的好處來(lái)自于該方法是用以任務(wù)為中心和以用戶(hù)為中心的觀點(diǎn),比起使用以功能為中心和以開(kāi)發(fā)者為中心的方法,使用實(shí)例方法可以使用戶(hù)更清晰地理解和熟悉到新系統(tǒng)允許他們做什么和怎么做。描寫(xiě)使用實(shí)例的時(shí)候要留意使用簡(jiǎn)潔直白的表述,盡量使用主動(dòng)語(yǔ)態(tài),用系統(tǒng)或者用戶(hù)作為主語(yǔ),比方用戶(hù)提交用戶(hù)密碼,系統(tǒng)驗(yàn)證用戶(hù)密碼是否正確,還有一點(diǎn)在描述中不要設(shè)計(jì)界面詳情,比方用戶(hù)從下拉框中選擇產(chǎn)品類(lèi)型。使用實(shí)例為以后寫(xiě)用例場(chǎng)景描述中的基本路徑和擴(kuò)展路徑供應(yīng)了素材。
5、分析用戶(hù)工作流程
分析用戶(hù)工作流程觀看用戶(hù)執(zhí)行業(yè)務(wù)任務(wù)的過(guò)程,通過(guò)分析使用實(shí)例得到系統(tǒng)的用例圖。編制用例圖文檔將有助于明確系統(tǒng)的使用實(shí)例和功能需求,統(tǒng)一建模語(yǔ)言的使用有助于與用戶(hù)進(jìn)一步溝通。每個(gè)用例的描述應(yīng)包括:編號(hào),為每個(gè)用例安排一個(gè)唯一的編號(hào),為需求的追溯供應(yīng)了便利;參加者,與這個(gè)用例交互的actor;前置條件,開(kāi)頭用例前所必需具備的系統(tǒng)狀態(tài);后置條件,用例完成后系統(tǒng)到達(dá)的狀態(tài);基本路徑,用例完成的關(guān)鍵路徑,也是用戶(hù)期望的路徑;擴(kuò)展點(diǎn),基本路徑的分枝,表示意外狀況;字段說(shuō)明,路徑中名稱(chēng)的進(jìn)一步分解說(shuō)明,對(duì)以后類(lèi)屬性的定義和數(shù)據(jù)庫(kù)字段設(shè)計(jì)起作用;設(shè)計(jì)約束,實(shí)現(xiàn)用例的非功能約束。
6、檢查問(wèn)題報(bào)告
通過(guò)檢查當(dāng)前已經(jīng)運(yùn)行系統(tǒng)的問(wèn)題報(bào)告來(lái)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度餐廳招牌設(shè)計(jì)制作合同范本3篇
- 2025年醫(yī)療器械注冊(cè)代理與質(zhì)量管理體系認(rèn)證合同4篇
- 2025年度體育賽事代理公司注銷(xiāo)服務(wù)協(xié)議4篇
- 2025版二手貨車(chē)交易合同范本3篇
- 2025年度城市綜合體地下空間物業(yè)服務(wù)合同4篇
- 武漢托管班2025年度教師招聘與教育咨詢(xún)服務(wù)合同3篇
- 2024版國(guó)際碳排放交易合同
- 2025版農(nóng)產(chǎn)品銷(xiāo)售合同范例(含保鮮物流)2篇
- 二零二五版苗圃技術(shù)員土壤改良與肥料施用合作協(xié)議4篇
- 2025版?zhèn)€人股權(quán)質(zhì)押協(xié)議(股權(quán)融資)3篇
- 小兒甲型流感護(hù)理查房
- 霧化吸入療法合理用藥專(zhuān)家共識(shí)(2024版)解讀
- 拆遷評(píng)估機(jī)構(gòu)選定方案
- 趣味知識(shí)問(wèn)答100道
- 鋼管豎向承載力表
- 2024年新北師大版八年級(jí)上冊(cè)物理全冊(cè)教學(xué)課件(新版教材)
- 人教版數(shù)學(xué)四年級(jí)下冊(cè)核心素養(yǎng)目標(biāo)全冊(cè)教學(xué)設(shè)計(jì)
- JJG 692-2010無(wú)創(chuàng)自動(dòng)測(cè)量血壓計(jì)
- 三年級(jí)下冊(cè)口算天天100題(A4打印版)
- CSSD職業(yè)暴露與防護(hù)
- 移動(dòng)商務(wù)內(nèi)容運(yùn)營(yíng)(吳洪貴)項(xiàng)目三 移動(dòng)商務(wù)運(yùn)營(yíng)內(nèi)容的策劃和生產(chǎn)
評(píng)論
0/150
提交評(píng)論