软件是一系列按照特定顺序组织的计算机数据和指令的集合。一般来讲软件被划分为编程语言、系统软件、应用软件和介于这两者之间的中间件。其中系统软件为计算机使用提供最基本的功能,但是并不针对某一特定应用领域。而应用软件则恰好相反,不同的应用软件根据用户和所服务的领域提供不同的功能。
软件从不同的角度来看就会有不同的认识和理解。从用户的角度来看,软件就是通过使用它可以达到一定目的的工具;从实现者(软件开发工程师)的角度来看,软件就是为实现一定功能的一系列分支流程的组合;从运行角度来看,软件就是具有一定规范格式的文件集合。以杀毒应用软件来说吧,用户就会把它当成一个可以达到清理病毒目的的工具使用;而实现者则会看成获取病毒文件、比对病毒库、隔离病毒文件、删除病毒文件等一系列流程,并将这些流程正确组合在一起工作;对于运行来说,软件就是一系列文件部署在相同或不同机器上,并能够被加载运行。
软件能否在市场上推广使用最终由用户说了算,而质量好坏又是由实现者来把握,这两者对软件来说是紧密结合在一起的。只有实现者(软件开发工程师)充分理解和把握用户需求后才有可能开发出一款用户使用并易用、可靠的软件。