時間:2023-03-20 16:10:18
序論:好文章的創作是一個不斷探索和完善的過程,我們為您推薦十篇軟件開發專業論文范例,希望它們能助您一臂之力,提升您的閱讀品質,帶來更深刻的閱讀感受。
John每天早上一睜眼,心理就沉甸甸的--又是難以忍受的一天!有上班的點,沒下班的點。其實身體的疲憊倒沒什么,更讓他難受的是心理的負擔:工作的時候沒有樂趣、也談不上成就感,他也不知道這樣的日子什么時候才是盡頭。John已經記不起來上次開心的笑是什么時候。他極不情愿地爬起來,硬著頭皮出了家門。公司里有他不愿面對的上司,和永遠也做不完的工作。
John在大學學的是計算機專業,在學校的時候,他可是個活躍分子,還算個小名人呢,畢業后很自然地就在IT行里混。幾年下來,雖然也做了幾個軟件,但是一直對編程提不起興趣,找不到興奮點。雖說IT業不景氣,可他手上的工作一點沒少,只是荷包癟了些。痛苦,郁悶,他也想過跳槽,換一個行業,但是又覺得自己除了編程什么都不會,于是幾次心理的騷動都被扼殺在搖籃里了。隨著年齡的增大,John的心理負擔越來越重,從"小John"現在都混成"John哥"了,IT可是個年輕人的行業,John已經覺得身體有些熬不住了,并且IT業技術更新換代的速度給他越來越強的緊迫感--今后的職業生涯該怎么走?
在迷茫困惑中,John找到了成功職業指導中心,在測試和溝通之中職業顧問發現John有銷售的天賦,John也談到曾經有一次偶然的機會,自己陪同市場部的同事給客戶做演示的時候,發現自己的說服技巧很能打動客戶,那次,客戶幾乎沒有什么大的修改意見,就接受了他們的方案,為此他們還好好慶祝了一番。
職業規劃師根據他的天賦和性格、興趣,為他的職業生涯做出了定位和規劃,并提出了一些具體的建議。John幾年來一直搞技術,從來沒想過自己還可做銷售,心中雖有些興奮,但還是有些惴惴不安,死馬當作活馬醫吧。可是現在,不到一年的時間,John已是中關村一家電子公司的銷售總監。他在給職業規劃師的E-mail中寫道:我以前就象是擱淺的船在沙灘上拉著走,現在就象是沖浪--感覺完全不同。
0、引言
軟件測試是從事計算機軟件開發和維護專業的人員應該掌握的一門技術。軟件測試是軟件工程中的關鍵活動之一,是保證軟件質量的重要手段,其工作量通常占軟件開發總工作量的50%以上,而對于某些可靠性要求極高的軟件系統,如航天、銀行等領域的軟件系統,軟件測試占軟件開發總工作量的比例甚至達到60%~80%。軟件測試的目的是發現軟件中的錯誤,并及時修正這些軟件錯誤,以減少軟件在后出現錯誤,提高軟件產品質量。軟件測試是一項需要專業技能的工作,它包含許多理論和實踐。如果缺少這些理論知識和實踐經驗,測試的深度和廣度就不夠,測試質量也就無法保證,從而導致軟件質量達不到要求,影響軟件的可信性。
由于國內軟件產業的現狀所致,很多的軟件公司屬于軟件外包型公司,這些公司以軟件開發為主。這樣,軟件工程專業很大一部分學生畢業后通常從事軟件開發或者程序員工作,這也影響著學校對軟件工程專業的設置。因此,當前高校在軟件工程專業課程設置上往往將很大一部分精力放在軟件開發課程的設置上,如各種語言的學習、軟件開發方法的學習等。但是,軟件工程不僅包括軟件開發,還包括軟件測試以及軟件維護。大部分國外大型軟件公司,如微軟、IBM等公司,這些公司對軟件測試非常重視。在這些公司內部,軟件測試人員數量并不比軟件開發人員少,因為一個優秀的軟件產品最終是通過不斷的軟件測試進行驗證和評價的。隨著軟件工程課程的不斷完善,當前軟件測試的重要性已逐漸得到重視,很多高校已將軟件測試課程作為軟件工程專業課程中的必修課程。該課程是軟件工程的核心組成部分,是連接軟件開發和軟件的紐帶。通過本課程的學習,學生要了解軟件測試及其管理的重要性,掌握軟件測試基本理論、技術和方法,具備研究設計測試用例和使用自動化測試工具的基本方法和實踐能力,能將測試驅動的理念融入軟件開發、維護的研究與應用中,從工程化角度提高和培養學生從事大型軟件的測試技術和能力。
盡管軟件測試課程已作為軟件工程專業的必修課程,但從教師和學生兩個角度對該課程的調查反饋發現,教師覺得該課程不好教,教學效果不好;而學生感覺該課程較空洞,沒有發現其在實際軟件開發中有多大的應用。這主要因為在傳統的軟件測試教學中,學生只是被動地參與,聽教師授課,聽教師講授各種軟件測試概念和方法,但學生并沒有真正學到這些理念,并沒有對這些方法進行應用。所以這種傳統的軟件測試教學方法效果很難令人滿意。
揚州大學信息工程學院將軟件測試課程作為一門雙語研究性課程進行試點改革,探討如何更好地進行軟件測試課程的教與學。本文將以該學院軟件工程專業軟件測試課程為例,探討學生自主學習的軟件測試雙語研究性教學方法。筆者作為該課程的授課人實施了本文的軟件測試教學方法,其目的是研究如何促進學生進行雙語研究性教學,促進學生主動學習軟件測試新技術,從而讓學生學到軟件測試課程中的一些測試理念,讓他們了解軟件測試在整個軟件開發過程中的重要性。
1、軟件測試雙語研究性教學
軟件測試雙語研究性教學主要包括三方面內容:教學、研究、實踐。這三者在軟件測試雙語研究性教學中的關系是:以教學為本學習,以研究為重點突破,以實踐為輔助訓練。下面分別介紹這三方面的內容:
1)教學方面。
軟件測試雙語研究性教學和傳統的軟件測試教學一樣,根據軟件測試教學大綱進行教學,主要包括軟件測試基本概念、軟件測試基本方法、白盒測試、黑盒測試等。由于研究性教學過程中加入了研究,所以教學是以基本的測試理論和技術為主。另外,在教學過程中,由于本課程屬于雙語課程,所以教學過程中采用英文PPT,中文授課方式進行教學。另外,教學主要以啟發式教學為主,讓學生更多參與課堂討論,由于本文主要討論研究方面,所以這里對教學不做詳細討論。
2)研究方面。
本課程采用的是研究性教學,因此研究是本課程的重點和特色。本課程所采取的研究方式主要以學生自主學習為主,采用閱讀文獻的方式。由于本課程是雙語教學,研究過程中所提供的文獻材料全部是英文論文,這些材料都是從當年軟件工程領域頂級國際會議中選取的有關軟件測試方面的最新技術和方法,這樣有助于學生開闊視野,了解最新的軟件測試技術、方法,及軟件測試發展的方向。這一部分的實施方法將在第3節進行詳細介紹。
3)實踐方面。
軟件工程是實踐性很強的專業,同樣,軟件測試也是如此。需要通過不斷的實踐才能理解和掌握軟件測試技術,將測試理念貫穿到軟件工程項目中。本課程軟件測試實踐主要包括三方面內容:一是驗證性實踐,熟悉已有測試工具,學會使用這些工具,并利用已有測試工具生成測試用例;二是自己開發軟件測試工具,主要根據研讀的論文進行工具的設計和開發;三是軟件測試工具的驗證和評估,主要是對自己開發的工具進行驗證和評估。一方面利用已有測試工具來驗證當前軟件測試工具,另一方面,利用已有軟件測試知識評估測試工具在故障識別方面的效率,這有助于學生更深地掌握軟件測試技術,了解什么樣的測試技術是好的測試技術或者方法,是有效的測試工具。這一部分也不是本文的重點,因此不詳細展開討論。
2、軟件測試雙語研究性教學特色
本課程作為揚州大學軟件工程專業的試點課程,采用雙語研究性教學方式進行課程的授課和學習。對于雙語性教學,主要采用英文材料,中文授課;而對于研究性教學,主要是讓學生進行自主學習最新的軟件測試技術和方法,研讀相關的英文論文,進行專題報告和討論,并鼓勵學生開發實現這些技術。因此,在本課程的教學過程中,主要體現了5個特性。
(1)自主性:讓學生從給定的英文材料中自主選擇學習材料,自主組建團隊,自主與英文材料作者聯系、溝通、交流和討論。
(2)協作性:學生必須要組建團隊,團隊成員數量由2~4人構成,團隊之間相互協作、配合,共同完成整個研究性學習過程。
(3)互動性:在學習過程中,必須要與論文作者溝通和交流,真正把握論文作者的真正意圖,并嘗試提出自己的見解,與論文作者進行討論。
(4)實踐性:要能夠實現論文材料中的軟件測試方法,在工具開發過程中,鼓勵學生采取測試驅動的開發方法,并利用所掌握的軟件測試技術去測試自己的工具。
(5)研究性:在研讀論文過程中,要對論文進行深入的討論和研究,特別是對作者的思想以及未來工作、論文中的不足進行研究,提出可能的解決方案。
3、軟件測試雙語研究性教學實施
筆者主要針對軟件測試雙語研究性教學過程中的研究過程的實施進行討論。在本課程中,研究主要是采用學生閱讀文獻的方式進行自主學習的研究,主要針對當前最新的軟件測試技術進行學習和研究。研究性教學具體的實施過程如圖1所示。
首先,教師從當年軟件工程頂級國際會議中選取軟件測試相關的研究技術論文放入文獻庫中。這樣的文獻庫主要用于學生對當前軟件測試的學習和研究。對于本科學生來說,獨立地去研讀這些最新技術還有一些難度,而且時間上也緊張。因此,研究性學習主要采取團隊方式一起研究,這樣學生進行自由分組,并且每個小組指派一名學生作為小組組長負責該小組的研究性學習進展。
有了文獻庫以及學生分組后,就進入自由選題階段,即各個小組從文獻庫中選取自己感興趣的論文。在各小組確定自己的研究論文后,進行論文的研讀。在論文研讀過程中,要求每個小組每周至少討論一次,討論各小組的分工任務完成情況,對原文的理解情況,以及對遇到的問題進行討論,并且項目小組要及時記錄這些討論記錄,每周發送給任課教師。另外,在研讀論文過程中,每個小組要用英文與論文作者進行溝通與交流(如果作者沒有回復,可以選擇與課程教師進行交流),并將交流過程中的對話記錄下來作為課程成績考核的依據。
在論文研讀后,需專門安排幾節課進行專題報告和討論,主要用于檢查各小組對原文的理解情況。專題討論內容包括三方面:一是學生對論文內容的理解;二是學生需要提出對論文的見解和觀點,挖掘論文可能存在的問題或對論文中的未來工作部分提出見解;三是本小組研讀論文的體會分享。在專題報告中,我們還邀請了學院的一些其他教師參與進來與學生們一起討論,一方面,教師對各個論文本身進行點評;另一方面,教師對各個小組的表現進行點評。另外,在專題報告中,強調學生的參與,就是大家要多提問,多討論。
專題討論后,各小組要對原文中軟件測試技術進行實現。其中,在軟件測試技術實現過程中,鼓勵采用測試驅動的軟件開發方法;另外,需使用已有的軟件測試技術和工具進行測試。在完成開發軟件測試工具后,需要選擇一些例子進行軟件測試技術的驗證。最后,各個小組需要提交一份總結報告,主要是關于技術實現進行總結,包括這幾方面內容:對論文原文的理解或技術改進,采用的測試技術和工具,技術改進效果的驗證和評估。
4、實施效果
該課程已在2012-2013年秋學期的揚州大學軟件工程專業的一個班按照本文教學方式進行實踐。該班學生40人,我們從2012年ICSE(International Conference on Software Engineering)、FSE(Symposium on the Foundations of Software)、ISSTA(Symposium on the Foundations of Soft-ware)、ICST(Intemational Conference on Sottware Testing,Verification and Validation)、ICSM(Inter-national Conference on Software Maintenance)等國際頂級會議上選取了44篇軟件測試相關的論文作為學生學習的資料庫。然后讓學生自由組隊,每組2~4人一起研讀論文。最后組隊15組,選擇了15篇論文進行學習和討論。在研讀論文過程中,建議學生自己與論文作者用英文進行交流和討論,討論論文中不能理解的內容;在研讀完論文后,我們組織了專題報告,報告主要包括三方面:一是論文主要內容;二是學生對論文的看法以及學生自己的想法;最后就是分享研讀過程中的體會。另外,我們鼓勵學生用英文進行報告(其中一組采用英文進行報告)。專題報告過程中我們還邀請軟件工程系相關教師一起進行點評。
自考計算機專業畢業論文 有1年準備時間,寫作時間的分配主要取決于 考生軟件開發的進度,如果考生開發的軟件很成熟,那末后續的寫作時間就較快,否則后面的寫作就會很被動。例如,一般會在每年7月份登記,9月底開題,期間開發軟件,到第二年2、3月就要完成初稿,再留一個月修改。
1、選題。選題首先要重要、有意義。例如有的考生 選擇設計木馬程序,其本身是個病毒程序,這樣的程序只能帶來危害,實際生活中沒有意義,就不能用于做畢業論文。
2、開發軟件。開發軟件要與實際相結合。實際性非常重要,要自己能開發一個能實際運行的軟件。有的考生自己并沒有參與實際工作,只是看書是不行的。自己參與的可以是一個大的項目或課題組,論文中介紹完大的系統后,一定要把自己的工作量寫清楚。
3、寫論文。開發完就可以寫論文了,論文是個總結,但是不要寫成工作總結,一定要有主題,應體現自己的開發思想和論述。寫論文要達到一定字數,一般要3萬字。其中,編程代碼一般為2-3千行,
這個不是機器自動生成的代碼,一定是自己寫的源代碼。論文結構
計算機專業畢業論文一般有8個部分。1、概述或引言。這個部分相當于大綱,一般要求4-5千字,主要是對軟件開發背景,使用的軟件工具、環境,最后達到的效果,自我在里面的貢獻等;2、需求分析。軟件有哪些功能、模塊,用的什么工具等;3、設計方案和主要技術。主要是對里面每一部分的詳細論述,使用的是什么技術,為什么使用。詳細的模塊分析或遇到的難點是怎樣解決的等;4、具體的實現過程;5、測試。介紹自己開發軟件實際達到的效果;6、總結。介紹自己開發軟件的體會,或自己開發的成果使用情況,有什么評價,自己還有哪些不足,有什么需要改進的地方;7、致謝;8、參考文獻。另外,還可以加一個“附錄”部分。正文只能有一個中心,其他有重要參考價值的都可以放在附錄部分。例如有重要的代碼、圖表,涉及其他領域的知識,需要解釋的等都可以放在附錄部分。案例1:《家裝工程預算軟件的開放》1、概述;2、需求分析;3、總體設計;4、數據庫設計;5、軟件功能的實現;6、結論及改進;7、致謝;8、參考文獻。
案例2:《經緯中天無線短信增值服務管理軟件的設計和開放》1、
引言;2、需求分析;3、設計方案論證和主要技術介紹;4、系統設計;5、編碼實現;6、實際運行中出現的問題及相應的解決方案;7、結束語;8、致謝;9、參考文獻。
答辯程序
答辯現場會有專業老師組成的答辯小組,一般為5人左右,學生抽簽分配答辯組。答辯現場要考生做介紹和演示。考生需要提前準備幻燈片,一般不超過20張,為論文最核心部分的內容。考生結合幻燈片介紹論文,答辯小組老師會根據考生論文提出問題,考生要實事求是回答,最后答辯小組老師打分,求平均分給出考生論文成績。大部分考生都會達到優、良,個別考生沒有通過論文,主要有兩方面原因:1、論文并不是自己真正所做,用別人的軟件為自己所用,老師一提問就能發現破綻;2、考生論得太簡單,達不到工作量。這就需要考生踏踏實實地按照要求去作論文。
零碎提醒
論文的題目不要太大,一定要具體、實際,不能吹成通用的;自考生考過全部 課程后,最好能尋求實踐機會。可以去應聘公司,真正參與一個項目,一邊工作一邊寫論文;
論文不要上網抄,一定要自己做;
1.課程體系設置軟件工程學科正式確立的兩個標志性文件是2004年IEEE推出的軟件工程知識體(SWEBOK)和軟件工程教育知識體(SEEK)。兩個文件內容相近,都包含了軟件工程核心類的知識領域、基礎類或前導類的知識領域,以及其他相關領域的知識[4]。軟件工程研究生的培養從原則上說應遵循上述兩個文件,圍繞上述知識領域進行教學。但由于這兩個文件將軟件工程的知識體系劃分為知識點,各領域之間必然存在重復和交疊。在課程設置上無法照搬上述兩個文件。以SEEK為基礎,我們對軟件工程的課程設置進行規劃。整個課程設置被分為五個層次,分別為工程基礎課程、計算機基礎課程、軟件工程核心課程、擴展課程和實踐課程,如圖1所示。課程開設順序大體按照五個層次由低到高依次開展。其中,工程基礎課程提供軟件工程所需數學理論基礎、外語能力培養、軟件工程文檔寫作、論文寫作基本功訓練。計算機基礎課程提供軟件開發必須的計算機基礎知識,如網絡、算法和數據庫知識。相對于本科課程而言,此類課程講授內容更深入全面。軟件工程核心課程設置了高級軟件工程、軟件體系結構和軟件測試與質量保證三門課程。高級軟件工程側重于軟件分析與設計、軟件工程過程、軟件開發案例分析。軟件體系結構側重于結構風格、案例研究、共享信息系統、結構描述、結構的分析與評估、特定領域的軟件體系結構和流行的軟件體系結構等。軟件測試與質量保證著重于軟件質量的改進,討論如何提高軟件質量的方法。擴展課程包含系列領域知識課程,研究生可根據研究方向選擇兩門;軟件開發工具講授最新流行的軟件開發、過程管理所需要的軟件工具的使用,以實踐教學為主。軟件開發新技術研討課程以講座形式開展,教師和學生均可作為一個專題的主講。實踐課程包含校內實踐、校外實踐和畢業設計三個環節。
2.培養流程與實施教育部明文規定,專業學位研究生學制原則上為兩年,同時要求應屆本科生進行專業實踐不少于一年。一般來說,研究生在校課程學習時間應有一年左右,加上專業實踐的一年,如何合理安排學習計劃,在兩年內完成培養環節成了一個現實的重要問題。我校以周為單位制定了四川師范大學軟件工程專業學位研究生培養流程,如表1所示:上表規劃了研究生培養中的幾個關鍵環節,依次為報到入學、課程學習、校內實踐、校外實踐、開題、畢業設計、論文寫作和送審答辯。第一學期研究生主要是課程學習,同時在校內導師指導下開展文獻閱讀和編程能力鍛煉。第二學期前半學期結束理論課程的學習。后半學期和暑期開展校內實踐和畢業設計開題工作。第三學期研究生到實習基地進行校外實踐。從第二學期后半段和整個第三學期,學生在專業實踐的同時,需完成畢業設計。從第二個寒假開始直到第四學期前六周,研究生完成畢業論文的初稿。從第七周開始,進行論文修改、、盲評和答辯工作。從培養流程表可以看出,這種安排具有兩個顯著特點。一是理論課程學習安排在一個半學期完成,二是實踐課程分為校內實踐和校外實踐。研究生理論課程學習任務并不重,完全可壓縮到一學期半,同時可為實踐提供更多時間。校內實踐非常有必要。由于是省屬高校學生大多能力一般,為保障學生進入企業能融入研發團隊從事技術工作,必須先期培訓其實踐能力。這種安排時間較為緊湊,也比較合理,符合專業學位研究生側重于實踐能力培養的要求,也在兩年的學制內確保了研究生的實踐時間不少于36周。
二、專業實踐能力的培養與訓練
軟件開發能力是軟件工程專業碩士必備的核心能力,其能力培養既是對前端課程學習效果的檢驗,也是后端畢業設計和就業的必然需要。我校將軟件工程專業碩士實踐能力培養融入了眾多環節。從前期的實驗型課程教學,到中期的校內實踐、再到后期的校外實踐和畢業設計。實驗型課程教學解決軟件設計開發的基礎技能,校內實踐解決中小規模軟件設計開發能力,校外實踐和畢業設計解決中大規模軟件設計能力。
1.實驗型課程教學包含軟件工具的使用訓練、軟件開發環境的搭建、軟件開發案例分析和新技術研討。軟件工具的使用訓練學生單個軟件開發工具的使用,如項目管理軟件Project、開發文檔化軟件Rational、軟件測試工具LOADRUNNER、QTP、TD等。由于這些工具結構分散,還需進行開發環境的搭建訓練。開發環境搭建訓練內容一為搭建基于微軟的VSTS和VisualStudio的開發平臺,適合.net方向;內容二位、為搭建基于IBMRSA和Eclipse的開發平臺,適合J2EE方向。軟件開發案例分析中研究生將自己放在決策者的角度來思考項目所涉及到的具體問題,增強了學生的實際應對能力。新技術研討促進學生或主動或被動地掌握了一些新興技術,拓寬了技術領域。
2.校內軟件開發實踐采用項目驅動形式開展。要求研究生必須申報各類實際的軟件開發項目,如四川省苗子工程、學校研究生科研創新項目、學院研究生科研創先項目。研究生可組織本科生參與項目實施,但必須任項目組長,在項目中擔任核心角色,完成軟件需求文檔審定、軟件架構設計、軟件詳細設計、大部分編碼工作、測試方案制定等重要工作。
3.校外軟件開發實踐在上述環節經歷后,研究生已經掌握中小規模軟件開發的基本技能,此時將研究生派到實習基地,實戰參與企業軟件開發項目。其實踐由校內導師和企業導師共同負責。前期技能的培養已保證研究生勝任企業中一般性的軟件開發角色。
4.畢業設計研究生在校內和校外實踐的36周中,還需要同時進行畢業設計的開題、實施。研究生可結合企業實習工作完成畢業設計。專業實踐的考核分為定期匯報和實踐環節結束匯報兩種形式。研究生應每隔兩個月集中匯報一次實習期工作心得,取得的成績等。實踐結束時在全院公開匯報,其成績作為實踐課程成績。
2.淺談軟件項目開發過程中的需求分析
3.軟件開發方法的創新發展過程研究
4.基于Java語言的安卓手機軟件開發
5.軟件開發的風險分析與控制
6.軟件開發過程模型的發展
7.需求工程對于軟件開發的重要性
8.軟件復用技術及其在軟件開發中的應用
9.試論VB編程語言在軟件開發中的應用
10.軟件開發的風險分析與控制
11.分析軟件開發中數據庫設計理論的實踐
12.基于WBS-RBS的軟件開發風險識別與控制
13.敏捷軟件開發的雙迭代模型
14.基于MATLAB的汽車制動系統設計與分析軟件開發
15.軟件開發勞動計量方法與軟件成本估算
16.基于計算機軟件開發的JAVA編程語言分析
17.一種以軟件體系結構為中心的網構軟件開發方法
18.基于構件的軟件開發的方法與實踐
19.ABC:基于體系結構、面向構件的軟件開發方法
20.面向軟件開發信息庫的數據挖掘綜述
21.淺談三層架構在軟件開發中的應用
22.使用開源軟件進行軟件開發的風險分析
23.汽車電子控制單元軟件開發模式研究
24.軟件開發與層次化思維方式
25.SQA規范對于教育軟件開發的啟示
26.基于證據理論的軟件開發風險評估方法
27.軟件開發人員績效管理中的問題及對策
28.敏捷型軟件開發方法與極限編程概述
29.信息化軟件開發項目經理績效考評研究
30.基于“眾包”的軟件開發模式
31.軟件開發模型研究綜述
32.支持第四代語言的并行進化式軟件開發模型CESD
33.光滑粒子動力學核心算法與軟件開發中的關鍵問題
34.面向重用的軟件開發價值鏈
35.基于MVC模式的應用軟件開發框架研究
36.支持模型驅動式軟件開發的建模語言框架研究
37.3G智能終端軟件開發實驗教學改革的思考
38.軟件開發國際合作模式研究
39.地理信息系統專業學生GIS軟件開發能力的培養
40.有色Petri網在軟件開發中的應用
41.淺談軟件開發的成本核算
42.一種高效率的軟件開發方法——以用戶為中心的軟件開發方法(UCD)
43.軟件開發成本估算技術綜述
44.基坑雙排樁支護結構設計計算軟件開發及應用
45.軟件構架設計在軟件開發中的意義
46.面向軟件開發信息庫的數據挖掘綜述
47.談軟件開發中的需求分析
48.淺談插件化軟件開發
49.計算機軟件技術在植保軟件開發中的應用
50.Onboard:以數據驅動的敏捷軟件開發協同工具
51.軟件開發綜合能力培養的案例教學
52.軟件配置管理在軟件開發平臺中的應用
53.軟件開發成本估算模型的研究
54.軟件開發績效評價指標體系的構建
55.淺談計算機軟件開發技術的應用研究與趨勢
56.軍用軟件開發工程化質量管理研究
57.計算機軟件開發中的分層技術探討
58.基于學生軟件開發團隊的溝通機制研究
59.項目管理在軟件開發中的應用
60.面向農業軟件開發的構件庫研究與實現
61.搭建式GIS軟件開發及其對軟件工程的影響
62.軟件開發過程中的質量管理探析
63.軟件開發本體構建與模塊化的應用研究
64.基于CDIO的高職軟件開發專業課程體系設計
65.典型建筑火災風險評估體系及其軟件開發
66.有效的軟件開發項目風險管理模型
67.框架技術在軟件開發中的研究與實踐
68.淺論新時期計算機軟件開發技術的應用及發展趨勢
69.基于軟構件的軟件開發框架研究
70.面向軟件開發信息庫的數據挖掘綜述
71.模型驅動的軟件開發模式研究
72.以《數據結構》為核心的軟件開發課程群建設
73.護理信息網絡化管理的研究與軟件開發
74.分層技術在計算機軟件開發中的應用
75.軟件開發生命周期法比較之敏捷與傳統
76.基于虛擬硬件在環的控制軟件開發
77.項目管理在軟件開發中的應用分析
78.項目管理在軟件開發中的應用研究
79.軟件開發中的設計原則
80.基于學習遺忘作用的人員調度實驗設計及其軟件開發
81.基于網絡的可信軟件大規模協同開發與演化
82.華池油田結垢預測及軟件開發
83.探析計算機軟件開發的規范化
84.軟件開發自動化平臺的研究與應用
85.架構和面向對象技術在PLC軟件開發中的應用
86.國外XBRL軟件開發技術比較及啟示
87.企業軟件開發標準化探討
88.智能手機操作系統及其Google Android上的軟件開發
89.淺析軟件測試在軟件開發中的重要意義——從軟件功能測試的作用談起
90.軟件開發方法及其應用
91.使用嵌入式Linux操作系統進行軟件開發的特點及優勢
92.基于VB中MSComm控件的通信軟件開發與實現
93.軟件開發管理中的溝通與協調問題研究
94.基于Java語言的安卓軟件開發的研究
95.關于計算機軟件開發語言的研究
96.新時期計算機軟件開發技術的應用研究
97.培養大學生軟件開發創新能力的探索與實踐
信息管理與信息系統專業雖然屬于管理學,但其主干學科包括計算機科學與技術、經濟學、管理學等三個,該專業的綜合性、實踐性很強,但是目前各高校該專業的實踐教學體系不完備,還未自成一家、各具特色,以致畢業生實踐能力不突出,特色彰顯不夠,就業競爭力不強,培養應用型人才是當務之急,核心是要培養學生的應用能力、創新能力和工程素養。要達到本目標,就要大力加強和完善實踐教學環節,建立多層次、一體化的實踐教學體系。
曲靖師范學院信息管理與信息系統專業從2008年開辦至今,已經培養5屆學生,一直以來,我們不斷加強和完善該專業的實踐教學環節,形成了四位一體的實踐教學體系,取得了良好的效果。
2實踐教學體系的“硬件位”
實踐教學體系的“硬件位”強調實驗室建設。實驗室是開展教研的硬件基礎,沒有這個基礎,一切教研工作就是空中樓閣。我們一直重視信息管理與信息系統專業的實驗室建設。采購實驗設備的指導思想是實驗設備要先進、實用,充分滿足學生的學習和教師的教學科研的需要。
該專業已經建成硬件實驗室有2個:計算機組成原理實驗室、計算機組裝與維護實驗室,通信與網絡實驗室有2個:計算機通信實驗室、計算機網絡實驗室,信息管理類的實驗室有3個:數字庫應用實驗室、信息管理與軟件實驗室、信息技術創新實驗室。同時為適應當今云計算、大數據的大趨勢,我們投資200多萬建立了云計算平臺。
這些實驗室的更新及新建,能充分滿足學生的學習和教師的教學及科研的需要。
3實踐教學體系的 “抓手位”
專業技能訓練提升學生實踐能力的抓手,在學生的整個大學四年期間,為了在不同學期提升學生的綜合實踐能力,我們開展了貫穿大學4年的專業技能訓練。
專業技能訓練是實踐教學體系的抓手,專業技能訓練的目的是根據訓練大綱,我們應以項目為驅動來創新該專業的實踐教學體系[1],提升學生應具備的專業素養和能力,形成幾大子抓手,再作專項的打造。
我院的專業技能訓練主要包括兩個級別,一是課程設計訓練,本訓練以課程為依托,制定課程級別的訓練大綱和測試方案;二是綜合設計訓練,訓練學生綜合能力,要求學生能靈活應用所學課程,完成一個綜合性、設計性項目。
3.1 課程設計訓練
“課程設計”一個多義詞詞條。它可以指“為掌握某一課程內容所進行的設計”[2]。課程設計是課程實驗的高級環節,課程實驗是提升學生立體實踐能力的根本,課程實驗分為驗證性實驗、綜合性實驗和課程設計實驗,我們在傳統驗證性實驗的基礎上開展課程設計實驗,提升學生的課程綜合實踐能力。
信息管理與信息系統專業的核心課程有6門,分別是:Java程序設計、管理信息系統、數據庫原理、計算機網絡及實驗、管理學、經濟學。我們針對這些課程,在編寫實驗大綱時,就要求編寫課程對應的課程設計,設計方案要經過教研室的審核和信息工程學院教授委員的討論及審定。以審定通過的課程設計為依托,為后續綜合實踐能力的提升打下堅實的基礎。
以《Java程序設計》課程設計為例,課程設計的目的:利用Java語言的語法特性,結合數據結構算法、網絡知識、文件處理和數據庫等知識完成綜合題目的設計和代碼實現,并培養鍛煉分析程序、撰寫報告等能力。
3.2 綜合設計訓練
綜合設計訓練的目的是鍛煉學生綜合所學知識,設計和開發一個小項目的能力。這些項目有“ERP企業應用”、“Oracle運維管理”、“大數據管理”、“Java Web開發”等,這些小項目的訓練要基于幾門課的知識和技能,如“Java Web開發”就需要學生綜合數據庫、數據結構、軟件工程、計算機程序設計等知識與技能。
綜合設計訓練要與畢業設計區別開來,此訓練的主要目的是讓學生體驗和掌握項目開發流程,同時鍛煉綜合應用所學課程來完成一個具體的小項目。
3.3 信息管理與信息系統專業技能訓練安排
為鼓勵學生多渠道獲得技能分,我們規定,學生在校期間,通過全國計算機技術與軟件專業技術資格(水平)考試的中級資格、全國計算機等級考試的四級證書、思科(微軟、ORACLE、華為、H3C或銳捷)的工程師級別認證、中級會計師,可獲得3個學分;通過全國計算機技術與軟件專業技術資格(水平)考試的高級資格、思科(微軟、ORACLE、華為、H3C或銳捷)的高級工程師級別認證,可獲得4個學分。
4實踐教學體系的“信息系統開發能力位”
本專業的學生要求具體一定和信息系統開發能力,該能力通過畢業論文(設計)來煉成。畢業論文(設計)是教學過程的最后階段采用的一種總結性的實踐教學環節。通過畢業設計,學生可以綜合應用所學的各種理論知識和技能,進行全面、系統、嚴格的技術及基本能力的練習。[3]畢業論文(設計)是實踐教學體系的技能整合,我院對畢業論文(設計)作重大改革,著力打造學生綜合實踐能力
參加畢業論文(設計)的學生分兩部分,一部分在公司實習,同時要在公司完成畢業設計工作,余下的學生在校內完成畢業論文工作,為提高畢業論文(設計)的質量,經向教務處請示,允許我院結合專業實踐性強的實際,改革本專業畢業論文(設計)工作。改革思路包括三點,一是我院學生的畢業論文(設計)以畢業設計為主,弱化對學生文本的要求,強化對實踐動作能力的提升和檢查,二是做好規范管理工作,制定相關文件,如:“信息工程學院畢業論文(設計)工作規定”、 “信息工程學院畢業設計開發文檔的撰寫與打印規范” 、“信息工程學院畢業設計開發文檔”等。
5實踐教學體系的“校企合作位”
為提升學生的實習水平,滿足用人單位的需求。我們自2013年開始,與四川華迪信息技術有限公司開展畢業實習合作,該公司是一家集軟件外包、信息服務、學生專業技能培訓為一體的軟件公司,在全國小有名氣。學生參加校企合作實習有兩種類型,一是為期三個月的專業實習,二是為期四個月的就業培訓。三個月的專業實習分為軟件開發方向和網絡方向,軟件開發實訓重點是提升學生的軟件開發實踐能力和水平,網絡方向的實訓重點是提升學生的網絡設計、實施、部署能力。
中國軟件產業的快速增長已成為拉動我國經濟增長的關鍵點之一,要保持我國軟件產業的快速發展,必須大量培養適合軟件產業需求的軟件從業人員[1]。目前,河南省有43所軟件(職業技術)學院。學生培養模式都強調應用,注重實踐。實訓基地是各學校學生實踐教學的主要場地。近幾年,根據河南省教育廳教育事業發展規劃,省內各軟件學院都建立了自己的實訓基地,但實訓基地建設并沒有統一的標準,教學效果也存在很大差距。本文以河南大學軟件學院的實訓教學為例,分析研究軟件學院實訓基地的建設情況。
一、軟件學院實訓基地建設的指導思想
以高素質的雙師型教學團隊為依托,利用完善的校內實訓基地和相對穩定的校外實訓基地,通過構建合理的課程結構和教材體系,將課堂教學與技術實踐相結合,教學評價與人才培育相結合,建設一個以培養學生的實際操作和技能應用能力為目標的軟件學院實訓基地。
二、軟件學院實訓基地的建設內容和主要模塊
根據軟件學院實訓基地建設的指導思想,我們充分利用現有資源,加大投資力度,營造了仿真的企業化實訓環境,建立以校內實訓為中心和相對穩定的校外實訓基地,加強“雙師型”實訓教師隊伍建設[2]、實訓課程結構建設和教材體系建設,進一步健全以實訓中心為核心的基地管理模式和學生考核體系,將職業道德教育融入實訓教育過程中,建立了相對完善、標準化、規范化的人才培養實訓基地。
(1)完善的校內實訓中心
校內實訓基地主要用于培訓學生的基本技能操作,將課堂教學融入實踐中,達到學生能夠獨立完成教學實驗的目標。校內實訓基地的建設有四個原則:①仿真的企業環境,②高技術含量,③開放性好,④通用性強[3]。軟件學院需要建立軟件開發工程、軟件測試工程和網絡工程三個基本技能培養基地組成實訓中心,實訓中心的設備、工具及環境與軟件開發企業環境基本相同。校內實訓中心實行全天開放式運作模式,學生可根據學習內容自選項目進行實訓。
(2)相對穩定的校外實訓基地
要實現培養創新型、實用型和先進型人才,必須進行校企合作,建立相對穩定的高層次的校外實訓基地[4]。校外實訓基地建設有以下方法:一是和實訓機構合作,選派優秀學生到實訓機構深造,對高素質學生進行專項培養;二是與大中型企業開展深層次的校企合作,采用產學研結合、定向培養等方式,將學生送到企業進行長期實習或在企業完成畢業設計;三是與學校周邊企業合作,根據企業的用人要求選派學生到企業頂崗實習。
(3)高水平的軟件開發師資隊伍
實訓基地注重實際應用,因此,軟件學院的實訓教師必須具備“理論+實踐”的雙強型素質。培養高水平的師資隊伍是各軟件學院的一項重要任務。科技論文,指導思想。可選擇下列途徑:一是安排實訓機構對專業教師進行專門培訓,提高項目帶隊開發能力;二是可派專業教師帶領學生一起
到企業實習,既可以提高教師的實際應用能力,又可以使學生“理論有老師,實踐找導師”;三是聘請企業資深開發人員到校內實訓基地指導項目開發;四是有計劃地選派專業教師到科研院所或高校繼續深造。
(4)合理的實訓課程結構和教材體系
實訓教學既不能簡單使用以課程為驅動的學校培養模式,也不能單純應用以項目為驅動的企業培養模式,需要根據培養目標設計一種以課程和項目并行,以項目帶動課程的新模式(如圖1所示)。課程結構設置以培養學生的項目開發能力為目的,我們對專業科目進行調整,以每學期的實訓項目為主導重新設置相關課程。同時,在教學中增加實訓課程比例,每學期前六周由各專業課教師集中授課,第七、八、九周由各專業課教師帶領進行課程實訓,第十至十四周由各專業教師各帶領一組學生進行學期項目實訓;并且在最后一個學期分組開展企業綜合實踐實訓。對課程實訓項目,根據教材內容設計統一的軟件設計項目。對于學期實訓項目,根據技術發展需要安排設計軟件開發系統或子系統。在企業綜合實踐實訓方面,讓具有2—4個學期實訓項目開發經驗的學生在“高、真、開、通”的仿真企業化實訓基地進行綜合性軟件開發項目實戰訓練,并由“雙師型”或者企業的一線專家來指導,使學生有一種“學習如工作,實習如上崗”的心態,這種實訓模式一方面是培養學生解決綜合性開發的技術及能力,另一方面是為了加強學生的職業規范化訓練,完成關鍵能力的培養。
這種模式可以提供給學生更多的參與實戰的機會,既避免了學校模式中授課周期過長,過分注重理論的缺點,又避免了企業模式中理論學習周期極短,對于新手來說容易遺漏核心技術的缺點,更大程度地提高了學生實訓的質量,并且從根本上改變了目前高校普遍采用的那種學期結束時一門課程一個實驗的上機考核形式,使學生通過這種鍛煉逐步熟悉企業化的項目開發流程,達到“畢業能就業,就業能適應”的目的。
為適應上述實訓要求,在教材的編寫上我們需要采用“在固定中彰顯靈活,以更新適應變化”的策略,教材編寫以提煉基礎為主。實訓過程以精講基礎,專講項目開發為主,通過實訓平臺的使用和強化項目開發將兩者結合,徹底解決了理論教學與實踐操作“兩張皮”的格局。各實訓教材之間各有側重,既突出重點,又相互聯系,而且層層遞進,形成多層次多角度實訓教材體系。
(5)嚴格的實訓教學管理和考核
實訓教學與專業理論課教學一樣,有著本身的運行規律和特性,對教師和學生的考核評價也應有一套相應的標準,這就要求在實訓基地建設中建立規范的、符合實訓教學目的、操作性強的管理和考核評價體系。
嚴格教師和學生的管理與考核。對實訓教師實行打卡制度,嚴格規定實訓上下班時間;由學生對實訓教學成果進行評價。保證實訓過程中學生的出勤率,在實訓結束時由實訓教師給出學生的實訓表現和成績。加強對實訓教學項目開發過程的監管。對每個實訓性教學項目,指導教師都要事先列出:①實訓教學大綱;②實訓教學計劃;③實訓教學指導書;④實訓報告書;⑤實訓教學考核;⑥實訓教學總結。通過這些書面材料及時查找實訓過程中指導教師存在的問題和學生在項目開發中出現的問題。
在實訓指導模式方面,采用“導師制+導生制”的指導模式(即項目經理+學生的輔導模式),可以選擇專業方面能力較強的學生輔助項目經理在實訓過程中指導其他學生。這種實訓模式不僅能培養學生解決實際問題的技術及能力,而且還能使學生經過職業規范化訓練,完成關鍵能力的培養,以達到在校預就業的目的。
三、軟件學院實訓基地建設成效
以河南大學軟件學院為例,河南大學軟件學院以就業市場為導向,采用以校內實訓和校外實訓并重的方式,加強學生的實訓能力培養,提高學生軟件開發水平,已取得了一些成績。目前,已建立了5個專業方向的校內實訓基地,7個相對穩定的高層次校外實訓基地,經過這樣的實訓,學生實踐能力大大提高,2007年代表河南大學參加河南省第一屆互聯網應用大賽,獲一個一等獎(共設2個一等獎)、兩個三等獎;2008年在全國第四屆“正保教育杯”ITAT教育工程技能大賽中,獲一個二等獎(河南省最高獎)、兩個三等獎、三個優勝獎和優秀組織獎;在校級網絡大賽中,在48個獎項中,我院學生囊括21個獎項;2009年在全國第五屆“正保教育杯”ITAT教育工程技能大賽中,獲一個二等獎,三個三等獎,十三個優秀獎,從2007年以來,我院畢業生的就業率均在92%以上。科技論文,指導思想。科技論文,指導思想。
軟件學院實訓基地的建設是為了培養學生的實際操作和技能應用能力,達到培養有特色的基礎人才,滿足市場需求,從而使軟件學院的學生實現無縫就業或者達到在校預就業的目的。科技論文,指導思想。科技論文,指導思想。校內實訓基地具有教學設施完備、管理嚴格的特點,是學生實訓教學的主要途徑。科技論文,指導思想。所以,在實訓基地建設方面,要遵循以校內實訓基地、校外實訓基地并重的原則,在校內實訓基地的基礎上,通過克服校外實訓基地的一些缺點,使校外實訓基地建設做到“形散而神不散”,從而達到軟件學院培養高質量人才的目的。
參考文獻
[1]上海市經濟與信息發展委員會,2010年上海信息服務業發展研究報告[M],立信會計出版社,2010(6)。[2] 王美姣,王衛平。高職院校實訓基地建設的誤區及對策[J],教育與職業2007(15)。
[3]李堅利。高職教育實訓基地建設的探索與實踐[J],職業技術教育2003(22)。
[摘 要]本論文以長春職業技術學院程序設計基礎課程的課程建設目的、意義、特色、課程目標、主要內容、關鍵問題、方案、落實措施等幾方面進行探索與研究。
[關鍵詞]程序設計基礎 案例 工作過程
作為職業院校,我們的辦學初衷是為社會培養各類急需的實用型人才,而作為專門培養軟件人才的我院示范專業的軟件技術專業教師,我們深感開發《程序設計基礎》這門課程的重要性與緊迫性。綜上所述,我們軟件教研室在示范專業建設中對該課程進行了大膽的開發與創新。在本課程開發的同時,我們進行了本課題的立項工作。綜上所述,該課題的研究目的歸納如下:
(1)教師按照標準化的軟件開發流程進行案例的設計,使學生由淺入深、循序漸進地掌握程序設計基礎的基本技能。
(2)學生在綜合運用相關軟件工程理論知識基礎上,通過教師對案例的分析與講解,能利用程序設計基礎課程相關技術進行項目設計。最終能成為企事業單位需要的標準規范、自動化程度高、滿足客戶要求的程序設計基礎方面的技術服務人員。
(3)培養學生高度的工作責任感、自信心,和實事求是的做事風格。真正的讓踏入測試行業的學生,成為IT公司產品出貨前的把關人。
一、意義
本課程是軟件技術專業中的一門專業技術課程,我院在該課程的教學研究和改革中逐步樹立了“以實踐教學、案例教學為核心,理論服務于實踐”的指導思想,突出職業能力的培養,體現基于職業崗位分析和具體工作過程的課程設計理念,以真實的程序設計基礎案例為載體組織教學內容。
通過本課題的實驗研究,明確程序設計基礎在軟件開發流程中的作用和地位,并確定具體的教學內容與教學方法;通過本課題的實驗研究,探索程序設計基礎在提高教學效益方面的方法和策略,提高學生程序設計基礎技能;通過本課題的實驗研究,培養出一批社會緊缺的程序設計基礎人才,提高軟件編寫質量,大大提高企業生產效益,同時能夠適應軟件外包和國際化軟件開發的中高端軟件開發人才的需求迅猛發展。
二、特色
該課題的特色也是該課程在我們示范專業開發過程中所體現的創新之處。
我們本著“教中做、做中教、學中做”的指導思想,通過案例教學培養學生動手能力和專業技能。以“工作過程為導向”,一方面可以在軟件開發中運用程序設計基礎技術提高軟件質量,另一方面通過對程序設計基礎崗位技能的學習,達到掌握軟件開發的應用能力。
三、主要內容:
走訪軟件企業對程序設計基礎人員的需求進行調查研究,對程序設計基礎在教學活動中重要作用的必要性的調查研究,形成調研報告。結合企業真實項目開發典型案例、拓展案例和綜合項目,形成案例庫。教師在各課程中有針對性進行程序設計基礎的設計與研究,并進行及時的反思、評價。歸納出程序設計基礎環境在軟件開發實施方法、步驟。實踐技能測試題庫建設。教學課件建設。能夠適應各個模塊之間的程序設計基礎方法設計,使得程序設計基礎貫穿于全課程,從而提高軟件的安全性和可靠性。
四、關鍵問題
(1)教學案例的選擇及設計模塊建設
(2)程序設計基礎工具的選擇及過程模塊建設
五、方案
本課題以案例研究為主導,輔之以下研究方法:
(1)調查研究法:采用問卷調查、個別談話和學生座談相結合的方法,對學生的實際思想、需求和學生的心理特點等現狀,進行科學的調查研究。
(2)案例研究法:引導教師用信息技術和學科課程解構與重構的相關理論,剖析研究過程中的 典型案例,形成在整合教學中有效支撐的案例集。
(3)經驗總結法:在教師個人實踐的基礎上,定期聘請軟件企業、行業專家開展研討、交流活動,通過研討總結,逐步形成程序設計基礎整合的方法和途徑。
(4)行動研究法:搜集與本課題有關的信息和資料,拓寬思路,提供更為完善的方法,擬訂總體研究計劃,根據總體情況,制訂具體計劃,積極開展有效的行動研究,及時總結評價,調整研究方向。
(5)成果分析法
收集整理各方面的研究成果和資料,包括論文、課件、測試用例等,歸納總結。
六、落實措施
本課題的落實措施思路為:
收集和整理中外有關企業程序設計基礎的經典案例,開展專題理論研究,形成專題研究論文。開展程序設計基礎課程課堂案例分析和調研,形成調研報告。召開1—2次小型學術研討會,對本課題的有關理論和實踐問題進行研討。收集材料,分析整理測試用例。形成最終研究成果。
1理論課程設置
第1學年以基礎課程為主,包括基礎理論類課程、專業基礎知識類課程以及基本編程技術類課程。為了強化學生的動手能力,我們還增設了C++程序設計以及程序設計實踐2門課程。特別是,HIT-NPSS本科生第1學年還開設了IT職業道德、交流技巧以及IT企業管理3門管理類課程,重點培養學生的團結協作能力等職業素養。基于以上課程設置,學生在完成第1學年的學習任務后,能夠扎實掌握計算機基礎知識,養成良好的編程習慣,提高交流和表達能力。第2學年以計算機軟件系統類課程為重點。通過數據結構與算法、操作系統、數據庫系統以及計算機網絡等課程幫助學生打下良好的計算機軟件系統理論基礎;通過軟件工程課程幫助學生加深對軟件開發生命周期的理解;通過面向對象技術與UML、Java編程技術以及軟件開發實踐等課程提高學生的軟件開發能力和實踐技能。此外,為了增強學生對現實IT工業領域的了解,該學年還開設市場營銷學、合同法以及財務管理3門管理類課程,這也是HIT-NPSS課程體系的特別之處。第3學年是學生在校內學習的最后一年,完成第3學年的課程學習后,所有學生將到IT企業進行為期一年的工業實習。第3學年的課程主要為了培養學生解決問題的能力和計算機技術應用能力。開設的課程包括編譯原理、多核程序設計、面向服務的計算技術、用戶界面設計、算法設計與分析以及軟件測試與質量保證等。由于軟件工程領域覆蓋面較廣,按照個性化的教育理念,HIT-NPSS軟件工程本科專業下設網絡通信與信息安全、服務科學與企業信息化、多媒體與信息處理以及嵌入式系統與軟件4個專業方向,各方向按照培養學生相關專業技術和實踐能力的目標分別設置不同的專業課程。在此基礎上,本學年還開設了軟件開發過程管理、項目管理、商務談判及知識產權法4門課程,以培養學生的專業素養,為第4年的工業實習打下良好的基礎。
2逐步工業化實踐環節
為逐步實現工業化教育目標,HIT-NPSS在每學年理論課程的基礎上,分別設置了以下實踐內容:(1)大學生創新項目。大學生創新項目以“興趣驅動、自主實驗、重在過程”為原則,在第1學期課程結束后,要求學生以項目組形式自主完成軟件研發課題。對于課題的選擇,學院并沒有統一規定,學生可以按照各自興趣選題并分組。為了鼓勵和支持學生的創新研究,學院將為各組安排一名指導教師,對軟件開發的全過程進行監督和指導。學生利用課余時間完成創新項目,在第1學年結束前學院將對各組的創新項目進行評審,對前10名予以獎勵。經過幾年的實踐,大學生創新項目已經成為HIT-NPSS一大文化特色。(2)短期企業實訓。企業實訓是HIT-NPSS課程體系的一個重要組成部分。在第2學年的第2學期,學生將被分配到指定的企業基地進行為期4周的學習和訓練。整個實訓過程以實際項目開發為主導,中間穿插工具類、職業規劃類等培訓課程,學生在IT企業環境中參與企業項目開發,體驗從需求分析、系統設計、編碼實現、測試及交付使用的軟件開發全過程。短期企業實訓為學生提供了接觸企業實際項目、發現自身興趣和不足的良好機會。(3)軟件工程實踐。軟件工程實踐在第3學年的第2學期進行,是逐步工業化教育的第3步,要求學生以分組的形式在2周時間內完成一個軟件系統的開發。與短期企業實訓相比,軟件工程實踐過程中學生要獨立完成軟件開發生命周期的各個階段。通過軟件工程實踐,學生的編程能力、解決問題能力、一般平臺應用能力、流行工具軟件的使用能力以及項目管理能力將得到全面提升,這也為第4學年的工業實踐打下良好基礎。
3企業實習
軟件工程專業本科生第4學年將在IT企業實習中,完成具有一定技術難度和較大工作量的技術方案設計和軟件開發等工作,并在此基礎上完成(撰寫)本科畢業論文。通過工業實習,學生的軟件開發能力、工程實踐能力以及自學能力都將得到大幅度提高,完成學生到企業員工的軟件產業人才的逐步轉變。(1)雙導師機制。HIT-NPSS要求所有的學生必須在IT企業進行至少一年的工業實習。為了保證課堂學習向工業實踐的平穩過渡,學院不僅要幫助學生選擇合適的實習基地,還要幫助學生確定指導教師。為此,HIT-NPSS提出了雙導師機制,即學生在校內和校外(實習基地)各選擇一名指導教師,校外導師主要負責指導學生軟件項目開發,校內導師主要負責指導學生畢業論文撰寫。HIT-NPSS要求軟件工程專業本科生的畢業論文要基于其工業實習期間直接參與的軟件工程項目,雙導師機制不僅能夠幫助學生填補不同領域的知識空白,還能夠有效建立起大學和IT企業的溝通橋梁,保證學生工業實踐和畢業論文的順利進行。(2)實習監管方法。在雙導師機制的基礎上,HIT-NPSS通過開題檢查、中期檢查以及結題驗收對學生的整個實習過程進行監管。在工業實習的前3個月內,學生必須在校內導師和校外導師的共同指導下完成論文開題報告,即確定論文題目、主要內容以及關鍵技術等。在工業實習3個月后,學院將到實習基地對學生的選題情況進行檢查,爭取盡早發現存在的問題并對學生進行有效指導。中期檢查將在選題后的3個月內進行,檢查過程與開題檢查相似,目的是檢查學生的工作進展是否符合開題報告中的日程安排,幫助學生解決實習中的問題與困難。此外,中期檢查也是學院與實習企業交流學生實習表現、調整未來實習派遣計劃的重要手段。結題驗收是學生工業實習結束前的最后一次檢查,一般在實習基地進行,在學生展示自己的工作內容后,由企業顧問和校方專家共同評估其實習情況。截至2013年,HIT-NPSS已有2937名學生在200家IT企業完成了工業實習。
4校企合作模式
為充分發揮企業在工業化人才培養過程中的作用,HIT-NPSS采用多種模式加強校企合作。主要合作模式包括以下幾種:(1)校企合作高峰會。校企合作高峰會以不同的主題每年舉辦一次,是高校和企業高層以及產業高級人員共商共計的重要平臺,有效促進了校企之間的溝通與合作,對全面實施卓越工程師培養計劃起到了巨大推動作用。截至2013年,HIT-NPSS已成功舉辦了多屆校企合作高峰會,累計邀請過220余家企業參會,并與中興通訊股份有限公司、金山軟件有限公司、浪潮集團等50多家知名企業保持著長期合作關系。(2)校內工業實踐基地。在廣泛開展校外工業實習的同時,HIT-NPSS也與哈爾濱本地軟件公司合作,在校內建立工業實習環境,提高學生的軟件開發能力。學生可在校內工業實習基地進入企業的項目組,參與具體項目的開發。目前,哈工大首創科技股份有限公司、哈工大慧通新意信息技術有限公司、黑龍江省計算機網絡與軟件評測中心等公司已進駐校內實習基地。(3)聯合實驗室。聯合實驗室是校企合作的另一種模式,主要用于教學和軟件開發實踐,由軟件學院負責提供場地和設備,由企業提供開發平臺和各種工具軟件,并由企業定期為軟件學院的師生開設專題講座,進行相關指導。目前,HIT-NPSS已與浪潮通用軟件公司、金山軟件股份公司和英特爾亞太研發有限公司共同建立了聯合實驗室。聯合實驗室的建立,為軟件學院建立科學的課程體系和工業化實踐教學管理方法,實現工業化軟件人才的培養創造了良好條件。(4)學生俱樂部。學生俱樂部是由軟件學院和軟件公司共同支持的實踐類學生社團組織。學生俱樂部依托實際項目、模擬企業真實經營環境,有效培養學生的IT實踐經驗和創新能力,同時加強校企技術交流[3]。目前HIT-NPSS已組建起亦飛、零度、騰訊等7個學生俱樂部。其中,亦飛俱樂部由阿里巴巴集團支持在2003年創建;零度俱樂部由金山軟件股份公司支持在2004年創建;騰訊俱樂部由騰訊科技有限公司支持于2005年創建。(5)企業家論壇。HIT-NPSS于2003年發起了企業家論壇活動,主要形式是邀請國內外著名企業家到校進行講座或演講。論壇的宗旨是讓學生了解行業動態、把握領先技術、了解企業發展歷程,以實現活躍校園氣氛、開拓學生視野、樹立企業形象的最終目標,同時促進企業與哈工大軟件學院的相互了解與廣泛合作。到目前為止,HIT-NPSS已經邀請了30余名知名企業家作為演講嘉賓。(6)青年校友論壇。青年校友論壇是HIT-NPSS品牌活動企業家論壇的進一步延伸。青年校友論壇的演講嘉賓主要是軟件學院的畢業生,在企業工作2年以上。青年校友論壇是在校學生與學長們交流的平臺,大家一同分享上學的心得、實習的體會、工作后的經歷。青年校友論壇的創辦宗旨是進一步落實學院的工業化教育模式,深化學院工業化辦學理念。到目前為止,已邀請過10余名畢業生重返母校作為論壇嘉賓,青年校友論壇成為HIT-NPSS工業化教育模式中不可或缺的一部分。
二、學生就業情況
0 引言
文獻1論述什么是整體項目模式以及整體項目模式的優缺點,文獻2論述整體項目模式下軟件工程專業的教學體系結構,同時也提到軟件工程專業教學方面的要求,主要是針對教師的要求。在實際過程中,整體項目模式下軟件工程專業的課程教學較為復雜。首先,需要理清專業課程之間的相互關系;其次,需要明確專業課程和項目過程之間的關系;第三,需要掌握專業課程教學和實際項目之間的切入點、重點和難點;最后,學生要能切實根據自己所做的項目,從不同的側面或教學內容方面書寫項目文檔,并認識到同一項目可以從不同的角度進行分析、設計和編程。
傳統的專業課程項目教學和整體項目模式下的專業課程教學存在很大區別。傳統的專業課程項目教學主要是沒有從整體項目模式考慮教學問題,割裂了專業課程之間的相互聯系,只從該課程的教學內容方面列舉案例,學生對教學內容的認識具有片面性和局限性,不能建立起對知識體系的整體觀念。在實踐教學過程中,學生曾經提出過很多問題:軟件工程和結構化設計、面向對象設計有什么不同?它們之間有什么聯系?為什么要學習面向對象?不學習可以嗎?作為一個專業課任教師,如何進行解釋?如果學生有足夠的項目經驗,前期是否一定要有詳細的分析和設計文檔?針對最后一個問題,若是不具備豐富項目經驗的教師回答,那答案是一定要有詳細的分析和設計文檔;但是實踐經驗豐富的教師則認為這個問題的答案是不一定的。小型或者微型項目的前期不一定要有詳細的分析和設計文檔,可以直接在編程過程中進行分析和設計,那么這是否違反了軟件工程呢?當然,答案也是否定的。如教師在講授面向對象的軟件開發方法課程時,必須強調某一開發方法的優缺點,可以綜合運用其他開發方法如結構化分析方法、形式化編程,甚至弱化分析過程,強化設計和編碼過程,主要目的是明確整體項目開發過程。
1 軟件開發流程和系列課程之間的關系
1.1整體項目模式下軟件工程專業教學體系結構
任何課程的設置不能脫離教學體系結構。一個好的教學體系結構能夠幫助學生在頭腦中樹立完整的知識結構,讓學生主動獲取相關知識。在教學過程中,教師首先要明確該課程在整個教學體系結構中的位置,建立項目開發過程的全局觀。文獻2中建立的整體項目驅動模式下軟件工程專業教學體系結構如圖1所示。
從圖1中可以看出,項目Bus橫貫整個專業課程,教師和學生各自只使用同一個項目案例貫穿于系列課程中,從而從不同的角度讓教師講授、學生學習同一個項目的相關內容。
1.2軟件開發過程流程
圖2所示是筆者在軟件開發過程中總結出來的一套軟件工程專業軟件開發過程流程,包括軟件開發過程、軟件工程文檔、軟件標準規范、實際軟件開發規程等方面的內容。在每一門課程的開始和結束階段,筆者都要將該圖展示出來,讓學生明確自己已經學到了哪些內容,還存在哪些欠缺。
1.3軟件開發過程對應的專業課程設置
筆者有幸為中南民族大學軟件工程專業以及本校與美國威斯康星大學合辦的3+2軟件工程國際合作試點班的學生講授部分專業課程,包括軟件工程、軟件測試、用戶界面設計、軟件項目管理、面向對象的軟件開發方法5門課程。對于相關的其他專業課程,我們將不做說明,如CMMI、軟件過程、軟件質量保證等。
這些課程與軟件開發過程流程是一一對應的關系。軟件工程課程是專業核心課程,涉及內容廣泛,是其他專業課程的基礎,也是整個軟件開發過程流程的基礎,主要內容包括軟件需求提取、分析、設計、測試、維護變更管理以及軟件質量控制、軟件項目管理、軟件開發配置變更管理、軟件開發標準以及軟件開發方法。軟件測試貫穿軟件開發過程的始終,包括用戶需求的確認、用戶界面的確認以及單元測試、集成測試、系統測試、Alpha/Bete詛測試、評審、驗收等內容。用戶界面設計主要包括軟件界面設計理論、原則和規范,在實際軟件開發過程中,是圖2中的系統概要設計/用戶界面驅動分析部分,通過與用戶反復溝通確認需求,是測試的基礎,同時也是軟件編碼階段、評審、驗收階段的依據。軟件項目管理主要對軟件的質量、成本和進度進行管理和控制,同時考慮如何在軟件開發過程中避免不必要的風險或者降低風險的影響。面向對象的軟件開發方法著重于軟件開發過程中面向對象的需求分析和設計,包括用戶分析、界面設計、類模型、動態模型、狀態模型等一系列的分析和設計。
這5門專業課程從不同的側面講解軟件項目的開發過程和方法,各有特點。但是對于為什么要學習這幾門課程,以及它們在軟件開發過程中處于什么樣的位置,起到什么樣的作用,是教師在教學之初就應該明確的。
2 整體項目模式下系列課程的教學
根據整體項目模式原理,實踐項目應貫穿到各專業課程之中,系列課程最好使用同一項目,這樣更能加強學生理解軟件開發過程的不同方面。該項目在專業課程開始之前就必須存在,即已經完成或正在進行中的實踐項目,因此,系列課程必須是相互聯系并且能基于同一項目案例,這和傳統的項目教學方式雖然模式一致,但是效果卻有本質的不同。圖3為系列專業課程的項目案例、課程和學生實踐案例示意圖,5門課程都基于同一實際項目案例,學生根據自己所做的項目,按照不同專業課程要求的格式和內容書寫相關文檔。
2.1先案例后理論的案例驅動教學模式
軟件工程專業的特點是實踐性非常強,軟件工程的很多理論都來源于對實踐的總結和歸納。因此,教師在教學過程中采用先案例后理論的案例驅動教學模式,符合軟件工程專業的授課特點。
首先,教師要講解實際項目案例的文檔,該文檔是一套完整的、從不同側面反映軟件開發過程的實際文檔。對于每一門專業課,教師首先講解需求提取、需求分析過程、功能提取、系統功能結構框圖等,讓學生明確該系統的背景和要解決的問題,以及需要具備什么樣的功能以實現目標。
其次,教師要聯系實際項目案例,講解課本上的理論,將每個理論知識點與實際的項目案例相結合,讓學生充分理解理論。在實際講解過程中,對于新開課,新教師若碰到教學學時偏少的狀況,可以言簡意賅地講解重點知識;實踐經驗豐富的教師,碰到學時偏少的情況可以精簡案例功能,講解1~2個功能即可。
最后,教師必須強調實踐的重要性并給出標準的文檔規范,要求學生按照自己的實際項目書寫標準的文檔。在每一門課程講解完畢后,教師再一次幫助學生回顧該課程在軟件開發過程中的位置。
以軟件項目管理為例,在正式進入課程教學之前,教師需要做大量的工作,首先需要準備的文檔有項目需求、項目需求分析報告、可行性分析報告、項目開發計劃書、項目Demo程序演示、軟件項目投標書、軟件項目開發合同。然后,開始進人軟件開發項目管理過程教學,軟件項目主要內容有成本管理、進度管理、人員管理、風險控制等理論內容。實際的軟件項目管理主要分為4個階段:IT項目的啟動階段、IT項目的計劃階段、IT項目的執行控制階段、IT項目的收尾階段,這在一般的教材中很少提及,但是教師在內容講解中要明確階段任務。IT項目的計劃階段涉及48個文檔;IT項目的執行控制階段涉及45個文檔;IT項目的收尾階段涉及14個文檔。
教師在講解合同的內容時,可以直接參照“軟件項目開發合同”進行講解。對于必不可少的合同內容,教師就必須跟學生講清為什么必須要包含這些內容;講解成本計算的時候,根據文檔“工作包、進度和預算”進行項目的WBS分解以及基本的估算方法。
總之,由于教材先理論后案例的局限性,在聽課之初,學生覺得枯燥乏味。而教師通過先案例的方式能有效調動學生在課堂上的學習積極性,為后面的項目實踐奠定基礎。
2.2學生項目實踐環節
每一門專業課都有上機實踐部分,學生在實踐課上主要是書寫文檔。每門專業課都有各自不同的文檔,軟件工程課程要求學生必須完成標準的13個文檔;軟件測試課程需要軟件測試報告文檔;軟件項目管理課程有127個文檔;面向對象的軟件分析方法課程有包含9大部分內容的軟件項目分析與設計文檔。每一門課程的文檔內容非常多,要求每個學生最好獨立完成,主要訓練每一個學生的文檔書寫和理解能力。
需要強調的是,學生書寫的項目文檔一定要給出標準的、規范的文檔格式,包括目錄、段落、標題、字體等排版之類的要求。項目模板可以采用軟件工程國標文檔或者相關的其他標準文檔,最好和某一軟件公司的案例文檔格式相一致。筆者在軟件公司任職過程中,很多剛參加工作的大學生書寫文檔的水平非常差,主要是文檔格式、結構和內容混亂,往往給人留下非常不好的印象。整體項目驅動模式下的課程教學,首先強調的就是文檔格式和正確的文檔排版,其次才是內容的正確性與完整性。
在學生項目實踐中,任課教師最好跟蹤指導。學生每次在實驗課上必須完成相應的實驗,并把實驗的電子文檔通過教學資源管理系統或以電子郵件的方式提交給教師。電子文檔的批改能快速糾正學生文檔格式不規范以及內容方面的錯誤,但這個工作量往往很大,每一次電子作業批改的工作量往往是學生數量的3~4倍。這是因為學生按照批改意見進行修改后又會返回給教師,最終達到合格標準的電子文檔往往會被修改2~4次。
2.3考核方式
完成每門課程的項目文檔是學生對文檔書寫熟練程度以及課程內容理解的直接反映,也是培養軟件開發過程中需要具備的素養和習慣的有效途徑,克服學生疏于或懶于書寫文檔的缺陷。因此,教師需要對學生書寫的項目文檔進行考核并將其反映在學生成績上。項目文檔的成績占學生總成績比例的30%~50%較為合理。
2.4教學效果
筆者經過近2年的教學實踐,取得了良好教學效果。以中南民族大學軟件工程專業2008級學生為例,首先,學生很順利地完成了各自的軟件項目,包括中南民族大學學生基金項目;其次,學生能很好地書寫申請軟件項目著作權系列文檔以及畢業論文,書寫的文檔格式規范,只需稍加修改就能將文檔立即轉化成學術論文并發表。這表明學生無論是在文檔格式還是在內容編排上都取得了進步,進一步提高了在軟件開發過程中應有的素質。這也是軟件工程專業學生和計算機其他專業學生之間非常明顯的差別。