林廣艷 麥中凡
摘要:軟件工程碩士是我國面向企事業單位培養的高層次、實用性、復合型軟件人才,其畢業生撰寫的論文通常以工程報告型為主。對于如何撰寫研究型論文,已經有比較成型的模式,但如何撰寫工程報告目前還存在較大爭議。本文總結了筆者多年的論文指導實踐工作,針對工程報告類論文的目標定位及其論文撰寫中常見的困惑,提出了自己的處理思路,并在此基礎上提出了工程報告類論文的基本結構,希望為工程報類論文的撰寫提供指導。
關鍵詞:軟件工程碩士;工程報告型論文;研究型論文;論文撰寫
中圖分類號:G642 文獻標識碼:B
對學位教育而言,畢業設計(論文)是對學生數年所學知識的一次檢閱,以某個問題的解決為依托,表現作者的能力和水平(包括知識、技術和寫作表達水平)。一般按所在專業職場選題,以本專業術語、概念、方法陳述問題的解,并論證本解決方案可行和結論的正確。最重要的是突出本文的創新。因為論文是給人看的,是對本論題的新做法、新理解,或新結論。哪怕是只有一點點參考價值,也是論文的價值所在,屬作者的知識產權。通篇無創新的論文是毫無意義的。軟件學院軟件工程碩士培養目標是面向國民經濟信息化建設和發展需要、面向企事業單位對各類軟件工程人才需求,培養高層次實用型、復合型軟件工程人才,自然撰寫工程報告型論文居多。本文擬為軟件學院作工程型畢業論文的學生提出一些參考意見。
1工程報告型論文
眾所周知,畢業論文有理論型、研究型和工程型三種類型。軟件學院的工程碩士按現有的培養方案,至少要有一年的企業工程實踐,結合工作選作工程型課題是很自然的,但不等于說只限于工程型。比如該企業研究所作一探索型的原型開發,那么就要作研究型的課題。甚至為了原理和方法的完備要作理論型課題。之所以分為三種類型是論文的內容結構形式不一樣。
理論型課題在于創新性和嚴謹性,在設定的前提與假設下證明所提出的原理、方法的正確性。即前提加規則可導出結論,并給出數學或形式證明,或給出實例驗證的數據和圖表。因數學和形式證明不強調實例的完備性和實用性,故比驗證更具普適性。
研究型課題是新原理、新方法的首次應用,以及對實踐結果(工程原型)作出評價。只求研究點的完整正確,不求實用,是理論到實踐的實施過程,不像理論型只注重結果,而是過程和結果均重要。
工程型論文一般以工程制作(最常見為工程項目)為背景,是已有原理、方法、技術在目標系統上的綜合實現。如果是前所未有的綜合實現,也屬創新。創新可以在實現過程上,也可以在過程某些環節的技術層面上,如同樣采用新的調試方法,同樣功能設計新算法等。總之,不能和相同類型的論文雷同(因為采用的技術步驟相差無幾),要有自己特色。工程型論文要求論文系統完整(在概念上的,而非完整文檔,如三個相似模塊均要提到,但只詳述其中一個),所述的背景項目是可實用的,是本人在工程實踐中的總結和提高。論述的重點可以是工程過程改進、工廠技術改進、管理完善、社會效益等,非常重視驗證數據和量化指標,如測試用例15組等。
軟件學院的軟件工程碩士培養目標強調實用型人才,所以論文選題以工程型為主,但不等于只作工程型選題,因為科學技術的發展,都是在解決工程實踐中的難題,也因此才有原型研究,才有理論探索,所以在工程型論文中嵌入小型算法推導、部分原型研制也是極其自然的。
2常見的困惑
盡管大家對論文撰寫的基本要求比較了解,但在實際撰寫中經常會碰到許多困惑,歸結起來可以分為論文層次、內容、與工作的關系、讀者層次把握幾個方面,下面談談我們對這些問題的認識。
2.1論文是對工作的總結和提高
一年工作下來有許多體會,實際工作有的寫了不少代碼,有的寫了不少文檔,有的代碼文檔都很少,討論方案、協調需求居多,要寫出相對完整的論文不知從何下手。
論文不是工作匯報
論文要講一個相對完整的“故事”。一年換了三個地方,每個地方都是協調別人工作,也編寫了不少程序代碼——寫什么?把你最得意有收獲的地方編到一個“故事”中,所以不是干什么,寫什么。為了故事的系統性,有些工作就寫不進去了,要舍得丟棄。要系統完整則會把別人的工作寫進來,那么就得尊重知識產權,交待了原理功能特色之后要聲明××地方是別人做的,也不要著力發揮。
論文要反映學術價值,不反映勞動價值
畢業論文屬學術論文范疇,你開發數萬行代碼,加了不少班,在極不理想環境下完成了任務,但原理方法都很一般,說不出什么,怎么寫?只談“功勞”,不談“苦勞”,最多只能在行文中說明本項目工作量不小,影響或學術成果更高。把重點放在你對問題的分析上,解決同樣的問題有很多種方法,要有針對性地分析這些方法的優勢與不足,說明你采用某種方法的理由。
2.2論文要有中心論點
反問一下,這篇論文到底要突出什么問題?工程報告類論文仍然是論文,因此要有中心論點。在撰寫中需要注意幾個問題:一是與工程文檔的區別,文檔更注重結論的陳述,要求全面翔實。論文強調結論的導出過程,要充分突出“論”字。二是不同于一般的報告,論述、評價要客觀,實事求是,切忌夸大的商業用語。切忌為了表現水平抄一些與本主題無關的功能、性能和用途。
在說明自己論點正確時,所用術語不能錯,要掌握本課題當前發展方向,要站在正確的立場談過時的技術,因為每種軟件技術都只能在限定的條件下起作用。因此,大量抄錄,沒有觀點、論點的論文不是好論文。
論文中應明確表述:在什么背景下,討論什么問題,范圍如何限定。本文要討論的問題當前非研究解決不可的理由,國內外解決此問題的途經,本文將采取什么途經?對于首次應用于我國某行業的成熟技術論述的重點在具體實現上,對于非首次實現的技術應該明確給出被采用的理由,如出于成本考慮,或某項性能考慮等。
2.3論文面向的讀者是本專業研究生層次
論文強調邏輯性,工程課題強調概念動作要以業務動作導出各項需求,要求什么技術,相互為何關聯,需要什么樣的基礎設施支持,象講故事一樣談原理和機制。盡量不要指定關鍵、重點,而是在行文中突出重點,所以每章小結可以起到畫龍點睛作用,不怕重復。不要以為自己知道的別人一定知道。論文的讀者水平應設定為與你具有同樣研究生水平,但不做你這個課題的人,所以有些概念術語要介紹。高水平的幾句話就可說明,難度大的要講詳細,切忌忽高忽低。還要避免大段代碼、圖或表的堆砌問題。
3論文的形式結構
學習過軟件工程,軟件學院的工程型論文最好寫,基本上按背景項目的工程過程寫。下面談談如何撰寫以“×××系統的設計與實現”為題的工程報告類論文。這類論文是以解決實際應用問題為驅動力,因此,建議論文結構包括緒論、系統需求分析、系統解決方案、系統詳細設計與實現、系統測試與部署、總結與展望幾個部分。
因為是將是否解決實際問題作為主要考察點,因此在論文的緒論部分,應以最簡捷的方式向讀者介紹與本論文主體相關的待建系統所依托公司或組織的背景,說明論文的價值。如果要構建這樣一個系統,接下來要考慮的問題是要建成一個什么樣的系統。在國內外現狀分析中,應針對目前國內、國外同類產品進行比較,其目的有二:一是了解構建這樣一個系統應具備哪些基本功能;另一方面要說明盡管市面上有很多(也可能沒有)同類產品,但以實用、價廉或知識產權等因素綜合考慮后,無法通過商購實現目標,因此做出自己開發的決定的理由。接下來明確系統的建設目標和需要重點解決的關鍵問題。
第一部分主要是交待背景,明確待建系統目標。第二部分則要描述具體要解決的問題,即系統需求分析。需求分析中最好首先對待建系統所承載的業務進行概述,使讀者盡快進入業務語境。業務概述中應重點描述當前阻礙業務發展的主要問題,它們也是待建系統需要重點解決的問題,為后續的功能需求和非功能需求分析做鋪墊。這部分要把系統的關鍵需求談透,以便后續章節可以集中精力論述設計與實現方案的探討。
論文的第三部分是系統解決方案。這部分最好從需求分析中提出的關鍵問題入手,逐一探討對系統影響面大,或技術實現風險大,或涉及用戶商業決策等的問題,給出針對本系統的最佳解決策略,然后匯總成系統總體架構,最后給出系統的模塊劃分。
如果本項目采用的是新技術,新規范,新平臺工具或部分新原理,則在需求分析前后,開辟一章介紹這個新技術、新規范、新平臺工具、新原理,如軟件Apach剛出,第一次采用Vista操作系統等,并作為本論文的重要技術內容。
論文第四部分是系統的詳細設計與實現。論文只談工程實現中有特點的子系統/模塊,如果一點兒特色沒有,誰來都會這么干,就籠統論述有多少模塊/對象,用什么工具開發,要什么支持,怎樣集成的。如果有必要寫,則重點討論某些有代表性的重要模塊的詳細設計與實現思路。如具體算法復雜,或技術實現難度大、工作量大等,對于實現情況類似的模塊則一帶而過(這也是文檔與論文的區別)。
論文第五部分是系統測試與部署。該部分應針對待建系統特點有針對性地提出測試部分需要重點驗證與確認的主要需求指標,并選擇具體的測試策略和測試過程。討論系統部署中需要注意的問題。最后給出系統的總體評價。在此部分需要注意的是,該部分是對需求分析部分提出的要求回應做得如何的直接體現。因為是以解決實際問題為驅動力,因此做的結果非常重要,如果沒有這部分,論文的實際意義就不存在了。
論文的第六部分是總結與展望,主要是在總結成績的情況下,談談以后如何克服不足。最好首先總結自己的論文工作及后續的改進,然后抒發較理想的結果(從工程技術角度)。
上述論文結構對大家并不陌生,但能寫好的關鍵是在全篇中都以解決實際問題為源動力,所有技術、方案的優劣都以是否在組織現有資源可承受的范圍內提出最適合的解決方案為目標,這實質就是在貫徹軟件工程的思想。
4結束語
對于軟件工程碩士研究生來說,作為基本要求“能干活”,都能達到,但能干活的同時又能寫出好論文的學生卻相對匱乏,這也是我國軟件高層次人才斷檔的主要原因。能寫出直接指導實際工作的好論文的人,一定工作完成也很好。因為好的實踐總結的出爐,不但需要有大量的實踐積累,同時還必須具備在實踐中勤于思考、善于總結、抽象提煉的良好習慣。軟件工程碩士論文撰寫能力的訓練正是為了培養學生在實踐中思考、總結與提高的能力,以期在后續工作中能更好地舉一反三,不斷進步。
參考文獻:
[1] 北京航空航天大學軟件學院. 北京航空航天大學軟件學院軟件工程碩士培養方案[Z]. 2003.
[2] 教育部高等教育司. 高等學校畢業設計(論文)指導手冊——電子信息卷[M]. 北京:高等教育出版社,1998.