国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

軟件工程實(shí)踐教學(xué)內(nèi)容探索

2011-12-31 00:00:00金鑫
計算機(jī)教育 2011年18期


  摘要:軟件工程是一門實(shí)踐特征明顯的學(xué)科,在借鑒前人研究的基礎(chǔ)上,結(jié)合教學(xué)和系統(tǒng)開發(fā)的實(shí)踐,本文提出并分析軟件工程課程6大特點(diǎn),根據(jù)軟件工程的工程性、實(shí)踐性的需求,提出軟件工程實(shí)踐教學(xué)環(huán)節(jié)的知識體系,并依據(jù)該知識體系的內(nèi)容設(shè)計參考實(shí)踐案例。
  關(guān)鍵詞:實(shí)踐教學(xué) 知識體系 軟件工程
  文章編號:1672-5913(2011)18-107-05 中圖分類號:G642 文獻(xiàn)標(biāo)識碼:B
  軟件工程是指導(dǎo)軟件開發(fā)過程的工程性學(xué)科,是涉及計算機(jī)科學(xué)、管理科學(xué)、系統(tǒng)工程科學(xué)的綜合性學(xué)科。軟件工程是為了解決上世紀(jì)60年代的軟件危機(jī)而誕生,即在軟件開發(fā)中應(yīng)用工程化的方法來解決或避免軟件危機(jī)中的問題。因此,軟件工程的重要性和必要性是毋庸置疑的[1]。
  軟件工程課程是計算機(jī)科學(xué)與技術(shù)專業(yè)以及相關(guān)專業(yè)的核心課程。該課程的目的是使學(xué)生掌握軟件開發(fā)的過程、方法和工具,并在此基礎(chǔ)上,通過軟件項(xiàng)目的實(shí)際開發(fā),能夠熟練掌握軟件工程的相關(guān)方法,能夠靈活應(yīng)用軟件工程的相關(guān)技術(shù),為今后開展軟件工程的研究、開發(fā)和應(yīng)用工作打下基礎(chǔ)。
  1 軟件工程課程的特點(diǎn)
  軟件工程作為一門工程性的系統(tǒng)科學(xué),其內(nèi)容靈活、覆蓋面廣泛,通過多年的教學(xué)。我們總結(jié)了軟件工程課程的主要特點(diǎn):理論性與實(shí)踐性并重、系統(tǒng)性與局部性并重、科學(xué)性與工程性并重、規(guī)范性與靈活性并重、管理與技術(shù)并重、方法與工具并重。以下將詳細(xì)闡述這6個特點(diǎn)。
  1) 理論性與實(shí)踐性并重。
  軟件工程注重軟件開發(fā)實(shí)踐,注重軟件開發(fā)方法論指導(dǎo)下的工程實(shí)踐。只有在理論指導(dǎo)下的軟件開發(fā)實(shí)踐,才能克服和避免軟件危機(jī)的問題,最大化地滿足客戶的需要。任何一個軟件系統(tǒng)的開發(fā),都需要在軟件工程方法論的指導(dǎo)下進(jìn)行,從需求階段,到分析、設(shè)計階段,以及實(shí)現(xiàn)階段,都有一套方法論。但是要掌握和應(yīng)用好這些理論知識,必須與實(shí)踐相結(jié)合。理論源于實(shí)踐,而高于實(shí)踐。軟件工程的理論是在多年的軟件開發(fā)實(shí)踐過程中總結(jié)提煉出來的。軟件開發(fā)本身決定了這就是一項(xiàng)實(shí)踐性工作,但這種實(shí)踐需要軟件工程方法論的指導(dǎo),是理論與實(shí)踐的密切結(jié)合。
  2) 系統(tǒng)性與局部性并重。
  軟件工程是一門系統(tǒng)科學(xué),系統(tǒng)性是其重要特征之一。在軟件開發(fā)的整個生命周期,一套系統(tǒng)的開發(fā)方法、系統(tǒng)的過程管理都貫穿始終。系統(tǒng)性保證了用戶的需求貫穿始終,也就是從最初的獲取用戶的需求,到最終產(chǎn)生滿足用戶需求的軟件產(chǎn)品。系統(tǒng)性也保證了軟件開發(fā)過程的各個局部環(huán)節(jié)的良好協(xié)作和銜接,保證了系統(tǒng)的完整性,使得軟件開發(fā)過程在正確的系統(tǒng)中心思想和正確的發(fā)展軌跡下順利進(jìn)展。但是在注重系統(tǒng)性的同時,也要重視每個局部環(huán)節(jié)。多個局部環(huán)節(jié)構(gòu)成了這個系統(tǒng),一旦某個局部環(huán)節(jié)出了問題,可能造成整個系統(tǒng)無法進(jìn)展下去。例如,如果在需求獲取階段,獲取的用戶需求錯誤,可能導(dǎo)致整個開發(fā)過程朝錯誤的方向發(fā)展,使得最終系統(tǒng)與用戶期望產(chǎn)生大的偏差。所以在軟件開發(fā)的整個過程中,在注重系統(tǒng)性的同時,也要注重局部性。
  3) 科學(xué)性與工程性并重。
  軟件開發(fā)過程需要在科學(xué)的思維、科學(xué)的方法指導(dǎo)下來解決軟件開發(fā)中的工程性問題。在軟件開發(fā)
  中,只有在清晰的、科學(xué)的開發(fā)思路、開發(fā)理念,規(guī)范科學(xué)的開發(fā)方法的指導(dǎo)下,才可能保證工程進(jìn)展朝正確的方向發(fā)展,而且可以減少或避免軟件開發(fā)過程中錯誤的發(fā)生。但是軟件開發(fā)過程中注重科學(xué)性的同時,一定要密切結(jié)合工程實(shí)踐,用科學(xué)的方法和技巧解決實(shí)踐工程問題。只有科學(xué)性和工程性相結(jié)合的情況下,才能保證科學(xué)的方法能匹配解決工程問題的實(shí)際需求。實(shí)際上在軟件開發(fā)過程中,每一個開發(fā)工程都有其獨(dú)特性,而科學(xué)的方法往往更具有普適性而缺乏獨(dú)特性,只有把科學(xué)的視角和工程的視角相結(jié)合,才能在軟件開發(fā)過程中更好的實(shí)現(xiàn)科學(xué)的方法科學(xué)地指導(dǎo)工程實(shí)踐,促進(jìn)軟件開發(fā)的正確性,減少軟件開發(fā)中的錯誤,保證軟件開發(fā)的進(jìn)度。
  4) 規(guī)范性與靈活性并重。
  軟件開發(fā)需要團(tuán)隊(duì)協(xié)作共同完成,保證協(xié)作互通的前提就是要遵循一定的規(guī)范。在軟件開發(fā)的各個階段都需要有文檔規(guī)格說明書,相關(guān)的工作都參照按照文檔規(guī)格說明中的內(nèi)容來進(jìn)行和評審。對于這些文檔國家和部分企業(yè)都提出了相關(guān)的標(biāo)準(zhǔn),如GB/T 8567-2006《計算機(jī)軟件文檔編制規(guī)范》中規(guī)范了軟件開發(fā)過程中需要的各種文檔規(guī)格。
  此外,規(guī)范性還體現(xiàn)在規(guī)范使用軟件開發(fā)方法,例如使用規(guī)范正確的數(shù)據(jù)流圖方法來實(shí)現(xiàn)結(jié)構(gòu)化分析階段的功能建模,使得系統(tǒng)開發(fā)人員正確的功能模型的內(nèi)涵。
  但是,遵循規(guī)范,不是固步自封,不要忽視軟件開發(fā)的靈活性。軟件開發(fā)也是一種藝術(shù),有開發(fā)人員的藝術(shù)創(chuàng)作在里面。每個軟件開發(fā)項(xiàng)目都有其各自不同的目標(biāo)和特點(diǎn),相應(yīng)軟件規(guī)格文檔強(qiáng)調(diào)的重點(diǎn)也不一樣。這里所強(qiáng)調(diào)的靈活性,不是不遵循規(guī)范,而是靈活地完善規(guī)范內(nèi)容。例如,在需求分析中構(gòu)建用例模型,在對用例的規(guī)格說明中,既可以僅使用文字來描述條件和事件,也可以輔助加上流程圖來說明,最終的目的是通過規(guī)格說明能描述清楚目標(biāo)對象,方便開發(fā)人員理解。也就是說,規(guī)范的內(nèi)容具有靈活性,哪種方式能更說清楚問題,哪種就是最有效的。千萬不要為了規(guī)范而規(guī)范。
  5) 管理與技術(shù)并重。
  軟件工程的目標(biāo)是運(yùn)用先進(jìn)的軟件開發(fā)技術(shù)和管理方法來提高軟件的質(zhì)量和生產(chǎn)率。管理和技術(shù)在軟件開發(fā)中缺一不可,二者密不可分,相互滲透。技術(shù)是軟件開發(fā)的基礎(chǔ),管理是軟件開發(fā)的保證。從軟件項(xiàng)目的開發(fā)到實(shí)現(xiàn)的各個階段都有一雙技術(shù)的手在推動,但是缺乏管理的項(xiàng)目,最終難以成功。過去,開發(fā)人員都只重技術(shù),輕視管理,現(xiàn)在這種狀況已經(jīng)有所改觀。但是學(xué)生在學(xué)習(xí)過程中還是有重技術(shù)輕管理的現(xiàn)象,在實(shí)踐過程中不重視項(xiàng)目管理,這種狀況需要教師在教學(xué)中及時糾正。
  6) 方法與工具并重。
  軟件工程中包含了多種方法,如數(shù)據(jù)建模方法、用例建模方法、功能建模、數(shù)據(jù)流圖等等,為了深入了解和掌握這些方法,需要應(yīng)用各種方法所涉及的CASE工具來完成相關(guān)的軟件開發(fā)工作。也就是說,方法與工具要密切配合,這樣可以幫助學(xué)生加深對軟件工程課程所涉及方法的理解,并掌握一些主流的軟件工程工具的使用方法,通過工具將方法應(yīng)用到實(shí)踐中。
  2 軟件工程課程實(shí)踐環(huán)節(jié)知識架構(gòu)
  在上述總結(jié)的軟件工程課程的特點(diǎn)中,軟件工程的工程性和實(shí)踐性在每個特點(diǎn)中都有體現(xiàn)。為了展開軟件工程的實(shí)踐教學(xué),我們需要分析軟件工程課程知識體系,并從其中抽取實(shí)踐內(nèi)容的知識點(diǎn),從而能更好地設(shè)計實(shí)踐案例。
  我們根據(jù)軟件工程知識體系指南SWEBOK和教育部高等學(xué)校計算機(jī)科學(xué)與技術(shù)教學(xué)指導(dǎo)委員會發(fā)布的計算機(jī)科學(xué)與技術(shù)中關(guān)于軟件工程的課程內(nèi)容[2-3],以及使用的軟件工程教材[4-5],并結(jié)合教學(xué)中的具體情況,將軟件工程實(shí)踐教學(xué)內(nèi)容分為四大模塊:面向結(jié)構(gòu)的軟件開發(fā)、面向?qū)ο蟮能浖_發(fā)、軟件測試和軟件項(xiàng)目管理。
  
  3 基于.NET電子商務(wù)應(yīng)用系統(tǒng)開發(fā)的實(shí)踐案例設(shè)計
  本案例就是為了適應(yīng)軟件工程課程實(shí)踐教學(xué)的內(nèi)容要求,滿足課程實(shí)踐性強(qiáng)的特點(diǎn),并且在充分考慮了學(xué)生知識體系的基礎(chǔ)上,通過開發(fā)一個具有較強(qiáng)實(shí)際應(yīng)用價值的電子商務(wù)應(yīng)用系統(tǒng),培養(yǎng)學(xué)生應(yīng)用軟件工程知識解決實(shí)際問題的能力。
  本案例基于.NET架構(gòu),采用了面向?qū)ο蠓椒▽W(xué)和結(jié)構(gòu)化方法學(xué)這兩種重要的軟件工程方法學(xué)分別
  分析設(shè)計組成B2C電子商務(wù)應(yīng)用系統(tǒng)的兩個子系統(tǒng):在線購物子系統(tǒng)和后臺管理MIS系統(tǒng),并且在軟件開發(fā)過程中始終采用項(xiàng)目管理的手段控制并管理項(xiàng)目的進(jìn)程。學(xué)生通過此軟件項(xiàng)目的研發(fā)可以全面掌握軟件工程的開發(fā)過程,可以靈活應(yīng)用主流的軟件開發(fā)工具,提升學(xué)生分析問題、解決問題的能力,促進(jìn)學(xué)生實(shí)踐創(chuàng)新能力的培養(yǎng)。
  
  基于.NET的電子商務(wù)(這里僅針對BtoC模式)應(yīng)用系統(tǒng)的開發(fā),從技術(shù)上應(yīng)用了現(xiàn)在主流的.NET技術(shù),從內(nèi)容上既包含了B/S(Browser/Server)模式下的
  在線購物系統(tǒng),也包含了C/S(Client/Server)模式下的內(nèi)部管理信息系統(tǒng)(MIS)。因此,學(xué)生能夠把軟件工程的各種方法和技術(shù)應(yīng)用到不同的模式下,同時能結(jié)合.NET主流技術(shù),有助于拓寬學(xué)生的知識視野,培養(yǎng)學(xué)生的實(shí)踐創(chuàng)新能力。
  本實(shí)踐案例采用.NET技術(shù)開發(fā)的電子商務(wù)應(yīng)用系統(tǒng)主要包含兩部分:基于B/S模式的在線購物系統(tǒng)和基于C/S模式的后臺管理MIS系統(tǒng),這兩個子系統(tǒng)分別是電子商務(wù)應(yīng)用系統(tǒng)(這里僅針對BtoC模式)的面向客戶的前臺和面向商家和管理員的后臺。前臺系統(tǒng)和后臺系統(tǒng)通過共享的底層數(shù)據(jù)庫密切地關(guān)聯(lián)。這也意味著,前后臺系統(tǒng)的開發(fā)需要開發(fā)小組的密切合作,只有通過有效的小組協(xié)作才能保證系統(tǒng)開發(fā)的完整性和準(zhǔn)確性,才能符合用戶的系統(tǒng)需求。
  在線購物系統(tǒng)主要包括,用戶的登錄、商品的查詢、瀏覽、商品購買等。后臺的MIS系統(tǒng)主要包括商品的管理和用戶的管理,主要功能包括添加、刪除、修改等功能。
  本案例研究內(nèi)容及方案實(shí)施過程的簡單示圖。為了讓學(xué)生充分應(yīng)用軟件工程方法,我們要求學(xué)生使用面向?qū)ο蟮姆椒▽W(xué)設(shè)計在線購物系統(tǒng),使用面向結(jié)構(gòu)的方法設(shè)計后臺管理的MIS系統(tǒng)。并且軟件開發(fā)的各個階段都通過項(xiàng)目管理手段對項(xiàng)目進(jìn)行監(jiān)控和管理,并且在各階段對學(xué)生應(yīng)用的工具、應(yīng)該掌握的知識、應(yīng)解決的問題提出了具體的要求,由于篇幅所限,此處只做簡單描述。
  
  按階段簡要描述方案內(nèi)容如下:
  1) 需求分析階段。
  對系統(tǒng)進(jìn)行調(diào)查,規(guī)劃系統(tǒng)的內(nèi)容,對用戶需求進(jìn)行分析調(diào)查,分析用用對系統(tǒng)功能和性能的要求,提出系統(tǒng)需求分析報告和需求分析計劃。此階段由于在前臺系統(tǒng)采用了Web方式,可以通過構(gòu)建原型網(wǎng)站系統(tǒng)來進(jìn)一步確定功能需求和用戶界面需求。在此階段要使用項(xiàng)目管理工具Project對項(xiàng)目的進(jìn)度計劃、項(xiàng)目的人員組織進(jìn)行規(guī)劃安排。此階段還要準(zhǔn)備需求分析測試文檔。
  2) 分析階段/概要設(shè)計階段。
  使用面向?qū)ο蠓椒ê洼o助CASE分析在線購物子系統(tǒng),建立用戶用例模型,建立靜態(tài)類圖和對象圖,分析系統(tǒng)時序圖,分析系統(tǒng)事件交互過程,對系統(tǒng)的整體架構(gòu)進(jìn)行劃分,提出系統(tǒng)分析方案。并且可以在需求分析Web界面模型的基礎(chǔ)上,完善用戶界面的分析和功能分析。
  使用結(jié)構(gòu)化分析方法分析后臺管理MIS系統(tǒng),分析系統(tǒng)流圖、數(shù)據(jù)流圖,分析E-R模式圖,提出系統(tǒng)概要設(shè)計方案。
  從項(xiàng)目管理的階段考察該階段的完成情況,對相關(guān)文檔進(jìn)行歸檔,對項(xiàng)目進(jìn)程進(jìn)行考核。在此階段也要做好各項(xiàng)分析階段測試文檔的內(nèi)容。
  3) 設(shè)計階段。
  針對在線購物子系統(tǒng),使用面向?qū)ο笤O(shè)計方法設(shè)計類、對象和消息,定義系統(tǒng)各層次的接口,建立對象交互圖和順序圖,設(shè)計用戶界面,提出系統(tǒng)設(shè)計報告??梢栽谇耙浑A段的需求原型和分析模型的基礎(chǔ)上進(jìn)一步完善功能和界面,形成初級的前臺系統(tǒng)。
  針對后臺管理子系統(tǒng),使用結(jié)構(gòu)化設(shè)計方法,設(shè)計程序流圖,設(shè)計數(shù)據(jù)庫的內(nèi)容,提出詳細(xì)設(shè)計說明書。
  通過項(xiàng)目設(shè)計計劃安排考核該階段項(xiàng)目進(jìn)展?fàn)顩r。此階段還要做好設(shè)計階段測試文檔的內(nèi)容。
  4) 實(shí)現(xiàn)階段。
  基于系統(tǒng)設(shè)計報告或系統(tǒng)詳細(xì)設(shè)計說明書,采用.NET技術(shù)和相關(guān)語言進(jìn)行編程,實(shí)現(xiàn)該電子商務(wù)應(yīng)用系統(tǒng),數(shù)據(jù)庫系統(tǒng)采用主流SQL SERVER2005。此階段的工作可以在前述建立的原型系統(tǒng)的基礎(chǔ)上進(jìn)一步編程實(shí)現(xiàn),完成實(shí)際需要的信息系統(tǒng)。
  此外還要對軟件系統(tǒng)進(jìn)行單元測試和集成測試,并把該系統(tǒng)發(fā)布到網(wǎng)站上進(jìn)行實(shí)際運(yùn)行測試。同時開展相應(yīng)的系統(tǒng)維護(hù)工作。
  通過項(xiàng)目的實(shí)施計劃和測試計劃考察該階段項(xiàng)目的進(jìn)展情況。
  4 實(shí)踐內(nèi)容考核方式
  以小組協(xié)作的方式完成實(shí)踐案例的開發(fā),實(shí)踐課程的考核,通過開發(fā)項(xiàng)目的完成速度和質(zhì)量(權(quán)重15%)、軟件文檔的規(guī)范和完整程度(權(quán)重20%)、個人在小組中的協(xié)作溝通能力(權(quán)重15%)、小組的創(chuàng)新能力(權(quán)重15%)、個人的專業(yè)知識水平(權(quán)重10%)和課程答辯的表現(xiàn)(權(quán)重15%)等方面,以10分制的方式來給
  學(xué)生打分。而且對學(xué)生個人的打分,還要結(jié)合其他同小組成員對該學(xué)生的工作和協(xié)作能力的打分(占總權(quán)重的10%),最終得到學(xué)生的綜合成績,在此評分考核過程中盡量做到客觀地給學(xué)生應(yīng)得的分?jǐn)?shù)。
  5 結(jié)語
  軟件工程是多學(xué)科交叉的系統(tǒng)科學(xué),是工程實(shí)踐特點(diǎn)顯著的課程。我們在研究中借鑒前人的成果上,并根據(jù)實(shí)際的教學(xué)和項(xiàng)目開發(fā)經(jīng)驗(yàn)總結(jié)了軟件工程課程的特點(diǎn),提出了軟件工程課程實(shí)踐內(nèi)容的知識體系,并在此基礎(chǔ)上給出了一個案例方案的架構(gòu)。我們希望該研究和實(shí)踐對相關(guān)的教師和學(xué)生能有一定的啟示和借鑒作用。
  (注:本文的研究得到中央財經(jīng)大學(xué)教改課題的資助,在此表示感謝。)
  參考文獻(xiàn):
  [1]

杭州市| 庄河市| 饶平县| 会同县| 临安市| 囊谦县| 恩平市| 宜兰市| 汝州市| 紫阳县| 晋州市| 无为县| 恩平市| 玉龙| 张北县| 湖州市| 沂源县| 大石桥市| 阜宁县| 和顺县| 南康市| 青岛市| 西丰县| 赞皇县| 蓝田县| 子洲县| 浦县| 唐山市| 米易县| 无为县| 皮山县| 英德市| 苏州市| 白朗县| 二连浩特市| 鲁甸县| 海城市| 海伦市| 万安县| 孙吴县| 青田县|