软件工程复习

sterne 发布于

STERNE

STERNE

SDUer,大一入门,大二入土,大三老东西!

63
1
20
TOC
  1. 1. Part1.软件工程概述
    1. 1.1. 1.软件与软件工程的概念
      1. 1.1.1. 1.1软件的概念、特性和分类
        1. 1.1.1.1. 概念
        2. 1.1.1.2. 特性
        3. 1.1.1.3. 分类
        4. 1.1.1.4. 作用
        5. 1.1.1.5. 软件质量
      2. 1.1.2. 1.2软件危机与软件工程
      3. 1.1.3. 1.3软件工程的目标
      4. 1.1.4. 1.4软件生存期
        1. 1.1.4.1. 软件定义
        2. 1.1.4.2. 软件开发
          1. 1.1.4.2.1. 概要设计
          2. 1.1.4.2.2. 详细设计
          3. 1.1.4.2.3. 程序编码和单元测试
          4. 1.1.4.2.4. 集成测试和系统测试
        3. 1.1.4.3. 运行维护
      5. 1.1.5. 1.5软件工程方法概述
        1. 1.1.5.1. 三要素:方法、工具和过程。
      6. 1.1.6. 1.6软件工具概述
      7. 1.1.7. 1.7软件工程知识体系及知识域
    2. 1.2. 2.软件生存期模型
      1. 1.2.1. 2.1瀑布模型
        1. 1.2.1.1. 特点
        2. 1.2.1.2. 优点
        3. 1.2.1.3. 缺点
      2. 1.2.2. 2.2快速原型模型
        1. 1.2.2.1. 优点
      3. 1.2.3. 2.3增量模型
        1. 1.2.3.1. 优点
        2. 1.2.3.2.
      4. 1.2.4. 2.4螺旋模型
        1. 1.2.4.1. 完整的螺旋模型
        2. 1.2.4.2. 螺旋模型的4项活动
        3. 1.2.4.3. 优点
        4. 1.2.4.4. 缺点
      5. 1.2.5. 2.5喷泉模型
      6. 1.2.6. 2.6统一过程
        1. 1.2.6.1. 工作流
        2. 1.2.6.2. 阶段
      7. 1.2.7. 2.7基于构件的开发模型
      8. 1.2.8. 2.8敏捷过程
        1. 1.2.8.1. 原则
        2. 1.2.8.2. 使用范围
        3. 1.2.8.3. 极限编程(eXtreme Programming,XP)
        4. 1.2.8.4. 自适应软件开发
  2. 2. Part2.结构化分析与设计方法
    1. 2.1. 3.软件需求获取与结构化分析方法
      1. 2.1.1. 3.1需求获取与需求分析阶段的任务
        1. 2.1.1.1. 1.需求获取的任务和原则
        2. 2.1.1.2. 2.需求获取的过程
          1. 2.1.1.2.1. 开发高层的业务模型
          2. 2.1.1.2.2. 定义项目范围和高层需求
          3. 2.1.1.2.3. 识别用户类和用户代表
          4. 2.1.1.2.4. 获取具体的需求
          5. 2.1.1.2.5. 确定目标系统的业务工作流
          6. 2.1.1.2.6. 需求整理与总结
        3. 2.1.1.3. 3.软件需求分析阶段的任务
          1. 2.1.1.3.1. 需求获取
          2. 2.1.1.3.2. 需求分析
          3. 2.1.1.3.3. 需求定义
          4. 2.1.1.3.4. 需求验证
      2. 2.1.2. 3.2结构化分析方法
        1. 2.1.2.1. 1.功能建模(数据流图)
          1. 2.1.2.1.1. 概念
          2. 2.1.2.1.2. 环境图
          3. 2.1.2.1.3. 数据流图的分层
          4. 2.1.2.1.4. 例题
        2. 2.1.2.2. 2.数据建模(ER图)
          1. 2.1.2.2.1. 数据对象
          2. 2.1.2.2.2. 属性
          3. 2.1.2.2.3. 关系
          4. 2.1.2.2.4. 关系的属性
        3. 2.1.2.3. 3.行为建模(状态图)
          1. 2.1.2.3.1. 状态
          2. 2.1.2.3.2. 状态的表示
          3. 2.1.2.3.3. 状态转换
          4. 2.1.2.3.4. 事件
        4. 2.1.2.4. 4.数据字典
          1. 2.1.2.4.1. 词条描述
            1. 2.1.2.4.1.1. 数据流词条
            2. 2.1.2.4.1.2. 数据元素词条
            3. 2.1.2.4.1.3. 数据存储文件词条
            4. 2.1.2.4.1.4. 加工词条
            5. 2.1.2.4.1.5. 数据源点及数据汇点词条
          2. 2.1.2.4.2. 数据结构描述
        5. 2.1.2.5. 5.加工规格说明
          1. 2.1.2.5.1. 决策表
          2. 2.1.2.5.2. 决策树
      3. 2.1.3. 3.3系统需求规格说明
      4. 2.1.4. 3.4需求评审
      5. 2.1.5. 3.5需求管理
    2. 2.2. 4.结构化设计方法
      1. 2.2.1. 4.1软件设计的概念及原则
        1. 2.2.1.1. 概念
        2. 2.2.1.2. 原则
          1. 2.2.1.2.1. (1) 分而治之
          2. 2.2.1.2.2. (2) 模块独立性
            1. 2.2.1.2.2.1. 耦合
            2. 2.2.1.2.2.2. 非直接耦合(Nondirect Coupling)
            3. 2.2.1.2.2.3. 数据耦合 (Data Coupling)
            4. 2.2.1.2.2.4. 特征耦合 (Stamp Coupling)
            5. 2.2.1.2.2.5. 控制耦合 (Control Coupling)
            6. 2.2.1.2.2.6. 公共耦合(Common Coupling)
            7. 2.2.1.2.2.7. 内容耦合 (Content Coupling)
            8. 2.2.1.2.2.8. 内聚
            9. 2.2.1.2.2.9. 偶然内聚(Coincidental Cohesion)
            10. 2.2.1.2.2.10. 逻辑内聚(Logical Cohesion)
            11. 2.2.1.2.2.11. 时间内聚(Classical Cohesion)
            12. 2.2.1.2.2.12. 过程内聚(Procedural Cohesion)
            13. 2.2.1.2.2.13. 通信内聚(Communicational Cohesion) 亦称数据内聚
            14. 2.2.1.2.2.14. 顺序内聚
            15. 2.2.1.2.2.15. 功能内聚 (Functional Cohesion)
          3. 2.2.1.2.3. (3) 提高抽象层次
          4. 2.2.1.2.4. (4) 复用性设计
          5. 2.2.1.2.5. (5) 灵活性设计
      2. 2.2.2. 4.2结构化设计
        1. 2.2.2.1. 结构化软件设计的任务
        2. 2.2.2.2. 结构化设计与结构化分析的关系
        3. 2.2.2.3. 模块结构及表示
          1. 2.2.2.3.1. 模块
          2. 2.2.2.3.2. 模块分类
          3. 2.2.2.3.3. 模块的结构
          4. 2.2.2.3.4. 结构图
        4. 2.2.2.4. 数据结构及表示
      3. 2.2.3. 4.3体系结构设计
        1. 2.2.3.1. 基于数据流方法的设计过程
        2. 2.2.3.2. 典型的数据流类型和系统结构
          1. 2.2.3.2.1. 变换型数据流和变换型系统结构图
          2. 2.2.3.2.2. 事务型数据流和事务型系统结构图
        3. 2.2.3.3. 变换型映射方法
        4. 2.2.3.4. 事务型映射方法
        5. 2.2.3.5. 软件模块结构的改进方法
          1. 2.2.3.5.1. (1)模块功能的完善化。
          2. 2.2.3.5.2. (2) 消除重复功能,改善软件结构。
          3. 2.2.3.5.3. (3) 模块的作用范围应在控制范围之内。
          4. 2.2.3.5.4. (4) 尽可能减少高扇出结构,随着深度增大扇入。
          5. 2.2.3.5.5. (5) 避免或减少使用病态连接。
          6. 2.2.3.5.6. (6) 模块的大小要适中。
          7. 2.2.3.5.7. 例 银行储蓄系统
      4. 2.2.4. 4.4接口设计
        1. 2.2.4.1. 接口设计概述
        2. 2.2.4.2. 人机交互界面
          1. 2.2.4.2.1. 用户界面应具备的特性
          2. 2.2.4.2.2. 用户类型
          3. 2.2.4.2.3. 界面设计类型
          4. 2.2.4.2.4. 设计详细的交互
      5. 2.2.5. 4.5数据设计
        1. 2.2.5.1. 文件设计
        2. 2.2.5.2. 数据库设计
          1. 2.2.5.2.1. 数据对象实体的映射
          2. 2.2.5.2.2. 关系的映射
      6. 2.2.6. 4.6过程设计
        1. 2.2.6.1. 结构化程序设计
        2. 2.2.6.2. 程序流程图
        3. 2.2.6.3. N-S图
        4. 2.2.6.4. PAD图
        5. 2.2.6.5. 伪代码
        6. 2.2.6.6. 自顶向下、逐步细化的设计过程
      7. 2.2.7. 4.7软件设计规格说明
      8. 2.2.8. 4.8软件设计评审
  3. 3. Part3.面向对象分析与设计方法
    1. 3.1. 5.面向对象方法与UML
      1. 3.1.1. 5.1面向对象的概念与开发方法
        1. 3.1.1.1. 1.对象
        2. 3.1.1.2. 2.类与封装
        3. 3.1.1.3. 3.继承
        4. 3.1.1.4. 4.多态
        5. 3.1.1.5. 5.消息通信
        6. 3.1.1.6. 6.面向对象软件开发方法
          1. 3.1.1.6.1. Booch方法
          2. 3.1.1.6.2. Rumbaugh方法
          3. 3.1.1.6.3. Coad和Yourdon方法
          4. 3.1.1.6.4. Jacobson方法
      2. 3.1.2. 5.2UML简介
        1. 3.1.2.1. 1.UML特点
        2. 3.1.2.2. 2.UML基本模型
      3. 3.1.3. 5.3UML事物
        1. 3.1.3.1. 1.结构事物
        2. 3.1.3.2. 2.行为事物
        3. 3.1.3.3. 3.分组事物
        4. 3.1.3.4. 4.注释事物
      4. 3.1.4. 5.4UML关系
        1. 3.1.4.1. 1.依赖关系
        2. 3.1.4.2. 2.关联关系
          1. 3.1.4.2.1. 普通关联
          2. 3.1.4.2.2. 多元关联
          3. 3.1.4.2.3. 限定关联
          4. 3.1.4.2.4. 关联类
          5. 3.1.4.2.5. 聚合
          6. 3.1.4.2.6. 导航
        3. 3.1.4.3. 3.泛化关系
          1. 3.1.4.3.1. 普通泛化
          2. 3.1.4.3.2. 受限泛化
        4. 3.1.4.4. 4.实现关系
      5. 3.1.5. 5.5UML的图
        1. 3.1.5.1. 1.用例图
        2. 3.1.5.2. 2.类图
        3. 3.1.5.3. 3.顺序图和通信图
        4. 3.1.5.4. 4.状态图
        5. 3.1.5.5. 5.活动图
        6. 3.1.5.6. 6.构件图和部署图
        7. 3.1.5.7.
      6. 3.1.6. 5.6使用和扩展UML
        1. 3.1.6.1. 使用UML的准则
        2. 3.1.6.2. 扩展UML的机制
    2. 3.2. 6.面向对象分析
      1. 3.2.1. 6.1面向对象分析概述
        1. 3.2.1.1. 1.确定系统边界
        2. 3.2.1.2. 2.三种模型
      2. 3.2.2. 6.2建立用例模型
      3. 3.2.3. 6.3建立对象模型
        1. 3.2.3.1. 对象模型的5个层次
        2. 3.2.3.2. 划分主题
        3. 3.2.3.3. 确定类与对象
          1. 3.2.3.3.1. 1.找出候选的类与对象
          2. 3.2.3.3.2. 2.筛选出正确的类与对象
          3. 3.2.3.3.3. 3.区分实体类、边界类和控制类
        4. 3.2.3.4. 确定结构
          1. 3.2.3.4.1. 1.确定泛化(继承)关系
          2. 3.2.3.4.2. 2.确定关联
        5. 3.2.3.5. 确定属性
        6. 3.2.3.6. 确定服务
      4. 3.2.4. 6.4建立动态模型
        1. 3.2.4.1. 顺序图
        2. 3.2.4.2. 通信图
        3. 3.2.4.3. 状态图
    3. 3.3. 7.软件体系结构与设计模式
      1. 3.3.1. 7.1软件体系结构的基本概念
        1. 3.3.1.1. 1.什么是体系结构
        2. 3.3.1.2. 2.体系结构模式、风格和框架的概念
          1. 3.3.1.2.1. 1.模式
          2. 3.3.1.2.2. 2.风格
          3. 3.3.1.2.3. 3.框架
        3. 3.3.1.3. 3.体系结构的重要作用
      2. 3.3.2. 7.2典型的软件体系结构风格
        1. 3.3.2.1. 1.数据流风格
        2. 3.3.2.2. 2.调用—返回风格
          1. 3.3.2.2.1. 1.主程序/子程序体系结构
          2. 3.3.2.2.2. 2.向对象风格
          3. 3.3.2.2.3. 3.层次结构
        3. 3.3.2.3. 3.仓库风格
      3. 3.3.3. 7.3特定领域的软件体系结构
        1. 3.3.3.1. 1.类属模型
        2. 3.3.3.2. 2.参考模型
      4. 3.3.4. 7.4分布式系统结构
        1. 3.3.4.1. 1.多处理器体系结构
        2. 3.3.4.2. 2.客户/服务器体系结构
        3. 3.3.4.3. 3.分布式对象体系结构
        4. 3.3.4.4. 4.代理
      5. 3.3.5. 7.5体系结构框架
        1. 3.3.5.1. 1.MVC框架
          1. 3.3.5.1.1. 1.模型对象
          2. 3.3.5.1.2. 2.视图对象
          3. 3.3.5.1.3. 3.控制器对象
        2. 3.3.5.2. 2.J2EE体系结构框架
        3. 3.3.5.3. 3.PCMEF与PCBMER框架
          1. 3.3.5.3.1. PCMEF框架
          2. 3.3.5.3.2. PCBMER框架
      6. 3.3.6. 7.6设计模式
        1. 3.3.6.1. 1.创建型模式
          1. 3.3.6.1.1. 1.1抽象工厂模式
          2. 3.3.6.1.2. 1.2单例模式
        2. 3.3.6.2. 2.结构型模式
          1. 3.3.6.2.1. 2.1适配器模式
          2. 3.3.6.2.2. 2.2外观模式
        3. 3.3.6.3. 3.行为型模式
          1. 3.3.6.3.1. 3.1责任链模式
          2. 3.3.6.3.2. 3.2中介者模式
          3. 3.3.6.3.3. 3.3观察者模式
    4. 3.4. 8.面向对象设计
      1. 3.4.1. 8.1面向对象设计过程与准则
        1. 3.4.1.1. 面向对象设计过程
        2. 3.4.1.2. 面向对象设计准则
          1. 3.4.1.2.1. 1.模块化
          2. 3.4.1.2.2. 2.抽象
          3. 3.4.1.2.3. 3.信息隐藏
          4. 3.4.1.2.4. 4.弱耦合
          5. 3.4.1.2.5. 5.强内聚
          6. 3.4.1.2.6. 6.可重用
      2. 3.4.2. 8.2体系结构模块及依赖性
        1. 3.4.2.1. 1.类及其依赖性
          1. 3.4.2.1.1. 1.1类
          2. 3.4.2.1.2. 1.2继承依赖性
          3. 3.4.2.1.3. (1)多态继承
            1. 3.4.2.1.3.1. ① 编译时继承依赖性
            2. 3.4.2.1.3.2. ② 运行时继承依赖性
          4. 3.4.2.1.4. (2)无多态继承
          5. 3.4.2.1.5. (3)扩展继承和约束继承
          6. 3.4.2.1.6. 1.3交互依赖性
        2. 3.4.2.2. 2.接口及其依赖性
          1. 3.4.2.2.1. 2.1接口
          2. 3.4.2.2.2. 2.2实现依赖性
          3. 3.4.2.2.3. 2.3使用依赖性
        3. 3.4.2.3. 3.包及其依赖性
          1. 3.4.2.3.1. 3.1包
          2. 3.4.2.3.2. 3.2包依赖性
        4. 3.4.2.4. 4.构件及其依赖性
      3. 3.4.3. 8.3系统分解
      4. 3.4.4. 8.4问题域部分的设计
      5. 3.4.5. 8.5人机交互部分的设计
      6. 3.4.6. 8.6任务管理部分的设计
      7. 3.4.7. 8.7数据管理部分的设计
      8. 3.4.8. 8.8对象设计
  4. 4. Part4.软件实现与测试
    1. 4.1. 9.软件实现
    2. 4.2. 10.软件测试方法
      1. 4.2.1. 10.1软件测试的基本概念
        1. 4.2.1.1. 什么是软件测试
        2. 4.2.1.2. 软件测试的目的和原则
        3. 4.2.1.3. 测试工作量和测试人员
        4. 4.2.1.4. 软件测试的对象
        5. 4.2.1.5. 测试方法与技术
        6. 4.2.1.6. 测试信息流
        7. 4.2.1.7. 测试与软件开发各阶段的关系
      2. 4.2.2. 10.2白盒测试的测试用例设计
        1. 4.2.2.1. 逻辑覆盖
          1. 4.2.2.1.1. 语句覆盖
          2. 4.2.2.1.2. 判定覆盖(分支覆盖)
          3. 4.2.2.1.3. 条件覆盖
          4. 4.2.2.1.4. 判定—条件覆盖
          5. 4.2.2.1.5. 条件组合覆盖
          6. 4.2.2.1.6. 路径覆盖
      3. 4.2.3. 10.3基本路径覆盖
      4. 4.2.4. 10.4黑盒测试的测试用例设计
        1. 4.2.4.1. 等价类划分
          1. 4.2.4.1.1. 1.划分等价类
          2. 4.2.4.1.2. 2.确定测试用例
          3. 4.2.4.1.3. 3.用等价类划分法设计测试用例的实例
        2. 4.2.4.2. 边界值分析
          1. 4.2.4.2.1. 1.边界值分析方法的考虑
          2. 4.2.4.2.2. 2.选择测试用例的原则
      5. 4.2.5. 10.5软件测试的策略
        1. 4.2.5.1. 单元测试
          1. 4.2.5.1.1. 1.单元测试的内容
          2. 4.2.5.1.2. 2.单元测试的步骤
        2. 4.2.5.2. 组装测试
          1. 4.2.5.2.1. 1.一次性组装方式
          2. 4.2.5.2.2. 2.增值式组装方式
            1. 4.2.5.2.2.1. (1)自顶向下的增值方式。
            2. 4.2.5.2.2.2. (2)自底向上的增值方式。
            3. 4.2.5.2.2.3. (3)混合增值式测试。
          3. 4.2.5.2.3. 3.组装测试的组织和实施
        3. 4.2.5.3. 确认测试
          1. 4.2.5.3.1. 1.进行有效性测试(黑盒测试)
          2. 4.2.5.3.2. 2.软件配置复查
          3. 4.2.5.3.3. 3.a测试和b测试
          4. 4.2.5.3.4. 4.验收测试
          5. 4.2.5.3.5. 5.确认测试的结果
        4. 4.2.5.4. 系统测试
        5. 4.2.5.5. 测试的类型
      6. 4.2.6. 10.6人工测试
        1. 4.2.6.1. 静态分析
          1. 4.2.6.1.1. 1.生成各种引用表
          2. 4.2.6.1.2. 2.静态错误分析
        2. 4.2.6.2. 人工测试的几种形式
          1. 4.2.6.2.1. 1.桌前检查
          2. 4.2.6.2.2. 2.代码评审
          3. 4.2.6.2.3. 3.走查
      7. 4.2.7. 10.7调试
  5. 5. Part5.软件维护与软件管理
    1. 5.1. 11.软件维护
      1. 5.1.1. 11.1软件维护的概念
        1. 5.1.1.1. 1.改正性维护
        2. 5.1.1.2. 2.适应性维护
        3. 5.1.1.3. 3.完善性维护
        4. 5.1.1.4. 4.预防性维护
        5. 5.1.1.5. 影响维护工作量的因素
        6. 5.1.1.6. 软件维护的策略
      2. 5.1.2. 11.2软件维护活动
        1. 5.1.2.1. 软件维护申请报告
        2. 5.1.2.2. 软件维护工作流程
        3. 5.1.2.3. 维护档案记录
        4. 5.1.2.4. 维护评价
      3. 5.1.3. 11.3程序修改的步骤及副作用
        1. 5.1.3.1. 分析和理解程序
        2. 5.1.3.2. 修改程序
          1. 5.1.3.2.1. 1.设计程序的修改计划
          2. 5.1.3.2.2. 2.修改代码,以适应变化
        3. 5.1.3.3. 修改程序的副作用及其控制
          1. 5.1.3.3.1. 1.修改代码的副作用
          2. 5.1.3.3.2. 2.修改数据的副作用
          3. 5.1.3.3.3. 3.修改文档的副作用
        4. 5.1.3.4. 重新验证程序
          1. 5.1.3.4.1. 1.静态确认
          2. 5.1.3.4.2. 2.确认测试
          3. 5.1.3.4.3. 3.维护后的验收
      4. 5.1.4. 11.4软件的维护性
        1. 5.1.4.1. 软件维护性的定义
      5. 5.1.5. 11.5提高软件维护性的方法
        1. 5.1.5.1. 使用提高软件质量的技术和工具
          1. 5.1.5.1.1. 1.模块化
          2. 5.1.5.1.2. 2.结构化程序设计
          3. 5.1.5.1.3. 3.使用结构化程序设计技术,提高现有系统的可维护性
        2. 5.1.5.2. 实施开发阶段产品的维护性审查
          1. 5.1.5.2.1. 1.检查点审查
          2. 5.1.5.2.2. 2.验收检查
          3. 5.1.5.2.3. 3.周期性地维护审查
          4. 5.1.5.2.4. 4.对软件包进行检查
        3. 5.1.5.3. 改进文档
    2. 5.2. 12.软件过程与软件改进
    3. 5.3. 13.软件项目管理
    4. 5.4. 14.软件工程标准及软件文档
NOTICE

这里还什么都没有呢喵~

CATEGORYS
TAGS