專題心得體會

當前位置 /首頁/心得體會/專題心得體會/列表

軟體工程課設心得

第一篇:軟體工程課設心得

軟體工程課設心得

軟體工程是一門實踐性很強、交叉性很強的學科,它提供給我們的不僅是一種方法論,更是一種世界觀。

在沒有接觸軟體工程這門課時,我一直認為軟體就是程式。能編出解決問題的程式就ok了,從沒有想過,在寫一個程式之前還要構思幾份文件(可行性分析、需求分析、概要設計)。不過對於那些大型軟體如植物殭屍大戰(至少對於我來說是比較大型的了)怎麼去實現它,想得我一頭霧水。絢麗的介面、40種植物、一大堆不同型別的殭屍,怎樣編程式碼去實現它呢?

第一次上軟體工程的課,裴老師問“軟體是什麼?” 我的第一想法是:這個問題太過愚昧了!誰不知道軟體就是程式呀? “軟體是由計算機程式、資料及文件組成。”聽到這句話,我心裡先是一驚,慌忙翻了下書“軟體是程式和所有使程式正確執行所需的相關文件和配置資訊。”赫然映入我眼簾。突然間我發現,就算是植物殭屍大戰這樣複雜的遊戲,如果設計者實現分模組把每一部分如何實現用文件描敘出來,那這個軟體實現起來不是很容易嗎?

第一次課後我明白了軟體工程是致力於專業化軟體開發的理論、方法和工具的研究。雖然我從國中開始資訊奧賽,高中繼續這個愛好,但在大學二年級下學期才接觸在軟體開發中這麼有引導意義的學科,不覺有種相見恨晚的感覺。自然它的方法學三要素:方法、工具、過程,我牢記於心。

短短的四周,裴老師的課給我留下了深刻的印象,印象尤深的是:

做軟體我們首先考慮的是團隊的實力。

如果別人給你50萬讓你們團隊開發一個軟體,如果他要求你們團隊給這個軟體永久維護,那麼你要去跟他協商付100萬。很多軟體公司倒閉就是因為維護上的問題。至此我才明白維護軟體是軟體生存週期中時間最長的一個階段,它是最花費精力與錢財的一個階段。

如果將來你們碰到了我,你跟我說你是se那麼我會很高興,如果你告訴我你是軟體工程師,我只會“嗯嗯”兩下。

其實在我接觸軟體後,渴望的是當一名軟體工程師。現在才知道學軟體工程專業後,去當一名軟體工程師是最低層的也是最沒“技術”含量的。要做就做系統構架師,當然這需要我們的不懈努力才能達到。系統構架師的職責是設計一個公司的基礎構架,並提供關於怎樣建立和維護系統的指導方針。恍然發現學軟體不僅是學軟體,相關的管理能力也是需要具備的。

當然理論知識是用來指導實踐的,親身體驗才能領悟軟體工程的妙用。課設我們選擇了圖書館管理系統,主要是這個系統我們接觸比較多,對於它的流程還是比較清楚的。雖然如此我們還是花了很大的時間去完成它。記得當時我們定下這個題目是晚上,在討論用什麼語言實現時,大家各自說出自己比較善於的語言。然後均衡了下,定下用java做開發語言。在實現過程中,突然發現java環境連線資料庫和tomcat超級麻煩且資料庫老是連線不上。趁時間還早我們三再次討論,決定用c#做開發語言,主要是c#相對於c++與java來說簡易寫。同時我們定下不管以後遇到什麼困難都要堅持下去的準則。在課設期間我們沒少跑圖書館,查閱各種資料,對比各本書上實現圖書館管理系統的程式碼。終於在4月11日把所有課設的所有事情弄好了。當然這只是個概述。

我印象尤深記憶深厚的是最初實現文件那塊。剛開始,軟體工程這門課還沒學多少,基本的設計理念就很模糊。文件到底該怎麼寫,很糾結。於是我從網上狂下相關文件。通過貼上與複製終於一份內容亂七八糟的需求分析文件出來了,當然這只是用來借鑑的。後來孟陽分享了十三份關於文件這方面的模板。我們照著那個樣子在結合團隊專案的相關例項開始了文件的寫作。我們的文件總是一個人先寫好,再拿給另一個人改,最後由第三個人評審。大家都覺的可以了,才過關。測試報告雖然是我一個人完成了,但也經歷了不少時間,當然這時間是按小時算的。首先把大體寫出了,然後修改,再增加資訊。大量的截圖以及思考怎樣用例超費腦子,兩天的通宵,徹底把我搞垮了,不過在文件出爐後,心裡異常開心。

軟體工程課程雖已結束,但我對於軟體工程的學習才剛剛開始,裴老師的課讓我受益匪淺。我體會到專案管理的重要性,隨著軟體規模、複雜度的不斷增加,專案開發中更多的是協作、管理和控制。我學習到很多一般性的方法,例如:需求獲取、模組化、分治、估算、計劃等等。同時,我也認識到使用計算機解決實際問題的複雜性,在圖靈機模型和馮·諾依曼體系的計算機框架下,人們認識表達的過程(不斷反覆、逐步深化)和計算機的實現過程(順序執行)相差甚遠,軟體工程方法要提供給程式設計師們一種更加有效的對客觀世界問題域進行形式化的過程方法。

向se進軍!至少這是現在的目標。

謝謝裴老師!您的課通俗易懂,舉的例子貼近生活,讓我們易於接受。

第二篇:ttcn-3軟體課設報告

軟體課程設計

ttcn-3軟體課設報告

第 1 頁 共 6 頁 電信0701 郭福晨 u201413312

ttcn-3軟體課設

本次軟體實驗課程我選的是ttcn-3語言的平臺移植。我和黃炯同學組成一個小

組。軟體課設的大課題為:ttcn-3語言及其編譯器的設計與移植。我們選擇的是用ttcn語言實現自動飲料販賣機的功能。

自助飲料售賣機的實現

1. 任務要求

飲料型別:咖啡、可樂、鮮橙多、礦泉水、綠茶、紅茶

飲料價格:4元、3元、3元、1元、3元、3元(只接受整數輸入)

輸入包括飲料型別和投幣金額

輸出包括輸出飲料的數量以及找回錢金額

2. 程式演算法

module autosellmachine

{

function machinefunction(in integer number,in integer money) runs on drinkercomponenttype//從顧客處{var charstring temp;ive(charstring:?)-> value temp; log(temp); (number); ive(charstring:?)-> value temp; log(temp);do {(money);接收訊息並賦值,判斷飲料的種類和所要求的價錢 type component drinkercomponenttype//定義接收和輸入的介面 {} port charstringinputporttype inputport; port integeroutputporttype outputport; type port integeroutputporttype message { out integer } type port charstringinputporttype message { in charstring }

}} log(temp); while(temp=="sorry,money is not enough!please try more again!");//判斷顧客給出的錢數,如果不夠if(temp=="sorry,it is not a convient number!please try again!")//判斷顧客所選擇的飲料型別,如果選{}則顯示金錢不夠 擇的不是給出的6種飲料,則顯示選擇錯誤 return; setverdict(pass); type component emptycomponenttype {}//下述為所給出的幾種情況的例項 testcase testone() runs on emptycomponenttype system drinkercomponenttype {}testcase testtwo() runs on emptycomponenttype system drinkercomponenttype {} testcase testthree() runs on emptycomponenttype system drinkercomponenttype { var drinkercomponenttype drinker; drinker := te; map(drinker:outputport, system:outputport); map(drinker:inputport, system:inputport); t( machinefunction(5,1) );//此處方可所選定的飲料種類和給出的金錢 ; unmap(drinker:outputport, system:outputport); unmap(drinker:inputport, system:inputport); var drinkercomponenttype drinker; drinker := te; map(drinker:outputport, system:outputport); map(drinker:inputport, system:inputport); t( machinefunction(0,10) );//此處即顧客所選定飲料種類和給出的金錢 ; unmap(drinker:outputport, system:outputport); unmap(drinker:inputport, system:inputport);

}} drinker := te; map(drinker:outputport, system:outputport); map(drinker:inputport, system:inputport); t( machinefunction(6,100) );//此處為顧客選定的飲料和給出的金錢 ; unmap(drinker:outputport, system:outputport); unmap(drinker:inputport, system:inputport);

c編寫的咖啡機販賣程式

using system;

using ric;

using ading;

public class atuodrinkmachine//定義輸入和輸出,飲料型別和價格

{

public static queue<byte[]> inputport;

public static queue<byte[]> outputport;

private static string[] drinkname= {"coffee","cola","orange","water","greentea","redtea"};private static int[] drinkprice=new int[6] {4,3,3,1,3,3};

static thread task;

public static void switchon()

{

inputport = new queue<byte[]>();

outputport = new queue<byte[]>();

task = new thread( new threadstart(behaviour) );

t();

}

public static void switchoff()

{

t();

}

static void behaviour()

{

int amount,choice,i,quantity,change;

eue(ngtobytearray("please choose one of thedrink:n0_coffeet1_colat2_orangen3_watert4_greenteat5_redtea"));

while (t == 0) p(10);

byte[] inputbyte=eue();

choice = arraytoint(inputbyte);

if(choice<0||choice>5)

{

}

eue(ngtobytearray("the drink you choosing is: " eue(ngtobytearray("sorry,it return; is not a convient number!please try again!")); +drinkname[choice]+ ".n"+"the single price of " +drinkname[choice]+"is " +drinkprice[choice]ring()+"."));

while (t == 0) p(10);

inputbyte = eue();

i = arraytoint(inputbyte);

amount=i;

while(amount<drinkprice[choice])

{

}

quantity=amount/drinkprice[choice];

change=amount%drinkprice[choice];

eue(ngtobytearray("here your "+ring()+" eue(ngtobytearray("sorry,money while (t == 0) p(10); inputbyte = eue(); i = arraytoint(inputbyte); amount+=i; is not enough!please try more again!")); drink(s) and "+ring()+" yuan left ks!"));

p(100);

}

}

課設總結

這次軟體課設的整個過程使我切實的認識到了程式編寫的不易和所需的

嚴謹,任何一個小的錯誤與疏忽都可能導致程式的崩潰。雖然之前從書本中學習c語言的程式設計知識,有一定的程式設計基礎,但是確確實實做一個真正的東西出來還是第一次,所以有很多問題都不能自己解決,所以這個過程也培養了我學習新知識和與團隊配合的能力。我覺得雖然自己還是有很多不懂的地方,對於ttcn-3這門語言的瞭解也還遠遠不夠,但我還是覺得自己收穫很多。對於自己所學習的專業,和自己所學習的知識的實踐

應用都有了全新的認識。很高興能有這次軟體課設的機會,讓自己看到自己的不足,我會好好把握自己大學的最後時間,儘量在各個方面都強化自己。我覺得,課設讓我看到自己和某些很優秀同學的差距,我相信,只要好好努力,有一天我也可以成為一個出色的程式設計師。謝謝

第三篇:課設心得體會

課設心得體會

大學三年期間的課程設計,這次應該是在實驗室呆的時間最長也最煩惱的一次,做課設期間,遇到了很多的問題,雖然嘴上會說,學校真的是不想讓人活了,好煩呀之類,但我們卻從未想過放棄,因為當你覺得最難的時候堅持一下,也就是你有所收穫的時候,很慶幸,我們堅持了,並且達到了我們的預設目標。兩人一組,想想真的比以前的好幾個人一組要充實很多,不會說有人一直閒著,有人只是打醬油,這次受益頗多。

在剛開始焊接電路的時候,由於我的隊友在寶雞實習時熟練掌握了焊接技術,焊接的可以說相當順利,沒覺得有很多難度,但當我們進行軟體編譯和除錯的時候,真可謂舉步維艱,不要說除錯了,就連用來顯示的led螢幕都不會亮,在這個過程中請教了老師,問了學霸,自己也焦頭懶額,軟體,硬體一步步排除,最後才發現是焊接和led屏都有問題,再下來螢幕終於亮了,但是功能卻實現不全,時鐘不走字,有時還會亂碼顯示,這個時候老師說先排除軟體問題,如果軟體沒有問題,那就可能是時鐘晶片或者晶振有問題,,又開始檢測和排除,最終在我們的努力下發現了問題所在,我們的主晶片電路有問題,換到開發板上後,正常顯示,並且功能基本實現除,但是新問題又來了,我們的時鐘比實際時間走的要快。軟體沒問題,我們更換了ds1302晶片,時中已經可以正常運行了,雖然實現了基本功能,我們也有一定的收穫,但是功能卻沒有完全實現,我們的鬧鐘功能由於自己的不足而沒能實現,但我們通過此次課程設計知道自己還有哪些不足和需要努力的地方。

下來,我想我必須吐槽一下我初次使用和安裝protel軟體的心路歷程,這個軟體我們專業的人使用過的甚少,光這個軟體的安裝就花費了大量時間,在安裝完畢準備畫圖的時候,發現一些常用的元器件根本新增不上來,連at892都沒有更別說是ds1302了,沒辦法,後來在網上下載了一個protel視訊教程,跟著視訊一步一步來學習使用,但在學習到給庫裡新增元器件的時候,在protel的library的sch庫中的元器件根本新增不上來,我初步判定是安裝包有問題,所以將下載了安裝漢化了半天的protel軟體解除安裝了,想安裝protus。誰料想竟然安裝失敗,沒辦法,最後只好求助大神,好不容易將protel的元器件庫破解後,畫圖剛開始也是一塌糊塗,連元器件的方向都不能搞定,熟悉和練習protel畫圖工具就用了大半天的時間,但是不管怎麼說,圖最後還是畫好了,想想如果以前在課餘時間多學習學習這些基本的畫圖工具,現在也不會在關鍵時候抓瞎了,以後真的(推薦開啟範文網:)要多多學習了。

至此,我們的課程設計在大三的最後一個星期結束了,以此次課設的收穫致我們終將逝去的大三吧!

宋阿珍

2014年7月18日

第四篇:ad590課設心得

作為一名自動化專業的大三學生,我覺得做微控制器課程設計是十分有意義的,而且是十分必要的。在已經度過的大學時間裡,我們大多數接觸的是專業課。我們在課堂上掌握的僅僅是專業課的理論知識,如何去鍛鍊我們的實踐能力?如何把我們所學的專業基礎課理論知識運用到實踐中去呢?我想做類似的課程設計就為我們提供了良好的實踐平臺。

兩個多星期前我們兩個人還認為這個課設是比較簡單的,但是一開始做就出現了問題,數碼管就是不亮,而且之後也是問題不斷,現在想想,這項看起來不需要多少技術的工作卻是非常需要耐心和精力去解決。

通過這次對溫度測量,a/d轉換,光電計數的設計與製作,讓我瞭解了設計電路的步驟,也讓我瞭解了關於a/d轉換的原理與設計理念。要設計一個電路總是要先模擬並且成功之後才能實際接線的。但是最後的成品卻不一定與模擬時完全一樣,這是因為在實際接線中有著各種各樣的條件制約、各種各樣的因素相互影響。有時候,模擬無法成功的電路,在實際中卻因為晶片本身的特性而能夠成功。所以,在設計時應考慮兩者的差異,從中找出最適合的設計方法。通過這次微控制器課程設計,我真正的意識到,在以後的學習中一定要理論聯絡實際,把自己所學的理論知識用到實際當中。

在做本次課程設計的過程中,我感觸最深的當屬查閱大量的設計資料了。為了讓自己的設計更加完善,查閱這方面的設計資料是十分必要的,同時也是必不可少的。我們是在做微控制器課程設計,但我們不是藝術家,他們可以拋開實際盡情在幻想的世界裡翱翔,但我們一切都要有據可依,有理可尋,不切實際的構想永遠只能是構想,永遠無法升級為設計。其次,在這次課程設計中,我們運用到了以前所學的專業課知識,如:電路,c語言,模擬和數位電路知識等。運算放大器lm324的應用,讓我對由運放構成的一些電路有了更深的認識。過去從未獨立應用過它們,在學習的過程中帶著問題去學我發現效率很高,這是我做這次課程設計的又一收穫。

最後,要做好一個課程設計,就必須做到:在設計程式之前,對所用微控制器的內部結構有一個系統的瞭解,知道該微控制器內有哪些資源;要有一個清晰的思路和一個完整的的程式流程圖;在設計程式時,不能妄想一次就將整個程式設計好,反覆修改、不斷改進是程式設計的必經之路。而且程式只有在經常的寫與讀的過程中才能提高,軟體也只有在反覆的使用中才能更加熟練。

雖然自己對於這門課懂的並不是很多,很多基礎的東西都還沒有很好的掌握,也沒有很有效的辦法通過自身去理解,但是靠著這兩個多星期的學習,在小組同學的幫助下,漸漸對這門課有了更深的理解。我認為這個收穫應該說是相當大的。覺得課程設計反映的是一個從理論到實際應用的過程,但是更遠一點可以聯絡到以後畢業之後從學校轉到踏上社會的一個過程。小組人員的配合﹑相處,以及自身的動腦和努力,都是以後工作中需要的。

第五篇:運籌課設心得

通過這次的課設,發現了自己的很多的不足,自己知識的很多的漏洞,看到了自己的實踐經驗還是比較缺乏,理論聯絡實際的能力還急需提高。

這次的課程設計也讓我看到了團隊的力量,我認為我們的工作是一個團隊的工作,團隊需要個人,個人也離不開團隊,必須發揚團結協作的精神。團結協作是我們成功的一項非常重要的保證,而這次設計也正好鍛鍊我們這一點,這也是非常寶貴的。最讓我收穫巨大的是,從這門課設中我學會了如何運用lingo來求解,在做課設的過程中遇到了很多的困難,在不斷的請教和研究下終於得到了答案,我覺得從失敗中獲得成功的那份喜悅比在一直順利的情況下更讓人欣慰。

對我而言,知識上的收穫重要,精神上的豐收更加可喜。讓我知道了學無止境的道理。我們每一個人永遠不能滿足於現有的成就,人生就像在爬山,一座山峰的後面還有更高的山峰在等著你。挫折是一份財富,經歷是一份擁有。這次課程設計必將成為我人生旅途上一個非常美好的回憶!

TAG標籤:課設 軟體工程 #