【摘要】教學軟件開發的需求分析的科學化和合理化是保證其產品能夠有效應用的前提與基礎。本文在北京市教育科學“十五”規劃重點課題“北京市中小學教學資源有效開發與推廣應用的指導原則的研究”提出的教學軟件需求分析有效實施的指導原則基礎上,結合軟件工程、教學設計的相關理論,對合理化的教學軟件需求分析過程進行了論述。
【關鍵詞】教學軟件開發,需求分析,規范化流程
【中圖分類號】G434【文獻標識碼】B【論文編號】1009—8097(2007)01—0022—04
一、引言
為了提高教學軟件開發的質量,人們一方面研究用教學系統設計理論指導教學軟件的開發過程,另一方面研究教學軟件的內容組織和表現形式,用教學論和學習論的原則指導軟件細節的設計。以北大汪瓊博士為代表的部分研究者認為,在宏觀上建立良性的可持續發展模式,即研究規范化的教學軟件開發過程,也應該成為“如何在提高教學軟件數量的同時提高教學軟件的質量”這一議題的重要研究方向。需求分析作為教學軟件開發過程中的首要工作是直接連接用戶與開發者的關鍵環節,其流程的規范化是保障教學軟件的適用性和促進有效應用的基礎。
二、教學軟件需求分析的目的與層次
論述教學軟件需求分析的合理化流程,有必要首先明確什么是教學軟件的需求分析。軟件工程領域普遍認為,軟件需求分析的任務就是準確地回答“系統必須做什么”這個問題。作為產品開發的教學軟件要具備廣泛的適用性,必須保證產品對擁有相似特征的使用者產生“復制”的效果,即具有科學性、可重復性。因而開發前確保待開發教學軟件能夠支持特定的教學目標、解決特定的教學問題非常重要。鑒于此,教學軟件的需求分析的目的應該從“回答系統必須做什么這個問題”拓展為:分析當前教學中的特定問題,論證教學軟件開發對解決問題的必要性與可行性,確定開發軟件的總目標;在此基礎上與用戶共同決定教學軟件的功能特性、教學特性以及性能、可靠性、產品特征等其它方面的要求。
實現教學軟件需求分析的目的,一般需要逐步明確四個層次的需求,如圖一所示。教學軟件需求分析的層次劃分呈現了教學軟件需求分析的以下關鍵任務:

現了教學軟件需求分析的以下關鍵任務:
(1)確定待開發的教學軟件的總體目標和預期效果,形成一個前景文檔指導后期的教學軟件開發工作;(2)了解教學軟件用戶當前的業務(教學)過程,總結教學軟件可能與之相關的使用任務;(3)明確教學軟件要支持上述使用任務應該具備的功能和模塊設置,同時細化其教學性要求;(4)進一步分析教學軟件在用戶界面、技術穩定性等其他方面的特性要求,使需求完整化。可見,教學軟件各層次需求的獲取要經歷一個逐步繼承、由抽象到具體的過程。
三、教學軟件需求分析的規范化流程
教學軟件的需求分析是保證教學軟件開發質量的重要前提,而教學軟件需求分析的效果在很大程度上取決于其工作流程的合理化。為了確保教學軟件需求分析目的的實現和各層次需求分析任務的完成,其需求分析流程應該包括前期需求分析、開發中的用戶需求分析以及推廣應用中三個階段,以保證需求分析的層次性和全面性。當然,在實施過程中還要特別關注由教學軟件特殊性決定的其需求分析工作在內容與方法上的獨特之處。
(一)前期需求分析
如果將教學軟件作為一種產品來開發,那么它的前期需求分析就尤為重要。前期需求分析的任務主要從教學系統的角度鑒別是否存在開發軟件的必要性與可行性,確定開發總目標,其實施過程采用“以問題為導向”的思想和系統論方法。
顧名思義,“以問題為導向”的思想就是首先對期望教學軟件解決的問題、以及教學軟件理論上能夠解決的問題進行分析,以此作為確定教學軟件的開發需求與預期目標的基礎。這一思想將“真正解決用戶教學活動中的問題”作為教學軟件開發的出發點,確保軟件產品的實用性。
系統論的方法是指在“以問題為導向”進行教育需求論證時,要綜合考慮內部需求和外部需求。外部需求是相對教學軟件的用戶需求而言,主要體現在社會發展或領域(學科)發展對現行教學系統的現實與期望狀態之間的差距;內部需求源于用戶對現行教學系統的現實與期望狀態之間的差距,以及期望應用教學軟件解決的現實問題。對教育的外部需求的分析可以促使需求分析人員對教學軟件的應用領域有宏觀認識和把握,這是對內部需求進行科學引導的前提。前期需求分析的主要工作包括:

1.教育需求分析。需求分析人員首先要從系統角度完成對教育外部需求的分析,即通過查閱文獻資料、對學科(領域)專家訪談等方法獲取社會對領域(學科)發展的期望,應用領域(或學科)當前的發展現狀、問題和趨勢等信息;其次,在對教學軟件的應用領域有了宏觀認識的基礎上,向用戶領域的專家或在關鍵崗位上工作的人進行個別咨詢,了解用戶當前的業務(教學)狀況;最后,綜合上述結論確定社會、領域(學科)和用戶分別期望教學軟件產品來解決的問題。
2.已有產品的現狀分析。需求分析人員進行充分的市場調查,明確已有教學軟件同類產品可以解決上述教育需求的哪些問題,還不能解決哪些問題,形成對待開發教學軟件產品的一個期望。之后,結合用戶對已有同類產品的意見和建議的調查結論,確定待開發教學軟件的相對優勢,完成其市場定位。
3.開發必要性的論證。依據教育需求分析和已有產品現狀分析的結論論證教學軟件開發的必要性。
4.開發可行性的分析。對支持或阻礙教學軟件開發的經費、開發團隊、技術水平等方面的資源或約束條件進行論述。教學軟件開發的約束條件的論證必須包括教學軟件是否會受到應用領域現有條件的限制、是否受用戶觀念或習慣的影響,設想的教育理念能否通過技術手段真正實現等。
5.開發理念與產品目標的確定。在上述各項工作的基礎上,與用戶商討確定教學軟件的開發目標和開發方案,共同制定教學軟件開發的前景文檔作為后期教學軟件開發的指導和依據。
前期需求分析是整個教學軟件開發的基礎性工作。深入細致、科學規范的前期需求分析不僅有助于指導教學軟件的開發,同時有利于教學軟件產品的推廣與應用。
(二)開發中的用戶需求分析
用戶需求分析的任務是依據教學軟件開發的前景文檔,圍繞教學軟件的開發目標,獲得用戶對教學軟件“應該如何做”的信息。教學軟件的需求分析流程與一般軟件存在共性,但在實施方法上與一般軟件有著本質的不同,其特殊性主要表現在三個方面:
第一,教學設計者和學科專家參與教學軟件的需求分析工作。除了需求分析人員、技術開發人員參與需求分析外,為了確保教學軟件產品不偏離教育應用領域的特征,需求分析團隊還應該吸納教學設計人員、學科(領域)專家作為教學軟件教育特征的把握者和指導者。教學設計人員應用教育原理及多媒體技術方面的豐富知識,參與確定教學軟件的使用任務和設計教學軟件原型。學科專家(領域專家)能夠把握學科或領域的發展方向,在需求分析中參與教學軟件開發的選題和策劃,審定教學軟件的原型和最終產品,以保證教學軟件符合教育發展的方向和學科(領域)發展的規律。
第二,采用原型法進行需求分析,應用教學設計理論和方法指導原型設計。對教學軟件這種“認知工具”和“學習環境”的開發,表面上是對軟件各功能模塊的設計與開發,實則是通過設計手段使一定的教學理念在軟件功能或細節上得到體現。因而教學軟件的原型必須由教學設計人員以對用戶需求的理解及其業務(教學)活動的分析為依據,以教學設計理論、教與學的理論為指導,融入特定的教學理念創造性地提出。
第三,對用戶業務(教學)活動的分析是該項工作的重要方面。教學軟件作為支持用戶教學活動的一種學習環境,其技術功能的強大并非等同于其教學特性的合理。因而教學軟件需求分析的重點在于對用戶教學活動進行系統地分析與理解的基礎上,通過一定的教學理論將其轉化為教學軟件的使用任務,由此再對教學軟件應該具備的、支持用戶教學活動的功能進行抽象。這是確保教學軟件的功能設置不偏離教學需求、同時符合教學規律的有效手段。
依據軟件需求工程的思想,教學軟件的用戶需求分析應該包括用戶需求信息的獲取、需求信息的分析、需求驗證等工作,實施流程如圖3所示。

1.用戶需求信息的獲取
(1)準備階段
教學軟件用戶需求信息的獲取工作量較大,不確定因素高。在需求獲取的過程中,需求分析人員與用戶建立起以良好的溝通協商關系非常關鍵,因而需求調研前期要做好充分的準備,主要包括:a.確定用戶類別,選擇調查的目標用戶,b.確定需求調查的方式,c.準備用戶訪談的問題或調查問卷,d.制定調研計劃等。
(2)用戶訪談
用戶訪談是獲取用戶需求信息的普遍方法。一般由需求分析人員負責組織用戶訪談會議的召開,設計問題和引導用戶對相關問題的解答。用戶要在訪談中向需求分析人員表達自己對產品的愿望,介紹教學(業務)的流程,說明教學(業務)中出現的問題,提出對已有相關教學軟件產品的意見和建議。需求分析人員應該在獲得上述信息后快速理解用戶意圖,并把自己的理解告知用戶,確認理解的正確性。協商過程中,需求分析人員和教學設計者在分析用戶教學(業務)和產品使用流程的基礎上,形成對教學軟件應該提供的功能與模塊的初步想法并與用戶商討,使自己的預期方案盡早得到及時地調整。后期“以原型為中介”的用戶訪談主要是對原型的試用與驗證,這時的用戶需求往往更加細節化。
用戶訪談的成效在很大程度上取決于需求分析人員早期建立起對用戶背景或教學軟件應用領域的深刻認識。需求分析人員要及時對訪談記錄進行整理,對于并不明確的需求做好記錄。
2.用戶需求信息的分析
獲取用戶需求信息后就要對這些信息進行分析和處理,主要包括需求信息的整理與分析、原型的設計與開發以及原型驗證三方面的工作,具體步驟如圖4所示。

(1)需求信息的整理分析
通過用戶訪談獲取的教學軟件需求信息大致可以分為三類,即有關用戶業務(教學)活動的信息、教學性需求、教學軟件的功能需求和非功能需求(性能、可靠性、支撐環境等)。需求信息的整理分析包含如下步驟:
1)進行信息歸類,目的是為不同類型的需求信息進行特定地處理做好準備。對這些信息進行整理和歸類的同時要找出錯誤的或相互矛盾的需求,并對這些需求進行辨別和取舍。
2)進行用戶業務分析,這是進行教學軟件功能抽象和模塊設計的基礎性工作。可以應用圖形化的表示方法分析用戶業務活動的流程,分析這一流程中包含的主要用戶行為,以及支持這些行為所需的操作。
3)進行功能抽象與功能確定。以用戶業務活動分析的結果為依據, 抽象出為支持用戶行為和操作所應具備的教學軟件功能模塊。然后結合用戶提出的合理性功能需求,確定教學軟件的功能模塊設置。之后進行可行性分析和功能優先級的設定。
(2)原型的設計開發
教學軟件原型的設計開發是原型法需求分析的核心工作之一,具體方法為:
1)以用戶需求信息分析的最終結果為依據,重點考慮教學軟件的功能模塊設置需求、教學特性需求。
2)以教學設計理論為指導。即首先,要對教學軟件用戶的業務目標、用戶習慣、用戶的學習者特征以及教學軟件應包含的內容等進行分析,以保證教學軟件適合業務的內容和特點、適應用戶作為學習者的年齡和能力特征、符合使用者的習慣;其次,對與原型設計相關的教學策略的選擇、媒體表現形式的選擇、技術與工具支持的選擇、用戶界面的形式、交互事件的設計、以及反饋互動等進行全面的分析。
3)在上述工作的基礎上,融合先進的教育理念創造性地實現原型的構建。
(3)原型的驗證
原型開發好之后把它交付給用戶或專家進行驗證。在這之前,有必要在開發小組內部組織一次對原型的非正式評審,找出原型中存在的明顯錯誤或分歧之處加以修正,確認原型已經達到交付用戶試用的標準。
開發組內部評審通過后,再由用戶和教育專家一起進行原型的驗證,主要是以原型為“中介”同用戶進行交流,依據用戶和專家對原型的修改意見進一步地使原型得到修改和完善。用戶對原型的驗證很可能不是一次能夠徹底完成的,一般要經歷持續多次的循環驗證過程。原型在這一過程中不斷地演進,直到它基本能夠反映用戶需求,并且足以指導后期開發為止。
(三)推廣應用中的用戶需求分析
教學軟件產品在投入應用后,用戶可能還會產生新的要求,或因用戶環境發生變化,要求教學軟件也能隨之改進,科學的需求分析過程應該對這一現象給予支持。相對教學軟件開發階段而言,推廣應用過程中的用戶需求調查持續的周期較長,因而有必要建立相關的約束機制,確保開發團隊能夠定期或不定期地對教學軟件的使用情況進行跟蹤。當新的用戶需求達到一定程度,就會促進對教學軟件產品的更新或換代。
四、教學軟件開發中的需求管理
需求管理是教學軟件需求分析質量控制的重要方面。它貫穿于整個軟件項目開發的始終,其目的是在客戶與開發方之間建立對需求的共同理解,維護需求與其他工作成果的一致性,并控制用戶需求的變更。教學軟件的需求管理可以采用確定需求基線、需求變更控制、教學軟件的版本控制、需求跟蹤等策略。
1.確定需求基線
需求基線是雙方對需求達成共識后做出的書面承諾,是由教學軟件開發的前景文檔、需求規格說明及教學軟件原型等構成的需求的集合。需求基線在用戶和開發方之間構筑了對待開發教學軟件的一個約定,這個約定是后期項目開發的依據,它將需求約束在相對穩定的范圍內不再隨意變化。此后產生的需求變化,需要涉及需求變更控制的管理方法。
2.需求變更控制
需求變更控制用于管理確定需求基線之后的需求變化。依據“變更請求——變更評審——做出決策”的流程處理需求的變更,確保需求的變更不會因失去控制而導致項目發生混亂。需求變更控制注意以下幾點:首先,用戶方或開發人員可以提出需求變更請求,但沒有權力擅自決定;其次,變更請求需要由開發方和用戶共同控制。第三,需求變更的確定必須經過變更請求評審。
3.版本控制
版本控制是對由需求變更帶來的需求文檔變化的控制,包括用于維護需求變更的歷史記錄,記錄變更需求文檔版本的日期,以及變更的原因等。需求文檔的每一個版本必須被統一管理,標記清晰的版本號,特別注意所有開發人員得到統一版本的需求文檔。
4.需求跟蹤
教學軟件的需求跟蹤,是指在需求變更后要記錄每項需求變更的實現狀態,同時要跟蹤受需求變更影響的工作產品的修改,這樣能盡量避免由變更帶來的開發不一致的現象。
參考文獻
[1] 羅俊偉碩士論文,《軟件需求管理工具的研究與實現》,中科院軟件研究所,2003年
[2] Walter Dick著,Instructional System Design[M],北京:高等教育出版社,2004年
[3] Karl E. Wiegers著,陸麗娜,王忠民,王志敏等譯,Software Requirements[M],機械工業出版社,2000:20
[4] 武法提編著,網上教學與學習環境的設計[M],北京:高等教育出版社,2003:95