劉春紅
摘要:人類(lèi)制造出了迄今為止最復(fù)雜的工具——計(jì)算機(jī)軟件,軟件究竟是什么?我們應(yīng)如何看待它?本文結(jié)合長(zhǎng)期的專(zhuān)業(yè)實(shí)踐,嘗試著從哲學(xué)的高度進(jìn)行了理論概括和反思。
關(guān)鍵詞:計(jì)算機(jī);軟件;哲學(xué)
1引言
人類(lèi)社會(huì)所特有的技術(shù)結(jié)構(gòu)包括兩方面:一方面是外在于人的工具系統(tǒng);另一方面是人使用工具的技能。這兩方面相互協(xié)調(diào)又互相轉(zhuǎn)化地雙向發(fā)展,推動(dòng)著人類(lèi)技術(shù)以加速度向前發(fā)展,并由此導(dǎo)致了社會(huì)現(xiàn)代化和人類(lèi)自身現(xiàn)代化的雙向發(fā)展。以往的工具都是人類(lèi)軀體的延伸。而計(jì)算機(jī)是人腦的延伸。計(jì)算機(jī)不同于以往物質(zhì)生產(chǎn)工具的一個(gè)重要特點(diǎn)是工具中出現(xiàn)了軟件。軟件究竟是什么?這是當(dāng)代信息技術(shù)出現(xiàn)以來(lái)技術(shù)理論與實(shí)踐面對(duì)的一個(gè)新問(wèn)題,迫切需要從哲學(xué)的高度進(jìn)行理論概括和哲學(xué)反思。軟件是知識(shí)形態(tài)的技術(shù),是人類(lèi)思維程序的外化,是一種特殊的符號(hào)體系,它是可執(zhí)行的程序。
2軟件的特點(diǎn)及發(fā)展
(1)軟件是一種邏輯實(shí)體。硬件是看得見(jiàn)摸得著的,而軟件則不同,人們無(wú)法看到軟件的形態(tài)。而必須通過(guò)觀察、分析、思考、判斷,去了解它的功能。性能及其他特性。
(2)軟件的生產(chǎn)與硬件不同。軟件是通過(guò)人的腦力勞動(dòng),把知識(shí)和技術(shù)轉(zhuǎn)化成信息的一種產(chǎn)品。
(3)軟件在生存期沒(méi)有硬件那樣的機(jī)械磨損、老化問(wèn)題,但存在退化問(wèn)題。
(4)軟件的開(kāi)發(fā)和運(yùn)行常常受到計(jì)算機(jī)系統(tǒng)的限制。
(5)軟件的開(kāi)發(fā)尚未完全擺脫手工藝的開(kāi)發(fā)方式。
(6)軟件是復(fù)雜的。
(7)軟件成本相當(dāng)昂貴。
(8)軟件工作涉及到社會(huì)因素。
至今,軟件經(jīng)歷了三個(gè)發(fā)展階段:
(1)程序設(shè)計(jì)階段(20世紀(jì)50至60年代)
(2)程序系統(tǒng)階段(20世紀(jì)60至70年代)
(3)軟件工程階段(20世紀(jì)70年代后)
3主觀認(rèn)知與客觀實(shí)際的對(duì)立統(tǒng)一問(wèn)題
人們對(duì)客觀事物的認(rèn)識(shí)是客觀事物的特性或特征在我們頭腦中的反映,客觀事物的存在不以我們的意志為轉(zhuǎn)移。在軟件生存期的各個(gè)階段都可能發(fā)生主觀認(rèn)知與客觀實(shí)際不一致的情況。
軟件需求分析工作是軟件生存期中決定性的一步。用戶必須對(duì)軟件功能和性能提出要求,并澄清一些模糊概念。而軟件分析人員則要認(rèn)真了解用戶的需求,把用戶“做什么”的要求轉(zhuǎn)換成邏輯模型并寫(xiě)出軟件的需求規(guī)格說(shuō)明,準(zhǔn)確地表達(dá)用戶的要求。軟件工程師通常是在為他們?cè)静皇煜さ膶?zhuān)業(yè)領(lǐng)域的用戶群開(kāi)發(fā)軟件。而用戶通常對(duì)計(jì)算機(jī)軟件領(lǐng)域知識(shí)不熟悉。專(zhuān)業(yè)的差別使得他們看待問(wèn)題的角度也不同。如果雙方交流不充分,就會(huì)嚴(yán)重影響需求規(guī)格說(shuō)明的質(zhì)量,最終導(dǎo)致軟件工程的失敗。
4聯(lián)系的觀點(diǎn)
沒(méi)有哪一個(gè)事物是孤立存在的。它總是和其他事物有著千絲萬(wàn)縷的聯(lián)系。
軟件生存期的前一階段的工作總是為下一階段做準(zhǔn)備的。前一階段完成的質(zhì)量不高,就會(huì)給后續(xù)工作帶來(lái)更大的麻煩,影響整個(gè)軟件工程的進(jìn)度。
有人認(rèn)為,人類(lèi)能夠創(chuàng)造的最復(fù)雜的產(chǎn)物是計(jì)算機(jī)軟件。軟件的復(fù)雜性主要來(lái)自它所反映的實(shí)際問(wèn)題的復(fù)雜性。通常,一個(gè)軟件會(huì)涉及多門(mén)學(xué)科、多個(gè)領(lǐng)域、多個(gè)部門(mén)。要使開(kāi)發(fā)的軟件能夠讓用戶滿意,必須考慮到問(wèn)題的方方面面,任何一處的疏漏都可能造成非常嚴(yán)重的后果。
5發(fā)展的觀點(diǎn)
事物總是在不斷變化的,沒(méi)有絕對(duì)靜止的事物。社會(huì)在變,政策在變,人的素質(zhì)在提高,計(jì)算機(jī)技術(shù)在發(fā)展,諸多的因素使得軟件應(yīng)用的環(huán)境也在不斷發(fā)生變化,因此必須對(duì)軟件進(jìn)行改正性維護(hù)、完善性維護(hù)和預(yù)防性維護(hù)。
6人的作用
軟件是人高強(qiáng)度腦力勞動(dòng)的產(chǎn)品。同時(shí)人也是軟件的使用者。人利用自己制造的這一工具為進(jìn)一步認(rèn)識(shí)世界和改造世界服務(wù)。在這一系統(tǒng)中人占據(jù)核心地位,發(fā)揮著主導(dǎo)作用。
人才是軟件業(yè)永遠(yuǎn)不會(huì)過(guò)時(shí)的核心競(jìng)爭(zhēng)力。智力資源的新陳代謝對(duì)軟件行業(yè)來(lái)說(shuō)就好比是流通在企業(yè)中的血液,能增強(qiáng)企業(yè)的生產(chǎn)開(kāi)發(fā)能力。我們不可能要求每一個(gè)軟件業(yè)中的人員都成為多面手,因此對(duì)于整個(gè)產(chǎn)業(yè)而言就需要一個(gè)比較合理的人才配比結(jié)構(gòu)。在像印度這樣的軟件強(qiáng)國(guó),人才層次結(jié)構(gòu)一般有管理人才、軟件與相關(guān)行業(yè)分析人才和軟件工人三個(gè)層次,呈金字塔形分布。
作為軟件使用者的人來(lái)說(shuō),他們的素質(zhì)高低也是軟件應(yīng)用成敗的關(guān)鍵因素之一。軟件使用者群體,可能包括單位的最高決策層、中層管理干部、基層管理干部、普通員工,他們?cè)谲浖?yīng)用中發(fā)揮的作用也不盡相同。一套軟件系統(tǒng),特別是管理信息軟件系統(tǒng),如果沒(méi)有最高決策管理層的大力支持或者最起碼是不設(shè)障礙,那么成功的可能性幾乎就是零。而對(duì)操作層的人員來(lái)說(shuō),沒(méi)有充分的軟件應(yīng)用培訓(xùn),也必然會(huì)導(dǎo)致錯(cuò)誤操作,直接影響應(yīng)用的推行。
7內(nèi)容與形式的問(wèn)題
內(nèi)容本身具有一定的形式,同時(shí)形式又是內(nèi)容的外在表現(xiàn)。
從一定意義上來(lái)說(shuō),軟件的用戶界面是形式,而功能及性能是內(nèi)容。作為用戶與計(jì)算機(jī)的接口。用戶界面好壞直接影響到軟件的競(jìng)爭(zhēng)力。當(dāng)然內(nèi)容是最重要的。即使用戶界面做的再精美,沒(méi)有強(qiáng)大的功能、可靠的性能。這樣的軟件也是不會(huì)受到用戶青睞的。