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