文章編號(hào):1672-5913(2008)20-0084-03
摘 要:為了解決個(gè)體軟件過程(PSP)教學(xué)中多數(shù)學(xué)生開發(fā)軟件時(shí)不遵循流程、記錄數(shù)據(jù)明顯滯后、缺乏數(shù)據(jù)分析習(xí)慣等問題,我院設(shè)計(jì)了基于Web的PSP輔助教學(xué)系統(tǒng)。通過該教學(xué)系統(tǒng)的運(yùn)用,規(guī)范了學(xué)生開發(fā)軟件的過程,使其盡早掌握軟件開發(fā)過程中諸如時(shí)間管理、質(zhì)量保證等關(guān)鍵環(huán)節(jié)。
關(guān)鍵詞:個(gè)體軟件過程;計(jì)算機(jī)輔助教學(xué);軟件過程管理;評(píng)分準(zhǔn)則;軟件工程教育
中圖分類號(hào):G642 文獻(xiàn)標(biāo)識(shí)碼:B
1 PSP輔助教學(xué)系統(tǒng)簡(jiǎn)介
個(gè)體軟件過程(Personal Software Process,簡(jiǎn)稱PSP)是一門面向個(gè)體的、以數(shù)據(jù)為中心的課程[1],教學(xué)目的是不僅使學(xué)生理解PSP的基本理念,掌握如何記錄自己的數(shù)據(jù),更重要的是通過對(duì)這些數(shù)據(jù)正確地分析管理,提升學(xué)生個(gè)人軟件開發(fā)的基本素養(yǎng)并為將來的團(tuán)隊(duì)協(xié)作做好準(zhǔn)備[2]。因此正確、全面地記錄數(shù)據(jù)是這門課程對(duì)學(xué)生最基本、最重要的要求。
在往年的教學(xué)中,記錄數(shù)據(jù)的方式是通過給學(xué)生發(fā)放統(tǒng)一格式的PSP手冊(cè)[3],讓學(xué)生將自己的數(shù)據(jù)填寫到記事本上來實(shí)現(xiàn)的。由于需要記錄的數(shù)據(jù)量大且要對(duì)數(shù)據(jù)進(jìn)行統(tǒng)計(jì),給學(xué)生帶來了不小的工作量,占用了學(xué)生一部分有效學(xué)習(xí)時(shí)間。除此之外,當(dāng)教師根據(jù)學(xué)生上交的記事本進(jìn)行成績(jī)?cè)u(píng)定時(shí),也常常由于工作量太大而無法進(jìn)行有效的操作。
為了解決上述教學(xué)中的困難,我院實(shí)現(xiàn)了一個(gè)基于Web的“PSP輔助教學(xué)系統(tǒng)”[4]。學(xué)生在完成教師指定的6個(gè)模塊大小程序的過程中,只需將所記錄的數(shù)據(jù)錄入到網(wǎng)站,便可自動(dòng)獲得數(shù)據(jù)的統(tǒng)計(jì)分析結(jié)果,這樣就可以減少學(xué)生相當(dāng)?shù)墓ぷ髁俊榱耸瓜到y(tǒng)更加實(shí)用,在接收學(xué)生的數(shù)據(jù)輸入時(shí),系統(tǒng)對(duì)數(shù)據(jù)進(jìn)行一些必要的規(guī)范。通過預(yù)定義的流程規(guī)范學(xué)生的工作習(xí)慣,并將數(shù)據(jù)及時(shí)、準(zhǔn)確地錄入至系統(tǒng)中。按照這個(gè)正確的工作流程記錄數(shù)據(jù),同時(shí)也加深了學(xué)生對(duì)PSP理論的理解,因此本系統(tǒng)具有明顯的輔助教學(xué)功能。
具體的工作流程以及為了實(shí)現(xiàn)這個(gè)工作流程所采取的手段將在本文的第一部分中介紹。此外,本系統(tǒng)還可以自動(dòng)根據(jù)數(shù)據(jù)錄入的情況給學(xué)生評(píng)定成績(jī),詳細(xì)的評(píng)分規(guī)則將在本文的第二部分中介紹。
2 工作流程與控制
如前所述,本系統(tǒng)的主要目的是輔助PSP課程的教學(xué),減小教師和學(xué)生的工作量,增強(qiáng)教學(xué)效果。在記錄數(shù)據(jù)的過程中需要一個(gè)事先定義好的填寫流程,合理的填寫流程不僅有利于學(xué)生的數(shù)據(jù)錄入,更重要的是可以防止虛假數(shù)據(jù)的產(chǎn)生。通過控制數(shù)據(jù)錄入的流程,可以引導(dǎo)學(xué)生正確地記錄數(shù)據(jù)。
下面我們將定義各部分?jǐn)?shù)據(jù)(項(xiàng)目計(jì)劃總結(jié)表及其他)填寫的預(yù)定流程以及在網(wǎng)站中需要采用哪些手段來實(shí)現(xiàn)這個(gè)流程。
2.1 項(xiàng)目計(jì)劃匯總(Project Plan Summary)
(1) 工作流程 對(duì)于項(xiàng)目總結(jié)報(bào)告的填寫,從實(shí)際情況考慮,計(jì)劃數(shù)據(jù)的填寫與實(shí)際數(shù)據(jù)的填寫應(yīng)該在不同的時(shí)間段進(jìn)行。前者是在編程開始之前,后者是在編程開始之后,也就是說二者時(shí)間差起碼應(yīng)該大于編程所花的時(shí)間。因此,實(shí)際操作的預(yù)期流程應(yīng)該是:做計(jì)劃à編程à記錄實(shí)際數(shù)據(jù),如圖1所示。
圖1 項(xiàng)目計(jì)劃匯總的工作流程
(2) 控制方法 在系統(tǒng)具體實(shí)現(xiàn)時(shí),計(jì)劃數(shù)據(jù)與實(shí)際數(shù)據(jù)的填寫應(yīng)該在兩個(gè)填寫頁面中分別輸入,并且在用戶填寫并確認(rèn)保存之后不再允許用戶進(jìn)行修改,這主要是為了防止用戶隨意編造數(shù)據(jù)。在很大程度上防止假數(shù)據(jù)產(chǎn)生的同時(shí),也會(huì)導(dǎo)致另外一個(gè)問題的產(chǎn)生,即用戶由于誤操作而輸錯(cuò)數(shù)據(jù)以后也不能修改,這就會(huì)使用戶多少產(chǎn)生一些報(bào)怨。但為了盡量防止假數(shù)據(jù)的產(chǎn)生,用戶隨意修改數(shù)據(jù)是絕對(duì)不能允許的。如果用戶需要更改誤操作產(chǎn)生的錯(cuò)誤數(shù)據(jù)則通過報(bào)告管理員的方式來解決。
除了數(shù)據(jù)不允許修改以外,還要分別記錄計(jì)劃數(shù)據(jù)與實(shí)際數(shù)據(jù)填寫的具體時(shí)間,如果在后續(xù)的評(píng)分中發(fā)現(xiàn)兩次輸入的時(shí)間之差小于實(shí)際數(shù)據(jù)中的各項(xiàng)工作所花費(fèi)時(shí)間的總和,則可以斷定此項(xiàng)目總結(jié)的數(shù)據(jù)沒有按照預(yù)定的流程填寫,或者存在編造數(shù)據(jù)的可能。
2.2 其他記錄數(shù)據(jù)
這里所指的其他數(shù)據(jù)包括工程記事本(Engineering Notebook)、時(shí)間記錄日志(Time Recording Log)和缺陷記錄日志(Defect Recording Log)。由于這三部分的工作流程較為相似,下面給出綜合介紹。
(1) 工作流程 工程記事本和時(shí)間記錄日志都應(yīng)按照時(shí)間順序填寫。在理想情況下,學(xué)生應(yīng)該每天都填寫當(dāng)天的數(shù)據(jù),不允許補(bǔ)寫以往的數(shù)據(jù),這樣才能盡可能保證數(shù)據(jù)的真實(shí)性。但是考慮到實(shí)際情況中條件的限制,學(xué)生不能每天都上網(wǎng)記錄數(shù)據(jù),不能做到每天都將當(dāng)天的數(shù)據(jù)錄入系統(tǒng),因此系統(tǒng)只能適當(dāng)?shù)姆艑挆l件。學(xué)生每天先將當(dāng)天的數(shù)據(jù)記錄在(紙質(zhì)的)PSP手冊(cè)上,然后在上網(wǎng)時(shí)將記錄的數(shù)據(jù)成批的輸入系統(tǒng)。
缺陷記錄日志除了要按照時(shí)間順序填寫外,還要按照程序的順序記錄。也就是說,學(xué)生應(yīng)該按照程序的編號(hào)記錄,在記錄一個(gè)程序的所有缺陷時(shí),按照缺陷發(fā)生的時(shí)間進(jìn)行記錄。原則上要求學(xué)生發(fā)現(xiàn)一個(gè)缺陷就記錄一個(gè)缺陷,但同樣受上網(wǎng)條件的限制,學(xué)生不能如此實(shí)時(shí)的登錄網(wǎng)站,因此也只能是學(xué)生將缺陷先記錄在PSP手冊(cè)上,然后再批量錄入到系統(tǒng)中。
(2) 控制方法 根據(jù)前面對(duì)于工作流程的說明,系統(tǒng)不能苛求學(xué)生將所有的數(shù)據(jù)在當(dāng)天就記錄到系統(tǒng)中,因此學(xué)生登錄系統(tǒng)后,可以一次批量錄入多天(條)的數(shù)據(jù)。但是為不致學(xué)生太過隨意的記錄數(shù)據(jù),系統(tǒng)仍然在最低限度上保證學(xué)生所記錄數(shù)據(jù)的時(shí)序性,所采取的方法是:不允許學(xué)生錄入的數(shù)據(jù)早于他(她)已記錄的最后一條數(shù)據(jù)的時(shí)間。例如某學(xué)生已錄入了6月3日的數(shù)據(jù),就不能再補(bǔ)錄6月2日或以前的數(shù)據(jù),補(bǔ)錄行為被視為編造數(shù)據(jù)。
3 評(píng)分規(guī)則
3.1 評(píng)分的基本框架
評(píng)分細(xì)則的根本原則是:要求同學(xué)們?nèi)鐚?shí)的記錄自己的所有數(shù)據(jù),即所記錄的數(shù)據(jù)的真實(shí)性是第一位的。
滿分定義為:所有錄入的數(shù)據(jù)均正確、合理,且數(shù)據(jù)的總量達(dá)到一定要求。具體來說,評(píng)分細(xì)則從四個(gè)部分、三個(gè)層次對(duì)同學(xué)所記錄的數(shù)據(jù)進(jìn)行評(píng)價(jià)。
四個(gè)部分包括:
工程記事本(Engineering Notebook),
時(shí)間記錄日志(Time Recording Log),
缺陷記錄日志(Defect Recording Log),
項(xiàng)目計(jì)劃總結(jié)(Project Plan Summary)。
下述的三個(gè)層次中,前兩個(gè)層次決定基本分?jǐn)?shù),第三層次為加分項(xiàng)。具體指:
(1) 數(shù)據(jù)的正確性、合理性 錄入數(shù)據(jù)的正確合理是對(duì)數(shù)據(jù)的首要要求;
(2) 數(shù)據(jù)的總量 PSP要求記錄的數(shù)據(jù)需要達(dá)到一定數(shù)量,因此對(duì)于學(xué)生錄入的數(shù)據(jù)總量也需要一個(gè)指標(biāo)來進(jìn)行評(píng)價(jià);
(3) 數(shù)據(jù)的一致性 四個(gè)部分的數(shù)據(jù)之間有一定的聯(lián)系,一致性檢查就是查看學(xué)生記錄的數(shù)據(jù)是否保持了這些聯(lián)系。
3.2 評(píng)分的基本步驟
最終的分?jǐn)?shù)包括基本分?jǐn)?shù)和加分?;痉?jǐn)?shù)滿分為100,加上加分后總分也不超過100。
對(duì)于基本分?jǐn)?shù)的確定,首先要計(jì)算出上述四部分各自的分?jǐn)?shù),然后再根據(jù)各部分對(duì)總分所占的權(quán)重,進(jìn)行加權(quán)求和得到總分。對(duì)于各部分分?jǐn)?shù)的計(jì)算,則需要從數(shù)據(jù)的正確率和實(shí)際數(shù)據(jù)錄入的完成率兩方面來計(jì)算。例如,若某同學(xué)錄入的數(shù)據(jù)的正確率為90%,錄入了要求量的80%,則基本分就是滿分的85%。
對(duì)于加分的計(jì)算,則根據(jù)加分規(guī)則逐條累加。
最終,總分 = 基本分?jǐn)?shù) + 加分,總分不超過100分。評(píng)分的基本過程如圖2所示。
圖2 評(píng)分的基本流程
3.3 評(píng)分細(xì)則
3.3.1 正確性檢查及合理性檢查
此部分檢查包括以下規(guī)則:
(1) 任何一條記錄的產(chǎn)生時(shí)間應(yīng)該在課程規(guī)定的時(shí)間范圍內(nèi)。
(2) 在Time Recording Log中,每一條記錄中的總時(shí)間不應(yīng)超過300分鐘,被打斷的時(shí)間也不應(yīng)超過60分鐘。
(3) 在Defects Recording Log中,缺陷被排除的階段應(yīng)該晚于缺陷被引入的階段。
(4) 在Defects Recording Log中,每個(gè)缺陷的記錄日期應(yīng)該在該缺陷所對(duì)應(yīng)程序規(guī)定的期限內(nèi)。
(5) 在Project Plan Summary中,LOC/Hour的值不應(yīng)大于200,Defect/KLOC不應(yīng)大于1000,Total New Changed不應(yīng)大于1000。
(6) 在Project Plan Summary的Time in Phase中,Code和Code Review都不應(yīng)為0。
(7) 在Project Plan Summary的Defects Removed欄中的第一個(gè)數(shù)所處的階段應(yīng)該晚于Defects Injected欄中的第一個(gè)數(shù)所處的階段。
(8) 在Project Plan Summary中所有計(jì)劃和實(shí)際的數(shù)據(jù)值不應(yīng)大于1000。
注1:由于在Engineering Notebook、Time Recording Log、和Defects Recording Log中的每條記錄包括的信息較少,因此通過準(zhǔn)則(2)~(4)可以直接確定Engineering Notebook、Time Recording Log、和Defects Recording Log中的每一條記錄是否正確,即只要某條記錄違背(2)~(4)中的任一條,則認(rèn)為該條記錄不正確,不被記入總量。
注2:由于Project Plan Summary的每條記錄包括的數(shù)據(jù)很多,因此判斷一個(gè)Project Plan Summary是否正確,需要綜合根據(jù)準(zhǔn)則(5)~(8)來綜合判斷。準(zhǔn)則(5)~(8)相當(dāng)于是四個(gè)檢查點(diǎn),這四個(gè)檢查點(diǎn)涉及到很多數(shù)據(jù),若(5)~(8)所涉及的數(shù)據(jù)有一半不正確,則認(rèn)為這個(gè)Project Plan Summary不正確,不被計(jì)入總量。
3.3.2 數(shù)量上的要求
本節(jié)對(duì)于數(shù)量上的要求是最高標(biāo)準(zhǔn),達(dá)到此標(biāo)準(zhǔn)則認(rèn)為在數(shù)量上可以得滿分。在統(tǒng)計(jì)數(shù)量時(shí),只計(jì)入正確的數(shù)據(jù)。具體的數(shù)量要求如下:
(1) 對(duì)于Engineering Notebook,每周20條數(shù)據(jù)。
(2) 對(duì)于Time Recording Log,每周30條數(shù)據(jù)。
(3) 對(duì)于Project Plan Summary,每個(gè)程序一個(gè),總共6個(gè)Project Plan Summary。
注:先分別求出上述三方面的完成率(實(shí)際錄入量/上
述標(biāo)準(zhǔn)中的量),然后再取平均值即為最終的完成率。
3.3.3 一致性檢查(加分項(xiàng))
加分規(guī)則共4條:
(1) 在Time Recording Log中,一天的總記錄時(shí)間(包括Delta Time和Interrupted Time)大于480分鐘,每天加0.1分;
(2) 對(duì)于一個(gè)程序,Defects Recording Log中記錄的總數(shù)與Project Plan Summary中Defects的總數(shù)相等,每個(gè)程序加0.3分;
(3) 在Project Plan Summary中,各Total項(xiàng)的實(shí)際值與估計(jì)值相差不超過80%,每個(gè)程序加0.2分;
(4) 在Project Plan Summary中,Yield和A/FR[1]的實(shí)際值達(dá)到預(yù)期效果,每個(gè)程序加0.2分。
注:準(zhǔn)則(3)(4)不宜提前告知學(xué)生,以防止假數(shù)據(jù)。
4 總結(jié)
PSP計(jì)算機(jī)輔助教學(xué)網(wǎng)站于2008年春季學(xué)期應(yīng)用于哈爾濱工業(yè)大學(xué)軟件學(xué)院07級(jí)本科生的教學(xué)及成績(jī)?cè)u(píng)估中。實(shí)踐證明,盡管網(wǎng)站建設(shè)早期存在一些用戶界面不夠友好、錄入數(shù)據(jù)有效性驗(yàn)證不足等問題,但學(xué)生通過實(shí)時(shí)系統(tǒng)提交每周工作(學(xué)習(xí))數(shù)據(jù),從很大程度上提高了他們的學(xué)習(xí)興趣。絕大多數(shù)同學(xué)養(yǎng)成了在編寫程序時(shí)及時(shí)記錄數(shù)據(jù)、每周整理數(shù)據(jù)、錄入數(shù)據(jù)的好的學(xué)習(xí)習(xí)慣。這一輔助教學(xué)系統(tǒng)的使用,在提高學(xué)生自身個(gè)體軟件素養(yǎng)的基礎(chǔ)上,為將來的團(tuán)隊(duì)協(xié)作做好了意識(shí)上、技術(shù)上、習(xí)慣上的準(zhǔn)備。
參考文獻(xiàn)
[1] Watts S. Humphrey. Introduction to the Personal Software Process[M]. Addison-Wesley, Pearson Education, Inc., 1997.
[2] Watts S. Humphrey. PSP: A Self-Improvement Process for Software Engineers [M]. Pearson Education Asia Ltd., 2006.
[3] 王延青.個(gè)體軟件過程手冊(cè)[R].哈爾濱工業(yè)大學(xué)軟件學(xué)院,2003.
[4] Yanqing Wang, Chaohua Luo, Li Lei, Guoping Zhou. Design of Real-time Assessment System on PSP Course Learning[C]. Proceedings of 2008 International Colloquium on Artificial Intelligence in Education (ICAIE’2008). Wuhan, China, Oct. 17-18, 2008, (待發(fā)表)
Abstract: In order to solve such problems by students as not developing software conforming to development process, recording data with a big time lag and lacking of the habit of data analysis, a web-based computer aided instruction system was designed for course PSP (Personal Software Process). Through the application of this system, the developing process by students was standardized. Moreover, students have mastered such main capabilities as time management and quality assurance at the preliminary stage of their computing study.
Keywords: personal software process (PSP), computer aided instruction (CAI), software process management, marking criteria, software engineering education.