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