软体生产力资料收集分析系统

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

軟體生產力資料收集分析系統鍾乾癸教授長庚大學資訊工程系系主任cgchung@mail.cgu.edu.tw8917088黃志鴻交通大學資訊工程系jhhwnag@csie.nctu.edu.tw8917082蔡佳宏交通大學資訊工程系chiahung@csie.nctu.edu.tw摘要本研究建立一套學生軟體程式能力資料收集分析系統,提供同學每日記載其學習、寫作業、寫程式之生產力資料及錯誤資料狀況,一方面可供學生了解自己學習成效與能力,另一方面可讓老師不只知道學生程式作業對錯,而可以進一步針對同學常犯的錯誤予以導正及加強,且學生可由所記錄之程式錯誤,整理出個人的錯誤提醒表(CheckList)。以提高個人軟體生產力與品質。此外本系統提供學生個人的元件庫,學生可由程式作業挑出所完成的元件,而存入本系統,以供日後(甚至就業時)重覆利用,提高寫程式的效率。Ⅰ.前言研究背景由於軟體產業是一腦力密集產業,參與工程師的個人能力與工作習慣對團隊的效率影響甚鉅,甚至影響計劃的成效。因此,卡內基美隆大學軟體工程研究所(SoftwareEngineeringInstitute簡稱SEI)的WattS.Humphrey先生提出PersonalSoftwareProcess(簡稱PSP)的概念及執行方法來評量及提昇工程師個人的軟體發展嚴謹度。Humphrey先生認為一工程師均應在指定時間內,交出符合要求的高品質的軟體產品及文件,此有賴每日詳實記載工作量、錯誤次數及錯誤提醒表(CheckList)等資料,方能準確預測新軟體開發工作所需完成時間,且能在預定時間完成指定的高品質軟體。此一概念迅速獲得業界迴響而推廣,且證實對軟體發展人員的生產力提昇有良好助益。Humphrey先生所提的方法是要每一工程師用筆記本記載每一日的工作量,且在一工作完成時,另記載所發生錯誤的次數,由一工作的累積工作時間工作量,及錯次數可推算其生產力及錯誤誤率,此對其預估新工作的完成時間有重要助益。且要求對每一錯誤情況建立錯誤提醒表,以提醒發展者可能產生之錯誤,對個人工作品質的提昇確有助益。國內已有眾多大學設有資訊工系所,資工系學生於求學期間寫過數十至近百的程式,但仍有部份學生的程式設計能力不足,甚至有些學生並不了解其程式設計能力已落後同學甚多,需自我加強訓練;而老師對同學的程式作業只知其對錯,無法針對同學常犯的錯誤之處予以導正及加強,甚至反應至來年授課內容的調整;此現象已累積多年,但國內尚未有人提出改善方法。研究動機有鑒於此,本研究認為可採用PSP方法來量度及改善學生程式設計生產力與錯誤率,然而PSP方法是要求每一個人用筆記本來記載其每日工作情況,對個人而言雖有助益,但不易與同儕相較、激勵;且老師也不易迅速掌握學生的學習情況。現今校園網路已非常普遍,資工系學生非常方便地使用電腦及上網,若能於校園網路系統中建立一套學生PSP系統供同學每日記載其學習情況,對於在校園內推動PSP制度的阻力將大為降低。因此本研究之目的是設計一套專供資工系學生使用之PSP系統,透過Server分析統計學生狀況,可以讓學生了解自己在班上的學習狀態,而老師也可以針對此資訊了解教學上的缺失,提高教學品質。除此之外,本系統還融入了元件庫,元件庫可以收集學生自己的元件,當之後程式須用到類似功能的元件時,可達到程式再利用的效能,提高撰寫程式的效率。研究方法Humphrey先生的PSP系統是以軟體工程師的角度建構出來的,其中包含了個人行程安排與紀錄,程式評估與分析再加上自己所參與的專案開發行事曆,都有其適用性。但以我們學生的角度來看的話,似乎不是那麼合適,所以我們以學生、老師的角度來探討這個系統。就以兩者的互動方式而已,我們必須以Client-Server的形式來設計此系統。再者,我們要重新設計學生要填寫的表格,與前者比較的話,專案開發的行事曆不適用,而且表格之間的關聯性不大,所以我們以針對學生上課、寫程式、寫作業、閱讀等項目來建立所需的評估及紀錄表格,並且設計一個使用者介面,讓使用者花最少的功夫便能將事項填寫完畢,並由系統分析整理其資料,且還可透過Server讓老師知道學生的學習狀況,進而給予幫助。因為我們是把重點放在程式學習方面,所以我們也打算使用BUG分類表、錯誤提醒表及元件庫的設置,讓學生在撰寫程式能夠提昇程設效率。預期效益本研究是開發一實用軟體系統以提供評估學生學習效果之用,對提升本系大學生教學效果將有實質效益。唯正確的資料輸入才能得到真實之使用結果數據;因此,需有相關配合管理措施才可獲實質收益。本系統完成後,對各使用者所得之效益有:(一)學生1.了解自我的實力。2.提升撰寫程式之品質及效率。3.建立自我的元件庫,可供日後就學或就業撰寫程式之主要來源。(二)教師1.可了解學生學習效果勤惰及常犯錯誤,並反應於教學。(三)管理者1.可了解系內各課程之學習情況及詳細資料。歷屆學習情況之比較,以作為系內教學內容及方法改善之主要依據。分工情形在這次的研究中,一開始我們先分別了解IntroductiontothePersonalSoftwareProcess這本書的主要內容,然後由黃志鴻負責學生的介面設計,蔡佳宏主要撰寫IOfunction和mask功能,而等學生部分做出大部分的架構後,蔡佳宏便開始著手Server端的程式設計及DataBase的架構和管理,而由黃志鴻主要負責老師和管理者的部分,最後再一起把Server和Client端進行溝通,完成這次的研究。Ⅱ.系統架構與系統規格為了達到師生互動的效果,所以本系統以Client-Server的架構建立,Server端主要做為資料的儲存及分析,而Client端分為學生、老師、和管理者三類:學生可紀錄自己的學習狀況,老師則可到Server端拿取修課學生相關學習資訊,而管理者須建立學生和老師的登入帳號和密碼,並且可以觀看歷屆學生的學習情形(如下頁圖一)。(圖一)系統架構我們的系統主要都是在Client端處理事情,Server只儲存重要的資訊並整理分析。當使用者輸入資料時,就在自己的電腦做處理紀錄的動作,把資料變成檔案儲存在自己的電腦上,只要定時將有用的資料上傳給Server分析統計即可,因為若所有資料都交由Server處理的話,資料的流動量會很大,所以我們採用了分散式管理的方式,可以減輕Server的負擔且增加系統的可行性。但這行為只會在學生的介面出現,老師和管理者存取資料都是透過Server,因為他們需要的資料都是由Server分析統計過的,所以就略掉了這個動作。而在Client與Server的溝通上,本系統採用Socket方式建立連線,且連線方式為即時傳輸,當要存取資料時才連立連線,存取完畢便關閉連線,因為系統開啟的Socket個數有限,這樣才不會造成Client端佔用Socket連線,使其他使用者無法和Server溝通。本系統可分為四個部分來討論~學生部分每日登錄此系統時,可紀錄當日上課、寫作業、寫程式、閱讀的項目、時間及工作量,並可安排明日工作時間預定表。當完成一項作業或程式後,學生將工作時間及工作量存入Server,系統自動計算其工作效率,以作為預估做作業或程式所需完成時間的參考依據。對程式作業而言,學生還需要對常犯錯誤作記錄及建立錯誤表。學生也可自己建立元件,可以存入系統的元件庫中,增加程式的再利用性,同時也能提高程設的效率。老師部分老師可以在本系統上指派作業項目,並且可觀看修課學生資訊及學習狀態:每週上課時數、每週閱讀時數、每週寫作業時數、及每週寫程式時數,也可查詢作業或程式的完成度,比較學生之間的差異。除此之外,老師也可根據修課學生常犯之程式錯誤,加以整理分析,提升教學品質。管理者部分管理者部分,可以新增、刪除、及修改學生和老師資訊,也可新增一課程,並指定其授課老師,以供學生選課之用。同時,也能觀看某課程之修課學生資訊。除此之外,管理者也可查詢歷屆學生的修課資訊,比較各屆學生,從中了解教授教課情形。Server部分Server端主要負責資料的儲存,而存取的權限根據帳號分成三個等級:學生、老師、及管理者。Server端也負責做各個課程學生資料的分析統計,以提供給老師和學生查詢,而且若學生沒有使用本系統,將寄信於予通知,並且告知管理者未使用名單,還有當老師指派作業時,Server就會通知所有修課學生作業內容。而Server端的資料收集是透過資料庫來儲存的,而其資料庫的SchemaDiagram如下圖所示:系統規格Client的程式以Windows介面呈現,使用BorlandC++Builder和裡面的VCL元件來撰寫,建構出使用者介面,在連線方面則是利用WinSock來跟Server溝通。以使用者的類別分別撰寫出三個不同的UserInterface供學生、老師、管理者使用。(一)學生使用者介面外觀如下所示~(登入會先彈出一視窗讓學生輸入帳號密碼,接著就會進入學生PSP系統,可分為五個部分)主畫面:是登入系統第一個看到的畫面,有【每日提醒】、【今日行程表】。在每日提醒裡,學生可以知道自己是否已經填寫了固定行程表(功課表,meetingtime)、每日紀錄及明日行程表。而今日行程表會列出你今天預定要完成的事項。預估畫面:可分為【行事曆】、【程式評估】。行事曆包含了行事曆預覽、預定行程表、預定工作排程表及固定排程,在行事曆預覽畫面中,學生可以查詢自己安排的行桯,也可新增排程直接跳到預定行程表畫面來安排此天的要做的事情,若是作業、程式有一定的時間限制或是需要數天才能完成的工作,則必須到預定工作排程表中填寫此項工作的的期限、預定所花時間和工作量。若為作業則要加上老師所指定的題號,以便日後的紀錄追蹤;若為程式時,在預估工作量時就會跳出一個相同於程式評估的畫面,學生估計這個程式要寫那幾個函數、寫幾行、花多少時間、會產生多少錯誤,加總後再放入工作量中,這樣可以提高預測的準確度。而最後的固定排程則是讓學生更方便使用其系統,比如說每週的上課時間都是固定的,所以在填寫預定行程表時就不用再填寫而系統會自動產生。表格名稱表格欄位預定行程表類別、課程名稱、工作名稱、預定開始時間、預定結束時間、預定所花時間、工作量、說明預定工作排程表類別、課程名稱、工作名稱、預計開始日期、預計結束日期、預計所花時數、預計工作量、預計速率、說明固定排程固定日期、開始時間、結束時間、生效日期、失效日期、類別、課程名稱、工作名稱、說明BUG評估預計產生個數、預計解決個數函式評估函數名稱、所花時間、行數、說明紀錄畫面:紀錄學生每日的行程,【紀錄事項】學生每日都要詳實紀錄自己所做的事項,有沒有去上課、有沒有唸書、有沒有練習程式,有沒有寫作業,這些所花的時間,所完成的工作量都要紀錄在每日紀錄裡,而系統會自動處理其中的數據資料而將其歸類到上課紀錄、閱讀紀錄、程式紀錄、作業紀錄裡。並且於紀錄表格中都含有學生之前預定今天的行程表,學生可以和實際做個比較。工作紀錄則是當每日紀錄裡的完成選項被勾選時(只有類別為作業跟程式才會有作用),系統會自動的把此項工作所花的時間、工作量加總然後填入工作紀錄中。而BUG紀錄和函式紀錄都是要學生於撰寫程式時要一邊紀錄的,學生寫程式時犯了什麼樣子的錯誤,而最後寫出來的程式裡包含的函數有那些,都要詳細紀錄。表格名稱表格欄位每日紀錄類別、課程、工作名稱、預定開始時間、預定結束時間、預計所花時間、實際開始時間、實際結束時間、實際所花時間、中斷時間、中斷原因、預計工作量、實際工作量、說明、完成/複雜度工作紀錄類別、課程、工作名稱、預計開始日期、預計結束日期、預計所花時數、實際開始日期、實際結束日期、實際所花時數、預計工作量、實際工作量、預計速率、實際速率、說明上課紀錄課程名稱、預計所花時間、實際所花時間、說明閱讀紀錄課程名稱、工作名稱、複雜度、預計所花時間、實際所花時間、預計完成頁數、實際完成頁數、說明程式紀錄課程名稱、工作名稱、預計所花時間、實際所花時間、預計完成行數、實際完成行數、說明作業紀錄課程名稱、工作名稱、預計所花時間、實際所花時間、預計完成題數、實際完成題數、說明BUG紀錄BUG類別、

1 / 17
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功