侯慧杰
(山東省菏澤市成武縣職業(yè)中等專業(yè)學(xué)校,山東菏澤 274200)
現(xiàn)在的軟件工程各項研究逐漸增多, 現(xiàn)代的邏輯學(xué)運用在計算機軟件工程領(lǐng)域也是較為常見的。 比如說軟件工程技術(shù)需要運用到邏輯學(xué)中的合理分析是對軟件的開發(fā)的有效保障。
運用學(xué)科的交叉性可以幫助其他學(xué)科和邏輯學(xué)的共同發(fā)展,在運用信息科學(xué)時,學(xué)科的交叉性能夠補充計算機的知識理論體系,并提供科學(xué)可行的方法。在市場的分析研究上和邏輯的應(yīng)用研究上都包含著各個學(xué)科上的交叉運用。
對于軟件工程技術(shù)來說, 如何在各個程序階段提升軟件的運行效率是非常重要的。 如何描寫和管理以及對軟件進(jìn)行文檔管理, 這些都是軟件工程技術(shù)需要研究的內(nèi)容, 軟件工程開發(fā)的方式和手段都是從各個要素出發(fā)。 在邏輯體系中,應(yīng)用類比的方法,把軟件工程看作是軟件的一個個生存周期, 或者也可以類比成人的生長周期。比如說在嬰幼兒階段,軟件也像人類一樣從定義和設(shè)計出發(fā),分析其可操作性和可開發(fā)性。比如說一款軟件的開發(fā)是需要研討和分析的, 尤其對于后期的軟件開發(fā)及維護都比較重要。 人的發(fā)育階段是青少年時期和中年時期, 就可以將軟件的開發(fā)階段作為類比,由于這一階段的各項內(nèi)容都需要進(jìn)行研究和分析,還需要對定義進(jìn)行檢測和設(shè)計。也包含了編程的過程和是否通過,并在測試完成后在各大平臺發(fā)布軟件。
對于軟件進(jìn)行下定義包含著以下幾個重要過程:定義內(nèi)容、分析其是否可行、合同的立項和簽訂。 在設(shè)計某個軟件必須要考慮的是它是否具有市場價值,在方案選定時必須要選定簡單且容易實行的目標(biāo)。 對于開發(fā)者來說, 在設(shè)計軟件之前必須要明確軟件的可實施性和不可實施性的具體內(nèi)容, 這樣才能知道軟件的設(shè)計立足點在哪里。不可盲目追求過多的功能,合理性是最重要的。 在軟件的開發(fā)過程中需要劃定設(shè)計軟件的合理范圍并建立文檔。例如,在某大型超市里需要一款商品管理軟件, 軟件的功能是幫助消費者查找商品的具體分類區(qū)和具體價格。 如果開發(fā)者對于這一出發(fā)點把握準(zhǔn)確,則不會出現(xiàn)一些不必要的麻煩,所以將邏輯學(xué)概念運用到對軟件的定義中來是非常有必要的。
任何定義在邏輯的應(yīng)用領(lǐng)域范圍內(nèi)都可以看作是一類概念,也可以說定義只是思考的一種方式,它記載著思維的內(nèi)容, 也是對理性價值觀展現(xiàn)的一種基本方法。 第一,在邏輯學(xué)方面將概念主要分為正向和負(fù)向的,它們并不隨時間做改變,區(qū)別是在于定義對象的不同,和屬性上的不同。第二,單獨概念是單指一個對象,也就是說有專門的事物、專用的名詞都是獨立的個體。相對于單獨概念來說,普通概念指的是形容詞、動詞以及對象, 這兩者是有反映對象數(shù)目上的差別并對二者進(jìn)行區(qū)分。 第三,是對于集合和非集合的概念也不同,集合的概念是反應(yīng)集合體, 而非集合的概念是指不反映集合體。 集合體就是一個個體包含了兩個或兩個以上的部分組成一個整體。
內(nèi)涵是概念的獨有特性, 而外延則是概念所界定的適用范圍進(jìn)行領(lǐng)域建模。 在計算機軟件工程中的領(lǐng)域建模中,就可以運用到上述所說的各種邏輯學(xué)知識,幫助建立領(lǐng)域模型。 在領(lǐng)域建模中存在著一個問題范圍, 那就是對于相關(guān)的事物或者是個體的研究問題范圍中的研究對象,通常以圖形的方式進(jìn)行限定。領(lǐng)域建模主要包含概念和概念之間、 概念的屬性之間和各大類概念之間所存在的聯(lián)系。 所以說邏輯學(xué)的概念也可以運用到領(lǐng)域的建立模型當(dāng)中, 我們過去所認(rèn)識到的種屬關(guān)系也可以運用到領(lǐng)域建模中去。
一般來說軟件開發(fā)主要分為如下幾個階段: 用戶需求、設(shè)計軟件、編寫程序、測試軟件和后期維護。下面來說說,邏輯學(xué)在這幾個方面的應(yīng)用。
做軟件設(shè)計第一步我們需要根據(jù)市場用戶的需求來設(shè)計軟件。 通過用戶對于軟件的需求描述進(jìn)行目標(biāo)的確認(rèn)并做出細(xì)化, 且都要以文字的形式記錄到文檔中,形成一個描述性范圍文檔,這一步需要詳細(xì)且精確的記載。在設(shè)計軟件的過程中用戶的需求極其重要,在細(xì)化用戶需求的程序中, 要運用大量的時間來進(jìn)行反復(fù)探究。若不愿意花時間進(jìn)行研究,后期可能會造成用戶的不滿意和軟件設(shè)計的失敗。 這一問題是大多數(shù)的新手軟件工程師不注重的問題。 假如產(chǎn)品的設(shè)計并沒有達(dá)到用戶的預(yù)期既浪費了人力、物力,也對整個團隊造成比較大的麻煩, 所以在用戶需求的描寫過程中設(shè)計人員不可獨斷專行,需要比對大量的數(shù)據(jù),結(jié)合實例進(jìn)行分析, 還可以采用圖形化手段對其進(jìn)行分析和整合。并在軟件的使用說明中盡量做到定義清晰,避免出現(xiàn)矛盾之處。
從用戶的需求出發(fā), 將客戶的想法轉(zhuǎn)換成軟件的過程是將非形式化的想法轉(zhuǎn)換成軟件形式的過程。 我們需要考慮兩方面,一是軟件轉(zhuǎn)換軟件需求的轉(zhuǎn)化,會形成一種軟件體系結(jié)構(gòu)。由于需要在這個時期,確認(rèn)系統(tǒng)的端口以及全局?jǐn)?shù)據(jù)的模擬結(jié)果和數(shù)據(jù)庫形式,這可以叫概念的設(shè)計;二是需要對各個模塊進(jìn)行算法,在局部的架構(gòu)中, 可以運用合適的手段將結(jié)構(gòu)進(jìn)行算法的描述和分析,這叫作詳細(xì)模擬設(shè)計的階段。
軟件是需要將用戶的需求和軟件的使用方式進(jìn)行描述,它的作用就是說明,設(shè)計系統(tǒng)的這一階段就是在完成這個目標(biāo)。 計算機科學(xué)和數(shù)理邏輯相結(jié)合能夠幫助人類的思維進(jìn)行分化并轉(zhuǎn)換成簡單的運算變利用計算機進(jìn)行模擬。計算機的原理是要通過程序的編寫,而程序的編程,則需要運用數(shù)理邏輯進(jìn)行設(shè)計。數(shù)理邏輯的運用既能夠幫助在計算過程中發(fā)生避免發(fā)生錯誤運算,產(chǎn)生錯誤結(jié)果,以及尋找出錯誤來源,并加以修正。
通過編寫程序中代碼的產(chǎn)生, 可以看出計算機和邏輯學(xué)之間的密切聯(lián)系。 常見的在命題邏輯中有幾種專用名字,比如說真值、等值。 在邏輯中運用主要是靠對于真值的判斷。若需要對兩種真值的情況做出判斷,就可以采用真值表法。 經(jīng)過計算可以得到這兩種真值的情況是否相等。 如果相等則表現(xiàn)為真,如果不相等,則表現(xiàn)為假。 那么在計算機中,是如何應(yīng)用的呢? 比如說在登錄程序上輸入密碼,若和這個程序密碼相同,那么就為真,則登錄成功。如果輸入的密碼和這個程序密碼不相符,那么就為假,則登錄不成功。 這種方式可以具體應(yīng)用于賬戶的安全上, 若密碼連續(xù)錯誤輸入三次以上則賬戶暫未鎖定。 或者是在購物時未及時完成付款,后期再付款時會發(fā)現(xiàn)還需再次登錄賬戶。此種方法保證了賬戶的安全,這幾種程序從邏輯學(xué)角度出發(fā),可以看到在日常生活中, 我們必須要使用軟件規(guī)范說明和驗證方法。將優(yōu)秀的系統(tǒng)方法轉(zhuǎn)換為程序,這就屬于自動程序的研究方面。
測試軟件是完成了所有的程序設(shè)計后所開始的步驟。在軟件工程的軟件測試中,測試人員的主要目標(biāo)是為了尋找出軟件所存在的各種BUG,這部分只是需要測試人員找到問題,但不需要對其進(jìn)行修改,只需交由測試經(jīng)理的審批,再發(fā)送給開發(fā)人員進(jìn)行修改。等開發(fā)人員修改問題完成后, 就需要完成一個回歸原始問題的步驟。 其實就是將原有的問題再驗證一遍是否解決掉。所以在軟件的測試之前,測試人員必須要學(xué)習(xí)軟件測試的相關(guān)技能。 只有了解到正確情況下功能的樣子才能比對出軟件的問題。比如說在網(wǎng)絡(luò)的安全測試中,這一模塊就需要測試員對于網(wǎng)絡(luò)安全的專業(yè)知識進(jìn)行掌握。在對軟件進(jìn)行測試時,需要熟練地運用簡單的設(shè)置口令,并運用口令來進(jìn)行業(yè)務(wù),測試人員還需要熟悉業(yè)務(wù)的基本流程。 如果將邏輯學(xué)運用到計算機的測試中來, 就會很好地尋找到程序的問題和各個程序及過程之間的連接是否良好。 對于測試人員掌握整體基本流程有很好的作用,緩解軟件開發(fā)人員的工作壓力。
如今那個大互聯(lián)網(wǎng)公司都設(shè)有后期維護運營團隊, 如果發(fā)現(xiàn)軟件運營當(dāng)中出現(xiàn)問題會及時地進(jìn)行記錄和維護。 但是這種情況需要用戶在使用軟件的過程中發(fā)現(xiàn)問題且記錄并反饋給后期團隊。 這樣后期的維護人員才會發(fā)現(xiàn)問題并進(jìn)行修改, 但是因為軟件的錯誤和不足是實際存在的。 如何能有效降低這種矛盾問題呢?如果通過邏輯學(xué)中的知識出發(fā),使用軟件的用戶是想要開發(fā)人員能夠及時地將軟件中出現(xiàn)的問題和不足改掉。但是對于軟件的后期維護人員來說,這種修復(fù)過程需要一段時間,這種過程就叫作軟件的后期維護。但是維護過程是軟件的生命周期組成中最長的一個過程。軟件是否可靠也是靠后期維護才能保證的。這也需要開發(fā)員人員在前期的設(shè)計過程中擁有簡潔的設(shè)計風(fēng)格,才能在后期中進(jìn)行維護時及時發(fā)現(xiàn)問題并解決。如今交流在我們的生活中非常重要, 同樣在計算機中如何與計算機進(jìn)行交流,則需要計算機語言來完成。所以如何運用好計算機語言建立一個良好的用戶文檔,這對于后期的發(fā)展以及維護都比較重要。
在軟件開發(fā)的各個階段都會發(fā)現(xiàn)不同部分與邏輯學(xué)有著密不可分的聯(lián)系。 將邏輯學(xué)運用到計算機軟件工程的開發(fā)中來, 能夠?qū)τ嬎銠C軟件工程的整體運用和發(fā)展起到一個非常良好的作用。