劉芳
(太原科技大學,山西 晉城 048011)
“新工科”與傳統(tǒng)工科的主要區(qū)別在于,“新工科”專業(yè)人才不僅需要學業(yè)優(yōu)秀,而且還要具備創(chuàng)新、競爭、實踐能力,能夠運用新技術(shù)解決問題,符合現(xiàn)在新興產(chǎn)業(yè)的發(fā)展需求[1,2]。依據(jù)上海交通大學余天佐教授對115名軟件工程專業(yè)的畢業(yè)生和14名雇主進行的問卷調(diào)查和分析顯示,企業(yè)對設計中考慮經(jīng)濟的原則位列企業(yè)需求的第二位[3]。因此,除了在技術(shù)上優(yōu)秀以外,還要懂得經(jīng)濟方面的知識,成為“新工科”形勢下人才培養(yǎng)的要求。
目前國內(nèi)高校普遍將軟件工程經(jīng)濟學融入到軟件工程或項目中進行授課或通過開設MOOC的方式進行教學[4,5],雖然將經(jīng)濟學知識與軟件工程課程進行了融合,但缺失具體實驗課程的理論教學和在線教學難以使學生對枯燥的經(jīng)濟學知識有深刻的認識,也難以應用到實際的項目中。有研究者提出通過案例教學、加強課程知識的專業(yè)背景、進行啟發(fā)式交流和運用輔助工具等方式降低經(jīng)濟學相關知識難度和提升學生興趣[6,7],雖然可以起到一定效果,但無具體實施方案和標準要求。
隨著經(jīng)濟社會和軟件工程技術(shù)的發(fā)展,企業(yè)對軟件開發(fā)中的經(jīng)濟效益需求將變得愈發(fā)明顯,按照現(xiàn)有大綱和課程設計進行教學,難以滿足企業(yè)和員工對彼此的預期[8,9]。因此,依據(jù)“新工科”對人才培養(yǎng)的理念,將理論教學與實踐相結(jié)合可有效解決現(xiàn)有軟件工程經(jīng)濟學在教學過程中遇到的問題[10,11]?,F(xiàn)依據(jù)多年從事實驗教學工作積累和經(jīng)驗,對軟件工程經(jīng)濟學課程進行教學改革和探討,提出了具體的實驗教學方案和實施措施。
軟件工程經(jīng)濟學是一門新的學科。它的研究最早起始于美、英國家,并由Boehm 于1981 年出版了專著《軟件工程經(jīng)濟學》,我國于1990 年和1991 年相繼出版了Boehm 的著作,對軟件工程經(jīng)濟學的概念、方法起了宣傳作用,在國內(nèi)的刊物上了陸續(xù)發(fā)表了一些有關軟件成本和定價等策略,但是它的理論與方法尚未為國內(nèi)軟件工程界所熟悉,沒有形成系統(tǒng)的理論體系,參考教材以及資料較少,沒有成熟的教學案例,資源的匱乏迫切需要形成完善的教學體系,改進純理論教學方法,提高教學質(zhì)量。
交叉學科,理論枯燥。該課程和其他學科緊密聯(lián)系,每個學科都有自己的理論體系,相互獨立,不僅需要教師具備各方面的專業(yè)素質(zhì),還需要學生了解所涉及學科的基礎知識,例如資金的時間價值、模糊數(shù)學綜合評價模型等,知識點比較零散不易掌握,難以形成系統(tǒng)的理論體系,學生逐漸產(chǎn)生厭學情緒。
理論與實踐環(huán)節(jié)教學比例失衡。目前該課程主要是理論教學,缺少實驗教學環(huán)節(jié),學生通過課堂掌握了知識點,但在實際的應用中,無法將理論與實踐相結(jié)合,更不能解決軟件項目在開發(fā)過程中所涉及的經(jīng)濟問題,故引入了實驗教學環(huán)節(jié),通過動手實踐理解理論,從而提高課程的教學質(zhì)量。
對于軟件工程專業(yè)的學生來說,缺少經(jīng)濟學相關基礎,很難去理解抽象的理論知識。為了彌補傳統(tǒng)教學只講授知識原理的缺點,以及提高學生將課本中枯燥知識轉(zhuǎn)化為應用的能力,本文引入了實驗教學,以趙瑋編著的教材《軟件工程經(jīng)濟學》為基礎,設計了對應的實驗教學框架表,該框架包含5個實驗項目,即軟件規(guī)模與復雜度度量,資金的時間價值分析,軟件成本與工期測算,軟件項目方案評價,進度計劃中關鍵路線的分析與求解。通過相關實驗的練習,學生會從本質(zhì)上明白方法的具體實現(xiàn)原理,從而進一步了解軟件工程項目所涉及的經(jīng)濟學相關問題,提高使用合理的經(jīng)濟方法對軟件項目進行定量分析的能力。具體的實現(xiàn)相關目框架組成如表1所示。
表1 軟件工程經(jīng)濟學實驗教學框架表
(1)理解軟件產(chǎn)品的兩大主要屬性——規(guī)模與復雜性,綜合運行軟件工程界中影響較大的估算方法,對小型軟件項目的規(guī)模與復雜性進行度量。
(2)理解資金的時間價值、現(xiàn)金流的貼現(xiàn)與預計,資金只有賦予時間的概念才具有真正的完整價值,根據(jù)本地區(qū)的產(chǎn)業(yè)生產(chǎn)率,分析企業(yè)對軟件的融資以及還貸方式,以及解決不同投資方案實施效果的比較。
(3)理解軟件產(chǎn)品的投入與產(chǎn)出要素之間的聯(lián)系,特別是軟件產(chǎn)品的成本、工期、定價以及技術(shù)進步等的估算與關聯(lián),具備產(chǎn)品各要素的分析能力。
(4)理解軟件項目投資方案評價的分析,從項目的經(jīng)濟效果來剖析項目的可投資性,以及面對多種方案的技術(shù)投資方案,選擇先進的技術(shù)還是保守算法,采用選中的方案能獲得多大的經(jīng)濟效果,學生需要具備上述一系列問題的解決能力。
(5)理解軟件項目開發(fā)進程的管理與控制,通過工作(任務)分解結(jié)構(gòu)(Work Breakdown Structure,WBS),安排每個活動的開始時間和結(jié)束時間,分析是否具有一定的機動余地,或者已知工期如何來安排活動起始結(jié)束時間,哪些活動的更改會影響工期,學生需具備重點管理與控制關鍵活動的能力。
實驗1:軟件規(guī)模與復雜性度量實驗。根據(jù)實驗指導書中提供的小型軟件源代碼、基本信息加權(quán)系數(shù)以及環(huán)境復雜因子性,運用源代碼行和功能點法對軟件的規(guī)模進行度量;運用符號序列來求解程序的符號長度,進而衡量軟件的復雜性問題;撰寫實驗報告,并按時提交給實驗指導教師。
實驗2:資金的時間價值分析實驗。依據(jù)實驗指導書中提供的相關經(jīng)濟學參數(shù)利率、通貨膨脹率,按照軟件項目的需求,分析在不同償還方案下進行資金的等值計算(包括現(xiàn)值、終值以及總的金額等),推薦一個軟件項目融資的最優(yōu)方案;撰寫實驗報告,并按時提交給實驗指導教師。
實驗3:軟件的成本與工期測算、定價實驗。按照實驗指導書中提供的小型軟件項目需求,以及相關的各項類別成本參數(shù),運用功能分解法等至少兩種以上的測算方法對該小型軟件的成本與工作量進行估算,并對系統(tǒng)成本進行分析,了解成本的分布特點,進而對成本進行控制或降低;結(jié)合本地區(qū)本行業(yè)的工程經(jīng)濟參數(shù),運用完全成本加成定價法確定該軟件產(chǎn)品的定價;撰寫實驗報告,并按時提交給實驗指導教師。
實驗4:軟件項目方案評價實驗。根據(jù)實驗指導書中軟件項目的規(guī)劃與概要設計,運用凈現(xiàn)值法、內(nèi)部收益率法和投資回收期法對軟件項目是否投資進行可行性分析;如果該項目值得投資,需要對該項目的工程技術(shù)方案運用多方案項目排序算法進行比較與選優(yōu);撰寫該軟件項目投資的具體分析過程和最終選擇的技術(shù)方案,并按時提交給實驗指導教師。
實驗5:進度計劃中關鍵線路的分析與求解實驗。依據(jù)實驗指導書中小型軟件項目的需求,對該系統(tǒng)進行WBS 分解后對各個項目活動的延續(xù)時間或活動時長進行估算,得到活動明細表,將活動明細表轉(zhuǎn)化成計劃網(wǎng)絡圖,然后使用標號算法求解該項目的關鍵路線CP與活動,只要CP上的各關鍵活動實施完畢,則其他非關鍵活動必然應在關鍵活動結(jié)束之前完成,進而更好地管理軟件項目的進度;撰寫實驗報告,并按時提交給實驗指導教師。
軟件工程經(jīng)濟學是一門理論和實踐相結(jié)合的課程,成績是對學生學習狀況的量化評定,考核是教學的一個重要環(huán)節(jié),僅僅依靠試卷的答案不足以準確地考核學生掌握知識和實踐能力的程度。教學改革之前,軟件工程經(jīng)濟學課程的學生成績評定由期末考試成績和學生的平時成績共同構(gòu)成,其中:平時成績(30%)+期末考試(70%)=該課成績。根據(jù)新工科建設要求,加入實驗環(huán)節(jié)之后,設計采用“課堂表現(xiàn)+實驗+期末考試成績”相結(jié)合的考核方式評定學生在這門課程的學習情況。其中,課堂表現(xiàn)占總成績20%,課堂表現(xiàn)不僅僅是考勤,還包括小組討論、問答,以及課后的交流等;實驗占總成績的30%,著重體現(xiàn)學生具備進行軟件工程技術(shù)經(jīng)濟分析的基本能力;期末考試占總成績的50%,考試也由原來的重視理論知識轉(zhuǎn)變?yōu)榭疾鞂χR的理解和運用能力。課內(nèi)實驗是課程必須完成的考核項目,每位學生均需按時提交全部的實驗報告。軟件工程經(jīng)濟學引入實驗教學,更好地體現(xiàn)了新工科對軟件工程專業(yè)學生培養(yǎng)全方位人才的要求,有助于提高學生技術(shù)以及經(jīng)濟的實踐能力。
軟件工程經(jīng)濟學課程首先對教師具有很大的挑戰(zhàn),不僅需要掌握軟件工程技術(shù)知識,還需要具備很強的經(jīng)濟學功底;其次為了提升軟件工程專業(yè)本科生的經(jīng)濟以及工程實踐能力,根據(jù)新工科專業(yè)建設需求,本文對軟件工程經(jīng)濟學課程引入實驗教學框架,探索了理論和實踐相結(jié)合的教學模式,并從實驗要求、實驗目的等方面進行了詳細的闡述。以工程教育為理念,確定實驗教學框架,從低門檻起步、逐步增量提升,培養(yǎng)本科生從經(jīng)濟學角度分析軟件項目的能力。課后收集的學生反饋信息表明,軟件專業(yè)學生對理論和實踐相結(jié)合的教學方式反應良好,實驗教學是提升課程教學質(zhì)量的一種有效實踐方式。
在高校推進新工科建設進程中,本科生工程實踐、管理學、經(jīng)濟學能力的培養(yǎng)還需要產(chǎn)業(yè)界、社會界與學校的密切合作,共同推進課程的改革。