曾晗
摘 要:本文分析了軟件工程技術(shù)中的軟件部分生命周期邏輯的應(yīng)用,介紹了軟件定義階段邏輯的應(yīng)用,領(lǐng)域建模邏輯的應(yīng)用。
關(guān)鍵詞:軟件工程;建模;邏輯
對(duì)于軟件工程技術(shù)而言,如何提高軟件在各個(gè)階段的工作效率至關(guān)重要,而對(duì)于軟件的描述,軟件的管理以及軟件的文檔等方面的研究,也是軟件工程技術(shù)研究的主要內(nèi)容之一。從方法、工具、過(guò)程來(lái)看,也即我們可以從軟件工程的三要素來(lái)展開(kāi)研究。我們通過(guò)邏輯學(xué)中的類(lèi)比法,可以把軟件工程的各個(gè)生存周期,看成是人的生命周期。我們知道在邏輯學(xué)中檢驗(yàn)一個(gè)真值函項(xiàng)模式的有效性和一致性的時(shí)候,我們通常是對(duì)真值函項(xiàng)式進(jìn)行真值分析,在真值分析的時(shí)候,如果每種情況下,得出的結(jié)果都是真的,那么這個(gè)時(shí)候我們就認(rèn)為它是有效的或說(shuō)是一致性的;如果在每種情況下,得出的結(jié)果都是假的,那么這個(gè)時(shí)候我們就認(rèn)為它是不一致的。其次,我們對(duì)有效性的證明的時(shí)候,當(dāng)遇到一種情況是假的,那么我們對(duì)有效性的證明就可以停止。
1 軟件定義階段邏輯的應(yīng)用
在軟件定義階段,主要有以下三個(gè)方面:首先是問(wèn)題定義,其次可行性分析,最后是立項(xiàng)或簽訂合同。我們知道一個(gè)典型的范圍描述有以下幾點(diǎn):
1.1 初始需求清單
客戶(hù)范圍約束;
開(kāi)發(fā)者范圍約束。
我們知道在設(shè)計(jì)某個(gè)軟件的時(shí)候,我們不可避免的需要考慮它的市場(chǎng)價(jià)值,因而軟件的經(jīng)濟(jì)性和有效性也一直是我們需要考慮的問(wèn)題。這時(shí)候我們可以選用一些簡(jiǎn)單的,容易實(shí)現(xiàn)的一種方案來(lái)實(shí)現(xiàn)。由此可見(jiàn),對(duì)于軟件的開(kāi)發(fā)者而言,在軟件的這樣一個(gè)過(guò)程中,需要明確的知道軟件需要做什么以及不需要做什么,這樣才能在設(shè)計(jì)軟件的時(shí)候知道出發(fā)點(diǎn)以及目標(biāo),而不是盲目的追求功能的實(shí)現(xiàn)和運(yùn)行,不考慮有些功能的必要性和有效性。
所以在初期設(shè)計(jì)出一個(gè)合理精確地范圍文檔在軟件開(kāi)發(fā)過(guò)程中是非常重要的。如果一開(kāi)始所設(shè)計(jì)出的文檔,語(yǔ)義不清,表達(dá)內(nèi)容模棱兩可,這就會(huì)造成不必要的麻煩。例如:當(dāng)某醫(yī)院需要一個(gè)醫(yī)藥管理軟件,這款軟件的部分功能是病人也能查詢(xún)到醫(yī)藥的價(jià)格,但是不能查看庫(kù)存或者盤(pán)點(diǎn)藥品等功能。而軟件開(kāi)發(fā)者在設(shè)計(jì)的時(shí)候由于一開(kāi)始對(duì)該醫(yī)院所需求的軟件定義不明確,或者是因?yàn)樵撫t(yī)院在表述該軟件功能的時(shí)候?qū)@款軟件的實(shí)現(xiàn)表述不明確。最終導(dǎo)致的結(jié)果是:設(shè)計(jì)出來(lái)的醫(yī)藥管理軟件,病人根據(jù)他們個(gè)人信息登錄進(jìn)去也能查看到該醫(yī)院醫(yī)藥的庫(kù)存等方面的信息。這種由于一開(kāi)始的表述不精確,給雙方都造成了麻煩。下面我們先通過(guò)了解邏輯學(xué)中如何對(duì)概念進(jìn)行概括和限制,再通過(guò)對(duì)比,知識(shí)的遷移運(yùn)用到軟件定義階段。
1.2 內(nèi)涵和外延
在邏輯學(xué)中,我們?cè)趯?duì)概念進(jìn)行描述的時(shí)候,會(huì)用到概括和限制這兩種方法,同樣這樣的兩種方法也適用于軟件工程需求分析階段文檔的描述。我們首先要先了解概念的概括和限制的具體用法,這樣才能準(zhǔn)確的把握概念的內(nèi)涵和外延。如何對(duì)一個(gè)概念的內(nèi)涵或外延進(jìn)行增加或縮小呢?這是接下去我們要研究的問(wèn)題。
我們常說(shuō)要有正確的邏輯思維,而正確的邏輯思維就需要我們對(duì)概念有所了解,也即需要概念明確,我們?cè)诟拍蠲鞔_的基礎(chǔ)上,才能準(zhǔn)確的把握概念的內(nèi)涵和外延。那什么是概念的內(nèi)涵呢?在邏輯學(xué)中,對(duì)其定義是反映對(duì)象本質(zhì)屬性的概念。對(duì)于限制而言,字面上理解是縮小其范圍。那么在邏輯學(xué)中如何理解呢?邏輯學(xué)中有兩種概念:種概念和屬概念。我們把表示范圍大的概念稱(chēng)為屬概念,把另一個(gè)表示范圍小的概念稱(chēng)為種概念。而邏輯學(xué)中對(duì)于限制的定義,首先需要判斷我們所需限制的概念是否具有種屬關(guān)系。也就是說(shuō)范圍小的概念和范圍大的概念之間需要存在著種屬關(guān)系。簡(jiǎn)言之我們的限制是把范圍大的概念也即屬概念,通過(guò)限制變成范圍小的概念即種概念。也即限制是通過(guò)增加內(nèi)涵,縮小外延,從屬概念得到其種概念的邏輯方法。上述,我們知道內(nèi)涵是揭示概念本質(zhì)的,那么對(duì)于概念的外延,我們用什么來(lái)揭示呢?此時(shí),邏輯學(xué)中我們把它稱(chēng)為劃分。此外,我們知道限制是由某個(gè)概念的屬概念得到種概念的這樣一個(gè)方法,那么如果這個(gè)過(guò)程反過(guò)來(lái)看,就得到邏輯學(xué)中的另一個(gè)定義,即:概括。當(dāng)我們需要擴(kuò)大某個(gè)概念的外延的時(shí)候,我們可以運(yùn)用概括。這樣這個(gè)概念的內(nèi)涵也相應(yīng)減少了。下面我們可以通過(guò)幾個(gè)例子來(lái)具體區(qū)分一下以上幾種情況。如:“學(xué)校”到“中學(xué)”,這個(gè)例子中我們對(duì)“學(xué)校”進(jìn)行了限制,從而使得其更具體化了。但是根據(jù)限制應(yīng)用條件可知,我們?cè)谑褂脮r(shí)候,一個(gè)要注意這兩個(gè)概念之間的關(guān)系,如果不具備上述條件,我們使用限制就是錯(cuò)誤的。例如:“城市”限制為“農(nóng)村”這就是錯(cuò)誤的,因?yàn)椤俺鞘小焙汀稗r(nóng)村”這兩個(gè)概念并不具備種屬關(guān)系,兩者是并列關(guān)系。“麻雀”能概括為“鳥(niǎo)”,不能概括為“哺乳動(dòng)物”,從抽象的角度來(lái)考察:“鳥(niǎo)”是“麻雀的抽象,而“哺乳動(dòng)物”卻不是“麻雀”的抽象。通過(guò)以上的例子,我們?cè)谶\(yùn)用的時(shí)候一定要判斷好你所要運(yùn)用的對(duì)象是不是具備種屬關(guān)系,如果不具備就不能亂用,否則就容易造成錯(cuò)誤。
既然種屬關(guān)系在應(yīng)用時(shí)候如此重要,那么,我們就需要對(duì)它進(jìn)一步的認(rèn)識(shí)和理解。在概念外延間關(guān)系中,對(duì)于相容的關(guān)系我們又把其分為全同關(guān)系、屬種關(guān)系和交叉關(guān)系。我們主要看屬種關(guān)系,概念S、P有屬種關(guān)系,是指所有的S是P,且有S不是P如“學(xué)生”和“大學(xué)生”有屬種關(guān)系。屬概念:外延較大:種概念:外延較小。我們又可以把屬概念稱(chēng)為上位概念,而把種概念稱(chēng)為下位概念。同時(shí),概念S、P有屬種關(guān)系,則P、S有種屬關(guān)系,反之也一樣。概念S、P有屬種關(guān)系,也稱(chēng)S真包含P,或P真包含于S。對(duì)不相容關(guān)系,不相容概念有一個(gè)確定的屬概念,稱(chēng)為論域。概念的不相容,分為矛盾關(guān)系和對(duì)立關(guān)系兩種。對(duì)矛盾關(guān)系而言,S和P不相容,但是S和P的外延和等于其論域M,如“白虎”和“非白虎”就是矛盾關(guān)系;對(duì)立關(guān)系,S和P不相容,但S和P的外延之和小于其論域M,如“白虎”和“黃虎”就是對(duì)立關(guān)系。
2 領(lǐng)域建模邏輯的應(yīng)用
在邏輯學(xué)中,任何概念都可以看成“類(lèi)概念”,可以說(shuō)概念是思維的形式,承載著相應(yīng)的思維內(nèi)容,同時(shí)理性認(rèn)識(shí)的基本形式也即概念。概念與語(yǔ)詞或詞組有一定關(guān)系。邏輯學(xué)中有以下幾類(lèi)概念:第一種肯定概念和否定概念,任何事情都是相對(duì)而言,這兩個(gè)概念也一樣,它們是根據(jù)概念所反映的對(duì)象是否具有某種屬性來(lái)區(qū)分。其中肯定概念又稱(chēng)為正概念,而否定概念又稱(chēng)為負(fù)概念;第二種是普通概念和單獨(dú)概念,其中單獨(dú)概念的外延分子=l,是指1個(gè)對(duì)象,即獨(dú)一無(wú)二的事物、專(zhuān)名或摹狀物,而普通概念則是外延分子>-2,也指一類(lèi)對(duì)象、形容詞或動(dòng)詞等。從這兩類(lèi)對(duì)象而看,它們是根據(jù)反映對(duì)象數(shù)目不同來(lái)劃分的。第三種是集合概念和非集合概念,我們把反映集合體的概念稱(chēng)為集合概念,反之,不反映集合體的概念則稱(chēng)為非集合概念。我們把由兩個(gè)或兩個(gè)以上的個(gè)體經(jīng)組合構(gòu)成的統(tǒng)一整體稱(chēng)為集合體。綜上,可以看出上述三種概念的分類(lèi)是根據(jù)每個(gè)不同概念的內(nèi)涵或外延在形式上的共同點(diǎn)進(jìn)行劃分的,因而概念的內(nèi)涵或外延也反映出概念的本質(zhì)。它們的兩個(gè)特點(diǎn)分別從量和質(zhì)兩個(gè)方面來(lái)說(shuō)明概念。外延從字面上理解,就說(shuō)明了概念所適用的范圍,而內(nèi)涵則代表著這個(gè)概念所特有的屬性。在計(jì)算機(jī)軟件工程中的領(lǐng)域建模就可以運(yùn)用到上述知識(shí),領(lǐng)域建模是為了過(guò)渡到類(lèi)圖建模的,通過(guò)分析它,更好的幫助我們了解領(lǐng)域建模。在領(lǐng)域建模中有個(gè)問(wèn)題域,這個(gè)問(wèn)題域是研究的是相關(guān)事物或概念對(duì)象。我們通常會(huì)運(yùn)用圖形來(lái)表示問(wèn)題域里對(duì)象靜態(tài)模型。由此可見(jiàn),邏輯學(xué)中的概念在領(lǐng)域建模中也有應(yīng)用,我們學(xué)會(huì)對(duì)概念外延的劃分,能夠幫助我們更好的理解領(lǐng)域建模中的概念的外延,而內(nèi)涵我們也能利用前面所了解到的種屬關(guān)系,進(jìn)行限制或者概括,這樣能夠更好的幫助我們來(lái)理解領(lǐng)域建模的內(nèi)涵,此處就不舉例子一一說(shuō)明。