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年以上 |