数字世界的全球技能和能力框架

SFIA查看: 核心软件工程能力

核心软件工程能力

这些是软件工程从业人员通常需要的能力。请注意,并非所有软件工程师都需要列出的所有能力。所需的能力集取决于雇用组织的性质和/或他们雇用的软件工程师的特定角色和职责。

需求定义与管理 REQM

对需求和约束的提炼、分析、规范和验证,使其能够有效地开发和操作新的或变更的软件、系统、过程、产品和服务。对软件、系统、流程、产品或服务的整个交付和运行生命周期的需求进行管理。在预算、技术、监管和其他约束条件下,双方都可以接受的折衷谈判。基于工作上下文的需求管理生命周期模型的采用和适应,并从计划驱动/预测方法或更适应性(迭代和敏捷)方法中适当选择。

系统设计 DESN

系统设计可满足特定要求、与约定的系统架构兼容、遵守公司标准、满足性能和可行性的约束。 识别概念并将其转化为可构成系统构建和验证的原型设计。 组件的设计或选择。 用适于实现的形式描述全套详细模型,属性和/或特征的开发。 基于工作环境采用和调整系统设计生命周期模型,适当选择预测(计划驱动)方法或自适应(迭代/敏捷)方法。

软件设计 SWDN

按照商定的设计标准和原则满足规定要求的软件规范和设计。 软件、组件、接口和相关特性的定义。 概念和模式的识别以及翻译成设计,为软件构建和验证提供基础。 评估替代解决方案和权衡取舍。 在系统设计、设计标准、质量、可行性、可扩展性和可维护性的约束下简化设计决策。原型/模拟的开发和迭代,以实现明智的决策。 基于工作环境采用和调整软件设计模型,工具和技术,并适当选择预测(计划驱动)方法或自适应(迭代/敏捷)方法。

编程/软件开发 PROG

对新的和经修订的软件组件进行规划、设计、创建、修改、验证、测试和记录, 以向干系人提供约定的价值。识别、创建和应用议定的软件开发和安全标准和流程。采用和调整基于工作环境的软件开发生命周期模型, 适当选择预测 (计划驱动) 方法或自适应 (迭代/敏捷) 方法。

实时/嵌入式系统开发 RESD

可靠的实时软件,操作系统,工具和嵌入式系统的架构,设计和开发。 在更大的机械或电子系统中嵌入具有专用功能的计算机系统,通常具有实时,安全,安全和可靠性限制。 通常包括与硬件,机械传感器和执行器的接口,用于监视和控制诸如工业,汽车,航空航天和医疗机械,机器人和设备(包括物联网(IoT)设备)的应用。

方法和工具 METL

定义、定制、实施、评估、测量、自动化和改进方法和工具,以支持系统的规划、开发、测试、操作、管理和维护。确保在整个组织内采用并有效使用方法和工具。

配置管理 CFMG

对组织、项目和服务资产进行规划、管理、控制和治理。对配置项(CIs)进行标识、分类,并规范及其相互关系。在不同阶段及时识别源代码、软件、系统、文档和服务依赖的配置项的具体配置和版本。系统地控制对配置的更改,并在整个项目、系统和/或服务生命周期中维护配置的完整性和可追溯性。识别和记录配置项的功能和物理特性,控制这些特性的变化,记录和报告变更处理和实施状态。验证和审核配置项的数据质量,确保符合规定的内外部要求。

测试 TEST

使用适当的测试工具及技术来规划、设计、管理、实施及报告测试工作,并遵循约定的流程标准及行业特定法规。测试的目的在于确保新及经修订系统、配置、软件包或服务(连同任何界面)按要求实施(包括安全要求),同时充分理解并记录与部署相关的风险。测试包括制定流程、使用及维护测试工具(测试案例、测试脚本、测试报告、测试计划等)来衡量及改进被测软件的质量。

系统集成与构建 SINT

规划,实施和控制集成/构建组件,子系统和接口的活动,以创建用于交付给客户的操作系统,产品或服务,或用于内部或临时目的(如测试)。 开发系统集成和构建的组织能力, 包括自动化和持续集成。

发布与部署 RELM

对生产环境中的打包、构建、测试及部署变更或升级(绑定在“发布”)所使用的流程、系统及功能)进行管理,从而建立或保持持续特定的服务,并且可控地和有效地转交给运维管理。使用自动化方法提供发布的效率和质量。

质量保障 QUAS

通过独立评估和审查,确保适当的工作做法、质量控制活动、组织流程和质量标准就绪,进而在整个组织内推广最佳实践的过程。质量保障为内部管理和外部机构 (如客户或管理者) 提供了信心, 确保了质量要求的实现。质量保障可能与质量标准应用领域有关,包括产品、数据、服务和业务流程。

度量 MEAS

开发和运作一种衡量能力, 以支持商定的组织信息需求。规划、实施和控制过程、产品和服务的属性, 以评估性能、进度, 并对实际或潜在的问题、问题和风险提供指示和洞察力。确定需求, 选择措施和测量尺度, 建立数据收集和分析方法, 设定目标值和阈值。度量可以应用于组织、项目、过程和工作产品。

安全工程 SFEN

应用适当的方法确保安全相关系统开发的所有生命周期阶段的安全性,包括维护和重用。 这些包括安全危害和风险分析,安全需求规范,安全相关系统架构设计,正式方法设计,安全验证和验证以及安全案例准备。

应用支持 ASUP

直接向系统用户或为服务传递作用提供应用维护及支持服务。通常,支持包括调查及解决问题,还可能包括性能监测。问题的解决方式包括向用户提出建议或培训,针对故障设计(永久性或临时性)修正方法;作一般或特定的修正、更新文件、操作数据或定义增强支持,通常涉及与系统开发人员及/或与不同领域(如数据库管理或网络支持)拥有专长的同事进行密切的合作。