實(shí)踐軟件編程工具化
軟件是能被計(jì)算機(jī)識(shí)別和產(chǎn)生相應(yīng)運(yùn)算的符號(hào)序列。軟件最初是由制造計(jì)算機(jī)的廠商和用戶自己編制。后來(lái),計(jì)算機(jī)應(yīng)用廣了、復(fù)雜了,才出現(xiàn)專門編制軟件的公司。隨著信息化的發(fā)展,軟件公司越來(lái)越多、越來(lái)越大。在先進(jìn)國(guó)家常見(jiàn)顧員上萬(wàn)人的軟件公司,我國(guó)也在建設(shè)軟件航母、軟件園、軟件名城,軟件已成為一個(gè)新興的行業(yè)。
本文引用地址:http://m.butianyuan.cn/article/202212/441896.htm軟件行業(yè)在快速發(fā)展同時(shí),伴隨軟件編程產(chǎn)生的軟件危機(jī)也發(fā)展到無(wú)法回避和很難克服的程度。軟件危機(jī)是軟件公司不愿提及的是指在計(jì)算機(jī)軟件開(kāi)發(fā)、使用與維護(hù)過(guò)程中遇到的一系列嚴(yán)重問(wèn)題和難題。
圖1:軟件危機(jī)的主要表現(xiàn)圖
軟件危機(jī)的主要表現(xiàn)為:1、軟件開(kāi)發(fā)費(fèi)用和進(jìn)度失控 2、軟件的質(zhì)量和可靠性差 3、生產(chǎn)出來(lái)的軟件難以維護(hù) 5、難以滿足用戶的需求6、軟件開(kāi)發(fā)生產(chǎn)率遠(yuǎn)低于硬件的算力提供的效率等等。
還原論的軟件編程方法沒(méi)有對(duì)事實(shí)做整體分析、進(jìn)行規(guī)范后編程產(chǎn)生的軟件危機(jī),是不可能用還原論的軟件編程方法自我回避或解決的。一種經(jīng)過(guò)十幾年實(shí)踐,能解決軟件危技的整體論的FO軟件編程方法(簡(jiǎn)稱為FO方法)公布,受到人們關(guān)注和認(rèn)可。
FO方法包含三部分內(nèi)容:面向事實(shí)的分析、面向結(jié)構(gòu)的設(shè)計(jì)、面向形式的編程。為便于FO方法理解,舉一假設(shè)用軟件編制人的例子對(duì)FO方法的基本原理做一簡(jiǎn)單的介紹。人是一個(gè)巨復(fù)雜的事實(shí)。
圖2、人體器官分解示意圖
采用還原論的軟件編程方法時(shí):
會(huì)先按照還原論的整體是由部分組成的認(rèn)識(shí)將人按各個(gè)部位劃分,比如分成頭、四肢、軀干等。 再可將頭按五官、面部、毛發(fā)、頭骨等;四肢按手、手臂、腳、腿等;軀干按心、肝、肺等五臟六腑進(jìn)行分解。然后,組織軟件人員分組,分工編程。
這種按組成人的各個(gè)部位分工編程的方法,比較直觀,但是,系統(tǒng)設(shè)計(jì)復(fù)雜、各部位相互連接難、編程工作量大、軟件復(fù)用率低、不易測(cè)試和改動(dòng)、隱含問(wèn)題多,很難維護(hù),存在著嚴(yán)重的軟件危機(jī)。
FO方法是基于整體論通過(guò)觀察事實(shí)而總結(jié)歸納出來(lái)的一個(gè)基本假定,即:任何一個(gè)復(fù)雜的連接形態(tài)都可以采用維的組合結(jié)構(gòu)來(lái)處理;很多對(duì)象的內(nèi)部特性是相同的,之所以是不同的對(duì)象,是因?yàn)樗鼈兊耐獠刻匦圆煌?/span>
圖3、由表向里整體看人體
采用整體論的FO方法時(shí):
1、對(duì)人進(jìn)行面向事實(shí)的分析:
用整體論的思想對(duì)人體進(jìn)行分析,人的全身是由骨胳、血管、神經(jīng),淋巴、經(jīng)絡(luò)系統(tǒng)連接,將這些系統(tǒng)的集合定義為與人體現(xiàn)實(shí)模型分析出的邏輯模型中的結(jié)構(gòu)。人的骨胳、血管、神經(jīng),淋巴、經(jīng)絡(luò)系統(tǒng)是人體結(jié)構(gòu)的不同的維。
剝離人體的各連接系統(tǒng)的維,再對(duì)人體剩余部分做分析,可看到的人的剩余部分是由表皮組織、毛發(fā)、肌肉、脂肪、軟組織、骨頭、體液等有數(shù)的若干不同組織組成。將這些組織定義為分析出的邏輯模型中的對(duì)象。這種分析得出人的邏輯模型是由結(jié)構(gòu)和對(duì)象二部分組成。人體的結(jié)構(gòu)由若干不同的維構(gòu)成,人體的對(duì)象是若干不可再分的簡(jiǎn)單對(duì)象的集合。
2、對(duì)人進(jìn)行面向結(jié)構(gòu)的設(shè)計(jì):
面向結(jié)構(gòu)的設(shè)計(jì)是對(duì)邏輯模型里的結(jié)構(gòu)部分進(jìn)行編程處理。在不同的事實(shí)中,結(jié)構(gòu)的連接方式不一定是單一的線性方式,也會(huì)是多維的空間連接方式。需要再采用哲學(xué)方法對(duì)結(jié)構(gòu)進(jìn)行分解,使一個(gè)復(fù)雜的空間結(jié)構(gòu)變成一系列簡(jiǎn)單的維的組合。每個(gè)維也不一定是線性的,更多的是非線性的。(FO方法構(gòu)建的多維空間用到對(duì)伏羲八卦整數(shù)樹(shù)改進(jìn)的乾坤樹(shù))人的血管、神經(jīng)、淋巴、經(jīng)絡(luò)系統(tǒng)是非線性的維,骨骼是線性的維。然后采用技術(shù)的方法來(lái)實(shí)現(xiàn)對(duì)人的結(jié)構(gòu)設(shè)計(jì)。
3、對(duì)人體各部分面向形式的編程:
用FO方法分析出的邏輯模型中人的表皮組織、毛發(fā)、肌肉、脂肪、軟組織、骨頭、體液等是對(duì)象。對(duì)象有內(nèi)部特性和外部特性。對(duì)象的內(nèi)部特性為形式(算法),對(duì)象的外部特性為配置(數(shù)據(jù))。也就是不同的對(duì)象可以有相同的形式,有相同形式的對(duì)象不同的原因是配置不同。例如:人的毛發(fā)可分為頭發(fā)、胡須、不同部位的體毛等,它們是不同對(duì)象,但它們有相同的形式,由于他們的配置不同才表現(xiàn)成為不同對(duì)象。如果編制的是黃種人,通過(guò)調(diào)整表皮組織對(duì)象形式的配置,也可方便快速地編程出其他膚色的人。
由此,按構(gòu)成人所需的皮組織、毛發(fā)、肌肉、脂肪、軟組織、骨頭、體液等對(duì)象的形式進(jìn)行大小、多少、軟硬等程度配置,然后設(shè)置在已設(shè)計(jì)好的人的結(jié)構(gòu)的相應(yīng)部位上,就完成了人的編程工作。
采用FO方法的優(yōu)勢(shì):
1、簡(jiǎn)化了系統(tǒng)設(shè)計(jì)復(fù)雜度
2、編程難度、工作量和成本顯著減少
3、軟件編程的標(biāo)準(zhǔn)化和復(fù)用率高
4、便于檢查編程錯(cuò)誤和日后的維護(hù)
5、對(duì)不同外貌和有特征人的個(gè)性化設(shè)計(jì)簡(jiǎn)單
6、便于隨時(shí)調(diào)整滿足用戶需求
7、通過(guò)改變結(jié)構(gòu)狀態(tài)和對(duì)象形式的配置可快速編程出其他哺乳、脊椎等相似動(dòng)物的軟件。
FO方法已通過(guò)實(shí)踐在很短時(shí)間僅由一人編制出讓人難以置信的巨復(fù)雜的可覆蓋全世界行政區(qū)的無(wú)限多集群網(wǎng)站em258.com。采用FO方法對(duì)集群網(wǎng)站em258.com的邏輯模型里的同構(gòu)部分還進(jìn)行歸類,比如在集群網(wǎng)站em258.com中有科技信息發(fā)布管理,社會(huì)信息發(fā)布管理,汽車信息發(fā)布管理等一些發(fā)布管理屬于同構(gòu)群,因此只需要處理一個(gè)發(fā)布管理就可以了,其余的通過(guò)同構(gòu)特性處理就可以得到。這樣就大大減少了軟件編程和維護(hù)的工作量,將需要幾十萬(wàn)行,甚至上百萬(wàn)行程序代碼的軟件系統(tǒng),用幾百行程序代碼就可替代了。
FO軟件編程方法是我聯(lián)盟的一個(gè)成員單位在多年為用戶軟件編程服務(wù)中發(fā)明的。因?yàn)楣拘?,用戶大多又是熟人和朋友,?duì)編制出的軟件總是不滿意,不客氣地三番五次提出修改要求,直到滿意后才會(huì)罷休。技術(shù)人員在不斷為用戶反復(fù)修改軟件當(dāng)中,慢慢領(lǐng)悟和歸納出軟件編程的規(guī)律,才發(fā)明出可快速進(jìn)行編程和維護(hù)的FO方法。
一個(gè)小公司能在短時(shí)間能用幾百行程序編制出巨復(fù)雜的軟件系統(tǒng)原因是,因?yàn)樗麄兪孪纫巡捎?/span>FO方法將現(xiàn)實(shí)世界的萬(wàn)物間復(fù)雜的連接關(guān)系分析為由地名維,分類維,欄目維,工作維,工作部門等等基本維組成的結(jié)構(gòu)和將萬(wàn)物分析出結(jié)購(gòu)?fù)獾脑S多簡(jiǎn)單的有限的對(duì)象及這些對(duì)象形式都建好庫(kù)了。
需要對(duì)新的事實(shí)進(jìn)行軟件編程時(shí),如分析出的維和對(duì)象行式已在建好的維和對(duì)象形式庫(kù)中,就直接引用。如缺一些維和對(duì)象在庫(kù)中沒(méi)有,就再編制出缺的維和對(duì)象應(yīng)用,同時(shí)納入已建的維和對(duì)象形式庫(kù)待用。(這種建立維和對(duì)象形式庫(kù)和引用,與目前軟件編程常見(jiàn)的子程序庫(kù)、模塊調(diào)用、宏的定義應(yīng)用等在軟件編程的做用有質(zhì)的不同)通過(guò)FO方法該公司已造出了自用的軟件編程工具。
軟件是使用計(jì)算機(jī)進(jìn)行信息加工的工具。目前,軟件編程還沒(méi)有成為計(jì)算機(jī)用戶也同應(yīng)用文字編輯軟件word、WPS等編寫文章一樣也可自主、自如地進(jìn)行軟件編程,可以時(shí)刻簡(jiǎn)便地用來(lái)滿足自己需求的信息進(jìn)行加工的工具。FO方法為軟件編程像機(jī)械加工一樣實(shí)現(xiàn)規(guī)范化、標(biāo)準(zhǔn)化、簡(jiǎn)便化,工具化提供了很好的案例。
軟件編程工具化,不僅為軟件公司解除了軟件危機(jī),更有意義的是:可讓廣大的更了解和熟悉本單位、本行業(yè)信息化迫切需求和專業(yè)知識(shí)的技術(shù)人員能親自編寫出最適合的軟件應(yīng)用,讓軟件在國(guó)家信息化和數(shù)字經(jīng)濟(jì)發(fā)展中發(fā)揮出更大作用。
(注:本文是中國(guó)嵌入式系統(tǒng)產(chǎn)業(yè)聯(lián)盟網(wǎng)絡(luò)空間命運(yùn)共同體研究會(huì)交流文)
評(píng)論