软件工程中的软件分类方式多样,主要依据功能、架构、用户类型及工作方式等维度进行划分。以下是综合多个来源的分类方法:
一、按功能划分
系统软件 直接操作硬件并为上层软件提供基础服务的软件,如操作系统(Windows、Linux)、数据库管理系统(MySQL)等。
应用软件
为最终用户提供特定功能的服务,包括商业软件(如ERP系统)、办公软件(如Word)、多媒体软件(如Photoshop)等。
支撑软件
辅助开发、维护和管理软件系统的工具,如编译器(GCC)、调试器、版本控制工具(Git、SVN)等。
二、按技术架构划分
单机软件
在单一计算机上独立运行的软件,如文字处理工具、游戏等。
C/S(客户端/服务器)结构
需客户端和服务器配合运行,典型应用包括企业资源规划(ERP)、数据库管理系统等。
B/S(浏览器/服务器)结构
通过浏览器访问的软件,如网页应用、在线办公系统等。
三、按用户类型划分
产品软件
为大众市场设计的软件,如操作系统、办公软件等。
项目软件
为特定项目开发的软件,通常具有明确的目标和开发周期,如工程计算软件、定制化应用等。
四、按工作方式划分
实时处理软件
需立即响应外部事件的软件,如工业控制系统、语音识别等。
批处理软件
按顺序批量处理作业的软件,如数据备份工具、报表生成系统等。
交互式软件
支持人机交互的软件,如数据库管理工具、图形设计软件等。
五、其他分类维度
商业软件与自由软件: 商业软件需付费使用,自由软件可免费获取和修改。 嵌入式软件与桌面软件
开源与闭源软件:开源软件允许源代码访问,闭源软件则限制修改权限。
以上分类方式并非互斥,实际应用中常需结合多个维度进行综合分析。例如,一个数据库管理系统既属于系统软件,也采用B/S架构。