1、概念不同。
應用程序(或)是計算機軟件的主要分類之一,是指為針對用戶的某種特殊應用目的所撰寫的軟件。
應用程序在分類上也比較多,系統應用程序,桌面應用程序,驅動應用程序,網絡應用程序,手機應用程序,物聯網應用程序等。
根據《軟件工程:實踐者的研究方法》中的定義,軟件()是一系列按照特定順序組織的計算機數據和指令,是計算機中的非有形部分。計算機中的有形部分稱為硬件,由計算機的外殼及各零件及電路所組成。
軟件由一個或多個應用程序組合而成,分類上有編程語言、系統軟件、惡意軟件,嵌入式軟件,游戲軟件,應用軟件和介于這兩者之間的中間件。
系統軟件就是常見的操作系統,,MacOS,Linux都是操作系統軟件。
應用軟件是需要運行在操作系統上的軟件,比如常見的文檔處理軟件,圖像處理軟件,編程軟件等。
惡意軟件會故意造成隱私或機密數據外泄、系統損害(包括但不限于系統崩潰等)、數據丟失等故障及信息安全問題。
中間件是一種獨立的系統軟件或服務程序系統軟件是使用應用軟件開發的軟件,分布式應用軟件借助這種軟件在不同的技術之間共享資源。
軟件包括所有在計算機運行的程序,和其架構無關,例如可執行文件、庫及腳本語言都屬于軟件。軟件不分架構,有其共通的特性。
應用程序只是軟件的一部分系統軟件是使用應用軟件開發的軟件,而軟件的概念及其廣泛,不是只有應用程序。
2、功能不同
軟件由多個應用程序組合而成,功能及其復雜,比如常見的軟件,能做表格,做PPT,處理文檔等功能。
而應用程序功能比較單一,只能處理一類工作。PPT只能用來處理幻燈片,沒有辦法處理復雜表格,想要錄制音頻需要調用軟件包里錄制音頻的應用程序。
3、開發難度不同。
軟件的開發難度要比應用程序大得多,由于需要多個應用程序配合,而且需要在不同的操作系統平臺上發布,都是用不同的編程語言混合開發而成。
軟件對性能有一定的要求,很少選擇性能比較差的腳本語言開發,一般都是使用C++,Java這類編譯型語言開發。
但編譯型語言的問題是,有的語言設計不合理,歷史積累,不夠成熟等原因,造成開發起來較繁瑣,調試比較困難,開發時間較長。因此一個功能完整的軟件開發起來通常需要幾年才能完成。
最常見的游戲軟件就是如此,很多游戲軟件的游戲引擎都是C++,C#這種編譯型語言開發(有現成的也需要二次開發),也是整個游戲的靈魂,開發難度也是最大的。
而游戲的動作,事件等則選擇LUA,或者這些腳本語言開發。很多游戲大作都是跨平臺的,開發周期最少的都在1年以上。
應用程序的功能相對比較單一,遇到的業務場景也不會很復雜。通常開發一個功能完善的應用程序,只需要幾個月時間,復雜的應用程序最多1-2年就能完成。
應用程序通常對性能的需求沒有軟件那么大,很多解釋型的腳本語言也可以開發。開發一個移動端手機應用程序(web應用程序),功能不算很復雜,開發周期都不長。通常一個完整的web應用程序,會分為客戶端和服務端兩部分。
//"=""title="點擊查看大圖"class="">//?x-bce-=image%%%%%%%%%"esrc=""/>
客戶端軟件技術選型上,常用或者(IOS有自己的一套UI),服務端軟件一般常用C++、Java、PHP、、Ruby等編程語言開發,通常都會同時在安卓和IOS平臺上發布。
參考資料來源://item/%E5%BA%94%E7%94%A8%E8%BD%AF%E4%BB%B6/?fr="=""title="百度百科——應用軟件">百度百科——應用軟件
參考資料來源:(美)著,《軟件工程:實踐者的研究方法(原書第六版)》第一章