孫佳敏成都東軟學(xué)院
軟件工程的設(shè)計(jì)思路淺析
孫佳敏
成都東軟學(xué)院
軟件工程在近二十年中有了極大的發(fā)展,設(shè)計(jì)思路的創(chuàng)新不斷涌現(xiàn)。本文通過(guò)對(duì)軟件工程的分析,從軟件設(shè)計(jì)的幾個(gè)關(guān)鍵步驟對(duì)其進(jìn)行了探究,為軟件工程技術(shù)的創(chuàng)新提供了思路。
軟件工程;設(shè)計(jì)思路;創(chuàng)新
1.1 軟件的含義
計(jì)算機(jī)軟件的主要組成部分為程序和數(shù)據(jù),在計(jì)算機(jī)工程中,軟件的作用極大。計(jì)算機(jī)硬件和軟件需要彼此,不能單獨(dú)使用。在最低級(jí)別,可執(zhí)行代碼由特定于單個(gè)處理器(通常是中央處理單元(CPU))的機(jī)器語(yǔ)言指令組成。機(jī)器語(yǔ)言由二進(jìn)制值組成,表示將計(jì)算機(jī)的狀態(tài)從其先前狀態(tài)改變的處理器指令。例如,指令可以改變存儲(chǔ)在計(jì)算機(jī)中的特定存儲(chǔ)位置中的值,指令也可以導(dǎo)致某些東西出現(xiàn)在計(jì)算機(jī)系統(tǒng)的顯示器上。現(xiàn)在多核處理器占主導(dǎo)地位,每個(gè)內(nèi)核可以按順序運(yùn)行指令,默認(rèn)情況下,每個(gè)應(yīng)用程序軟件只能運(yùn)行在一個(gè)核心上。大多數(shù)軟件是用高級(jí)編程語(yǔ)言編寫(xiě)的,對(duì)于程序員而言更為簡(jiǎn)單和更有效率,意味著它更接近自然語(yǔ)言。使用編譯器或解釋器或兩者的組合將高級(jí)語(yǔ)言翻譯成機(jī)器語(yǔ)言。
1.2 軟件工程的發(fā)展
傳統(tǒng)的軟件工程強(qiáng)調(diào)物性的規(guī)律,現(xiàn)代軟件工程最根本的就是人跟物的關(guān)系,就是人和機(jī)器(工具、自動(dòng)化)在不同層次的不斷循環(huán)發(fā)展的關(guān)系。面向?qū)ο蟮姆治?、設(shè)計(jì)方法(OOA和OOD)的出現(xiàn)使傳統(tǒng)的開(kāi)發(fā)方法發(fā)生了翻天覆地的變化?;诮M件的軟件工程的主要作用是將系統(tǒng)的開(kāi)發(fā)作為零件(組件)的集合,作為可重用實(shí)體的部件開(kāi)發(fā)以及通過(guò)定制和替換這些部件來(lái)維護(hù)和升級(jí)系統(tǒng)。這需要建立涵蓋整個(gè)組件和系統(tǒng)生命周期的方法和工具支持,包括技術(shù)、組織、營(yíng)銷(xiāo)、法律和其他方面。軟件工程需要新的方法來(lái)支持基于組件的開(kāi)發(fā)。
2.1 需求分析
軟件需求分析階段在系統(tǒng)設(shè)計(jì)完成后,即整個(gè)系統(tǒng)分解成多個(gè)子系統(tǒng)后進(jìn)行。軟件需求分析的重點(diǎn)是創(chuàng)建可以作為從分析到軟件設(shè)計(jì)的過(guò)渡車(chē)輛的模型。通過(guò)結(jié)構(gòu)化的方法,實(shí)時(shí)結(jié)構(gòu)化分析用于創(chuàng)建一個(gè)行為模型,可以作為過(guò)程抽象的過(guò)渡工具。數(shù)據(jù)流和控制流程圖模型與一組過(guò)程選擇規(guī)則相結(jié)合,以確定子系統(tǒng)的并發(fā)元素。在軟件需求分析階段使用的面向?qū)ο蠓治觯∣OA)模型與系統(tǒng)需求分析期間使用的相同。OOA的一個(gè)活動(dòng)是識(shí)別可以形成設(shè)計(jì)對(duì)象基礎(chǔ)的抽象類(lèi)和對(duì)象。對(duì)象表示較大的現(xiàn)實(shí)世界實(shí)體的組件,例如飛機(jī)引擎、飛行模擬器導(dǎo)航或機(jī)器人運(yùn)動(dòng)管理器。場(chǎng)景的創(chuàng)建是在域分析和系統(tǒng)需求分析期間執(zhí)行的場(chǎng)景描述的細(xì)化。軟件的設(shè)計(jì)和實(shí)現(xiàn)取決于軟件的復(fù)雜性。例如,Microsoft Word的設(shè)計(jì)和創(chuàng)建比設(shè)計(jì)和開(kāi)發(fā)Microsoft記事本花費(fèi)更多的時(shí)間,因?yàn)楹笳呔哂懈嗟幕竟δ?。通常在集成開(kāi)發(fā)環(huán)境(IDE)中設(shè)計(jì)和創(chuàng)建軟件,如Eclipse,IntelliJ和Microsoft Visual Studio,可以簡(jiǎn)化流程并編譯軟件。軟件通常在現(xiàn)有軟件和底層軟件提供的應(yīng)用程序編程接口(API)之上創(chuàng)建,如GTK+,JavaBeans或Swing。API可以按其目的進(jìn)行分類(lèi)。例如,Spring Framework用于實(shí)現(xiàn)企業(yè)應(yīng)用程序,Windows Forms庫(kù)用于設(shè)計(jì)諸如Microsoft Word的圖形用戶(hù)界面(GUI)應(yīng)用程序,Windows Communication Foundation用于設(shè)計(jì)Web服務(wù)。當(dāng)程序設(shè)計(jì)時(shí),它依賴(lài)于A(yíng)PI。例如,如果用戶(hù)正在設(shè)計(jì)Microsoft Windows桌面應(yīng)用程序,他可能會(huì)使用.NET Windows Forms庫(kù)設(shè)計(jì)桌面應(yīng)用程序,并將其API(如Form1.Close())和Form1.Show()調(diào)用到關(guān)閉或打開(kāi)應(yīng)用程序,并寫(xiě)出自己需要的附加操作。沒(méi)有這些API,程序員需要自己編寫(xiě)這些API。像Oracle和Microsoft這樣的公司提供自己的API,以便使用他們的軟件庫(kù)編寫(xiě)許多應(yīng)用程序,這些軟件庫(kù)通常在其中包含許多API。
2.2 方案設(shè)計(jì)
方案設(shè)計(jì)應(yīng)當(dāng)充分利用軟件工程中越來(lái)越多的實(shí)證研究,作出決策和制定研究問(wèn)題,需要構(gòu)建可用研究證據(jù)的客觀(guān)總結(jié)的能力??紤]到這樣的研究可能采用不同的實(shí)驗(yàn)形式,并且在不同的實(shí)驗(yàn)環(huán)境中進(jìn)行,采用系統(tǒng)的方法來(lái)評(píng)估和總結(jié)一組實(shí)證研究的結(jié)果在軟件工程中尤為重要。參與者應(yīng)該能夠閱讀和使用這些方案,并且獲得了對(duì)自己的系統(tǒng)評(píng)價(jià)所需的知識(shí)。將使用信息呈現(xiàn),包括軟件工程領(lǐng)域可能出現(xiàn)的一些問(wèn)題的經(jīng)驗(yàn)以及交互式工作,使用提前準(zhǔn)備的審閱材料進(jìn)行方案設(shè)計(jì)。軟件工程方案設(shè)計(jì)需要研究指導(dǎo)以改進(jìn)研究和報(bào)告流程。通過(guò)提出一套初步的研究指南,旨在激勵(lì)軟件研究人員的討論。它們是基于為研究人員開(kāi)發(fā)的研究指南的審查,以及我們?cè)谧鲕浖こ萄芯糠矫娴慕?jīng)驗(yàn)。該準(zhǔn)則旨在協(xié)助研究人員、評(píng)審人員和分析師設(shè)計(jì)、實(shí)施和評(píng)估實(shí)證研究。軟件編寫(xiě)者希望使用團(tuán)隊(duì)的建議作為制定評(píng)審者指導(dǎo)原則的基礎(chǔ),并制定政策來(lái)處理實(shí)證研究的設(shè)計(jì),數(shù)據(jù)收集和分析報(bào)告。
2.3 編程
軟件要通過(guò)編程工具進(jìn)行編寫(xiě),編程工具是一種開(kāi)發(fā)環(huán)境,是軟件開(kāi)發(fā)人員用于創(chuàng)建、調(diào)試、維護(hù)(即改進(jìn)或修復(fù))或以其他方式支持的軟件。軟件以一種或多種編程語(yǔ)言編寫(xiě),存在許多編程語(yǔ)言,并且每個(gè)軟件都至少用一種語(yǔ)言實(shí)現(xiàn),每種語(yǔ)言由其自己的一組編程工具組成。這些工具可能是相對(duì)獨(dú)立的程序,如編譯器、調(diào)試器、解釋器、鏈接器和文本編輯器,可以組合在一起以完成任務(wù),或者它們可以形成集成的開(kāi)發(fā)環(huán)境(IDE),它集成了這些獨(dú)立工具的大部分或所有功能。IDE可以通過(guò)調(diào)用相關(guān)的單個(gè)工具或以新的方式重新實(shí)現(xiàn)其功能來(lái)實(shí)現(xiàn)。IDE可以使特定任務(wù)變得更容易,例如在特定項(xiàng)目中搜索文件。許多編程語(yǔ)言實(shí)現(xiàn)提供了使用單個(gè)工具或IDE的選項(xiàng)。
2.4 測(cè)試與維護(hù)
測(cè)試編寫(xiě)好的系統(tǒng)。交給用戶(hù)使用,用戶(hù)使用后一個(gè)一個(gè)的確認(rèn)每個(gè)功能。軟件測(cè)試有很多種:按照測(cè)試執(zhí)行方,可以分為內(nèi)部測(cè)試和外部測(cè)試;按照測(cè)試范圍,可以分為模塊測(cè)試和整體聯(lián)調(diào);按照測(cè)試條件,可以分為正常操作情況測(cè)試和異常情況測(cè)試;按照測(cè)試的輸入范圍,可以分為全覆蓋測(cè)試和抽樣測(cè)試。
軟件工程的發(fā)展日新月異,發(fā)展計(jì)算機(jī)軟件,尤其是軟件工程作為軟件產(chǎn)業(yè)的依托學(xué)科已經(jīng)成為信息技術(shù)的核心之一,因此需要加強(qiáng)軟件工程技術(shù)的更新?lián)Q代,才能讓其更好地為我們服務(wù)。
[1]徐輝增.關(guān)聯(lián)規(guī)則數(shù)據(jù)挖掘方法的研究[J].科學(xué)技術(shù)與工程.2012(01)
[2]曹路舟.數(shù)據(jù)挖掘技術(shù)及其應(yīng)用初探[J].科教文匯(下旬刊).2012(01)
孫佳敏(1993-),男,內(nèi)蒙古呼和浩特人,成都東軟學(xué)院,本科,研究方向:it類(lèi)。