1.1什么是软件

定义:计算机系统中与硬件相互依存的一部分(程序+数据+相关文档)

软件=程序+文档+数据

程序指的是能够实现某种功能的指令集合,如C语言程序

数据:使程序能正常操纵信息的数据结构

文档指的是软件在开发、使用和维护过程中产生的图文集合,如《系统需求规格说明书》、《用户手册》、readme,甚至是一些软件市场宣传材料、包装文字和图形等

2、软件工程的内容

主要分为软件开发技术(方法+过程+工具+环境)和软件开发管理

1.2软件的分类

1.2.1按照功能划分

系统软件:能够直接操作底层的硬件、并为上层软件提供支持的软件,如操作系统软件、各种硬件驱动程序等

应用软件:能够为用户提供某种特定条件的应用服务的软件,如金山词霸

1.2.2按技术架构划分

单机软件:直接在单个计算机上安装并运行的软件,如画图工具

C/S 结构软件:C指的是客户端(Client),S指的是服务器端(SERVER),这种软件是基于局域网或互联网的,需要有一台服务器来安装服务器端软件,每台客户端都需要安装客户端软件。不便于升级和维护(升级时需要重新安装每一个客户端)

B/S 结构软件:B是指浏览器(Browser),S指的是服务器端(SERVER).这种软件是基于局域网或互联网的,不需要安装客户端,只需要有浏览器即可,便于升级和维护(升级时只需要升级服务器即可)

1.2.3按照用户划分

产品软件:目标用户是大众用户,不是某一特殊群体

项目软件:目标用户是具体的用户

1.2.4按照开发的规模划分

按照软件开发的参与人数以及开发时间划分

类别

参与人数

开发时间

小型

10人一下

1~4个月

中型

10~100人

1年一下

大型

100人以上

1年以上