一种敏捷系统工程实施模型

2022-06-28 01:44汪骥宇
大科技 2022年24期
关键词:用例系统工程子系统

汪骥宇,白 喆,李 杰,陈 武

(中核武汉核电运行技术股份有限公司,湖北 武汉 430223)

0 引言

建立企业全流程生产管理系统是数字化转型的基础,这类系统涉及企业安全生产的方方面面,打通全业务流程,具有规模大、业务复杂、需求不确定、技术复杂、构建周期长、投资大等特点。这类大系统的研发实施成功与否,直接关系到企业数字化转型的推进速度。在企业中或多或少存在一些信息系统,企业的某些领域有一定的信息化基础,企业对未来管控平台有一定的想法,如何成功的构建企业全流程生产管理系统成为这些企业遇到的主要问题。

在大系统研发过程中,经典的软件开发模型:瀑布模型、快速原型模型、增量模型、螺旋模型等模型具有一定的指导意义。在新技术快速演进、市场环境快速变化的当下,构建有生命力,能够应对这些技术迭代、环境变化的系统,需要全新软件系统开发模型。

系统工程运用系统思想解决大系统问题,解决了系统研发中各部分的相互关联、制约、作用的难题,构建了有机统一的系统[1-2]。系统工程方法对构建统一的大型软件系统具有很好作用。另外,敏捷开发模式[3-4]以其快速高效、适应变化、注重交付等特点,在应对变化方面具有广泛应用。但是在大型软件系统研发工程中,敏捷模型如何运用还是一个具有挑战性的课题。本文提出了一种敏捷系统工程实施模型,结合系统工程方法、敏捷模型而构建的大型软件实施模型,能够指导大型软件研发实施。

1 敏捷系统工程实施模型

在敏捷系统工程实施模型中,定义了“两流程一中心”核心,即项目管控流程和项目执行流程两个一级流程,以及一个配置中心,其中有以下3 点需注意。

(1)项目管控流程,包含了工程项目管理相关流程,涉及项目范围、时间、成本、质量、人力、沟通、风险、采购、综合管理的内容。

(2)项目执行流程,包含了敏捷系统工程实施模型的执行流程,包括系统工程流程和系统开发流程两大二级流程。

(3)配置中心,包括开发运维一体化平台和内容平台,提供研发项目的需求管理、项目管理、研发、测试、运维等服务能力,同时对项目项实施过程中的资料、规范、知识、协调文件等内容进行管理。

2 项目管控

在大型软件系统研发项目中,项目管理是其重要部分,直接关系到项目的成功。在模型中重点关注项目控制、风险管理、变更管理3 项流程的内容,涉及的相关交付物有项目章程、项目进度计划、项目组织机构、项目人员通信录、项目设计开发规范、项目控制记录、风险记录、例会记录、变更请求记录,具体如下。

(1)项目控制流程:主要是对项目的人员、进度、质量、成本的管理。

(2)项目风险流程:主要是对风险的管理,从风险规划、风险识别、风险跟踪、风险应对等方面进行管理。

(3)变更管理流程:主要是软件研发过程中范围进行管理,包括需求、设计、开发、测试等方面变更管理。

3 项目执行

3.1 系统工程

系统工程流程包含项目启动和系统工程周期流程。其中在项目启动活动中,包括一系列的并行活动,召开启动会表示该活动完成。通过多个系统工程周期完成整个系统的总体设计,总体设计也是在迭代过程中不断的优化完善,最终达到系统的要求。基本原则时按照项目启动环节确定的领域优先级进行迭代系统设计。

3.1.1 项目启动

项目启动环节主要活动包括组建团队、识别角色/角色用例/定义用例优先级、制定总体时间进度计划、制定风险控制规划、制定软件工程规划,该环节主要的成果包括总体进度计划、风险降低规划、系统工程规划、角色清单、角色用例清单。该环节启动会召开为完成标记。

对于软件工程,首先对系统的功能进行划分,跟进业务领域进行初步划分,通过和业务专家一起,识别主要的业务角色和用例,这里的用例粒度较粗,以一二级业务场景为标准进行,主要目的是识别关键业务。对识别用例进行分类,设置优先级。本步骤的主要目标是识别核心业务流程,核心业务领域。完成业务领域识别和分级后,在根据项目计划,制定迭代分析设计计划。

3.1.2 系统工程周期

在系统工程周期中包括迭代启动、角色需求分析及定义、系统需求分析及定义、架构分析、架构设计、设计评审、迭代回顾6 个环节,如图1 所示。

图1 系统工程周期

(1)迭代启动,确定本迭代计划、人员职责、成果、以及风险,召开启动会。

(2)业务领域需求分析[5],开展领域需求分析,本步骤需要识别领域角色、业务用例、其他需求。首先进行业务角色建模,根据具体业务需求,识别业务角色,这里原子粒度以用例步骤粒度为准。再进行用例的细化以及用例编写,同时识别出非功能需求。在用例分析过程中,需要结合业务活动图、状态图等工具,对用例的细节进行梳理,确保在用例分析过程中做到,关键业务不缺项。需要设计出实现各个用例的功能,必要时结合原型分析,完成所有业务的写操作功能,同时识别必要的读操作,实现用例的完整性。

(3)系统需求分析及定义,在该阶段需要完成服务设计形成服务清单、领域模型、服务关系模型[6-8]。首先定义接口服务,再对这些服务接口进行分类,接下来进行模型建模,最后进行模型审查。

(4)架构分析及设计,完成子系统/组件的设计。

(5)设计评审,对架构设计模型进行审查,通过模型的合理性评审。

(6)迭代回顾,需要分析哪些需求需要纳入后续迭代中。

3.2 系统开发

系统工程过程完成子系统/组件设计后,在系统开发过程中,根据项目资源、子系统/组件关系,开启子系统/组件的开发。

3.2.1 迭代计划设计

每个子系统/组件开发,需要制定相关的版本迭代计划,规划系统实现的迭代次数、迭代方式。PO、业务人员就系统的功能进行迭代计划设计,在系统总体计划的前提下(子系统开发时间已设置),根据功能优先级设计子系统功能迭代开发计划。本活动输出物包括用户故事(粗粒度)、迭代计划。

3.2.2 系统实现

系统实现的每个迭代包括设计流程和开发流程,具体如下。

(1)设计流程。

系统设计过程完成本次迭代相关功能的设计,设计分为多个迭代设计过程,每个迭代设计过程包括6个环节,设计流程如图2 所示。

图2 设计流程

各流程释义如下:①用户故事编写[5],PO 和业务人员协作,PO 完成用户故事编写,输出系统功能需求,主要包括用户故事、业务流程、以及非功能需求。②功能原型设计,PO 和业务人员协作,完成系统功能及功能原型设计,输出系统原型。③数据模型设计,子系统设计人员根据系统功能需求,完成数据模型设计,包括概念模型和物理模型。输出概念模型和物理模型,以及相关配置设计(包括值列表、首选项、工作流、报表等成果)。④服务设计,子系统设计人员根据系统功能需求,完成系统服务设计,输出服务清单、服务模型、领域模型。⑤设计审查,系统设计完成后,组织系统架构师、中台设计架构师、数据架构师、应用架构师、业务人员等人审查本活动的输出物,设计人员根据审查意见完成相关设计文件的修改。输出审查纪要。⑥进行迭代回顾,设计迭代活动完成后,进行迭代回顾,主要是对本次迭代的工作情况、以及下一个迭代的工作范围,更新迭代计划。

(2)系统开发。敏捷开发小组进行敏捷开发,主要活动包括计划会、功能开发、功能测试、开发例会。该活动的主要产出物包括代码、软件、测试用例、测试报告、用户手册、配置手册。

(3)系统实现流程演变。在本模型中,采用敏捷方式进行系统开发,每个迭代的时间不应过长。系统实现是项目落地实施具体环节,在实际的项目执行过程中,可能会存在一些特殊情况:①子系统功能逻辑复杂,需要化更多的时间进行设计,为了每个迭代能够有交付物,可以在开始的迭代中包括多个纯设计迭代,待设计完成后,再进入系统开发。②在集成系统开发中,主要的工作是测试工作,那么可以缩短设计的时间,增加系统开发的迭代。

4 配置中心

在大型软件研发项目中,存在几十个上百个敏捷迭代小组同时进行开发,各个小组的开发进度不同,需要开发运维一体化平台进行管理,提供研发项目的需求管理、项目管理、研发、测试、运维等服务能力,同时对项目项实施过程中的资料、规范、知识、协调文件等内容进行管理。

配置中心从传统文件管理、代码、测试管理等各自独立的,采用不同的工具进行管理,转化为统一的开发运维一体化平台进行管理。支撑项目管控和系统实施,实现自动化的软件交付,形成软件的构建、测试、发布自动化体系。

4.1 开发运维一体化平台

开发运维一体化平台[9]是模型中项目实施的基础设施,提供了项目管理能力、配置管理能力、持续集成能力,是实现项目管控与系统实施一体化平台。

(1)项目管理能力,包括项目的进度管理、风险管理、变更管理等方面内容。

(2)配置管理能力,包括需求管理、设计管理、代码管理、测试管理等方面的内容。

(3)持续集成能力,包括资源管理、容器管理、持续集成、持续交付、镜像仓库等能力

4.2 内容平台

内容平台是项目成果的仓库,对模型各个流程的输入、输出物进行中心统一管理。主要包括项目管理、业务需求、系统需求、系统设计、系统实现、系统交付、资料、个人空间8 个方面的内容

5 结语

本文介绍的敏捷系统工程实施模型在大型软件系统研发中使用,能够很好地支持敏捷的系统工程设计与开发过程。通过开发运维一体化平台,实现项目管控、系统实施的一体化管理。本模型的实施过程关键点主要是以下3 个方面。

(1)系统工程思想:从开始就需要有系统思维,协调好各个系统设计的迭代内容,不能遗漏集成设计迭代环节。

(2)系统设计与系统开发分开:系统设计流程重点运用系统工程方法,系统开发过程重点运用敏捷开发,同时两个流程要保持信息通畅。

(3)一体化管理平台:需要通过一体化管理平台管理全流程的各种模型、数据的流转,避免研发过程中数据传递丢失信息,提高管理、研发效率,保障项目成功。

猜你喜欢
用例系统工程子系统
不对中转子系统耦合动力学特性研究
京德智慧高速信息化系统工程
UML用例间包含关系与泛化关系的比较与分析
UML用例模型中依赖关系的比较与分析
GSM-R基站子系统同步方案研究
联锁软件详细设计的测试需求分析和用例编写
驼峰测长设备在线监测子系统的设计与应用
從出土文獻用例看王氏父子校讀古書的得失
《军事运筹与系统工程》稿约
广州新型有轨电车通信系统工程应用创新