亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        軟件工程實驗教學研究與實踐

        2007-12-31 00:00:00彭鑫趙文耘錢樂秋
        計算機教育 2007年20期

        摘要:本文根據(jù)學生的知識和能力基礎以及教學目標,認為軟件工程課程實驗可以按照由淺入深的順序分為認知性導入實驗、方法性實驗和綜合實踐三個階段。這種三階段的軟件工程實驗教學方法為學生提供了一條從編程到軟件項目開發(fā)的漸進式發(fā)展之路,并已在復旦大學軟件工程相關課程教學中得到了成功應用。

        關鍵詞:軟件工程;實驗;軟件開發(fā);實踐

        中圖分類號:G642文獻標識碼:B

        文章編號:1672-5913 (2007) 20-0015-03

        1軟件工程實驗教學的意義

        軟件工程是一門理論與實踐并重的基礎課程,教學內容緊密圍繞軟件開發(fā)過程中的各種工程化方法、技術和思想。軟件工程從工程意義上講是指軟件開發(fā)、維護、管理等活動的總體,從學科意義上講包括軟件開發(fā)相關的理論、原理、方法、技術[1]。

        軟件工程課程一般安排在本科三年級開設,此時的學生經過一二年級的學習和實踐已經掌握了一定的計算機知識和編程能力,但分析解決復雜軟件問題的能力以及工程化軟件開發(fā)的意識還比較弱。而軟件工程課程設計的目標是使學生系統(tǒng)地掌握軟件工程及軟件管理的過程、方法和工具,為學生將來從事軟件的研發(fā)和管理奠定基礎[2]。軟件工程教學內容中的需求分析、設計和軟件測試等軟件開發(fā)技術以及工程化的開發(fā)過程(例如軟件過程、配置管理、項目管理等)必須通過實際軟件問題求解過程以及團隊合作進行體驗,而綜合的軟件開發(fā)能力更是需要通過一個完整的軟件項目開發(fā)過程進行鍛煉和培養(yǎng)。因此,軟件工程課程實驗是鞏固課堂教學成果、培養(yǎng)學生軟件工程實踐能力的重要手段。

        2總體思路

        作為研究工程化軟件開發(fā)方法和技術的學科,軟件工程課程的課程實驗主要以課程實踐項目的形式進行,從實驗目的看主要分為三類:方法性實踐、實現(xiàn)性實踐、創(chuàng)新性實踐。其中,方法性實踐是在軟件工程課程教學中講述某種軟件開發(fā)方法后安排的實踐,主要目的是加深對方法的理解。實現(xiàn)性實踐的主要目的是讓學生參與軟件項目的開發(fā)全過程,一方面將學得的理論知識運用于實踐中,另一方面培養(yǎng)學生的工程能力(包括軟件工具的使用)和團隊協(xié)作精神。而創(chuàng)新性實踐的主要目的是培養(yǎng)學生的創(chuàng)新能力,通過在實踐項目設計中,有針對性地引入開放性問題和不確定問題,啟發(fā)學生在探討中尋找合理的、創(chuàng)造性的解決方案。

        2.1三個實驗階段

        根據(jù)學生的知識和能力基礎以及教學目標,軟件工程課程實驗可以按照由淺入深的順序分為三部分,即:認知性導入實驗、方法性實驗和綜合實踐。而方法性實踐、實現(xiàn)性實踐、創(chuàng)新性實踐三類實踐內容又以不同的形式體現(xiàn)在這三個實驗階段中。

        認知性導入實驗通過一個很小的程序開發(fā)案例完成認知性導入,引導學生思考軟件工程的基本思想和原則,體會規(guī)范化分析、設計、實現(xiàn)、測試的意義和必要性。方法性實驗緊貼軟件工程教學內容,以結構化分析設計和面向對象分析設計為主要的實驗內容。綜合實踐以面向對象的開發(fā)方法和統(tǒng)一軟件過程RUP為基礎,引導學生完成一個完整的軟件項目開發(fā)過程,包括需求獲取、需求分析、系統(tǒng)設計、實現(xiàn)以及測試等基本步驟,同時強調數(shù)據(jù)庫、網絡等開發(fā)技術的綜合運用以及相關CASE工具的使用,在此基礎上還鼓勵學生嘗試一些新的軟件開發(fā)方法和技術。

        三個課程實驗階段具有各自明確的目的和定位:認知性導入實驗完成認知導入,方法性實驗幫助學生鞏固課堂中所學習到的知識,而綜合實踐則培養(yǎng)學生綜合運用各種軟件開發(fā)方法和技術的能力。此外,三個階段的課程實驗中還穿插著創(chuàng)新性實踐要求,通過各種開放性問題和不確定問題鼓勵學生運用自己的思考能力尋找合理的、創(chuàng)造性的解決方案。

        2.2課時安排

        三個實驗階段中,前兩個緊密圍繞軟件工程課程的教學內容,而綜合實踐則是對學生工程化軟件開發(fā)能力的全面訓練。因此在課程安排上可以將認知性導入實驗和方法性實驗穿插在一個學期的軟件工程課程中進行,而在后續(xù)的軟件實踐類課程中安排第三個階段的綜合實踐性實驗內容。

        3認知導入、方法性實驗和綜合實踐

        3.1認知性導入實驗

        通過軟件工程課程之前的程序設計相關課程的學習和實踐,學生已經掌握了一定的問題分析、算法設計、編程和調試能力,但分析解決復雜軟件問題的能力以及工程化軟件開發(fā)的意識還比較弱。認知性導入實驗的目標是從軟件工程實踐的角度完成認知導入,引導學生完成從程序設計到軟件開發(fā)的第一次跨越。

        認知性導入實驗通過一個算法小程序(例如日期到星期的轉換等)開發(fā)案例完成認知性導入,引導學生思考軟件工程的基本思想和原則,體會規(guī)范化分析、設計、實現(xiàn)、測試的意義和必要性。認知性導入實驗一般可以在一學期的第一次軟件工程課上布置,要求學生用1-2周時間獨立完成一個算法程序的規(guī)范化分析、設計、開發(fā)和測試過程并提交實驗報告,內容包括問題分析、數(shù)據(jù)結構、算法及界面設計、完整的程序清單、測試過程及結果記錄、心得與體會等。

        本次實驗采用簡單的算法程序作為題目,是為了降低學生的認知難度并且通過規(guī)范化開發(fā)與以前程序設計時的對比加強學生對軟件工程基本思想和原則的體驗。實驗以開發(fā)過程的規(guī)范性、個人體驗和開放問題的思路為主要評價指標,不以算法和程序本身的正確性為主要的評判標準。

        本次實驗一般安排在一學期第一次軟件工程課上布置,與之配套的課堂教學內容是 “軟件工程概論”。課堂教學通過對軟件工程基本思想和軟件開發(fā)基本過程的介紹,使學生初步理解軟件工程和工程化軟件開發(fā)的含義,特別強調本次實驗與程序設計作業(yè)的區(qū)別,即強調開發(fā)過程的工程性而不是算法和實現(xiàn)本身的正確性。此外,配套教學內容還對系統(tǒng)可用性、可維護性、可擴展性、測試自動化等開放性問題進行了鋪墊,希望可以引導學生在完成基本功能之余能夠加以思考和探究。

        3.2方法性實驗

        軟件工程的課程教學內容覆蓋了完整的軟件需求分析、設計、實現(xiàn)以及測試過程,對本科學生而言,主要講述結構化方法和面向對象方法兩部分。因此,這部分課程實驗與相關教學內容同步進行,分為結構化分析設計和面向對象分析設計兩個部分。方法性實驗要求學生自由組合,分組完成,每組3人。每個小組從候選項目中選擇一個完成結構化分析設計和面向對象分析設計兩部分實踐內容。本階段實驗可在導入性實驗結束后布置。

        本階段實驗以結構化及面向對象分析和設計方法以及UML基本表示法的掌握為主要評價指標,同時考查學生理解實際問題需求、解決具體問題的能力。本次實驗與教學內容中的“結構化分析與設計”以及“面向對象分析與設計”配套。為了保證本次實驗的順利開展,相應的課堂教學需要著重強調以下內容:明確軟件系統(tǒng)分析(做什么)和設計(怎么做)的區(qū)別,體會數(shù)據(jù)流圖、系統(tǒng)結構圖以及UML各類圖的含義;在具體的系統(tǒng)分析和設計中需要綜合各種具體要求和約束(例如可復用性、物理分布等)以及各種指導性原則進行系統(tǒng)分析和設計。

        3.2.1結構化分析設計部分

        這部分實驗要求各小組使用結構化分析和設計方法完成實踐項目的需求分析和設計過程,并在此基礎上撰寫實驗報告(包括結構化分析和設計文檔)。結構化分析階段要求學生按照結構化分析的基本思想和步驟完成實踐項目需求分析過程,將分析結果表示為相應的描述形式(主要包括數(shù)據(jù)流圖、數(shù)據(jù)字典和加工小說明),并根據(jù)相關原則和判定方法保證數(shù)據(jù)流圖的一致性和完整性。結構化設計階段要求學生在結構化分析結果的基礎上運用結構化設計的基本思想和步驟完成實踐項目的結構化設計,包括初步的結構圖映射以及后續(xù)的結構圖優(yōu)化。要求提交的結構化分析文檔的內容包括總體需求概述、分層數(shù)據(jù)流圖、數(shù)據(jù)字典、加工小說明等,結構化設計文檔的內容包括總體設計說明、初始結構圖、改進的結構圖以及各模塊說明等。

        在完成基本實驗要求的基礎上,要求學生對一些開放性問題進行思考,并根據(jù)自己的理解在實驗中加以體現(xiàn):數(shù)據(jù)流圖中文件的識別;對于數(shù)據(jù)流圖分解程度的把握;對于系統(tǒng)模塊物理分布的考慮;模塊之間的交互設計,例如通信協(xié)議、數(shù)據(jù)格式等;對于系統(tǒng)可復用性的考慮等。

        3.2.2面向對象分析設計部分

        這部分實驗要求各小組使用面向對象分析和設計方法完成同一個實踐項目的需求分析和設計過程,并在此基礎上撰寫實驗報告(包括需求分析和系統(tǒng)設計文檔)。面向對象分析階段要求學生按照面向對象分析的基本思想和步驟完成實踐項目需求分析過程,將分析結果表示為相應的描述形式(包括領域模型、用例模型以及用例的詳細描述等)。面向對象設計階段要求學生在面向對象分析結果的基礎上完成實踐項目的面向對象設計,包括系統(tǒng)體系結構、結構設計、面向對象類設計等。

        在完成基本的實驗要求上,要求學生對一些開放性問題進行思考,并根據(jù)自己的理解在實驗中加以體現(xiàn):層次體系結構等體系結構風格的運用;面向方面(Aspect)、關注點分離的設計思想;系統(tǒng)可維護性和可擴展性的考慮、面向對象設計模式的運用;對于系統(tǒng)邊界之外的外部接口的設計考慮等。

        3.3綜合實踐

        綜合實踐一般安排在軟件工程課程后進行,此時學生已經學習并掌握了軟件工程、程序設計、數(shù)據(jù)庫等方面的基本方法和技術,而且即將走出校門參與軟件開發(fā)實踐。因此,綜合性實驗突出強調貼近實際軟件項目的實踐性以及相關軟件開發(fā)能力的綜合運用。實踐性實驗一般安排在軟件工程課程后續(xù)的軟件開發(fā)實踐課程中,成績評定完全根據(jù)課程實踐情況。

        綜合實踐以面向對象的開發(fā)方法和統(tǒng)一軟件過程RUP為基礎,引導學生完成一個完整的軟件項目開發(fā)過程,包括需求獲取、需求分析、系統(tǒng)設計、實現(xiàn)以及測試等基本步驟,同時強調數(shù)據(jù)庫、網絡等開發(fā)技術的綜合運用以及分析、設計、測試等CASE工具的使用,在此基礎上還鼓勵學生嘗試構件技術、AOP、Web Service等新的軟件開發(fā)方法和技術。學生自由確定項目團隊組成方式,每組設項目經理1名,項目組成員3~5人。每個小組從候選項目中選擇一個完成整個開發(fā)過程,分需求分析、系統(tǒng)設計和系統(tǒng)實現(xiàn)與測試三個階段提交文檔、代碼等實驗結果,并提交最終的可運行軟件系統(tǒng)進行檢查。

        與前面幾個軟件工程實驗階段相比,實踐性實驗具有以下特點:

        1) 完整的軟件開發(fā)過程。整個實驗以一個實際項目的完整開發(fā)過程為主線,覆蓋了需求獲取、需求分析、概要設計、詳細設計到實現(xiàn)和測試的整個開發(fā)過程。

        2) 綜合性與真實性。實驗中要求完全實現(xiàn)所選擇的實踐項目,因此學生需要綜合運用數(shù)據(jù)庫設計、網絡編程等知識,同時相關需求都來自于真實的管理信息系統(tǒng)項目,使學生能夠體會到真實的軟件開發(fā)過程中的一些問題(例如外部交互接口、第三方軟件構件等)。

        3) 開發(fā)過程的規(guī)范性。強調每個項目組的開發(fā)過程都應該遵從軟件過程規(guī)范,同時在開發(fā)過程中引入基本的項目管理機制。

        4) 學生的主體性體現(xiàn)得更見明顯。實踐項目的開放性更強,學生可以得到更多的自由發(fā)揮,例如學生自主參與需求調研確定詳細需求、自由決定項目組組成模式和管理方式等。

        4軟件工程實驗教學實踐

        我們在復旦大學計算機科學與工程系的軟件工程相關課程體系建設中對這套三階段的實驗教學方法進行了實踐。我們在第六學期安排軟件工程課程,而在第七學期安排配套的軟件實踐課程,這樣就使得軟件工程實驗教學具有很好的延續(xù)性和系統(tǒng)性。三個實驗階段中,前兩個與軟件工程課程配套進行,兩個實驗階段作為軟件工程課程配套實踐占學生總成績的40%。其中,認知性導入實驗持續(xù)1~2周,另外安排1個課時進行講解,方法性實驗持續(xù)15周左右,另外安排3~4個課時進行講解。綜合實踐安排在軟件實踐課程中進行,持續(xù)16周(共48個課時)左右,其中18個課時用于課堂教學、講解和點評,30個課時用于實踐(需求調研、項目討論等)及上機,成績評定完全根據(jù)課程實踐進行。

        這種三階段的軟件工程實驗教學方法為學生提供了一條從編程序到軟件項目開發(fā)的漸進式發(fā)展之路。通過這種系統(tǒng)的軟件工程實踐能力訓練,學生可以將所學的各種軟件開發(fā)方法和技術轉化為綜合的軟件開發(fā)和管理能力,同時也對軟件開發(fā)的一些現(xiàn)實困難(例如需求的不確定、測試覆蓋度和效率、構件化開發(fā)和集成的困難等)有了初步認識,這些都為他們今后參加軟件研發(fā)和管理打下了良好的基礎。目前,復旦大學軟件工程課程已經被評為上海市精品課程,在此基礎上我們正在進一步推進軟件工程課程體系建設。

        參考文獻

        [1] 朱三元, 錢樂秋, 宿為民. 軟件工程技術概論[M]. 北京:科學出版社,2002.

        [2] 王志英. 實踐教學:計算機人才培養(yǎng)的重頭戲[J]. 計算機教育,2004,(9).

        作者簡介

        彭鑫(1979-),男,博士,復旦大學計算機科學與工程系講師,主要研究方向為軟件構件技術、軟件產品線、軟件維護與再工程。

        趙文耘(1964-),男,復旦大學計算機科學與工程系教授,博士生導師,主要研究方向為軟件工程與電子商務。

        錢樂秋(1942-),男,復旦大學計算機科學與工程系教授,博士生導師,主要研究方向為軟件工程。

        通信地址:上海市復旦大學計算機科學與工程系軟件工程實驗室200433

        電話:13916819965

        日本一二三区视频在线| 日本骚色老妇视频网站| 亚洲国产最新免费av| 亚洲爆乳无码精品aaa片蜜桃| 国产精品无码av天天爽| 国产精品亚洲A∨天堂不卡| 国产极品嫩模大尺度在线播放 | 人人妻人人澡人人爽精品日本| 无码人妻精品一区二区在线视频| 伊人一道本| 大岛优香中文av在线字幕| 91丝袜美腿亚洲一区二区| 麻豆果冻传媒在线观看| 动漫在线无码一区| 日韩人妻大奶子生活片| 亚洲国产精品久久久久久无码| 亚洲av综合色区无码一二三区| 免费一级黄色大片久久久| 凹凸世界视频a一二三| 国产亚洲精品成人aa片新蒲金 | 亚洲av毛片在线播放| 熟女无套高潮内谢吼叫免费| 台湾佬综合网| 国产精品女丝袜白丝袜| 久草手机视频在线观看| 999国内精品永久免费观看| 五月婷婷激情小说| 日本一区中文字幕在线播放| 人人爽久久久噜人人看| 国产70老熟女重口小伙子| 毛片一级精油按摩无码| 一本色道久在线综合色| 99久久免费国产精品| 久久狠狠高潮亚洲精品暴力打| 国产三级c片在线观看| 国产乱人无码伦av在线a| 夜夜揉揉日日人人| 亚洲国产精品免费一区| 一本色道久久88加勒比一| 久久久精品人妻久久影视| 国产思思久99久精品|