鄭林芳
(廣東省財政職業技術學校 廣東 廣州 510445)
“班級公司化”管理是一種全新的班級管理模式,即在班級管理中吸收企業的管理理念,有企業組織架構、人事考核制度及企業文化,以公司化的形式展開班級管理。同樣在實訓教學階段,引入“公司化”的模式來開展教學設計,利于探索多樣化的實踐教學方式。
在職業教育階段,實訓環節占極及重要的地位,只有通過實訓,才能把學到的專業知識和技能加以整合應用。根據本校教學安排,每學期最后一周時間為實訓周,計算機網絡專業的學生第三學期開設了“C#程序設計”和“數據庫”這兩門專業課程,將其整合應用的實訓項目是本學期實訓周的主要內容,因此,本學期設計的實訓內容是 “基于C#的學生成績管理信息系統的設計與實現”,在此項目實訓環節中,將利用軟件開發公司的流程及形式探索項目開發和設計。根據軟件生命周期,整個實訓項目可分為系統規劃、系統分析、系統設計、系統實施、系統運行和維護五個階段,如圖1所示。全班學生和實訓指導教師在項目生命周期中根據“公司化”管理扮演不同的項目角色,這種分工方式不僅體現了學生的主體實踐地位,而且培養了學生發現和解決問題的能力,同時易于挖掘學生的潛能,學以致用,成為學習的主人。
實訓項目的系統規劃是系統生命周期的第一階段,其任務可以分解為開發請求、初步調查、可行研究、審批四個階段。具體表現為:實訓指導教師收到“學生成績管理信息系統”的開發請求,并把此開發任務下發給全體學生;全班學生分組并推選出小組正組長和副組長,各小組根據開發請求對現有的成績管理狀況和實現目標進行初步調查,同時根據系統要實現的目標和發展要求確定成績管理系統的設計目標;學生對系統的需求做出分析和預測,同時考慮新系統所受的各種約束條件,研究新系統的必要性和可能性,各小組據此擬出系統的備選方案,寫出可行性研究報告;各小組正、副組長和指導教師一起審議各小組的可行性報告,通過分析、挑選,結合實訓開發計劃編寫出系統設計任務書。

需求分析是要決定“做什么,不做什么”,通過對目前成績管理現狀進行調查分析,明確系統需要做什么,做到什么程度,得出功能需求和性能需求。
功能需求:本項目對學生的成績進行管理,教師角色錄入成績,對成績能夠進行查詢、修改和刪除;學生在教師錄入成績之后,只能夠對成績進行查詢;而教務管理員除了對成績能夠進行增加、刪除、修改和查詢外,還需要對學生和教師信息、課程信息進行維護和管理。
性能需求:要求設計出來的系統運行時要穩定,具備較強的適應性和移植性。同時要具備可擴展性,當新的需求提出時,方便進行更新和維護。
可行性分析是要決定“做還是不做”。一般可行性分析主要考慮四個要素:經濟、技術、社會環境和人。成績管理信息系統從經濟上分析因為是實訓項目,沒有全生命成本即開發成本和維護成本,而開發成功之后如果應用到學校的教務工作上將帶來一定的效率;從技術上分析,因剛學完C#程序設計語言與數據庫技術,完全有能力完成管理信息系統的開發與設計。
可行性報告經指導教師與小組組長審議通過后,根據《GB8567-88計算機軟件產品開發文件編制指南》中的項目開發計劃要求,為了能使項目按照合理的順序開展,保質保量的完成,要求各小組編寫一份結合實訓教學實際情況的系統設計任務書。此項目的團隊組織結構由總經理 (教師)、項目經理 (小組組長)、系統分析員(小組副組長)、軟件工程師(小組成員)、界面設計師(小組成員)、測試組長(小組成員)和測試人員(小組成員)組成,其中,開發部門包含系統分析員和軟件工程師,設計部門包含界面設計師,測試部門包括測試組長及測試人員。團隊結構如圖2所示。同時,為了明確項目團隊中的個人分工,制定出人員分工表,如表1所示。

圖2 團隊組織結構圖

表1 團隊組織結構表
在分析階段,主要根據系統設計任務書所確定的范圍,確定系統的基本目標和邏輯功能要求,得到既通俗又準確的系統說明書,它是項目設計的依據,也是將來驗收系統的依據,同時用戶也可以通過說明書知道系統的功能,此系統說明書也需要實訓指導教師與小組正、副組長的評審,只有通過評審才能進入下一階段。
根據功能要求,系統最主要的功能是給所有用戶(學生、教師、管理人員)提供成績查詢功能。同時對教師和管理員提供成績的增加、刪除和修改功能。
按照業務的實際處理步驟和過程進行的業務流程圖是用來描述系統組織結構和業務流程的圖表,利用它可以幫助實訓者找出業務流程中的不合理流向。在本項目中用戶通過登錄模塊來驗證用戶名及密碼的正確與否,如果正確,再通過用戶權限來判斷各功能模塊是否可用;登錄成功之后,再進行相應的業務處理,其具體的業務流程如下頁圖3所示。
系統分析階段完成“做什么”的問題,而設計階段實現的是“怎么做”的問題。它根據系統說明書中規定的功能要求,具體考慮實現邏輯模型的技術方案,形成系統設計說明書。此階段有概要設計和詳細設計兩子階段,主要完成系統模塊化和數據庫設計工作。

圖3 業務流程圖
從功能角度出發把系統從上往下分為幾個子系統、子模塊,并把分模塊任務委派給不同的組員。在本系統中可劃分為用戶登錄、學生信息管理、課程信息管理、成績信息管理四個模塊。通過登錄模塊確定用戶身份,如果為學生,則只提供成績的查詢功能;如果是教師除了成績的查詢功能外,還應該具備成績的增加、刪除和修改功能;如果是教務管理員除了成績的增加、刪除、修改和查詢功能外,還應該增加課程和學生信息的增加、刪除、修改和查詢功能。學生信息管理模塊、課程信息管理模塊和成績信息管理模塊都應該具備增加、刪除、修改和查詢功能,只是不同的用戶具備不同的權限。
數據庫是管理信息系統設計中的一個重要環節,學生成績管理信息系統是典型的管理信息系統(Management Information System,MIS),在系統后臺要建立和維護數據庫,作為中小型的MIS,SQL Server數據庫是本項目不錯的選擇,系統分析員對數據庫進行概要設計,軟件工程師進行物理設計,并撰寫數據庫設計說明書。項目具體建立了四張數據表,具體如下:
用戶信息表(UserInfo):用戶名、用戶密碼、用戶權限;
學生信息表(StudentInfo):學號、姓名、性別、年齡、班級、電話、家庭住址;
課程信息表(CoureseInfo):課程編號、課程名稱、學分;
成績信息表(ScoreInfo):學號、課程編號、成績。
數據庫包含表與表之間的關系,如成績信息表中“學號”來源于學生信息表中現有的學生學號;成績信息表中“課程編號”來源于課程信息表中現有的課程編號。根據業務邏輯合理性定義表與表之間的關聯,以確保數據的一致和完整性。
在此階段,指導教師要把握學生的數據庫設計是否與需求相符,是否符合設計的規范,并且與小組正、副組長一起完成數據庫設計的評審。
系統實施是將設計的系統付諸實施的階段。包括編程測試、安裝測試、人員培訓、數據文件轉換、購置安裝和調試計算機設備,完成系統上線運行的準備。在本實訓項目中組長將項目模塊分發給小組成員,軟件工程師根據需求規格說明書來完成編碼調試,指導老師、正副組長通過不斷的巡視、督促解決編碼過程中遇到的問題。當模塊任務完成之后,測試部門進行功能測試。
本項目主要采用C#程序設計語言來編寫所需的各模塊。多個模塊通過微軟公司新一代.NET數據庫訪問架構ADO.NET進行數據庫的各項操作,在本項目中主要利用了 Connection,Command,DataAdapter,DataSet四個對象來完成和執行SQL語句,大大縮短和簡化了程序開發的難度和時間。在此階段,根據設計階段的劃分情況,要完成各功能模塊的代碼設計。
為了節省系統資源,實現代碼重用,在系統中以公共類方式來組織和封裝一些常用的方法和事件,如數據庫的連接和SQL語句的執行。本系統中定義了公共類dataSQL,其封裝了數據連接dataConn,執行SQL語句得到數據集getDataSet和執行SQL語句sqlExec的方法。其中執行相應的SQL語句返回相應數據集的getDataSet方法的部分代碼如下:
SqlCommand cmd=new SqlCommand(sSQL,

系統登錄模塊主要用于對進入系統的用戶進行安全檢查和權限分配,以防止非法用戶的登錄和使用。用戶輸入賬號、密碼和用戶類別進入相應的系統用戶界面,登錄模塊實際上就是對用戶信息表UserInfo進行查詢的操作,設計用戶登錄窗口如圖4所示。

圖4 用戶登錄窗口圖
3.模糊查詢模塊
管理系統的每種身份用戶都能對成績信息進行查詢。在成績查詢界面上,可通過學號、課程編號、課程名稱等條件對成績表、課程表、學生表進行聯合模糊查詢。其部分代碼如下:
strSql="select學號,姓名,班級,課程編號,課程名稱, 成績 from ScoreInfo,StudentInof,ScoreInfo where StudentInof.學號=ScoreInfo.學號 And CourseInfo.課程編號=ScoreInfo.課程編號 And CourseInfo.Sid like‘%學號%’and CourseInfo.Cid like‘%課程編號%’ ";

MessageBox.Show("查無記錄");
教師和教務管理員都具備對成績錄入的功能,其設計本質就是對數據庫執行SQL的Insert語句,對成績的錄入其實現代碼如下:

教師和教務管理員也應具備對成績刪除的能力,其設計本質就是對數據庫執行SQL的delete語句,對成績的刪除其實現代碼如下:

教師和教務管理員應具備對成績修改的能力,其設計本質就是對數據庫執行SQL的update語句,對成績的刪除其實現代碼如下:

小組軟件工程師在完成對各功能模塊編程調試通過之后,為了發現系統中存在的問題,測試組長構建運行所需要的軟硬件環境,并和小組成員進行系統的測試。首先測試組長制定測試計劃,書寫測試用例,測試人員執行測試,記錄bug并與編程者進行溝通,檢查bug的修復情況;組長檢查和監督測試進度,并與項目不同級別工作人員進行溝通,進行測試總結,編寫測試報告。
通過實訓周的努力,各小組學生完成了實訓項目的設計與實現。學生準備好項目程序和文檔,在班級里進行公開驗收,教師和學生一起對完成的項目進行系統測試、系統運行、系統文檔驗收,如果項目計劃規定范圍內的各項任務都已經完成且交付的成果令人滿意,則項目驗收成功,教師和組長按照相應的評分標準和分數比例給出相應成績。對于優秀作品,教師除了在班級里進行展示與點評外,還應推薦給相應業務部門使用。
項目投入運行后,需要經常進行維護和評價。任何一個系統,隨著時間的推移需求將發生變化,只有經過不斷的開發、運行、再開發、再運行的維護升級過程,才能讓系統適應需求的變化,直至項目報廢處理。這個過程對于實訓項目來說可以忽略。
在“公司化”的實訓教學中,由于學生能力經驗和項目環境的不足,實訓環節仍然是實驗性的,忽視了許多具體的實際條件,如何改進有待于進一步的探索。
[1]張友生.信息系統項目管理師考試全程指導[M].北京:清華大學出版社,2011.
[2]林劍誼.利用軟件生命周期創建B2C電子商務網站[J].福建電腦,2009(10):104-105.
[3]謝書良.C#任務導引教程[M].北京:清華大學出版社,2012.