緒論:寫作既是個人情感的抒發,也是對學術真理的探索,歡迎閱讀由發表云整理的11篇軟件工程論文范文,希望它們能為您的寫作提供參考和啟發。
二、校企合作存在的問題
(一)學校與企業之間交流不暢通
高校與企業雖然已經開始合作,但是校企之間缺少信息交流,學校很難及時了解市場的變化情況,企業也較難了解學校科研方面的新成果。在人才培養上,學校對當下市場需要什么樣的人才,這些人才需要具備怎樣的素質和技能都知之甚少,學校與企業之間沒有真正建立起以社會發展為主導的適應社會發展的人才培養機制;在課程設置上,學校還是側重于理論知識的學習,應用型課程開設的少,忽視實踐技能的培養,偏離校企合作的最終目的。
(二)校企合作沒有真正做到服務地方經濟和特色產業
校企合作是以服務地方經濟和促進社會發展為目的的,但是在實際操作中沒有做到,使得校企合作動力不足,沒有建立互惠互助的合作模式,因而合作積極性不高。從學校的角度來看,學校科研大多是以自己的愛好興趣進行,沒有結合地方企業的發展情況,脫離實際。從企業方面來看,面對激烈的競爭市場,學校的科研成果雖有一定的商業價值,但是企業重視眼前的利益,經營周期短,不愿大學生來企業實習,對引進的新技術缺乏科技內在助力。
(三)校企合作的管理體制及政策法規不健全
校企合作模式中,雖說學校與企業之間在某些層面中達成了合作的關系,但是在其管理體系上尚沒有一套統一的合作機制,導致管理層面失效或缺失現象出現。另外,校企合作關系中,兩者各自隸屬于不同的管理部門,各自有其相應的管理體系,在管理中往往會因為利益關系而出現一些問題,影響校企合作的效果。所以,校企合作模式辦學,亟待一套完善統一的管理體制以及政策法規來規范和協調雙方之間的關系,以促進校企合作的共贏開展。
(四)校企雙方利益分配機制不完善
校企合作雙方是隸屬于不同機構的部門,對合作所得利益的分配存在差異,如科研成果轉讓過程中的價格問題、合作共建研發實體的各方投資比例與利益分配問題、成果的歸屬權問題以及知識產權問題、相互兼職待遇問題等,這些問題的產生主要在于缺乏利益共享、風險共擔的機制和制度。
三、軟件專業綜合改革措施
(一)采用“3+1”辦學模式,優化人才培養方案
現在企業發展需要的技術人才不僅要有扎實的理論基礎,還應該有較強的實際動手能力和工程實踐能力。在傳統教學中,老師和學生們閉門造車,偏重理論知識。對于這一情況,學校采用“3+1”模式,即3年在學校學習理論知識,通過校內學習使學生掌握軟件工程專業理論知識和基礎技能,提高學生的認知能力,熟悉各種專業軟件的操作技能。1年在企業進行實習和頂崗見習,培養學生的實際操作能力及運用所學的知識參與真正的軟件開發項目和解決遇到的實際問題,還可以利用這難得的機會了解一些軟件的業務工作狀況和開發軟件所用的工具等,提升學生的職業素養和團隊意識,增強學生的溝通能力,以備成為一名合格的員工。人才培養方案是以人才培養目標為指導,以現有的資源進行合理教學的一整套教學培養措施和方法。制定優良的教學方案應根據社會對人才的需要情況來設計,制定適應社會發展的培養方案,培養具有創新能力和團隊合作能力的優秀軟件工程人才。在學生進入企業實習這一環節,學校與企業需要建立完善的安全教育機制和頂崗實習制度,由于學生剛進企業,對企業的環境還不能適應,應定期組織企業、學生、老師進行交流,幫助學生解決困難。在教育方面,實現資源共享,老師進企業學習,工程師進教室授課,老師與工程師合作開發軟件項目等。通過共建、共享校企雙方的優質師資隊伍,不但能有效地提升課堂教學質量,還能增加學生實踐動手的機會,讓理論知識與實踐能夠充分的結合,適合學校人才培養的發展規律。
我國高等教育長期存在重理論、輕實踐的問題,因此教育部多次強調并明確指出要大力加強實踐教學,建立和完善校內外實習基地,高度重視畢業實習,提高畢業設計、畢業論文的質量。軟件工程專業是一門理論與實踐聯系非常緊密的學科,若按照傳統重視理論的培養模式,畢業生則難以滿足當前社會用人單位的需求[3]。對于相對新興的軟件工程機電一體化方向專業,其專業知識結構及培養目標決定學生面臨的畢業實習與設計問題更復雜,目前存在的主要問題表現在如下幾方面。(1)就業與選題的矛盾。基于該類專業的培養目標,畢業生目前就業意向主要有三:一是在軟件產業從事編碼測試、系統分析設計或具有軟件領域知識的復合型技術服務、銷售和管理(軟件方向);二是在機械電子工程應用背景專業領域從事軟件開發及機械研究、產品設計、制造、管理等工作(工程應用方向);三是考研、考公務員和自主創業等(考研方向)。因就業方向的多元化、畢業實習設計老師(包括軟件企業導師)的專業領域和人數限制、實習條件的限制等多重原因,學生難免產生選題與就業意向不相符的矛盾。(2)畢業實習設計與考研、公務員招考時間安排上的沖突。畢業實習設計一般都安排在第4學年的第7學期、第8學期,而這期間,每年一度的全國研究生招生考試和公務員的國考、省考也同時舉行,這就導致“考研方向”的學生在備考和完成學業間的矛盾,如不進行相應調整,勢必影響畢業實踐環節的教學質量。(3)軟件方向與專業方向的不協調因素。軟件方向學生一般采用3+1的培養模式,也就是說,第4學年大多在軟件企業完成基于項目驅動的畢業實習和畢業設計;而工程應用方向和考研方向往往還有幾門課程需要在校學習,在時間和內容安排上往往存在沖突。(4)畢業實習與畢業設計不能有機對接。畢業實習是畢業設計的重要準備階段,畢業實習要結合畢業設計課題,到生產第一線進行專業實踐與社會實踐,收集與畢業設計有關的信息和資料,畢業實習的內容和質量對畢業設計的質量有直接的影響。畢業設計要將所學基礎知識、專業理論與畢業實習的實踐相結合,注重分析問題、解決問題能力的培養,它能在一定程度上檢驗畢業實習的效果[4]。軟件工程培養實用型、復合型人才的特點使其對畢業實習與設計的銜接要求更高,而且該類專業多元的就業意向及其他復合因素使得學生的實習與設計內容往往不能有機銜接。目前軟件工程專業畢業實習設計的教學工作中,面對學生就業自主化的嚴峻形勢,存在著畢業實習與畢業設計不能有效銜接、教師對兩者核心含義把握不好、設計(論文)選題及內容與經濟社會對人才需求脫離以及忽視對學生的創造能力意識培養和訓練等影響畢業設計論文質量的問題,因此進行全新的教學改革已經迫在眉睫。
2畢業實習設計指導需考慮的因素
1)學習動機。自我效能感、學習動機和學業成就三者之間存在相關關系,且自我效能感與學業成就、學習動機和學業成就之間均呈顯著正相關[5]。自我效能感是人們對自身能否利用所擁有的技能完成某項工作行為的自信程度;學習動機是推動學生進行學習活動的內在動因,是激勵、指引、維持、調節學生學習的強大動力[6];學業成就指經過學習和訓練后所獲得學業方面的知識和技能,是學生學習狀況和水平的集中體現。高校畢業班級學生處于即將告別學生時代而走向社會的特殊階段,畢業、考研和就業等諸多問題以及社會價值日趨多元和競爭壓力日益加劇的強烈沖擊,對其學習和心理產生了重大影響[7]。為增強學生的學習動機,從選題入手,貫穿畢業實習設計各環節,融學生興趣愛好、就業意向與學生畢業實習設計于一體,激發學生的內在動力,是取得好的設計質量的關鍵因素之一。2)項目驅動。有效地整合指導教師的各類縱向、橫向在研項目并將其進行深入的挖掘和提煉,根據畢業實踐環節具體要求細分軟件工程項目,將其引入到學生畢業實習設計中,采用以項目驅動為主體的人才培養模式,優化管理體制與實驗室運行機制,探索一種新的實踐教學模式,以期實現實踐教學過程可控化、項目實施團隊化、項目資源共享化的目標,培養具有扎實的工程實踐能力、較強的技術創新能力、良好的團隊協作能力和可持續發展能力的人才[3]。3)導師制。采用指導教師全程負責制是確保后續創新模式實現的關鍵。導師可以是從學校選定的各方向專業教師,也可以是從企業選出的工程技術人員,還可以是兩者的結合(雙導師制)。導師既要完成畢業實習與畢業設計的組織工作,又要完成這兩個環節連貫且相互滲透的業務指導工作。為確保這種教學模式有條不紊地實施,指導教師應認真履行相應的職責。首先,根據畢業實綱和設計大綱的要求,與企業協調好學生的畢業實習設計課題和企業的生產技術工作需要之間的關系,落實畢業實習內容及合適的畢業設計課題;其次,要對學生畢業課題進行方案論證,及時提供指導和質量監督,確保教學任務的完成[4]。
3畢業實習設計指導創新模式的設計
結合軟件工程機電一體化方向的專業特色,在現有基礎上設計的畢業實習設計創新模式總體框架如圖1所示,其主要內容包括如下幾方面。1)以學生為本,模塊化組織。基于學生的學習動機,根據學生某方面的專業特長和未來的發展取向,該模式分為3個大模塊:以軟件設計、軟件測試、軟件維護和軟件項目管理等為目標的軟件模塊(軟件方向);立志于進一步深造的考研、公務員考試等模塊(考研方向);面向工程的工程應用模塊(工程應用方向)。大模塊下再設子模塊,如以工程應用為背景的模塊又分為UG、PRO/E等大型軟件的工程應用模塊;以單片機、PLC等程序開發為主的工控模塊;CAD、UG、PRO/E等面向應用軟件的二次開發模塊。學生根據學業基礎、就業意向及學習興趣自主選擇。2)畢業實習設計一體化。畢業實習與畢業設計是保證教學質量的重要階段,二者的關系越來越密切,將二者人為分割的教學模式已不太適應教學的需要,必須建立二者緊密結合的教學新模式。具體來說,軟件模塊將畢業實習和畢業設計兩個階段合并為一個階段,形成一個相對較長的時間整體,與大型軟件公司合作,安排在第4學年,這也是軟件工程專業目前比較流行的模式;工程應用模塊中學生可以根據畢業設計課題有針對性地開展畢業實習工作,實習、設計由同一導師指導,采取集中實習和反復調研的形式,實習圍繞設計的需要展開;考研模塊則將實習和設計的時間提前,第6學期即由指導老師提前介入,預先安排相應工作,在充分保證設計質量的前提下,為考研創造條件。至于軟件方向與背景專業方向課程安排上的沖突,軟件學院采取課程置換與學分互認方式,拓寬學生的專業課程知識,達到多元方向的均衡。3)導師制和項目驅動貫穿始終。采取導師負責制,將部分學生(考研方向)的畢業設計提前到第6學期開始,到第8學期結束,歷時1年半時間。在導師的指導與安排下,學生開展的工作包括文獻檢索,熟悉設備,儀器校準,實驗計劃,實驗開展,項目調研、開展、改進和總結各環節。基于項目驅動,每一學生的實習設計選題均為某方向科研子項或工程子項,學生通過一個完整的項目鏈,在熟悉科學研究方法、步驟和科研組織等環節基礎上,全面培養動手能力、獨立工作能力和創造性的思維能力。4)建立全程質量監控體系。“全程”指從畢業設計選題、畢業實習指導、教師下任務書、學生做開題報告、方案設計、實驗、中期檢查、撰寫論文到答辯評分、總結歸檔等質量形成的全過程;以制訂計劃、明確目標執行計劃檢查、反饋處理、糾偏制訂新的計劃、目標為質量監控途徑。針對畢業實習、畢業設計的各個環節,制訂詳細可行的規范,把握各階段的時間節點和考核標準,目前要求教研室審核的關鍵節點包括選題、任務書、開題、中期檢查、綜合評價、答辯等。
4工程實踐環境的構建
要保證上述模式的良好運行,必須有一個穩定而可行的工程實踐環境。我們一直注重軟件工程專業實踐應用型人才培養,不斷加強與IT等用人企業的合作。從軟件工程機電一體化方向專業開辦以來,江西理工大學軟件學院先后在中興軟件、中天電子、江西微軟、上海杰普等多家大型軟件公司和IT培訓機構建有校外實習基地,在江西銅業公司、中金嶺南股份公司、恒天動力有限公司等建有校外專業背景方向實習基地。打造相對穩定、整體素質較高的導師隊伍是實現該創新模式的有效保障,學院應考慮:①從實習基地遴選指導教師;②選派軟件方向教師到合作基地工程實訓;③選派專業方向教師到國內知名院校訪學。對畢業實習設計各環節,軟件學院制定有詳細的《畢業實習設計規范》,系部成立“軟件工程畢業設計領導小組”。教研室針對該內容進行深入調研與問題分析,在教師中開展動員,提前落實并布置工作;在學生中宣傳動員,使學生在思想上有準備,重視畢業實習、畢業設計;在畢業設計過程中,強調過程質量控制和管理,及時跟蹤控制,及時發現問題、解決問題。
1.1代碼的復用代碼的復用可以說是軟件復用中最簡單的部分,這種軟件復用方式在面向結構化和面向對象的軟件設計方法中均有所體現:面向結構化的軟件設計方式中,我們將軟件重復的部分抽象為一個函數,通過對函數傳遞不同的參數,從而實現不同模塊對函數的調用;在面向對象的軟件設計方法中,我們可以依靠類的繼承關系,使得子類在繼承的過程中能夠重復使用基類的一些代碼、成員變量等等,這些都是軟件復用中代碼復用的具體例子。
1.2設計的復用代碼的復用僅僅是軟件復用中最簡單的層次,與其相比,設計的復用能夠實現軟件系統模塊級別的復用,顯得更為強大。設計的復用主要體現在以下三個方面:(1)第一,從現有的系統中提取一些可以復用的部分,然后重寫運用到新系統當中。(2)第二,將對目前系統的設計重新運用到其他的系統中,從而實現整個軟件系統級別設計的復用。(3)第三,實現獨立于一些系統的軟件構件,這些軟件構件的復用級別比代碼復用的粒度更大,這種構件的抽象級別往往更高,從而使得構件能夠被廣泛運用到多個系統當中,提高構件的復用次數。2.3分析的復用與軟件設計的復用不同,軟件分析的復用運用于軟件的概要設計階段,與軟件的具體實現關聯比較少,因此實現軟件復用的幾率更加大。軟件的分析復用也可以有三種不同的方式:第一,抽象出現有軟件系統的重復分析部分,應用于其他軟件系統的分析上;第二,將分析的方法運用到不同的軟硬件平臺上,從而能夠產生不同的設計;第三,可以實現一些分析的構件,從而實現軟件分析階段的軟件復用。
1.4測試信息的復用測試過程也屬于軟件工程的重要模塊,因此在軟件的測試部分也可以應用軟件復用的方法,軟件測試信息的復用主要包括兩方面的內容:(1)第一,測試用例的復用,就是將一個系統的軟件測試用例,提取一些通用的部分運用到另一個軟件系統中,從而實現軟件測試用例的復用。(2)第二,測試過程信息的復用,軟件測試可以通過軟件自動化測試工具記錄一些相關的測試信息,這些測試信息可以為其他系統的測試提供參考。這兩種方式都可以實現軟件測試信息的復用。
2實現軟件復用的相關技術
“C”是很多高校普遍開設的一門課程,大部分學校教學方法大同小異:課堂講授+上機實驗,教學目標也集中于讓學生掌握C的各種重難點,比如數組、函數、指針等。其實不同專業人才培養目標中本課程的作用差異較大,采用模式化的教學方法和雷同的教學目標是不合理的。此外很多教學方法忽略了編程思想鍛煉,局限于講授語言本身,變成了教“語言”而不是“程序設計”。
1.2學生動手應用能力較弱
多年來,大部分學生學習完本課程后,仍難以針對一個簡單應用編制程序,此問題十分普遍。一般C語言教材,都是先介紹程序設計基礎知識,然后介紹各種數據類型和輸入輸出等語句,由于內容枯燥,因此學生逐漸喪失了學習興趣,甚至不愿上機,浪費了寶貴的實驗機會。此外各種例題、習題也是數學性較強或者演示性質較強,比如牛頓迭代、水仙花數、10整數排序等,這些內容和實際應用關系相去甚遠。
1.3未體現卓越工程師培養特色
如前所述,卓越工程師培養的不僅是一個程序員,更重要的是培養學生具有扎實的理論基礎和創新能力,為進一步從事設計、架構規劃打基礎。由于課時所限,計算機專業的一些理論課程如自動機、組合數學等一般未納入軟件工程的培養方案,但對于卓越工程師而言,初步學習這些內容是必要的。此時如果在相關課程中融合部分上述知識將大有益處。
1.4沒有為后續課程打下良好基礎
一方面由于例題和習題所限,在學習“C語言”時學生未能充分理解軟件工程的一些重要思想如模塊化等,導致編程時思路混亂、僵硬。另外由于課時所限,結構、文件等章節經常被略講甚至不講,導致學生在后續課程學習時基礎薄弱。
2教學改革措施
針對上述問題,結合軟件工程卓越工程師培養目標,在近年來的教學實踐中我們采取了如下教學改革措施:
2.1實驗室授課
對于程序設計課程,學生在課堂聽講時,是一種靜態的信息接收過程。當講到各種知識點時,如果能夠即時編程驗證,將成倍地提高學生對信息的吸收消化效果。基于此,近年來我們努力實現了全程在實驗室機房授課,學生可以實時動手分析,教師也可以從講臺主機遠程指導、控制學生設備,效果良好。
2.2采用國外教材及引入軟件工程思想
“C”的國內教材大都偏向初學者,存在細節被過度簡化的問題,不利于實現培養面向實踐的工程師的目標。為此我們采用國外知名教材進行授課。該教材的最大特色是面向應用,對C語言的應用特征、程序設計的特色描述詳盡,例題及習題應用性很強,并且可結合軟件工程的基本思想進行講解,例如商品條碼校驗位計算、撲克牌發放及手牌比較、零件數據管理等。學生學習后,在后續應用性課程中能夠很快上手并進行拓展。
2.3編程思維訓練
我院“C”課程開設在大一上期,其目的是引導學生進入編程領域。因此在教學時,我們避免拘泥于C本身的語法細節,而是淡化其語言色彩,偏重講述如何利用程序語言來處理問題。在此列舉一例:很多C課程都會講授如何編程打印一個由星號組成的菱形。某些教材上給出的解法是將菱形分為上半部和下半部分,用兩個循環來打印,這種方法對學生思維訓練無太大幫助。筆者在授課時,采用了如下思路:將菱形放入一個二維坐標系(原點在左上角),畫出菱形所在區域邊界,由此寫出區域的解析表達式|x-3|+|y+3|≤3,從而得到程序循環中的核心判斷語句.
2.4有機引入計算機理論課程知識
如前所述,軟件工程專業一般不開設有限狀態機等理論課程,但是作為卓越工程師,掌握這些知識是必要的。為此我們在課程中有意識地引入了這方面的知識,給學生提供初步認知,為有意自學者提供基礎。例如,一直以來學生在學習“計算一個句子中單詞個數”這一經典程序時,總是不明所以。為此我們另辟蹊徑,采用如下方法講授。首先抽取問題核心:把句子看成是由字母序列和空格序列(單詞間可能有多個空格)交替組成的一個字符串。程序處理的方式,是對句子中的所有字符進行逐一掃描,然后在這個過程中判定單詞的出現,如出現則把計數變量加1。其次將問題抽象化:用有限狀態機來描述上述過程。其中“1”代表當前掃描字符“位于字母串中”這一狀態,“0”代表當前掃描字符“位于空格串中”這一狀態。當“掃描到字母”事件或者“掃描到空格”事件發生時,掃描器的狀會被改變,如圖箭頭所示。我們關心的是當處于狀態0時,“掃描到字母”事件發生的情況。此時意味著之前掃描到的是空格,現在是字母,即到了一個單詞起始處,故此時計數變量加1。然后引導學生將問題轉化為表格描述,(第一行表示事件,第一列表示狀態,中間單元格表示某事件發生后,應進行的狀態轉換及其他操作),進一步地可以精煉為(b)。由此可得到示流程圖。在此基礎上學生很容易寫出程序。這種教學法十分透徹,為學生今后自學相關知識打開了一扇大門。
2.5作業批改及考試規范化
為了避免傳統教學中學生作業及考試批改過程低效,分析困難,且難以發現問題的缺陷的情況,我們開發了一套C語言作業及考試批改系統,該系統通過代碼分析及用例執行等方式,客觀地對學生程序進行判定,一方面提高了教學效率,另一方面更重要的是促使學生養成良好的編程習慣,改變了以往在紙面上寫代碼的隨意性,從而培養起作為一個軟件工程卓越工程師必備的素質。
2軟件工程專業課程體系理論設計
以行業、企業實際對人才需求為引導,軟件工程專業畢業生真實就業情況調查為依托,地方高校軟件工程專業課程一線教師眾多教學研究成果為參考,專業教師在企業掛職學習經驗體會為借鑒,圍繞地方高校軟件工程專業課程教學體系存在事實問題,來對地方本科院校軟件工程課程體系建設進行設計建設。設計建議如下:
2.1學科建設
以專業相關的行業、企業人才的實際需求和當前使用的主流開發工具或技術為依托來不斷調整專業架構,優化專業人才培養方案,完善人才培養目標,對專業進行合理定位,系統性調整教學方式方法,從而實現以行業、企業對人才的需求來引導地方本科院校軟件工程專業的學科建設。
2.2校企辦學
學科建設以輸出滿足行業、企業需求合格的應用型人才為目標,通過校企聯合辦學,對學生進行定向培養、訓練,專業課程體系嵌入資格認證課程模塊,實訓課程以企業開發項目方式貫穿培養環節以達到提高專業人才的實際動手能力。
2.3師資建設
采取教師企業掛職鍛煉參與企業項目研究開發,共同承接開發項目等方式鍛煉提高師資隊伍實戰能力。教師在企業實戰經歷和相關經驗成果帶入到日常的教學環節,不僅能促進專業教師學術、科研能力提升,還能夠最大程度豐富、提高專業學科建設[2]。
3三層結構課程體系建設
軟件工程專業課程體系建設以工程教育理念為指導,項目實戰為背景,社會需求為導向,提高學生專業素養、理論知識體系以及實踐能力為宗旨。學生完整地專業培養環節結束后具有程序設計,系統分析,軟件設計、開發,項目管理,網絡和移動通信終端應用開發能力。課程體系模式結構如圖1所示。
3.1基礎理論由公共基礎課程和專業基礎課程構成:①公共基礎課程主要涵括地方高校各現行必修公共課程,②專業基礎課程是專業課程堅實的理論基礎,專業必修前導課程,是對軟件工程專業基本“計算”概念理解、掌握,問題計算求解能力和構建中小規模軟件系統綜合能力的初步培養。
3.2專業理論以市場對人才需求為導向、行業最新前沿技術為引領、專業骨干課程為核心、專業素質全面拓展和綜合素養整體提高為目標來對專業主干課程進行建設[3],主要包括以下幾類課程:
3.2.1面向行業認知能力培養課程主要包括對行業、企業認知學習以及計算機專業知識學習等專業認知方面課程。一般包括行業相關法律、法規,從業道德規范,行為準則,經營管理常規模式,軟件項目開發流程等認知類課程。
3.2.2計算機編程與算法設計能力課程算法設計類課程主要包含離散數學、數據結構、算法分析以及數據結構課程設計等方面的課程;編程課程主要包含C語言程序設計、面向對象程序設計等傳統程序設計語言課,還包括當下企業應用最為廣泛的,最流行的技術前沿課程。
3.2.3軟件工程專業系統分析課程系統分析能力課程主要包括操作系統、計算機網絡,軟件工程、數據庫原理等系統類課程。
3.2.4系統實現與集成能力課程系統實現與集成能力方面課程主要包括網絡編程、移動互聯開發編程、編譯技術、軟件開發以及軟件測試等課程[4]。
3.3實踐以校企聯合培養為手段,一至兩學年時長為周期,貼近企業實際需求為指導,綜合技能全面提高為目的來對專業學生進行實踐能力培養,方式如下:
3.3.1校企共同建設實訓課程以項目介入為主線,企業實際效益項目和高校產學研項目為實際授課主體。引進企業優秀項目人才或具有企業項目實戰經驗的教師來對專業人才展開課程實訓,全面提高學生專業技能水平,綜合素養。校企共同培養模式不但能夠提高學生工程實踐能力,知識轉化生產實際速度,同時反向激發學生探究、學習知識的熱情,最終提高就業競爭力[5]。
3.3.2合作企業崗位實訓針對畢業學生和部分專業老師做崗位綜合實訓:①學生崗位實訓:讓學生真實參與企業項目實戰,充分消化吸收前期所學理論和技能知識,進一步提升學生綜合能力,為就業夯實基礎。②老師崗位實訓:專業老師參與企業項目研發,并將企業項目開發經驗和技術進行梳理總結、編纂成冊,運用到實際日常教學環節,促進教學質量提高,有利于縮短理論轉化實際成果周期。
3.3.3校企合作運用項目方式指導學生做畢業論文(設計)畢業論文(設計)是對學生的專業知識掌握程度與提升高度的一次全面的考核,同時也是培養學生綜合運用所學知識,獨立地分析問題和解決問題的能力的一次全面的實訓。但是傳統的教育模式導致大多地方院校工科專業學生畢業論文流于形式,與實際脫節。通過與企業合作運用項目方式指導學生做畢業論文(設計)弱化學生對畢業論文(設計)的抵觸情緒,可以進一步讓學生了解行業企業實際運作規范及最新技術,進一步加強對學生實踐和技能能力的培養,為畢業后從容就業夯實基礎。
2研究認知規律與學生心理,強調案例化教學和探索式學習
《軟件工程》的知識是根據很多軟件開發過程中提煉出來的,對于缺乏軟件開發經驗的學生來說只是簡單的講授課本上的知識會讓學生理解不了。所以,首先收集軟件開發案例,然后將好的案例放到平時的理論課程中,學生通過了解軟件開發過程掌握軟件工程的思想和方法。教學過程應該注重鼓勵學生探索學習知識,啟發學生自己想辦法查閱資料,最好能夠和軟件企業的開發人員聊天接觸開發知識,體會一個工程師的工作。老師上課的時候喜歡“一言談”,這樣教學不受學生喜愛,如果增加課堂上的互動,可以使得教室內氣氛活躍、寬松,積極啟發學生多問問問題,針對問的比較多的問題進行專項訓練和專題報告。介紹學生了解網絡課程和網絡中的教學資源,激發學生學習興趣,讓學生自主學習。利用網絡聊天工具,創造機會和學生多交流,引導他們思考討論軟件工程的問題,這樣的話,老師由知識的灌輸者成為學習的引導者,學生學習興趣會提高,學習效果也得到了提升。
3根據課程特點結合實際開發因素進行實踐教學
實踐教學是本課程中一個重要的組成部分,它要求學生以開發團隊(一個團隊通常由3~5人組成)的方式開發一個具有一定規模的軟件系統,側重培養學生發現問題、獨立分析問題和解決問題的能力以及團隊合作精神,使學生初步體會到一個軟件開發項目全過程。課程實驗項目的軟件開發過程分成實驗準備、分析設計、編程測試和軟件交付等部分,具體要求如下:(1)準備實驗:實訓課堂中學生首先接觸到一個軟件描述,內容很簡單。學生自發的聯系隊友組成一個團隊,并且制定開發計劃。(2)分析設計:開發團隊根據軟件描述實現需求分析,最終形成需求分析規格說明。軟件需求規格說明完成后,設計軟件系統的總體框架,分模塊完成,每個團隊都將得到開發任務,最好能夠實現競爭性開發。(3)編程測試:得到任務的團隊,實現項目開發包括文檔,測試和調試代碼。(4)軟件交付:團隊集成的完整系統交給老師驗收。
4研究軟件工程環境
提供一個軟件開發項目對學生來說是不夠的,他們還需要一個符合軟件工程的開發環境,在這個環境里面體會軟件工程的思想和方法,怎樣這樣一個學生喜歡效果好的軟件開發工程環境呢?通過研究軟件工程應該具備的基本要素,軟件工程工具的使用引入課堂中來,特別是課程實驗項目中,學生可以使用管理工具,他們會發現各種制品控制在有序管理之下,使用他們建模和測試進行軟件分析、設計和測試效果要比沒用他們好很多。老師認真編寫規范的實驗指導書,包括開發過程模型、系列文檔模板、軟件編碼規范、段評審標準等,使實驗和實踐環節規范有序,改變了學生以往突出個人技巧的雜亂過程。
一、軟件工程實踐課程現狀分析
軟件工程實踐課是一門實踐性非常強的學科,但目前實踐教學體系與軟件產業需求以及專業培養目標十分不協調,實踐課程教學缺乏理論指導,產學脫節,所學內容大都比較陳舊落后;本學科教師掌握的學科內理論知識較多,實踐操作能力和教學經驗較少,導致軟件工程專業學生常常是紙上談兵,創新能力欠缺,實踐操作能力差,學科發展后勁不足。
二、優化軟件工程實踐課程的教學模式
軟件工程實踐課程的教學過程當中,加強工程實踐教學環節,提高解決實際問題的能力是培養軟件人才的主要目標。從以下幾個方面著手優化軟件工程實踐課程的教學模式。
1、注重教學理論與教學實踐相結合,采取多元化教學
在理論教學中,采取多元化教學方式,讓學生積極參與教學過程,激發學生學習興趣。例如,可采用多媒體課件+Mooc混合模式進行教學,強化課程相關理論,在教學同時進行Mooc制作,通過微信平臺等共享,使學生能夠及時對課程內容復習。同時開展豐富的教學實驗和社會實踐,在課堂教學當中,縮減理論教學時長,增加教學實踐,鍛煉學生實踐操作能力,
2、明確軟件工程技術發展方向,大力開展實踐案例教學
研究軟件工程技術發展方向,對軟件工程人才的培養意義重大。有時候,軟件工程將相關工程中引入管理工程學和系統工程學以促進軟件工程學的發展。軟件工程在技術上有如下基本要求:更好的適應操作環境,豐富的拓展接口,后期維護的方便性;軟件工程又具有軟件開發語言較豐富,軟件開發具有開放性等特點。軟件工程主要的發展方向是:可視化編程,web應用程序設計,數據庫管理,軟件測試,圖形圖像制作,多媒體制作等。因此,對軟件開發者提出了更高的要求,就需要在軟件工程實踐課程的教學優化過程中,著眼于全球化、模塊化、開放化加大教學優化力度,大力開展軟件工程實踐案例教學。多多設計貼近學生生活的工程化案例,且軟件生命周期的各個階段都應在工程化案例教學中得以體現。在設計軟件工程教學案例時,難度適中,模塊數量不易過多。
軟件工程專業技能訓練是實踐教學體系的著力點。在典型案例的講解過程中,引導學生能夠學會結合企業需求,兼顧多方面因素,使開發的軟件具有良好的兼容性,更加適眾,及時對軟件做好調試,更好的提高軟件工作效率;滿足客戶的個性化需求,在軟件內留有功能擴展接口等。在實踐案例教學過程中,培養學生的合作意識和團隊意識,完成案例分析到職場應用的有效過渡。
3、提高教師專業素養,構建新型軟件工程人才培養模式
2針對本專業硬件實驗教學模式的探索
西安交通大學軟件學院結合專業特點,提出緊耦合層進式的硬件實驗教學體系,對實驗教學做出了一些有益的嘗試和探索。
2.1構建新的硬件實驗教學體系,開展層次化的實驗教學
軟件工程專業和傳統的計算機專業以培養計算機軟硬件設計與開發的研發人員的培養目標有所不同,所以在硬件課程以及硬件實驗課程體系上,兩個專業的定位應有所區別。西安交大軟件學院根據培養目標的要求,本著硬件為軟件所用的宗旨,開設的硬件課程有數字邏輯與系統設計、匯編與接口技術、計算機組織與結構、嵌入式系統與軟件開發等。經過幾年的教學改革實踐,我們認為實驗教學不能完全依附于課堂教學,而應該在緊密聯系課堂教學的前提下,有目的地開設獨立的實驗課,才能更好地配合理論課教學,充分發揮實驗教學培養學生獨立工作能力的優勢。在實踐過程中,我們恪守“掌握基礎是重點、研究創新是升華”理念。首先必須保證絕大多數人能接受基本實驗技能的訓練,不盲目跟風式開展開放性實驗。實踐證明初始階段就進行開放性實驗往往會讓學習能力不強的學生不知從何下手,失去了研究實驗的興趣,從而背離了進行實驗教學的初衷。我們的思路是穩扎穩打,逐步推進。我們勾畫了以數字邏輯實驗為基礎,以嵌入式及SOPC(SystemonaProgrammableChip,可編程片上系統)實驗為終結,包含時序組合邏輯實驗、計算機部件實驗以及整機實驗為一體的計算機硬件實驗教學課程群。要求本科生從大學二年級到四年級硬件實驗內容不斷線、銜接連貫,并按學生興趣和能力有層次的提高;強調各門課程相互聯系緊密結合,分層次培養學生的獨立組織硬件實驗的能力、軟硬件綜合調試能力和綜合設計能力[4]。在此基礎上,我們提出了一種緊耦合層進式的硬件實驗教學體系,如圖1所示。在這種緊耦合層進式的實驗教學體系下,根據教學的不同要求,將實驗劃分為3個不同層次,即基礎性實驗、綜合設計實驗、研究創新實驗。其中,基礎性實驗主要指相關硬件課程的課內實驗,通常為8~16學時的必修性實驗課,通過這類實驗使學生初步掌握本門課程中基本實驗技能以及基本模塊的實現。綜合設計實驗主要是面向所有本科生開設的選修性實驗,一般為32學時,通過這些實驗要求學生整合各個基本模塊,進而能設計并實現簡單功能的電路或系統。按照學院學分設置及學分要求,基本上每個學生都會選擇2~3門硬件實驗課程,這樣學生都能對硬件底層具有一定的了解,對于普通的高級軟件應用開發基本夠用。最高層次的研究創新實驗,我們安排為開放性實驗,針對少數有余力且感興趣的學生,要求其能夠獨立地設計一些較為復雜且具有應用背景的課題,旨在對專業知識進行擴展并培養自身的創新能力,這類課程要求必須選修過相關實驗課程的學生,方能進行選修。
2.2緊密聯系理論課教學,采用以EDA技術為主的實驗教學環境
本專業的硬件理論課教學的宗旨是著重從系統角度來理解計算機的運作,著重培養學生對硬件系統的分析及應用能力,作為統一的教學體系,實驗教學也應圍繞這一主導思想。我們在實施硬件實驗教學時,更關注硬件部件是如何完成其設定功能,部件之間如何進行相互配合、協調運作,而弱化硬件內部具體物理實現。我們采用了EDA為主的硬件實驗教學方式,利用QUARTUS等功能強大的EDA開發工具、Verilog或VHDL硬件編程語言,配合相應實驗箱進行實驗功能設計、仿真及驗證,使學生基本不用關注硬件的具體實現,進一步簡化了硬件設計、測試等過程。其中數字邏輯與系統設計、計算機組織與結構、SOPC系統設計等實驗課程均利用QUARTUS工具進行開發,基于杭州康芯電子有限公司的KX_DG3B數字系統開發平臺和GW48系列FPGA開發平臺來進行實現,實驗環境上具有順承性,只要在硬件實驗起始課程中進行一次講解,學生就能輕車熟路地使用。這樣就避免每個老師都在EDA軟件的講解上耗費大量時間,其他課程老師則主要把精力放在本門課相關電路及部件的設計實現上,節約了寶貴的實驗內容講解的時間。EDA教學環境及FPGA平臺的使用,一方面可以提供的是虛擬器件和儀器,且開發平臺可反復編程,所需硬件連接較少,實驗設備不易損壞,使學生可以放開手腳大膽地進行實驗。另一方面,學生在課堂上完不成的實驗,可以在自己的計算機上裝載相應開發工具,利用課余時間繼續完成后跟隨下組實驗進行硬件驗證即可,實驗安排上就可以比較靈活。因此,利用EDA技術,學生很方便地開展綜合性、設計性、自主性的實驗,進而可完成大型硬件的原型設計,或進行創新性課題的研究,這將大大激發學生的學習興趣和熱情,提高學生硬件設計能力,從而改變目前學生硬件動手能力差的情況[5]。
2.3強調各課程實驗內容的耦合銜接與貫通,注重軟硬件之間的協同
構建緊耦合層進式的實驗教學體系,離不開各個實驗課程內容之間的關聯協調和貫通。計算機硬件實驗教學過程作為一個系統,其組成部分是每門課程的實驗內容。在選取實驗內容時,為避免實驗內容的孤立,既注重課程間知識的交叉滲透,又盡量體現知識體系的整體性和邏輯性。以“數字系統設計專題實驗”開放實驗為例,很多學生選擇用硬連線方式實現一個基本模型機,而同時在“計算機組織與結構專題實驗”中則要求學生基于微程序的思想來實現一個同樣功能的模型機,通過這兩者的實現比較,學生能直觀地映證出理論課上所講述的兩種方法實現CU時各自優缺點,透徹理解并牢固掌握該知識點。傳統的計算機硬件實驗課程的主要任務是驗證計算機的工作原理,以配合對應的計算機硬件理論課程,忽略了各實驗課程間的融合性,而技術的發展需要軟硬結合、軟件硬化或交融[6]。單純的軟件實驗和硬件實驗都不利于學生軟硬件綜合素質的培養,傳統的軟硬件設計相分離的設計方法已成為阻礙設計和實現復雜、大規模系統的關鍵因素。在“嵌入式系統與軟件開發專題實驗”以及“SOPC系統設計專題實驗”中,我們要求學生完成一個總的計算機軟硬件綜合設計的項目。以接近于實際應用環境,完成高質量綜合設計為訓練手段,使學生建立系統的概念與工程的概念。這樣一方面可以使學生從根本上了解計算機的整個硬件系統、軟件控制之間的協調機制,徹底打通軟件實驗與硬件實驗之間的壁壘,另一方面,這樣既有硬件也有軟件的題目也更能激發起軟件專業學生的學習興趣,發揮其編程方面的特長,提高學生的主動性及創新熱情。
2.4建立靈活的考核機制,滿足不同實驗類型的要求
對于實驗課程的考核,我們采用針對不同實驗類型實行不同考核機制的方法。對于課內的基礎性實驗,考核時堅持沿用傳統的課堂表現和實驗報告相結合的方式,現場表現采用單人單機現場演示,老師提問學生作答的方式,由老師根據學生考勤及現場表現給定分數。實驗報告的成績則細化對問題的分析能力以及文檔寫作能力等方面的要求給定。最終成績由這兩項按權值給定。對于綜合設計實驗,由于整個實驗內容往往由多個子實驗來組成,而且通常采用兩三個學生分組進行的形式,所以考核時應更為細致,也要由課堂表現和實驗報告兩部分綜合給出,但較之基礎性實驗標準不同。首先,課堂表現由老師評分以及小組成員互評兩項組成,要求在每次實驗中指導教師都認真地記錄學生的考勤及實驗表現,這里的實驗表現主要考查遵守實驗規則、設計能力,分析、解決問題能力以及對理論設計的實現能力等幾個方面。其次在實驗結束后,還要求學生撰寫實驗報告,實驗報告依據學生的總結能力、分析能力和寫作能力給出。創新設計型實驗一般也采用分組的形式,但最終成績是由實驗開發中幾個部分的考核成績綜合給出。選題準備階段的成績由指導教師根據學生提交系統選題報告,按照系統規模、難易程度、創新性及個人分工給出。設計階段的成績由學生提交系統設計報告和現場答辯兩部分給出。答辯類似于工程中的評審,需要通過學生講解、演示,回答在場所有學生及教師的質疑,一方面對項目可行性進行充分的推敲,另一方面使各組成員充分了解其他小組的思路及設計方法,對自己項目實施起到學習借鑒作用。系統實現調試階段成績由學生提交系統實現及測試報告給出。最后驗收階段由現場驗收和項目總結報告兩部分組成。上述多樣化的考核標準滿足了層進式課程體系中不同層次的考核要求,更加客觀地反映了學生的實踐能力和知識運用水平,提高了實驗教學的整體質量,達到了實踐創新的培養目標。
二、為信息使用者實時高效獲取多方信息提供可能
在傳統會計模式下,會計人員處理數據傳輸數據具有一定時滯,即時報告也受到技術與成本效益原則的約束。在軟件工程技術下,計算機自動快速處理使得及時獲得報告信息成為可能,其強大的綜合數據庫也使得根據管理層需要提取各種信息組合得以實現。無論是提供定期信息還是實時信息,綜合信息還是明細信息,技術上的限制已不復存在。在會計信息系統下,利用網絡傳遞電子數據,計算機處理數據,與實際經濟業務沒有或很少有時間上的延遲,而會計軟件不受會計分期限制,能即時反復處理數據,生成財務報告。管理層可根據需要在任何時間內得到最新的財務數據。另外財務軟件系統清晰地記錄了各項數據之間的勾稽關系,能夠更為便捷地提取相關項目并對其進行深入細致的分析。
三、提高了效率,解放了人力
受傳統手工操作能力的限制,會計工作需要多名會計人員分工協作才能完成數據處理。而專業財務軟件出現后,會計人員不再需要手工記賬、算賬和編制報表,在輸入記賬憑證后,憑證通過計算機進行傳遞并自動進行核算和編制報表工作,而經常性的賬務處理如固定資產折舊、各部門某些書刊費用分攤等能在每月自動核算,減少重復工作。這使得會計人員能從傳統的日常業務中解脫出來,更多致力于財務會計信息的深加工,注重財務監管、財務分析、戰略財務規劃等。
四、便于加強內部控制與外部監管
傳統手工會計系統的內部控制以人工控制實現,主觀性很強。而財務軟件的引入,使得內部控制兼具人工控制與程序控制的特點。財務軟件系統許多應用程序中包含了內部控制功能,比如對特殊交易事項需要具有相應權限人員授權,再未獲得授權時系統會進行控制與反映,這限制了某些人員擅自進行越權交易;再如軟件要求各項會計處理必須按照一定的程序來進行,能夠很好地規范某些違反規定的行為。另外現在企業實行電算化會計,也為外部監管工作帶來極大的便利。傳統會計數據通常采用紙質為載體,數據儲存不易,且占用大量空間,而會計電算化的實現,使得所有會計數據均以“比特”方式保存在磁性介質上,便于查找。基于網絡平臺的財務軟件能夠通過網絡進行數據傳輸,因此審計機構可以通過相應軟件進行遠程辦公,這樣既提高了工作效率,也節約了大量的工作經費。
2用戶方面
⑴養成計算機軟件維護的意識。對于多用戶而言,計算機軟件的維護似乎沒有什么實際意義,只要不影響到自己的工作,沒有必要去進行維護。⑵安裝防護能力強的殺毒軟件。為了保證計算機軟件的安全運行,安裝防護能力較強的殺毒軟件是必要的。⑶經常清理計算機內存。計算機內存過多也會影響軟件的安全性和運行效率,因而要定期進行計算機內存清理。對計算機內存進行清理包括對無用文件的清理,也包括對非常用軟件的清理,尤其要注意的是要盡量減少C盤的儲存數據。⑷經常對硬盤進行維護。對硬盤進行維護能減少垃圾數據對軟件的影響,維護硬盤主要在于:第一,定期對硬盤進行掃描、清理、木馬查殺等,清理廢棄的數據,減少對內存的占用。第二,要注意對重要文件進行備份,減少計算機風險。⑸養成文明上網的習慣。第一,不瀏覽不健康的網站,減少電腦接觸病毒的機會。第二,不打開來路不明的鏈接地址。第三,不進行“翻墻”行為,減少惡意木馬的攻擊。
3計算機軟件工程維護中需注意的問題
3.1促進軟件開發者和用戶的合作維護并不是某一方的工作,而是軟件開發者和用戶共同的課題。作為軟件開發者,應該不斷改進技術,在提高軟件使用性能的同時加強對軟件防護性技術的探索。作為用戶,應該在計算機使用過程中養成良好的軟件維護意識,并將工作過程中出現的問題反饋給計算機軟件開發者,以便在后期開發中改進相應技術。
3.2加強對相關軟件維護知識的宣傳為了提高用戶的計算機維護技術,應該加強維護知識的宣傳。首先,經營商應在用戶購買電腦時給予詳細的講解,讓用戶意識到軟件維護的重要性。第二,開發者應制訂詳細的維護說明書,減少用戶的疑惑。第三,網絡管理者可以在相應電腦界面給出維護建議,提醒用戶及時對電腦進行維護。
傳統軟件開發過程的主要組成部分是其開發周期模型。軟件生存期模型是軟件工程思想的具體化,是跨越軟件生存期的系統開發、運行、維護所實施的全部活動和任務的過程框架。傳統典型的幾種生命周期模型,包括瀑布模型、增量模型、演化模型和螺旋模型等多種。在軟件應用開發過程中,每種模型都有其不足之處。其特性不符合軟件應用開發的初始需求不明晰、快速開發、特性經常變化等特點。瀑布模型的優點是清楚地標識出了軟件開發的階段。它采用自頂向下逐步求精的方式把整個開發過程分成不同的階段,每個階段的工作都很明確,因此便于控制開發過程。當所有的階段都完成之后,該軟件的開發過程也隨之結束。在軟件應用開發方面,瀑布模型的缺點正是它自身的順序性所導致的。實際的軟件應用開發過程中,在需求階段很難把用戶的需求完全明確下來,因此,當需求變更時將會導致階段反復,而且都要重復需求、設計、編碼、測試等過程。
1.2軟件應用模型更新
隨著網絡技術和Interact的迅速發展,大量系統都是基于www的。這些系統的開發、維護和管理需要新的方法,這些方法有別于傳統的軟件工程方法。傳統軟件工程方法和技術應用已經無法直接用到基于軟件的系統開發中。當企業向面向對象的軟件應用開發技術轉向時,支持軟件開發的活動也必然要有所改變,即意味要改變開發過程、資源和組織結構。面向對象的軟件應用開發需要新的、符合其特點的軟件工程過程。
2軟件工程過程
2.1軟件工程過程模型組成
針對軟件工程應用的特點,以及軟件應用系統的開發和傳統軟件開發的顯著區別上,本文提出了軟件工程過程模型,作為軟件應用的開發框架。軟件工程主要包括開發過程模型、項目管理模型及組織公共模型等組成部分。開發過程模型介紹了開發的生命周期;項目管理過程介紹了項目管理的基本流程、項目管理方法的建立,可以大大地增加組織在項目管理方面不斷成功的可能性;二者交叉部分是組織的公共過程。項目管理過程貫穿軟件開發過程的始終。
2.2軟件開發過程
本過程模型基于迭代思想,一次迭代包括了生成一個可執行版本的開發活動,還有使用這個版本所必需的其他輔助成分,如版本描述、用戶文檔等。因此一個開發迭代在某種意義上是在所有工作流中的一次完整的經過,這些工作流至少包括:需求、分析和設計、實現、測試、等,其本身就像一個小型的瀑布項目。在軟件開發過程中,包括軟件工程人員、如見需求、軟件設計、軟件實現和軟件測試幾個部分。軟件工程人員則又可以分為程序開發人員、質量管理人員、項目管理人員、內容提供人員和客戶等等。在這幾個環節中,軟件工程人員是基礎,軟件需求是動力,軟件設計和軟件測試是手段,軟件實現是目的,幾個環節缺一不可。以下僅簡要介紹軟件測試的內容。軟件測試可以分為多種,包括性能測試、功能測試、安全性測試、兼容性測試和可用性測試等等。在軟件工程過程中,基于軟件系統的測試、確認和驗收是一項重要而富有挑戰性的工作.基于軟件的應用系統的測試與傳統的軟件測試不同,不但需要檢查和驗證是否按照設計的要求運行,而且還要評價系統在不同用戶的瀏覽器的顯示是否合適。重要的是,還要從最終用戶的角度進行安全性和可用性測試。因此,我們必須為測試和評估復雜的基于軟件的系統,研究新的方法和技術。
3軟件工程項目管理
3.1項目管理概念
軟件項目管理(WebbasedProjectManagement,WPM),即以軟件應用程序為主要表現方式的架構來進行的項目設計及管理,這樣的架構中包含了瀏覽器、網絡和軟件服務器等關鍵主體,主要體現在網站設計、以瀏覽器為客戶端的軟件應用程序開發等項目管理中。隨著軟件項目的規模不斷加大、參與人員的增多、對規范性的要求愈加嚴格,軟件開發已經告別了個人英雄主義的模式,工程化的軟件開發時代已經來臨。由此,項目管理開始逐步地在軟件研發各項活動中處于核心地位。軟件項目管理又可以分為項目準備過程、策劃與計劃過程、啟動過程、跟蹤管理過程和關閉過程。
3.2項目管理過程
首先是項目準備,項目準備包括外部項目準備和內部項目準備,主要是準備項目招標的方案,分析項目的可行性。其次是項目啟動,這一階段主要是根據招標內容設計軟件工程的計劃方案。再次是項目計劃,主要是為軟件項目所需要的人才和技術設備做策劃。接著是項目跟蹤,即根據計劃內容對整個軟件工程的設計過程做評估。最后是項目結束,項目檢測通過后驗收。軟件工程過程不是建立后就一成不變的,它需要在實踐過程中持續改進。當企業在項目管理上走向成熟,并達到了一定程度的成功時,就獲得了可持續性競爭優勢.然而,企業的競爭者不會坐視這些,他們必然也在不斷進步。