不知道你问这个问题是基于使用者的角度还是开发者的角度,如果你是基于开发者的角度,这个其实是软件工程经常会去讨论的问题,分清楚应用程序的类型有助于你的软件开发的理解。 以下是摘录自《软件工程》黑皮书的应用程序的分类,这本书都出到了第10版,堪称经典了。 还有其他分类方式,如同样是黑皮书的《软件工程 实践者的研究方法(第8版)》,这本书就将应用程序分为七个大类:1. 独立的应用。这是运行在个人计算机上的应用或者运行在移动设备上的应用。它们包含所有必要的功能,可以不用连接到网络上。这类应用的例子包括个人计算机上的办公软件、计算机辅助设计程序、图片处理软件、旅行应用、生产力应用等。2. 基于事务的交互式应用。这类应用在远程计算机上运行,用户通过自己的计算机、手机或平板电脑进行访问。显然,这类应用包括 Web 应用,例如电子商务应用,这种应用可以让用户通过与一个远程系统交互来购买商品或服务。这类应用还包括业务系统,一个企业通过 Web 浏览器或者特殊的客户端程序以及基于云的服务让用户访问他们的系统,例如邮件和照片共享。交互式应用通常包含大规模的数据存储,这些数据在每一次事务中被访问和更新。3.嵌入式控制系统。这类应用有一个软件控制系统来控制和管理硬件设备。从数量上看,嵌入式系统远远多于任何其他类型的系统。嵌入式系统的例子包括移动电话中使用的软件、汽车上控制防抱死刹车的软件,以及微波炉上控制烹饪过程的软件。4.批处理系统。这是一类业务系统,被设计用来处理大批量的数据。它们处理大量的单个输入以创建相应的输出。这类系统包括定期计费系统,例如电话计费系统和工资支付系统。5. 娱乐系统。这类系统主要是个人用户用于娱乐。大多数的这类系统是运行在专用的游戏机硬件上的各种游戏。这类系统所提供的交互质量是娱乐系统和其他系统的一个重要区别。6.建模和仿真系统。科学家和工程师开发这类系统来模拟物理过程或环境,其中包括很多独立且相互交互的对象。这些系统通常是计算密集型的,需要高性能的并行系统来运行。7. 数据收集和分析系统。数据收集系统从环境中收集数据,并将数据发送到其他系统进行处理。这些软件可能要和传感器进行交互,并且经常安装在恶劣环境中(例如安装在发动机内部或者是野外)。大数据分析可以使用基于云的系统来进行统计分析,并寻找所收集的数据中的关系。8. 系统之系统。这类系统在企业或其他大型组织中使用,由其他一些软件系统组成。其中一些系统是通用软件产品,例如 ERP 系统。其他的一些系统则可能是专门为这个环境编写的软件。