The Data Science Task Force: Mission SDM

Posted by Gloomymoon on 2024-08-31

软件开发和维护(SDM)

数据科学家可能需要构建(或参与构建)可部署系统,用于数据分析或将数据分析结果付诸实践。为此,他们应熟悉基本的软件开发原则和实践知识。
请注意,本知识领域借鉴了CS2013的软件工程(SE)知识领域。
请注意,开发和测试将在下文中分别论述,测试是开发过程的组成部分,为了便于阅读,下文将两者分开。

范围能力
  • 软件工程原理,包括程序的设计、实施和测试。
  • 潜在的脆弱性。
  • 实施一个使用规定编码标准的小型软件项目。
  • 测试代码,包括安全性、单元测试、系统测试、集成测试和界面可用性。
子领域
SDM-软件设计与开发-T1、T2、E
SDM-软件测试-T1、T2、E

SDM-软件设计与开发

数据科学家应了解设计原则及其对模块化、可重用性和安全性等问题的影响。设计、实施和测试是软件开发中紧密结合的组成部分。在本知识领域中,为了方便阅读,我们将设计和测试能力分别列出。

知识
T1:

  • 编码和设计标准。
  • 与信息管理/数据库系统集成。
  • 软件生命周期。
  • 数据生命周期。

T2:

  • 项目管理方法。

E:

  • 与嵌入式、过程控制和/或通信系统集成。

技能

T1:

  • 解释项目编码标准。
  • 解释项目设计标准。
  • 说明如何与信息管理/数据库系统集成或交互。
  • 解释所有领域不同测试范例/需求的范围和类型。
  • 单独实施一个符合设计规范的小型软件项目。
  • 开发并完成符合设计规范的团队软件项目。
  • 执行既定的设计、文档和实施标准。
  • 在简单程序上执行基本的软件生命周期。
  • 在简单的数据产品上执行基本的数据(科学)生命周期。
  • 与信息管理/数据库系统整合或交互。

T2:

  • 执行特定的项目管理方法。
  • 规范和设计一个符合利益相关者要求的团队软件项目。
  • 作为领导者,完成项目开发,满足利益相关方的要求。
  • 实施数据科学生命周期,在软件生命周期的适当阶段建立数据驱动决策。

E:

  • 与嵌入式、过程控制和/或通信系统集成或交互。

品行
T1:

  • 具有协作精神和职业道德的团队成员,认识到建立在尊重、多样性和协作基础上的团队的价值。
  • 遵守项目编码和设计标准的信念。
  • 善于倾听、善于提出想法、善于谈判,具有协作精神和灵活性。
  • 坚定地致力于以生命周期的思维方式处理数据和软件项目。
  • 敏锐地认识到使用测试驱动开发的好处。

T2:

  • 专业和道德领导力。遵循尊重、善于倾听、负责人等原则,领导项目完成。
  • 已承诺和专业精神促进和鼓励遵守项目编码和设计标准

SDM-软件测试

数据科学家应了解在软件开发和部署过程中进行良好测试的重要性。

知识

T1:

  • 测试范例/需求。
    • 单元/执行。
    • 集成。
    • 界面/用户。
    • 回归/持续。
    • 系统。
    • 安全。

T2:

  • 程序中潜在的安全问题。
    • 缓冲区和其他类型的溢出。
    • 条件竞争。
    • 初始化不当,包括权限选择不当。
    • 未检查输入。
    • 假设成功和正确。
    • 未验证假设。

技能
T1:

  • 定义并解释所有领域不同测试范例/需求的范围和类型。
  • 为以下项目设计基本测试:
    • 单元/执行。
    • 集成。

T2:

  • 使用或从大数据集中提取代表性数据,一边在集群上大规模运行之前现在小规模上测试算法。
  • 为以下项目制定测试规范:
    • 界面/用户。
    • 回归测试。
    • 系统。
    • 安全。
  • 执行以下测试(由他人构建):
    • 界面/用户。
    • 回归测试。
    • 系统。
    • 安全。
  • 使用统计显著性测试评估程序结果。
  • 描述软件系统可能存在的风险类型。
  • 描述安全编码和防御性编码实践。

E:

  • 设计、开发和执行所有领域的测试。

品行
T1:

  • 敏锐地认识到并重视使用测试驱动开发的好处。
  • 致力于从测试驱动的角度进行基本的软件和数据项目开发,尤其是单元/执行和集成测试。

T2:

  • 致力于从测试驱动的角度进行软件和数据项目开发,特别是与安全、界面/用户、回归/持续和系统测试相关的方面。

E:

  • 致力于从测试驱动开发的角度全面处理软件和数据项目。