黃杰 唐劍鋒 嚴海洲



摘 ?要:軟件工程經濟學是中國軟件工程知識體系(C-SWEBOK)核心知識域之一,是一門新興的多學科交叉課程。根據軟件工程專業新工科教改培養復合型人才的需求以及課程教學面臨的挑戰,作者構建了課程實驗教學項目框架,實踐證明,課內實驗教學有助于學生快速獲得學習并掌握相關知識的獲得感。
關鍵詞:軟件工程經濟學;實驗項目框架;實驗案例
中圖分類號:G642 ? ? ? 文獻標志碼:A ? ? ? ? 文章編號:2096-000X(2020)21-0135-03
Abstract: Software engineering economics is one of the core knowledge domains of C-SWEBOK, which is a new interdisciplinary course. According to the needs of training compound talents in the emerging engineering teaching reform of software engineering discipline, in response to the challenges faced by the course teaching, the author has constructed the framework of the course experiment teaching project. The practice has proved that the in-class experiment teaching is helpful for the students to quickly acquire the sense of learning and mastering the relevant knowledge.
Keywords: software engineering economics; experimental project framework; experimental case
軟件工程誕生于1968年,當初的定義是“為了經濟地獲得在真實機器上可靠工作的軟件而制定和使用的合理工程原則和方法”[1]。半個世紀以來,軟件的發展日新月異,產業界和學界對軟件工程“經濟性”的研究日趨深入[2-4]。在今年秋季發布的中國軟件工程知識體系(C-SWEBOK)中,軟件工程經濟學是該知識體系核心知識領域(KA)之一[5];教育部發布《普通高等學校本科專業類教學質量國家標準》(2018)計算機類軟件工程專業核心課程中,將工程經濟學列為軟件工程專業核心課程之一[6];中國工程教育專業認證協會發布《工程教育認證標準》(2017修訂稿)中,要求大學工科畢業生必須具備“理解并掌握工程管理原理與經濟決策方法,并能在多學科環境中應用”之能力[7]。
軟件工程經濟學是一門基于軟件工程本體、結合經濟學、管理學等多學科交叉的新興課程。課程以軟件為研究對象,測算軟件全生命周期的投入與產出,分析實現軟件產品及信息服務預定需求之各種資源的效率,以期合理分配與優化使用各類生產要素,實現提升軟件工程經濟效益的目標。課程主要內容包括軟件的經濟特征、軟件的經濟分析模型、軟件成本及估算、軟件定價、軟件項目經濟分析與優化、軟件項目風險與不確定性分析等。
本文將從軟件工程經濟學教學需求及面臨的挑戰、實驗教學目標、實驗項目框架設計和實驗案例分析四個方面,論述軟件工程經濟學實驗教學改革實踐。最后是總結以及持續改進課程實驗教學的建議。
一、軟件工程經濟學教學需求及面臨的挑戰
在學界培養人才供給端,目前國內高校軟件工程專業普遍將軟件工程經濟學作為知識模塊嵌入在軟件工程或軟件項目管理等課程中授課,同濟大學(2013年起)、華南理工大學(2014年起)及四川大學(2016年起)等高校,相繼開設軟件工程經濟學專業課。華南理工大學左保河教授于2017年起在“好大學在線”開設“軟件工程經濟學”MOOCs課程[8]。
在業界吸納人才需求端,根據上海交通大學2015年對本地區ICT企業問卷調查的統計數據顯示[9],企業對于畢業生缺乏“設計中考慮經濟的原則”和“管理知識的應用”之評價,分別位列企業對人才知識與能力度量(期望值與實際值)差距最大項目的第二位和第三位。
這反映出目前軟件工程經濟學教學之產出/供給與產業界對軟件及信息技術專業人才所應具備軟件工程經濟學知識及工程應用能力的需求之間存在錯位。原因在于,軟件工程經濟學具有多學科知識交叉融合以及密切結合軟件及信息技術產業工程應用實踐兩個明顯特征,而現階段軟件工程經濟學教學內容及手段都與這兩個特征存在差距,由此產生軟件工程專業人才培養中的軟件工程經濟學知識之“脫節”。
二、實驗教學目標
對于軟件工程專業本科生來講,區別于編程、測試等軟件工程方法與手段的直觀性和可接觸性,經濟學理論很難被他們直觀地觸摸、理解與接受,因為學生們往往誤認為這些建立在假設基礎之上經濟學理論遠離現實或者不能直接用于軟件工程實踐。為彌補傳統課程教學中只注重定性講授知識原理方法的弱點,以及在校大學生較少接觸實際軟件工程項目的現狀,在課程教學中引進實驗教學方法及手段就成為有效實施課程教學的必然選擇。
作者將實驗教學目標定位為,將抽象的經濟學理論知識轉化成為軟件工程的應用問題,設計課程實驗教學框架,運用多種軟件工具(包括商業軟件、師生自主開發的教學軟件)實現經濟學理論及方法的可視化驗證學習。同時教師研究、設計及開發與軟件工程經濟學知識領域的理論教學相適應的、符合實驗教學要求的課內實驗項目(已開發5個實驗教學項目)。通過現場實驗的“做中學”手段,增強學生運用軟件工程經濟學知識的實踐能力,改革之前的單一理論教學方法與手段,對接并實現了本課程理論與實驗相結合的教學方法。
三、實驗項目框架設計
作者設計軟件工程經濟學課程實驗項目框架,在框架指引下開發了5個實驗項目,即軟件項目工程量估算、資金時間價值與等值、產品效益、項目財務評價、項目風險識別與分析等軟件工程經濟學的驗證型、設計型及綜合型應用實驗。基于系列實驗訓練,受教育者將學會應用定量分析工具,處理軟件工程項目中常見的經濟分析問題,設計使用合理的量化手段解決軟件工程經濟問題[10-11]。現有課程實驗項目框架組成如表1所示。
四、實驗案例分析
(一)案例背景
軟件工程經濟學“需求與供給”知識點課內實驗項目。它展示了在整個實驗過程中,教師指導學生通過親身參與、測量、理解及認知軟件產品需求曲線的過程。
(二)實驗條件
教師擁有一種軟件產品,并且試圖將其兜售給參與實驗的同學。為簡化實驗過程,在實驗中教師將該課程的參考書《工程經濟學》[12],作為代替某種軟件產品的交易產品,實驗參與者是本校軟件工程專業大學三年級某班級42名本科生。
(三)實驗目標
尋求如何使得參與實驗學生的利潤最大化。假設交易產品(參考書)由教師購買,學生們不必為此產品承擔成本,即學生的收入等于其利潤。這樣,實驗者的利潤將等于交易價格乘以可能出售的產品(參考書)數量。
(四)實驗設計
1. 實驗者面臨的問題是:他不知道在哪種價格下,能出售多少數量。假設他將價格定得過高,銷售量就可能太少,從而失去盈利機會;假如他將價格設定得很低,可能就會有很多實驗參與者有意購買此書,但是過低的價格又會造成他的利潤可能少于必要的水平。實驗者尋找的就是在這兩種極端之間的一個價格點,在這個點上所成交的銷售數量乘以這個交易價格,將會給他帶來最大收入,亦即最大利潤。
2. 尋找到這個價格點的困難之處在于獲得需求者們支付意愿的信息。如果對實驗者開展一次調查,即了解他們在不同價格下的購買意愿,則實驗參與者表露各自支付意愿的激勵很少,被調查者也許會意識到,他們所提供的信息將被賣方用于確定產品售價,于是會將所報價格壓到低于意愿支付的價格水平,導致信息失真。
3. 若采用拍賣方式,需求者以出高價才能購買到交易產品,當然并不是不惜一切代價,而是不超過需求者的最大支付意愿,則有可能使得實驗者獲知需求者的真實購買意愿。
(五)實驗過程
1. 采用“第二價格密封拍賣法”(維克里拍賣法)。某競拍者在報價時并不知道其他競拍者的報價(密封投標),報價最高者獲得購買該產品的權利,但是他實際所支付的價格是僅次于最高報價的報價,即第二價格。這個規則將激勵競拍者們給出每人各自真實的意愿支付的價格。
2. 拍賣競價及報價。
拍賣競價結果見表2。在該表中顯示了42位競拍者對被拍賣書籍的意愿支付價格情況,例如報價888元的競拍者可以用214元(次高價格)購買產品。
3. 出售數量與最大利潤。進一步考慮相對于表中不同價格可出售的書本數量。例如1元是最低報價,每一位競拍者都愿意以此價格購買產品,因此可知在這個價格銷售量是42本圖書,依此類推可以將各個價格的書籍銷售量一一填入表2。縱觀表2,可知在這組實驗中所能夠獲取的最大利潤是1050元,對應的價格是30元/本。
4. 繪制需求曲線。可以將拍賣過程中得到的“價格-銷量”組合數據轉換成“價格-銷量”組合圖中,如圖1所示。觀察由此實驗得到的散點圖,至少可以看出需求曲線的走勢是朝著右下方傾斜的,即隨著價格走低,競價者對產品的需求量呈上升趨勢。
五、結束語
軟件工程經濟學課內實驗教學促使學生自覺主動地探索實踐,認知軟件工程及項目的經濟特性。課后收集的學生反饋信息表明,軟件工程專業本科生對實驗項目驅動的課程教學反應良好,實驗教學是一種有效提升課程教學質量的方法。
作為一門新興課程,軟件工程經濟學知識體系在持續發展演化中,特別是在我國軟件與信息產業特定需求下,如何有效度量軟件工程項目成本和效益、防范可能風險等方面,還有許多理論及實踐問題需要產學研的協作才能解決。
參考文獻:
[1]駱斌,丁二玉.南京大學軟件工程專業本科教程[M].北京:高等教育出版社,2009:3.
[2]ACM/IEEE. Graduate Software Engineering 2009 (GSwE2009) [EB/OL]. http://www.gswe2009.org/.
[3]F.L.Bauer. Software Engineering, Report on a conference sponsored by the NATO SECIENCE COMMITTEE [EB/OL]. http://homepages.cs.ncl.ac.uk/brian.randell/NATO/nato1968.PDF.1968.
[4]Barry W. Boehm.軟件工程經濟學[M].李師賢,譯.北京:機械工業出版社,2004.
[5]教育部高等學校軟件工程教學指導委員會C-SWEBOK編寫組.中國軟件工程知識體系C-SWEBOK[M].北京:高等教育出版社,2019.
[6]教育部高等學校教學指導委員會.普通高等學校本科專業類教學質量國家標準[M].北京:高等教育出版社,2018.
[7]中國工程教育專業認證協會.工程教育認證標準[EB/OL].http://www.ceeaa.org.cn/main!newsList4Top.w?menuID=01010702.
[8]左保河.軟件工程經濟學[EB/OL].http://www.cnmooc.org/portal/course/1756/9167.mooc.
[9]余天佐,蔣建偉,任銳,等.基于工程教育認證標準的持續質量改進——以Z大學全國示范性軟件工程專業為例[J].清華大學教育研究,2015(6):104-111.
[10]Peter Buxmann, Heiner Diefenbach, Thomas Hess. The Software Industry Economic principles, Strategies, Perspectives [M]. Berlin: Springer-Verlag,2013.
[11]Paul Heyne.經濟學的思維方式[M].馬昕,譯.北京:世界圖書出版公司,2008.
[12]William G.Sullivan, Elin Wicks, Patrick Koelling.工程經濟學(英文注釋版,第15版)[M].鮑海君,評注.北京:電子工業出版社,2013.