亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        科學(xué)哲學(xué)視域下軟件開發(fā)方案評價標(biāo)準(zhǔn)的研究

        2021-12-31 21:34:01周宇先
        科技創(chuàng)新與應(yīng)用 2021年3期
        關(guān)鍵詞:硬核范式共同體

        周宇先

        (渤海大學(xué) 馬克思主義學(xué)院,遼寧 錦州 121000)

        1 哲學(xué)思維在軟件開發(fā)中的作用

        史蒂芬·霍金在其著作《大設(shè)計》中說“哲學(xué)死了”,[1]他之所以這樣說是因為他認(rèn)為“哲學(xué)跟不上科學(xué)”,[1]許多本來需要哲學(xué)來解決的問題現(xiàn)在轉(zhuǎn)交給了科學(xué)。然而事實真的是這樣嗎?或許有失偏頗。至少在計算機科學(xué)技術(shù)領(lǐng)域的軟件開發(fā)中,是一刻也離不開哲學(xué)的。從思維方面來看,哲學(xué)的三大特性——抽象性、批判性和反思性在軟件開發(fā)中是“須臾不可離也”。[2]從哲學(xué)的方法來看,無論是探索真理的“向上的路”與“向下的路”,無論是研究方法的“時間在先”與“邏輯在先”“循序思索”與“從后思索”,還是敘事方法的“邏輯與歷史的統(tǒng)一”與“從抽象到具體”,都貫穿于軟件開發(fā)過程的始終。如果說哲學(xué)在某個角落沒有發(fā)揮作用就說它死了,那么我們每個現(xiàn)存的人,在活動范圍之外的領(lǐng)域都是以死了形式存在著;如果說哲學(xué)作為思維活動的層次沒能居于一定的高度,那么只能說作為思維活動主體的人沒有達到那樣的高度;如果說哲學(xué)作為一種能力不再是自我超越的了,那么喪失超越能力的也必然是人本身。所以問題不能得到解決不能歸咎于哲學(xué),而應(yīng)該將視線回歸到人自身,聚焦于人對自身的能力如何正確的認(rèn)識,聚焦于人對處理問題的方法如何正確的運用。

        2 關(guān)于庫恩和拉卡托斯思想的簡述

        科學(xué)發(fā)展模式是指科學(xué)是以怎樣的形式發(fā)展演變的,它是科學(xué)哲學(xué)中的一個重要問題,許多著名的科學(xué)哲學(xué)家都對這個問題進行了全面而深刻的討論,最具代表性的是科學(xué)哲學(xué)四巨頭——卡爾·波普爾、托馬斯·庫恩、費耶阿本德、拉卡托斯。由于本文要借鑒托馬斯·庫恩、拉卡托斯的思想來分析軟件開發(fā)中的問題,所以需要在此對二人的思想做出必要的簡介。

        托馬斯·庫恩提出了科學(xué)革命的范式轉(zhuǎn)換模式,該模式體現(xiàn)在《科學(xué)革命的結(jié)構(gòu)》一書中。庫恩認(rèn)為在前科學(xué)時期學(xué)派林立、百家爭鳴,其中一個學(xué)派取得巨大成功使紛爭消失了,從而形成了第一個范式并帶來了眾多實踐者的追隨。這些實踐者形成了一個共同體,他們遵照共同的范式行動。范式的形成標(biāo)志著進入了常規(guī)科學(xué)時期,在常規(guī)科學(xué)時期,共同體成員使用范式進行解謎,解謎過程中遇到反常導(dǎo)致新的發(fā)現(xiàn),新的發(fā)現(xiàn)會引起范式的變化。從舊范式到新范式的轉(zhuǎn)換是革命性的轉(zhuǎn)變,這種轉(zhuǎn)變是世界觀的轉(zhuǎn)變,由于新范式的出現(xiàn)克服了危機,從而使新范式的共同體逐漸壯大,于是一些人轉(zhuǎn)向新范式從事常規(guī)科學(xué)研究,新的循環(huán)再次從常規(guī)科學(xué)開始。[3]

        拉卡托斯提出了科學(xué)研究綱領(lǐng)進化模式,該模式體現(xiàn)在《科學(xué)研究綱領(lǐng)方法論》一書中。他的科學(xué)研究綱領(lǐng)是一組由理論硬核、假說保護帶、正反面啟發(fā)法三部分構(gòu)成的嚴(yán)密理論體系。最重要概念和定律構(gòu)成理論體系的硬核,輔助假說圍繞在硬核周圍形成保護帶,啟發(fā)法包括反面啟發(fā)法和正面啟發(fā)法兩種?!耙恍┮?guī)則告訴我們要避免哪些研究道路(反面啟發(fā)法),另一些告訴我們要尋求哪些道路(正面啟發(fā)法)”。[4]科學(xué)研究綱領(lǐng)有進化和退化之分,“只要它繼續(xù)不斷地相當(dāng)成功地預(yù)測新穎的事實(進步的問題轉(zhuǎn)換),就可以說它是進步的;如果它的理論增長落后于經(jīng)驗增長,即它只能對偶然的發(fā)現(xiàn)或競爭的綱領(lǐng)所預(yù)見和發(fā)現(xiàn)的事實進行事后的說明(退化的問題轉(zhuǎn)換),這個綱領(lǐng)就是停滯的”。[4]

        接下來讓我們提出軟件開發(fā)中的一個基礎(chǔ)性問題,然后把科學(xué)發(fā)展的過程與軟件開發(fā)的過程相對照,透過科學(xué)發(fā)展模式來看軟件開發(fā)活動的本質(zhì),將科學(xué)哲學(xué)的思想精髓映射到軟件開發(fā)活動中,照亮問題的內(nèi)部細節(jié)并分析問題形成的根本原因,從而可得出妥善解決問題的方法。

        3 關(guān)于軟件開發(fā)方案評價標(biāo)準(zhǔn)的問題

        什么樣的軟件開發(fā)方法是好的方法?什么樣的軟件架構(gòu)是好的架構(gòu)?什么樣的軟件開發(fā)語言和工具是最好的語言和工具?當(dāng)被問到類似這樣的問題時,未免讓一些軟件從業(yè)者略顯尷尬,這些問題就像問一位哲學(xué)家“什么是哲學(xué)?”一樣難以回答。

        針對此類問題的回答即使是工作經(jīng)驗豐富的軟件工程師也往往各持己見,有些人此時堅持這種觀點彼時卻又轉(zhuǎn)向了觀點的反面,或是轉(zhuǎn)向另一種觀點。最初他們認(rèn)為理論上介紹的方法和架構(gòu)等都是好的,但是在實踐過程中他們發(fā)現(xiàn)某些理論在應(yīng)用時會遇到各種麻煩,許多過程性的細節(jié)被過濾掉了,有些理論僅僅是闡述了要達到的原則和目標(biāo),但如何遵照所指出的原則行事以及如何達到這些目標(biāo),不同的人在不同環(huán)境下會做出不同的選擇。而“選擇”這種決定性判斷是由人通過主觀意識來決定的,這樣在選擇方案的界定標(biāo)準(zhǔn)上就會存在不同的見解??此骑L(fēng)格迥異的不同選擇通過不同途徑都能達到預(yù)期的目標(biāo),或者是基于相同的理論基礎(chǔ)實踐后的結(jié)果卻各有成敗,這些都為好的標(biāo)準(zhǔn)的界定增添了神秘色彩。

        正是因為理論與實際應(yīng)用不完全相符產(chǎn)生的迷惑,使實際應(yīng)用的方案制定和選擇呈現(xiàn)出多樣性。有觀點認(rèn)為,只要方案能夠獲得實際效果、能夠達到期望目標(biāo),就可稱之為好的方案——但是如果把作為目標(biāo)要素的軟件生命周期長度的期望值加重,軟件的可擴展性、穩(wěn)定性就顯得更重要,此時這種觀點就會顯得不妥。另有觀點認(rèn)為,只要方案完全符合理論的原則標(biāo)準(zhǔn),就可稱之為好的方案——但是如果把實現(xiàn)目標(biāo)所需的成本以及方案的可行性產(chǎn)生影響的權(quán)值加重,理論標(biāo)準(zhǔn)就會變成僵硬的教條而束縛了方案變通的靈活性。如果為了強行符合所謂的標(biāo)準(zhǔn)而不惜一切代價,最終帶來的將是團隊被所要實現(xiàn)目標(biāo)的異化,以致違背了以人為本的原則,甚至造成成本嚴(yán)重超支導(dǎo)致財政出現(xiàn)問題。

        可見軟件開發(fā)中“什么樣的……是好的?”既是復(fù)雜的問題也是不可回避的問題。各種時空環(huán)境的差異及不同因素的制約導(dǎo)致好方案的相對性,只有識別出特定時空環(huán)境下起決定性作用的因素,才能明確相對的好方案準(zhǔn)則。至此以上問題已經(jīng)轉(zhuǎn)化為:特定時空環(huán)境下起決定性作用的因素是什么?在特定的時空環(huán)境和因素的制約下,如何確定好方案的評價標(biāo)準(zhǔn)?而這樣的問題只有訴諸于科技哲學(xué)才能得到解答。

        4 新視角下對軟件方案標(biāo)準(zhǔn)的探求

        在軟件開發(fā)的各種經(jīng)典的教科書中,針對軟件開發(fā)各個階段和過程都給出了理論性的指標(biāo)、實現(xiàn)方法以及典型的范例,但是在實際應(yīng)用中存在誤用的情況。隨著用戶需求日新月異的不斷提出,隨著開發(fā)者經(jīng)驗閱歷的不斷豐富和認(rèn)識的不斷深入,隨著面臨要解決的問題日益復(fù)雜化或不確定性日益增加,許多人便陷入了——“對好的開發(fā)模式和理論體系的向往”與“不知道好的標(biāo)準(zhǔn)是什么”之間的矛盾中。這些人又往往存在幾種傾向——最新流行的開發(fā)模式就是好的;大型公司的所應(yīng)用的開發(fā)模式就是好的;擁有完整的流程體系的開發(fā)模式就是好的。這就造成處理問題的方法也各具特色,因此對于好的標(biāo)準(zhǔn)很難形成統(tǒng)一的共識。

        4.1 庫恩思想對軟件開發(fā)過程的啟示

        面對一個軟件項目或產(chǎn)品的開發(fā)不同的開發(fā)團隊通常會給出不同的方案,這是因為他們作為不同的共同體都有各自遵循的一套范式。即使是沒有實戰(zhàn)經(jīng)驗的新團隊也會按照教科書中的指導(dǎo),或者參考其他人的開發(fā)經(jīng)驗制定出一套臨時的范式作為標(biāo)準(zhǔn),因為他們都深知“不以規(guī)矩,不能成方圓”[5]的道理。

        4.1.1 每個開發(fā)單位的團隊都是一個共同體

        對于那些有諸多項目經(jīng)驗的研發(fā)團隊而言,特別是做過的大型項目的團隊,他們的范式標(biāo)準(zhǔn)隨著所接觸的項目規(guī)模從小到大、需求從簡單到復(fù)雜,逐漸由簡單的設(shè)計走向復(fù)雜的設(shè)計,以此適應(yīng)新的情境和新的變化。直到這種范式標(biāo)準(zhǔn)發(fā)展到他們認(rèn)為的——所研究的領(lǐng)域內(nèi)任何用戶的需求都可以在現(xiàn)有項目經(jīng)驗上做局部調(diào)整就可以構(gòu)建出目標(biāo)產(chǎn)物,這種范式標(biāo)準(zhǔn)便被他們作為最優(yōu)的標(biāo)準(zhǔn)。

        值得注意的是,他們認(rèn)為這樣的一個范式標(biāo)準(zhǔn)在應(yīng)對一個新的需求時所做出的反應(yīng)是快速的,主要原因有:理論體系足夠完整,可以覆蓋大多數(shù)用戶沒有提出的預(yù)想,以做到未雨綢繆;經(jīng)驗積累足夠豐富,可以提供對比借鑒以做參照;有了共同遵循的范式標(biāo)準(zhǔn),會消除共識上的一些分歧。新問題在他們面前就如同常規(guī)科學(xué)的解謎活動一樣,進入了一種常規(guī)模式的研究狀態(tài)。那么按照這樣的標(biāo)準(zhǔn)來處理新問題真的能夠快速嗎?事實未必如此。這樣一個標(biāo)準(zhǔn)只有在應(yīng)對相同規(guī)模量級、相同復(fù)雜度體系的需求時,才會顯現(xiàn)出構(gòu)建效率上的優(yōu)勢。如果構(gòu)建的目標(biāo)規(guī)模量級比現(xiàn)有的規(guī)模量級小,那就要在現(xiàn)有的完整體系上裁剪掉一部分,這無疑是在削足適履。原有體系由于過于復(fù)雜,與裁掉的部分的相關(guān)聯(lián)的屬性、方法及其它部分的邏輯設(shè)計勢必都會受到影響,所以需要做更詳細的檢查和驗證才能保證萬無一失。如果構(gòu)建的目標(biāo)規(guī)模量級與現(xiàn)有規(guī)模量級僅僅存在部分交集,則不僅要裁剪掉一部分,還要考慮到繼續(xù)完善現(xiàn)有體系,以囊括那些交集之外的部分。那么一旦這樣做了,復(fù)雜度又會有所提升,規(guī)模量級又會朝著新的級別發(fā)展。

        4.1.2 每種編程語言的追隨者都是一個共同體

        對于使用不同編程語言開發(fā)者,他們都堅信自己所掌握的編程語言是最好的語言,他們在行業(yè)中會遵從一套基礎(chǔ)范式標(biāo)準(zhǔn)?;A(chǔ)范式標(biāo)準(zhǔn)通常是軟件開發(fā)工具的供應(yīng)商提供的基礎(chǔ)措施,后來經(jīng)過龐大的開發(fā)者群體在實踐中不斷研究探索,從而研發(fā)出各種版本的分支范式標(biāo)準(zhǔn)。他們通過在相關(guān)論壇中交流經(jīng)驗使各種分支范式標(biāo)準(zhǔn)在行業(yè)中形成共識與普及。

        不同編程語言的共同體之所以強調(diào)自己所使用的編程語言和開發(fā)工具最好,一般被認(rèn)為它所能做的工作其它編程語言和開發(fā)工具做不到或做的不夠好。事實上兩者的比較本身缺乏一定的合理性?!俺哂兴?,寸有所長”,[6]這些開發(fā)語言和開發(fā)工具所誕生的環(huán)境和目標(biāo)是不完全一致的。例如:JAVA和ASP.NET都可以做Web項目的開發(fā),如果說JAVA的優(yōu)勢在于其插件和框架資源豐富、在不同的操作系統(tǒng)上具有可移植性占有優(yōu)勢,那么ASP.NET則使開發(fā)工作快捷高效、在服務(wù)器管理簡單方便上占據(jù)一定優(yōu)勢。雖然隨著智能移動設(shè)備時代的發(fā)展JAVA語言在移動設(shè)備應(yīng)用的開發(fā)中發(fā)揮出重大作用,但ASP.NET的插件資源和跨平臺的解決方案在經(jīng)歷演變之后也變得并不遜色。

        如果從用戶對項目需求的角度來考慮,則無論何種編程語言和開發(fā)工具都表現(xiàn)出單憑自身無法滿足用戶需求的特點,必須結(jié)合各種技術(shù)框架和設(shè)計思想綜合運用,才能達到滿足用戶需求的目標(biāo)。

        4.1.3 每一種具體流程標(biāo)準(zhǔn)的追隨者都是一個共同體

        對軟件工程做深入研究會發(fā)現(xiàn)其中包含著豐富的思想和流程標(biāo)準(zhǔn)。從軟件過程模型來看,各種文獻中提供了“規(guī)定性的”和“描述性的”模型若干種,其中典型的模型有瀑布模型、原型化模型、敏捷開發(fā)等;[7]從開發(fā)方法來看,典型的方法有面向?qū)ο蟮拈_發(fā)方法、可視化開發(fā)方法等;[8]從項目管理方面來看,則有PMBOK(項目管理知識體系)這樣整套的管理技術(shù)與方法;在開發(fā)過程的指導(dǎo)和開發(fā)能力的評估方面,則有CMMI這樣的軟件能力成熟度模型。面對匯聚而成的如此浩瀚的標(biāo)準(zhǔn)海洋,每種支流都有其龐大的追隨者。項目開發(fā)中原型化法與敏捷開發(fā)的運用難分伯仲,面向問題的分析方法PAM、面向?qū)ο蟮拈_發(fā)方法、可視化開發(fā)方法更是呈三足鼎立之勢,管理方式上和開發(fā)過程的流程也都在向PMBOK和CMMI靠攏,這似乎形成了一股潮流,形成了對范式的一種尊崇。

        尊崇敏捷開發(fā)的共同體在軟件項目開發(fā)過程中迅速響應(yīng)用戶方面的優(yōu)勢明顯,但如果是做軟件產(chǎn)品開發(fā),其所有神圣的宣言將會失去神圣色彩,這是由軟件項目與軟件產(chǎn)品的區(qū)別決定的。CMMI雖然是為了提高軟件企業(yè)的開發(fā)效率和軟件產(chǎn)品的質(zhì)量而設(shè)計的措施,但是如果企業(yè)所采用能力成熟度級別措施沒有與所開發(fā)的項目或產(chǎn)品的規(guī)模和復(fù)雜度相匹配,要么是累贅的流程會拖延開發(fā)進程,要么是不夠成熟的體系掌控不了全局。

        由此可見,同一個軟件項目或產(chǎn)品的開發(fā)活動中不同共同體按照各自的范式標(biāo)準(zhǔn)雖然都有可能達成目標(biāo)——這也是為什么共同體成員對其所遵循的范式所深信不疑的原因——但是其各自遵循的范式標(biāo)準(zhǔn)是否是最好的?顯而易見并不一定是。不同共同體的成員擁有不同的世界觀,這種世界觀在最初形成范式的過程中或接受學(xué)習(xí)某一范式的過程中就已經(jīng)發(fā)揮著作用。由于此后共同體成員的大部分精力集中在如何利用現(xiàn)有的范式標(biāo)準(zhǔn)從事解謎活動,他們的關(guān)注點聚焦在了如何達成既定目標(biāo),因此束縛了他們最初的那種開創(chuàng)新事物或接受新事物的能力。而且一旦解謎成功,他們就信心倍增,更加堅信其范式的優(yōu)越性。他們通常沒有或者很少去考察“開發(fā)同一個項目或產(chǎn)品究竟使用何種范式標(biāo)準(zhǔn)更優(yōu)”,一是因為時間和精力有限,況且這個對比驗證的過程工作量巨大,存在很多難度與挑戰(zhàn);二是因為人們遵循某種范式后形成了某種思維慣性,習(xí)慣于用自己所熟悉的方式來處理問題,這樣就會逐漸失去客觀的評判能力。如果一旦解謎活動失敗,開始有人持懷疑態(tài)度,伴隨著這種問題長期得不到妥善解決,特別是此后的解謎活動失敗和反?,F(xiàn)象屢次頻發(fā),就會撼動范式在共同體成員心目中的地位。此時共同體中的一些成員就會把視線轉(zhuǎn)移到其它范式,以期望能夠找到解決問題的辦法。特別值得注意的是,此時共同體中如果有新成員的加入,尤其是對其它范式有開發(fā)實踐研究經(jīng)驗的人,便會對共同體成員思想的轉(zhuǎn)變起到催化劑的作用。伴隨著引入新范式解謎成功導(dǎo)致使危機產(chǎn)生,并逐步走向范式轉(zhuǎn)換的革命之路。范式的革命性轉(zhuǎn)變也意味著一個軟件的生命周期結(jié)束。

        軟件開發(fā)共同體范式的轉(zhuǎn)變是共同體成員世界觀的轉(zhuǎn)變,起初是從一種信仰轉(zhuǎn)為另一種信仰,但是當(dāng)經(jīng)歷過幾次軟件生命周期和范式的變革之后,他們也會意識到范式標(biāo)準(zhǔn)的相對性,沒有絕對好的范式標(biāo)準(zhǔn)而只有相對好的范式標(biāo)準(zhǔn),好的范式標(biāo)準(zhǔn)唯一不變的特性只有變化本身。而在軟件開發(fā)過程中做出何種選擇,完全出于共同體主體的實踐理性。

        4.2 拉卡托斯思想對軟件開發(fā)過程的啟示

        4.2.1 軟件開發(fā)中的硬核研究

        無論是科學(xué)理論還是技術(shù)理論,一個最基本的標(biāo)準(zhǔn)是要有硬核,硬核作為其理論體系的核心部分,體現(xiàn)了其理論體系的本質(zhì)特征,不同科學(xué)技術(shù)理論的硬核不同,它們是在不斷地實踐中沉淀的思想結(jié)晶。

        軟件開發(fā)過程中,無論是選擇現(xiàn)存的思想、架構(gòu)、語言、工具,還是在開發(fā)活動中形成的經(jīng)驗積累,都應(yīng)該具有作為硬核部分的核心理論體系。如果沒有硬核,說明軟件知識形態(tài)還處于初期的形成階段,對于這種未成熟的軟件知識形態(tài)還要觀察其發(fā)展態(tài)勢,因此還談不上對其優(yōu)劣做出評判。那么硬核的具體體現(xiàn)是什么樣的?拿編程語言和開發(fā)工具舉例,各種編程語言的語法規(guī)則、語言特性和其所遵照的編程思想原則就是其硬核,而對于開發(fā)工具來說,.Net Framework是Visual Studio開發(fā).NET程序的硬核,JDK是開發(fā)Java程序的硬核。拿軟件工程過程舉例,軟件過程模型方法策略是建模階段的硬核,軟件項目管理計劃和管理方法是項目管理過程的硬核,軟件需求分析的方法策略是獲取需求階段的硬核,軟件體系結(jié)構(gòu)設(shè)計方法策略是概要設(shè)計階段的硬核,軟件的模塊設(shè)計方法和原則規(guī)范是詳細設(shè)計階段的硬核,軟件測試計劃和原則方法則是軟件測試階段的硬核。

        對于一個軟件開發(fā)團隊而言,至少要形成兩種硬核:一種是所研發(fā)出的軟件產(chǎn)品具備的功能硬核,它決定了軟件產(chǎn)品在市場中的核心競爭力,是其價值彰顯的根本所在;另一種是軟件開發(fā)團隊自身的開發(fā)經(jīng)驗積累。只有至少具備了兩種硬核,才算具備了參與好壞優(yōu)劣的評判基礎(chǔ)。

        4.2.2 軟件開發(fā)中的保護帶研究

        硬核理論并不是孤立存在的,在它周圍有保護帶保護硬核免受傷害,保護帶在科學(xué)理論中體現(xiàn)為一系列科學(xué)假說、初始條件和背景知識,在技術(shù)理論中則體現(xiàn)為應(yīng)用條件、環(huán)境限制以及輔助說明。

        在軟件開發(fā)過程中,如果遇到重大需求變更對項目管理過程造成威脅時,則通過建立項目需求變更流程機制來處理,避免項目管理流程體系的科學(xué)性遭到?jīng)_擊;如果需要變更的內(nèi)容對原有軟件設(shè)計體系造成威脅,則采取構(gòu)建子系統(tǒng)、服務(wù)程序、擴充接口和模塊的方式與現(xiàn)有主體系統(tǒng)進行交互,避免主體設(shè)計體系遭到破壞;如果針對某一具體的程序功能提出擴展需求時,則采取擴充功能類及功能類中的方法,并在方法調(diào)用處使用“反射+配置文件”或“適配器模式”避免原有程序邏輯的整潔性和清晰性遭到破壞。這些都可以看作是保護硬核體系的保護帶,而且保護帶一旦起到進步性的作用,也會逐漸演化為硬核的一部分。對于一些程序配置的設(shè)計、軟件設(shè)計模式的使用、程序邏輯分層的設(shè)計、分布式的程序設(shè)計、項目集群的設(shè)計,這些以提高靈活性、避免修改原有程序、提高程序可復(fù)用性和擴展性、以高內(nèi)聚低耦合為目標(biāo)原則的設(shè)計,實際上也都是為了保護各種理論硬核而采取的保護帶措施。甚至在軟件提交時,如果仍然存在已知但是尚未解決的問題,通常會在軟件操作手冊中做出特殊說明,以免軟件的可用性遭到質(zhì)疑,例如我們在使用某些Web站點的功能時,經(jīng)常被要求使用特定的瀏覽器,或者要開啟兼容模式才能訪問。

        4.2.3 軟件開發(fā)中的啟發(fā)法研究

        理論體系在正面啟發(fā)法的作用下完善保護帶以提供新的預(yù)測功能,在反面啟發(fā)法的作用下保護硬核不受反駁而提供問題的轉(zhuǎn)化和解決功能,從而使自身不斷在進化與退化中發(fā)展演化。

        在軟件開發(fā)過程中,正面啟發(fā)法的例子體現(xiàn)在發(fā)布新版本帶來的兼容性升級或擴展性升級。例如:VS2019既能提供VS2017的兼容又有了新的功能改進;VS2017與以往的VS版本相比,增加了.Net Core為跨平臺的操作提供了解決方案,提供了開發(fā)IOS和Android項目的開發(fā)方案等。反面啟發(fā)法的例子則體現(xiàn)在發(fā)布升級補丁包帶來的功能優(yōu)化或漏洞修復(fù)。例如:開發(fā)工具和軟件根據(jù)搜集的用戶反饋信息發(fā)布功能優(yōu)化補??;為應(yīng)對黑客的漏洞攻擊所作的有針對性漏洞安全修復(fù)補丁。正面啟發(fā)法是主動的、有預(yù)見性的解決新問題,反面啟發(fā)法是被動的、防御性的解決帶有威脅性的問題。在正面啟發(fā)法的作用下解決了更多的問題,有了更多的預(yù)見性,則該軟件理論體系就是進步性的綱領(lǐng),而一旦發(fā)生越來越多的解決不了的問題或一味采取防御性的修補措施,伴隨著預(yù)見性的漸漸失去該軟件理論體系就逐漸淪為退步的綱領(lǐng)。例如:VS2017相比之前版本解決了跨平臺的問題以及IOS和Android項目的開發(fā)問題是進步的體現(xiàn);而多年前的VB6、Delphi7不能針對Web應(yīng)用開發(fā)提供解決方案,以及無法滿足用戶的多元化需求最終逐漸走向沒落則是退步的體現(xiàn)。

        由此可見,硬核、保護帶和啟發(fā)法所構(gòu)成的研究綱領(lǐng)理論體系可作為成熟理論體系的一個評價參考尺度。軟件開發(fā)過程中在選擇第三方的理論或工具時,有必要考察被選擇對象是否是具備這三者的成熟理論體系,尤其要關(guān)注其硬核是否可以解決軟件開發(fā)中的難點和重點以生產(chǎn)出具有核心競爭力的軟件。軟件開發(fā)團隊自身則要在不斷的項目實踐活動中歷練,逐漸形成具備這三者的理論體系作為經(jīng)驗積累以鑄造具備核心競爭力的團隊。這樣便具備了作為衡量發(fā)展進步尺度的雙重科學(xué)標(biāo)準(zhǔn)。

        但是更進一步分析,如果多個軟件開發(fā)企業(yè)團隊、多個不同的軟件項目或產(chǎn)品都已形成或具備了這樣的理論體系,將他們放在一起比較則依舊很難分出好壞優(yōu)劣,這是因為研究綱領(lǐng)理論體系是衡量科學(xué)性的標(biāo)準(zhǔn),而好壞優(yōu)劣是從技術(shù)的功利性角度來衡量的,即滿足目標(biāo)的有用性和有效性。因此在遵照科學(xué)研究綱領(lǐng)方法論的基礎(chǔ)前提下開展的軟件開發(fā)活動,結(jié)合團隊自身特點和能力范圍運用方法并且如期達成了功利性目標(biāo),將之綜合考量才可以確定是否是一種好的方案。這樣的好方案同樣具有相對性,相對性的跨度既取決于科學(xué)研究綱領(lǐng)進步的持續(xù)過程的跨度,又取決于開發(fā)團隊的主體性因素。

        5 軟件開發(fā)的相對評價標(biāo)準(zhǔn)及其影響因素

        在做出問題分析的結(jié)論之前,我們再來看最后一個例子。

        眾所周知淘寶網(wǎng)已成為我們今天生活中所離不開的購物平臺之一,憑借其先進的技術(shù)理念和平臺的穩(wěn)定性帶給用戶的體驗足以被視為互聯(lián)網(wǎng)開發(fā)的成功典范,像這種級別的互聯(lián)網(wǎng)平臺設(shè)計及其技術(shù)理論體系都頂著成功企業(yè)的耀眼光環(huán)。然而,如果考察過淘寶網(wǎng)的發(fā)展歷史便會發(fā)現(xiàn),這樣一個高大的形象也并不是一次性樹立起來的,而是經(jīng)歷了漫長的歷史演變過程。它最初是由工程師基于3000美元購買的PHP程序代碼上進行技術(shù)改進后形成的基礎(chǔ)技術(shù)架構(gòu),[9]從規(guī)模上看那時的它和今天的小型網(wǎng)站并無區(qū)別,甚至從技術(shù)體系成熟度來看比今天的小型網(wǎng)站還要遜色,因為經(jīng)過時代的變遷,如今的小型網(wǎng)站架構(gòu)體系中已經(jīng)融合了各種新技術(shù)和新思想。正是這樣一個小型網(wǎng)站的架構(gòu)在經(jīng)過體系的不斷革新之后,才形成了今天如此有影響力的大平臺。

        至此結(jié)論已經(jīng)不言自明了,好的軟件項目和產(chǎn)品都是在不斷的開發(fā)實踐過程中演變而來的,既沒有一步到位方法更沒有一勞永逸方案。衡量軟件方案的標(biāo)準(zhǔn)也只能是相對性的標(biāo)準(zhǔn)和階段性的標(biāo)準(zhǔn)。開發(fā)過程中形成一定的范式,并遵從范式在解謎活動中取得成功,是相對的好;突破原有范式使之發(fā)生革命性的轉(zhuǎn)變,從而解決老范式不能解決的問題,是相對的好;形成理論硬核并在各種輔助性措施下不斷砥礪前行,不斷的預(yù)見和解決新的問題,不斷完善自身體系的不足,不斷的朝著進步的方向演變,也是相對的好。

        相對的評判標(biāo)準(zhǔn)取決四個方面:目標(biāo)問題是否得到妥善解決;物質(zhì)資源的利用率是否達到最優(yōu);人力資源的能力是否發(fā)揮最優(yōu);使用的方法策略是否最合理。如果把這樣的情況用函數(shù)的方式描述,那么特定階段的時空就是軟件開發(fā)活動的作用域。可以把目標(biāo)問題域看作是值域,時空中的物質(zhì)資源一旦確定下來就可看作是階段性的常量,使用的方法策略可看作是函數(shù)表達式,而作為主體的人處理問題的能力可看作是自變量,人處理問題的能力范圍則構(gòu)成了定義域。人的主體選擇性和創(chuàng)造性等相關(guān)能力決定了方法策略的函數(shù)表達式的形式,人處理問題的能力范圍(即自變量的取值范圍)決定了目標(biāo)問題域(即值域)的取值范圍。

        由此得出“影響評判標(biāo)準(zhǔn)的因素”可歸為時空環(huán)境因素、人的世界觀、人的能力因素。其中能力因素中的主體選擇能力和創(chuàng)造能力受世界觀的影響,兩者又決定了做出的何種方法策略;人處理問題的能力以及在能力范圍內(nèi)的波動與方法策略的共同作用決定了目標(biāo)問題的效果。時空因素在一般情況下是處于穩(wěn)定狀態(tài)的因素,但是人的創(chuàng)造力會使其發(fā)生革命性突變,一旦突變發(fā)生人的世界觀就要重新形成,從而引起評判標(biāo)準(zhǔn)和其相關(guān)因素的新變化。所以,起決定性作用的因素并不是什么單一的因素,而是時空和人的綜合性因素。認(rèn)清共同體成員自身的能力范圍,認(rèn)清所處的時空環(huán)境,認(rèn)清人的能力之間的協(xié)調(diào)性與作用邊界,方能做出通往需求目標(biāo)的最適合的方法策略,這樣所達成目標(biāo)的方案才能是相對標(biāo)準(zhǔn)范圍內(nèi)的好方案。這樣的方案將使未來面臨的風(fēng)險降到最低,面臨的不確定性得以妥善應(yīng)對,真正做到以審時度勢的方式科學(xué)應(yīng)對問題。

        6 結(jié)束語

        在軟件開發(fā)這個神奇的領(lǐng)域,哲學(xué)不但沒有死,相反有著旺盛的生命力和巨大的活力。每一次的思辨,帶來的都會是質(zhì)的飛躍,可能是編程語言的誕生、開發(fā)工具的改進、架構(gòu)體系的革新、設(shè)計模式的調(diào)整、軟件代碼的重構(gòu)、新算法的融合,抑或是管理流程的優(yōu)化。軟件開發(fā)中固然也存在種種問題,而且許多問題目前尚未很好地得到解決,但恰恰是問題給了哲學(xué)存在的價值和空間。即使暫時在叢林中走錯了路,只要哲學(xué)的思辨還在進行,只要方法還在不斷地革新,那么迷失是暫時的,重見光明是必然的,問題遲早會得到解決。

        科學(xué)在發(fā)展的道路上固然要與哲學(xué)各有分工、相互配合,這種分工與配合的活動需要人來完成,而人是具有流動性的思維載體,不可能永恒全部固守在某一個特定的領(lǐng)域,因此造成各個領(lǐng)域的發(fā)展會呈現(xiàn)出不均衡的態(tài)勢。由于在不同的領(lǐng)域中,呈現(xiàn)出的問題日益復(fù)雜化,處于不同發(fā)展階段的問題又各有其特點,人們在處理問題時又因主次之別而各有側(cè)重,解決問題的方法日益多元化,組織結(jié)構(gòu)的特點日益多樣化,因此解決問題的效果也會良莠不齊。對于這兩種狀況,我們只要翻越思維的屏障,重新審視就會發(fā)現(xiàn):發(fā)展的不均衡態(tài)勢是作為科學(xué)與哲學(xué)兩種思維載體的人沒有均勻融合造成的;解決問題的良莠不齊是方法運用的不合理造成的。此時創(chuàng)新便顯得極為重要,創(chuàng)新的思維模式與創(chuàng)新的方法可以打破固有的思想藩籬,解放僵化的思維模式,使哲學(xué)思維和科學(xué)思維重新調(diào)和溶解,使運用的方法重新得到優(yōu)化和配置,在創(chuàng)新的指引下一切被動的受困都會變成主動的牽引。

        猜你喜歡
        硬核范式共同體
        愛的共同體
        以寫促讀:構(gòu)建群文閱讀教學(xué)范式
        甘肅教育(2021年10期)2021-11-02 06:14:08
        共建人與自然生命共同體
        范式空白:《莫失莫忘》的否定之維
        構(gòu)建和諧共同體 齊抓共管成合力
        甘肅教育(2020年17期)2020-10-28 09:01:36
        共同體的戰(zhàn)斗
        硬核爺爺煉成記
        “硬核”舉措下的暖心舉動
        孫惠芬鄉(xiāng)土寫作批評的六個范式
        用“三個最嚴(yán)”彰顯“硬核”擔(dān)當(dāng)
        公民與法治(2020年6期)2020-05-30 12:44:00
        精品人妻中文av一区二区三区| 青青草在线免费视频播放| 亚洲最大成人综合网720p| 狠狠躁日日躁夜夜躁2020| 摸进她的内裤里疯狂揉她动视频 | 国产一区二区三区四区色| 日产国产精品亚洲高清| 久久久久久久久无码精品亚洲日韩 | 喷水白浆视频在线观看| 国产69精品久久久久app下载| 欧美日韩一区二区综合| 亚洲线精品一区二区三区八戒| 中文字幕日本一区二区在线观看| 国产亚洲中文字幕一区| 久久影院午夜理论片无码| 中文无码久久精品| 中文字幕久久久久久精| 日韩一区二区,亚洲一区二区视频 国产一区二区三区经典 | 极品美女aⅴ在线观看| 亚洲另类激情专区小说婷婷久| 亚洲视频一区二区蜜桃| 日本一区二区三区视频免费在线| 三级做a全过程在线观看| 性色av无码一区二区三区人妻| 欧美精品久久久久久三级| 熟女不卡精品久久av| 国产精品女老熟女一区二区久久夜| 狠狠噜天天噜日日噜无码| 国内精品九九久久久精品| 日韩在线手机专区av| 国产亚洲精品在线视频| 正在播放老肥熟妇露脸| 国产精品内射后入合集| 极品美女销魂一区二区三| 亚洲av高清一区二区在线观看| 亚洲av无码成人精品区狼人影院| 国产成人av 综合 亚洲| 日本人妻少妇精品视频专区| 亚洲日本一区二区在线| 国产三级精品三级| 国产精品麻花传媒二三区别|