前言:中文期刊網精心挑選了軟件工程可行性分析范文供你參考和學習,希望我們的參考范文能激發你的文章創作靈感,歡迎閱讀。
軟件工程可行性分析范文1
軟件的開發周期有需求分析、詳細設計、測試、可行性分析、體系結構設計和編碼六個部分。形式化技術貫穿于軟件開發周期的六個部分,形式化時基于參數化的數學理論形式化定義語義。下面從可行性分析、需求分析、體系結構設計和詳細設計幾個方法進行說明。
1.1可行性分析
軟件生命周期的第一個階段是可行性分析階段,在這一階段要通過大量的數據資料來說明系統的開發是否是可行的。指出項目的建議、風險預測、可行性,為項目的決策提供參考依據。在此階段,通過將實際問題轉化為可行性的研究,形成一定的文檔材料,規定專業的屬于,說明軟件系統進行開發的處理流程、數據流程、輸入輸出、運行環境和開發環境等等。當前來說,專門用于可行性分析這一階段的形式化技術還非常少,主要的原因是無法將形式化的符號和自然的語言很好的結合起來,確保使用本軟件的用戶可以非常清楚明白的理解形式化技術所要描述的意義。Z語言是目前一種不可執行的半形式化語言,它短小且容易閱讀,采用非形式化的英語對軟件的規約進行解釋。
1.2需求分析
需求分析分為信息處理和分信息預處理兩個階段,將可行性分析報告作為輸入。元語言是形式化語言中的一種,它是基于集合論的證明規則和謂詞演算,給出抽象機狀態確定模型,從而生成文檔。這種形式化語言,對于程序員來說,容易實現原型而且可讀性好,容易掌握。語義的設計是形式化技術中需求分析階段主要要進行的工作之一。在需求分析這一階段,ER圖是從可行性分析的實際問題中導出來的。通過ER圖給出SXL語言的事實和對象,SXL語言有助于開發團隊理解和交流。SXL語言、RAISE語言和VDM元語言都是應用于需求分析階段的比較常用的形式化技術。
1.3體系結構設計
軟件設計的第三個階段是體系結構的設計,在這一階段是將需求分析轉換為要實現的目標軟件,并進行各種方案的分析和比較,最終選擇較好的方案。在體系結構設計階段采用過程代數形式化的攻擊進行輸入、輸出的行為描述。TLG語言適合體系結構設計階段不強調如何做僅僅說明做什么。采用形式化的說明把自然的語言融入到邏輯程序設計范型和數學函數中,這樣更容易證明用戶需求的一致性。GLIDE是一種半形式化的SSFL,GLIDE的好處是應用范圍廣,而且抽象的級別比較高,不過也有一定的局限性就是使用的時候需要適當的進行擴充和修改。
1.4詳細設計
軟件設計的第四個階段就是詳細設計,在詳細設計階段,要與軟件系統的形式化描述一致。在詳細設計階段,要為軟件系統的各個模塊設計相應的內部數據結構和算法,確定最終系統實現的一個精確的描述。Larch語言是用于說明程序功能,可以適當的增強詳細設計階段的處理能力和描述能力。形式化的Trace語言作為軟件詳細設計階段的形式化工具,采用將模塊實現的抽象數據作為自動機說明每個模塊的接口需求。Trace語言與SSFL語言不同的特點是程序自動的生成和驗證在同一形式的系統內進行。
2形式化技術的評價
形式化技術在軟件工程中有效的提高了開發的效率、改進了軟件開發的質量、減少了開發費用。形式化的技術容易在軟件的規約上取得一致性,它屬于一種非常有效的交流方式。在軟件工程中,形式化技術的優勢在于語法定義準確、問題抽象、表達無二義性、語義清晰可操縱、描述簡潔規范。形式化技術在非功能性的要求上比如安全性、保密性、結構性上利用數學工具更容易進行核查。雖然形式化技術在軟件工程的各個階段已經取得了不錯的成就,但是還是存在著一定的局限性,比如缺乏在實際項目中應用的有效工具。程序功能的正確性有時候難以證明,因為形式化技術缺乏定理證明機制的支持。形式化技術的下一個發展方向應該是盡量的把形式化的語言表達的形式進行簡單化,讓其趨于自然語言,增強它的可理解能力。
3總結
軟件工程可行性分析范文2
軟件工程不僅是計算機科學與技術專業、軟件工程專業的一門專業基礎核心課程,也是其他相關專業,如信息工程、系統工程、信息與計算機科學、信息管理與信息系統等專業的重要應用技術課程。對于這些專業的學生來說,畢業設計多是以軟件開發類項目為主,整個畢業設計就是開發一個軟件。為了更好地完成軟件開發類畢業設計,提高學生畢業設計的質量,進一步規范畢業設計中的軟件開發過程是必需的。軟件工程的思想正是用工程化方法構建和維護有效的、實用的和高質量的軟件。按照軟件工程思想,軟件開發的生命周期分為可行性分析、需求分析、總體設計、詳細設計、編碼實現、軟件測試和軟件維護幾個階段。在學生的畢業設計中以軟件工程的思想為主線,從軟件工程的角度去指導學生進行畢業設計,挖掘軟件工程在系統開發過程中的價值,解決畢業設計中存在的一些問題,既有助于學生更好地理解軟件工程的方法、技術和思想,更有助于提高軟件類畢業設計的質量。
2畢業設計中存在的問題
筆者在指導學生軟件開發類畢業設計過程中發現,畢業設計存在著選題難、任務重、重視編碼、輕過程、項目無法完成等現象。設計過程中沒有嚴格地遵循軟件工程的開發方法,沒有規范的軟件設計過程,項目能否成功主要依賴于個人能力和個人努力,這種不正確的開發方法帶來了嚴重的后果。在項目開發的過程中常常存在以下幾個方面問題:
2.1選題的盲目性
選題是畢業設計過程中的一個初始環節,選題恰當是做好畢業設計的前提,但選題不當的情況仍然時有發生。學生沒有認識到畢業設計的重要性,純粹是為了完成學業而做畢業設計,選題沒有一個確切的目標,往往是隨便選一個題目,造成選題的盲目性,出現了選題陳舊、選題范圍狹窄、選題偏大等問題,使學生抄襲、完成不了畢業設計的情況時有發生。
2.2缺少軟件的系統分析
軟件開發過程的第一個階段是系統分析,用來確定軟件開發要解決的問題是什么?估算完成該項目需要的資源和成本,確定目標系統應該具備哪些功能,主要經歷問題的定義、可行性分析和需求分析三個階段。軟件的系統分析確定了用戶需求,同時對目標系統提出完整、具體的要求,引導開發者正確地構建系統。因此,對用戶需求做出全面、正確的分析,對于最終軟件開發類畢業設計的成敗起著至關重要的作用。然而在完成畢業設計過程中,學生往往認為代碼編寫最重要,對軟件開發過程中的可行性分析和需求分析階段不重視,甚至沒有系統分析,對整個畢業設計的完成造成了影響。
2.3軟件設計過程雜亂無章
軟件設計一般都要經歷可行性分析、需求分析、總體設計、詳細設計、編碼和測試階段。而部分學生在畢業設計開發的過程中,缺乏軟件工程設計思想,跨越需求分析、概要設計、詳細設計和功能模塊設計,直接進行代碼的撰寫;或者從代碼反推出模塊設計;甚至在軟件開發過程中,一邊寫程序,一邊了解需求,程序完成了需求才確定。這種無序的軟件設計過程,導致最終設計的系統雜亂無章、代碼的重復率高、潛在?Bug多、系統的可集成性非常差、不能在規定時間內完成設計或者系統無法運行。
2.4開發過程中文檔不完備
根據軟件工程學的基本原理,軟件=程序+文檔,可見軟件文檔是軟件開發過程中不可缺少的組成部分。軟件文檔貫穿于軟件開發的各個階段,是提高軟件產品開發效率、規范軟件產品開發過程、保證軟件產品質量的關鍵。但在實際畢業設計中,很多同學認為把程序代碼編出來了,畢業設計也就完成了,提交的畢業設計論文就是系統代碼的復制,即只做出一個可演示可操作的系統,而忽略了軟件開發的完整性、系統性。完整的畢業設計不僅包括可操作的系統,還包括在開發系統的過程中所產生的各個文檔資料。文檔的缺失會降低軟件開發的效率、影響整個軟件的開發、使用和維護。以上問題的存在,嚴重影響了畢業設計的進度和質量,沒有達到畢業設計的目標要求。針對當前畢業設計的現狀和存在不足,筆者認為應用軟件工程學的思想指導畢業設計,對促進學生綜合素質與工程實踐能力培養具有積極意義。
3用軟件工程思想指導學生進行畢業設計
3.1以可行性研究指導選題
可行性研究的目的是用最小的代價在盡可能短的時間內確定問題是否能夠解決。畢業設計題目的選擇,應立足于解決工程實際問題,可由指導教師提供符合相關專業畢業設計要求的題目,也可以鼓勵學生自己到社會、生產企業中尋求研究課題,培養他們自主學習的意識。選題過程以可行性研究為指導,從課題規模大小、難易程度、學生自己的研究方向、愛好、學生的知識層面和能力等多個方面進行考慮,對于選擇的題目是否能夠解決,確定在規定的時間內完成畢業設計的可行性。指導教師可根據學生選報的題目來指導學生對該選題進行調查研究,明確課題要解決的問題是什么,簡要地寫出關于問題性質、項目目標和項目規模的書面報告??尚行匝芯縼碇笇М厴I設計的選題,實質上是簡化了系統分析和設計的過程,也是在較高層次上以較抽象的方式進行的系統分析和設計的過程,使學生對于課題的設計有個清晰的思路,為及時完成畢業設計提供了可能。
3.2重視軟件的需求分析
需求分析的基本任務是準確地回答“系統必須做什么”,即確定系統必須完成哪些工作,也就是對目標系統提出完整、準確、清晰、具體的要求,不僅指明了系統設計時必須要實現的目標,也是軟件設計、實現、測試和維護階段的主要參考標準。用戶需求的獲取是軟件開發中最重要、難度最大的工作,它貫穿于整個軟件設計過程,不僅要涉及到軟件開發方面的知識、應用領域方面的知識,還涉及到與用戶溝通的能力。在進行需求獲取和分析時,為了及時、準確地獲取,可采用軟件工程中比較成熟的方法,例如訪談、實際調查、UML的用例技術等。需求分析在軟件系統分析與設計階段起著橋梁的作用,確定了系統的需求,才能制定出軟件設計的框架,保證畢業設計循序漸進、有條不紊地進行,避免后期開發過程的頻繁返工,進而按時完成最終的任務。
3.3規范畢業設計過程
軟件開發類畢業設計一般是開發一個軟件系統,實現一定的功能?!奥槿鸽m小,五臟俱全”,無論軟件規模的大小、功能的多少,都應該嚴格按照軟件工程中軟件生命周期每個階段的步驟完成各項任務。要培養學生把軟件工程的概念貫穿于整個畢業設計過程,也就是說,讓學生把開發軟件的過程看成是蓋一棟大樓,修一條公路的實際工程,用工程化的思想指導畢業設計,確定完成課題的各項任務的工作步驟,注重軟件類畢業設計的過程,而不是學生所認為的畢業設計就是編程序,代碼調試通過即可。通過工程的概念規范畢業設計過程,讓學生明白開發一個軟件系統一般經過系統分析、系統設計、系統實施三個階段,必須嚴格遵循軟件生命周期的規律,完成各個階段的任務,才能最終提高畢業設計的質量。
3.4重視文檔的寫作
軟件工程中的瀑布模型嚴格地規定了在整個軟件生命周期的各個階段,都要提交相應的文檔。文檔不僅記錄軟件開發過程中的大量信息,在軟件的開發、維護過程中也起著重要的作用。在指導學生畢業設計時,要求學生遵照軟件工程的思想,把文檔作為整個設計的指揮棒,記載設計過程的每一階段完成的目標、任務及技術手段,建立健全畢業設計文檔制度,確保畢業設計過程中的文獻綜述、譯文、任務書、開題報告、選題審題表、中期檢查表、設計(論文)正文、答辯記錄等各環節教學資料檔案完善、規范,實現對畢業設計的全程監控。
4結束語
軟件工程可行性分析范文3
軟件危機的出現已存在多年,雖然業界專家不斷致力于軟件工程理論建設,認為軟件工程理論的推進可有效緩解軟件危機,但大量實踐表明,只有通過對軟件需求進行詳細地分析才能真正改善軟件的重復問題,進而提高軟件工程的質量。文章簡單闡述了軟件工程需求分析的概念,分析了當前軟件工程所存在的質量問題,并針對問題提出了相應的質量保證措施,旨在為相關技術人員提供若干參考意見。
關鍵詞:
軟件工程;需求分析;質量保證
1軟件工程需求分析概念
軟件工程需求分析是指在正確了解用戶需求的基礎上,使軟件功能與客戶需求相符,同時預估軟件研發風險和項目評估,最終開成整個開發設計方案的過程。在軟件工程需求分析過程當中,占主導地位的是用戶的需求,用戶需求的整理由工程師及項目經理負責,通過需求分析獲取相關技術性文檔材料,包括SRS文檔、DRM文檔和AcceptancePlan[1]。從廣義上來說,軟件工程需求分析所要做的工作主要有需求信息的獲取、分析、變更、驗證以及相關規則說明和管理。軟件工程需求分析的流程多且復雜,如創建數據字典、確定需求優先級別、分析需求可行性等。不同流程所使用的分析方法也有所不同,如在確定需求優先級別時,可采取應用分析法,即在考慮產品版本時應基于優先級對產品特性及需求進行分析,若需求變更,則要在不同版本當中添加所變更的信息,并做好相應變更工作[2]。在進行需求分析可行性分析時,需對每項需求實施的可行性進行詳細分析,以驗證軟件是否能夠開發,是否能夠給公司帶來利潤。
2軟件工程存在的質量問題
第一,文檔的時效性無保障。軟件各模塊的制作通常是由不同人負責的,這就導到軟件開發過程存在諸多問題,如在進行需求分析應用數字字典時,因規格不同導到文檔編寫形式分離。又如不同制作人員所使用的工具不同,編寫和檢索時間不同,導致文檔的時效性無法保證,若編寫過程混亂還會給程序的維護帶來很大困難,導致文檔資料難以尋找,甚至出現缺失,致使維護時間加長,若問題嚴重的話還會導致軟件無法維護。第二,程序與文檔內容分離。軟件程序與文檔內容分離的主要原因是在編寫文檔設計與需求分析時所采取的角度不同,文檔設計的編寫是面對程序設計員的,而需求分析的編寫是面對用戶的,雖然兩者的最終目的是相同的,都是將用戶需求轉化為程序編碼設計文檔,是在進行轉化時卻存在很大的偏差,導到軟件成品與需求之間存在很大差距。此外,因編寫需求分析文檔多使用自然語言,而編寫設計文檔多使用計算機語言,兩種語言在進行轉化時易出現很多問題,且設計的圖較多,如模塊圖、結構圖、數據圖等,若文檔未及時更新,文檔就無法正確表達程序,開發人員也就無法通過文檔正確理解用戶需求,導致程序與文檔內容分離,最終軟件只能從頭開始。第三,軟件開發與維護分離。軟件的研發主要包括以下過程:需求分析、可行性分析、軟件設計、代碼設計、測試,此外還有軟件的維護,這是軟件自誕生至結束的整個周期。在軟件研發的整個周期當中,軟件的開發與維護是緊密聯系的,軟件的開發是軟件誕生的重要過程,但軟件的維護卻是軟件質量不斷得以提升的重要階段和方式?,F多數軟件開發公司在研發軟件時比較注重軟件的開發過程,而忽略了軟件的維護,導致軟件開發與維護分離問題凸顯。如在進行軟件的設計和開發時,研發人員比較重視用戶需求分析,但卻忽略了軟件的功能升級,未預留相應模塊接口,給軟件的后期維護帶來很大困難[3]。因用戶需求是一個動態化的過程,隨著用戶使用時間的推移,用戶會產生各種新的需求,若事先未預留相應接口,那么軟件的升級相當于重新研發一套軟件,這樣研發成本明顯上升。再者因需求分析與設計文檔的編寫所使用的語言有所不同,需求分析編寫所使用的是自然語言,而設計文檔編寫所使用的是計算機語言,兩種語言并未有一個統一的溝通橋梁,這就導致程序員的理解存在偏差,而這種偏差一旦出現就會使需求文檔與設計文檔出現分離,最終給軟件的維護帶來困難。此外,很多程序員習慣性編寫程序代碼,卻忽略了建設文檔,導致軟件的開發與維護出現分離。
3軟件質量保證措施
3.1保證文檔編寫的完整性
軟件工程需求分析的編寫對于軟件工程需求設計來說非常重要。在編寫軟件工程需求時,應使用通俗易懂的自然語言來表達客戶的軟件功能需求,避免使用模糊性語言或是過量使用專業術語,以使程序員能準確理解,防止因程序員的理解偏差而影響程序的編寫,導致軟件的計算方式出現偏差,最終給用戶帶來軟件陷阱。文檔的編寫應盡量使用實詞,而避免使用形容詞或是描述性詞語,以保證產品描述的真實性,若使用這些詞會使用戶需求的理解出現誤差,將導致軟件無法正確反映用戶需求。如在利用數據庫存進行軟件的開發時,應在設計需求文檔當中對儲存量、波動范圍、數據類型進行詳細說明,明確需求量,同時做好備份信息說明,以保證文檔編寫的完整性,使程序員在進行軟件的編寫時能夠準確理解用戶需求,同時做好詳細的設計文檔和代碼[4]。
3.2保證需求分析的完善性
需求文檔及設計文檔出現分離的最主要原因就是需求文檔與設計文檔的編寫人員不同,且各司其職、缺乏溝通而導致的。在實際工作當中,很多軟件開發公司的需求分析人員、開發人員和測試人員是沒有任何將領的,這就使得很多軟件質量問題無法支及時溝通并得到協商,最終導致軟件質量問題增多。而實質上,軟件工程的需求分析不僅需要需求分析人員的努力,而且還要與開發人員及測試人員進行相互溝通,以螺旋式的推進方式以不斷對需求分析的內容進行豐富和細化,以此來使需求分析更加完整、完善。因此,為保證需求分析的完善性,在進行軟件工程需求分析過程當中,就有必要盡量讓所有參與工程項目的人員都加入進來,包括開發人員和測試人員,使所有工作人員都能夠第一手了解客戶需求,避免產生誤差或是重復,這樣才能有效解決需求文檔與設計文檔的分離問題。
3.3深入而正確地了解客戶的真正需求
現很多軟件開發公司為加快軟件的研發進度,或是加快軟件開發的效率,亦或是迫于交期壓力等原因,通常會采取模塊重用的方式以減輕軟件開發工作量,提高自身經濟效益,且現在這種模塊重用方式也成了軟件開發的主流,是軟件工程開發的重要組成部分。但是很多軟件開發公司在使用軟件重用時,因并未深入分析客戶需求,或是地進行分析時粗心大意而導致客戶需求理解存在偏差或是錯誤,導致經重組重用的軟件無法滿足客戶需求,或是軟件出現質量問題,最終軟件只能從頭研發,使得公司軟件研發成本大幅上升,影響公司經營和經濟效益。為解決這一問題,最主要的就是正確而深入地了解客戶的真正需求,同時在軟件的研發過程當中做好監督和檢查工作,盡量避免出現錯誤;此外還要注意技術人員在不同步驟之間的溝通,以免因溝通缺失而出現軟件質量問題。
3.4依照實際需求調整文檔內容
通常來說,在遵循以上規則的基礎上所編寫的文檔是非常嚴謹、科學、合理的,因此在使用文檔時,第一,程序員應嚴格遵循文檔當中的內容,包括規范和說明,以文檔內容為指導來編寫代碼,保證所編寫的代碼的正確性和準確性;第二,針對文檔當中存在疑問的部分要及時向相關人員反映,做好溝通工作,在商量出良好的對策之后對文檔進行改善;第三,針對文檔中存在較難的技術性問題,程序員應努力攻克,若問題相對嚴重,則應及時向上反映情況,避免敷衍了事,導致軟件產品質量下降;第四,做好需求文檔的可行性分析工作,包括開發成本分析和功能實現可行性,從源頭上提高軟件產品質量;第五,最大限度地使用已有的軟件功能模塊,以盡量減輕自身的工作員,縮短軟件的研發時間;第六,做好維護接口預留工作,以便于日常維護及軟件使用過程當中用戶可能遇到或是會出現問題的修復,以真正提高軟件質量水平。
4結語
在實際工作當中,相關技術開發人員應特別重視軟件需求分析,正確認識軟件需求分析與質量保證之間的聯系,嚴格律己,全面提升,以不斷提高軟件工程質量。
作者:趙偉 單位:南京模擬技術研究所
[參考文獻]
[1]來羽.軟件工程需求分析與質量保障[J].煤炭技術,2013(9):204-205.
[2]邱廷鈺.論軟件工程需求分析與質量保障[J].大科技,2013(36):347-347,348.
軟件工程可行性分析范文4
隨著信息技術的快速發展,軟件的復雜度與規模呈指數級增長,給軟件的開發與維護帶來了極大的困難。因此,需要將系統化的、規范化的、可度量的方法應用于軟件的開發、運行和維護中,即將工程化方法應用于軟件。而傳統的計算機專業的人才培養模式主要面向理論研究,不能夠滿足軟件企業對工程實踐型人才的需求。為了解決計算機教育重理論、輕實踐的不足,國家教育部與發展計劃委員會于2001年新增軟件工程專業。目前,全國已經建立了一批國家與省級示范性軟件學院,很多高校也相繼開設了軟件工程專業,培養模式各具特色,尤其是國家級示范性軟件學院已經探索出了各具特色的培養模式,但是還是存在著重理論、輕實踐的不足,這一缺陷在地方院校的軟件工程專業尤為突出。由于受到資金支持、政策引導、師資建設等方面的限制,地方院校的軟件工程專業基本上都是從計算機科學與技術專業繁衍出來的,其培養模式很容易沿用計算機科學與技術專業的人才培養模式,不能滿足軟件企業的需求,主要存在重理論、輕實踐的問題,主要表現如下。
(一)教學方式單一化、理論化
軟件工程專業的特點是理論性與實踐性并重,特別是實踐性非常強,軟件工程的許多理論都來源于對實踐的總結與歸納。但是目前的教學方法還主要是沿用計算機科學與技術專業的教學方式,偏向純理論介紹,教學方式上還是以教師講、學生聽為主的“灌輸式”的“教授/接受式”傳統教學,學生只是被動接受,學習積極性不高。此外,很多教師缺少實際軟件項目的開發經歷,在教學過程中缺少必要的案例或者使用的案例不合適,妨礙了學生對軟件工程中基本概念與理論的理解,不明白可行性分析、需求分析、軟件設計的必要性以及不會撰寫所對應的文檔。
(二)實踐少,理論與實踐相脫節,學生動手能力差
目前很多高校軟件工程專業開設的理論課比較多,實驗課比較少,并且由于目前的專業教師大都是畢業后直接到高校工作的,缺少開發大型軟件項目的實際經歷,設計的實驗題目大都規模比較小并且比較零散,比如成績管理系統,學生可以直接進行設計與編碼,無需可行性分析、需求設計、軟件設計、進度安排等環節,也沒有必要撰寫相關的文檔。如此以來,學生不能夠加深對相關概念與理論的學習,沒有體會到軟件工程理論在實際軟件項目開發中的重要作用,導致學生面對實際軟件項目時無法下手,這直接影響到軟件工程專業畢業學生的市場競爭力。
(三)校企合作不夠
校企合作是實現高校軟件工程人才培養與企業需求無縫連接,培養高素質軟件人才的重要途徑之一,盡管目前很多高校的軟件工程專業都建立了校企合作模式,取得了不錯的成績,但校企合作存在著缺乏相應的政策引導、缺少雙方交流的平臺、企業積極性不高、合作松散、管理手段缺乏等問題。這樣就會出現高校培養的軟件人才動手能力差,無法滿足企業的需要,而軟件企業又找不到合適人才的尷尬局面。校企合作力度不夠在地方院校表現的更為突出,主要原因是地方院校的軟件工程專業在影響力與辦學規模上與國家級軟件學院有一定的差距,知名的軟件企業很少愿意與地方院校合作,另一方面,地方院校缺乏政策與資金的支持,缺乏尋求與企業合作的機會。
二、應用驅動為導向的人才培養模式的改革措施
軟件工程專業存在的重理論、輕實踐的弊端,使得培養的學生在校學習的知識不能形成一個有效的體系,也沒有機會將所學知識融于具體項目之中,同時也不清楚當前軟件企業對人才的真正需求。而另一方面,軟件企業希望新招聘來的員工能夠直接融入到項目的開發中,能夠解決項目中的實際問題。這樣就形成了高校培養的軟件人才“過剩”,而軟件公司所需人才“短缺”的矛盾局面。為此,本文提出了以實際應用驅動為導向的人才培養模式,以培養能夠在軟件公司的一線解決實際應用問題、能在實踐中應用所學知識、在實踐中創新的應用型人才,并對該培養模式的相關實施方法進行了探討。應用驅動為導向的軟件工程人才培養模式的基本保障是以實際應用為導向加強師資建設,該培養模式按照人類認識的規律,以解決實際問題為目標,的三個階梯式階段:案例式課堂教學,項目式綜合實訓,頂崗式專業實習。
(一)以應用為導向加強師資建設
師資建設是專業建的首位,教師在人才培養中起著不可替代的作用。目前,軟件工程專業的師資建設主要還是以理論研究為導向,多數教師從學校碩士或博士畢業后直接到高校工作,主要以理論研究為主,缺乏大型軟件項目開發經驗,不太了解軟件產業的新技術與新動向,從而在教學過程中出現重理論、輕實踐的現象,很不利于軟件工程專業人才的培養。以應用為導向的師資建設就是在現有的以理論研究為導向的基礎上,注重提高教師的實際動手能力,可以從以下3個方面做起:①改變傳統的以學歷和科研為導向的高校教師招聘方式,軟件工程專業應當招聘一批具有大型軟件項目開發資深經驗的軟件工程師,比例占師資總數的30%~40%為為宜;鑒于軟件技術的快速更新,應定期派遣教師到知名軟件公司的一線進行學習和培訓;倡導并且增加教師帶動學生參加研發類橫向課題的機會,提高教師與學生的實際動手能力。
(二)案例式課堂教學
改變傳統的“灌輸式”的“教授/接受式”教學模式,使用案例驅動式的教學模式,就是指教師本著理論與實際有機結合的宗旨,遵循教學目的的要求,以案例為基本素材,通過師生、生生之間的雙向和多向互動,讓學生把所學的理論知識運用于“實踐活動”中,以提高學生發現問題、分析問題和解決實際問題的能力。一方面,教師首先應準備一些引入型案例,例如,千年蟲問題,來說明工程化方法對軟件開發的重要性,并且提高學生的興趣;另一方面,教師應該準備好一個能覆蓋軟件工程的各個環節和階段、難度適宜的實際軟件項目案例,這個案例最好是教師實際參加過的或者熟悉的項目,并且有必要的軟件文檔,然后把這個案例作為一個實際情境,結合案例引入并講授各個知識點,必須要求學生撰寫相應的文檔和程序,然后與使用案例的已有標準文檔和程序進行比較,找到自己的不足,加深對知識點的學習與理解,做到理論與實際相結合。
(三)項目式綜合實訓
鑒于軟件工程專業的實踐性很強,應該以實際應用項目為驅動進行軟件工程的課程綜合實訓,讓學生按照軟件工程開發的流程去獨立地完成一個應用項目。首先,教師選擇一些中小型的,生活中經常接觸的項目作為綜合實訓項目庫,項目的選擇一定要難度適宜,太簡單體現不出軟件工程化開發方法的優點,但是也不能太難,難度控制在學生可以運用所學習的知識、技能,通過討論和合作可以完成,然后由學生人組成的小組從中選擇合適的項目。然后,每個小組模擬軟件企業中的一個項目開發小組,進行分工合作,由組長作為項目經理與指導教師溝通,指導教師模擬實際的客戶。最后,項目組嚴格按照軟件項目的開發流程來一步一步完成任務,應該包括可行性研究、需求分析、系統設計、實現與測試等階段。在每個階段學生應該提交必要的文檔,可以按照《計算機軟件文檔編制規范》(GB-T8567-2006)撰寫可行性分析報告(FAR)、軟件需求規格說明(SRS)、軟件(結構)設計說明(SDD)、軟件測試報告(STR)等。在每個階段,學生應利用流行的軟件工程工具,例如,Microsoft Project、RationalRose等。
(四)頂崗式專業實習
軟件工程專業培養的人才最終是面向軟件公司的,所以很有必要在第四學年時采用校企合作的方式,委派學生到軟件公司頂崗實習,時間根據實際情況以個月為宜。在頂崗實習期間學生要與正常的員工一樣完成企業的工作要求,真正在實際軟件開發中理解并應用前期學習到的知識與技能,實現自身能力的提高,成功地由學生角色過渡到職業角色。在實習期間,學生的管理以企業管理為主,學校管理為輔,學生、教師、企業三方根據實習項目的實際情況確定學生畢業設計題目的選題與設計,最終由學校的指導教師負責指導完成畢業設計論文的撰寫與答辯等事宜。
三、結束語
軟件工程可行性分析范文5
關鍵詞:軟件工程;實踐教學;訂單式培養
1 引言
軟件工程課程是一門綜合性、實踐性很強的課程。學習該課程的主要目標一方面是讓學生掌握軟件開發的系統知識,包括其中的原理和方法;另一方面是讓學生初步掌握解決實際開發問題的能力,從而為將來走向軟件開發工作崗位打下堅實的基礎。為了解決上述兩方面的有效融合,很多大學都在進行軟件工程實訓模式的研究和訂單式培養等研究,也取得了很多研究進展。本文就是在研究上述內容的基礎上提出了一種一體化軟件工程教學方法,即滿足教育目標要求又符合社會對學生能力的要求。
2 軟件工程課程教學現狀
目前的軟件工程教學現狀,可以概述為課堂教學和實踐教學兩個部分。教師在課程教學中,普遍采用講授與實驗訓練相結合的傳統教學方法,即課堂上由教師講授理論、原理,實驗訓練時由學生動手設計一個項目。因此,該課程的教學存在許多的問題,主要表現在以下幾個方面:
從教學內容上看,目前軟件工程原理和方法較為抽象,學生較難理解,這是由于目前學校將軟件工程課程設置在大三的上學期,而在大一、大二主要圍繞著公共基礎課、專業基礎課進行。從學生角度來看,其剛剛掌握了一兩門語言、初步了解計算機體系結構的知識,很多同學還沒有進入到真正軟件開發的角色中去。特別是在學生時代還沒有開始或者剛剛開始準備考慮將來工作的事情的時候,軟件工程課程已經開始了。在沒有軟件開發基礎或者軟件開發只停留在編一小段代碼的情況下,很難理解軟件開發所涉及的這么多問題。
從教學方法上看,軟件工程課程以傳統的教學為主,實踐課為輔的教學方法,由于學時有限很難在實踐課上將所涉及的軟件工程原理和方法逐個地展示給學生,學生似懂非懂,當真正動手的時候卻不知從何入手,學生學習的效果差。
從實訓教學與訂單式培養看,實訓教學是將學生置入到模擬的實際工作環境中去,讓學生自己體會在軟件開發的不同崗位上的職責和應具備的能力與知識;訂單式培養是按照指定的企業工作崗位的要求來培養學生所需掌握的知識和技能。目前高校中這兩種方式所存在的問題是:實訓教學的形式化問題,實訓教學是讓學生按照軟件開發不同崗位所需要的技能和知識來進行,而不是給一個機房,讓學生在里面編程就解決了,實訓課不等于實驗課;訂單式培養的問題是學生知識面狹窄,雖解決了實際就業的問題,也培養了學生適應某個企業的崗位要求,但喪失的是學生應該具備的完整、扎實的知識體系。
3 一體化教學方法
為了解決上述三方面的問題,有機地將教學與實際結合在一起,既讓學生掌握全面、扎實的知識體系,又讓學生具備實際工作崗位要求的技能,綜合軟件工程教學方法應采取以下方法:
從課堂教學內容上看,結合軟件工程的不同階段,如:可行性研究、需求分析、總體設計、詳細設計、編碼、測試、維護等不同的軟件開發階段,在講述不同階段所使用的原理和方法的同時,要給學生講述每個階段的輸出,輸出的格式、標準。
從實踐教學內容上看,讓學生掌握在不同開發階段所需掌握的開發工具是什么,如何使用,這樣讓學生對軟件開發有一個深刻的感性認識,從而對軟件開發的過程有感性了解,避免了書本上抽象、難懂等問題。
課堂教學與實踐教學的統一,以實踐項目為例從項目開始進行可行性研究,講述軟件工程原理和方法,以及每個階段所產生的文檔或者代碼,文檔和代碼的標準內容是什么,到用實際的開發工具來進行可行性分析,如:使用Microsoft Visio繪制系統流程圖、數據流圖等,利用Rational Rose進行對象建模等。結合工具的使用,使軟件工程教學內容以看得到、摸得著的方式逐步地傳授給學生,激發學生的積極性、主動性及創造性。
軟件工程課堂教學可采用分組討論。軟件生命周期的可行性研究和需求分析環節都要求開發人員和用戶進行充分的交流。因此,在軟件工程的教學中可以讓學生參與教學過程,發表自己的看法,而且通過這種基于角色的討論,學生不僅掌握了需求分析的基本方法、充分認識了需求分析的重要性,最終會大大地激發學生的學習興趣和學習自信心。
4 結論
綜上所述,軟件工程課程是一門綜合性、實踐性很強的課程。要想取得好的教學效果,應該深入進行軟件工程的教學改革。利用新的教學方式,激發學生主動學習理論知識的興趣,提高教學效果。當然,學生也可以從教改理論和實踐的結合上,加深對軟件工程知識難點、重點的理解,進一步深刻理解軟件工程過程和系統消化理論知識,訓練項目設計的思路,鍛煉實際開發能力。
參考文獻
[1]Microsoft Corporation.office.省略/zh-cn/visio.
[2]宋波.Java Web應用與開發教程[C].清華大學出版社,2006.
[3]吳建,汪杰.UML基礎與Rose建模案例[C].人民郵電出版社,2007.
軟件工程可行性分析范文6
[關鍵詞]軟件工程 項目驅動 教學改革
[作者簡介]范會聯(1971- ),男,重慶人,長江師范學院數學與計算機學院,副教授,碩士,主要從事軟件工程、智能信息處理的教學與研究工作。(重慶 408100)仲元昌(1968- ),男,四川南充人,重慶大學通信工程學院,副教授,博士,研究生導師,主要從事通信與測控系統、無線傳感器網絡等領域的教學與研究工作。(重慶 400030)
[基金項目]本文系2011年重慶市教委研究項目“基于RFID的校園安全防范系統研究與設計”的研究成果。(項目編號:KJ111304)
[中圖分類號]G642.3 [文獻標識碼]A [文章編號]1004-3985(2013)05-0147-02
軟件產業是信息產業的核心、國民經濟信息化的基礎,已經滲透到各個領域。相關數據顯示,我國軟件開發行業人才需要量已經超過30 萬人,并仍以每年20%的速度增加,其中初級軟件開發工程師的需求量就高達20 萬人,軟件服務外包、3G 研發的人才缺口更大。但讓人困惑的是,近年來失業率排在前10 位的專業中涉及計算機科學與技術。一方面每年相當一部分計算機專業畢業生就業困難,另一方面企業招聘不到對口的軟件人才,這說明學校培養的軟件人才與企業的實際需要存在較大差距。目前我國500 多所院校開設了計算機專業,培養方式各具特色,但培養適應企業需求的優秀軟件開發人員,仍是教學實踐中值得進一步研究和解決的問題。本文分析研究了軟件工程課程的特點及傳統教學實踐中涉及的普遍問題,提出在軟件工程課程的教學實踐中引用基于項目驅動的復合教學式理念,并從教學定位、教學內容、教學方法、實踐教學等方面進行了探索。
一、課程特點及教學定位
軟件工程是一門理論與實踐并重的課程,涉及內容廣泛,從工程意義上講,包括軟件開發、維護和管理等活動的總體;從學科意義上講,包括與軟件開發相關的理論、原理、方法和技術。ACMCC2001 草案把軟件工程學分為七大核心專題:軟件過程和軟件生命周期模型、需求分析、軟件設計、測試和評估、軟件進化、軟件項目管理、軟件工具和環境。為滿足社會對不同層次計算機專業學生在軟件工程方面知識和能力的要求,軟件工程課程應設計成一個多層次的課程系列。針對計算機專業應用型本科學生,將教學定位在兩個方面:一是從軟件生命周期的角度,講解軟件工程的基本概念、基本原理和基本方法;二是從工程應用的角度,講解系統性、規范化的通用開發技術。軟件工程課程教學應既重視理論知識和分析問題與解決問題的方法,又重視軟件工程實踐。課程教學目標是使學生掌握需求分析、概要和詳細設計及軟件測試與維護等內容,用軟件工程的原則、開發方法與技術實現中、小規模項目的開發與管理,使學生在基礎知識與技能、團隊協作能力、分析與解決問題、談判與溝通能力、創新與發展能力等方面得到良好的訓練,為將來從事大型軟件系統的開發與維護打下扎實的基礎。
二、傳統教學方法存在的問題
1.教學內容枯燥、抽象、陳舊。目前的軟件工程教材偏向純理論介紹,主要講解方法學,從結構化或面向對象的角度講解軟件開發過程的理論知識,缺少案例支撐。大部分學生對軟件項目概念的理解是建立在其他課程設計的基礎上,沒有軟件項目的經驗,因而妨礙學生對軟件工程中基本概念的理解,如可行性分析、需求分析、需求變更、過程管理、質量保障等,不明白為什么要做可行性分析、需求分析,以及需求變更的必然性及管理措施。隨著軟件系統向社會各方面的滲透以及軟件系統的規模不斷擴大,對軟件系統的質量要求越來越高,這對軟件工程課程的教學內容提出了新的要求。從內容上看,不僅要重視方法,還要重視開發工具與環境;不僅要重視開發過程,更要重視開發過程中的過程管理和質量保證措施,這些知識和技能,不能僅僅依靠書本和課堂教學來獲得。
2.案例教學中采用的案例不當。軟件工程的實踐性很強,教學時一般采用案例教學法,方法的成效取決于選擇的案例,案例如果選擇不當,則教學效果肯定不好。很多教師在教學時,由于缺少實際軟件項目的開發和管理經驗,導致案例的選取要么不貼近學生實際,如機票預訂、倉庫管理項目,學生缺少實際接觸經驗,因而理解困難或不感興趣;要么選擇的案例規模較小,如簡單的成績管理系統,在學生的角度來看,可以直接進行設計和編碼,不清楚為什么要進行可行性研究、需求分析;要么案例前后不連貫,如由于教師缺少實際項目開發經歷,導致可行性分析的階段選用機票預訂,需求分析用倉庫管理,而設計又選用人事管理等現象,導致學生對軟件項目、軟件工程沒有建立完整的概念,缺乏對所學知識的整體認識。
3.重講解、輕討論,缺乏實戰練習。軟件工程課程的實踐性要求很強,在傳統軟件工程教學過程中,教師一味講解軟件工程的基本原理、理論,或一味分析一些簡單案例,忽視了學生主觀能動性的發揮,沒有讓學生參與教材內容或案例的分析討論。雖然有實驗教學的要求,但一般只停留在組織學生編寫軟件項目設計文檔的單一環節上,由于學生沒有進行實際項目的演練,教學效果不理想。盡管這種以教師講授為主的教學模式,在課堂教學中使用了一些情境教學,但僅僅遵循原有理論教學過程模式,并未按典型工作任務模式完成情境教學,培養出來的學生缺乏自主探索知識的能力和運用知識解決實際問題的能力。因此,切實加強軟件工程教學的創新與改革至關重要。
三、項目驅動的復合教學模式
復合教學模式是以科學的教學理論為指導,依托分組教學、研討、協作、活動參與等多種教學模式的相互交叉、相互滲透,并融合多元化的教學內容、多樣性的教學形式、現代化的教學方法而形成的綜合性、立體性的教學模式。結合軟件工程課程特點,提出“項目驅動的復合教學模式”,以項目為主體,組織學生以團隊的形式參加項目分析、設計、實現和管理,在項目實施過程中,激勵學生自我認識,引導學生獨立思考與創新,營造討論爭辯的機會和氣氛,并以討論的形式鼓勵學生表達各自的觀點和思想,從而積極主動地參與分析、概括或評價等思維活動,將軟件工程的分析、設計、實現、管理等各個知識點的講解融入項目實施的各個階段。項目驅動的復合教學模式由以下幾個環節構成:
1.學生分組。學生按系統分析、設計、實現、測試的角色組成4~5人的開發團隊,選舉一人作為項目負責人,明確各自的分工和職責,并協作完成,以培養學生的團隊合作精神、溝通能力和協調管理等能力。隨著教學進度展開,把項目實施與理論教學結合起來。
2.確定項目。項目的確定分為教學案例和演練項目。教學案例是教師用于組織課堂教學講解的項目,由教師根據學生的特點確定。演練項目是在教師的指導下由小組根據各自的興趣、特長自行選擇,用于課后同步訓練。
3.教學內容及方法的改革。教學內容的選取以整合相關課程中相同知識點使教學內容更加精煉為指導思想,根據市場和企業對軟件人才的需求,將重要、經典的基本概念、知識點連同相應的技能串聯起來講授和實踐。軟件工程課程的教學內容將軟件過程模型、工程管理、需求工程、分析建模、軟件設計、軟件構造、測試以及軟件交付與維護為骨干,融入數據庫原理、計算機網絡、數據結構、操作系統等相關課程知識,按和J2EE兩個方向構建組合式、模塊化教學內容。在教學方法上,以培養學生的獨立思考和創新思維為目標,將理論知識融入教學案例的講解中,通過分析、演繹、推斷、歸納,引導學生認真分析項目中體現的軟件工程領域的問題,運用啟發式教學方法建立教師、學生雙向交互的教與學通道,啟發學生對軟件開發問題的認識和思考,激發學習的主動性,使其通過積極的思維和討論獲得知識。
4.演練項目的過程管理。演練項目作為課外同步訓練項目,教師以需求方與技術顧問的雙重身份參與其中。作為需求方,教師針對演練項目提供大致的功能需求,鼓勵學生通過分析問題、調查研究、分析需求和管理需求等活動,學習軟件需求工程的基礎知識和基本技能。作為技術顧問,教師為學生提供相應的學習資源和解決問題的方法及手段的建議,引導學生獨立思考和討論。演練項目的實施按項目規劃、迭代開發兩個階段組織進行。在項目規劃階段,完成定義項目開發過程模型、定義項目組織結構、分配人員角色、估算項目規模、制訂進度計劃。迭代開發階段是由需求分析、軟件設計、數據庫設計、模塊開發與測試各環節組成的循環逐步求精的過程。整個演練項目的實施要求在規范的、可控的過程中完成,具體保障措施如下:一是明確開發任務并落實到小組的每個成員,由項目負責人填寫任務跟蹤表,監督任務執行情況,小組各成員通過不同角色的任務分工,共同協作完成項目開發任務;二是實行每周例會制度,保證所有成員在規定時間進行討論交流;三是將需求分析、軟件設計、模塊開發、集成測試等關鍵階段產品置于配置管理的控制下,并實行階段評審機制,要求各項目組在完成每個里程碑的任務后,提交相應技術文檔,推薦一名代表就該階段完成工作情況、遇到的問題及解決方法作小型匯報,并組織學生進行技術評審。
5.演練項目驗收。在完成演練項目的開發任務后,由教師組織項目驗收討論會,要求每個小組演示項目成果,從系統背景、團隊介紹、采用的技術、系統優勢及存在問題等方面匯報,演示系統的各項功能,回答教師和同學的提問,以團隊的形式提交軟件需求規格說明書、軟件設計文檔、項目代碼、軟件測試文檔、軟件過程管理文檔、每周工作報告以及任務跟蹤表等材料。
6.課程考核。課程考核分為理論考核和實踐考核兩個方面。理論考核采取開卷考試,要求學生在規定時間內完成給定案例的分析和設計方案,重點考核學生思考、分析和解決問題的能力;學生的實踐考核成績由小組成績和個人成績兩部分組成,小組成績根據各小組提交的演練項目結題材料,并結合項目驗收匯報情況進行評定;個人成績根據每周工作報告和任務跟蹤表由小組組長和教師進行綜合評價。
進行教學改革的最終目的是培養符合市場和社會需求的創新型軟件人才,在基于項目驅動的軟件工程課程復合式教學模式下,培養的人才具有扎實的理論基礎知識,通過相關知識的組合式、模塊化的理論教學方法,強化學生的認知,使其更牢固地掌握理論知識;具有獨立思考和基本的創新能力,在復合式教學過程中,通過引導、啟發學生分析問題,積極思考和討論,培養學生的獨立思考和自主創新能力;具有團隊協作精神,以項目驅動小組協作開發,培養團隊合作精神。在項目進行的各個階段,要通過明確任務、落實責任、任務跟蹤、協作開發、定期討論、階段評審和項目驗收各個環節的協同工作,達到培養學生的團隊精神與合作意識的目的。
[參考文獻]
[1]李超,謝坤武,向軍.軟件工程課程教學內容及方法探索[J].計算機時代,2010(7).
[2]教育部高等學校計算機科學與技術教學指導委員會.高等學校計算機科學與技術專業核心課程教學實施方案[M].北京:高等教育出版社,2010.
[3]龐雄文.基于實例的“軟件工程”課程教學方法[J].現代教育技術,2010(S1).
[4]溫穎,周昕.項目教學法在軟件工程教學中的應用[J].科技信息,2010(24).