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