和13岁女生发关系要赔偿吗,解开老师裙子猛烈进入动漫,国产精品久久久久久久久久红粉,麻花豆传媒国产剧mv免费软件

期刊大全 雜志訂閱 SCI期刊 期刊投稿 出版社 公文范文 精品范文

軟件工程范文

時間:2022-04-29 01:36:36

序論:在您撰寫軟件工程時,參考他人的優秀作品可以開闊視野,小編為您整理的7篇范文,希望這些建議能夠激發您的創作熱情,引導您走向新的創作高度。

第1篇

【關鍵詞】需求分析;面向對象;UNL建模;系統設計

【中圖分類號】TP 【文獻標識碼】A

【文章編號】1007-4309(2013)02-0113-2

一、軟件工程定義

軟件工程一直以來都缺乏一個統一的定義,很多學者、組織機構都分別給出了自己的定義:

BarryBoehm:運用現代科學技術知識來設計并構造計算機程序及為開發、運行和維護這些程序所必需的相關文件資料。

IEEE在軟件工程術語匯編中的定義:軟件工程是:1.將系統化的、嚴格約束的、可量化的方法應用于軟件的開發、運行和維護,即將工程化應用于軟件;2.在1中所述方法的研究。FritzBauer在NATO會議上給出的定義:建立并使用完善的工程化原則,以較經濟的手段獲得能在實際機器上有效運行的可靠軟件的一系列方法。目前比較認可的一種定義認為:軟件工程是研究和應用如何以系統性的、規范化的、可定量的過程化方法去開發和維護軟件,以及如何把經過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來。

《計算機科學技術百科全書》中的定義:軟件工程是應用計算機科學、數學及管理科學等原理,開發軟件的工程。軟件工程借鑒傳統工程的原則、方法,以提高質量、降低成本。其中,計算機科學、數學用于構建模型與算法,工程科學用于制定規范、設計范型(paradigm)、評估成本及確定權衡,管理科學用于計劃、資源、質量、成本等管理。

比較認可的一種定義認為:軟件工程是研究和應用如何以系統性的、規范化的、可定量的過程化方法去開發和維護軟件,以及如何把經過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來。我認為,軟件工程是一門綜合了計算機,數學等多學科的課程,它涵蓋了數據庫,程序設計語言,軟件開發等多方面,它的發展直接帶動了經濟和社會的發展。

二、軟件工程的原則

軟件工程的原則是指圍繞工程設計、工程支持以及工程管理在軟件開發過程中必須遵循的原則。軟件工程的原則有以下四項軟件工程師基本原則:

1.選取適宜開發范型

該原則與系統設計有關。在系統設計中,軟件需求、硬件需求以及其他因素之間是相互制約、相互影響的,經常需要權衡。因此,必須認識需求定義的易變性,采用適宜的開發范型予以控制,以保證軟件產品滿足用戶的要求。

2.采用合適的設計方法

在軟件設計中,通常要考慮軟件的模塊化、抽象與信息隱蔽、局部化、一致性以及適應性等特征。合適的設計方法有助于這些特征的實現,以達到軟件工程的目標。

3.提供高質量的工程支持

“工欲善其事,必先利其器”。在軟件工程中,軟件工具與環境對軟件過程的支持頗為重要。軟件工程項目的質量與開銷直接取決于對軟件工程所提供的支撐質量和效用。

4.重視開發過程的管理

軟件工程的管理,直接影響可用資源的有效利用,生產滿足目標的軟件產品,提高軟件組織的生產能力等問題。因此,僅當軟件過程得以有效管理時,才能實現有效的軟件工程。這一軟件工程框架告訴我們,軟件工程的目標是可用性、正確性和合算性;實施一個軟件工程要選取適宜的開發范型,要采用合適的設計方法,要提供高質量的工程支撐,要實行開發過程的有效管理;軟件工程活動主要包括需求、設計、實現、確認和支持等活動,每一活動可根據特定的軟件工程,采用合適的開發范型、設計方法、支持過程以及過程管理。根據軟件工程這一框架,軟件工程學科的研究內容主要包括:軟件開發范型、軟件開發方法、軟件過程、軟件工具、軟件開發環境、計算機輔助軟件工程(CASE)及軟件經濟學等。

三、軟件工程的目標

軟件工程的目標是:在給定成本、進度的前提下,開發出具有可修改性、有效性、可靠性、可理解性、可維護性、可重用軟件工程性、可適應性、可移植性、可追蹤性和可互操作性并且滿足用戶需求的軟件產品。追求這些目標有助于提高軟件產品的質量和開發效率,減少維護的困難。下面分別介紹這些概念:

1.可修改性(modifiablity)

容許對系統進行修改而不增加原系統的復雜性。它支持軟件的調試與維護,是一個難以達到的目標。

2.有效性(efficiency)

軟件系統能最有效地利用計算機的時間資源和空間資源。各種計算機軟件無不將系統的時/空開銷作為衡量軟件質量的一項重要技術指標。很多場合,在追求時間有效性和空間有效性方面會發生矛盾,這時不得不犧牲時間效率換取空間有效性或犧牲空間效率換取時間有效性。時/空折衷是經常出現的。有經驗的軟件設計人員會巧妙地利用折衷概念,在具體的物理環境中實現用戶的需求和自己的設計。

3.可靠性(reliability)

能防止因概念、設計和結構等方面的不完善造成的軟件系統失效,具有挽回因操作不當造成軟件系統失效的能力。對于實時嵌入式計算機系統,可靠性是一個非常重要的目標。因為軟件要實時地控制一個物理過程,如宇宙飛船的導航、核電站的運行,等等。如果可靠性得不到保證,一旦出現問題可能是災難性的,后果將不堪設想。因此在軟件開發、編碼和測試過程中,必須將可靠性放在重要地位。

4.可理解性(understandability)

系統具有清晰的結構,能直接反映問題的需求。可理解性有助于控制軟件系統的復雜性,并支持軟件的維護、移植或重用。

5.可維護性(maintainability)

軟件產品交付用戶使用后,能夠對它進行修改,以便改正潛伏的錯誤,改進性能和其他屬性,使軟件產品適應環境的變化,等等。由于軟件是邏輯產品,只要用戶需要,它可以無限期的使用下去,因此軟件維護是不可避免的。軟件維護費用在軟件開發費用中占有很大的比重。可維護性是軟件工程中一項十分重要的目標。軟件的可理解性和可修改性有利于軟件的可維護性。

6.可重用性(reusebility)

概念或功能相對獨立的一個或一組相關模塊定義為一個軟部件。軟部件可以在多種場合應用的程度稱為部件的可重用性。可重用的軟部件有的可以不加修改直接使用,有的需要修改后再用。可重用軟部件應具有清晰的結構和注解,應具有正確的編碼和較低的時/空開銷。各種可重用軟部件還可以按照某種規則存放在軟部件庫中,供軟件工程師選用。可重用性有助于提高軟件產品的質量和開發效率、有助于降低軟件的開發和維護費用。從更廣泛的意義上理解,軟件工程的可重用性還應該包括:應用項目的重用,規格說明(也稱為規約)的重用,設計的重用,概念和方法的重用,等等。一般來說,重用的層次越高,帶來的效益也就越大。

7.可適應性(adaptability)

軟件在不同的系統約束條件下,使用戶需求得到滿足的難易程度。適應性強的軟件應采用廣為流行的程序設計語言編碼,在廣為流行的操作系統環境中運行,采用標準的術語和格式書寫文檔。適應性強的軟件較容易推廣使用。

8.可移植性(portability)

軟件從一個計算機系統或環境搬到另一個計算機系統或環境的難易程度。為了獲得比較高的可移植性,在軟件設計過程中通常采用通用的程序設計語言和運行環境支撐。對依賴于計算機系統的低級(物理)特征部分,如編譯系統的目標代碼生成,應相對獨立、集中。這樣,與處理機無關的部分就可以移植到其他系統上使用。可移植性支持軟件的課重用性和課適應性。

9.可追蹤性(tracebility)

根據軟件需求對軟件設計、程序進行正向追蹤,或根據程序、軟件設計對軟件需求進行逆向追蹤的能力。軟件可追蹤性依賴于軟件開發各個階段文檔和程序的完整性、一致性和可理解性。降低系統的復雜性會提高軟件的可追蹤性。軟件在測試或維護過程中或程序在執行期間出現問題時,應記錄程序事件或有關模塊中的全部或部分指令現場,以便分析、追蹤產生問題的因果關系。

四、學習軟件工程的必要性

軟件工程是信息社會不可或缺的學科,對于軟件及系統的開發更是不可不知,它告訴我們如何進行系統開發,一個系統的開發,最關鍵的是這個系統是用來做什么,也就是要進行需求分析,對于不同的用戶,同一個系統可能有不同的需求,所以,一定要做好需求分析,而軟件工程恰好告訴了我們如何進行需求分析。而開發一個系統,最主要的是系統和程序的設計,這些設計直接關系到這個系統的可靠性和有效性,這就要依靠軟件工程了,它告訴我們怎樣進行系統和程序的設計。學習軟件工程使我們掌握了軟件開發的方法,大大提高開發出來的軟件的可靠性和有效性。

【參考文獻】

[1]梅宏,等.淺論軟件技術發展[J].電子學報,2002(S1).

第2篇

關鍵詞:軟件工程 計算機領域 程序設計 開發工具 設計模式 生命周期、軟件開發

1 概述

軟件工程是研究和應用如何以系統性的、規范化的、可定量的過程化方法去開發和維護軟件,以及如何把經過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來的學科。這一學科包括許多的內容,具體來講有程序設計語言,數據庫,軟件開發工具,系統平臺,標準,設計模式等。當今社會,網絡化迅速發展,軟件的應用領域越來越廣。現在比較普遍的軟件有電子郵件,人機界面,辦公套件,操作系統,游戲等。目前,基本上每個行業都會某種程度的運用到計算機軟件。這些應用對于推動經濟和社會的發展起到了舉足輕重的作用,提高了工作效率,改善了人們的生活質量。

我們究竟是將軟件的開發看成一門科學,還是將其看成是一門工程,關于這個問題已經討論了很長時間了。事實上,軟件的開發具備這兩者的特征。但是我們不能將二者混淆了。大多數人認為軟件工程基于計算機科學和信息科學就像是傳統意義上的工程學之于物理和化學。在世界各個國家,尤其是美國大約有40%的軟件工程師都有計算機科學的學位。他們可能不經常運用到計算機科學上的知識,但是會經常運用到軟件工程上的知識。許多應用都需要軟件工程,在軟件開發的許多程序中也需要軟件工程。軟件工程的主要作用就是指導軟件項目的方方面面。在軟件工程中,軟件開發與各種市場活動緊密相連。軟件工程的方法學認為程序員在開發軟件的時候是處在一個團隊中的,而且在編寫程序時要符合軟件的需求,設計,以及客戶的利益。

伴隨著開發技術的不斷進步,軟件開發過程也在不斷的改進。從早期的瀑布式(Waterfall)的開發模型直到最近開始興起的敏捷開發方法(Agile),表現出來的是隨著時代的變化,軟件產業對于開發過程的認識也在不斷的變化,對于各種類型項目的理解方法也在發生著變化。在美國曾經有權威機構對軟件組織的績效做過評估,所得到結論是:軟件工程的專業分工不足,是造成品質低落、時程延誤、預算超支的最關鍵因素。2003年,The Standish Group年度報告指出,在他們調查的13522個專案中,有66%的軟件專案失敗、82%超出時程、48%推出時缺乏必需的功能,總計約550億美元浪費在不良的計劃、預算或軟件估算上。

2 軟件工程的需求分析

有一種觀點認為軟件工程是學習怎么做軟件的,對吧?我認為,這種觀點算對,但不是全對。得到一個軟件產品,自然是軟件工程的目的所在,但是軟件工程所包含的卻不僅僅是這些。就拿軟件業界比較常見的例子來給大家講一下,這個例子就是蓋房子,我們蓋房子,是不是就買塊地,然后準備好建材,就哐當哐當地開始建房子了呢?大家明白不是這樣,要建好一座房子,先要對土地進行測量勘察,確定可以在上面建房屋,之后還得先規劃出整個房子的藍圖來,接下來才是對根據藍圖開始建房子。建好房子后,還得經過一些檢測,比如甲醛有沒有超標啊,包工頭有沒有偷工減料啊,這些都合格之后才能交付使用。于是有人入住了,住久了,發現浴室漏水,那就得修補一下。再住久了,住了幾十年,房子舊得不成樣子了,這時候它的壽命也到了終點了。

軟件工程之所以叫軟件工程,就是因為它使用了工程學方法來幫助軟件開發,建筑也是一門工程學,所以它們之間是會有些共通之處的,不信?請看:首先,我們在對土地進行測量勘察的時候,是在確定它是否適宜建房子,在軟件工程上來講,這個術語叫“可行性分析”,可行性分析的任務就是確定開發這個軟件是否在技術上可以做到,在資金上有充足支持,在市場上能夠受歡迎,如果答案是肯定的,那么就可以繼續下一步的開發步驟。規劃出房子的藍圖,在軟件工程上被分為兩個過程:“需求分析”、“設計”。需求分析就是得到軟件需要做什么,需要實現什么功能。而設計就是告訴開發人員怎么實現這些功能。也就是規劃出軟件的一個藍圖,在“編碼”階段再對其進行實現,這就對應著建房的關鍵階段,就是按照藍圖蓋好房子啦。房子在入住前需要檢測是否合格,軟件在交付給用戶使用的時候自然也需要檢測是否合格,這個階段叫做“測試”。檢測合格了,那就可以交付給用戶使用,在市場上銷售。軟件不可能完美無缺,所以在使用過程中,一定會出現某些問題,這時候就要將問題提交給軟件開發人員,修復問題,這個階段就是軟件過程中的“維護”階段。過了一段時間,這段時間可能很長,也可能很短,這軟件已經不適應生產力的發展了,那么就可以正式宣告這軟件壽終正寢了,至此,軟件的生命周期才正式結束。

我們還要注意,軟件生命周期包括制定計劃、需求分析和定義、軟件設計、程序編碼、軟件測試、運行維護這六個階段,是指一個計算機軟件從功能確定、設計直到不再使用該軟件的全過程。

軟件工程,正是貫穿在一個軟件的整個生命周期中的。從開發某個軟件的計劃被提起或者立項,軟件工程就開始發揮著作用,用自己的一套方法體系,來指導軟件開發的整個過程。因此軟件工程不等于編程,編程只是軟件工程整個過程中的一個重要環節而已。據統計,在整個開發周期中,平均編碼這個過程只占了整個周期的大約30%的時間。

第3篇

英文名稱:Software Engineer

主管單位:遼寧省教育廳

主辦單位:東北大學;計算機軟件國家工程研究中心

出版周期:月刊

出版地址:遼寧省大連市

種:中文

本:大16開

國際刊號:1008-0775

國內刊號:21-1378/TP

郵發代號:8-198

發行范圍:國內外統一發行

創刊時間:1994

期刊收錄:

核心期刊:

期刊榮譽:

聯系方式

第4篇

關鍵詞:計算機軟件;軟件工程;開發軟件;軟件發展

中圖分類號:TP311.5

隨著軟件產業的不斷發展,計算機應用逐步滲透到社會的各個角落,使各行各業都發生了很大的變化。傳統的計算機學科逐步上升到計算科學。這同時也促使人們對軟件的品種、數量、功能和質量等提出了越來越高的要求。軟件的規模越大、越復雜,軟件開發越顯得力不從心。于是,業績開始重視軟件開發過程、方法、工具和環境的研究,軟件工程應用而生。20世紀90年代以來,軟件重用和軟件構件技術成為研究熱點,面向對象方法和技術成為軟件開發的主流技術。軟件工程知識為開發高品質的產品提供了理論和科學支撐,強調采用工程化的方式開發軟件。這些知識支持以精確地方式描述軟件工程產品,為產品及其相互關系的建模和推理提供了基礎,并為可預測的設計過程提供了依據。

1 計算機軟件

“軟件”這個詞匯于20世紀60年代被首次提出。一個完整的計算機系統由軟件和硬件組成。它們相互依存,缺一不可。IEEE給軟件定義為是計算機程序、規劃以及運行計算機系統可能需要的相關文檔和數據。其概念是隨著計算機的發展而得出進一步完善的,最先人們認為軟件就是程序,到了20世紀70年代,人們認為軟件不僅包括程序,還包括開發、使用、維護這些程序所需要的文檔。到了80年代,較為全面的軟件的定義才出現,包括計算機程序、實現程序所使用的方法、規則、相關聯的文檔、運行所需的數據等都是程序。

計算機的應用和功能的正常使用離不開硬件和軟件,只有硬件和軟件得到很好的組合,計算機才能正常工作,完成相應的任務。在計算機的資源配置上,既要考慮硬件資源又要考慮軟件資源。就軟件資源來看,它包括系統軟件和應用軟件。系統軟件的主要目的是實現對計算機的管理、監控和維護,包括自檢程序、操作系統等等。而應用軟件的主要目的是解決計算機當中的某些具體問題,實現對計算機的管理等功能,包括學習管理軟件、人事管理軟件等等。從軟件功能的角度來看,我們可以認為,軟件就是通過利用計算機本身提供的邏輯功能,合理組織計算機的工作,簡化或者替代人們在使用計算機過程中的工作環境。因此,對于計算機的各種程序來說,不管是支持計算機工作的程序,還是支持用戶使用的程序,它們都是軟件,如職場生存攻略提高工作效率的一些必備軟件:Photoshop、word、Excel、Dreamweaver等。

軟件特點有:(1)復雜性;(2)一致性;(3)可變性;(4)不可見性。軟件類型一是通用軟件,另一是定制軟件,是根據軟件服務對象的范圍,將其劃分為兩個類型。軟件危機是:(1)軟件維護費用急劇上升,直接威脅計算機應用的擴大;(2)軟件生產技術進步緩慢,是加劇軟件危機的重要原因。軟件生存周期是指一個軟件從提出需求開始直到該軟件報廢為止的整個時期,通常包括可行性分析和項目開發計劃、需求分析、概要設計、詳細設計、編碼、測試、維護等活動,它們將以適當地方式分配到不同階段去完成。

軟件開發是一個過程,是指軟件工程人員未獲得軟件產品在軟件工具支持下實施的一系列軟件工程活動。其開發過程包括獲取過程、供應過程、開發過程、操作過程、維護過程、管理過程和支持過程。其開發模型有:(1)瀑布模型;(2)快速原型模型;(3)噴泉模型;(4)增量模型;(5)螺旋模型;(6)形式化方法模型;(7)基于構件的開發模型。其開發方式是一種使用定義好的技術集及符號表示組織軟件生產的過程,包括:(1)結構化方式;(2)Jackson方法;(3)維也納開發方法;(4)面向對象開發方法。其開發工具一般指為了支持軟件人員開發和維護活動而使用的軟件。有RUP、RequisitepRro、Rose及Robot。

2 軟件工程

“軟件工程”自1968年首次提出軟件工程概念以來,已經40多年了。編程范型已經經歷了三次演變,軟件工程也從第一展到第三代。其概念提出那個年代就開發大型系統軟件用手工方式進行,其生產效率低、出錯率高。這種狀態不能滿足日益增長的軟件生產的需要,產生以下四個方面的問題:(1)軟件復雜性飛速增長;(2)軟件成本高;(3)開發周期長;(4)維護工作量大。即出現了“軟件危機”現象。軟件工程定義為將系統性的、規范化的、可定量的方法應用于軟件得開發、運行和維護,即將工程化應用到軟件上。

其有一個相似的概念,出現上個世紀70年代,是開發和維護軟件的規范化方法,其指導思想是以處理工程問題的方法處理軟件生產的全過程。其發展大致經過三個階段,包括程序設計時代、軟件時代、軟件工程時代。而軟件開發也大體經過三個階段,定義、開發、維護三個階段。隨著軟件工程的發展,軟件工程學出現,它是計算機科學、系統工程學、管理學、經濟學等等,既是邊緣學科,又是綜合性學科。

軟件工程目標有:(1)支付較低的開發成本;(2)達到要求的軟件功能;(3)取較好的軟件性能;(4)開發的軟件易于移植;(5)需要較低的維護費用;(6)能按時完成開發任務,及時交付使用;(7)開發的軟件可靠性高。其標準主要有三:一是FIPS 135是美國國家標準局的《軟件文檔管理指針》;二是NSAC--39是美國核子安全分析中心的《安全參數顯示系統的驗證與確認》;三是ISO 5807是國際標準化組織(現在已經成為中國國家標準)的《信息處理--數據流程圖、程序流程圖、程序網絡圖和系統資源圖的文件編制符號及約定》。

其標準層次有五個,從頂層到低層依次是國際標準、國家標準、行業標準、企業規范及項目(課題)規范。其標準級別也是五個,即國際標準、國家標準、行業標準、企業(機構)標準和項目(課題)標準。這是根據軟件工程,其標準制定的機構和標準適用的范圍有所不同分出的級別。軟件工程包括軟件開發技術和軟件工程項目管理兩大部分。第三代軟件工程:基于構件的軟件工程是以軟件服用為目標、領域工程為基礎,其開發過程一般包括四個階段,依次是領域分析和測試計劃定制、領域設計、建立可復用構件庫、按“構件集成模型”查找與集成構件。

今后,計算機軟件工程的不斷發展,給克服軟件危機帶來了希望。隨著面向對象編程力度的增大,軟件工程師技術再不斷進步,特別是構件開發的規范化與市場化,已經把軟件開發推進到一個新的階段,出現了“開發伴隨軟件復用,開發為了軟件復用”以及“軟件就是服務”等新思想。這些突出的成績,讓我們對計算機軟件方向的發展拭目以待。

參考文獻:

[1]史濟民,顧春華,鄭紅.軟件工程--原理?方法與應用[M].北京:高等教育出版社出版社,2009.

[2]劉冰,賴涵,瞿中,等.軟件工程實踐教程[M].北京:機械工業出版社,2009.

[3]麥中凡.計算機軟件技術基礎[M].北京:高等教育出版社,1999.

[4]錢樂秋,趙文耘.軟件工程[M].北京:清華大學出版社,2007.

第5篇

實際上,測試人員被測試搞得暈頭轉向,測試管理人員不知所措是常有的事情(相對來講,一些知名的大型跨國公司做的比較好)。這些主要和測試時間緊迫,測試質量與產品質量的標準很難度量有關——最可怕的不是對手厲害,而是未知的對手。要解決這些問題顯而易見要找到這些問題的根本原因,那就要從根本上說起,軟件測試是軟件工程的組成部分,脫離軟件工程框架的軟件測試是不可以想象的,軟件工程的工程思想和方法作用在軟件產品的每個階段,當然軟件測試也不能例外。換句話說,軟件工程的思想為軟件測試提供了基礎的思想和方法,任何的軟件測試不論在哪個階段都不應該脫離軟件工程的思想,孤立的去思考,設計,規劃,執行,并驗證。但實際上是,由于測試工作的繁忙(大多數是由缺少標準和規劃而無法控制所致),更多的時候,可能只是就問題論問題了,從而偏離了軟件測試的方向,使得測試質量不可控。

拋開具體的軟件工程的具體模型,一般的產品周期流程可以如下劃分

[圖片]

第6篇

近幾年,計算機軟件工程的應用領域日益廣泛,具體包括各種程序設計語言、數據庫技術、軟件設計模式、操作和數據指令的標準、應用系統平臺和軟件開發工具。鑒于傳統軟件工程存在的諸多缺限,還有功能對象的轉變和應用范圍的擴大。無論是作為軟件研發的開發商還是作為軟件直接應用的用戶都要進行軟件的升級。軟件升級需要達到幾點要求,包括要有非常高的工作效率,靠的住的安全性,增加軟件的應用壽命和能夠進行方便的修改重生成特性。

1.1軟件要具有高的工作效率

軟件升級幾乎涵蓋了所有軟件相關組成結構,要充分審核任何一個重要結構,做必要的改造。升級后軟件要明顯優于未升級前,對任務的處理時間要有較大的提升。具體來說就是,要對空間、時間等資源進行充分高效的利用,例如對計算機數據庫技術一定要充分挖掘數據的可利用價值。同時,始終保持用戶至上的理念,不斷提高用戶操作的便捷性是軟件升級最重要的目標。應該在原有的基礎上增加修改程序、組裝軟件和調整指令等必要的新功能。

1.2軟件要安全可靠

互聯網的廣泛應用方便了人們的工作生活,對計算機的廣泛應用起到了不可忽視的推動作用。但由于它的開放性也給黑客提供了作案方便。黑客善于利用應用軟件對計算機系統實施攻擊,通過對軟件代碼的反編譯,植入和修改破壞軟件安全性以達到個人的目的,使得用戶蒙受巨大的精神或經濟損失。所以軟件升級改造必須要考慮軟件的安全防御功能。

1.3盡量延長軟件的使用壽命

軟件開發設計前期調查,需求分析,開發,維護等多個階段,其過程復雜,需要投入大量的人力、物力和財力。所以從成本消耗的調度看,新軟件要盡量延長使用壽命,縮短產品更新換代的周期。就拿殺毒軟件而言,每年市場上銷售的殺毒軟件數量巨大,對就的軟件增加和完善功能必須要確保其在規定的時間內無需更換。同時,為了創造良好的經濟效益,使用周期也應該得到延長。

1.4方便修改重新生成

為了減少軟件開發的投入,還可從軟件后期維護著手。對于軟件后期維護也是軟件周期中花費最大的,只要設法減少這一階段的投入,就會大大減少軟件的成本。因此,開發軟件時考慮留有修改余地,使得軟件便于修改重新生成就顯得尤為有意義,另外也會有效的減少設計工程師的操作難度。

2計算機軟件工程升級策略考慮

2.1軟件工程設計要有科學性

軟件開發的第一階段就是設計,軟件工程的升級設計一定要以科學為指導。例如,對于研發程序代碼要考慮軟件模塊化。對外要考慮軟件的抽象和信息隱蔽特性,以及軟件的局部化、一致性原則和適應性等特征。選擇恰當的科學的設計方法,能夠為這些特征的實現提供方便,達到科學性設計這一目標,突出升級軟件后的優勢特征。

2.2要全面兼顧市場需求

軟件開發的直接目的就是服務于市場需求,一個脫離市場需求的軟件產品是對經濟資源的浪費。同樣,軟件的升級也要有市場需求為支持,在滿足市場基本需求的前提下,進行相關的研究和開發,才會使工作有價值,避免由于開發設計不當造成資源浪費。另外,作為計算機組成的兩大部分,軟件和硬件一直都存在計算機產品開發不可兼得的問題,無時無刻不逼迫使得軟件開發單位考慮兩者互相的影響與制約的關系,做出權衡。如此一來,面對具有多變性的市場,在采取有效控制之前,必須對市場有全面的掌握和理解,才能開發出更加滿足社會需要的軟件產品。

2.3把握智多種發展趨勢

2.3.1智能化智能化不僅出現在計算機科學領域,它是現代通信與信息技術、行業技術、計算機網絡技術和智能化控制技術綜合到一起針對某一方面的應用。在人工智能化應用與計算機領域的今天,這個趨勢必然會與現代通信技術、計算機網絡技術與現場總線的控制技術飛速發展,一起給人們的生產生活帶來巨大的變革。

2.3.2服務化隨著計算機軟件技術的發展和應用軟件的廣泛普及,計算機軟件技術及產品的服務化將成為一種大趨勢。未來,軟件開發商會以一種服務的形式提供軟件,利用網絡提供方式,將各種軟件放在服務器的主機上,客戶可根據選擇下載安裝某種應用軟件。當然客戶也可以與軟件開發商聯系,提出自己的要求,訂購軟件服務。通過網絡享受軟件和硬件資源,軟件維護升級等,使軟件真正的服務于人民。

2.3.3融合我國對工業發展策略調整以及傳統工業的升級,必然會加快電氣化、機械化和自動化這些硬設備向信息化、數字化和網絡化等軟設備轉變。計算機軟件技術的融合化是我國信息化和工業化融合的一支重要力量。隨著工業化不斷推進和傳統產業升級加快,工業軟件的需求會進一步加大,我國計算機軟件軟件產業會不斷發展壯大,推動計算機軟件技術融合,以適應發展需要。

2.3.4開放化隨著軟件工程的蓬勃發展,早期封閉性強的收費性軟件發展模式以慢慢不再適應大的形式。為了給提高計算機軟件質量的提高創建機遇,逐步打破軟件技術和知識產權的壟斷,開發化已變成不可阻擋的趨勢。計算機軟件源代碼的開放,將意味著軟件產品逐步標準化,這將有利于我國計算機軟件產業的更新換代和全面升級。在這種趨勢下,也勢必會使我國計算機軟件開發效率得到較大提高。

2.4提供工程化支持,強化升級管理

新軟件必須大幅增強軟件的使用價值,具有很強的軟件工程使用多用性,這些就需要軟件工程的支持。主要包括軟件工具和環境要對軟件工程有足夠的支持,以及充分保障軟件工程項目的質量、技術和開銷。這些都由對軟件工程所提供的支撐質量和效用所決定。軟件工程的管理作為另外一項比較重要的方面直接影響了對可用資源的有效利用,大幅提高軟件組織的生產單位產出率,生產出合格的軟件產品等問題。在參照市場需求下,提前做好準備,制定軟件工程的管理制度,加強新舊產品升級空隙的質量監督和管理是電子產品研發企業必須做好的工作。

3結束語

第7篇

關鍵詞:軟件工程;課程群;課程設計

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

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

軟件工程是計算機學科的重要學科分支,在本科計算機類各專業中都開設一些軟件工程的課程,在研究生教學中,無論是碩士還是博士,都設置軟件工程的研究方向,開設高一級的軟件工程課程。本文中,軟件工程課程群是指包括各層次的軟件工程類課程。另外,軟件工程又是一門發展非常迅速的學科,早年在研究生中講述的內容現在放在本科中講。因此,這些課程存在定位不明確,課程間內容交叉重復等問題。本文根據本科生和研究生兩個層次對軟件工程類課程的教學要求,闡述軟件工程課程群的定位、課程設置、主要課程的知識單元和知識點。

1定位

首先分析社會對各層次計算機專業學生在軟件工程方面的知識和能力要求。我們認為計算機類本科學生畢業后,主要從事計算機軟件的開發工作,他們應掌握軟件工程的基本概念、基本原理和基本方法,并能運用這些概念、方法、原理,參與和/或從事軟件開發的某些活動(如分析、設計、編碼、測試等)。軟件工程方向的研究生主要著重研究能力的培養,畢業后主要承擔系統分析員和/或系統設計員角色,甚至承擔項目經理的角色,他們應掌握軟件工程的研究動態,了解軟件工程最新的研究成果,具備有關軟件的系統分析、構架設計和軟件項目管理的知識和能力。

根據以上分析,我們認為,本科生軟件工程課程群應以軟件工程的基本概念、基本原理和基本方法為主線,使學生具備扎實的軟件工程基本理論知識、熟練的編程能力、較好的團隊合作能力和實驗能力,同時具備一定的分析與解決問題能力和創新能力。研究生軟件工程課程群應以研究課題為主線,使學生掌握軟件工程最新的研究動態,對其中若干個研究方向有深入的了解,具備較強的分析與解決問題能力和創新能力,以及基本的軟件項目組

織和管理能力。

2課程設置

軟件工程課程群按學生的層次可分為本科生軟件工程課程群和研究生軟件工程課程群,按課程類別可分為必修課和選修課。

根據上述定位,本科生軟件工程課程群的必修課包括軟件工程和軟件實踐,有些學校在軟件工程課中包括足夠的實踐時間,可將它們合并成一門軟件工程課。選修課可根據各校的特點開設不同的課程,如面向對象的分析與設計、軟件體系結構、基于構件的軟件開發、軟件測試等,也可將研究生的某些課程作為本科高年級學生的選修課。

研究生軟件工程課程群的必修課可包括高級軟件工程、軟件項目管理和專題討論,其中專題討論沒有固定的教材,它以若干專題(如軟件復用技術、模型驅動體系結構、軟件產品線等)的最新論文為主,以報告和討論的形式進行。選修課可根據導師的研究方向選擇合適的課程,如需求工程、軟件過程、形式方法等。

3教學內容

本節參照國外相關的資料,結合我們多年的教學實踐,給出軟件工程課程群中各必修課的知識單元。

3.1軟件工程(本科生)

本科軟件工程課程的內容應覆蓋教育部計算機科學與技術教學指導委員會制訂的計算機科學與技術本科專業規范(計算機科學方向)中有關軟件工程的主要知識單元,該課程以軟件工程的基本概念、基本原理和基本方法為主,著重國內比較流行的結構化分析與設計方法、面向對象分析與設計方法和常規的軟件測試方法。同時對一些較新的軟件開發模型、方法和技術(如基于構件的軟件開發模型和方法、敏捷開發方法、CMM&CMMI、Web工程等)做簡單的介紹,以便學生今后自學。

3.2軟件實踐(本科生)

該課程是本科軟件工程課程的一門后繼實驗課,以某種軟件開發方法(如面向對象方法)和軟件過程(如統一軟件過程RUP)為基礎,引導學生完成一個完整的軟件項目開發全過程,包括需求獲取、需求分析、系統設計、實現以及測試等基本步驟。該課程主要培養學生的分析與解決問題能力、團隊合作能力、實驗能力和創新能力

3.3高級軟件工程(研究生)

該課程選擇當今軟件工程研究的熱點課題作為主要內容,其知識單元可包括:基于構件的軟件工程、軟件產品線、軟件體系結構、模型驅動體系結構(MDA)、面向方面程序設計(AOP)、需求工程、面向對象測試技術、逆向工程和再工程、Agent技術、形式方法、高可信軟件,開源軟件等。值得注意的是,在一門高級軟件工程課程中很難詳細介紹上述所有的內容,各校可根據自己的特點和研究方向,選擇幾個(以3~5個為宜)知識單元作重點介紹,對其他知識單元可只做簡單的介紹。

下面給出幾個知識單元所包含的知識點。

基于構件的軟件工程(CBSE)主要包括:CBSE基本概念,軟件構件規格說明,構件模型,基于構件的開發過程,基于構件開發的語義完整性,構件組裝和集成,預測系統的可信度,軟件產品線體系結構中的構件,商用第三方構件(COTS)及構件獲取技術,基于構件的軟件體系結構,基于構件軟件的測試與質量保證,構件的可變性機制,軟件構件庫,構件交易,構件描述與檢索等。

軟件產品線(SPL)主要包括:軟件產品線的基本概念,軟件產品線的基本活動(核心資產開發,產品開發,管理),領域工程與應用系統工程,SPL經濟學,軟件產品線實踐域,軟件產品線實踐模式,產品線組裝,基于產品線的應用系統開發技術等。

軟件體系結構主要包括:軟件體系結構的原則和實踐,體系結構框架/方法,體系結構模型與MDA,集成框架,軟件體系結構設計與分析,體系結構風格,軟件體系結構文檔,軟件體系結構評估與確認,面向服務體系結構(SOA),體系結構模式,企業體系結構等。

模型驅動體系結構(MDA)主要包括:MDA基本概念,MDA規格說明,MDA模型(CIM,PIM,PSM),模型轉換,模型語言(如可執行的UML,對象約束語言OCL等),元建模,MDA過程,領域建模,系統模型,平臺無關建模,平臺特定的實現等。

3.4軟件項目管理(研究生)

該課程的知識單元包括:綜合管理,范圍管理,時間管理,成本管理,質量管理,人力資源管理,溝通管理,風險管理,采購管理,敏捷項目管理,外包管理,軟技能等。下面給出其中若干個知識單元所包含的知識點。

綜合管理:項目,項目范圍陳述,項目管理計劃(編制過程,內容),項目執行的管理,項目評價,項目的監督和控制,集成的變更控制,實施報告,配置管理,關閉項目。

范圍管理:啟動過程,項目選擇方法,項目合同,范圍管理計劃(編制過程,范圍陳述,范圍定義),創建WBS,范圍驗證過程,范圍蔓延,范圍變更控制過程,目標管理(MBO),影響曲線。

時間管理:活動定義過程,活動排序過程,圖示方法(優先圖示方法(PDM),箭頭圖示方法(ADM),條件圖示方法,圖形評價和評審技術(GERT), 項目網絡圖,關鍵路徑方法(CPM),計劃評價和評審技術(PERT)等),PERT對CPM的估算,活動資源估算,活動持續時間估算,估算工具,進度表開發過程,進度控制過程,凈價值術語和公式。

成本管理:資源計劃編制過程,成本估算(術語,過程,COCOMO模型,工具),成本管理計劃,成本預算過程,成本基線,項目投資需求,成本控制過程,實施度量,預測完成,凈價值術語和公式。

質量管理:質量計劃編制過程,質量保證計劃,過程改進計劃,質量保證過程,質量控制過程,統計質量控制(SQC),質量改進過程。

人力資源管理:人力資源計劃編制,組織計劃編制,項目管理中人的因素,責任委派矩陣,獲取項目組,員工獲取過程,項目管理者的角色和責任,項目組(建造過程),小組動力,管理項目組,角色與責任,領導風格,能力類型,沖突管理,6動機理論,小組性能估算,管理知識員工。

溝通管理:溝通計劃編制,溝通管理計劃,信息分發,溝通模型,溝通風格,溝通方法,溝通鏈接規則,溝通障礙,溝通技巧,績效報告,管理涉眾,管理收尾。

風險管理:風險管理計劃編制,實用方法,風險標識,風險分析(定性分析,可能性與風險影響,定量分析,靈敏性分析,決策樹分析,預期貨幣價值,概率方法),風險響應(計劃編制,工具與技術),可保險風險,風險監督與控制過程,影響曲線。

采購管理:采購計劃編制,購買和獲取計劃,合同計劃,成本補償合同,固定價格合同,工作陳述,申請計劃編制過程,請求供方響應,申請過程,供方選擇,源選擇過程,談判,合同,合同管理,合同變更控制,合同收尾。

敏捷項目管理:Agile宣言和原則,迭代與演化開發,產品業主,敏捷管理需求,敏捷估算與計劃編制,敏捷設計,敏捷文檔,敏捷軟件構造,敏捷編程,人員管理問題,敏捷質量保證,敏捷項目管理,項目評審,敏捷度量。

外包管理:識別全球業務機遇,組織模型與商業策略,全球項目的特征和挑戰,全球項目經理的技能,國際及多種文化的交融,IP保護與其他法律方面,采購道德規范,道德規范法規,試驗計劃,風險管理,軟件過程與實踐的改進,建立團隊,需求管理及客戶/供應商關系,開發方法學,全球軟件開發(GSD)與全球軟件工程(GSE),溝通、協調和協作,離岸項目的管理,克服距離和時間,文化交叉的處理,全球項目的安全問題,全球項目收尾,從業人員教育培訓及知識管理。

軟技能:領導能力,批判性思考,職業道德規范,自我激勵,誠實,小組工作,風險捕獲,適應性,人際關系,工作壓力承受、壓力管理,創造性,影響力,研究能力,問題解決能力,組織能力,多文化處理能力,學習能力,時間管理,口頭溝通,文字溝通,細心周到。

4小結

本文介紹了軟件工程課程群的設計,在具體實施時,可根據各校的特點,對上述課程設置、知識單元、知識點進行裁剪。下一步將繼續完善各課程的知識單元和知識點,為軟件工程課程群建設打好基礎。

參考文獻

[1] 教育部高等學校計算機科學與技術教學指導委員會. 計算機科學與技術本科專業規范[M]. 北京:高等教育出版社,2006 .

作者簡介

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

主站蜘蛛池模板: 海城市| 贵州省| 鸡泽县| 中卫市| 海淀区| 营口市| 和静县| 黄梅县| 鱼台县| 界首市| 鄯善县| 科技| 大竹县| 湖口县| 阿瓦提县| 香格里拉县| 巴东县| 梅州市| 大余县| 乌恰县| 阜平县| 胶南市| 兰西县| 昌宁县| 读书| 临汾市| 金堂县| 南宫市| 阿坝| 三门县| 阳信县| 兴化市| 天镇县| 建平县| 齐齐哈尔市| 宣威市| 比如县| 宜城市| 郧西县| 新兴县| 衡山县|