您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
   
 
     
   
 订阅
  捐助
SPEM:软件开发过程元模型
 
作者:李澎涛
   次浏览      
 2020-5-14
 

摘要: 软件过程(Software Process)建模是软件开发过程的重要步骤,软件和系统过程工程元模型(Software&System Process Engineering Meta-Mode1,简称SPEM)是软件过程建模的规范,是OMG组织制定的对软件过程建模的行业标准,具有描述多种的软件开发过程的能力。

什么是SPEM

SPEM(软件开发过程元模型)是一个概念框架,它可以为建模,文档编制,呈现,管理,交换和制定开发方法和过程提供必要的概念。

如下是基于EA的软件开发过程元模型图:


SPEM可以用来做什么

SPEM可以对工作过程进行建模,包括:角色,活动,工件,

人员:过程中的具体工作人员,例如:张三,李四,王五。

工作:过程中为了实现特定目的执行的行为,例如:需求、分析、架构设计、编码、测试。

工件:过程中或者过程结束的时候产生的工作对象实体,例如:需求说明书、测试计划、源代码,部署单元。

元模型可以清晰地表达过程有关的元素及其关系,对需要制定或者应用过程的人员提供必要的指示,在实际工作中,应该针对具体的工作和过程进行具体化

 


什么是iProcess

通过以上介绍了解了SPEM,接下来我们来看一下iProcess

iProcess是以我为中心的过程设计的研发过程,软件过程主要由人员、工作、工件以时间的方式展开,形成过程。还涉及到工具,具体时间化的过程体现为工作计划。对于以上元素的类型化会形成比较通用的规范。也就是人员角色、文档模板、工作指南、过程指南。


如何在EA中用SPEM定制iProcess

了解了SPEM和iProcess,那么我们看看如何用建模工具EA来实现建模

软件开发过程的三个工作流,核心工作流,管控工作流,支撑工作流

1.核心工作流

2.管控工作流

3.支撑工作流

下面是应用演示界面截图


以下是对每个工作流过程详细图解

需求:角色-活动-工件

工作:

  • 需求调研:通过用户访谈,需求调查表,产品对比分析对客户的需求进行调查,收集有关的素材。
  • 需求分析:对获得的原始用户需求进行分析,以便给出需求的准确、详细的定义。
  • 确定用户需求:对用户的需求进行定义,例如业务流程,业务规则,和用户就需求进行确认
  • 确定软件需求:对软件需求进行定义,例如界面,外部系统接口,和用户就软件需求进行确认。
  • 构建系统原型:通过虚拟或者工具构造一个系统的原始样品,用于和客户据此细化、确认需求。
  • 技术支持:由开发团队对需求分析中的有关技术可行性,涉及实现方面的需求进行支援、确认。
  • 验证系统原型:开发方和客户代表、用户代表就用户需求、系统需求和软件需求进行确认。
  • 工件:

  • 需求调查表:客户的原始需求的记录,涉及具体需求提出的,时间,人,具体要求,原因。
  • 用户需求说明书:从客户和用户角度描述的对软件的初始性要求,属于高层需求,例如业务规则。
  • 软件需求说明书:从用户和开发方协议的角度对软件进行精确描述,属于细节需求,例如 接口需求。
  • EA中用SPEM定义核心工作流中的需求过程


    需求-流程图


    设计:角色-活动-工件

  • 架构设计:架构师根据需求进行架构设计,对高风险的关键问题进行分析,并给出解决方案,并针对性能、可靠性、安全等常见的非功能需求(系统的质量属性)给出解决方案,架构设计文档中分别从概念、逻辑和物理三个层次描述架构的体系结构和行为过程。
  • 概要设计:基于系统架构和数据架构,对系统采用分解策略,自顶向下逐步分解,把系统划分为子系统,子系统进一步划分为模块,并定义各级子系统和模块的接口,包括接口的通行形式和数据协议。
  • 详细设计:对每个要开发的模块的内部结构和行为过程进行设计,映射到开发机制,一般开发人员能够清晰而高效的通过编程或者复用实现。
  • UI设计:因为产品的界面是用户确认需求和获得用户体验的关键,讲求的不单是可行,更是可用,所以由专业的UI设计员进行设计,并制作原型,由用户进行评价和确认。
  • 实现:由开发人员基于详细设计,实现每个模块的结构和行为过程。在实现的时候,通过不断的运行测试来确认是否满足设计和需求。

  • EA中用SPEM定义核心工作流中的设计过程


    设计-流程图


    实现:角色-活动-工件

  • 物理设计:架构师把系统划分为物理的组件,提炼其中可复用的组件,并定义这些组件的接口和依赖关系。
  • 制定集成计划:集成员根据组件依赖关系和开发人员的分工和空间分布,制定能够支持并行开发和持续构建的集成计划。
  • 编写程序:程序员按照确定自己要编写的组件,以及和周围的关系,建立引用环境,然后编写代码,编译并调试。
  • 单元测试:程序员为组件编写测试程序,调用目标组件,运行并测试。
  • 修复bug:开发人员根据单元测试结构,对程序中的代码bug进行修复,对设计bug进行重构。
  • 集成:集成员对完成的组件进行集成,形成复合组件或者系统。
  • 确认需求:需求员对集成计划从维护的角度确定是否满足可维护需求,对完成的程序,从界面和业务逻辑2个角度确认是否满足需求。
  • 测试:测试员对集成的系统进行黑盒测试,测试是否能够正常运行,并满足了需求和设计定义。

    EA中用SPEM定义核心工作流中的实现过程


    实现-流程图


    测试:角色-活动-工件

    测试按照阶段分为:

  • 单元测试:开发人员所做的面向程序单元的测试。
  • 集成测试:集成人员所做的子系统有效集成的测试
  • 系统测试:测试人员所做的完整系统的面向需求应用的测试
  • 验收测试:客户方所作的验收系统的测试。
  • 测试按照质量目标分为:

  • 功能测试:测试系统功能的正确性,完整性和一致性。
  • 性能测试:测试系统对于多用户并发,多任务执行,长事务执行,大数据量条件下用户请求的响应的及时性。
  • 可靠性测试:测试系统的运行稳定性,故障的处理和恢复能力。
  • EA中用SPEM定义核心工作流中的测试过程


    测试-流程图


    部署:角色-活动-工件

    部署工作的目标:

  • 履行和客户的契约,确认客户接受产品。
  • 把系统部署到应用环境中,系统能够被运行以实现业务目标。
  • 使系统的用户具备操作软件的能力。
  • 对外宣传产品的价值,使关注者更好的了解产品,让更多的人认识产品。
  •  

    EA中用SPEM定义核心工作流中的部署过程


    部署-流程图


    项目管理:角色-活动-工件

     

    EA中用SPEM定义管控工作流中的项目管理


    项目管理流程图


    质量管理:角色-活动-工件

     

    EA中用SPEM定义管控工作流中的质量管理


    质量管理-流程图


    配置管理:角色-活动-工件

     

    EA中用SPEM定义支撑工作流中的配置管理


    配置管理-流程图


    过程改进:角色-活动-工件

    过程改进涉及到软件工程组织的工作方式、方法和环境的改进,尤其涉及到人员观念和工作习惯的改变,客观的说不应该是一个急进的过程,而是一个结合组织当前的过程问题,逐步改造的过程,所以过程改进模型应该提供一个具体的演进的路线图,而这个演进的路线图可以像CMMI那样分为多个级别,然后逐步改进

    EA中用SPEM定义支撑工作流中的过程改进


    好了,根据以上介绍呢,相信大家对SPEM有了一些了解,在EA中还可以用SPEM对人员的能力进行建模,了解更多知识,可以参考如下的课程或者工具:

  • 文章:能力模型 : 需求分析师
  • 讲座:需求分析师的能力模型、培养与评测
  • 课程:SysML和EA进行系统设计建模
  • 工具:企业架构建模工具EA

  •  

       

     

    次浏览       
     
    相关文章

    UML概览
    UML图解:用例图(Use case diagram )
    UML图解:活动图(activity diagram )
    UML图解:类图(class diagram )
    UML图解:对象图(object diagram)
    UML图解:顺序图( sequence diagram )
     
    相关文档

    模型跟踪:跟踪图、矩阵、关系(建模工具EA)
    自定义表格(Custom Table)在EA中的使用
    元素的详情浏览控制
    UAF 1.2规范解读(DMM 和 UAFML )
    EA中支持的各种图表
    EA中的界面原型建模
     
    相关课程

    UML与面向对象分析设计
    UML + 嵌入式系统分析设计
    业务建模与业务分析
    基于SysML和EA进行系统设计与建模
    基于模型的需求管理
    业务建模 & 领域驱动设计
    最新活动计划
    LLM大模型应用与项目构建 12-26[特惠]
    QT应用开发 11-21[线上]
    C++高级编程 11-27[北京]
    业务建模&领域驱动设计 11-15[北京]
    用户研究与用户建模 11-21[北京]
    SysML和EA进行系统设计建模 11-28[北京]
     
    最新文章
    iPerson的过程观:要 过程 or 结果
    “以人为本”的工程哲学
    企业架构、TOGAF与ArchiMate概览
    UML 图解:顺序图( sequence diagram )
    UML 图解:对象图( class diagram )
    最新课程
    基于UML和EA进行系统分析设计
    UML+EA+面向对象分析设计
    基于SysML和EA进行系统设计与建模
    UML + 嵌入式系统分析设计
    领域驱动的建模与设计
    更多...   
    成功案例
    某电信运营供应商 应用UML进行面向对象分析
    烽火通信 UML进行面向对象的分析设计
    西门子 UML与嵌入式软件分析设计
    航天科工某子公司 从系统到软件的分析、设计
    深圳某汽车企业 模型驱动的分析设计
    更多...