文章編號:1672-5913(2008)20-0084-03
摘 要:為了解決個體軟件過程(PSP)教學中多數學生開發軟件時不遵循流程、記錄數據明顯滯后、缺乏數據分析習慣等問題,我院設計了基于Web的PSP輔助教學系統。通過該教學系統的運用,規范了學生開發軟件的過程,使其盡早掌握軟件開發過程中諸如時間管理、質量保證等關鍵環節。
關鍵詞:個體軟件過程;計算機輔助教學;軟件過程管理;評分準則;軟件工程教育
中圖分類號:G642 文獻標識碼:B
1 PSP輔助教學系統簡介
個體軟件過程(Personal Software Process,簡稱PSP)是一門面向個體的、以數據為中心的課程[1],教學目的是不僅使學生理解PSP的基本理念,掌握如何記錄自己的數據,更重要的是通過對這些數據正確地分析管理,提升學生個人軟件開發的基本素養并為將來的團隊協作做好準備[2]。因此正確、全面地記錄數據是這門課程對學生最基本、最重要的要求。
在往年的教學中,記錄數據的方式是通過給學生發放統一格式的PSP手冊[3],讓學生將自己的數據填寫到記事本上來實現的。由于需要記錄的數據量大且要對數據進行統計,給學生帶來了不小的工作量,占用了學生一部分有效學習時間。除此之外,當教師根據學生上交的記事本進行成績評定時,也常常由于工作量太大而無法進行有效的操作。
為了解決上述教學中的困難,我院實現了一個基于Web的“PSP輔助教學系統”[4]。學生在完成教師指定的6個模塊大小程序的過程中,只需將所記錄的數據錄入到網站,便可自動獲得數據的統計分析結果,這樣就可以減少學生相當的工作量。為了使系統更加實用,在接收學生的數據輸入時,系統對數據進行一些必要的規范。通過預定義的流程規范學生的工作習慣,并將數據及時、準確地錄入至系統中。按照這個正確的工作流程記錄數據,同時也加深了學生對PSP理論的理解,因此本系統具有明顯的輔助教學功能。
具體的工作流程以及為了實現這個工作流程所采取的手段將在本文的第一部分中介紹。此外,本系統還可以自動根據數據錄入的情況給學生評定成績,詳細的評分規則將在本文的第二部分中介紹。
2 工作流程與控制
如前所述,本系統的主要目的是輔助PSP課程的教學,減小教師和學生的工作量,增強教學效果。在記錄數據的過程中需要一個事先定義好的填寫流程,合理的填寫流程不僅有利于學生的數據錄入,更重要的是可以防止虛假數據的產生。通過控制數據錄入的流程,可以引導學生正確地記錄數據。
下面我們將定義各部分數據(項目計劃總結表及其他)填寫的預定流程以及在網站中需要采用哪些手段來實現這個流程。
2.1 項目計劃匯總(Project Plan Summary)
(1) 工作流程 對于項目總結報告的填寫,從實際情況考慮,計劃數據的填寫與實際數據的填寫應該在不同的時間段進行。前者是在編程開始之前,后者是在編程開始之后,也就是說二者時間差起碼應該大于編程所花的時間。因此,實際操作的預期流程應該是:做計劃à編程à記錄實際數據,如圖1所示。

圖1 項目計劃匯總的工作流程
(2) 控制方法 在系統具體實現時,計劃數據與實際數據的填寫應該在兩個填寫頁面中分別輸入,并且在用戶填寫并確認保存之后不再允許用戶進行修改,這主要是為了防止用戶隨意編造數據。在很大程度上防止假數據產生的同時,也會導致另外一個問題的產生,即用戶由于誤操作而輸錯數據以后也不能修改,這就會使用戶多少產生一些報怨。但為了盡量防止假數據的產生,用戶隨意修改數據是絕對不能允許的。如果用戶需要更改誤操作產生的錯誤數據則通過報告管理員的方式來解決。
除了數據不允許修改以外,還要分別記錄計劃數據與實際數據填寫的具體時間,如果在后續的評分中發現兩次輸入的時間之差小于實際數據中的各項工作所花費時間的總和,則可以斷定此項目總結的數據沒有按照預定的流程填寫,或者存在編造數據的可能。
2.2 其他記錄數據
這里所指的其他數據包括工程記事本(Engineering Notebook)、時間記錄日志(Time Recording Log)和缺陷記錄日志(Defect Recording Log)。由于這三部分的工作流程較為相似,下面給出綜合介紹。
(1) 工作流程 工程記事本和時間記錄日志都應按照時間順序填寫。在理想情況下,學生應該每天都填寫當天的數據,不允許補寫以往的數據,這樣才能盡可能保證數據的真實性。但是考慮到實際情況中條件的限制,學生不能每天都上網記錄數據,不能做到每天都將當天的數據錄入系統,因此系統只能適當的放寬條件。學生每天先將當天的數據記錄在(紙質的)PSP手冊上,然后在上網時將記錄的數據成批的輸入系統。
缺陷記錄日志除了要按照時間順序填寫外,還要按照程序的順序記錄。也就是說,學生應該按照程序的編號記錄,在記錄一個程序的所有缺陷時,按照缺陷發生的時間進行記錄。原則上要求學生發現一個缺陷就記錄一個缺陷,但同樣受上網條件的限制,學生不能如此實時的登錄網站,因此也只能是學生將缺陷先記錄在PSP手冊上,然后再批量錄入到系統中。
(2) 控制方法 根據前面對于工作流程的說明,系統不能苛求學生將所有的數據在當天就記錄到系統中,因此學生登錄系統后,可以一次批量錄入多天(條)的數據。但是為不致學生太過隨意的記錄數據,系統仍然在最低限度上保證學生所記錄數據的時序性,所采取的方法是:不允許學生錄入的數據早于他(她)已記錄的最后一條數據的時間。例如某學生已錄入了6月3日的數據,就不能再補錄6月2日或以前的數據,補錄行為被視為編造數據。
3 評分規則
3.1 評分的基本框架
評分細則的根本原則是:要求同學們如實的記錄自己的所有數據,即所記錄的數據的真實性是第一位的。
滿分定義為:所有錄入的數據均正確、合理,且數據的總量達到一定要求。具體來說,評分細則從四個部分、三個層次對同學所記錄的數據進行評價。
四個部分包括:
工程記事本(Engineering Notebook),
時間記錄日志(Time Recording Log),
缺陷記錄日志(Defect Recording Log),
項目計劃總結(Project Plan Summary)。
下述的三個層次中,前兩個層次決定基本分數,第三層次為加分項。具體指:
(1) 數據的正確性、合理性 錄入數據的正確合理是對數據的首要要求;
(2) 數據的總量 PSP要求記錄的數據需要達到一定數量,因此對于學生錄入的數據總量也需要一個指標來進行評價;
(3) 數據的一致性 四個部分的數據之間有一定的聯系,一致性檢查就是查看學生記錄的數據是否保持了這些聯系。
3.2 評分的基本步驟
最終的分數包括基本分數和加分。基本分數滿分為100,加上加分后總分也不超過100。
對于基本分數的確定,首先要計算出上述四部分各自的分數,然后再根據各部分對總分所占的權重,進行加權求和得到總分。對于各部分分數的計算,則需要從數據的正確率和實際數據錄入的完成率兩方面來計算。例如,若某同學錄入的數據的正確率為90%,錄入了要求量的80%,則基本分就是滿分的85%。
對于加分的計算,則根據加分規則逐條累加。
最終,總分 = 基本分數 + 加分,總分不超過100分。評分的基本過程如圖2所示。

圖2 評分的基本流程
3.3 評分細則
3.3.1 正確性檢查及合理性檢查
此部分檢查包括以下規則:
(1) 任何一條記錄的產生時間應該在課程規定的時間范圍內。
(2) 在Time Recording Log中,每一條記錄中的總時間不應超過300分鐘,被打斷的時間也不應超過60分鐘。
(3) 在Defects Recording Log中,缺陷被排除的階段應該晚于缺陷被引入的階段。
(4) 在Defects Recording Log中,每個缺陷的記錄日期應該在該缺陷所對應程序規定的期限內。
(5) 在Project Plan Summary中,LOC/Hour的值不應大于200,Defect/KLOC不應大于1000,Total New Changed不應大于1000。
(6) 在Project Plan Summary的Time in Phase中,Code和Code Review都不應為0。
(7) 在Project Plan Summary的Defects Removed欄中的第一個數所處的階段應該晚于Defects Injected欄中的第一個數所處的階段。
(8) 在Project Plan Summary中所有計劃和實際的數據值不應大于1000。
注1:由于在Engineering Notebook、Time Recording Log、和Defects Recording Log中的每條記錄包括的信息較少,因此通過準則(2)~(4)可以直接確定Engineering Notebook、Time Recording Log、和Defects Recording Log中的每一條記錄是否正確,即只要某條記錄違背(2)~(4)中的任一條,則認為該條記錄不正確,不被記入總量。
注2:由于Project Plan Summary的每條記錄包括的數據很多,因此判斷一個Project Plan Summary是否正確,需要綜合根據準則(5)~(8)來綜合判斷。準則(5)~(8)相當于是四個檢查點,這四個檢查點涉及到很多數據,若(5)~(8)所涉及的數據有一半不正確,則認為這個Project Plan Summary不正確,不被計入總量。
3.3.2 數量上的要求
本節對于數量上的要求是最高標準,達到此標準則認為在數量上可以得滿分。在統計數量時,只計入正確的數據。具體的數量要求如下:
(1) 對于Engineering Notebook,每周20條數據。
(2) 對于Time Recording Log,每周30條數據。
(3) 對于Project Plan Summary,每個程序一個,總共6個Project Plan Summary。
注:先分別求出上述三方面的完成率(實際錄入量/上
述標準中的量),然后再取平均值即為最終的完成率。
3.3.3 一致性檢查(加分項)
加分規則共4條:
(1) 在Time Recording Log中,一天的總記錄時間(包括Delta Time和Interrupted Time)大于480分鐘,每天加0.1分;
(2) 對于一個程序,Defects Recording Log中記錄的總數與Project Plan Summary中Defects的總數相等,每個程序加0.3分;
(3) 在Project Plan Summary中,各Total項的實際值與估計值相差不超過80%,每個程序加0.2分;
(4) 在Project Plan Summary中,Yield和A/FR[1]的實際值達到預期效果,每個程序加0.2分。
注:準則(3)(4)不宜提前告知學生,以防止假數據。
4 總結
PSP計算機輔助教學網站于2008年春季學期應用于哈爾濱工業大學軟件學院07級本科生的教學及成績評估中。實踐證明,盡管網站建設早期存在一些用戶界面不夠友好、錄入數據有效性驗證不足等問題,但學生通過實時系統提交每周工作(學習)數據,從很大程度上提高了他們的學習興趣。絕大多數同學養成了在編寫程序時及時記錄數據、每周整理數據、錄入數據的好的學習習慣。這一輔助教學系統的使用,在提高學生自身個體軟件素養的基礎上,為將來的團隊協作做好了意識上、技術上、習慣上的準備。
參考文獻
[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] 王延青.個體軟件過程手冊[R].哈爾濱工業大學軟件學院,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, (待發表)
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.