软件

大连工业大学的听课笔记


软件工程

软件工程是计算机课程体系中基础课程,属于核心课程,它不直接教你如何编写软件,而是告诉你一套 方法论,用于指导软件开发。


软件定义

软件绝不是仅仅程序,编程只是其中的一部分。

IEEE 给出的定义: 计算机程序、文档、运行程序必须的数据、方法、规则

加起来方可成为软件,其中前2个概念很好理解,计算机程序就是程序,源代码;文档,无外乎程序使用说明书;运行程序必须的数据,则是程序运行起来是需要处理数据的,你得给它数据,程序才能运行;方法和规则,则有点隐晦,它们软件开发采用的方法,软件开发中遵循的规则。其中方法个规则在文档中说明,在程序中实现。

程序+文档+数据


软件分类

从功能上分,可以分为三类:系统软件、支撑软件、应用软件。

  1. 系统软件

    着重在系统两字上,指那些与计算机硬件紧密配合,使得计算机各个部件与相关软件和数据协调,高效工作的软件。常见的有:操作系统,编译程序

  2. 支撑软件

    协助用户开发软件的工具性软件。

  3. 应用软件(可以继续细分)

    • 商业数据处理软件

      超市库存软件、公司人力资源系统

    • 工程与科学计算软件

      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 代码行数。

posted @ 2019-08-02 15:31  Yiaz  阅读(231)  评论(0编辑  收藏  举报