摘要:文章簡單介紹了PSP個體軟件過程的發展,及筆者在教學過程中的課程設置,就psp與數據庫項目實訓過程結合的方法及結果做出了分析。
關鍵詞:個體軟件過程;數據庫管理系統
中圖分類號:G424文獻標識碼:A文章編號:1009-3044(2008)24-1128-02
The Database Training Base on PSP
XIA Min, LONG Kai-hong
(Yiyang vocational and Technical College,Yiyang 413049, China)
Abstract: This thesis simply studies the development of personal software process and the curriculum equipments in teaching pricers.the article also analyses the ways and the results on how to combine psp with database training.
Key words: personal software process(PSP); database management system(DBMS)
1 引言
PSP(Personal Software Process 個體軟件過程)是由美國卡內基梅隆大學軟件工程研究所(SEI)的Watts S. Humphrey領導開發的,它是一種可用于控制,管理和改進個人工作方式的自我持續改進過程,是一個包括軟件開發表格,指南和規程的結構化框架。PSP與具體的技術(程序設計語言,工具或者設計方法)相對獨立,其原則能夠應用到幾乎任何的軟件工程任務之中。PSP能有效地幫助軟件工程師使用正確的工程方法,指導他們如何計劃工作,對工作進行追蹤記錄通過對工作結果的分析改進下一計劃中的個體行為過程。它使工程師們從自己及他人的實際工作中總結并找到最適合特定任務及自己能力的工作方法,提高了個體的過程意識和過程能力。它針對項目計劃,時間管理,缺陷管理,質量管理等幾個方面提出了規范,經過PSP學習和實踐的正規訓練,軟件工程師們能夠在他們參與的項目工作之中充分利用PSP,從而保證了項目整體的進度和質量。
由于PSP課程強調的是在軟件系統開發過程中養成良好的習慣和職業態度,因此不應該把它僅僅當成是一門獨立的課程,教師應該引導學生將PSP的方法應用到其它專業課程的學習中,在自己的工作中堅持貫徹PSP的原則。在傳統教學中,PSP與編程課程的結合是比較常見的,但是PSP在軟件開發的領域中有著更廣泛的應用,它的基本原理除了可以應用到編程任務中,還可以應用到系統分析,設計以及數據庫開發等活動中。
2 PSP在軟件技術專業教學計劃中的設置
在學院軟件技術專業的教學設計中,第一年兩個學期分別安排了周2學時的《個體軟件過程》作為專業必修課程,與此同時開設的編程課程有C,C++和VB。并且安排有一周的PSP項目實訓課程,項目將PSP與編程活動結合起來,旨在提供學生一個機會認識和體會到在實踐中軟件開發不僅僅是編代碼活動,它包括各種生命周期活動,規模與時間的估計、測量和跟蹤,缺陷及質量管理等。
3 數據庫課程在軟件技術專業教學計劃中的設置
在學院軟件技術專業的教學設計中,第二年安排了數據庫與SQL Server課程,該課程涵蓋了概念數據建模、數據庫架構、關系數據模型的邏輯數據庫設計、數據和數據庫管理、物理數據庫設計和數據操作。在為期兩周的數據庫管理系統實訓中,我們選用了包含數據庫創建和操作的一個項目,要求學生分別用MS Access和SQL Server實現。
4 PSP在數據庫管理系統實訓中的應用
4.1 PSP與MS Access項目的結合
在MS Access項目中,要求每個學生根據一個完整的數據定義創建和裝載一個數據庫,然后利用已有的視圖設計來使用查詢向導完成逐漸復雜的查詢,這里采用的是查詢向導而不需要學生直接編寫SQL代碼。
盡管以前沒有太多的經驗,學生仍然需要在開始項目之前先估計每項開發活動所需要的時間,整個項目被劃分為數據庫定義,數據庫裝載,簡單列舉查詢,交叉表查詢,查找重復項查詢和查找不匹配項查詢。在開發過程中還需對每項活動的實際花費時間記錄日志,并進行統計,具體表格設計如表1。
除了PSP時間日志及總結表,學生還要求對MS Access項目進行規模測量,測量軟件規模是非常重要的,因為它和開發軟件所需要的時間、人力和成本是直接相關聯的。在開發MS Access項目中所記載的規模和開發時間可以作為下次數據庫開發的項目計劃基礎。
PSP在對計算機程序測量規模時通常使用統計代碼行(LOC)的方法,可是在MS Access項目中因為沒有直接編寫代碼,所以沒有采用代碼行的方式來測量。這里可以采用一種計數標準:對于數據庫定義活動,按照表、列和約束的個數來記錄;數據庫查詢活動則依據表或子查詢的數量,排序、集合以及連接查詢的數量來記錄。
在此項目中采用PSP方法所獲得的時間及規模數據,可以幫助學生估計未來MS Access開發項目的所需資源,同時可作為緊接下來的同命題SQL Server項目的估計基線。
4.2 PSP與SQL Server項目的結合
SQL Server項目的任務和上面講述的MS Access項目采用同樣的問題定義,不同點在于學生要對數據庫的定義、更新和修改采用編寫SQL代碼的方式,另外還增加了一些更復雜的SQL查詢,這些是在MS Access中無法用查詢向導設計模式來實現的。
有以下PSP任務需要學生完成:
1)項目計劃:估計整個項目的時間和規模;
2)記錄每項開發活動的時間和規模;
3)記錄缺陷日志。

與前面MS Access項目采用計數標準測量規模不同,SQL Server項目使用SQL LOC方式來計量。由于PSP中定義的缺陷類型標準是針對結構化和面向對象編程語言的,在應用到SQL上時不是很準確,因此可以采用表2的對照標準來統計缺陷。
4.3 有關PSP應用在數據庫項目中的報告
在2個項目結束以后,要求學生提交實訓報告,其中應該包含對PSP在項目應用中的評估和分析,要求學生對獲取的數據進行統計,統計數據通過時間/活動柱形圖、缺陷率(defects/KLOC)柱形圖、缺陷分布柱形圖的方式來顯示。可以提示學生分析這些圖時回答以下問題:
1)在哪項活動中花費的時間最多?
2)自己面臨的主要問題是什么?
3)是什么導致了這些問題,如何進行改進?
5 教學實踐的反饋
學生對于在數據庫項目中應用PSP方法的最初反應是覺得麻煩,不像C++,JAVA項目,可以使用一些自動LOC計數工具,在數據庫項目中需要學生手工記錄數據。但是在完成了最后的分析報告后,開始認識到收集個人活動詳細數據的價值,MS Access項目的PSP數據可以用來預測下一個SQL Server項目的時間與規模,以便更好地作出計劃;并且由缺陷數據可以發現自己的長短處,從而確定改進的目標。
雖然行業實踐數據已經顯示出PSP的顯著作用,但要讓學生積極地參與和認同PSP的活動,教師應起到一個積極的推進作用,教師可以使用學生自己的數據作為示例,幫助學生深入理解個人數據對過程改進的意義。
通過2個項目的數據采集來實現過程改進顯然是遠遠不夠的,PSP需要的是一個循序漸進的循環開發方式,只有通過多次任務布置、任務完成、情況反饋的重復,才能充分展示PSP的強大威力。因此可以將項目具體再劃分為幾個子項目,每個子項目規定完成的時間,在每個子項目階段分別應用PSP過程。
6 結論
PSP在編程課程的應用是比較普遍的,但是PSP對于數據庫開發同樣具有重要的意義,本文對如何在數據庫開發過程中指導學生使用PSP方法提出了解決方法:包括如何劃分數據庫開發活動、如何定義SQL缺陷以及將一個項目進行子項目劃分等。通過在具體的數據庫項目中實施項目計劃和缺陷管理,學生對個人的數據庫開發活動有了更深入的了解,這些PSP信息對學生今后的學習和工作都具有啟迪意義。
參考文獻:
[1]Hunphrey W S,著,吳超英,車向東,譯.個體軟件過程[M].北京:人民郵電出版社,2001.
[2] 宋秀紅. 基于PSP的個體項目過程管理技術工具研究[D].大連海事大學, 2004.
[3] Borstler J, Carrington D, Hislop W D,et al.Teaching PSP:Challenges and lessons learned[J].IEEE Software,2002,19(5):42-48.