- 軟件工程學(xué)習心得體會(huì ) 推薦度:
- 相關(guān)推薦
軟件工程學(xué)習心得體會(huì )(通用11篇)
從某件事情上得到收獲以后,常?梢詫⑺鼈儗(xiě)成一篇心得體會(huì ),這樣有利于培養我們思考的習慣。那么問(wèn)題來(lái)了,應該如何寫(xiě)心得體會(huì )呢?以下是小編幫大家整理的軟件工程學(xué)習心得體會(huì ),歡迎大家借鑒與參考,希望對大家有所幫助。
軟件工程學(xué)習心得體會(huì ) 篇1
學(xué)習了這門(mén)課程,還有老師們的多元化教課,不但讓我從理論上掌握軟件工程,還有從不同的實(shí)例,讓理論和實(shí)踐得到了很好的結合。整一個(gè)學(xué)期下來(lái),總的來(lái)說(shuō)還是學(xué)到了很多東西的,有很多地方是值得肯定的,其實(shí)在我看來(lái),軟件工程與其說(shuō)是一門(mén)課程,不如說(shuō)是一門(mén)思想。是一個(gè)如何去分析和處理問(wèn)題的過(guò)程,應該說(shuō)其范疇已經(jīng)遠遠不止局限于該門(mén)課程,成為了一個(gè)綜合的一個(gè)能夠解決問(wèn)題的思想集合。
整本書(shū)的內容邏輯很清晰明了,由淺入深循序漸進(jìn),首先我就大概描述下我們所學(xué)的內容,第一章是從整體分析軟件工程這門(mén)學(xué)科的發(fā)展和所處的社會(huì )環(huán)境,接著(zhù)后面的幾章深入分析了軟件開(kāi)放過(guò)程和模式、軟件項目管理、計算機工程、需求分析、結構化分析建模以及基于UML面向對象分析建模等。接著(zhù)我就詳細介紹下我對這門(mén)課程知識點(diǎn)的理解概括:
軟件:軟件是能夠完成預定功能和性能的可執行的計算機程序和使程序正常執行所需要的數據,加上描述程序的操作和使用的文檔。
軟件的特征:
、佘浖且环N邏輯實(shí)體,而不是具體的物理實(shí)體,因而它具有抽象性。
、谲浖峭ㄟ^(guò)人們的智力活動(dòng),把知識與技術(shù)轉化成信息的一種產(chǎn)品。
、圮浖蔀楫a(chǎn)品后,其生產(chǎn)只是簡(jiǎn)單的拷貝,不同于硬件制造。
、芫S護過(guò)程比硬件復雜的多,甚至會(huì )引發(fā)新的錯誤。
軟件危機:指的是軟件開(kāi)發(fā)和維護過(guò)程中遇到的一系列嚴重問(wèn)題。
出現軟件危機的原因:
、佘浖S護費用急劇上升,直接威脅計算機應用的擴大。
、谲浖a(chǎn)技術(shù)進(jìn)步緩慢。
軟件工程是指導計算機軟件開(kāi)發(fā)和維護的工程學(xué)科。
軟件生存周期:一個(gè)軟件從定義到開(kāi)發(fā)、使用和維護,直到最終被棄用,要經(jīng)歷一個(gè)漫長(cháng)的時(shí)期,通常把軟件經(jīng)歷的這個(gè)漫長(cháng)的時(shí)期稱(chēng)為生存周期。
軟件的生存周期可分為八個(gè)階段:
、賳(wèn)題定義;
、诳尚行匝芯;
、坌枨蠓治;
、芸傮w(概要)
設計;
、菰敿氃O計;
、蘧幋a與單元測試;
、呔C合測試;
、嘬浖S護;
瀑布模式:是傳統的軟件開(kāi)發(fā)模式,其中的“瀑布”是對這個(gè)模式的形象表達,由山頂傾瀉下來(lái)的水,自頂向下、逐漸細化。其特點(diǎn)是:線(xiàn)性化過(guò)程;分為分析、設計、編碼、集成等幾個(gè)階段,并且各階段逐級推進(jìn),不允許跨越。里程碑管理;階段評審;文檔驅動(dòng);簡(jiǎn)潔便于工程應用的線(xiàn)性化過(guò)程步驟,并可以通過(guò)里程碑管理機制而使項目進(jìn)程量化。其明顯的優(yōu)點(diǎn)就是沒(méi)個(gè)階段結束前都要對所完成的階段成果進(jìn)行評審,這使得軟件的錯誤能夠在個(gè)階段內盡早發(fā)現并盡早解決,總的來(lái)說(shuō)瀑布模式具有良好的質(zhì)量保證機制,有很強的生命力。
原型進(jìn)化模式:對軟件進(jìn)行直接模擬或仿真,只需要分析需求框架后進(jìn)行原型創(chuàng )建,再對原型系統進(jìn)行逐步細化與完善,通過(guò)版本更新逐步滿(mǎn)足用戶(hù)對于軟件的多方面需要。
增量模式:開(kāi)發(fā)過(guò)程有三個(gè)任務(wù)域,分別是設計結構、開(kāi)發(fā)構件和集成系統,它既有完善的工程管理機制,又能適應用戶(hù)需求變更,有利于質(zhì)量的監控,并且各局部基于構件構造,有利于逐步構建與完善;由于先交付核心構件可利于降低項目的技術(shù)風(fēng)險。
螺旋模式:是一種可較好的規避開(kāi)發(fā)風(fēng)險過(guò)程的模式,項目是基于任務(wù)的螺旋式推進(jìn),每個(gè)螺旋由內之外分別是需求分析、軟件設計、系統集成、驗證與交付。
軟件開(kāi)發(fā)的整個(gè)過(guò)程:
、傩枰椖繄F隊,組建優(yōu)秀的團隊可以開(kāi)發(fā)出更搞質(zhì)量的軟件產(chǎn)品。任務(wù)開(kāi)發(fā)團隊要求小而精,成員大多在8人以?xún),主要成員有項目負責人、開(kāi)發(fā)人員、資料管理員和軟件測試員。
、陧椖坑媱澥菫榱耸管浖_(kāi)發(fā)各項工作有秩序地進(jìn)行,包括任務(wù)分配和基于里程碑的進(jìn)度安排,甘特圖和任務(wù)網(wǎng)絡(luò )圖是用來(lái)描述進(jìn)度計劃的工具。項目計劃書(shū)可以作為軟件開(kāi)發(fā)的工作指南。
、垌椖砍杀竟浪,由于項目有來(lái)自各方面的成本包括工資開(kāi)支、場(chǎng)地費、差旅費、設備費和資料費等,但是軟件主要是對人力成本的估算,常用的方法有程序代碼成本估算法等。
、苘浖L(fēng)險管理包括很多不確定的風(fēng)險因素,如計劃風(fēng)險、管理風(fēng)險、需求風(fēng)險、技術(shù)風(fēng)險、人員風(fēng)險、產(chǎn)品風(fēng)險、用戶(hù)風(fēng)險和商業(yè)風(fēng)險等等,而風(fēng)險管理的主要任務(wù)是:風(fēng)險識別、風(fēng)險評估、和風(fēng)險防范。
、蒈浖臋n管理,軟件文檔是工程模式軟件開(kāi)發(fā)的成果體現,包括技術(shù)文檔、管理文檔和用戶(hù)文檔。
、捃浖渲霉芾砼c軟件質(zhì)量管理,包括配置規劃、軟件變更控制、軟件版本控制和質(zhì)量控制計劃。
計算機系統由硬件、軟件、數據資源、網(wǎng)絡(luò )資源、使用系統的人等諸多元素。
有三種典型的計算機體系結構:
、僦鳈C結構,主機集中了全部智能,并依靠終端接口與外部設備連接。
、贑lient/Server結構,智能分布于服務(wù)器與客戶(hù)機,并依靠網(wǎng)絡(luò )連接成系統,其中,服務(wù)器處于核心位置,提供被動(dòng)核心服務(wù);客戶(hù)機處于邊緣位置,可主動(dòng)訪(fǎng)問(wèn)服務(wù)器,尋求服務(wù)支持。
、跙rowser/server結構,可適應互聯(lián)網(wǎng)遠程交互的特殊結構,基于Web服務(wù)器構建。
需求分析:系統開(kāi)發(fā)前期需求分析很重要,它是為了有效解決用戶(hù)問(wèn)題的需要進(jìn)行的一項工程活動(dòng),所需要考慮的需求問(wèn)題是功能需求、數據需求、性能需求和接口需求,開(kāi)發(fā)者承擔分析任務(wù),核心是用戶(hù)。
其步驟有三個(gè):
、佾@取客戶(hù)需求,客戶(hù)泛指某個(gè)人或機構部門(mén)等,一般方法是調查,包括訪(fǎng)談、座談、問(wèn)卷、跟班和收集資料,需求規約可表達用戶(hù)的軟件價(jià)值。
、诮⑿枨竽P,它是用戶(hù)需求的圖解,一些常用的模型有:業(yè)務(wù)樹(shù)圖、用例圖、活動(dòng)圖。分別用于結構化需求建模、系統業(yè)務(wù)舉例和反映系統工作流程。
、圻M(jìn)行需求驗證,要驗證的主要內容有:有效性驗證、一致性驗證、完整性驗證、現實(shí)性驗證和可檢驗性驗證。結構化分析建模:它是建立在需求規約基礎上的,對軟件問(wèn)題進(jìn)行全面解說(shuō),包括四個(gè)方面:
、贁祿,它與數據庫設計密切相關(guān),ER圖涉及實(shí)體、關(guān)系、屬性等圖形元素,在業(yè)務(wù)層面建立數據庫概念模型,一般用于前期的建模構想。
、诠δ芙,是對系統數據加工的圖解,數據流程圖是常用的建模工具,涉及數據接口、數據處理、數據流、數據存儲等圖形元素,用于描述系統數據加工細節。
、坌袨榻,行為模型用于說(shuō)哦名軟件系統與環(huán)境的交互,狀態(tài)轉換圖常用的軟件行為建模工具涉及狀態(tài)、事件等圖形元素。⑤數據字典,是用于定義軟件的元素,使軟件元素獲得嚴肅的、詳密的、精確的規格說(shuō)明。需求分析模型中的數據、功能、行為等諸多方面的元素,都有必要通過(guò)數據字典給予細節說(shuō)明,以達到對系統較完整全面的規格定義。
基于UML對象面向對象分析建模:UML是統一建模語(yǔ)言,有統一的語(yǔ)法、語(yǔ)義和語(yǔ)用規則,其建模過(guò)程的特點(diǎn)是:用例驅動(dòng)、以構架為中心和增量迭代,通過(guò)包實(shí)現對模型的有效的一體化管理。
包括三部分:
、儆美,它面向用戶(hù)需求的,能夠反映系統的用戶(hù)價(jià)值,用例圖的基本元素有用例、參與者、交流;用例之間有泛化、延伸和包含關(guān)系。
、诨顒(dòng)建模,活動(dòng)圖用于描述系統動(dòng)態(tài)過(guò)程,主要圖形元素有:活動(dòng)、轉換、起點(diǎn)、終點(diǎn)、判斷、并發(fā)、同步、泳道等?擅枋龈邔訕I(yè)務(wù)級活動(dòng),涉及整個(gè)業(yè)務(wù)流程,針對每個(gè)用例活動(dòng)建模,反映用例內部活動(dòng)細節。
、垲(lèi)分析建模,這里就只考慮實(shí)體類(lèi),實(shí)體類(lèi)所代表的數據相互之間通常有一定的關(guān)系,依靠這種關(guān)系可形成有組織的程序數據結構。實(shí)體類(lèi)之間的'主要數據關(guān)系有:關(guān)聯(lián)、聚類(lèi)、泛化。
接下來(lái)我就簡(jiǎn)單說(shuō)下我上這門(mén)課的簡(jiǎn)單的心得體會(huì ),我們是大四的學(xué)生了,也只有這個(gè)學(xué)期有課了,剛開(kāi)始課表安排出來(lái)的時(shí)候覺(jué)得挺意外的,只有前八周有課,當時(shí)我還是有點(diǎn)小感動(dòng)的,大四事情很多,有要考研的和工作的,大家也都有各自的事情,如果有16周的課,那么每周課不是特別多,但是時(shí)間特別分散,也不能集中某段時(shí)間去做什么事情。但是相對于老師的壓力也有,課程壓縮了相當于每節課的教學(xué)任務(wù)大大增加了,在加上有些假期沖掉課,就感覺(jué)我們好像上課學(xué)不到什么東西,也只是一些關(guān)鍵的和考試掛鉤的才重點(diǎn)講,完全沒(méi)有擴展的時(shí)間和空間了。但是總的來(lái)說(shuō),學(xué)校開(kāi)了這門(mén)課,我們上了這門(mén)課,總是學(xué)到了點(diǎn)東西的,不可能明明上了軟件工程這門(mén)課,卻像沒(méi)上一樣什么都不懂。在上課的時(shí)候我還是很認真地去聽(tīng)老師所講述的內容的,我覺(jué)得他的思想和我一向而來(lái)的培養計算機學(xué)生綜合素質(zhì)的理解還是在一定程度上不謀而合了,所謂的需求獲取,那就是一個(gè)談判,辯論,交流的過(guò)程,已經(jīng)不是單純的編編程序就能解決的問(wèn)題了。從我所看到的聽(tīng)到的來(lái)說(shuō),我最怕的就是計算機系的學(xué)生被別人說(shuō)成是個(gè)帶著(zhù)厚眼鏡的,只能夠在電腦前編編程序的,在交際場(chǎng)上不知道說(shuō)什么而一個(gè)字都說(shuō)不出來(lái)的人。我覺(jué)得這樣的人進(jìn)入社會(huì )之后是沒(méi)有什么前途的,起碼他們缺乏了與人溝通交流的能力。而這門(mén)課程在一定程度上給了我們這些學(xué)生一個(gè)機會(huì )來(lái)鍛煉自己在另一方面的能力,設想一下,一個(gè)又有技術(shù)又能夠與人交流合作的人所取得的成就自然要比一個(gè)單單只會(huì )編程序的人要大得多。其次,這門(mén)課程教給了我們在完成一個(gè)實(shí)際項目時(shí)的一般程序及過(guò)程,我認為這是一份非常具有實(shí)際意義的教學(xué)內容。當我們在畢業(yè)之后,這是我們實(shí)際要運用的一項非常有用的技能,而且不僅僅局限于軟件工程的范疇,我們即使是從事與其它行業(yè),不也是要從需求獲取開(kāi)始,一直有條有理地到最后成品的出爐嗎?應該說(shuō)這就是這門(mén)課的價(jià)值所在。無(wú)論是在上課,還是在學(xué)生會(huì )里面做學(xué)生工作,我都深深地感覺(jué)到,技術(shù)性的工作就好比變魔術(shù),其實(shí)原理是非常簡(jiǎn)單的,甚至可以說(shuō)簡(jiǎn)單的可笑,但是當你就是做出這么一個(gè)簡(jiǎn)單的東西出來(lái)之后,一些外行們有時(shí)候會(huì )用崇拜的眼光看著(zhù)你,覺(jué)得你很厲害,很高深莫測。但是制作的過(guò)程他們卻不知道,也許知道之后他們只是會(huì )啞然失笑,原來(lái)這個(gè)東西的制作過(guò)程是如此的簡(jiǎn)單。這個(gè)可以說(shuō)就是技術(shù)的魅力了,而作為需求獲取及之后的一系列過(guò)程則是類(lèi)似于魔術(shù)揭秘的過(guò)程,但是作為這個(gè)秘密我們并不需要一揭到底,至于揭的程度如何那就是我們那就是我們學(xué)出的程度如何了,我們要讓對方知道我們在做什么?以及如何去做?這些東西需要我們以一定的技巧敘述出來(lái),所起到的作用就是能夠讓對方了解自己的進(jìn)度,卻又能夠不讓對方來(lái)干涉自己的工作過(guò)程。因為我們是技術(shù)員,對方只是外行,即使對方知道了這個(gè)魔術(shù)的操作過(guò)程,也并不代表他們就能夠向變著(zhù)魔術(shù)的我們來(lái)隨便修改這個(gè)魔術(shù)的變法,況且我們能夠用不同的過(guò)程來(lái)得出一個(gè)同樣的結果,這個(gè)過(guò)程的得出的主動(dòng)權如何掌握在我們的手上,就看我們如何以高明的方式來(lái)揭開(kāi)這個(gè)魔術(shù)的謎底了。當然了,在純粹的理論上,我覺(jué)得開(kāi)設這樣一門(mén)課程是很成功的。但是畢竟現實(shí)里有太多的不確定的因素。最重要的因素就是授課的老師和聽(tīng)課的學(xué)生。這兩個(gè)可以說(shuō)是這門(mén)課成與敗的決定性的因素。
作為我們學(xué)生來(lái)說(shuō),應該負起比較主要的責任。在大學(xué)里有了太多的基礎課程,基礎課程大多都比較枯燥無(wú)味,也許在第一個(gè)學(xué)期里我們還能夠保持著(zhù)新鮮感,但是在6學(xué)期之后,可以說(shuō)再有新鮮感就是一件比較困難的事情了,我們都已經(jīng)開(kāi)始變得遲鈍了。其次的,沒(méi)有認識到這門(mén)課程的價(jià)值。這門(mén)課的價(jià)值我已經(jīng)在上面說(shuō)過(guò)了,是不言而喻的。但是并不是每個(gè)同學(xué)畢業(yè)之后都回從事計算機行業(yè),也不是每個(gè)同學(xué)都知道這門(mén)課程的意義已經(jīng)不僅僅局限于計算機這個(gè)范疇;蛟S有些人覺(jué)得反正以后不是這個(gè)發(fā)展方向,也就不在乎這個(gè)課程吧。我個(gè)人覺(jué)得這門(mén)課確實(shí)是挺好的,如果認真學(xué)必能學(xué)到很多東西,動(dòng)手實(shí)踐能力和從整個(gè)大體分析系統開(kāi)發(fā)的邏輯性思維也會(huì )明顯增強,不管以后從事哪個(gè)方面的工作,這對以后來(lái)說(shuō)都是一筆很大的隱性財富。說(shuō)到我自己對這么課的學(xué)習,還是有點(diǎn)愧疚的,前面四周我每周每節課都去上的,并且上課也認真聽(tīng),一邊聽(tīng)老師講課一邊自己看書(shū)本的介紹,但是后來(lái)我上這門(mén)課的次數就降低了,因為覺(jué)得時(shí)間很緊吧,而且老師上課的節奏我個(gè)人覺(jué)得有點(diǎn)慢,我都可以自己預習看到后面去了,但是這門(mén)課我還是每周至少上一節課的,雖然我早上7點(diǎn)多一點(diǎn)就出門(mén),在自習室,但是有時(shí)候明明知道到了上課的時(shí)間,明明上課的地方離自習的地方不遠也不太想去。我記得有次上課時(shí)候老師生氣了,說(shuō)來(lái)上課的人少,我仔細環(huán)顧了下四周發(fā)現確實(shí)人很少,稀稀疏疏的分散著(zhù),看起來(lái)確實(shí)不太舒服,讓我不得不反思了,這大學(xué)的教育到底怎么了,怎么到了大四大家都不來(lái)上課,雖然我不是每節課都來(lái),但是我還是時(shí)不時(shí)來(lái)上課的,可能是比較浮躁吧,快畢業(yè)了,覺(jué)得上課學(xué)不到什么實(shí)際的東西,要么實(shí)際一點(diǎn)好好考研繼續深造,要么去培訓增強實(shí)踐能力這樣才能較好的為找個(gè)滿(mǎn)意的工作做好鋪墊。
《軟件工程》課程既強調基本概念和基本知識的理解和掌握,又側重軟件項目的分析、設計、實(shí)現和維護的基本技能。比較注意“點(diǎn)”和“面”的結合。我還是蠻喜歡這門(mén)課的,通過(guò)對這門(mén)課的學(xué)習讓我意識到理論學(xué)習很重要,實(shí)踐更重要,實(shí)踐是檢驗真理的唯一標準,只有將理論與實(shí)際結合,才更能發(fā)揮我們所學(xué)的知識的作用,更能直接的創(chuàng )造效益,社會(huì )和國家做出貢獻。
軟件工程學(xué)習心得體會(huì ) 篇2
在本學(xué)期的軟件工程課程的學(xué)習中,我們學(xué)習了十一章的內容。第一章軟件與軟件工程的概念,這一章主要講解的是一些概念性和基礎性的內容,例如軟件的概念、特性,軟件危機的主要表現,軟件工程的概念以及軟件生存期、典型生存期模型等等。第二章軟件工程方法與工具,這一章主要對軟件工程方法進(jìn)行介紹,包括三種方法:傳統方法、面向對象方法、形式化方法。還引出了工具UML。第三章軟件需求獲取與結構化分析方法,本章詳細介紹了需求獲取與需求分析階段的任務(wù)以及結構化分析方法,畫(huà)分層的數據流圖、E—R圖以及狀態(tài)圖式本節的重點(diǎn)。第四章結構化分析方法,這一章重點(diǎn)講解了使用變換型映射方法和事務(wù)型映射方法生成初始的模塊結構以及模塊結構的改進(jìn)。第五章編碼,這一章重點(diǎn)講解了編碼的風(fēng)格及規范,還告訴我們編碼規范說(shuō)帶來(lái)的好處,并告誡我們將來(lái)一點(diǎn)要形成好的編碼風(fēng)格。第六章軟件測試方法,本章講解了軟件測試相關(guān)的概念及重要性,軟件測試與開(kāi)發(fā)各個(gè)階段的關(guān)系;還介紹了白盒測試技術(shù)以及黑河測試技術(shù)。第七章統一建模語(yǔ)言UML概述,本章詳細介紹了UML的基本模式、事物、關(guān)系及建模時(shí)用到的各種圖進(jìn)行了介紹。第八章面向對象分析,這一章主要講解了面向對象分析的3種模型,包括功能模型、靜態(tài)模型和動(dòng)態(tài)模型。第九章軟件體系結構與設計模式,本章對軟件體系結構的基本概念、典型風(fēng)格等進(jìn)行了講解。第十章面向對象設計,本章的重點(diǎn)是對面向對象分析時(shí)建立的對象模型進(jìn)行調整和細化。第十一章軟件維護,本章主要介紹軟件維護的`任務(wù)、軟件維護活動(dòng)以及軟件維護方法進(jìn)行了介紹。
要學(xué)習軟件工程,學(xué)會(huì )如何系統的思考,以及養成良好的編碼習慣,想學(xué)好軟件工程,就必須知道軟件工程的目標、過(guò)程和原則:軟件工程目標:生產(chǎn)具有正確性、可用性以及開(kāi)銷(xiāo)合宜的產(chǎn)品。正確性指軟件產(chǎn)品達到預期功能的程度?捎眯灾杠浖窘Y構、實(shí)現及文檔為用戶(hù)可用的程度。開(kāi)銷(xiāo)合宜是指軟件開(kāi)發(fā)、運行的整個(gè)開(kāi)銷(xiāo)滿(mǎn)足用戶(hù)要求的程度。這些目標的實(shí)現不論在理論上還是在實(shí)踐中均存在很多待解決的問(wèn)題,它們形成了對過(guò)程、過(guò)程模型及工程方法選取的約束。
軟件工程過(guò)程:生產(chǎn)一個(gè)最終能滿(mǎn)足需求且達到工程目標的軟件產(chǎn)品所需要的步驟。軟件工程過(guò)程主要包括開(kāi)發(fā)過(guò)程、運作過(guò)程、維護過(guò)程。它們覆蓋了需求、設計、實(shí)現、確認以及維護等活動(dòng)。需求活動(dòng)包括問(wèn)題分析和需求分析。問(wèn)題分析獲取需求定義,又稱(chēng)軟件需求規約。需求分析生成功能規約。設計活動(dòng)一般包括概要設計和詳細設計。概要設計建立整個(gè)軟件系統結構,包括子系統、模塊以及相關(guān)層次的說(shuō)明、每一模塊的接口定義。詳細設計產(chǎn)生程序員可用的模塊說(shuō)明,包括每一模塊中數據結構說(shuō)明及加工描述。實(shí)現活動(dòng)把設計結果轉換為可執行的程序代碼。確認活動(dòng)貫穿于整個(gè)開(kāi)發(fā)過(guò)程,實(shí)現完成后的確認,保證最終產(chǎn)品滿(mǎn)足用戶(hù)的要求。維護活動(dòng)包括使用過(guò)程中的擴充、修改與完善。伴隨以上過(guò)程,還有管理過(guò)程、支持過(guò)程、培訓過(guò)程等。
軟件工程的原則是指圍繞工程設計、工程支持以及工程管理在軟件開(kāi)發(fā)過(guò)程中必須遵循的原則。
我們學(xué)習了詳細設計的方法,其原則是過(guò)程描述是否易于理解、復審和維護,進(jìn)而過(guò)程描述能夠自然地轉換成代碼,并保證詳細設計與代碼完全一致。包括程序流程圖、N—S圖、PAD圖、HIPO圖
程序流程圖:程序流程圖又稱(chēng)之為程序框圖,它是軟件開(kāi)發(fā)者最熟悉的一種算法表達工具。它獨立于任何一種程序設計語(yǔ)言,比較直觀(guān)和清晰地描述過(guò)程的控制流程,易于學(xué)習掌握。在流程圖中只能使用下述的五種基本控制結構:順序型;選擇型;while型循環(huán);until型循環(huán);多情況型選擇。
N—S圖:一種符合結構化程序設計原則的圖形描述工具,稱(chēng)為盒圖,又稱(chēng)為N—S圖。在N—S圖中,為了表示五種基本控制結構,規定了五種圖形構件。順序型;選擇型;WHILE重復型;UNTIL重復型;多分支選擇型。
PAD圖:它是用結構化程序設計思想表現程序邏輯結構的圖形工具。PAD也設置了五種基本控制結構的圖示,并允許遞歸使用。
HIPO圖:HIPO圖是由一組IPO圖加一張HC圖組成。它是美國IBM公司在軟件設計中使用的主要表達工具。
HC圖既是層次圖,用于表示軟件的分層結構。HC圖中的每一個(gè)模塊,均可用一張IPO圖來(lái)描述。IPO圖由輸入、處理和輸出三個(gè)框組成,需要時(shí)還可以增加一個(gè)數據文件框,這種圖形的優(yōu)點(diǎn),是能夠直觀(guān)地顯示輸入—處理—輸出三者之間的聯(lián)系。
還有測試方法:按照測試過(guò)程是否在實(shí)際應用環(huán)境中來(lái)分,有靜態(tài)分析與動(dòng)態(tài)測試。測試方法有分析方法(包括靜態(tài)分析法與白盒法)與非分析方法(稱(chēng)黑盒法)。
靜態(tài)分析技術(shù):不執行被測軟件,可對需求分析說(shuō)明書(shū)、軟件設計說(shuō)明書(shū)、源程序做結構檢查、流程分析、符號執行來(lái)找出軟件錯誤。
動(dòng)態(tài)測試技術(shù):當把程序作為一個(gè)函數,輸入的全體稱(chēng)為函數的定義域,輸出的全體稱(chēng)為函數的值域,函數則描述了輸入的定義域與輸出值域的關(guān)系。
還學(xué)習了其他很多工具、語(yǔ)言、方法等,雖然不是都學(xué)得很透徹,但我相信在今后的學(xué)習中一定會(huì )慢慢的完善的。
軟件工程對于初學(xué)者來(lái)說(shuō),知識基礎較薄弱,對一些應用操作、概念、工具方法等理解起來(lái)較為困難,要能從整體概念上較好地理解和把握、學(xué)好軟件工程,不是僅僅把幾本專(zhuān)業(yè)書(shū)籍細致地看幾遍,然后上機練習幾次就可以成功,學(xué)習過(guò)程中要注意多看多練要注意結合實(shí)際,更要多思考,面對錯誤不要一范就問(wèn),要嘗試自己去解決。但是還要注意什么都學(xué),肯定是什么都學(xué)不透的,要集中精力打攻堅戰,學(xué)習軟件工程首先要明白自己的學(xué)習目標究竟是什么,根據自己的實(shí)際工作出發(fā),有針對性的在相應的學(xué)習方向上進(jìn)行提高,制定出詳細的學(xué)習規劃。還要注意與其他科目的相輔相成,就像我們在學(xué)習面向對象分析的時(shí)候要結合大一學(xué)習的面向對象及其方法學(xué)這一專(zhuān)業(yè)科目進(jìn)行研究拓展;在學(xué)習語(yǔ)言時(shí),要看看與C語(yǔ)言的聯(lián)系,多思多想,把從各個(gè)科目學(xué)到的知識通匯貫通。
在軟件工程的學(xué)習中,我了解到了軟件并非是一些代碼這么簡(jiǎn)單,在開(kāi)發(fā)軟件的過(guò)程中,編寫(xiě)代碼的工作量其實(shí)只占不到所有工程量的30%,而后期的管理和維護更是占了60%到80%之多。一個(gè)完整的項目規劃須包括,軟件的定義,可行性分析報告,項目開(kāi)發(fā)計劃,軟件需求說(shuō)明書(shū),概要設計說(shuō)明書(shū),詳細設計說(shuō)明書(shū),用戶(hù)操作手冊,測試計劃,測試分析報告,開(kāi)發(fā)進(jìn)度報告,項目開(kāi)發(fā)總結報告,軟件維護手冊,軟件問(wèn)題報告,軟件修改報告,等多個(gè)文檔,每個(gè)文檔都要上級驗收審查,而文檔數量眾多,要做好這點(diǎn)真的不是很容易,而恰恰寫(xiě)好文檔正能保證完成軟件工程其中一個(gè)目的的關(guān)鍵,既研究如何用最小的開(kāi)銷(xiāo)做出生存期較長(cháng)的軟件,再加上各個(gè)階段都要進(jìn)行周密的策劃、詳細的分工部署和人員安排,且各階段要據具體情況不斷的反復才能達成,所以代碼只是開(kāi)發(fā)軟件這個(gè)浩大的工程的一個(gè)小小的過(guò)程。
而編碼的學(xué)習中,我更了解到形成自己獨特的規范的編碼風(fēng)格是非常重要的事。因為這影響到了軟件后期繁重的維護,大家都要閱讀你的程序,如果你寫(xiě)的程序毫無(wú)規范可言,那么別人怎么能讀懂你的程序?讀不懂程序,維護又從何談起呢?所以,我們在今后的學(xué)習中,一定要注意這方面的培養,在寫(xiě)程序的過(guò)程中,要逐步的在規范的基礎上形成屬于自己的風(fēng)格,即方便自己的修改,也方便日后他人的閱讀。
在學(xué)習中,我們還要注意比較三種方法的優(yōu)缺點(diǎn),例如:傳統方法雖然使軟件擺脫了混亂和無(wú)序,但其在適應需求變化的方面不夠靈活,而且傳統方法要么面向行為,要么面向數據,缺乏兩者的有機結合。而面向對象方法的程序設計和問(wèn)題求解更符合人們日常自然的思維習慣,適合大型、復雜及交互性比較強的系統。形式化方法則是一中基于形式化數學(xué)變換的軟件開(kāi)發(fā)方法,它可將系統的規格說(shuō)明轉換為可執行的程序。
在今后的學(xué)習中要注意多讀書(shū)、多思考、多練習、多討論,不斷熟悉書(shū)本的基礎,并以此為基礎將其擴散開(kāi)來(lái),應用于今后的實(shí)踐。不斷鍛煉自己,向一名合格的程序設計師邁進(jìn)。
軟件工程學(xué)習心得體會(huì ) 篇3
時(shí)間飛逝,不知不覺(jué)間《軟件工程》的學(xué)習已經(jīng)過(guò)了大半了。在這將近半學(xué)期的學(xué)習中,雖然我不能說(shuō)我將《軟件工程》學(xué)習的有多么的好,但是通過(guò)學(xué)習,我還是受益良多。
在以前,我一直對軟件存在一些偏見(jiàn)或則是誤解,認為軟件就是程序,軟件的開(kāi)發(fā)就是編寫(xiě)程序,只要編完了程序,一切也就ok了,而且我還片面的認為只要我掌握了時(shí)下最新的語(yǔ)言和工具,那么我就能寫(xiě)程序了。一個(gè)人,只要會(huì )編程,就能寫(xiě)軟件,就是程序員;一個(gè)公司,只要招聘一些程序員,就能開(kāi)發(fā)好的軟件產(chǎn)品。只要有幾個(gè)有經(jīng)驗的`程序員,再找些兼職的大學(xué)生,就能組成一個(gè)軟件公司。
但是通過(guò)了《軟件工程》這門(mén)課的學(xué)習,使我認識到了我以前的錯誤。軟件其實(shí)不僅僅是程序,軟件開(kāi)發(fā)其實(shí)也不僅僅是編寫(xiě)程序,軟件是思想在硬件上的載體和體現,處理的是邏輯和信息。唯有對軟件和軟件的開(kāi)發(fā)過(guò)程,有充分的認識,才能更好的開(kāi)發(fā)出,過(guò)程受控、質(zhì)量受控的軟件產(chǎn)品。
而且在以前,我一直以為軟件的開(kāi)發(fā)其實(shí)是一件很輕松快樂(lè )的事情,只要一天坐在電腦旁敲敲鍵盤(pán),那么一切就可以了,但是現在我才發(fā)現,我以前的很多的思想是多么的膚淺可笑。編程其實(shí)是一種樂(lè )趣和苦惱共存的一項創(chuàng )造性活動(dòng)。因為編程不僅能夠滿(mǎn)足我們內心深處進(jìn)行創(chuàng )造的渴望,而且還能愉悅我們內在的情感。
而且通過(guò)學(xué)習《軟件工程》,我還學(xué)到了很多其他的東西。比如通過(guò)學(xué)習《軟件工程》,特別是老師每次用實(shí)際的軟件現場(chǎng)的講解,為我提供了一個(gè)盡早接觸世界工作和真實(shí)項目的機會(huì )。讓我知道如何在以最小的成本中,訓練自己的基本工程素質(zhì)和能力,如何激發(fā)自己的積極性等。而且通過(guò)學(xué)習《軟件工程》,還讓我認識和培養了我的團隊協(xié)作能力,特別是對于我們這些在校的學(xué)生來(lái)說(shuō),這種學(xué)習更是能讓我在以后工作中少走很多的彎路。
所以,通過(guò)《軟件工程》的學(xué)習,我是真的學(xué)習到了很多有用的東西,讓我明白了很多的道理。在此我對老師的辛勤教育表示感謝,因為是你讓我學(xué)習到了這些,是我獲益良多。
軟件工程學(xué)習心得體會(huì ) 篇4
時(shí)間過(guò)的很快,轉眼間已經(jīng)實(shí)習將近5個(gè)月,其中有2個(gè)月是屬于完全被流放的。最先在內部系統組參與內部管理系統開(kāi)發(fā)(struts+mysql+spring+hibernate),之后是去做網(wǎng)絡(luò )交換機軟件的腳本測試,F在又回歸內部系統,雖然在腳本組期間,編碼能力被別人甩在后頭,但至少具有了一些測試經(jīng)驗。
至少自己做的東西,是真正交付到了客戶(hù)手上,到也稍微有些成就感。
1、淺談測試
一直以來(lái),我都認為測試是脫離了軟件工程范圍的工作,不以為屑。但在實(shí)際情況中,測試是既重要且難以精湛的。其真正的壓力,在于找不到bug,責任在你,而不在于編碼人員。一般的測試人員不懂編碼,他們靠的是日以累計的經(jīng)驗總結和想象力。而要做到高級測試工程師,則一定要懂編碼,因為這是你完全掌握整個(gè)系統的方方面面具體運作的前提。但占主導地位的,還是大型系統的集成測試經(jīng)驗。實(shí)際項目中,編碼時(shí)間一般只占30%左右,真正耗費時(shí)間的是IT階段的找 bug與對應bug,此階段基本評定了coder的編碼質(zhì)量。
2、程序員的困惑
有些人,以為教學(xué)視頻和代碼看多,自己就懂的多,實(shí)際做起來(lái),卻不知從何下手,
問(wèn)題在那?如何定位?如何解決?通通跟一樣能力有關(guān),debug追蹤能力,也稱(chēng)調試。在項目組工作不愁源碼資源,但問(wèn)題是蛋糕擺在面前,你如何去消化?
有位同事告訴我:代碼看幾遍都沒(méi)用,要去抄,例如一個(gè)查詢(xún)模塊,在此基礎上去做具體記錄的歷史記錄查詢(xún)模塊,你可能會(huì )覺(jué)得很簡(jiǎn)單,但實(shí)際情況卻往往報一堆異常,配置問(wèn)題涉及到方方面面,以及數據庫字段,傳值問(wèn)題等等,一大堆對于新人來(lái)說(shuō)很郁悶的問(wèn)題。但不用怕,只要學(xué)會(huì )調試,一個(gè)個(gè)問(wèn)題去追蹤,一個(gè)個(gè)去解決,自然而然,那段“源碼”才真正屬于你。
3、如何調試追蹤
如果你能在短短的時(shí)間內就看到問(wèn)題點(diǎn)在那,放下斷點(diǎn)去追蹤,出去找工作,絕對沒(méi)問(wèn)題。出現問(wèn)題的時(shí)候,不要光看代碼,要用實(shí)際行動(dòng)去追蹤運行期間的具體值,那是最好途徑。eclipse是個(gè)很爽的ide,這點(diǎn)做的很好。例如頁(yè)面內容顯示不是自己想要的數據,我們要先從數據庫查詢(xún)語(yǔ)句去下手,設置斷點(diǎn),一步一步step over,讓sql字段(存取最終sql語(yǔ)句的`字符串)運行到有值,inspect進(jìn)去看,如果還看不出來(lái),就點(diǎn)擊它,copy后在sql客戶(hù)端去實(shí)際運行,看看實(shí)際查詢(xún)出來(lái)的表是什么,如果是對的,有可能就是頁(yè)面調用的錯誤或者action邏輯的傳值問(wèn)題。
頁(yè)面錯誤的調試,基本方法是用右鍵點(diǎn)擊實(shí)際網(wǎng)頁(yè)查看源代碼,copy到editplus,就能看到具體錯誤發(fā)生在那幾行。通常有幾種常見(jiàn)的錯誤,例如:缺少對象這種很多時(shí)候是有些被你調用的字段有可能為空的情況出現的,可以加if(xxx=null)語(yǔ)句加保護。追蹤的方法基本就是用alert語(yǔ)句,放在有可能出錯的地方。
4、一些習慣
遇到問(wèn)題先自己思考,無(wú)從下手再找高手幫忙看看,注意他幫你看的思路,別在一旁閑著(zhù),看多了自己也會(huì )了,不然你一輩子都停留在那種水平,從人身上學(xué)到的東西遠遠比書(shū)多的多。
解決了一個(gè)問(wèn)題后,要去究根問(wèn)底去找到問(wèn)題產(chǎn)生的起因,以防你下次遇到類(lèi)似的問(wèn)題再浪費同樣的時(shí)間。
把代碼寫(xiě)的漂亮,注釋、空行、規范一樣不能少,可讀性是放在第一位。曾經(jīng)看過(guò)一個(gè)高手寫(xiě)的代碼,真的一看就是不同水平的人寫(xiě)的,幾乎很完美,讀起來(lái)很流暢,方便自己也方便別人。
任務(wù)完后不要呆著(zhù),去要求經(jīng)理給你更有挑戰性的任務(wù),只要你肯去嘗試,他們就會(huì )對你另言相看,把三天的任務(wù)一天加班搞定,效率和忠誠都有了,路也比較好走了。
軟件工程學(xué)習心得體會(huì ) 篇5
軟件工程是一門(mén)實(shí)踐性很強、交叉性很強的學(xué)科,它提供給我們的不僅是一種方法論,更是一種世界觀(guān)。
在沒(méi)有接觸軟件工程這門(mén)課時(shí),我一直認為軟件就是程序。能編出解決問(wèn)題的程序就ok了,從沒(méi)有想過(guò),在寫(xiě)一個(gè)程序之前還要構思幾份文檔(可行性分析、需求分析、概要設計)。不過(guò)對于那些大型軟件如植物僵尸大戰(至少對于我來(lái)說(shuō)是比較大型的了)怎么去實(shí)現它,想得我一頭霧水。絢麗的界面、40種植物、一大堆不同類(lèi)型的僵尸,怎樣編代碼去實(shí)現它呢?
第一次上軟件工程的課,裴老師問(wèn)“軟件是什么?” 我的第一想法是:這個(gè)問(wèn)題太過(guò)愚昧了!誰(shuí)不知道軟件就是程序呀? “軟件是由計算機程序、數據及文檔組成!甭(tīng)到這句話(huà),我心里先是一驚,慌忙翻了下書(shū)“軟件是程序和所有使程序正確運行所需的相關(guān)文檔和配置信息!焙杖挥橙胛已酆。突然間我發(fā)現,就算是植物僵尸大戰這樣復雜的游戲,如果設計者實(shí)現分模塊把每一部分如何實(shí)現用文檔描敘出來(lái),那這個(gè)軟件實(shí)現起來(lái)不是很容易嗎?
第一次課后我明白了軟件工程是致力于專(zhuān)業(yè)化軟件開(kāi)發(fā)的理論、方法和工具的研究。雖然我從初中開(kāi)始信息奧賽,高中繼續這個(gè)愛(ài)好,但在大學(xué)二年級下學(xué)期才接觸在軟件開(kāi)發(fā)中這么有引導意義的學(xué)科,不覺(jué)有種相見(jiàn)恨晚的'感覺(jué)。自然它的方法學(xué)三要素:方法、工具、過(guò)程,我牢記于心。
短短的四周,裴老師的課給我留下了深刻的印象,印象尤深的是:
做軟件我們首先考慮的是團隊的實(shí)力。
如果別人給你50萬(wàn)讓你們團隊開(kāi)發(fā)一個(gè)軟件,如果他要求你們團隊給這個(gè)軟件永久維護,那么你要去跟他協(xié)商付100萬(wàn)。很多軟件公司倒閉就是因為維護上的問(wèn)題。至此我才明白維護軟件是軟件生存周期中時(shí)間最長(cháng)的一個(gè)階段,它是最花費精力與錢(qián)財的一個(gè)階段。
如果將來(lái)你們碰到了我,你跟我說(shuō)你是se那么我會(huì )很高興,如果你告訴我你是軟件工程師,我只會(huì )“嗯嗯”兩下。
其實(shí)在我接觸軟件后,渴望的是當一名軟件工程師,F在才知道學(xué)軟件工程專(zhuān)業(yè)后,去當一名軟件工程師是最低層的也是最沒(méi)“技術(shù)”含量的。要做就做系統構架師,當然這需要我們的不懈努力才能達到。系統構架師的職責是設計一個(gè)公司的基礎構架,并提供關(guān)于怎樣建立和維護系統的指導方針;腥话l(fā)現學(xué)軟件不僅是學(xué)軟件,相關(guān)的管理能力也是需要具備的。
當然理論知識是用來(lái)指導實(shí)踐的,親身體驗才能領(lǐng)悟軟件工程的妙用。課設我們選擇了圖書(shū)館管理系統,主要是這個(gè)系統我們接觸比較多,對于它的流程還是比較清楚的。雖然如此我們還是花了很大的時(shí)間去完成它。記得當時(shí)我們定下這個(gè)題目是晚上,在討論用什么語(yǔ)言實(shí)現時(shí),大家各自說(shuō)出自己比較善于的語(yǔ)言。然后均衡了下,定下用java做開(kāi)發(fā)語(yǔ)言。在實(shí)現過(guò)程中,突然發(fā)現java環(huán)境連接數據庫和tomcat超級麻煩且數據庫老是連接不上。趁時(shí)間還早我們三再次討論,決定用c#做開(kāi)發(fā)語(yǔ)言,主要是c#相對于c++與java來(lái)說(shuō)簡(jiǎn)易寫(xiě)。同時(shí)我們定下不管以后遇到什么困難都要堅持下去的準則。在課設期間我們沒(méi)少跑圖書(shū)館,查閱各種資料,對比各本書(shū)上實(shí)現圖書(shū)館管理系統的代碼。終于在4月11日把所有課設的所有事情弄好了。當然這只是個(gè)概述。
我印象尤深記憶深厚的是最初實(shí)現文檔那塊。剛開(kāi)始,軟件工程這門(mén)課還沒(méi)學(xué)多少,基本的設計理念就很模糊。文檔到底該怎么寫(xiě),很糾結。于是我從網(wǎng)上狂下相關(guān)文檔。通過(guò)粘貼與復制終于一份內容亂七八糟的需求分析文檔出來(lái)了,當然這只是用來(lái)借鑒的。后來(lái)孟陽(yáng)分享了十三份關(guān)于文檔這方面的模板。我們照著(zhù)那個(gè)樣子在結合團隊項目的相關(guān)實(shí)例開(kāi)始了文檔的寫(xiě)作。我們的文檔總是一個(gè)人先寫(xiě)好,再拿給另一個(gè)人改,最后由第三個(gè)人評審。大家都覺(jué)的可以了,才過(guò)關(guān)。測試報告雖然是我一個(gè)人完成了,但也經(jīng)歷了不少時(shí)間,當然這時(shí)間是按小時(shí)算的。首先把大體寫(xiě)出了,然后修改,再增加信息。大量的截圖以及思考怎樣用例超費腦子,兩天的通宵,徹底把我搞垮了,不過(guò)在文檔出爐后,心里異常開(kāi)心。
軟件工程課程雖已結束,但我對于軟件工程的學(xué)習才剛剛開(kāi)始,裴老師的課讓我受益匪淺。我體會(huì )到項目管理的重要性,隨著(zhù)軟件規模、復雜度的不斷增加,項目開(kāi)發(fā)中更多的是協(xié)作、管理和控制。我學(xué)習到很多一般性的方法,例如:需求獲娶模塊化、分治、估算、計劃等等。同時(shí),我也認識到使用計算機解決實(shí)際問(wèn)題的復雜性,在圖靈機模型和馮·諾依曼體系的計算機框架下,人們認識表達的過(guò)程(不斷反復、逐步深化)和計算機的實(shí)現過(guò)程(順序執行)相差甚遠,軟件工程方法要提供給程序員們一種更加有效的對客觀(guān)世界問(wèn)題域進(jìn)行形式化的過(guò)程方法。
向se進(jìn)軍!至少這是現在的目標。
謝謝裴老師!您的課通俗易懂,舉的例子貼近生活,讓我們易于接受。
軟件工程學(xué)習心得體會(huì ) 篇6
早在我選擇民政職業(yè)技術(shù)學(xué)院就讀軟件開(kāi)發(fā)與項目管理這門(mén)專(zhuān)業(yè)的時(shí)候,我一直認為軟件開(kāi)發(fā)無(wú)非是努力的敲代碼,從敲代碼的過(guò)程中去體會(huì )各行代碼的意思和用處,在沒(méi)學(xué)軟件工程時(shí)我一直都是努力的敲代碼去學(xué)習軟件開(kāi)發(fā)這門(mén)專(zhuān)業(yè)。在大一的時(shí)候我敲代碼的激情很好,但是到大二的時(shí)候就出現問(wèn)題了,我根本就不喜歡敲代碼了,看見(jiàn)代碼就頭疼。所以感覺(jué)厭惡這門(mén)專(zhuān)業(yè),對學(xué)習也不感興趣了。而且,還有一件更頭疼的.事是在寫(xiě)一個(gè)簡(jiǎn)單的程序時(shí)竟然老是出錯,難一點(diǎn)的,復雜一點(diǎn)的程序竟然無(wú)從下手。但是去看程序的參考答案時(shí)都看得懂,又感覺(jué)很容易。學(xué)了軟件工程以后,我就感覺(jué)我以前的學(xué)習方法是錯誤的。以前我只注重于代碼,而不注重理論知識以及編程的思路,程序的架構。以至于在些程序時(shí)沒(méi)有寫(xiě)程序的思路,不能形成程序的架構。只想到看腦袋里是否有與此類(lèi)似的代碼。越想程序越亂,最后腦袋里一片空白。不知道程序從哪個(gè)方面下手了。
軟件工程這門(mén)課程是做軟件開(kāi)發(fā)的人必學(xué)的課程,通過(guò)學(xué)這門(mén)課程,程序員就會(huì )注重軟件開(kāi)發(fā)的理論知識,以及做項目開(kāi)發(fā)的思路。學(xué)了這門(mén)課程后你寫(xiě)程序就不會(huì )去盲目的去套用代碼,而是理清此程序的架構以及思路。程序該從什么時(shí)候開(kāi)始,什么時(shí)候結束。在中間需要添加什么樣的功能,以完善該軟件。其實(shí)學(xué)軟件工程并不難,而且很容易。軟件工程與日常生活聯(lián)系起來(lái)的話(huà),就是在一天中你該先做什么,后做什么。理解了先做什么,后做什么了以后寫(xiě)程序就不是那么難了,再復雜的程序也可以分成幾大塊。你理清程序的思路后就可以一步步的解決其中的難題,最終實(shí)現軟件的功能。如果沒(méi)學(xué)軟件工程不知道理清程序的思路的話(huà),做一個(gè)大的項目開(kāi)發(fā),那么多的代碼,沒(méi)有一個(gè)很好的結構,最終只會(huì )導致程序混亂,錯誤百出,知道代碼再多也會(huì )素手無(wú)策的。
總而言之,作為一個(gè)程序員學(xué)習軟件工程這門(mén)課程是至關(guān)必要的,如果沒(méi)學(xué)習軟件工程,你就不會(huì )做項目開(kāi)發(fā),也不可能開(kāi)發(fā)出一個(gè)完善的軟件出來(lái)。
軟件工程學(xué)習心得體會(huì ) 篇7
在這次軟件工程課程中,我學(xué)到了很多東西,第一次深刻的體會(huì )到了什么叫做用工程化的思想來(lái)編寫(xiě)軟件,以前自己也寫(xiě)過(guò)一些小型軟件,沒(méi)有做過(guò)大型的項目,直到這次課堂我擔任組長(cháng)并組織組員共同完成“個(gè)人圖書(shū)管理系統”這個(gè)項目,第一次和別人合作,才發(fā)現運用工程化的思想來(lái)做是如此的有必要。
從這里,我才真正的意識到實(shí)施一個(gè)軟件工程并不是說(shuō)簡(jiǎn)單的會(huì )編碼就能夠解決問(wèn)題的,我們更多的精力不是放在編碼上,編碼只是一個(gè)很小的模塊,只占到那么小的一個(gè)部分。這個(gè)事實(shí)在很大程度上顛覆了我以前的思想,在我以前的認識中,似乎整個(gè)軟件就是編碼,除此無(wú)它,還好有老師的指導,不然真的會(huì )出現老師所說(shuō)的,撞得頭破血流之后才想起來(lái)用軟件工程的思想來(lái)完成這個(gè)工作。
剛真正開(kāi)始工作之前,我們費了很多的時(shí)間來(lái)完成一些前端工作,如需求分析和可行性分析,這塊工作在別人看來(lái)可能是相對無(wú)關(guān)緊要,甚至是多于的,其實(shí),換做在以前,我也會(huì )這么認為?墒,我現在算是深深地明白了磨刀不誤砍柴工的道理,這些工作的完成太有必要了,太重要了,要想你的軟件有用有市場(chǎng),能被別人接受和認可,在進(jìn)行過(guò)程中不會(huì )出現崩潰性的問(wèn)題,這些工作缺一不可。
還有就是接下來(lái)的一些設計模塊,此模塊與軟件編碼涉及比較緊密,主要是解決一些參數傳遞和接口通訊的'問(wèn)題,此模塊對我的觸動(dòng)遠沒(méi)有上兩個(gè)模塊對我的影響大,因此再次也不做過(guò)多的介紹。
在整個(gè)活動(dòng)的完成過(guò)程中,作為組長(cháng),我收獲很多,我發(fā)現,要是組里有個(gè)人不怎么想做事情時(shí),他對于整個(gè)組織的影響是毀滅性的,正所謂“一顆老鼠屎,能壞一倉谷”,以后我的組織里要是出現這樣的人,我絕不會(huì )給他繼續留下來(lái)的機會(huì ),我會(huì )在第一時(shí)間將他清除出去。還有就是,作為組長(cháng),你要做的最重要的事情,不是發(fā)揮自己的聰明才智,而是創(chuàng )造出一個(gè)平臺,讓別人去發(fā)揮,你所要做得,出了保證這個(gè)平臺的完整性和公平性外,還有就是協(xié)調好各組員之間的關(guān)系。
這就是我的實(shí)習感想。
軟件工程學(xué)習心得體會(huì ) 篇8
我們是20XX年3月7號進(jìn)入宏天實(shí)訓公司參加軟件開(kāi)發(fā)實(shí)訓的,在此次實(shí)訓中,除了讓我明白工作中需要能力,素質(zhì),知識之外,更重要的是學(xué)會(huì )了如何去完成一個(gè)任務(wù),懂得了享受工作。當遇到問(wèn)題,冷靜,想辦法一點(diǎn)一點(diǎn)的排除障礙,到最后獲取成功,一種自信心就由然而生,這應該就是工作的樂(lè )趣。有時(shí)候不懂的就需要問(wèn)別人了,虛心請教,從別人的身上真的能學(xué)到自己沒(méi)有的東西,每一次的挫折都會(huì )使我更接近成功。還有學(xué)會(huì )了在工作中與人的合作與交流,同樂(lè )同累,合作互助,這是團體的精神,也是必須學(xué)習的東西。
經(jīng)過(guò)之前的在校學(xué)習,對程序設計有了一定的認識與理解。在校期間,一直都是學(xué)習理論知識,沒(méi)有機會(huì )去參與項目的開(kāi)發(fā)。所以說(shuō)實(shí)話(huà),在實(shí)訓之前,軟件項目開(kāi)發(fā)對我來(lái)說(shuō)是比較抽象的,一個(gè)完整的項目要怎么分工以及完成該項目所要的步驟也不是很明確。而經(jīng)過(guò)這次實(shí)訓,讓我明白了一個(gè)完整項目的開(kāi)發(fā),必須由團隊來(lái)分工合作,并在每個(gè)階段中進(jìn)行必要的總結與論證。
一個(gè)完整項目的開(kāi)發(fā)它所要經(jīng)歷的階段包括:遠景范圍規劃和用例說(shuō)明、項目結構和風(fēng)險評估、業(yè)務(wù)功能說(shuō)明書(shū)、詳細設計說(shuō)明書(shū)、代碼實(shí)現、測試和安裝包等等。一個(gè)項目的開(kāi)發(fā)所需要的財力、人力都是很多的,如果沒(méi)有一個(gè)好的遠景規劃,對以后的開(kāi)發(fā)進(jìn)度會(huì )有很大的影響,甚至會(huì )出現在預定時(shí)間內不能完成項目或者完成的項目跟原來(lái)預想的不一樣。一份好的項目結構、業(yè)務(wù)功能和詳細設計說(shuō)明書(shū)對一個(gè)項目的開(kāi)發(fā)有明確的指引作用,它可以使開(kāi)發(fā)人員對這個(gè)項目所要實(shí)現的功能在總體上有比較明確的認識,還能減少在開(kāi)發(fā)過(guò)程中出現不必要的麻煩。代碼的'實(shí)現是一個(gè)項目開(kāi)發(fā)成功與否的關(guān)鍵,也就是說(shuō),前期作業(yè)都是為代碼的實(shí)現所做的準備。
我深刻的認識到要成為一名優(yōu)秀的軟件開(kāi)發(fā)人員不是一件容易的事情,不僅要有足夠的干勁和熱情,還要有扎實(shí)的編寫(xiě)代碼基礎,必須要有事先對文檔進(jìn)行可靠性報告,功能說(shuō)明書(shū),詳細設計說(shuō)明書(shū)等的編寫(xiě)和一些風(fēng)險評估的編寫(xiě)的能力。
軟件工程學(xué)習心得體會(huì ) 篇9
未接觸軟件工程之前一直都很想學(xué)這門(mén)課程,因為覺(jué)得這門(mén)課很牛,是那些有工程師稱(chēng)號的高手才擺弄的東西。學(xué)了一個(gè)學(xué)期的軟件工程課,終于知道了個(gè)軟件工程的大概。學(xué)的時(shí)候總覺(jué)得很抽象,理解起來(lái)好像不難,但總是摸不著(zhù)頭腦一種很茫然的感覺(jué)。曾經(jīng)以為程序就是軟件,軟件就是程序。學(xué)習這門(mén)課程第一個(gè)收獲是,知道了二者的不同之處。以前做過(guò)的一些小型的軟件比如加密軟件,我也只是在程序旁邊附上一個(gè)軟件的說(shuō)明,看來(lái)已經(jīng)很接近作坊了。不過(guò)大的項目沒(méi)有接觸過(guò),用軟件工程的方法還是第一次。我想也是程序的不斷復雜化導致了軟件危機的發(fā)生,使得人們不得不探索新的解決方法。
經(jīng)過(guò)倪老師的講解,理解了軟件工程,就是一套用于軟件的團隊開(kāi)發(fā),以提高軟件質(zhì)量和程序員工作效率為目的的規范。其核心就是,對于軟件開(kāi)發(fā)的5個(gè)重要組成部分:需求分析,設計,編碼,調試,維護,如何組織這5個(gè)部分的工作,以及如何完成每一個(gè)工作。吾生也有涯,而知也無(wú)涯,學(xué)習永無(wú)止境。起初,對軟件工程處于一知半解的狀態(tài),分工比較混亂。
在劃分模塊后明確了各自分工,漸漸形成良性循環(huán)。在學(xué)習過(guò)程中,知道了團隊合作十分重要,爭議固然存在,但通過(guò)討論、協(xié)商,群策群力,在不斷磨合中能夠達成一致與默契。團隊成員中能力各有高下,互相尊重,各取所長(cháng),不宜妄自菲薄。組長(cháng)多加協(xié)調,組員積極配合,才能合作愉快。學(xué)習能力體現在能盡快接受新的`知識,順應變化,學(xué)為所用。
上《軟件工程導論》這門(mén)課,我的收獲大概如下:我們?yōu)槭裁葱枰浖こ棠?上面已?jīng)給出了一些原因。專(zhuān)業(yè)點(diǎn)講,軟件工程最終是為了實(shí)現“軟件制造業(yè)”的社會(huì )化,工業(yè)化大生產(chǎn),提高其勞動(dòng)生產(chǎn)效率。只有如此,軟件業(yè)才能實(shí)現社會(huì )化,工業(yè)化大生產(chǎn),才能“做大做強”。沒(méi)有管理的設計是失敗和混亂的設計,沒(méi)有設計指導的編程是無(wú)序的忙碌的。根據開(kāi)發(fā)的軟件的規模,應該適當程度的運用軟件工程化的思想,需要靈活,畢竟我們開(kāi)發(fā)的軟件大多數是中小型的,大型的并不多見(jiàn)(我是這么認為的)。但只要涉及人員間的交流和溝通,或多或少都要需要軟件工程才能更有效率,工作成果更穩定。
其實(shí)開(kāi)發(fā)軟件,就像是解決一個(gè)邏輯問(wèn)題。想想自己平時(shí)是怎樣寫(xiě)程序的。首先是要有一個(gè)想法,即我寫(xiě)的這個(gè)程序是要干什么的;然后就是對要實(shí)現的核心功能大概構思一種或多種實(shí)現方法,并從中選出一種自認為是較好的;接下來(lái)就是將涉及的各種主要或次要功能分成各個(gè)模塊;最后就是分模塊來(lái)編碼和DEBUG。在我看來(lái),除了第一步外,其余的步驟應該是一個(gè)循環(huán)的過(guò)程。在編碼的過(guò)程中,你總是需要不斷地回過(guò)頭來(lái)修改原先的模塊設計,甚至最初選定的實(shí)現算法。具體到每一步的工作要怎樣完成,是非常靈活的,只要把握住大體的方向就行。在進(jìn)行分析,設計,編碼,調試,維護這幾部分的工作的時(shí)候,最核心的就是文檔的編寫(xiě)。
1、可行性分析就是關(guān)于當前項目能不能干的分析結果。
2、項目描述這是在決定立項以后,對當前項目的一份扼要說(shuō)明。
3、需求分析就是對客戶(hù)要求的功能的定義。
4、軟件設計這就是對程序的每一個(gè)模塊的詳細設計的說(shuō)明文檔。
5、開(kāi)發(fā)日志我一直都認為這是文檔中最有趣的部分。開(kāi)發(fā)日志相當于編碼階段的文檔,它的形式可以很隨意,主要是記錄一些在寫(xiě)程序時(shí)突然萌發(fā)的靈感,或對代碼的一些微小的修改,或對程序結構的一些微小變動(dòng)等,還要對上述這些修改變動(dòng)作些說(shuō)明。
6、測試分析用于指出程序存在或潛在的缺陷和錯誤,以及程序性能的數字描述。
軟件工程學(xué)習心得體會(huì ) 篇10
軟件是計算機系統中與硬件相互依存的另一部分,它包括程序、相關(guān)數據及其說(shuō)明文檔。軟件工程(SoftwareEngineering,簡(jiǎn)稱(chēng)為SE)是針對軟件這一具有特殊性質(zhì)的產(chǎn)品的工程化方法。SE涵蓋了軟件生命周期的所有階段,并提供了一整套工程化的方法,來(lái)指導軟件人員的工作。任何事物都是從無(wú)到有的,軟件當然也不例外。上世紀中期,軟件產(chǎn)業(yè)從零開(kāi)始起步,經(jīng)過(guò)半個(gè)多世紀的發(fā)展,其大致經(jīng)歷的3個(gè)階段:程序設計階段、軟件設計階段和軟件工程時(shí)代,現已成為推動(dòng)人類(lèi)社會(huì )發(fā)展的龍頭產(chǎn)業(yè),隨著(zhù)信息化時(shí)代的發(fā)展,軟件對人類(lèi)社會(huì )也將越看來(lái)越重要。人們對軟件的認識自然經(jīng)歷了一個(gè)由淺入深的過(guò)程,在得到巨大需求的同時(shí),也遇到了一系列嚴重問(wèn)題,即軟件危機。所謂軟件危機,是指在計算機軟件的開(kāi)發(fā)和維護過(guò)程中所遇到的一些嚴重問(wèn)題,其實(shí)質(zhì)是軟件產(chǎn)品的供應趕不上需求的增長(cháng)。概括的說(shuō)包含兩方面的問(wèn)題:一、如何開(kāi)發(fā)軟件,以滿(mǎn)足不斷增長(cháng),日趨復雜的要求;二、如何維護數量不斷膨脹的軟件產(chǎn)品。為研究和解決軟件危機,一門(mén)新興的學(xué)科軟件工程,應運而生。
軟件工程的概念是為了有效地控制軟件危機的發(fā)生而被提出來(lái)的,它的中心目標就是把軟件作為一種物理的工業(yè)產(chǎn)品來(lái)開(kāi)發(fā),要求“采用工程化的原理與方法對軟件進(jìn)行計劃、開(kāi)發(fā)和維護”,它的主要對象是大型軟件,它的最終目的是擺脫手工生產(chǎn)軟件的現狀,逐步實(shí)現軟件開(kāi)發(fā)和維護的自動(dòng)化。軟件工程的概念自提出來(lái)后,經(jīng)過(guò)幾十年的發(fā)展,雖然軟件危機沒(méi)有得到徹底的解決,但在軟件開(kāi)發(fā)方法和技術(shù)方面已經(jīng)有了很大的進(jìn)步,提出了軟件工程知識體系、軟件工程三段論、軟件工程生存期模型、服用原則等等。
軟件開(kāi)發(fā)過(guò)程大致經(jīng)過(guò)7個(gè)階段:可行性分析、需求分析、概要設計、詳細設計、編碼、測試、提交與維護。接下來(lái)逐一分析本人見(jiàn)解:
一、可行性分析:顧名思義,就是看項目究竟“能不能做”。有3個(gè)方面:技術(shù)可行性、經(jīng)濟可行性和操作可行性。要確定項目,首先要客觀(guān)的、科學(xué)的了解項目的規模、難度和時(shí)間限制,才可以確定應該投入多少人力、物力和財力去做這個(gè)項目,必須準確的估計項目的規模與難度?错椖渴欠裼袃r(jià)值去做,如果沒(méi)有價(jià)值,就放棄;如果有價(jià)值,就要看目前的資源是否能滿(mǎn)足項目的開(kāi)發(fā)。如果項目有價(jià)值,且有必需的資源,那么就可以確定能做這個(gè)項目了。
二、需求分析階段:解決“做什么、不做什么”的問(wèn)題。圍繞兩個(gè)核心問(wèn)題開(kāi)展需求分析:應該了解什么?通過(guò)什么方式去了解?
1、了解什么:應該先了解宏觀(guān)的問(wèn)題,再了解細節的問(wèn)題。最好為每個(gè)需求注釋“為什么”,這樣可以讓程序員了解需求的本質(zhì),以便選用最合適的技術(shù)來(lái)實(shí)現此需求。同時(shí),需求說(shuō)明不可有額二義性,更不能前后矛盾,如果有二義性貨前后相矛盾,則要重新分析此需求。然后,選擇合適的生存周期,建立合適的需求模型;
2、通過(guò)什么方式去了解:直接與客戶(hù)交談;有些需求客戶(hù)講不清楚,分析人員又猜不透,這是就要請教行家。需求分析是非常重要的階段,如果做不好的話(huà),后果很麻煩。
三、概要設計:解決“怎么做”的問(wèn)題。將需求描述的“做什么”問(wèn)題變?yōu)橐粋(gè)實(shí)施方案的創(chuàng )造性過(guò)程,使得整個(gè)項目在邏輯上和物理上能夠得意實(shí)現。概要設計是第一個(gè)開(kāi)發(fā)活動(dòng),也是最重要的活動(dòng),是軟件項目實(shí)現的關(guān)鍵階段。設計質(zhì)量的高低直接決定了軟件項目的成敗,缺乏或者沒(méi)有軟件設計的過(guò)程會(huì )產(chǎn)生一個(gè)不穩定的、甚至是失敗的軟件系統。一個(gè)良好的軟件設計是進(jìn)行快速軟件開(kāi)發(fā)的根本,沒(méi)有良好的設計,會(huì )將時(shí)間花在不斷的調試上,無(wú)法添加新功能,修改時(shí)間越來(lái)越長(cháng),隨著(zhù)給程序打上一個(gè)有一個(gè)的補丁,新的功能需要更多的代碼實(shí)現,就變成一個(gè)惡性循環(huán)了。概要設計是軟件設計級別中的高級設計,是從需求出發(fā),描述了總體上系統架構應該包含的要素。概要設計盡可能模塊化,因此描述了各個(gè)模塊之間的關(guān)聯(lián),主要是根據需求規格或規格定義,合理、有效地實(shí)現產(chǎn)品規格中定義的各項需求,完成軟件模塊的劃分并描述模塊之間的關(guān)系,并不斷分解系統模塊,從高層分解到低層分解。它注重框架設計、總體結構設計、數據庫設計、接口設計、網(wǎng)絡(luò )環(huán)境設計等,將產(chǎn)品分割成一些可以獨立設計和實(shí)現的部分并保證各個(gè)部分可以和諧的工作。此過(guò)程中畫(huà)數據流圖、IPO圖、E-R圖、界面設計等。
四、詳細設計:解決“具體做什么”的問(wèn)題,將解決問(wèn)題的辦法進(jìn)行具體化。軟件設計的低級設計,亦即詳細設計,主要描述實(shí)現各個(gè)模塊的算法和數據結構以及用特定計算機語(yǔ)言實(shí)現的初步描述,是針對程序開(kāi)發(fā)部分來(lái)說(shuō)的,但這個(gè)階段不是真正編寫(xiě)程序,而是設計
出程序的詳細規格說(shuō)明,這種規格說(shuō)明類(lèi)似于其他工程領(lǐng)域中工程師經(jīng)常使用的.工程藍圖,程序員根據其中所包含的必要的細節寫(xiě)出實(shí)際的程序代碼。用另一種方式說(shuō)就是,詳細設計是將概要設計的框架內容具體化、明細化,將概要設計轉化為可以操作的軟件模型,但在實(shí)際項目進(jìn)行過(guò)程中,依據項目的具體情況和項目要求,這個(gè)過(guò)程可能可以省略(邏輯上沒(méi)有省略,表現在概要設計階段或者編碼階段),直接按照概要設計進(jìn)行編碼;不過(guò),個(gè)人認為最好有,有詳細設計可以更好的保證編碼順利的進(jìn)行,可以預先掃清編碼過(guò)程中的障礙,提高代碼的質(zhì)量和編碼的效率。主要包括模塊描述、算法描述、數據描述,可以采用圖形、表格或者文字描述等方式表達出來(lái)。
五、編碼:實(shí)現項目。由項目的概要設計和詳細設計,將設計變?yōu)榇a需要通過(guò)編碼過(guò)程來(lái)完成。實(shí)現設計有很多種選擇,有很多實(shí)現語(yǔ)言、工具等可供選擇,但一般而言,在設計中會(huì )直接或間接地確定了實(shí)現語(yǔ)言。編碼過(guò)程的一個(gè)主要標準時(shí)變成與設計的對應性和統一性。如果編碼沒(méi)有按設計的要求進(jìn)行,設計就失去意義了。設計過(guò)程中的算法、功能、接口、數據結構都應該在編碼過(guò)程中體現。如果需求發(fā)生變更,設計業(yè)對應地發(fā)生變更,同時(shí)代碼也應該一致地發(fā)生變更,這可以通過(guò)配置管理配置控制?梢(jiàn),如果編碼和設計不一致,很容易“跑偏”,走火入魔。編碼時(shí)要嚴格遵循編碼標準和規范,并提供必要的程序注釋?zhuān)黾涌勺x性。另一個(gè)就是重構的理解,所謂重構是對軟件內部的一種調整,目的是在不改變軟件基本功能和性能的前提下,提高其可理解性,降低成本,當添加功能、修改代碼和復查
代碼的時(shí)候,更不要錯過(guò)重構,另外,重構可以和設計互補。還有一點(diǎn)值得注意,要在必要的時(shí)候部署編碼文檔。
六、測試:看軟件是否符合標準。軟件編碼完成之后,將軟件提交給用戶(hù)之前,需要對軟件進(jìn)行測試,這是保證軟件產(chǎn)品質(zhì)量的一個(gè)重要標準,也是評估產(chǎn)品質(zhì)量的主要手段。軟件測試是從軟件工程中演化出來(lái)的一個(gè)分支,有著(zhù)非常廣泛的內容,并且隨著(zhù)軟件產(chǎn)業(yè)的發(fā)展,它已經(jīng)變得越來(lái)越重要。軟件與生俱來(lái)就可能存在缺陷,為了防止和減少這些可能存在的缺陷,進(jìn)行軟件測試是有必要的,測試是最有效的的排錯和防止缺陷和故障的手段。最原始的測試莫過(guò)于直接運行軟件了,后來(lái)測試手段逐漸多樣化。測試手段有靜態(tài)測試、動(dòng)態(tài)測試面向對象的測試、自動(dòng)化測試等等之分。靜態(tài)測試或稱(chēng)靜態(tài)分析是指一種不通過(guò)執行程序來(lái)進(jìn)行測試的一種技術(shù),主要是檢查軟件的表示和描述是否一致,覆蓋程序的編碼格式、程序語(yǔ)法、檢查獨立語(yǔ)句的結構和使用等,主要包括代碼檢查、靜態(tài)結構分析、代碼質(zhì)量等等,可以通過(guò)人工進(jìn)行,亦可借助工具(如:語(yǔ)法分析器)自動(dòng)進(jìn)行。動(dòng)態(tài)測試是運行被測試的程序,通過(guò)輸入測試用例,對其運行情況進(jìn)行分析,以達到檢測的目的,顯然動(dòng)態(tài)測試封像我們通常意義上的“測試”。動(dòng)態(tài)測試主要包括白盒測試、黑盒測試、灰盒測試(介于黑盒和白盒之間)。其他測試不再一一介紹。
七、提交與維護:測試完之后,就要把軟件交給用戶(hù)使用了。提交不是剪裁,給人家就行了,還要教會(huì )客戶(hù)怎么使用這個(gè)系統。如果用戶(hù)不會(huì )使用系統,就會(huì )不滿(mǎn)意系統的性能,那之前的努力就白費了,
打水漂了。為了保證成功地將我們開(kāi)發(fā)的軟件提交給用戶(hù),我們需要對用戶(hù)進(jìn)行培訓,同時(shí)提交必要的文檔及用戶(hù)手冊軟件。維護就不用多說(shuō)了,就是售后服務(wù)了。維護需要分析人員、編碼人員和設計人員等角色的參與,有糾錯行維護、適應性維護、完善性維護、預防性維護等。維護后,要寫(xiě)軟件維護過(guò)程文檔,至少提交一個(gè)軟件維護記錄。以上是軟件工程及其幾個(gè)階段的介紹,知道怎樣開(kāi)發(fā)軟件只是軟件工程的一部分,搞好團隊合作也是很重要的。項目是一個(gè)很大的工程,需要一個(gè)團隊的統籌規劃,團結協(xié)作,集思廣益,舉一反三,才能夠按預期完成。
軟件工程學(xué)習心得體會(huì ) 篇11
一、需求分析和概要設計。
1)需求分析
按照軟件工程的軟件過(guò)程來(lái)說(shuō):
1需求分析產(chǎn)生了軟件功能規格說(shuō)明書(shū),需要確定用戶(hù)對軟件的需求,要作到明確、無(wú)歧義。不涉及具體實(shí)現方法。用戶(hù)能看得明白,開(kāi)發(fā)人員也可據此進(jìn)行下面的工作(概要設計)。
2.概要設計產(chǎn)生了軟件概要設計說(shuō)明書(shū),說(shuō)明系統模塊劃分、選擇的技術(shù)路線(xiàn)等,整體說(shuō)明軟件的實(shí)現思路。并且需要指出關(guān)鍵技術(shù)難點(diǎn)等。
在進(jìn)行需求分析時(shí),我們既是開(kāi)發(fā)者又是用戶(hù),本系統的業(yè)務(wù)流程與業(yè)務(wù)分類(lèi)的定義比較難。我們的團隊進(jìn)行了研討,還充分運用了身邊的各種資源,大量的查找了很多網(wǎng)絡(luò )上關(guān)于工資系統的資料。通過(guò)資料的進(jìn)行討論、根據我們的課題進(jìn)行分析,最后確定了用戶(hù)的需求為:
1.本系統在高校應用后高校工資管理方面的教職工將減少至目前的50%左右;
2.本系統在高校應用后將在高校各方面的成本將會(huì )有所降低;
3.本系統在高校應用后將教職工的工資達到完全透明,計算更加精確教職工因糾紛事件減少到1%。 根據分析將系統的功能從一般教職工與系統管理者兩個(gè)角度將功能劃分為7個(gè)模塊,當然介于我們的知識有限,有的功能沒(méi)有實(shí)現:?jiǎn)T工工資與考勤直接掛鉤,但本系統無(wú)法與員工考勤系統掛鉤相連,由于涉及此系統時(shí)該高校并沒(méi)有員工考勤系統,而且我們在最初進(jìn)行商量的時(shí)候也沒(méi)有提出該要求。
2)概要設計
從概要階段開(kāi)發(fā)正式進(jìn)入軟件的實(shí)際開(kāi)發(fā)階段,本階段完成系統的大致設計并明確系統的數據結構與軟件結構。在軟件設計階段主要是把一個(gè)軟件需求轉化為軟件表示的過(guò)程,這種表示只是描繪出軟件的總的概貌。由概要設計說(shuō)產(chǎn)生大的概要說(shuō)明書(shū)的目的就是進(jìn)一步細化軟件設計階段得出的軟件總體概貌,把它加工成在程序細節上非常接近于源程序的軟件表示。
在本階段主要涉及處理流程的`設計、總體結構和模塊外部設計、功能分配。在接口設計上有用戶(hù)接口、外部接口、內部接口;數據結構設計有邏輯結構設計、物理結構設計等等。在接口設計時(shí)參考了大量的資料。
最后就是編寫(xiě)文檔——軟件需求說(shuō)明書(shū)、概要分析說(shuō)明書(shū)。
而文檔的作用在于:一是可以幫助整理思路。把要完成的目標,系統的結構,每一個(gè)模塊的功能等整理一下,然后分門(mén)別類(lèi)地寫(xiě)下來(lái),這樣在開(kāi)發(fā)的過(guò)程中,就有據可依,在需要回過(guò)頭來(lái)修改設計的時(shí)候,也有證可考。二是便于交流。三是可以作為以后維護時(shí)的參考資料。
三、軟件工程課程設計——心得體會(huì )
我們進(jìn)行了為期一周的課程設計。通過(guò)這次課程設計,我拓寬了知識面,鍛煉了能力,綜合素質(zhì)得到較大提高。安排課程設計的基本目的,在于通過(guò)理論與實(shí)際的結合、人與人的溝通,進(jìn)一步提高思想覺(jué)悟。尤其是觀(guān)察、分析和解決問(wèn)題的實(shí)際工作能力,以便培養成為能夠主動(dòng)適應社會(huì )主義現代化建設需要的高素質(zhì)的復合型人才。作為整個(gè)學(xué)習體系的有機組成部分,課程設計雖然安排在一周進(jìn)行,但并不具有絕對獨立的意義。它的一個(gè)重要功能,在于運用學(xué)習成果,檢驗學(xué)習成果。運用學(xué)習成果,把課堂上學(xué)到的系統化的理論知識,嘗試性地應用于實(shí)際設計工作,并從理論的高度對設計工作的現代化提出一些有針對性的建議和設想。檢驗學(xué)習成果,看一看課堂學(xué)習與實(shí)際工作到底有多大距離,并通過(guò)綜合分析,找出學(xué)習中存在的不足,以便為完善學(xué)習計劃,改變學(xué)習內容與方法提供實(shí)踐依據。對我們信息管理與信息系統專(zhuān)業(yè)的學(xué)生來(lái)說(shuō),實(shí)際能力的培養至關(guān)重要,而這種實(shí)際能力的培養單靠課堂教學(xué)是遠遠不夠的,必須從課堂走向實(shí)踐。這也是一次預演和準備畢業(yè)設計工作。通過(guò)課程設計,讓我們找出自身狀況與實(shí)際需要的差距,并在以后的學(xué)習期間及時(shí)補充相關(guān)知識,為求職與正式工作做好充分的知識、能力準備,從而縮短從校園走向社會(huì )的心理轉型期。課程設計促進(jìn)了我系人才培養計劃的完善和課程設置的調整。
在一個(gè)星期的課程設計之后,我們普遍感到不僅實(shí)際動(dòng)手能力有所提高,更重要的是通過(guò)對軟件開(kāi)發(fā)流程的了解,進(jìn)一步激發(fā)了我們對專(zhuān)業(yè)知識的興趣,并能夠結合實(shí)際存在的問(wèn)題在專(zhuān)業(yè)領(lǐng)域內進(jìn)行更深入的學(xué)習。
軟件工程課程雖已結束,但我對于軟件工程的學(xué)習才剛剛開(kāi)始。我體會(huì )到項目管理的重要性,隨著(zhù)軟件規模、復雜度的不斷增加,項目開(kāi)發(fā)中更多的是協(xié)作、管理和控制。我學(xué)習到很多一般性的方法,例如:需求獲取、模塊化、計劃等等。同時(shí),我也認識到使用計算機解決實(shí)際問(wèn)題的復雜性,人們認識表達的過(guò)程不斷反復、逐步深化,軟件工程方法要提供給程序員們一種更加有效的對客觀(guān)世界問(wèn)題域進(jìn)行形式化的過(guò)程方法。
【軟件工程學(xué)習心得體會(huì )】相關(guān)文章:
軟件工程專(zhuān)業(yè)的學(xué)習計劃07-03
軟件工程學(xué)習心得體會(huì )(精選16篇)06-13
軟件工程總結09-02