1. 思考题:软件工程遵循的基本原则或者叫基本原理是什么?
  2. (7)承认不断改进软件工程实践的必要性
  3. (6)合理安排软件开发小组的人
  4. (5)结果应能清楚地审查
  5. (4)采用现代程序设计技术
  6. 模块化
  7. 抽象
  8. 信息隐蔽
  9. 信息的局部化
  10. 一致性
  11. 完整性
  12. 确定性
  13. 软件的分类
    1. 按照功能来划分
      1. 系统软件
      2. 支撑软件
      3. 应用软件
    2. 按软件规模划分
      1. 微型
      2. 小型
      3. 中型
      4. 大型
      5. 甚大型
      6. 极大型
    3. 按软件工作方式划分
      1. 实时处理软件
      2. 分时软件
        1. 多个用户同时工作的情况下
      3. 交互式软件
        1. 人机交互的,出现些对话框,选择Yes Or No
      4. 批处理软件
    4. 按照软件服务对象的范围划分
      1. 项目软件
        1. 接受某个特定客户的委托,由一个或多个软件开发机构,在合同的约束下,开发的软件,以特殊需要为主,如:国家的安全、航天的软件,某些领域的需要
      2. 产品软件
        1. 由软件开发机构开发,并直接提供给市场,并且为众多用户服务的软件
    5. 按照使用的频度进行划分
      1. 一次使用
        1. 如:人口普查
      2. 频繁使用
        1. 如:操作系统,天气预报的软件
    6. 按软件失效的影响进行划分
      1. 高可靠性软件
        1. 航空、金融
      2. 一般可靠性软件
        1. 项目软件
  14. 软件的发展阶段
    1. 程序设计阶段——50至60年代
    2. 程序系统阶段——60至70年代
    3. 软件工程阶段——70年代以后
  15. 软件工程过程
    1. 特性
      1. 易理解
      2. 可见性
      3. 可支持性
      4. 可接受性
      5. 可靠性
      6. 健壮性(安全性)
      7. 可维护性
      8. 速度
    2. 软件生存期 life cycle
      1. 六个步骤
        1. 制定计划
          1. 问题的定义
          2. 可行性问题的研究
        2. 需求分析
          1. 标识:软件的需求规格说明书
        3. 软件设计
          1. 概要设计
          2. 详细设计
        4. 程序编写
        5. 软件测试
          1. 静态测试
          2. 动态测试
        6. 运行/维护
          1. 改正性维护
          2. 适应性维护
          3. 完善行维护
    3. 软件生存期模型
      1. 瀑布模型
        1. 优点
        2. 思想
        3. 缺点
        4. 适用范围
      2. b模型
      3. 快速原型模型Rapid Prototyping Model
        1. 丢弃式
        2. 进增式
        3. 两种策略
      4. 演化模型
      5. 渐增模型Incremental Model
        1. 思想
        2. 优点
        3. 适用范围
        4. 特点
      6. 螺旋模型
      7. 喷泉模型
  16. 软件工程的定义
    1. Boehm
    2. IEEE
    3. Fritz Bauer