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