張 倩 王玲玲
(華北理工大學(xué)附屬醫(yī)院,河北 唐山063000)
系統(tǒng)軟件開發(fā)是具有極強(qiáng)專業(yè)性與復(fù)雜性的項(xiàng)目工程。在開發(fā)過程中,軟件工程技術(shù)為系統(tǒng)軟件開發(fā)工程提供了技術(shù)支持與保障,在促進(jìn)系統(tǒng)軟件設(shè)計(jì)開發(fā)、保證系統(tǒng)軟件正常運(yùn)行、加強(qiáng)軟件系統(tǒng)安全性、提高系統(tǒng)軟件創(chuàng)新性方面發(fā)揮重要作用。
系統(tǒng)軟件開發(fā)是根據(jù)用戶要求建造出系統(tǒng)軟件或者系統(tǒng)中軟件部分的過程。現(xiàn)階段,國際互聯(lián)網(wǎng)技術(shù)不斷發(fā)展,計(jì)算機(jī)軟件行業(yè)在優(yōu)化我國產(chǎn)業(yè)經(jīng)濟(jì)結(jié)構(gòu)、實(shí)現(xiàn)對傳統(tǒng)信息產(chǎn)業(yè)的信息化改造,提高經(jīng)濟(jì)效益和國際市場競爭力方面具有重要作用,是我國重點(diǎn)支持和鼓勵的行業(yè)[1]。
軟件工程技術(shù)是基于計(jì)算機(jī)技術(shù)創(chuàng)新發(fā)展下形成的一種以軟件開發(fā)為核心的計(jì)算機(jī)工程性技術(shù)。主要由軟件需求分析、軟件設(shè)計(jì)、軟件構(gòu)造、軟件測試、軟件維護(hù)管理等內(nèi)容共同構(gòu)成。其中軟件需求分析,是系統(tǒng)軟件開發(fā)的開端,是對系統(tǒng)軟件開發(fā)目標(biāo)、開發(fā)要求的具體描述,以保證所開發(fā)的系統(tǒng)軟件產(chǎn)品能夠有效解決某一現(xiàn)實(shí)問題,具備系統(tǒng)設(shè)計(jì)、開發(fā)與應(yīng)用的可行性。軟件設(shè)計(jì)是系統(tǒng)軟件開發(fā)的關(guān)鍵內(nèi)容,是系統(tǒng)軟件開發(fā)過程與開發(fā)結(jié)果的一體化展示。通常情況下,軟件設(shè)計(jì)由軟件結(jié)構(gòu)設(shè)計(jì)、軟件詳細(xì)設(shè)計(jì)構(gòu)成,涉及系統(tǒng)軟件體系總架構(gòu)、系統(tǒng)軟件體系通信接口、系統(tǒng)軟件開發(fā)方法、系統(tǒng)軟件開發(fā)設(shè)計(jì)策略等眾多內(nèi)容。軟件構(gòu)造則是通過一系列編碼與測試活動,進(jìn)行有價(jià)值軟件的科學(xué)生成。通常情況下,軟件構(gòu)造在要求軟件工程滿足軟件設(shè)計(jì)基本要求的同時(shí),控制軟件程序復(fù)雜性,提升軟件程序規(guī)范性、標(biāo)準(zhǔn)性、靈活性。軟件測試則是以提升軟件可靠性、安全性、穩(wěn)定性等為目標(biāo),對軟件性能與質(zhì)量進(jìn)行的測試。通過軟件測試可及時(shí)發(fā)展軟件開發(fā)過程中存在的問題與缺陷,從而進(jìn)行軟件開發(fā)產(chǎn)品改進(jìn),以實(shí)現(xiàn)軟件設(shè)計(jì)目標(biāo)的達(dá)成,以及對軟件需求的滿足。軟件維護(hù)管理是以提升軟件開發(fā)產(chǎn)品耐久性、持續(xù)性為目的,組織開展軟件管理、變更、維護(hù)、控制、調(diào)整、改進(jìn)等活動。基于信息化建設(shè)進(jìn)程的不斷推進(jìn)以及系統(tǒng)規(guī)模、數(shù)量、類型的不斷增多,軟件維護(hù)管理重要性愈發(fā)顯著,應(yīng)成為軟件開發(fā)過程中人們關(guān)注與考慮的重點(diǎn)內(nèi)容。
結(jié)合系統(tǒng)軟件開發(fā)與軟件工程技術(shù)相關(guān)概述分析,在系統(tǒng)軟件開發(fā)過程中,軟件工程技術(shù)應(yīng)用主要體現(xiàn)在以下幾方面:
互聯(lián)網(wǎng)技術(shù)的發(fā)展擴(kuò)大了系統(tǒng)軟件的應(yīng)用范圍和深度。為了更好滿足系統(tǒng)軟件使用需求,提高系統(tǒng)軟件的可靠性與實(shí)用性,軟件工程師在具有相關(guān)軟件工程技術(shù)儲備的同時(shí)也要具有相應(yīng)的軟件工程理念。針對系統(tǒng)軟件問題定義、可行性研究和需求分析,結(jié)合實(shí)際應(yīng)用情況,設(shè)計(jì)最貼近用戶需求、個性化的系統(tǒng)軟件。
問題定義是最容易被忽略的步驟之一。問題定義階段所關(guān)注的關(guān)鍵問題是:“軟件要解決的問題是什么?”在實(shí)際中,開發(fā)人員首先對客戶需求進(jìn)行訪問調(diào)查,結(jié)合應(yīng)用環(huán)境和需求調(diào)查結(jié)果,精準(zhǔn)扼要地做出關(guān)于問題性質(zhì)、工程目標(biāo)及工程規(guī)模的紙質(zhì)報(bào)告,并經(jīng)過軟件工程技術(shù)組討論后,進(jìn)行必要修改。修改后將報(bào)告與客戶傳輸給客戶進(jìn)一步進(jìn)行修正和確認(rèn)。
為了保證系統(tǒng)軟件的可靠性,在開發(fā)過程中應(yīng)針對問題定義階段所確定的所有問題提出行之有效的解決辦法。將分析和設(shè)計(jì)過程放置于較高的抽象層次進(jìn)行壓縮和簡化的操作過程。這個階段是對軟件工程研究問題范圍的確定,過程相對簡短。在軟件工程決策過程中,可行性研究是決定的重要依據(jù)。
與可行性研究相同,需求分析階段并不是具體地去解決問題,而是研究解決對策,即確定系統(tǒng)軟件的預(yù)期目標(biāo)及主要功能。通過充分與用戶交流需求信息,從而分析設(shè)計(jì)系統(tǒng)軟件的具體功能,在系統(tǒng)軟件中完整地體現(xiàn)用戶需求,最終做出系統(tǒng)邏輯模型,開發(fā)出具有高適用性的系統(tǒng)軟件。
實(shí)現(xiàn)系統(tǒng)軟件設(shè)計(jì)的主要技術(shù)手段就是建立科學(xué)的開發(fā)模型。系統(tǒng)軟件模型主要包括兩類設(shè)計(jì):一是總體設(shè)計(jì),二是詳細(xì)設(shè)計(jì)。
總體設(shè)計(jì)主要包括兩項(xiàng)主要任務(wù)。第一個主要任務(wù)是多角度、多層次設(shè)計(jì)出實(shí)現(xiàn)系統(tǒng)軟件目標(biāo)的總體方案,并根據(jù)總體設(shè)計(jì)方案選擇不同的表達(dá)工具對方案的設(shè)計(jì)重點(diǎn)、難點(diǎn)、優(yōu)缺點(diǎn)、成本等多方面內(nèi)容進(jìn)行闡述,經(jīng)過軟件設(shè)計(jì)組權(quán)衡后,針對最佳方案制作出具體、詳盡的計(jì)劃并進(jìn)行初步建模。設(shè)計(jì)系統(tǒng)軟件的程序體系機(jī)構(gòu)是總體設(shè)計(jì)的第二個主要任務(wù),即程序模塊化。軟件系統(tǒng)是按照一定的、合理的層次結(jié)構(gòu)由若干個模塊組成。建模的意義在于將復(fù)雜的系統(tǒng)軟件分解成若干個規(guī)模適中的模塊,縮小系統(tǒng)軟件設(shè)計(jì)范圍。因此,設(shè)計(jì)系統(tǒng)軟件程序體系機(jī)構(gòu)的主要工作是確定組成模塊及模塊間的關(guān)系。
初步建立模型后,需要對開發(fā)模型進(jìn)行詳細(xì)設(shè)計(jì)。詳細(xì)設(shè)計(jì)階段的主要任務(wù)就是在總體設(shè)計(jì)的基礎(chǔ)上,將組成模塊與模塊間的關(guān)系具體化。針對系統(tǒng)軟件使用過程中模塊需要實(shí)現(xiàn)的實(shí)際功能進(jìn)行相應(yīng)的算法和數(shù)據(jù)結(jié)構(gòu),并初步建立模塊間的關(guān)系連接。
實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn)。進(jìn)行系統(tǒng)軟件測試(轉(zhuǎn)下頁)是發(fā)現(xiàn)系統(tǒng)軟件漏洞和優(yōu)化系統(tǒng)軟件運(yùn)行的最有效途徑,是保障整個系統(tǒng)軟件開發(fā)過程能順利進(jìn)行的基礎(chǔ)[2]。進(jìn)行系統(tǒng)軟件測試的目的是以小換多,即以較小的代價(jià)發(fā)現(xiàn)較多的錯誤。系統(tǒng)軟件測試具有一定規(guī)律,通過對能夠預(yù)期和無法預(yù)期的結(jié)果進(jìn)行測試,實(shí)現(xiàn)對系統(tǒng)軟件完善與升級。主要分為:編碼和單元測試、綜合測試。
編碼和單元測試主要是針對模塊進(jìn)行測試。首先結(jié)合系統(tǒng)軟件的模塊功能和實(shí)際運(yùn)行環(huán)境,將設(shè)計(jì)模塊利用一定的高級程序設(shè)計(jì)語言進(jìn)行翻譯,最終寫出相應(yīng)的、正確的、易理解、可維護(hù)的程序模塊。并多方面對程序模塊進(jìn)行仔細(xì)測試。
在編碼和單元測試之后進(jìn)行綜合測試,是采用一定測試方法使得軟件系統(tǒng)達(dá)到最終設(shè)計(jì)要求,通常包括集成測試、驗(yàn)收測試和平行運(yùn)行等。集成測試主要是針對模塊而進(jìn)行的,在將已通過單元測試的模塊依據(jù)系統(tǒng)軟件設(shè)計(jì)結(jié)構(gòu)、按照特定的策略進(jìn)行裝配過程中,對模塊運(yùn)行程序進(jìn)行相應(yīng)的檢測。驗(yàn)收測試則是按照計(jì)劃與分析階段確定的系統(tǒng)軟件需求,由用戶現(xiàn)場對系統(tǒng)軟件的可靠性進(jìn)行檢驗(yàn)。
系統(tǒng)軟件維護(hù)是指針對已研制完成并開始運(yùn)行的系統(tǒng)軟件進(jìn)行一定的軟件工程活動,以更好地滿足用戶的需求。即診斷和改正錯誤、根據(jù)環(huán)境進(jìn)行調(diào)整、改進(jìn)或擴(kuò)充功能。并在實(shí)際維護(hù)過程中將錯誤診斷、維護(hù)要求、維護(hù)計(jì)劃、程序測試、程序驗(yàn)收等內(nèi)容以書面形式進(jìn)行呈現(xiàn)、保存。合理的軟件維護(hù)過程中,不僅能夠修改軟件運(yùn)行錯誤,保證系統(tǒng)軟件正常工作,還能夠提高系統(tǒng)軟件性能、擴(kuò)展實(shí)際使用功能、提高系統(tǒng)軟件使用壽命,為用戶帶來多種效益。但在實(shí)際維護(hù)工作中,因系統(tǒng)軟件維護(hù)工作耗費(fèi)時(shí)間長、花費(fèi)資金多等問題,出現(xiàn)被忽視的狀況。
系統(tǒng)軟件管理工作貫穿系統(tǒng)軟件整個開發(fā)過程,管理方法和管理技術(shù)是系統(tǒng)軟件管理的核心。對系統(tǒng)軟件開發(fā)過程進(jìn)行科學(xué)管理和嚴(yán)格監(jiān)督,有利于加強(qiáng)系統(tǒng)軟件的適用性和有效性,提高系統(tǒng)軟件的可靠性和可維護(hù)性,打造優(yōu)質(zhì)系統(tǒng)軟件,增強(qiáng)用戶實(shí)際使用體驗(yàn)感。
綜上所述,計(jì)算機(jī)和網(wǎng)絡(luò)技術(shù)的發(fā)展,不斷提升系統(tǒng)軟件開發(fā)的復(fù)雜性。通過從系統(tǒng)軟件計(jì)劃與分析、設(shè)計(jì)、功能實(shí)現(xiàn)、維護(hù)與管理方面分析運(yùn)用軟件工程技術(shù)開發(fā)科學(xué)、高效、實(shí)用、可靠的系統(tǒng)軟件的方法,對提高我國系統(tǒng)軟件開發(fā)技術(shù)、系統(tǒng)軟件自主開發(fā)能力具有重要意義。