軟件工程(Software Engineering,簡(jiǎn)稱為SE)是一門(mén)研究用工程化方法構(gòu)建和維護(hù)有效的、實(shí)用的和高質(zhì)量的軟件的學(xué)科。它涉及到程序設(shè)計(jì)語(yǔ)言,數(shù)據(jù)庫(kù),軟件開(kāi)發(fā)工具,系統(tǒng)平臺(tái),標(biāo)準(zhǔn),設(shè)計(jì)模式等方面。
在現(xiàn)代社會(huì)中,軟件應(yīng)用于多個(gè)方面。典型的軟件比如有電子郵件,嵌入式系統(tǒng),人機(jī)界面,辦公套件,操作系統(tǒng),編譯器,數(shù)據(jù)庫(kù),游戲等。同時(shí),各個(gè)行業(yè)幾乎都有計(jì)算機(jī)軟件的應(yīng)用,比如工業(yè),農(nóng)業(yè),銀行,航空,政府部門(mén)等。這些應(yīng)用促進(jìn)了經(jīng)濟(jì)和社會(huì)的發(fā)展,使得人們的工作更加高效,同時(shí)提高了生活質(zhì)量。
軟件工程師是對(duì)應(yīng)用軟件創(chuàng)造軟件的人們的統(tǒng)稱,軟件工程師按照所處的領(lǐng)域不同可以分為系統(tǒng)分析員,軟件設(shè)計(jì)師,系統(tǒng)架構(gòu)師,程序員,測(cè)試員等等。人們也常常用程序員來(lái)泛指各種軟件工程師。
軟件工程(SoftWare Engineering)的框架可概括為:目標(biāo)、過(guò)程和原則。
(1)軟件工程目標(biāo):生產(chǎn)具有正確性、可用性以及開(kāi)銷合宜的產(chǎn)品。正確性指軟件產(chǎn)品達(dá)到預(yù)期功能的程度??捎眯灾杠浖窘Y(jié)構(gòu)、實(shí)現(xiàn)及文檔為用戶可用的程度。開(kāi)銷合宜是指軟件開(kāi)發(fā)、運(yùn)行的整個(gè)開(kāi)銷滿足用戶要求的程度。這些目標(biāo)的實(shí)現(xiàn)不論在理論上還是在實(shí)踐中均存在很多待解決的問(wèn)題,它們形成了對(duì)過(guò)程、過(guò)程模型及工程方法選取的約束。
(2)軟件工程過(guò)程:生產(chǎn)一個(gè)終能滿足需求且達(dá)到工程目標(biāo)的軟件產(chǎn)品所需要的步驟。軟件工程過(guò)程主要包括開(kāi)發(fā)過(guò)程、運(yùn)作過(guò)程、維護(hù)過(guò)程。它們覆蓋了需求、設(shè)計(jì)、實(shí)現(xiàn)、確認(rèn)以及維護(hù)等活動(dòng)。需求活動(dòng)包括問(wèn)題分析和需求分析。問(wèn)題分析獲取需求定義,又稱軟件需求規(guī)約。需求分析生成功能規(guī)約。設(shè)計(jì)活動(dòng)一般包括概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)。概要設(shè)計(jì)建立整個(gè)軟件系統(tǒng)結(jié)構(gòu),包括子系統(tǒng)、模塊以及相關(guān)層次的說(shuō)明、每一模塊的接口定義。詳細(xì)設(shè)計(jì)產(chǎn)生程序員可用的模塊說(shuō)明,包括每一模塊中數(shù)據(jù)結(jié)構(gòu)說(shuō)明及加工描述。實(shí)現(xiàn)活動(dòng)把設(shè)計(jì)結(jié)果轉(zhuǎn)換為可執(zhí)行的程序代碼。確認(rèn)活動(dòng)貫穿于整個(gè)開(kāi)發(fā)過(guò)程,實(shí)現(xiàn)完成后的確認(rèn),保證終產(chǎn)品滿足用戶的要求。維護(hù)活動(dòng)包括使用過(guò)程中的擴(kuò)充、修改與完善。伴隨以上過(guò)程,還有管理過(guò)程、支持過(guò)程、培訓(xùn)過(guò)程等。
(3)軟件工程的原則是指圍繞工程設(shè)計(jì)、工程支持以及工程管理在軟件開(kāi)發(fā)過(guò)程中必須遵循的原則。
一、軟件工程概述
概念:應(yīng)需而生
軟件工程是一類工程。工程是將理論和知識(shí)應(yīng)用于實(shí)踐的科學(xué)。就軟件工程而言,它借鑒了傳統(tǒng)工程的原則和方法,以求高效地開(kāi)發(fā)高質(zhì)量軟件。其中應(yīng)用了計(jì)算機(jī)科學(xué)、數(shù)學(xué)和管理科學(xué)。計(jì)算機(jī)科學(xué)和數(shù)學(xué)用于構(gòu)造模型與算法,工程科學(xué)用于制定規(guī)范、設(shè)計(jì)范型、評(píng)估成本及確定權(quán)衡,管理科學(xué)用于計(jì)劃、資源、質(zhì)量和成本的管理。
軟件工程這一概念,主要是針對(duì)20世紀(jì)60年代“軟件危機(jī)”而提出的。它首次出現(xiàn)在1968年NATO(北大西洋公約組織)會(huì)議上。自這一概念提出以來(lái),圍繞軟件項(xiàng)目,開(kāi)展了有關(guān)開(kāi)發(fā)模型、方法以及支持工具的研究。其主要成果有:提出了瀑布模型,開(kāi)發(fā)了一些結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言(例如PASCAL語(yǔ)言,Ada語(yǔ)言)、結(jié)構(gòu)化方法等。并且圍繞項(xiàng)目管理提出了費(fèi)用估算、文檔復(fù)審等方法和工具。綜觀60年代末至80年代初,其主要特征是,前期著重研究系統(tǒng)實(shí)現(xiàn)技術(shù),后期開(kāi)始強(qiáng)調(diào)開(kāi)發(fā)管理和軟件質(zhì)量。
70年代初,自“軟件工廠”這一概念提出以來(lái),主要圍繞軟件過(guò)程以及軟件復(fù)用,開(kāi)展了有關(guān)軟件生產(chǎn)技術(shù)和軟件生產(chǎn)管理的研究與實(shí)踐。其主要成果有:提出了應(yīng)用廣泛的面向?qū)ο笳Z(yǔ)言以及相關(guān)的面向?qū)ο蠓椒?,大力開(kāi)展了計(jì)算機(jī)輔助軟件工程的研究與實(shí)踐。尤其是近幾年來(lái),針對(duì)軟件復(fù)用及軟件生產(chǎn),軟件構(gòu)件技術(shù)以及軟件質(zhì)量控制技術(shù)、質(zhì)量保證技術(shù)得到了廣泛的應(yīng)用。目前各個(gè)軟件企業(yè)都十分重視資質(zhì)認(rèn)證,并想通過(guò)這些工作進(jìn)行企業(yè)管理和技術(shù)的提升。軟件工程所涉及的要素可概括如下:
根據(jù)這一框架,可以看出:軟件工程涉及了軟件工程的目標(biāo)、軟件工程原則和軟件工程活動(dòng)。
目標(biāo):我的眼里只有“產(chǎn)品”
軟件工程的主要目標(biāo)是:生產(chǎn)具有正確性、可用性以及開(kāi)銷合宜的產(chǎn)品。正確性意指軟件產(chǎn)品達(dá)到預(yù)期功能的程度??捎眯灾杠浖窘Y(jié)構(gòu)、實(shí)現(xiàn)及文檔為用戶可用的程度。開(kāi)銷合宜性是指軟件開(kāi)發(fā)、運(yùn)行的整個(gè)開(kāi)銷滿足用戶要求的程度。這些目標(biāo)的實(shí)現(xiàn)不論在理論上還是在實(shí)踐中均存在很多問(wèn)題有待解決,它們形成了對(duì)過(guò)程、過(guò)程模型及工程方法選取的約束。
軟件工程活動(dòng)是“生產(chǎn)一個(gè)終滿足需求且達(dá)到工程目標(biāo)的軟件產(chǎn)品所需要的步驟”。主要包括需求、設(shè)計(jì)、實(shí)現(xiàn)、確認(rèn)以及支持等活動(dòng)。需求活動(dòng)包括問(wèn)題分析和需求分析。問(wèn)題分析獲取需求定義,又稱軟件需求規(guī)約。需求分析生成功能規(guī)約。設(shè)計(jì)活動(dòng)一般包括概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)。概要設(shè)計(jì)建立整個(gè)軟件體系結(jié)構(gòu),包括子系統(tǒng)、模塊以及相關(guān)層次的說(shuō)明、每一模塊接口定義。詳細(xì)設(shè)計(jì)產(chǎn)生程序員可用的模塊說(shuō)明,包括每一模塊中數(shù)據(jù)結(jié)構(gòu)說(shuō)明及加工描述。實(shí)現(xiàn)活動(dòng)把設(shè)計(jì)結(jié)果轉(zhuǎn)換為可執(zhí)行的程序代碼。確認(rèn)活動(dòng)貫穿于整個(gè)開(kāi)發(fā)過(guò)程,實(shí)現(xiàn)完成后的確認(rèn),保證終產(chǎn)品滿足用戶的要求。支持活動(dòng)包括修改和完善。伴隨以上活動(dòng),還有管理過(guò)程、支持過(guò)程、培訓(xùn)過(guò)程等。
在現(xiàn)代社會(huì)中,軟件應(yīng)用于多個(gè)方面。典型的軟件比如有電子郵件,嵌入式系統(tǒng),人機(jī)界面,辦公套件,操作系統(tǒng),編譯器,數(shù)據(jù)庫(kù),游戲等。同時(shí),各個(gè)行業(yè)幾乎都有計(jì)算機(jī)軟件的應(yīng)用,比如工業(yè),農(nóng)業(yè),銀行,航空,政府部門(mén)等。這些應(yīng)用促進(jìn)了經(jīng)濟(jì)和社會(huì)的發(fā)展,使得人們的工作更加高效,同時(shí)提高了生活質(zhì)量。
軟件工程師是對(duì)應(yīng)用軟件創(chuàng)造軟件的人們的統(tǒng)稱,軟件工程師按照所處的領(lǐng)域不同可以分為系統(tǒng)分析員,軟件設(shè)計(jì)師,系統(tǒng)架構(gòu)師,程序員,測(cè)試員等等。人們也常常用程序員來(lái)泛指各種軟件工程師。
軟件工程(SoftWare Engineering)的框架可概括為:目標(biāo)、過(guò)程和原則。
(1)軟件工程目標(biāo):生產(chǎn)具有正確性、可用性以及開(kāi)銷合宜的產(chǎn)品。正確性指軟件產(chǎn)品達(dá)到預(yù)期功能的程度??捎眯灾杠浖窘Y(jié)構(gòu)、實(shí)現(xiàn)及文檔為用戶可用的程度。開(kāi)銷合宜是指軟件開(kāi)發(fā)、運(yùn)行的整個(gè)開(kāi)銷滿足用戶要求的程度。這些目標(biāo)的實(shí)現(xiàn)不論在理論上還是在實(shí)踐中均存在很多待解決的問(wèn)題,它們形成了對(duì)過(guò)程、過(guò)程模型及工程方法選取的約束。
(2)軟件工程過(guò)程:生產(chǎn)一個(gè)終能滿足需求且達(dá)到工程目標(biāo)的軟件產(chǎn)品所需要的步驟。軟件工程過(guò)程主要包括開(kāi)發(fā)過(guò)程、運(yùn)作過(guò)程、維護(hù)過(guò)程。它們覆蓋了需求、設(shè)計(jì)、實(shí)現(xiàn)、確認(rèn)以及維護(hù)等活動(dòng)。需求活動(dòng)包括問(wèn)題分析和需求分析。問(wèn)題分析獲取需求定義,又稱軟件需求規(guī)約。需求分析生成功能規(guī)約。設(shè)計(jì)活動(dòng)一般包括概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)。概要設(shè)計(jì)建立整個(gè)軟件系統(tǒng)結(jié)構(gòu),包括子系統(tǒng)、模塊以及相關(guān)層次的說(shuō)明、每一模塊的接口定義。詳細(xì)設(shè)計(jì)產(chǎn)生程序員可用的模塊說(shuō)明,包括每一模塊中數(shù)據(jù)結(jié)構(gòu)說(shuō)明及加工描述。實(shí)現(xiàn)活動(dòng)把設(shè)計(jì)結(jié)果轉(zhuǎn)換為可執(zhí)行的程序代碼。確認(rèn)活動(dòng)貫穿于整個(gè)開(kāi)發(fā)過(guò)程,實(shí)現(xiàn)完成后的確認(rèn),保證終產(chǎn)品滿足用戶的要求。維護(hù)活動(dòng)包括使用過(guò)程中的擴(kuò)充、修改與完善。伴隨以上過(guò)程,還有管理過(guò)程、支持過(guò)程、培訓(xùn)過(guò)程等。
(3)軟件工程的原則是指圍繞工程設(shè)計(jì)、工程支持以及工程管理在軟件開(kāi)發(fā)過(guò)程中必須遵循的原則。
一、軟件工程概述
概念:應(yīng)需而生
軟件工程是一類工程。工程是將理論和知識(shí)應(yīng)用于實(shí)踐的科學(xué)。就軟件工程而言,它借鑒了傳統(tǒng)工程的原則和方法,以求高效地開(kāi)發(fā)高質(zhì)量軟件。其中應(yīng)用了計(jì)算機(jī)科學(xué)、數(shù)學(xué)和管理科學(xué)。計(jì)算機(jī)科學(xué)和數(shù)學(xué)用于構(gòu)造模型與算法,工程科學(xué)用于制定規(guī)范、設(shè)計(jì)范型、評(píng)估成本及確定權(quán)衡,管理科學(xué)用于計(jì)劃、資源、質(zhì)量和成本的管理。
軟件工程這一概念,主要是針對(duì)20世紀(jì)60年代“軟件危機(jī)”而提出的。它首次出現(xiàn)在1968年NATO(北大西洋公約組織)會(huì)議上。自這一概念提出以來(lái),圍繞軟件項(xiàng)目,開(kāi)展了有關(guān)開(kāi)發(fā)模型、方法以及支持工具的研究。其主要成果有:提出了瀑布模型,開(kāi)發(fā)了一些結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言(例如PASCAL語(yǔ)言,Ada語(yǔ)言)、結(jié)構(gòu)化方法等。并且圍繞項(xiàng)目管理提出了費(fèi)用估算、文檔復(fù)審等方法和工具。綜觀60年代末至80年代初,其主要特征是,前期著重研究系統(tǒng)實(shí)現(xiàn)技術(shù),后期開(kāi)始強(qiáng)調(diào)開(kāi)發(fā)管理和軟件質(zhì)量。
70年代初,自“軟件工廠”這一概念提出以來(lái),主要圍繞軟件過(guò)程以及軟件復(fù)用,開(kāi)展了有關(guān)軟件生產(chǎn)技術(shù)和軟件生產(chǎn)管理的研究與實(shí)踐。其主要成果有:提出了應(yīng)用廣泛的面向?qū)ο笳Z(yǔ)言以及相關(guān)的面向?qū)ο蠓椒?,大力開(kāi)展了計(jì)算機(jī)輔助軟件工程的研究與實(shí)踐。尤其是近幾年來(lái),針對(duì)軟件復(fù)用及軟件生產(chǎn),軟件構(gòu)件技術(shù)以及軟件質(zhì)量控制技術(shù)、質(zhì)量保證技術(shù)得到了廣泛的應(yīng)用。目前各個(gè)軟件企業(yè)都十分重視資質(zhì)認(rèn)證,并想通過(guò)這些工作進(jìn)行企業(yè)管理和技術(shù)的提升。軟件工程所涉及的要素可概括如下:
根據(jù)這一框架,可以看出:軟件工程涉及了軟件工程的目標(biāo)、軟件工程原則和軟件工程活動(dòng)。
目標(biāo):我的眼里只有“產(chǎn)品”
軟件工程的主要目標(biāo)是:生產(chǎn)具有正確性、可用性以及開(kāi)銷合宜的產(chǎn)品。正確性意指軟件產(chǎn)品達(dá)到預(yù)期功能的程度??捎眯灾杠浖窘Y(jié)構(gòu)、實(shí)現(xiàn)及文檔為用戶可用的程度。開(kāi)銷合宜性是指軟件開(kāi)發(fā)、運(yùn)行的整個(gè)開(kāi)銷滿足用戶要求的程度。這些目標(biāo)的實(shí)現(xiàn)不論在理論上還是在實(shí)踐中均存在很多問(wèn)題有待解決,它們形成了對(duì)過(guò)程、過(guò)程模型及工程方法選取的約束。
軟件工程活動(dòng)是“生產(chǎn)一個(gè)終滿足需求且達(dá)到工程目標(biāo)的軟件產(chǎn)品所需要的步驟”。主要包括需求、設(shè)計(jì)、實(shí)現(xiàn)、確認(rèn)以及支持等活動(dòng)。需求活動(dòng)包括問(wèn)題分析和需求分析。問(wèn)題分析獲取需求定義,又稱軟件需求規(guī)約。需求分析生成功能規(guī)約。設(shè)計(jì)活動(dòng)一般包括概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)。概要設(shè)計(jì)建立整個(gè)軟件體系結(jié)構(gòu),包括子系統(tǒng)、模塊以及相關(guān)層次的說(shuō)明、每一模塊接口定義。詳細(xì)設(shè)計(jì)產(chǎn)生程序員可用的模塊說(shuō)明,包括每一模塊中數(shù)據(jù)結(jié)構(gòu)說(shuō)明及加工描述。實(shí)現(xiàn)活動(dòng)把設(shè)計(jì)結(jié)果轉(zhuǎn)換為可執(zhí)行的程序代碼。確認(rèn)活動(dòng)貫穿于整個(gè)開(kāi)發(fā)過(guò)程,實(shí)現(xiàn)完成后的確認(rèn),保證終產(chǎn)品滿足用戶的要求。支持活動(dòng)包括修改和完善。伴隨以上活動(dòng),還有管理過(guò)程、支持過(guò)程、培訓(xùn)過(guò)程等。