【廣告】
即使他們不是主要的軟件開發(fā)人員,諸如科學(xué)家,設(shè)備制造商和硬件制造商之類的專業(yè)人員也可以創(chuàng)建軟件代碼。它也不限于軟件或半導(dǎo)體業(yè)務(wù)等傳統(tǒng)信息技術(shù)行業(yè)。實(shí)際上,根據(jù)布魯金斯學(xué)會(huì)的說法,這些企業(yè)“僅占進(jìn)行軟件開發(fā)的企業(yè)的不到一半?!币粋€(gè)重要的區(qū)別是軟件定制開發(fā)與商業(yè)軟件開發(fā)相反。定制軟件開發(fā)是為一組特定的用戶,功能或組織設(shè)計(jì),創(chuàng)建,部署和維護(hù)軟件的過程。
軟件不是魔術(shù)。雖然它看起來像魔術(shù),或者是魔法,但它不是魔法。每一個(gè)元素都是由人設(shè)計(jì)的,都有其數(shù)學(xué)基礎(chǔ),或者是可以用人類語言解釋的過程。與魔術(shù)不同,軟件不是憑空變出來的。它需要設(shè)計(jì)、構(gòu)建和維護(hù)。就像房子有多種系統(tǒng)一起工作(地基、結(jié)構(gòu)、管道、房間、家具等等)那樣,軟件系統(tǒng)也需要許多層和子系統(tǒng)來創(chuàng)建整個(gè)系統(tǒng)。
在面向?qū)ο缶幊讨?,程序員可以把程序看成是一個(gè)交互對(duì)象的集合,而在功能編程中,程序可以看成是一個(gè)無狀態(tài)的函數(shù)評(píng)價(jià)序列。當(dāng)計(jì)算機(jī)或具有許多處理器的系統(tǒng)編程時(shí),面向過程的程序設(shè)計(jì)允許程序員將程序看作是一組并發(fā)的進(jìn)程,并在邏輯上共享的數(shù)據(jù)結(jié)構(gòu)上起作用。正如軟件工程中不同的群體主張不同的方法一樣,不同的編程語言也主張不同的編程范式。
LePUS3是一種面向?qū)ο蟮目梢暬O(shè)計(jì)描述語言,也是一種正式的規(guī)范語言,主要適用于大型面向?qū)ο螅↗va、C 、C#)程序和設(shè)計(jì)模式的建模。規(guī)范和描述語言(SDL)旨在對(duì)反應(yīng)式和分布式系統(tǒng)的行為進(jìn)行明確的規(guī)范和描述。統(tǒng)一建模語言(UnifiedModelingLanguage,UML)是一種通用的建模語言,是軟件密集型系統(tǒng)的行業(yè)標(biāo)準(zhǔn)。當(dāng)前版本的UML2.0支持13種不同的圖示技術(shù),并有廣泛的工具支持。