软件
软件工程:指导软件开发与维护的工程学科
1983年IEEE软件定义:计算机程序文档、运行程序必须的数据、方法、规则(方法和规则在文档中说明,在程序中实现)
简化定义:程序+文档+数据
基于软件功能的软件分类:
1.系统软件:与计算机硬件紧密配合使计算机各个部件与相关软件及数据协调、高效工作的软件,如操作系统、编译程序等。
2.支撑软件:协助用户开发软件的工具性软件,如北大青鸟系统等。
3.应用软件:
(1).商业数据处理软件
(2).工程与科学计算软件:CAD、CAM(计算机辅助设计、制造)、仿真模拟、天气预报等
(3).智能产品嵌入软件:驻留在智能产品内存、控制产品工作的软件,如家用电器、智能手机等
(4).人工智能软件:利用非数值算法去解决复杂问题的软件,如专家系统、模式识别软件、人工神经网络软件等
(5).个人计算机软件:文字处理系统、电子表格、游戏娱乐软件等
基于软件规模的软件分类:
类别 | 参加人员数 | 开发周期 | 产品规模 |
---|---|---|---|
微型 | 1 | 1~4周 | 0.5k |
小型 | 1 | 1~6月 | 1k~2k |
中型 | 2~5 | 1~2年 | 5k~50k |
大型 | 5~20 | 2~3年 | 50k~100k |
甚大型 | 100~1000 | 4~5年 | 1M(=1000k) |
极大型 | 2000~5000 | 5~10年 | 1M~10M |
软件工程需要工程化技术方法和管理措施