什么是軟件開發(fā)?看完就刷新了你對(duì)軟件開發(fā)的認(rèn)知(什么叫軟件開發(fā)-)
根據(jù) IBM Research 說法:軟件開發(fā)是指一組計(jì)算機(jī)科學(xué)活動(dòng),專門用于創(chuàng)建,設(shè)計(jì),部署和支持軟件的過程。
軟件本身的就是一組指令或程序,它們告訴計(jì)算機(jī)要做什么。它獨(dú)立于硬件,并使計(jì)算機(jī)可編程。共有三種基本類型:
提供核心功能的系統(tǒng)軟件,例如操作系統(tǒng),磁盤管理,實(shí)用程序,硬件管理和其他操作必需品。
編程軟件,為程序員提供工具,例如文本編輯器,編譯器,鏈接器,調(diào)試器和其他用于創(chuàng)建代碼的工具。
應(yīng)用程序軟件(應(yīng)用程序或應(yīng)用程序),以幫助用戶執(zhí)行任務(wù)。Office生產(chǎn)力套件,數(shù)據(jù)管理軟件,媒體播放器和安全程序就是示例。應(yīng)用程序還指Web和移動(dòng)應(yīng)用程序,例如用于在Amazon.com上購(gòu)物,與Facebook進(jìn)行社交或?qū)D片發(fā)布到Instagram的那些應(yīng)用程序。
可能的第四種類型是嵌入式軟件。嵌入式系統(tǒng)軟件用于控制通常不視為計(jì)算機(jī)的機(jī)器和設(shè)備-電信網(wǎng)絡(luò),汽車,工業(yè)機(jī)器人等。這些設(shè)備及其軟件可以作為物聯(lián)網(wǎng)(IoT)的一部分進(jìn)行連接。
軟件開發(fā)主要由程序員,軟件工程師和軟件開發(fā)人員進(jìn)行。這些角色相互作用和重疊,并且它們之間的動(dòng)態(tài)因開發(fā)部門和社區(qū)而異。
程序員或編碼員將源代碼寫到程序計(jì)算機(jī),以完成特定任務(wù),例如合并數(shù)據(jù)庫(kù),處理在線訂單,路由通訊,進(jìn)行搜索或顯示文本和圖形。程序員通常會(huì)解釋軟件開發(fā)人員和工程師的指令,并使用C 或Java之類的編程語言來執(zhí)行它們。
軟件工程師運(yùn)用工程原理來構(gòu)建軟件和系統(tǒng)來解決問題。他們使用建模語言和其他工具來設(shè)計(jì)解決方案,這些解決方案通??梢砸砸话惴绞綉?yīng)用于問題,而不是僅僅解決特定的實(shí)例或客戶。軟件工程解決方案遵循科學(xué)方法,必須像橋梁或電梯一樣在現(xiàn)實(shí)世界中工作。
軟件開發(fā)人員的角色比工程師少,并且可以密切參與特定的項(xiàng)目領(lǐng)域,包括編寫代碼。同時(shí),他們推動(dòng)了整個(gè)軟件開發(fā)生命周期-包括跨職能團(tuán)隊(duì)工作以將需求轉(zhuǎn)換為功能,管理開發(fā)團(tuán)隊(duì)和流程以及進(jìn)行軟件測(cè)試和維護(hù)。
軟件開發(fā)工作并不局限于編碼人員或開發(fā)團(tuán)隊(duì)。即使他們不是主要的軟件開發(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ù)軟件的過程。相反,商用現(xiàn)貨軟件(COTS)是為滿足廣泛的需求而設(shè)計(jì)的,允許將其打包,進(jìn)行商業(yè)銷售和分發(fā)。