石寶金 張正金
(1.蚌埠學院 計算機工程學院,安徽 蚌埠 233030 ;2.巢湖學院 信息工程學院,安徽 巢湖 238000)
近年來,為了增強學校教學與企業(yè)實際應用之間的適配性,一些高校的辦學理念也漸漸體現(xiàn)出工程化的特點。而辦學理念的最直接體現(xiàn)便是培養(yǎng)方案的調整、相關課程的增設和教學模式的改變?!禞AVAEE》便是這轉變中新加的一門課程:以JAVA程序設計、WEB和數(shù)據(jù)庫基礎為前繼,強調標準化開發(fā),面向企業(yè)級應用。以往的教學環(huán)節(jié)中大多課時都用在JAVAEE相關技術及常用框架(SSH、SSM)的講解,以提高學生的編程能力為主要目的,繼而在《JAVAEE實踐》課程中也會延用之前的教學模式,即以編碼實現(xiàn)系統(tǒng)為唯一考核標準。但上述教學模式并沒有真正體現(xiàn)出企業(yè)級應用開發(fā)標準化這一特點,或者說過程文檔的規(guī)范化訓練如此重要的環(huán)節(jié)已被完全忽視。而這一問題通過調整相應課程的設置順序,并適當改變教學的習慣性偏重等途徑,是可以解決的。在實際的教學過程中,教師通過模擬公司項目管理實情,讓學生自主組隊、選題、分工,并對過程進行管理,過程文檔的規(guī)范化與編碼并重,強調對需求和業(yè)務的理解能力,達到教以適需、學習適用的教學目的的同時,不僅增強了教學效果,而且對學生的實踐能力有很大的提升。
《JAVAEE實踐》是《JAVAEE》的課程實踐,一般會在大三開設。為適應企業(yè)級應用開發(fā),除上文中提到的基礎課程外,還應該增設一門前繼課程——《UML》,并作為考試課程,以強調UML基礎的重要性,而這一點是當前計算機軟件教育所忽略的。
當前的軟件教學,大多將學生編程能力的提升做為唯一目標,而忽略了過程文檔的規(guī)范化訓練,尤其是需求文檔。編程能力的提升并不代表業(yè)務能力的提升,不懂需求和業(yè)務將直接導致項目開發(fā)的低效、反復、失敗。而過程文檔的規(guī)范化作為企業(yè)級應用開發(fā)的重要標準和前提之一,理應在實踐教學中得到體現(xiàn)。
《JAVAEE實踐》是一門理論聯(lián)系實踐的課程。需求工程更是貫穿軟件開發(fā)的始終,尤需長期的經(jīng)驗。高校教師由于缺少工程實踐經(jīng)驗,或是一直以來根本忽視了軟件開發(fā)中過程文檔規(guī)范化的重要性,而不能很好地將其融入教學,因此學生也很難得到此類訓練。
基于以上考量,為了能夠更好的兼容企業(yè)實際用人要求,本文提出了以過程文檔規(guī)范化訓練的方式來展開《JAVAEE實踐》課程的教學工作。根據(jù)需求結合相應案例,按照軟件開發(fā)的標準化要求,逐步實施需求獲取、需求分析、需求規(guī)格說明及需求確認的過程,并按照需求列表去推進后繼工作。以需求為導向,將知識點提煉融合,加深學生對工程化和規(guī)范化的理解,達到教以適需、學以適用的目標。具體實施過程如下:
教學環(huán)節(jié)根據(jù)過程文檔的種類,按時間點劃分為若干階段,各階段教師講授與學生實踐交替進行,教師對學生提交的階段性成果進行評審。所有過程文檔的規(guī)范化材料均由教師提供,并按模板所涉知識點,結合典型案例逐一分析。材料包括需求規(guī)格說明書、數(shù)據(jù)庫設計、系統(tǒng)概要設計、系統(tǒng)詳細設計、UI設計、系統(tǒng)測試等模板。實施進度如表1所示:
表1 各階段教學進度
課程教學環(huán)節(jié)較多,現(xiàn)僅以需求分析(需求規(guī)格說明書的確立)過程為例,讓學生理解需求調研——需求分析——需求確認的過程,并結合相應實例講解UML中基本圖形的設計要求,以此展開需求文檔規(guī)范化的訓練工作。
1、背景知識理論補強(教學重點)
(1)需求調研
確定原始需求,即通過走訪、考察、溝通、分業(yè)務組討論等方式獲得,這一過程具有反復性。課堂是實際的模擬,缺少真實客戶交流場景,可以通過典型案例的解析讓學生拓展思維、異位思考(站在使用者的角度上去分析),再通過討論總結等方式獲取關鍵需求,這是教學的重點。另外也應強調后期的需求變更、經(jīng)濟及技術可行性論證等都是造成反復性的原因。
(2)需求分析
需求的分析過程是一個迭代的過程:從需求的獲取開始,到整理再到驗證,最后又返回需求的獲取。為了加深學生對這一環(huán)節(jié)知識的理解,可以根據(jù)項目的類型選擇不同的分析方法進行講解,如功能角色劃分、用例圖、業(yè)務流程、行動圖、狀態(tài)圖、非功能要求等。
(3)需求確認
需求確認環(huán)節(jié)是對前期分析結果的肯定,最終形成的需求列表應該是純粹的用戶意愿表達。根據(jù)需求列表建立需求規(guī)格說明書,再讓學生以小組審核的方式對需求進行最終的簽字確認,并以此開始軟件設計開發(fā)工作。
2、需求規(guī)格說明書標準
各軟件項目,需求規(guī)格說明書的標準雖有不同,但在一些關鍵點上是共通的,現(xiàn)給出需求規(guī)格說明書的通用模板,如表2所示:
表2 需求規(guī)格說明書
3、關鍵知識點分析(教學難點)
教學的目的是讓學生理解掌握知識,并在實踐中應用。以項為引導,以需求規(guī)范化理論知識講解相輔助,并對不同分析方法間的聯(lián)系和區(qū)別作比較,找到相通之處,這是教學的難點。下面將以用例圖和行動圖為例,對功能需求進行講解。
(1)用例圖
用例圖體現(xiàn)了面向對象分析和設計的全過程,以用戶為視角,對需求進行抽象、歸納和總結,并建立模型。一個好的用例圖必須是易于用戶理解的,因此應該用通俗易懂的語言,而非專業(yè)術語。另外,雖然生動直觀是用例圖最大的價值體現(xiàn),但僅憑用例圖又會使分析丟失很多信息,因而需要添加用例說明輔助表達。下面將以學生選課環(huán)節(jié)為例,講解需求分析中用例說明的規(guī)范。
學生選課用例圖,如圖1所示:
圖1 學生選課用例圖
表2 需求規(guī)格說明書
這里需要向學生強調“*”部分——非功能要求。非功能要求因與技術相關聯(lián),而最容易被忽視,如安全性、并發(fā)性等要求??紤]到大量用戶會在同一時間進行選課,故這一部分的操作對并發(fā)性要求較高,因此在前期需求分析時,應該考慮系統(tǒng)的架構選擇。
(2)行動圖
用例說明,用純文字的方式對業(yè)務流程和分支進行描述,強調了分散的細節(jié)而丟失了對工作流程的整體把握。而UML中的行動圖將各個活動節(jié)點連接并說明相互間的遞轉順序,圖文并茂,有效地彌補了用例圖的不足。下面將以在買家在線下單為例,講解需求分析行動圖的規(guī)范。買家在線下單行動圖,如圖2所示:
圖2 買家在線下單行動圖
該行動圖的開始點、活動、分支點、同步點(分叉和匯合)、動作流、結束點,分別用實心圓點、圓角矩形、菱形、實心橫杠、實線箭頭和中心黑點的圓環(huán)表示,結合泳道將行動圖劃分為買家、系統(tǒng)和賣家三部分,描述了買家在線下單后,系統(tǒng)及賣家的一系列處理流程。具體的動作描述、轉移描述等規(guī)范化表格不再贅述。
當開始《JAVAEE實踐》課程時,學生已經(jīng)具備了基本編程和數(shù)據(jù)庫應用能力??紤]到課程需要,以學生自主分組,自擬題目的形式來開展工作。因期間需要組員進行討論、確認的場景很多,故要求每小組成員不得少于6人,各成員職責分工明確(需求、數(shù)據(jù)庫、UI、編碼、測試、文檔書寫等),且共同參加需求列表的確認工作,每一小組各指定項目經(jīng)理和副經(jīng)理各一名,負責管理小組、管控項目進度和質量。
自擬題目后,在教師指導下,項目經(jīng)理向組員下發(fā)每一階段任務,并管理項目實施的全過程:項目啟動、過程管理、需求分析、系統(tǒng)設計、編碼測試、發(fā)布交付等環(huán)節(jié)。所有材料除代碼外,均以文檔形式提交(電子稿、紙制稿)。其中過程管理和發(fā)布交付環(huán)節(jié)所涉內容如表4所示:
表4 過程管理和發(fā)布交付內容表
由各項目組經(jīng)理及副經(jīng)理根據(jù)組員的日常表現(xiàn)及所做貢獻討論給出:過程管理、編碼測試、發(fā)布交付三環(huán)節(jié)各占50%、40%、10%,按每組6人計算,預評分數(shù)95至70,每5分一檔且僅用一次。
系統(tǒng)功能演示情況占60%(基本功能實現(xiàn)、業(yè)務邏輯正確、UI設計合理各占20%);過程文檔規(guī)范化程度占40%(以需求分析為例,項目介紹完整、功能劃分明確、用例圖、行動圖表述正確,各占10%)。
組內預評分數(shù)和教師評分各占學生最終成績的50%。如1組6人的預評分數(shù)為95、90、85、80、75、70,教師對1組的評分為85,則1組6人的成績分別為90、87.5、85、82.5、80、77.5。
傳統(tǒng)教學僅需提交代碼、數(shù)據(jù)庫腳本,并打印課程設計報告。學生成績分小組劃定,即組內成員分數(shù)均相同。通過過程文檔規(guī)范化訓練,模擬公司項目管理實情,開展的《JAVAEE實踐》課程教學,除上述材料外,每組還需提交過程文檔電子稿和打印稿(需求分析、數(shù)據(jù)庫設計、詳細設計報告等),學生成績由組內預評和教師評分兩部分綜合,呈等差分布。
在課時不變的前提下,新教學方式的授課內容、范圍、學生的工作量都明顯增加,這對學生提出了更高的要求,即需要課下花費較多的時間去理解和消化。對于基礎不好的班級,18周每周2學時的課時設置明顯不足,相應教學環(huán)節(jié)不得不刪減(如UI設計,系統(tǒng)測試等)。但從實際教學效果來看,新教學方式的實施更有利于提升學生學習興趣以及對企業(yè)級應用開發(fā)標準化流程的理解,更能體現(xiàn)出軟件專業(yè)化培養(yǎng)的特點。