大连工业大学的听课笔记
软件工程
软件工程是计算机课程体系中基础课程,属于核心课程,它不直接教你如何编写软件,而是告诉你一套 方法论,用于指导软件开发。
软件定义
软件绝不是仅仅程序,编程只是其中的一部分。
IEEE
给出的定义: 计算机程序、文档、运行程序必须的数据、方法、规则。
加起来方可成为软件,其中前2个概念很好理解,计算机程序就是程序,源代码;文档,无外乎程序使用说明书;运行程序必须的数据,则是程序运行起来是需要处理数据的,你得给它数据,程序才能运行;方法和规则,则有点隐晦,它们软件开发采用的方法,软件开发中遵循的规则。其中方法个规则在文档中说明,在程序中实现。
程序+文档+数据
软件分类
从功能上分,可以分为三类:系统软件、支撑软件、应用软件。
-
系统软件
着重在系统两字上,指那些与计算机硬件紧密配合,使得计算机各个部件与相关软件和数据协调,高效工作的软件。常见的有:操作系统,编译程序
-
支撑软件
协助用户开发软件的工具性软件。
-
应用软件(可以继续细分)
-
商业数据处理软件
超市库存软件、公司人力资源系统
-
工程与科学计算软件
CAD/CAM,仿真软件
-
智能产品嵌入式软件
重点在嵌入上,值嵌入在产品内部,控制产品工作的软件
家用电器、智能手机,公交智能盒子
-
人工智能软件
利用非数值算法去解决复杂问题的软件。
专家系统(
IBM
的深蓝系统)、模式识别软件、人工神经网络软件 -
个人计算机软件
文字处理系统、点子表格、游戏娱乐软件
-
从规模上分,可细分为如下几类
类别 | 参加人员数 | 开发周期 | 产品规模(LOC) |
---|---|---|---|
微型 | 1 | 1 ~ 4 周 | 0.5 k |
小型 | 1 | 1 ~ 6 月 | 1 ~ 2 k |
中型 | 2 ~ 5 | 1 ~ 2 年 | 5 ~ 50 k |
大型 | 5 ~ 20 | 2 ~ 3 年 | 50 ~ 100 k |
甚大型 | 100 ~ 1000 | 4 ~ 5 年 | 1 M ( = 1000 k) |
极大型 | 2000 ~ 5000 | 5 ~ 10 年 | 1 ~ 10 M |
其中产品规模,loc = line of code
代码行数。