中文久久久字幕|亚洲精品成人 在线|视频精品5区|韩国国产一区

歡迎來到優(yōu)發(fā)表網(wǎng),期刊支持:400-888-9411 訂閱咨詢:400-888-1571股權(quán)代碼(211862)

購物車(0)

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

軟件工程范文

時(shí)間:2022-04-29 01:36:36

序論:在您撰寫軟件工程時(shí),參考他人的優(yōu)秀作品可以開闊視野,小編為您整理的7篇范文,希望這些建議能夠激發(fā)您的創(chuàng)作熱情,引導(dǎo)您走向新的創(chuàng)作高度。

軟件工程

第1篇

【關(guān)鍵詞】需求分析;面向?qū)ο?;UNL建模;系統(tǒng)設(shè)計(jì)

【中圖分類號】TP 【文獻(xiàn)標(biāo)識碼】A

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

一、軟件工程定義

軟件工程一直以來都缺乏一個(gè)統(tǒng)一的定義,很多學(xué)者、組織機(jī)構(gòu)都分別給出了自己的定義:

BarryBoehm:運(yùn)用現(xiàn)代科學(xué)技術(shù)知識來設(shè)計(jì)并構(gòu)造計(jì)算機(jī)程序及為開發(fā)、運(yùn)行和維護(hù)這些程序所必需的相關(guān)文件資料。

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

《計(jì)算機(jī)科學(xué)技術(shù)百科全書》中的定義:軟件工程是應(yīng)用計(jì)算機(jī)科學(xué)、數(shù)學(xué)及管理科學(xué)等原理,開發(fā)軟件的工程。軟件工程借鑒傳統(tǒng)工程的原則、方法,以提高質(zhì)量、降低成本。其中,計(jì)算機(jī)科學(xué)、數(shù)學(xué)用于構(gòu)建模型與算法,工程科學(xué)用于制定規(guī)范、設(shè)計(jì)范型(paradigm)、評估成本及確定權(quán)衡,管理科學(xué)用于計(jì)劃、資源、質(zhì)量、成本等管理。

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

二、軟件工程的原則

軟件工程的原則是指圍繞工程設(shè)計(jì)、工程支持以及工程管理在軟件開發(fā)過程中必須遵循的原則。軟件工程的原則有以下四項(xiàng)軟件工程師基本原則:

1.選取適宜開發(fā)范型

該原則與系統(tǒng)設(shè)計(jì)有關(guān)。在系統(tǒng)設(shè)計(jì)中,軟件需求、硬件需求以及其他因素之間是相互制約、相互影響的,經(jīng)常需要權(quán)衡。因此,必須認(rèn)識需求定義的易變性,采用適宜的開發(fā)范型予以控制,以保證軟件產(chǎn)品滿足用戶的要求。

2.采用合適的設(shè)計(jì)方法

在軟件設(shè)計(jì)中,通常要考慮軟件的模塊化、抽象與信息隱蔽、局部化、一致性以及適應(yīng)性等特征。合適的設(shè)計(jì)方法有助于這些特征的實(shí)現(xiàn),以達(dá)到軟件工程的目標(biāo)。

3.提供高質(zhì)量的工程支持

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

4.重視開發(fā)過程的管理

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

三、軟件工程的目標(biāo)

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

1.可修改性(modifiablity)

容許對系統(tǒng)進(jìn)行修改而不增加原系統(tǒng)的復(fù)雜性。它支持軟件的調(diào)試與維護(hù),是一個(gè)難以達(dá)到的目標(biāo)。

2.有效性(efficiency)

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

3.可靠性(reliability)

能防止因概念、設(shè)計(jì)和結(jié)構(gòu)等方面的不完善造成的軟件系統(tǒng)失效,具有挽回因操作不當(dāng)造成軟件系統(tǒng)失效的能力。對于實(shí)時(shí)嵌入式計(jì)算機(jī)系統(tǒng),可靠性是一個(gè)非常重要的目標(biāo)。因?yàn)檐浖獙?shí)時(shí)地控制一個(gè)物理過程,如宇宙飛船的導(dǎo)航、核電站的運(yùn)行,等等。如果可靠性得不到保證,一旦出現(xiàn)問題可能是災(zāi)難性的,后果將不堪設(shè)想。因此在軟件開發(fā)、編碼和測試過程中,必須將可靠性放在重要地位。

4.可理解性(understandability)

系統(tǒng)具有清晰的結(jié)構(gòu),能直接反映問題的需求??衫斫庑杂兄诳刂栖浖到y(tǒng)的復(fù)雜性,并支持軟件的維護(hù)、移植或重用。

5.可維護(hù)性(maintainability)

軟件產(chǎn)品交付用戶使用后,能夠?qū)λM(jìn)行修改,以便改正潛伏的錯(cuò)誤,改進(jìn)性能和其他屬性,使軟件產(chǎn)品適應(yīng)環(huán)境的變化,等等。由于軟件是邏輯產(chǎn)品,只要用戶需要,它可以無限期的使用下去,因此軟件維護(hù)是不可避免的。軟件維護(hù)費(fèi)用在軟件開發(fā)費(fèi)用中占有很大的比重??删S護(hù)性是軟件工程中一項(xiàng)十分重要的目標(biāo)。軟件的可理解性和可修改性有利于軟件的可維護(hù)性。

6.可重用性(reusebility)

概念或功能相對獨(dú)立的一個(gè)或一組相關(guān)模塊定義為一個(gè)軟部件。軟部件可以在多種場合應(yīng)用的程度稱為部件的可重用性。可重用的軟部件有的可以不加修改直接使用,有的需要修改后再用??芍赜密洸考?yīng)具有清晰的結(jié)構(gòu)和注解,應(yīng)具有正確的編碼和較低的時(shí)/空開銷。各種可重用軟部件還可以按照某種規(guī)則存放在軟部件庫中,供軟件工程師選用??芍赜眯杂兄谔岣哕浖a(chǎn)品的質(zhì)量和開發(fā)效率、有助于降低軟件的開發(fā)和維護(hù)費(fèi)用。從更廣泛的意義上理解,軟件工程的可重用性還應(yīng)該包括:應(yīng)用項(xiàng)目的重用,規(guī)格說明(也稱為規(guī)約)的重用,設(shè)計(jì)的重用,概念和方法的重用,等等。一般來說,重用的層次越高,帶來的效益也就越大。

7.可適應(yīng)性(adaptability)

軟件在不同的系統(tǒng)約束條件下,使用戶需求得到滿足的難易程度。適應(yīng)性強(qiáng)的軟件應(yīng)采用廣為流行的程序設(shè)計(jì)語言編碼,在廣為流行的操作系統(tǒng)環(huán)境中運(yùn)行,采用標(biāo)準(zhǔn)的術(shù)語和格式書寫文檔。適應(yīng)性強(qiáng)的軟件較容易推廣使用。

8.可移植性(portability)

軟件從一個(gè)計(jì)算機(jī)系統(tǒng)或環(huán)境搬到另一個(gè)計(jì)算機(jī)系統(tǒng)或環(huán)境的難易程度。為了獲得比較高的可移植性,在軟件設(shè)計(jì)過程中通常采用通用的程序設(shè)計(jì)語言和運(yùn)行環(huán)境支撐。對依賴于計(jì)算機(jī)系統(tǒng)的低級(物理)特征部分,如編譯系統(tǒng)的目標(biāo)代碼生成,應(yīng)相對獨(dú)立、集中。這樣,與處理機(jī)無關(guān)的部分就可以移植到其他系統(tǒng)上使用??梢浦残灾С周浖恼n重用性和課適應(yīng)性。

9.可追蹤性(tracebility)

根據(jù)軟件需求對軟件設(shè)計(jì)、程序進(jìn)行正向追蹤,或根據(jù)程序、軟件設(shè)計(jì)對軟件需求進(jìn)行逆向追蹤的能力。軟件可追蹤性依賴于軟件開發(fā)各個(gè)階段文檔和程序的完整性、一致性和可理解性。降低系統(tǒng)的復(fù)雜性會提高軟件的可追蹤性。軟件在測試或維護(hù)過程中或程序在執(zhí)行期間出現(xiàn)問題時(shí),應(yīng)記錄程序事件或有關(guān)模塊中的全部或部分指令現(xiàn)場,以便分析、追蹤產(chǎn)生問題的因果關(guān)系。

四、學(xué)習(xí)軟件工程的必要性

軟件工程是信息社會不可或缺的學(xué)科,對于軟件及系統(tǒng)的開發(fā)更是不可不知,它告訴我們?nèi)绾芜M(jìn)行系統(tǒng)開發(fā),一個(gè)系統(tǒng)的開發(fā),最關(guān)鍵的是這個(gè)系統(tǒng)是用來做什么,也就是要進(jìn)行需求分析,對于不同的用戶,同一個(gè)系統(tǒng)可能有不同的需求,所以,一定要做好需求分析,而軟件工程恰好告訴了我們?nèi)绾芜M(jìn)行需求分析。而開發(fā)一個(gè)系統(tǒng),最主要的是系統(tǒng)和程序的設(shè)計(jì),這些設(shè)計(jì)直接關(guān)系到這個(gè)系統(tǒng)的可靠性和有效性,這就要依靠軟件工程了,它告訴我們怎樣進(jìn)行系統(tǒng)和程序的設(shè)計(jì)。學(xué)習(xí)軟件工程使我們掌握了軟件開發(fā)的方法,大大提高開發(fā)出來的軟件的可靠性和有效性。

【參考文獻(xiàn)】

[1]梅宏,等.淺論軟件技術(shù)發(fā)展[J].電子學(xué)報(bào),2002(S1).

第2篇

關(guān)鍵詞:軟件工程 計(jì)算機(jī)領(lǐng)域 程序設(shè)計(jì) 開發(fā)工具 設(shè)計(jì)模式 生命周期、軟件開發(fā)

1 概述

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

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

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

2 軟件工程的需求分析

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

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

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

軟件工程,正是貫穿在一個(gè)軟件的整個(gè)生命周期中的。從開發(fā)某個(gè)軟件的計(jì)劃被提起或者立項(xiàng),軟件工程就開始發(fā)揮著作用,用自己的一套方法體系,來指導(dǎo)軟件開發(fā)的整個(gè)過程。因此軟件工程不等于編程,編程只是軟件工程整個(gè)過程中的一個(gè)重要環(huán)節(jié)而已。據(jù)統(tǒng)計(jì),在整個(gè)開發(fā)周期中,平均編碼這個(gè)過程只占了整個(gè)周期的大約30%的時(shí)間。

第3篇

英文名稱:Software Engineer

主管單位:遼寧省教育廳

主辦單位:東北大學(xué);計(jì)算機(jī)軟件國家工程研究中心

出版周期:月刊

出版地址:遼寧省大連市

種:中文

本:大16開

國際刊號:1008-0775

國內(nèi)刊號:21-1378/TP

郵發(fā)代號:8-198

發(fā)行范圍:國內(nèi)外統(tǒng)一發(fā)行

創(chuàng)刊時(shí)間:1994

期刊收錄:

核心期刊:

期刊榮譽(yù):

聯(lián)系方式

第4篇

關(guān)鍵詞:計(jì)算機(jī)軟件;軟件工程;開發(fā)軟件;軟件發(fā)展

中圖分類號:TP311.5

隨著軟件產(chǎn)業(yè)的不斷發(fā)展,計(jì)算機(jī)應(yīng)用逐步滲透到社會的各個(gè)角落,使各行各業(yè)都發(fā)生了很大的變化。傳統(tǒng)的計(jì)算機(jī)學(xué)科逐步上升到計(jì)算科學(xué)。這同時(shí)也促使人們對軟件的品種、數(shù)量、功能和質(zhì)量等提出了越來越高的要求。軟件的規(guī)模越大、越復(fù)雜,軟件開發(fā)越顯得力不從心。于是,業(yè)績開始重視軟件開發(fā)過程、方法、工具和環(huán)境的研究,軟件工程應(yīng)用而生。20世紀(jì)90年代以來,軟件重用和軟件構(gòu)件技術(shù)成為研究熱點(diǎn),面向?qū)ο蠓椒ê图夹g(shù)成為軟件開發(fā)的主流技術(shù)。軟件工程知識為開發(fā)高品質(zhì)的產(chǎn)品提供了理論和科學(xué)支撐,強(qiáng)調(diào)采用工程化的方式開發(fā)軟件。這些知識支持以精確地方式描述軟件工程產(chǎn)品,為產(chǎn)品及其相互關(guān)系的建模和推理提供了基礎(chǔ),并為可預(yù)測的設(shè)計(jì)過程提供了依據(jù)。

1 計(jì)算機(jī)軟件

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

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

軟件特點(diǎn)有:(1)復(fù)雜性;(2)一致性;(3)可變性;(4)不可見性。軟件類型一是通用軟件,另一是定制軟件,是根據(jù)軟件服務(wù)對象的范圍,將其劃分為兩個(gè)類型。軟件危機(jī)是:(1)軟件維護(hù)費(fèi)用急劇上升,直接威脅計(jì)算機(jī)應(yīng)用的擴(kuò)大;(2)軟件生產(chǎn)技術(shù)進(jìn)步緩慢,是加劇軟件危機(jī)的重要原因。軟件生存周期是指一個(gè)軟件從提出需求開始直到該軟件報(bào)廢為止的整個(gè)時(shí)期,通常包括可行性分析和項(xiàng)目開發(fā)計(jì)劃、需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼、測試、維護(hù)等活動,它們將以適當(dāng)?shù)胤绞椒峙涞讲煌A段去完成。

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

2 軟件工程

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

其有一個(gè)相似的概念,出現(xiàn)上個(gè)世紀(jì)70年代,是開發(fā)和維護(hù)軟件的規(guī)范化方法,其指導(dǎo)思想是以處理工程問題的方法處理軟件生產(chǎn)的全過程。其發(fā)展大致經(jīng)過三個(gè)階段,包括程序設(shè)計(jì)時(shí)代、軟件時(shí)代、軟件工程時(shí)代。而軟件開發(fā)也大體經(jīng)過三個(gè)階段,定義、開發(fā)、維護(hù)三個(gè)階段。隨著軟件工程的發(fā)展,軟件工程學(xué)出現(xiàn),它是計(jì)算機(jī)科學(xué)、系統(tǒng)工程學(xué)、管理學(xué)、經(jīng)濟(jì)學(xué)等等,既是邊緣學(xué)科,又是綜合性學(xué)科。

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

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

今后,計(jì)算機(jī)軟件工程的不斷發(fā)展,給克服軟件危機(jī)帶來了希望。隨著面向?qū)ο缶幊塘Χ鹊脑龃?,軟件工程師技術(shù)再不斷進(jìn)步,特別是構(gòu)件開發(fā)的規(guī)范化與市場化,已經(jīng)把軟件開發(fā)推進(jìn)到一個(gè)新的階段,出現(xiàn)了“開發(fā)伴隨軟件復(fù)用,開發(fā)為了軟件復(fù)用”以及“軟件就是服務(wù)”等新思想。這些突出的成績,讓我們對計(jì)算機(jī)軟件方向的發(fā)展拭目以待。

參考文獻(xiàn):

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

[2]劉冰,賴涵,瞿中,等.軟件工程實(shí)踐教程[M].北京:機(jī)械工業(yè)出版社,2009.

[3]麥中凡.計(jì)算機(jī)軟件技術(shù)基礎(chǔ)[M].北京:高等教育出版社,1999.

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

第5篇

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

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

[圖片]

第6篇

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

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

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

1.2軟件要安全可靠

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

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

軟件開發(fā)設(shè)計(jì)前期調(diào)查,需求分析,開發(fā),維護(hù)等多個(gè)階段,其過程復(fù)雜,需要投入大量的人力、物力和財(cái)力。所以從成本消耗的調(diào)度看,新軟件要盡量延長使用壽命,縮短產(chǎn)品更新?lián)Q代的周期。就拿殺毒軟件而言,每年市場上銷售的殺毒軟件數(shù)量巨大,對就的軟件增加和完善功能必須要確保其在規(guī)定的時(shí)間內(nèi)無需更換。同時(shí),為了創(chuàng)造良好的經(jīng)濟(jì)效益,使用周期也應(yīng)該得到延長。

1.4方便修改重新生成

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

2計(jì)算機(jī)軟件工程升級策略考慮

2.1軟件工程設(shè)計(jì)要有科學(xué)性

軟件開發(fā)的第一階段就是設(shè)計(jì),軟件工程的升級設(shè)計(jì)一定要以科學(xué)為指導(dǎo)。例如,對于研發(fā)程序代碼要考慮軟件模塊化。對外要考慮軟件的抽象和信息隱蔽特性,以及軟件的局部化、一致性原則和適應(yīng)性等特征。選擇恰當(dāng)?shù)目茖W(xué)的設(shè)計(jì)方法,能夠?yàn)檫@些特征的實(shí)現(xiàn)提供方便,達(dá)到科學(xué)性設(shè)計(jì)這一目標(biāo),突出升級軟件后的優(yōu)勢特征。

2.2要全面兼顧市場需求

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

2.3把握智多種發(fā)展趨勢

2.3.1智能化智能化不僅出現(xiàn)在計(jì)算機(jī)科學(xué)領(lǐng)域,它是現(xiàn)代通信與信息技術(shù)、行業(yè)技術(shù)、計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)和智能化控制技術(shù)綜合到一起針對某一方面的應(yīng)用。在人工智能化應(yīng)用與計(jì)算機(jī)領(lǐng)域的今天,這個(gè)趨勢必然會與現(xiàn)代通信技術(shù)、計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)與現(xiàn)場總線的控制技術(shù)飛速發(fā)展,一起給人們的生產(chǎn)生活帶來巨大的變革。

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

2.3.3融合我國對工業(yè)發(fā)展策略調(diào)整以及傳統(tǒng)工業(yè)的升級,必然會加快電氣化、機(jī)械化和自動化這些硬設(shè)備向信息化、數(shù)字化和網(wǎng)絡(luò)化等軟設(shè)備轉(zhuǎn)變。計(jì)算機(jī)軟件技術(shù)的融合化是我國信息化和工業(yè)化融合的一支重要力量。隨著工業(yè)化不斷推進(jìn)和傳統(tǒng)產(chǎn)業(yè)升級加快,工業(yè)軟件的需求會進(jìn)一步加大,我國計(jì)算機(jī)軟件軟件產(chǎn)業(yè)會不斷發(fā)展壯大,推動計(jì)算機(jī)軟件技術(shù)融合,以適應(yīng)發(fā)展需要。

2.3.4開放化隨著軟件工程的蓬勃發(fā)展,早期封閉性強(qiáng)的收費(fèi)性軟件發(fā)展模式以慢慢不再適應(yīng)大的形式。為了給提高計(jì)算機(jī)軟件質(zhì)量的提高創(chuàng)建機(jī)遇,逐步打破軟件技術(shù)和知識產(chǎn)權(quán)的壟斷,開發(fā)化已變成不可阻擋的趨勢。計(jì)算機(jī)軟件源代碼的開放,將意味著軟件產(chǎn)品逐步標(biāo)準(zhǔn)化,這將有利于我國計(jì)算機(jī)軟件產(chǎn)業(yè)的更新?lián)Q代和全面升級。在這種趨勢下,也勢必會使我國計(jì)算機(jī)軟件開發(fā)效率得到較大提高。

2.4提供工程化支持,強(qiáng)化升級管理

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

3結(jié)束語

第7篇

關(guān)鍵詞:軟件工程;課程群;課程設(shè)計(jì)

中圖分類號:G642 文獻(xiàn)標(biāo)識碼:B

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

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

1定位

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

根據(jù)以上分析,我們認(rèn)為,本科生軟件工程課程群應(yīng)以軟件工程的基本概念、基本原理和基本方法為主線,使學(xué)生具備扎實(shí)的軟件工程基本理論知識、熟練的編程能力、較好的團(tuán)隊(duì)合作能力和實(shí)驗(yàn)?zāi)芰?,同時(shí)具備一定的分析與解決問題能力和創(chuàng)新能力。研究生軟件工程課程群應(yīng)以研究課題為主線,使學(xué)生掌握軟件工程最新的研究動態(tài),對其中若干個(gè)研究方向有深入的了解,具備較強(qiáng)的分析與解決問題能力和創(chuàng)新能力,以及基本的軟件項(xiàng)目組

織和管理能力。

2課程設(shè)置

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

根據(jù)上述定位,本科生軟件工程課程群的必修課包括軟件工程和軟件實(shí)踐,有些學(xué)校在軟件工程課中包括足夠的實(shí)踐時(shí)間,可將它們合并成一門軟件工程課。選修課可根據(jù)各校的特點(diǎn)開設(shè)不同的課程,如面向?qū)ο蟮姆治雠c設(shè)計(jì)、軟件體系結(jié)構(gòu)、基于構(gòu)件的軟件開發(fā)、軟件測試等,也可將研究生的某些課程作為本科高年級學(xué)生的選修課。

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

3教學(xué)內(nèi)容

本節(jié)參照國外相關(guān)的資料,結(jié)合我們多年的教學(xué)實(shí)踐,給出軟件工程課程群中各必修課的知識單元。

3.1軟件工程(本科生)

本科軟件工程課程的內(nèi)容應(yīng)覆蓋教育部計(jì)算機(jī)科學(xué)與技術(shù)教學(xué)指導(dǎo)委員會制訂的計(jì)算機(jī)科學(xué)與技術(shù)本科專業(yè)規(guī)范(計(jì)算機(jī)科學(xué)方向)中有關(guān)軟件工程的主要知識單元,該課程以軟件工程的基本概念、基本原理和基本方法為主,著重國內(nèi)比較流行的結(jié)構(gòu)化分析與設(shè)計(jì)方法、面向?qū)ο蠓治雠c設(shè)計(jì)方法和常規(guī)的軟件測試方法。同時(shí)對一些較新的軟件開發(fā)模型、方法和技術(shù)(如基于構(gòu)件的軟件開發(fā)模型和方法、敏捷開發(fā)方法、CMM&CMMI、Web工程等)做簡單的介紹,以便學(xué)生今后自學(xué)。

3.2軟件實(shí)踐(本科生)

該課程是本科軟件工程課程的一門后繼實(shí)驗(yàn)課,以某種軟件開發(fā)方法(如面向?qū)ο蠓椒?和軟件過程(如統(tǒng)一軟件過程RUP)為基礎(chǔ),引導(dǎo)學(xué)生完成一個(gè)完整的軟件項(xiàng)目開發(fā)全過程,包括需求獲取、需求分析、系統(tǒng)設(shè)計(jì)、實(shí)現(xiàn)以及測試等基本步驟。該課程主要培養(yǎng)學(xué)生的分析與解決問題能力、團(tuán)隊(duì)合作能力、實(shí)驗(yàn)?zāi)芰蛣?chuàng)新能力

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

該課程選擇當(dāng)今軟件工程研究的熱點(diǎn)課題作為主要內(nèi)容,其知識單元可包括:基于構(gòu)件的軟件工程、軟件產(chǎn)品線、軟件體系結(jié)構(gòu)、模型驅(qū)動體系結(jié)構(gòu)(MDA)、面向方面程序設(shè)計(jì)(AOP)、需求工程、面向?qū)ο鬁y試技術(shù)、逆向工程和再工程、Agent技術(shù)、形式方法、高可信軟件,開源軟件等。值得注意的是,在一門高級軟件工程課程中很難詳細(xì)介紹上述所有的內(nèi)容,各??筛鶕?jù)自己的特點(diǎn)和研究方向,選擇幾個(gè)(以3~5個(gè)為宜)知識單元作重點(diǎn)介紹,對其他知識單元可只做簡單的介紹。

下面給出幾個(gè)知識單元所包含的知識點(diǎn)。

基于構(gòu)件的軟件工程(CBSE)主要包括:CBSE基本概念,軟件構(gòu)件規(guī)格說明,構(gòu)件模型,基于構(gòu)件的開發(fā)過程,基于構(gòu)件開發(fā)的語義完整性,構(gòu)件組裝和集成,預(yù)測系統(tǒng)的可信度,軟件產(chǎn)品線體系結(jié)構(gòu)中的構(gòu)件,商用第三方構(gòu)件(COTS)及構(gòu)件獲取技術(shù),基于構(gòu)件的軟件體系結(jié)構(gòu),基于構(gòu)件軟件的測試與質(zhì)量保證,構(gòu)件的可變性機(jī)制,軟件構(gòu)件庫,構(gòu)件交易,構(gòu)件描述與檢索等。

軟件產(chǎn)品線(SPL)主要包括:軟件產(chǎn)品線的基本概念,軟件產(chǎn)品線的基本活動(核心資產(chǎn)開發(fā),產(chǎn)品開發(fā),管理),領(lǐng)域工程與應(yīng)用系統(tǒng)工程,SPL經(jīng)濟(jì)學(xué),軟件產(chǎn)品線實(shí)踐域,軟件產(chǎn)品線實(shí)踐模式,產(chǎn)品線組裝,基于產(chǎn)品線的應(yīng)用系統(tǒng)開發(fā)技術(shù)等。

軟件體系結(jié)構(gòu)主要包括:軟件體系結(jié)構(gòu)的原則和實(shí)踐,體系結(jié)構(gòu)框架/方法,體系結(jié)構(gòu)模型與MDA,集成框架,軟件體系結(jié)構(gòu)設(shè)計(jì)與分析,體系結(jié)構(gòu)風(fēng)格,軟件體系結(jié)構(gòu)文檔,軟件體系結(jié)構(gòu)評估與確認(rèn),面向服務(wù)體系結(jié)構(gòu)(SOA),體系結(jié)構(gòu)模式,企業(yè)體系結(jié)構(gòu)等。

模型驅(qū)動體系結(jié)構(gòu)(MDA)主要包括:MDA基本概念,MDA規(guī)格說明,MDA模型(CIM,PIM,PSM),模型轉(zhuǎn)換,模型語言(如可執(zhí)行的UML,對象約束語言O(shè)CL等),元建模,MDA過程,領(lǐng)域建模,系統(tǒng)模型,平臺無關(guān)建模,平臺特定的實(shí)現(xiàn)等。

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

該課程的知識單元包括:綜合管理,范圍管理,時(shí)間管理,成本管理,質(zhì)量管理,人力資源管理,溝通管理,風(fēng)險(xiǎn)管理,采購管理,敏捷項(xiàng)目管理,外包管理,軟技能等。下面給出其中若干個(gè)知識單元所包含的知識點(diǎn)。

綜合管理:項(xiàng)目,項(xiàng)目范圍陳述,項(xiàng)目管理計(jì)劃(編制過程,內(nèi)容),項(xiàng)目執(zhí)行的管理,項(xiàng)目評價(jià),項(xiàng)目的監(jiān)督和控制,集成的變更控制,實(shí)施報(bào)告,配置管理,關(guān)閉項(xiàng)目。

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

時(shí)間管理:活動定義過程,活動排序過程,圖示方法(優(yōu)先圖示方法(PDM),箭頭圖示方法(ADM),條件圖示方法,圖形評價(jià)和評審技術(shù)(GERT), 項(xiàng)目網(wǎng)絡(luò)圖,關(guān)鍵路徑方法(CPM),計(jì)劃評價(jià)和評審技術(shù)(PERT)等),PERT對CPM的估算,活動資源估算,活動持續(xù)時(shí)間估算,估算工具,進(jìn)度表開發(fā)過程,進(jìn)度控制過程,凈價(jià)值術(shù)語和公式。

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

質(zhì)量管理:質(zhì)量計(jì)劃編制過程,質(zhì)量保證計(jì)劃,過程改進(jìn)計(jì)劃,質(zhì)量保證過程,質(zhì)量控制過程,統(tǒng)計(jì)質(zhì)量控制(SQC),質(zhì)量改進(jìn)過程。

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

溝通管理:溝通計(jì)劃編制,溝通管理計(jì)劃,信息分發(fā),溝通模型,溝通風(fēng)格,溝通方法,溝通鏈接規(guī)則,溝通障礙,溝通技巧,績效報(bào)告,管理涉眾,管理收尾。

風(fēng)險(xiǎn)管理:風(fēng)險(xiǎn)管理計(jì)劃編制,實(shí)用方法,風(fēng)險(xiǎn)標(biāo)識,風(fēng)險(xiǎn)分析(定性分析,可能性與風(fēng)險(xiǎn)影響,定量分析,靈敏性分析,決策樹分析,預(yù)期貨幣價(jià)值,概率方法),風(fēng)險(xiǎn)響應(yīng)(計(jì)劃編制,工具與技術(shù)),可保險(xiǎn)風(fēng)險(xiǎn),風(fēng)險(xiǎn)監(jiān)督與控制過程,影響曲線。

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

敏捷項(xiàng)目管理:Agile宣言和原則,迭代與演化開發(fā),產(chǎn)品業(yè)主,敏捷管理需求,敏捷估算與計(jì)劃編制,敏捷設(shè)計(jì),敏捷文檔,敏捷軟件構(gòu)造,敏捷編程,人員管理問題,敏捷質(zhì)量保證,敏捷項(xiàng)目管理,項(xiàng)目評審,敏捷度量。

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

軟技能:領(lǐng)導(dǎo)能力,批判性思考,職業(yè)道德規(guī)范,自我激勵(lì),誠實(shí),小組工作,風(fēng)險(xiǎn)捕獲,適應(yīng)性,人際關(guān)系,工作壓力承受、壓力管理,創(chuàng)造性,影響力,研究能力,問題解決能力,組織能力,多文化處理能力,學(xué)習(xí)能力,時(shí)間管理,口頭溝通,文字溝通,細(xì)心周到。

4小結(jié)

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

參考文獻(xiàn)

[1] 教育部高等學(xué)校計(jì)算機(jī)科學(xué)與技術(shù)教學(xué)指導(dǎo)委員會. 計(jì)算機(jī)科學(xué)與技術(shù)本科專業(yè)規(guī)范[M]. 北京:高等教育出版社,2006 .

作者簡介

錢樂秋(1942-),男,復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)與工程系教授,博士生導(dǎo)師,主要研究方向?yàn)檐浖こ獭?/p>