1、一些特点不一样:
软件,无形的,没有物理形态,只能通过运行状况来了解功能、特性、和质量;软件渗透了大量的脑力劳动,人的逻辑思维、智能活动和技术水平是软件产品的关键。
程序,以某些程序设计语言编写,运行于某种目标结构体系上。
2、作用不一样
软件,运行时,能够提供所要求功能和性能的指令或计算机程序集合;程序能够满意地处理信息的数据结构。
程序,识别和执行的指令,满足人们某种需求的信息化工具。
扩展资料:
软件按授权类别分类:
专属软件:此类授权通常不允许用户随意的复制、研究、修改或散布该软件。违反此类授权通常会有严重的法律责任。传统的商业软件公司会采用此类授权,例如微软的Windows和办公软件。专属软件的源码通常被公司视为私有财产而予以严密的保护。
自由软件:此类授权正好与专属软件相反,赋予用户复制、研究、修改和散布该软件的权利,并提供源码供用户自由使用,仅给予些许的其它限制。以Linux、Firefox 和OpenOffice 可做为此类软件的代表。
共享软件:通常可免费的取得并使用其试用版,但在功能或使用期间上受到限制。开发者会鼓励用户付费以取得功能完整的商业版本。根据共享软件作者的授权,用户可以从各种渠道免费得到它的拷贝,也可以自由传播它。
免费软件:可免费取得和转载,但并不提供源码,也无法修改。
公共软件:原作者已放弃权利,著作权过期,或作者已经不可考究的软件。使用上无任何限制。
参考资料来源:百度百科-程序
参考资料来源:百度百科-软件
1、概念不同。
应用程序(applicationsoftware或 application Program)是计算机软件的主要分类之一,是指为针对用户的某种特殊应用目的所撰写的软件。
应用程序在分类上也比较多,系统应用程序,桌面应用程序,驱动应用程序,网络应用程序,手机应用程序,物联网应用程序等。
根据《软件工程:实践者的研究方法》中的定义,软件(software)是一系列按照特定顺序组织的计算机数据和指令,是计算机中的非有形部分。计算机中的有形部分称为硬件,由计算机的外壳及各零件及电路所组成。
软件由一个或多个应用程序组合而成,分类上有编程语言、系统软件、恶意软件,嵌入式软件,游戏软件,应用软件和介于这两者之间的中间件。
系统软件就是常见的操作系统,Windows,MacOS,Linux都是操作系统软件。
应用软件是需要运行在操作系统上的软件,比如常见的文档处理软件,图像处理软件,编程软件等。
恶意软件会故意造成隐私或机密数据外泄、系统损害(包括但不限于系统崩溃等)、数据丢失等故障及信息安全问题。
中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。
软件包括所有在计算机运行的程序,和其架构无关,例如可执行文件、库及脚本语言都属于软件。软件不分架构,有其共通的特性。
应用程序只是软件的一部分,而软件的概念及其广泛,不是只有应用程序。
2、功能不同
软件由多个应用程序组合而成,功能及其复杂,比如常见的office软件,能做表格,做PPT,处理文档等功能。
而应用程序功能比较单一,只能处理一类工作。PPT只能用来处理幻灯片,没有办法处理复杂表格,想要录制音频需要调用office软件包里录制音频的应用程序。
3、开发难度不同。
软件的开发难度要比应用程序大得多,由于需要多个应用程序配合,而且需要在不同的操作系统平台上发布,都是用不同的编程语言混合开发而成。
软件对性能有一定的要求,很少选择性能比较差的脚本语言开发,一般都是使用C++,Java这类编译型语言开发。
但编译型语言的问题是,有的语言设计不合理,历史积累,不够成熟等原因,造成开发起来较繁琐,调试比较困难,开发时间较长。因此一个功能完整的软件开发起来通常需要几年才能完成。
最常见的游戏软件就是如此,很多游戏软件的游戏引擎都是C++,C#这种编译型语言开发(有现成的也需要二次开发),也是整个游戏的灵魂,开发难度也是最大的。
而游戏的动作,事件等则选择LUA,JavaScript或者Python这些脚本语言开发。很多游戏大作都是跨平台的,开发周期最少的都在1年以上。
应用程序的功能相对比较单一,遇到的业务场景也不会很复杂。通常开发一个功能完善的应用程序,只需要几个月时间,复杂的应用程序最多1-2年就能完成。
应用程序通常对性能的需求没有软件那么大,很多解释型的脚本语言也可以开发。开发一个移动端手机应用程序(web应用程序),功能不算很复杂,开发周期都不长。通常一个完整的web应用程序,会分为客户端和服务端两部分。
/iknow-pic.cdn.bcebos.com/960a304e251f95cab93fe5afc7177f3e660952e4"target="_blank"title="点击查看大图"class="ikqb_img_alink">/iknow-pic.cdn.bcebos.com/960a304e251f95cab93fe5afc7177f3e660952e4?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto"esrc="https://iknow-pic.cdn.bcebos.com/960a304e251f95cab93fe5afc7177f3e660952e4"/>
客户端软件技术选型上,常用ReactNative或者flutter(IOS有自己的一套UI),服务端软件一般常用C++、Java、PHP、Python、Ruby等编程语言开发,通常都会同时在安卓和IOS平台上发布。
参考资料来源:/baike.baidu.com/item/%E5%BA%94%E7%94%A8%E8%BD%AF%E4%BB%B6/216367?fr=aladdin"target="_blank"title="百度百科——应用软件">百度百科——应用软件
参考资料来源:(美) Rosger S Pressman著,《软件工程:实践者的研究方法(原书第六版)》第一章
程序是通过计算机语言写出来的具有许多算法的摸板,是实现软件功能的底层推手(推手的意思可以理解为动力)。所以,程序是软件的内在因子,而软件是一个或多个程序通过编译器编译出来的成品。
打个比方,软件是一件衣服,那程序就是材料。
软件是由许多能实现某些固定任务的程序的集合
也就是说,软件是由许许多多的程序组合而成的。程序是由编程人员通过某种编程语言,编写出来能实现某些固定任务的代码。
可这么说,编程人员能过 通过C语言或其他某种语言,编写出一些能实现任务某些固定任务的函数,再把这些函数集合起来,通过编译程序编成软件,也就是我们通常在电脑上用的各种软件了。
软件是别人已经开发出来可以直接使用的,程序主要是你原代码文件,有了程序才有软件,一个软件可能只有一个程序文件,也可能有成千上万个程序文件.