1. Chapter 1 软件工程基本概念
    1. 软件设计流程
      1. 瀑布式
      2. 原型法
      3. 迭代
      4. 增量式
    2. 开发策略
      1. 复用
      2. 分而治之
      3. 优化-折中
    3. 错误观念
    4. 争议
  2. Chapter 2 程序员与项目经理
    1. 项目失败
      1. 项目经理不懂技术
      2. 技术负责人不愿编码
      3. 程序员临时雇用
    2. 程序员
      1. 诚实
      2. 简单实用
      3. 爱憎分明
      4. 工作乏味不单调
    3. 程序经理
      1. 分类
        1. 开发组长
        2. 项目经理
        3. 部门经理
        4. ……
      2. 特征
        1. 最牛技术
        2. 最多最难的工作
        3. 人格魅力
    4. 级别
      1. 技术
        1. 1级:编程基本功,质量合格
        2. 2级:N个项目,几年经验,指导新人工作
        3. 3级:系统分析与设计,技术广度与深度
        4. 4级:软件产品设计者,超牛的技术,将技术转化为商品
      2. 管理
        1. 1级技术做员工
        2. 2级技术做组长
        3. 3级技术做项目经理
        4. 4级技术做产品决策者
    5. 从错误反省,提高综合素质
  3. Chapter 3 项目计划与质量管理
    1. 可行性分析
      1. 需求分析
        1. 系统设计
          1. 程序设计
          2. 测试
          3. 维护
    2. 提高软件质量
      1. 项目计划
        1. 知己知彼
        2. 进度安排
          1. 项目负责人制定
          2. 先难后易
          3. 里程碑
          4. 缓冲时间
          5. 合理交付期限
      2. 0缺陷质量管理
        1. 高目标
        2. 可执行规范
      3. 质量检查
        1. 要点列表
        2. 只评审工作,找出问题
        3. 培训检查人员
  4. Chapter 4
    1. 可行性分析
      1. 经济
        1. 成本-收益分析
        2. 短期-长远利益分析
      2. 技术
      3. 社会环境
        1. 市场
        2. 政策
    2. 需求分析
      1. 特点
        1. 客户需求不明确
        2. 需求经常变更:确定稳定、易变
      2. 与客户谈
      3. 找咨询公司
      4. 分析已有项目
  5. Chapter 5 系统设计
    1. 体系结构设计
      1. 层次结构
      2. C/S结构
    2. 模块设计
      1. 信息隐藏
      2. 内聚与耦合
      3. 开闭原则
    3. 算法与数据结构设计
    4. UI设计
  6. Chapter 6 面向对象设计
    1. 继承与组合
    2. 多态
  7. Chapter 7 测试与改错
    1. 测试的目的:发现尽可能多的缺陷-功能、性能、易用性、文档、容错性
    2. 测试只能证明缺陷存在,不能证明缺陷不存在
    3. α测试
      1. 白盒测试:软件开发人员
      2. 黑盒测试:软件测试人员
    4. β测试
      1. 产品测试:外部使用人员
  8. Chapter 8 维护与再生
    1. 维护
      1. 种类
        1. 完善性 perfactive maintenance
        2. 纠错性 corrective maintenance
        3. 适应性 adoptive maintenance
      2. 因素
        1. 地域性适应
        2. 开发人员的稳定性
        3. 软件的生命周期
        4. 商业操作模式变化
    2. 再生工程
      1. 分类
        1. 重构 Restructue
        2. 逆向工程 Reverse Enginnering
        3. 前向工程 Forward Engineering
  9. 附录
    1. 林锐=大才