第一篇:軟件工程心得體會
軟件工程心得體會
未接觸軟件工程之前一直都很想學(xué)這門課程,因?yàn)橛X得這門課很牛,是那些有工程師稱號的高手才擺弄的東西。學(xué)了一個學(xué)期的軟件工程課,終于知道了個軟件工程的大概。學(xué)的時候總覺得很抽象,理解起來好像不難,但總是摸不著頭腦一種很茫然的感覺。
曾經(jīng)以為程序就是軟件,軟件就是程序。學(xué)習(xí)這門課程第一個收獲是,知道了二者的不同之處。以前做過的一些小型的軟件比如加密軟件,我也只是在程序旁邊附上一個軟件的說明,看來已經(jīng)很接近作坊了。不過大的項(xiàng)目沒有接觸過,用軟件工程的方法還是第一次。我想也是程序的不斷復(fù)雜化導(dǎo)致了軟件危機(jī)的發(fā)生,使得人們不得不探索新的解決方法。
經(jīng)過倪老師的講解,理解了軟件工程,就是一套用于軟件的團(tuán)隊(duì)開發(fā),以提高軟件質(zhì)量和程序員工作效率為目的的規(guī)范。其核心就是,對于軟件開發(fā)的5個重要組成部分:需求分析,設(shè)計(jì),編碼,調(diào)試,維護(hù),如何組織這5個部分的工作,以及如何完成每一個工作。
吾生也有涯,而知也無涯,學(xué)習(xí)永無止境。起初,對軟件工程處于一知半解的狀態(tài),分工比較混亂。在劃分模塊后明確了各自分工,漸漸形成良性循環(huán)。
在學(xué)習(xí)過程中,知道了團(tuán)隊(duì)合作十分重要,爭議固然存在,但通過討論、協(xié)商,群策群力,在不斷磨合中能夠達(dá)成一致與默契。團(tuán)隊(duì)成員中能力各有高下,互相尊重,各取所長,不宜妄自菲薄。組長多加協(xié)調(diào),組員積極配合,才能合作愉快。
學(xué)習(xí)能力體現(xiàn)在能盡快接受新的知識,順應(yīng)變化,學(xué)為所用。上《軟件工程導(dǎo)論》這門課,我的收獲大概如下:
我們?yōu)槭裁葱枰浖こ棠??上面已?jīng)給出了一些原因。專業(yè)點(diǎn)講,軟件工程最終是為了實(shí)現(xiàn)“軟件制造業(yè)”的社會化,工業(yè)化大生產(chǎn),提高其勞動生產(chǎn)效率。只有如此,軟件業(yè)才能實(shí)現(xiàn)社會化,工業(yè)化大生產(chǎn),才能“做大做強(qiáng)”。沒有管理的設(shè)計(jì)是失敗和混亂的設(shè)計(jì),沒有設(shè)計(jì)指導(dǎo)的編程是無序的忙碌的。根據(jù)開發(fā)的軟件的規(guī)模,應(yīng)該適當(dāng)程度的運(yùn)用軟件工程化的思想,需要靈活,畢竟我們開發(fā)的軟件大多數(shù)是中小型的,大型的并不多見(我是這么認(rèn)為的)。但只要涉及人員間的交流和溝通,或多或少都要需要軟件工程才能更有效率,工作成果更穩(wěn)定。
其實(shí)開發(fā)軟件,就像是解決一個邏輯問題。想想自己平時是怎樣寫程序的。首先是要有一個想法,即我寫的這個程序是要干什么的;然后就是對要實(shí)現(xiàn)的核心功能大概構(gòu)思一種或多種實(shí)現(xiàn)方法,并從中選出一種自認(rèn)為是較好的;接下來就是將涉及的各種主要或次要功能分成各個模塊;最后就是分模塊來編碼和DEBUG。在我看來,除了第一步外,其余的步驟應(yīng)該是一個循環(huán)的過程。在編碼的過程中,你總是需要不斷地回過頭來修改原先的模塊設(shè)計(jì),甚至最初選定的實(shí)現(xiàn)算法。
具體到每一步的工作要怎樣完成,是非常靈活的,只要把握住大體的方向就行。在進(jìn)行分析,設(shè)計(jì),編碼,調(diào)試,維護(hù)這幾部分的工作的時候,最核心的就是文檔的編寫。
1.可行性分析就是關(guān)于當(dāng)前項(xiàng)目能不能干的分析結(jié)果。
2.項(xiàng)目描述這是在決定立項(xiàng)以后,對當(dāng)前項(xiàng)目的一份扼要說明。3.需求分析就是對客戶要求的功能的定義。
4.軟件設(shè)計(jì)這就是對程序的每一個模塊的詳細(xì)設(shè)計(jì)的說明文檔。5.開發(fā)日志我一直都認(rèn)為這是文檔中最有趣的部分。開發(fā)日志相當(dāng)于編碼階段的文檔,它的形式可以很隨意,主要是記錄一些在寫程序時突然萌發(fā)的靈感,或?qū)Υa的一些微小的修改,或?qū)Τ绦蚪Y(jié)構(gòu)的一些微小變動等,還要對上述這些修改變動作些說明。
6.測試分析 用于指出程序存在或潛在的缺陷和錯誤,以及程序性能的數(shù)字描述。
第二篇:軟件工程心得體會
《軟件工程》的感悟
時間飛逝,不知不覺間《軟件工程》的學(xué)習(xí)已經(jīng)過了大半了。在這將近半學(xué)期的學(xué)習(xí)中,雖然我不能說我將《軟件工程》學(xué)習(xí)的有多么的好,但是通過學(xué)習(xí),我還是受益良多。
在以前,我一直對軟件存在一些偏見或則是誤解,認(rèn)為軟件就是程序,軟件的開發(fā)就是編寫程序,只要編完了程序,一切也就ok了,而且我還片面的認(rèn)為只要我掌握了時下最新的語言和工具,那么我就能寫程序了。一個人,只要會編程,就能寫軟件,就是程序員;一個公司,只要招聘一些程序員,就能開發(fā)好的軟件產(chǎn)品。只要有幾個有經(jīng)驗(yàn)的程序員,再找些兼職的大學(xué)生,就能組成一個軟件公司。
但是通過了《軟件工程》這門課的學(xué)習(xí),使我認(rèn)識到了我以前的錯誤。軟件其實(shí)不僅僅是程序,軟件開發(fā)其實(shí)也不僅僅是編寫程序,軟件是思想在硬件上的載體和體現(xiàn),處理的是邏輯和信息。唯有對軟件和軟件的開發(fā)過程,有充分的認(rèn)識,才能更好的開發(fā)出,過程受控、質(zhì)量受控的軟件產(chǎn)品。
而且在以前,我一直以為軟件的開發(fā)其實(shí)是一件很輕松快樂的事情,只要一天坐在電腦旁敲敲鍵盤,那么一切就可以了,但是現(xiàn)在我才發(fā)現(xiàn),我以前的很多的思想是多么的膚淺可笑。編程其實(shí)是一種樂趣和苦惱共存的一項(xiàng)創(chuàng)造性活動。因?yàn)榫幊滩粌H能夠滿足我們內(nèi)心深處進(jìn)行創(chuàng)造的渴望,而且還能愉悅我們內(nèi)在的情感。
而且通過學(xué)習(xí)《軟件工程》,我還學(xué)到了很多其他的東西。比如通過學(xué)習(xí)《軟件工程》,特別是老師每次用實(shí)際的軟件現(xiàn)場的講解,為我提供了一個盡早接觸世界工作和真實(shí)項(xiàng)目的機(jī)會。讓我知道如何在以最小的成本中,訓(xùn)練自己的基本工程素質(zhì)和能力,如何激發(fā)自己的積極性等。而且通過學(xué)習(xí)《軟件工程》,還讓我認(rèn)識和培養(yǎng)了我的團(tuán)隊(duì)協(xié)作能力,特別是對于我們這些在校的學(xué)生來說,這種學(xué)習(xí)更是能讓我在以后工作中少走很多的彎路。
所以,通過《軟件工程》的學(xué)習(xí),我是真的學(xué)習(xí)到了很多有用的東西,讓我明白了很多的道理。在此我對老師的辛勤教育表示感謝,因?yàn)槭悄阕屛覍W(xué)習(xí)到了這些,是我獲益良多。
第三篇:軟件工程心得體會(推薦)
軟件工程學(xué)習(xí)心得
這個學(xué)期我學(xué)習(xí)了軟件測試這門專業(yè)課程,在學(xué)期即將結(jié)束的時候,我也對這門課程建立基本的了解。軟件測試這門課程作為軟件工程專業(yè)中一門很重要的課程,已經(jīng)在軟件領(lǐng)域占據(jù)了不可替代的角色,當(dāng)一個軟件從雛形到真正的在一臺計(jì)算機(jī)是哪個運(yùn)行的時候,誰也不能保證計(jì)算機(jī)軟件能一步到位的滿足人們的需求。所以就有了軟件測試,其目的的:第一是確認(rèn)軟件的質(zhì)量,其一方面是確認(rèn)軟件做了你所期望的事情,另一方面是確認(rèn)軟件以正確的方式來做了這個事情。
我認(rèn)為,在整個龐大的軟件工程中,不管是需求分析、架構(gòu)設(shè)計(jì),甚至是最后的debug,都會產(chǎn)生引入不管的機(jī)會,這就要去作為一個軟件測試師要掌握豐富的軟件工程原理和知識。測試的工作將會存在于整個項(xiàng)目周期,即在項(xiàng)目開始時需要各種分析調(diào)研時就開始了,尤其是在形成需求規(guī)格說明書時就有對文檔的測試需求,甚至主導(dǎo)整個項(xiàng)目的走向。
軟件測試對邏輯思維、學(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è)計(jì)爛編碼的軟件時,也是無法不低頭的,再怎么測試它也變不成優(yōu)秀的軟件。
通過課上的理論和課下的實(shí)踐,以及在網(wǎng)上和一些論壇里討論和學(xué)習(xí),使我對測試有了大致的接觸和深入的了解。以下就是我在軟件測試方面的認(rèn)識:
每項(xiàng)測試都包括三個部分,一組操作,一組預(yù)期結(jié)果和一組實(shí)際結(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)兼容測試,例如有些程序在IE6能運(yùn)行正常,到IE5下不能運(yùn)行。有些程序在WIN2000下能運(yùn)行,而到WIN98卻不能運(yùn)行。
(10)用戶的易用性測試,往往用戶的需求是不斷的變化的,而其中的一部份變化的原因,是由用戶操作上不方便引起的。
雖然課程已經(jīng)接近尾聲,我卻開始對軟件測試產(chǎn)生濃厚興趣,也增加了我對其的知識,在以后的大學(xué)課余時間中我一定會更加努力,永不放棄,世上無難事,只怕有心人!通過刻苦鉆研,相信有付出就一定有回報(bào),總有一天,我定能在計(jì)算機(jī)和軟件測試方面有所成就。
第四篇:軟件工程的心得體會(模版)
軟件工程心得
我本來可以很快完成心得體會的,回味那段美好的時光?;蛟S未來的某一天,我重新翻開這個實(shí)驗(yàn)報(bào)告,又會想到那段日子,想起組里的每個人,懷念我們的實(shí)驗(yàn)。
現(xiàn)在回想起大學(xué)的生活,真的是愧疚比高興多一點(diǎn),“浪費(fèi)了不少時間??!”。正像老師所說的,我用學(xué)強(qiáng)勢知識的大好時光浪費(fèi)在學(xué)習(xí)一些垃圾知識上。也許這是我自身的錯。如果把一個人的一生看成是一個軟件產(chǎn)品的生存周期,我想我在本科求學(xué)時,就沒有做好需求分析,以致于生命的項(xiàng)目出現(xiàn)了設(shè)計(jì)錯誤。“軟件工程的重點(diǎn)不是在編程,而是怎么你才能進(jìn)行好的管理”,這是曹老師第一次理論課里給我們樹立的第一個觀點(diǎn)。在曹老師給我們講這一口號時,我心里就在犯嘀咕:軟件工程和項(xiàng)目管理需要什么商業(yè)智慧,會編程開發(fā)不就行了么。而且自信自己也曾經(jīng)所謂的研究過幾本有關(guān)軟件工程方面的著作,對軟件工程這門課程根本就沒往心里去,只是覺得既然開了這門課,混兩個學(xué)分就得了。然而,在經(jīng)過曹老師旁征博引、引經(jīng)據(jù)典的闡釋下,我發(fā)現(xiàn)以前的觀點(diǎn)確實(shí)幼稚的可笑。確實(shí),如果一個搞技術(shù)的人不懂得商業(yè)之道,不能徹底地明白一個企業(yè)的根本目標(biāo),不能真正了解用戶的需求,那么他就不能開發(fā)正確的產(chǎn)品和正確地開發(fā)產(chǎn)品,因而所開發(fā)出來的產(chǎn)品就不能滿足客戶乃至社會需求,導(dǎo)致產(chǎn)品開發(fā)的失敗進(jìn)而使企業(yè)蒙受巨大的損失。
這門課的內(nèi)容緊貼市場,將商業(yè)的觀念灌入課堂,給我們講解在今后的職業(yè)生涯中如何賺錢,且觀點(diǎn)獨(dú)到。從小學(xué)到現(xiàn)在,這樣的內(nèi)容是汗牛充棟的書海中所沒有的,是我們傳統(tǒng)教育所接觸不到的。正因?yàn)檫@樣,它使我感覺到:我終于在課本上看到了實(shí)話,在課堂中聽到了實(shí)話。正是這種獨(dú)特的見解給了我獨(dú)特的感受,給我了一種全新的理念,給了我一次思想的洗禮。而被傳統(tǒng)教育所桎梏了這么多年的我們,正需要這樣嶄新的,符合時代的觀念來打破我們頭腦中的頑固的迂腐的思想。也許通過這門課的學(xué)習(xí),使我在以后的工作生涯中,我會在做某件事之前首先考慮這件事值不值得做,有沒有商業(yè)利益,怎樣才能將商業(yè)利益最大化。當(dāng)然我所說的事情是指商業(yè)上的事情,不是生活中的每一件事情。但是我也明白了生活中不能只有商業(yè)這個概念,還要有親情,愛情,友情。好朋友在生活的道路上是不可少的。所以我會在今后的人生道路上,職業(yè)生涯中無形的堅(jiān)持這一準(zhǔn)則。
在實(shí)驗(yàn)過程中,我做的是軟件設(shè)計(jì)的需求分析和總體設(shè)計(jì)階段,在這以前倒是也做過類似的課題,但是沒有這次做的這么嚴(yán)格,以前就是做個東西能運(yùn)行就行了,但是現(xiàn)在不同,不僅僅似能運(yùn)行的問題,許多商業(yè)的因素我們必須考慮,例如:軟件設(shè)計(jì)的是不是符合用戶的要求,即使符合用戶要求,那么我們是否能在軟件在完成之后讓用戶滿意的用,而不是讓產(chǎn)品成為玻璃球,一碰就碎,我們的設(shè)計(jì)是否為以后的維護(hù)做了很好的鋪墊,等等。這些我們必須考慮,所以通過這次的實(shí)驗(yàn),我學(xué)到的不止是怎么進(jìn)行一個軟件工程,也使我學(xué)到了在很多地方學(xué)不到的知識。在這個實(shí)驗(yàn)以前,我總是認(rèn)為只要自己努力做,沒有干不成的事情?,F(xiàn)在想起來那時的想法是多么幼稚,在某個領(lǐng)域不是那個人或是那個天才能干了的,只有通過大家的努力,眾志成城,才能很好的完成每一件事情。這不只是在做軟件工程上,在其它方面也是一樣的。
原來的我,寫程序、開發(fā)軟件的觀點(diǎn)思路有偏激的趨勢,總將目光局限在某些技術(shù)和功能的實(shí)現(xiàn)上,失去了宏觀的角度。而現(xiàn)在的我,有了新的理念作支撐,我將不遺余力地將這些新方法、新思路貫徹到今后的學(xué)習(xí)和工作中去。
軟件工程已經(jīng)結(jié)束了,但是我覺得這并沒有結(jié)束,這是一個好的開端,因?yàn)樗艚o里我們的是改變了的思維方式,做事的方法,和對事物的不同的理解??赡苓@只是我人生的一個小小的經(jīng)歷,但是我覺得它給我在以后的道路上做了一個標(biāo)記,使我知道怎么做才是對的,怎么做才能做好。最后讓我用一句話結(jié)尾吧,“夢已經(jīng)結(jié)束,但是夢還會開始”。
第五篇:軟件工程學(xué)習(xí)心得體會
軟件工程學(xué)習(xí)心得體會范文
我們從一些事情上得到感悟后,寫一篇心得體會,記錄下來,這樣可以幫助我們總結(jié)以往思想、工作和學(xué)習(xí)。應(yīng)該怎么寫才合適呢?以下是小編為大家整理的軟件工程學(xué)習(xí)心得體會范文,僅供參考,歡迎大家閱讀。
軟件工程學(xué)習(xí)心得體會范文1學(xué)習(xí)了這門課程,還有老師們的多元化教課,不但讓我從理論上掌握軟件工程,還有從不同的實(shí)例,讓理論和實(shí)踐得到了很好的結(jié)合。整一個學(xué)期下來,總的來說還是學(xué)到了很多東西的,有很多地方是值得肯定的,其實(shí)在我看來,軟件工程與其說是一門課程,不如說是一門思想。是一個如何去分析和處理問題的過程,應(yīng)該說其范疇已經(jīng)遠(yuǎn)遠(yuǎn)不止局限于該門課程,成為了一個綜合的一個能夠解決問題的思想集合。
整本書的內(nèi)容邏輯很清晰明了,由淺入深循序漸進(jìn),首先我就大概描述下我們所學(xué)的內(nèi)容,第一章是從整體分析軟件工程這門學(xué)科的發(fā)展和所處的社會環(huán)境,接著后面的幾章深入分析了軟件開放過程和模式、軟件項(xiàng)目管理、計(jì)算機(jī)工程、需求分析、結(jié)構(gòu)化分析建模以及基于UML面向?qū)ο蠓治鼋5取=又揖驮敿?xì)介紹下我對這門課程知識點(diǎn)的理解概括:
軟件:軟件是能夠完成預(yù)定功能和性能的可執(zhí)行的計(jì)算機(jī)程序和使程序正常執(zhí)行所需要的數(shù)據(jù),加上描述程序的操作和使用的文檔。
軟件的特征:①軟件是一種邏輯實(shí)體,而不是具體的物理實(shí)體,因而它具有抽象性。②軟件是通過人們的智力活動,把知識與技術(shù)轉(zhuǎn)化成信息的一種產(chǎn)品。③軟件成為產(chǎn)品后,其生產(chǎn)只是簡單的拷貝,不同于硬件制造。④維護(hù)過程比硬件復(fù)雜的多,甚至?xí)l(fā)新的錯誤。軟件危機(jī):指的是軟件開發(fā)和維護(hù)過程中遇到的一系列嚴(yán)重問題。出現(xiàn)軟件危機(jī)的原因:①軟件維護(hù)費(fèi)用急劇上升,直接威脅計(jì)算機(jī)應(yīng)用的擴(kuò)大。②軟件生產(chǎn)技術(shù)進(jìn)步緩慢。軟件工程是指導(dǎo)計(jì)算機(jī)軟件開發(fā)和維護(hù)的工程學(xué)科。軟件生存周期:一個軟件從定義到開發(fā)、使用和維護(hù),直到最終被棄用,要經(jīng)歷一個漫長的時期,通常把軟件經(jīng)歷的這個漫長的時期稱為生存周期。
軟件的生存周期可分為八個階段:①問題定義;②可行性研究;③需求分析;④總體(概要)設(shè)計(jì);⑤詳細(xì)設(shè)計(jì);⑥編碼與單元測試;⑦綜合測試;⑧軟件維護(hù);
瀑布模式:是傳統(tǒng)的軟件開發(fā)模式,其中的“瀑布”是對這個模式的形象表達(dá),由山頂傾瀉下來的水,自頂向下、逐漸細(xì)化。其特點(diǎn)是:線性化過程;分為分析、設(shè)計(jì)、編碼、集成等幾個階段,并且各階段逐級推進(jìn),不允許跨越。里程碑管理;階段評審;文檔驅(qū)動;簡潔便于工程應(yīng)用的線性化過程步驟,并可以通過里程碑管理機(jī)制而使項(xiàng)目進(jìn)程量化。其明顯的優(yōu)點(diǎn)就是沒個階段結(jié)束前都要對所完成的階段成果進(jìn)行評審,這使得軟件的錯誤能夠在個階段內(nèi)盡早發(fā)現(xiàn)并盡早解決,總的來說瀑布模式具有良好的質(zhì)量保證機(jī)制,有很強(qiáng)的生命力。
原型進(jìn)化模式:對軟件進(jìn)行直接模擬或仿真,只需要分析需求框架后進(jìn)行原型創(chuàng)建,再對原型系統(tǒng)進(jìn)行逐步細(xì)化與完善,通過版本更新逐步滿足用戶對于軟件的多方面需要。
增量模式:開發(fā)過程有三個任務(wù)域,分別是設(shè)計(jì)結(jié)構(gòu)、開發(fā)構(gòu)件和集成系統(tǒng),它既有完善的工程管理機(jī)制,又能適應(yīng)用戶需求變更,有利于質(zhì)量的監(jiān)控,并且各局部基于構(gòu)件構(gòu)造,有利于逐步構(gòu)建與完善;由于先交付核心構(gòu)件可利于降低項(xiàng)目的技術(shù)風(fēng)險。
螺旋模式:是一種可較好的規(guī)避開發(fā)風(fēng)險過程的模式,項(xiàng)目是基于任務(wù)的螺旋式推進(jìn),每個螺旋由內(nèi)之外分別是需求分析、軟件設(shè)計(jì)、系統(tǒng)集成、驗(yàn)證與交付。
軟件開發(fā)的整個過程:①需要項(xiàng)目團(tuán)隊(duì),組建優(yōu)秀的團(tuán)隊(duì)可以開發(fā)出更搞質(zhì)量的軟件產(chǎn)品。任務(wù)開發(fā)團(tuán)隊(duì)要求小而精,成員大多在8人以內(nèi),主要成員有項(xiàng)目負(fù)責(zé)人、開發(fā)人員、資料管理員和軟件測試員。②項(xiàng)目計(jì)劃是為了使軟件開發(fā)各項(xiàng)工作有秩序地進(jìn)行,包括任務(wù)分配和基于里程碑的進(jìn)度安排,甘特圖和任務(wù)網(wǎng)絡(luò)圖是用來描述進(jìn)度計(jì)劃的工具。項(xiàng)目計(jì)劃書可以作為軟件開發(fā)的工作指南。③項(xiàng)目成本估算,由于項(xiàng)目有來自各方面的成本包括工資開支、場地費(fèi)、差旅費(fèi)、設(shè)備費(fèi)和資料費(fèi)等,但是軟件主要是對人力成本的估算,常用的方法有程序代碼成本估算法等。④軟件風(fēng)險管理包括很多不確定的風(fēng)險因素,如計(jì)劃風(fēng)險、管理風(fēng)險、需求風(fēng)險、技術(shù)風(fēng)險、人員風(fēng)險、產(chǎn)品風(fēng)險、用戶風(fēng)險和商業(yè)風(fēng)險等等,而風(fēng)險管理的主要任務(wù)是:風(fēng)險識別、風(fēng)險評估、和風(fēng)險防范。⑤軟件文檔管理,軟件文檔是工程模式軟件開發(fā)的成果體現(xiàn),包括技術(shù)文檔、管理文檔和用戶文檔。⑥軟件配置管理與軟件質(zhì)量管理,包括配置規(guī)劃、軟件變更控制、軟件版本控制和質(zhì)量控制計(jì)劃。
計(jì)算機(jī)系統(tǒng)由硬件、軟件、數(shù)據(jù)資源、網(wǎng)絡(luò)資源、使用系統(tǒng)的人等諸多元素。有三種典型的計(jì)算機(jī)體系結(jié)構(gòu):①主機(jī)結(jié)構(gòu),主機(jī)集中了全部智能,并依靠終端接口與外部設(shè)備連接。②Client/Server結(jié)構(gòu),智能分布于服務(wù)器與客戶機(jī),并依靠網(wǎng)絡(luò)連接成系統(tǒng),其中,服務(wù)器處于核心位置,提供被動核心服務(wù);客戶機(jī)處于邊緣位置,可主動訪問服務(wù)器,尋求服務(wù)支持。③Browser/server結(jié)構(gòu),可適應(yīng)互聯(lián)網(wǎng)遠(yuǎn)程交互的特殊結(jié)構(gòu),基于Web服務(wù)器構(gòu)建。
需求分析:系統(tǒng)開發(fā)前期需求分析很重要,它是為了有效解決用戶問題的需要進(jìn)行的一項(xiàng)工程活動,所需要考慮的需求問題是功能需求、數(shù)據(jù)需求、性能需求和接口需求,開發(fā)者承擔(dān)分析任務(wù),核心是用戶。其步驟有三個:①獲取客戶需求,客戶泛指某個人或機(jī)構(gòu)部門等,一般方法是調(diào)查,包括訪談、座談、問卷、跟班和收集資料,需求規(guī)約可表達(dá)用戶的軟件價值。②建立需求模型,它是用戶需求的圖解,一些常用的模型有:業(yè)務(wù)樹圖、用例圖、活動圖。分別用于結(jié)構(gòu)化需求建模、系統(tǒng)業(yè)務(wù)舉例和反映系統(tǒng)工作流程。③進(jìn)行需求驗(yàn)證,要驗(yàn)證的主要內(nèi)容有:有效性驗(yàn)證、一致性驗(yàn)證、完整性驗(yàn)證、現(xiàn)實(shí)性驗(yàn)證和可檢驗(yàn)性驗(yàn)證。結(jié)構(gòu)化分析建模:它是建立在需求規(guī)約基礎(chǔ)上的,對軟件問題進(jìn)行全面解說,包括四個方面:①數(shù)據(jù)建模,它與數(shù)據(jù)庫設(shè)計(jì)密切相關(guān),ER圖涉及實(shí)體、關(guān)系、屬性等圖形元素,在業(yè)務(wù)層面建立數(shù)據(jù)庫概念模型,一般用于前期的建模構(gòu)想。②功能建模,是對系統(tǒng)數(shù)據(jù)加工的圖解,數(shù)據(jù)流程圖是常用的建模工具,涉及數(shù)據(jù)接口、數(shù)據(jù)處理、數(shù)據(jù)流、數(shù)據(jù)存儲等圖形元素,用于描述系統(tǒng)數(shù)據(jù)加工細(xì)節(jié)。③行為建模,行為模型用于說哦名軟件系統(tǒng)與環(huán)境的交互,狀態(tài)轉(zhuǎn)換圖常用的軟件行為建模工具涉及狀態(tài)、事件等圖形元素。⑤數(shù)據(jù)字典,是用于定義軟件的元素,使軟件元素獲得嚴(yán)肅的、詳密的、精確的規(guī)格說明。需求分析模型中的數(shù)據(jù)、功能、行為等諸多方面的元素,都有必要通過數(shù)據(jù)字典給予細(xì)節(jié)說明,以達(dá)到對系統(tǒng)較完整全面的規(guī)格定義。
基于UML對象面向?qū)ο蠓治鼋#篣ML是統(tǒng)一建模語言,有統(tǒng)一的語法、語義和語用規(guī)則,其建模過程的特點(diǎn)是:用例驅(qū)動、以構(gòu)架為中心和增量迭代,通過包實(shí)現(xiàn)對模型的有效的一體化管理。包括三部分:①用例建模,它面向用戶需求的,能夠反映系統(tǒng)的用戶價值,用例圖的基本元素有用例、參與者、交流;用例之間有泛化、延伸和包含關(guān)系。②活動建模,活動圖用于描述系統(tǒng)動態(tài)過程,主要圖形元素有:活動、轉(zhuǎn)換、起點(diǎn)、終點(diǎn)、判斷、并發(fā)、同步、泳道等??擅枋龈邔訕I(yè)務(wù)級活動,涉及整個業(yè)務(wù)流程,針對每個用例活動建模,反映用例內(nèi)部活動細(xì)節(jié)。③類分析建模,這里就只考慮實(shí)體類,實(shí)體類所代表的數(shù)據(jù)相互之間通常有一定的關(guān)系,依靠這種關(guān)系可形成有組織的程序數(shù)據(jù)結(jié)構(gòu)。實(shí)體類之間的主要數(shù)據(jù)關(guān)系有:關(guān)聯(lián)、聚類、泛化。
接下來我就簡單說下我上這門課的簡單的心得體會,我們是大四的學(xué)生了,也只有這個學(xué)期有課了,剛開始課表安排出來的時候覺得挺意外的,只有前八周有課,當(dāng)時我還是有點(diǎn)小感動的,大四事情很多,有要考研的和工作的,大家也都有各自的事情,如果有16周的課,那么每周課不是特別多,但是時間特別分散,也不能集中某段時間去做什么事情。但是相對于老師的壓力也有,課程壓縮了相當(dāng)于每節(jié)課的教學(xué)任務(wù)大大增加了,在加上有些假期沖掉課,就感覺我們好像上課學(xué)不到什么東西,也只是一些關(guān)鍵的和考試掛鉤的才重點(diǎn)講,完全沒有擴(kuò)展的時間和空間了。但是總的來說,學(xué)校開了這門課,我們上了這門課,總是學(xué)到了點(diǎn)東西的,不可能明明上了軟件工程這門課,卻像沒上一樣什么都不懂。在上課的時候我還是很認(rèn)真地去聽老師所講述的內(nèi)容的,我覺得他的思想和我一向而來的培養(yǎng)計(jì)算機(jī)學(xué)生綜合素質(zhì)的理解還是在一定程度上不謀而合了,所謂的需求獲取,那就是一個談判,辯論,交流的過程,已經(jīng)不是單純的編編程序就能解決的問題了。從我所看到的聽到的來說,我最怕的就是計(jì)算機(jī)系的學(xué)生被別人說成是個帶著厚眼鏡的,只能夠在電腦前編編程序的,在交際場上不知道說什么而一個字都說不出來的人。我覺得這樣的人進(jìn)入社會之后是沒有什么前途的,起碼他們?nèi)狈α伺c人溝通交流的能力。而這門課程在一定程度上給了我們這些學(xué)生一個機(jī)會來鍛煉自己在另一方面的能力,設(shè)想一下,一個又有技術(shù)又能夠與人交流合作的人所取得的成就自然要比一個單單只會編程序的人要大得多。其次,這門課程教給了我們在完成一個實(shí)際項(xiàng)目時的一般程序及過程,我認(rèn)為這是一份非常具有實(shí)際意義的教學(xué)內(nèi)容。當(dāng)我們在畢業(yè)之后,這是我們實(shí)際要運(yùn)用的一項(xiàng)非常有用的技能,而且不僅僅局限于軟件工程的范疇,我們即使是從事與其它行業(yè),不也是要從需求獲取開始,一直有條有理地到最后成品的出爐嗎?應(yīng)該說這就是這門課的價值所在。無論是在上課,還是在學(xué)生會里面做學(xué)生工作,我都深深地感覺到,技術(shù)性的工作就好比變魔術(shù),其實(shí)原理是非常簡單的,甚至可以說簡單的可笑,但是當(dāng)你就是做出這么一個簡單的東西出來之后,一些外行們有時候會用崇拜的眼光看著你,覺得你很厲害,很高深莫測。但是制作的過程他們卻不知道,也許知道之后他們只是會啞然失笑,原來這個東西的制作過程是如此的簡單。這個可以說就是技術(shù)的魅力了,而作為需求獲取及之后的一系列過程則是類似于魔術(shù)揭秘的過程,但是作為這個秘密我們并不需要一揭到底,至于揭的程度如何那就是我們那就是我們學(xué)出的程度如何了,我們要讓對方知道我們在做什么?以及如何去做?這些東西需要我們以一定的技巧敘述出來,所起到的作用就是能夠讓對方了解自己的進(jìn)度,卻又能夠不讓對方來干涉自己的工作過程。因?yàn)槲覀兪羌夹g(shù)員,對方只是外行,即使對方知道了這個魔術(shù)的操作過程,也并不代表他們就能夠向變著魔術(shù)的我們來隨便修改這個魔術(shù)的變法,況且我們能夠用不同的過程來得出一個同樣的結(jié)果,這個過程的得出的主動權(quán)如何掌握在我們的手上,就看我們?nèi)绾我愿呙鞯姆绞絹斫议_這個魔術(shù)的謎底了。當(dāng)然了,在純粹的理論上,我覺得開設(shè)這樣一門課程是很成功的。但是畢竟現(xiàn)實(shí)里有太多的不確定的因素。最重要的因素就是授課的老師和聽課的學(xué)生。這兩個可以說是這門課成與敗的決定性的因素。
作為我們學(xué)生來說,應(yīng)該負(fù)起比較主要的責(zé)任。在大學(xué)里有了太多的基礎(chǔ)課程,基礎(chǔ)課程大多都比較枯燥無味,也許在第一個學(xué)期里我們還能夠保持著新鮮感,但是在6學(xué)期之后,可以說再有新鮮感就是一件比較困難的事情了,我們都已經(jīng)開始變得遲鈍了。其次的,沒有認(rèn)識到這門課程的價值。這門課的價值我已經(jīng)在上面說過了,是不言而喻的。但是并不是每個同學(xué)畢業(yè)之后都回從事計(jì)算機(jī)行業(yè),也不是每個同學(xué)都知道這門課程的意義已經(jīng)不僅僅局限于計(jì)算機(jī)這個范疇?;蛟S有些人覺得反正以后不是這個發(fā)展方向,也就不在乎這個課程吧。我個人覺得這門課確實(shí)是挺好的,如果認(rèn)真學(xué)必能學(xué)到很多東西,動手實(shí)踐能力和從整個大體分析系統(tǒng)開發(fā)的邏輯性思維也會明顯增強(qiáng),不管以后從事哪個方面的工作,這對以后來說都是一筆很大的隱性財(cái)富。說到我自己對這么課的學(xué)習(xí),還是有點(diǎn)愧疚的,前面四周我每周每節(jié)課都去上的,并且上課也認(rèn)真聽,一邊聽老師講課一邊自己看書本的介紹,但是后來我上這門課的次數(shù)就降低了,因?yàn)橛X得時間很緊吧,而且老師上課的節(jié)奏我個人覺得有點(diǎn)慢,我都可以自己預(yù)習(xí)看到后面去了,但是這門課我還是每周至少上一節(jié)課的,雖然我早上7點(diǎn)多一點(diǎn)就出門,在自習(xí)室,但是有時候明明知道到了上課的時間,明明上課的地方離自習(xí)的地方不遠(yuǎn)也不太想去。我記得有次上課時候老師生氣了,說來上課的人少,我仔細(xì)環(huán)顧了下四周發(fā)現(xiàn)確實(shí)人很少,稀稀疏疏的分散著,看起來確實(shí)不太舒服,讓我不得不反思了,這大學(xué)的教育到底怎么了,怎么到了大四大家都不來上課,雖然我不是每節(jié)課都來,但是我還是時不時來上課的,可能是比較浮躁吧,快畢業(yè)了,覺得上課學(xué)不到什么實(shí)際的東西,要么實(shí)際一點(diǎn)好好考研繼續(xù)深造,要么去培訓(xùn)增強(qiáng)實(shí)踐能力這樣才能較好的為找個滿意的工作做好鋪墊。
《軟件工程》課程既強(qiáng)調(diào)基本概念和基本知識的理解和掌握,又側(cè)重軟件項(xiàng)目的分析、設(shè)計(jì)、實(shí)現(xiàn)和維護(hù)的基本技能。比較注意“點(diǎn)”和“面”的結(jié)合。我還是蠻喜歡這門課的,通過對這門課的學(xué)習(xí)讓我意識到理論學(xué)習(xí)很重要,實(shí)踐更重要,實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn),只有將理論與實(shí)際結(jié)合,才更能發(fā)揮我們所學(xué)的知識的作用,更能直接的創(chuàng)造效益,社會和國家做出貢獻(xiàn)。
軟件工程學(xué)習(xí)心得體會范文2軟件工程心得體會未接觸軟件工程之前一直都很想學(xué)這門課程,因?yàn)橛X得這門課很牛,是那些有工程師稱號的高手才擺弄的東西。學(xué)了一個學(xué)期的軟件工程課,終于知道了個軟件工程的大概。學(xué)的時候總覺得很抽象,理解起來好像不難,但總是摸不著頭腦一種很茫然的感覺。曾經(jīng)以為程序就是軟件,軟件就是程序。學(xué)習(xí)這門課程第一個收獲是,知道了二者的不同之處。以前做過的一些小型的軟件比如加密軟件,我也只是在程序旁邊附上一個軟件的說明,看來已經(jīng)很接近作坊了。不過大的項(xiàng)目沒有接觸過,用軟件工程的方法還是第一次。我想也是程序的不斷復(fù)雜化導(dǎo)致了軟件危機(jī)的發(fā)生,使得人們不得不探索新的解決方法。
經(jīng)過倪老師的講解,理解了軟件工程,就是一套用于軟件的團(tuán)隊(duì)開發(fā),以提高軟件質(zhì)量和程序員工作效率為目的的規(guī)范。其核心就是,對于軟件開發(fā)的5個重要組成部分:需求分析,設(shè)計(jì),編碼,調(diào)試,維護(hù),如何組織這5個部分的工作,以及如何完成每一個工作。吾生也有涯,而知也無涯,學(xué)習(xí)永無止境。起初,對軟件工程處于一知半解的狀態(tài),分工比較混亂。
在劃分模塊后明確了各自分工,漸漸形成良性循環(huán)。在學(xué)習(xí)過程中,知道了團(tuán)隊(duì)合作十分重要,爭議固然存在,但通過討論、協(xié)商,群策群力,在不斷磨合中能夠達(dá)成一致與默契。團(tuán)隊(duì)成員中能力各有高下,互相尊重,各取所長,不宜妄自菲薄。組長多加協(xié)調(diào),組員積極配合,才能合作愉快。學(xué)習(xí)能力體現(xiàn)在能盡快接受新的知識,順應(yīng)變化,學(xué)為所用。
上《軟件工程導(dǎo)論》這門課,我的收獲大概如下:我們?yōu)槭裁葱枰浖こ棠?上面已經(jīng)給出了一些原因。專業(yè)點(diǎn)講,軟件工程最終是為了實(shí)現(xiàn)“軟件制造業(yè)”的社會化,工業(yè)化大生產(chǎn),提高其勞動生產(chǎn)效率。只有如此,軟件業(yè)才能實(shí)現(xiàn)社會化,工業(yè)化大生產(chǎn),才能“做大做強(qiáng)”。沒有管理的設(shè)計(jì)是失敗和混亂的設(shè)計(jì),沒有設(shè)計(jì)指導(dǎo)的編程是無序的忙碌的。根據(jù)開發(fā)的軟件的規(guī)模,應(yīng)該適當(dāng)程度的運(yùn)用軟件工程化的思想,需要靈活,畢竟我們開發(fā)的軟件大多數(shù)是中小型的,大型的并不多見(我是這么認(rèn)為的)。但只要涉及人員間的交流和溝通,或多或少都要需要軟件工程才能更有效率,工作成果更穩(wěn)定。
其實(shí)開發(fā)軟件,就像是解決一個邏輯問題。想想自己平時是怎樣寫程序的。首先是要有一個想法,即我寫的這個程序是要干什么的;然后就是對要實(shí)現(xiàn)的核心功能大概構(gòu)思一種或多種實(shí)現(xiàn)方法,并從中選出一種自認(rèn)為是較好的;接下來就是將涉及的各種主要或次要功能分成各個模塊;最后就是分模塊來編碼和DEBUG。在我看來,除了第一步外,其余的步驟應(yīng)該是一個循環(huán)的過程。在編碼的過程中,你總是需要不斷地回過頭來修改原先的模塊設(shè)計(jì),甚至最初選定的實(shí)現(xiàn)算法。具體到每一步的工作要怎樣完成,是非常靈活的,只要把握住大體的方向就行。在進(jìn)行分析,設(shè)計(jì),編碼,調(diào)試,維護(hù)這幾部分的工作的時候,最核心的就是文檔的編寫。
1.可行性分析就是關(guān)于當(dāng)前項(xiàng)目能不能干的分析結(jié)果。
2.項(xiàng)目描述這是在決定立項(xiàng)以后,對當(dāng)前項(xiàng)目的一份扼要說明。
3.需求分析就是對客戶要求的功能的定義。
4.軟件設(shè)計(jì)這就是對程序的每一個模塊的詳細(xì)設(shè)計(jì)的說明文檔。
5.開發(fā)日志我一直都認(rèn)為這是文檔中最有趣的部分。開發(fā)日志相當(dāng)于編碼階段的文檔,它的形式可以很隨意,主要是記錄一些在寫程序時突然萌發(fā)的靈感,或?qū)Υa的一些微小的修改,或?qū)Τ绦蚪Y(jié)構(gòu)的一些微小變動等,還要對上述這些修改變動作些說明。
6.測試分析用于指出程序存在或潛在的缺陷和錯誤,以及程序性能的數(shù)字描述。
軟件工程學(xué)習(xí)心得體會范文3在本學(xué)期的軟件工程課程的學(xué)習(xí)中,我們學(xué)習(xí)了十一章的內(nèi)容。第一章軟件與軟件工程的概念,這一章主要講解的是一些概念性和基礎(chǔ)性的內(nèi)容,例如軟件的概念、特性,軟件危機(jī)的主要表現(xiàn),軟件工程的概念以及軟件生存期、典型生存期模型等等。第二章軟件工程方法與工具,這一章主要對軟件工程方法進(jìn)行介紹,包括三種方法:傳統(tǒng)方法、面向?qū)ο蠓椒?、形式化方法。還引出了工具UML。第三章軟件需求獲取與結(jié)構(gòu)化分析方法,本章詳細(xì)介紹了需求獲取與需求分析階段的任務(wù)以及結(jié)構(gòu)化分析方法,畫分層的數(shù)據(jù)流圖、E-R圖以及狀態(tài)圖式本節(jié)的重點(diǎn)。第四章結(jié)構(gòu)化分析方法,這一章重點(diǎn)講解了使用變換型映射方法和事務(wù)型映射方法生成初始的模塊結(jié)構(gòu)以及模塊結(jié)構(gòu)的改進(jìn)。第五章編碼,這一章重點(diǎn)講解了編碼的風(fēng)格及規(guī)范,還告訴我們編碼規(guī)范說帶來的好處,并告誡我們將來一點(diǎn)要形成好的編碼風(fēng)格。第六章軟件測試方法,本章講解了軟件測試相關(guān)的概念及重要性,軟件測試與開發(fā)各個階段的關(guān)系;還介紹了白盒測試技術(shù)以及黑河測試技術(shù)。第七章統(tǒng)一建模語言UML概述,本章詳細(xì)介紹了UML的基本模式、事物、關(guān)系及建模時用到的各種圖進(jìn)行了介紹。第八章面向?qū)ο蠓治?,這一章主要講解了面向?qū)ο蠓治龅?種模型,包括功能模型、靜態(tài)模型和動態(tài)模型。第九章軟件體系結(jié)構(gòu)與設(shè)計(jì)模式,本章對軟件體系結(jié)構(gòu)的基本概念、典型風(fēng)格等進(jìn)行了講解。第十章面向?qū)ο笤O(shè)計(jì),本章的重點(diǎn)是對面向?qū)ο蠓治鰰r建立的對象模型進(jìn)行調(diào)整和細(xì)化。第十一章軟件維護(hù),本章主要介紹軟件維護(hù)的任務(wù)、軟件維護(hù)活動以及軟件維護(hù)方法進(jìn)行了介紹。
要學(xué)習(xí)軟件工程,學(xué)會如何系統(tǒng)的思考,以及養(yǎng)成良好的編碼習(xí)慣,想學(xué)好軟件工程,就必須知道軟件工程的目標(biāo)、過程和原則:軟件工程目標(biāo):生產(chǎn)具有正確性、可用性以及開銷合宜的產(chǎn)品。正確性指軟件產(chǎn)品達(dá)到預(yù)期功能的程度。可用性指軟件基本結(jié)構(gòu)、實(shí)現(xiàn)及文檔為用戶可用的程度。開銷合宜是指軟件開發(fā)、運(yùn)行的整個開銷滿足用戶要求的程度。這些目標(biāo)的實(shí)現(xiàn)不論在理論上還是在實(shí)踐中均存在很多待解決的問題,它們形成了對過程、過程模型及工程方法選取的`約束。
軟件工程過程:生產(chǎn)一個最終能滿足需求且達(dá)到工程目標(biāo)的軟件產(chǎn)品所需要的步驟。軟件工程過程主要包括開發(fā)過程、運(yùn)作過程、維護(hù)過程。它們覆蓋了需求、設(shè)計(jì)、實(shí)現(xiàn)、確認(rèn)以及維護(hù)等活動。需求活動包括問題分析和需求分析。問題分析獲取需求定義,又稱軟件需求規(guī)約。需求分析生成功能規(guī)約。設(shè)計(jì)活動一般包括概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)。概要設(shè)計(jì)建立整個軟件系統(tǒng)結(jié)構(gòu),包括子系統(tǒng)、模塊以及相關(guān)層次的說明、每一模塊的接口定義。詳細(xì)設(shè)計(jì)產(chǎn)生程序員可用的模塊說明,包括每一模塊中數(shù)據(jù)結(jié)構(gòu)說明及加工描述。實(shí)現(xiàn)活動把設(shè)計(jì)結(jié)果轉(zhuǎn)換為可執(zhí)行的程序代碼。確認(rèn)活動貫穿于整個開發(fā)過程,實(shí)現(xiàn)完成后的確認(rèn),保證最終產(chǎn)品滿足用戶的要求。維護(hù)活動包括使用過程中的擴(kuò)充、修改與完善。伴隨以上過程,還有管理過程、支持過程、培訓(xùn)過程等。
軟件工程的原則是指圍繞工程設(shè)計(jì)、工程支持以及工程管理在軟件開發(fā)過程中必須遵循的原則。
我們學(xué)習(xí)了詳細(xì)設(shè)計(jì)的方法,其原則是過程描述是否易于理解、復(fù)審和維護(hù),進(jìn)而過程描述能夠自然地轉(zhuǎn)換成代碼,并保證詳細(xì)設(shè)計(jì)與代碼完全一致。包括程序流程圖、N-S圖、PAD圖、HIPO圖
程序流程圖:程序流程圖又稱之為程序框圖,它是軟件開發(fā)者最熟悉的一種算法表達(dá)工具。它獨(dú)立于任何一種程序設(shè)計(jì)語言,比較直觀和清晰地描述過程的控制流程,易于學(xué)習(xí)掌握。在流程圖中只能使用下述的五種基本控制結(jié)構(gòu):順序型;選擇型;while型循環(huán);until型循環(huán);多情況型選擇。
N-S圖:一種符合結(jié)構(gòu)化程序設(shè)計(jì)原則的圖形描述工具,稱為盒圖,又稱為N-S圖。在N-S圖中,為了表示五種基本控制結(jié)構(gòu),規(guī)定了五種圖形構(gòu)件。順序型;選擇型;WHILE重復(fù)型;UNTIL重復(fù)型;多分支選擇型。
PAD圖:它是用結(jié)構(gòu)化程序設(shè)計(jì)思想表現(xiàn)程序邏輯結(jié)構(gòu)的圖形工具。PAD也設(shè)置了五種基本控制結(jié)構(gòu)的圖示,并允許遞歸使用。
HIPO圖:HIPO圖是由一組IPO圖加一張HC圖組成。它是美國IBM公司在軟件設(shè)計(jì)中使用的主要表達(dá)工具。
HC圖既是層次圖,用于表示軟件的分層結(jié)構(gòu)。HC圖中的每一個模塊,均可用一張IPO圖來描述。IPO圖由輸入、處理和輸出三個框組成,需要時還可以增加一個數(shù)據(jù)文件框,這種圖形的優(yōu)點(diǎn),是能夠直觀地顯示輸入—處理—輸出三者之間的聯(lián)系。
還有測試方法:按照測試過程是否在實(shí)際應(yīng)用環(huán)境中來分,有靜態(tài)分析與動態(tài)測試。測試方法有分析方法(包括靜態(tài)分析法與白盒法)與非分析方法(稱黑盒法)。
靜態(tài)分析技術(shù):不執(zhí)行被測軟件,可對需求分析說明書、軟件設(shè)計(jì)說明書、源程序做結(jié)構(gòu)檢查、流程分析、符號執(zhí)行來找出軟件錯誤。
動態(tài)測試技術(shù):當(dāng)把程序作為一個函數(shù),輸入的全體稱為函數(shù)的定義域,輸出的全體稱為函數(shù)的值域,函數(shù)則描述了輸入的定義域與輸出值域的關(guān)系。
還學(xué)習(xí)了其他很多工具、語言、方法等,雖然不是都學(xué)得很透徹,但我相信在今后的學(xué)習(xí)中一定會慢慢的完善的。
軟件工程對于初學(xué)者來說,知識基礎(chǔ)較薄弱,對一些應(yīng)用操作、概念、工具方法等理解起來較為困難,要能從整體概念上較好地理解和把握、學(xué)好軟件工程,不是僅僅把幾本專業(yè)書籍細(xì)致地看幾遍,然后上機(jī)練習(xí)幾次就可以成功,學(xué)習(xí)過程中要注意多看多練要注意結(jié)合實(shí)際,更要多思考,面對錯誤不要一范就問,要嘗試自己去解決。但是還要注意什么都學(xué),肯定是什么都學(xué)不透的,要集中精力打攻堅(jiān)戰(zhàn),學(xué)習(xí)軟件工程首先要明白自己的學(xué)習(xí)目標(biāo)究竟是什么,根據(jù)自己的實(shí)際工作出發(fā),有針對性的在相應(yīng)的學(xué)習(xí)方向上進(jìn)行提高,制定出詳細(xì)的學(xué)習(xí)規(guī)劃。還要注意與其他科目的相輔相成,就像我們在學(xué)習(xí)面向?qū)ο蠓治龅臅r候要結(jié)合大一學(xué)習(xí)的面向?qū)ο蠹捌浞椒▽W(xué)這一專業(yè)科目進(jìn)行研究拓展;在學(xué)習(xí)語言時,要看看與C語言的聯(lián)系,多思多想,把從各個科目學(xué)到的知識通匯貫通。
在軟件工程的學(xué)習(xí)中,我了解到了軟件并非是一些代碼這么簡單,在開發(fā)軟件的過程中,編寫代碼的工作量其實(shí)只占不到所有工程量的30%,而后期的管理和維護(hù)更是占了60%到80%之多。一個完整的項(xiàng)目規(guī)劃須包括,軟件的定義,可行性分析報(bào)告,項(xiàng)目開發(fā)計(jì)劃,軟件需求說明書,概要設(shè)計(jì)說明書,詳細(xì)設(shè)計(jì)說明書,用戶操作手冊,測試計(jì)劃,測試分析報(bào)告,開發(fā)進(jìn)度報(bào)告,項(xiàng)目開發(fā)總結(jié)報(bào)告,軟件維護(hù)手冊,軟件問題報(bào)告,軟件修改報(bào)告,等多個文檔,每個文檔都要上級驗(yàn)收審查,而文檔數(shù)量眾多,要做好這點(diǎn)真的不是很容易,而恰恰寫好文檔正能保證完成軟件工程其中一個目的的關(guān)鍵,既研究如何用最小的開銷做出生存期較長的軟件,再加上各個階段都要進(jìn)行周密的策劃、詳細(xì)的分工部署和人員安排,且各階段要據(jù)具體情況不斷的反復(fù)才能達(dá)成,所以代碼只是開發(fā)軟件這個浩大的工程的一個小小的過程。
而編碼的學(xué)習(xí)中,我更了解到形成自己獨(dú)特的規(guī)范的編碼風(fēng)格是非常重要的事。因?yàn)檫@影響到了軟件后期繁重的維護(hù),大家都要閱讀你的程序,如果你寫的程序毫無規(guī)范可言,那么別人怎么能讀懂你的程序?讀不懂程序,維護(hù)又從何談起呢?所以,我們在今后的學(xué)習(xí)中,一定要注意這方面的培養(yǎng),在寫程序的過程中,要逐步的在規(guī)范的基礎(chǔ)上形成屬于自己的風(fēng)格,即方便自己的修改,也方便日后他人的閱讀。
在學(xué)習(xí)中,我們還要注意比較三種方法的優(yōu)缺點(diǎn),例如:傳統(tǒng)方法雖然使軟件擺脫了混亂和無序,但其在適應(yīng)需求變化的方面不夠靈活,而且傳統(tǒng)方法要么面向行為,要么面向數(shù)據(jù),缺乏兩者的有機(jī)結(jié)合。而面向?qū)ο蠓椒ǖ某绦蛟O(shè)計(jì)和問題求解更符合人們?nèi)粘W匀坏乃季S習(xí)慣,適合大型、復(fù)雜及交互性比較強(qiáng)的系統(tǒng)。形式化方法則是一中基于形式化數(shù)學(xué)變換的軟件開發(fā)方法,它可將系統(tǒng)的規(guī)格說明轉(zhuǎn)換為可執(zhí)行的程序。
在今后的學(xué)習(xí)中要注意多讀書、多思考、多練習(xí)、多討論,不斷熟悉書本的基礎(chǔ),并以此為基礎(chǔ)將其擴(kuò)散開來,應(yīng)用于今后的實(shí)踐。不斷鍛煉自己,向一名合格的程序設(shè)計(jì)師邁進(jìn)。