PART 1
什么是软件产品线
提到“产品线”三个字,相信大家都有一定的接触和认知,有人说像生产线,源源不断地,有组织,有秩序地生产着同类产品,有人说它还应该包括最初的设计,贯穿从设计到使用整个过程(一根很长的线)。较为严谨的说法有:产品线是指一群相关的产品,这类产品可能功能相似,销售给同一顾客群,并且共享一个公共的、可管理的特征集,这个特征集可以满足选定的市场或任务领域的特定需求。显然,一口气读完有点累,那在产品线上加上“软件”两个字,是否能有稍微清晰的定义和描述呢?
首先,“软件”是一系列按照特定顺序组织的计算机数据和指令的集合(这里指的计算机是广义上的计算机),运行时,能够提供所要求功能和性能的指令或计算机程序集合;程序能够正确地处理信息的数据结构;且有描述程序功能需求以及程序如何操作和使用所要求的文档。软件本身并不简单。总的来说:软件=程序+数据+文档。
那么,“软件产品线”则应该是在一类功能相似,市场定位一致的一系列“程序、数据、文档”这些资源集合的基础上建立起来,并共享同一个公共可管理的特性集的系统集合。
依据SEI(Software Engineering Institute)的定义,软件产品线主要由两部分组成:核心资源、产品集合。核心资源是领域工程的所有结果的集合,是产品线中产品构造的基础。也可将核心资源库称为:平台。核心资源必定包含产品线中所有产品共享的产品线体系结构,新设计开发的或者通过对现有系统的再工程得到的、需要在整个产品线中系统化重用的软件构件。
可见“产品线”加上“软件”那是相当高深的,我们不妨先提炼出几个关键字:构件;资源;体系;产品。然后把它们串起来:在特定领域工程的开发的构件,可以形成一定的核心资源,配合能持续满足该领域所在市场需求和开发活动的管理体系,来长期支持新产品开发,并有效地投放到市场应用,那么,这便可称之为一条软件产品线。
PART 2
软件产品线的必要性
软件行业都有着同样的特性,软件需求会越来越多样;软件本身会越来越复杂;软件开发参与者会越来越多;软件开发活动趋向于协同与迭代;软件作为产品搭载在整个系统中的地位越来越关键,从而对软件产品本身的开发质量和效率便也提出了越来越高的要求……对于汽车行业而言,这些特性只会显得更加的显著。
据相关资料显示,一辆Ford F150 Pickup嵌入的软件代码行数已经超过了一架Boeing 787 Dreamliner飞机的代码行数(LOC:line of code),这么多行数代码背后又是无数个基础组件以及系统模型,无数的组件和模型则对应着全球范围内不计其数的软件工程师和系统工程师,工程师作为全新信息-数据时代的生产者,他们的活动效率则决定着每个企业最直接的经济效益。
区别于独立开发、从零开始开发、随机开发等方式,软件产品线具体如何提高生产的经济效益呢?
软件产品线的开发方法指导软件开发者采用资产复用而非重复开发的方式来进行软件生产。软件产品线的开发原则,将开发过程划分为:“领域工程”与“应用工程”两个生命周期。
领域工程建立了公共产品线基础,主要是用来发现产品中主要的共性和变化点,实现了产品的组合策划。应用工程师在平台基础之上开发单个的系统。由于开发中的大部分人力成本和技术复杂因素会投入到领域工程中,同时,领域工程为每条软件产品线定义好确切的产品构建方法,因而确保了软件的开发质量。如此构建一个产品(系统)主要工作变成组装和繁衍,而不是创造;主要的活动是集成而不是编程。综合起来实现生产的每个产品兼顾高质量和高效率地输出,从而提高整个生产的经济效益。
PART 3
软件产品线及架构设计
联合电子软件工程领域有:汽车发动机领域,摩托车发动机领域,新能源整车控制领域,电池控制领域,电机控制领域,汽车数据服务领域以及整车域控制器领域。在这么多领域里,开发和维护着不同的软件产品线,为其应用工程输出优质产品。
这些软件产品线以架构设计为导向从以下三个主要方面推动开发和应用。
以功能为导向的开发组织架构
确保领域工程的开发质量
对于汽车各系统软件,每一个符合物理背景,满足应用需求的功能模块是一个个核心资源,任何一个核心资源的需求分析、架构设计到概念开发,到最后的代码生成,都需要有严格的过程质量控制以及明确的流程责任人,并从整体架构上考虑其之后的可复用性,可配置性,可扩展性。
软件架构开发环境落实软件管理体系
软件产品线内的核心资源及建立的标准体系如何在多人开发模式下统一管理,则需要以架构为导向从上而下的建立管控能力。我们将软件产品线建立的开发标准融入在整个软件开发环境工具链中,嵌入软件开发流程和过程控制,以及大数据分析能力,让系统开发工程师专注精力在物理模型的设计上,让架构开发环境保证每一个check-in的组件符合所在软件产品线中核心资源库的一切标准体系。
专业客户团队专注每个客户的产品设计与应用
通过建立独立的开发部门,直接对接每一个客户需求,在软件产品线的核心资源库基础上借助复用技术持续配置,集成和繁衍,不断地推出新产品,快速而高质量地满足市场追求产品升级换代的需求。
总结
本文结合一定专业术语和些许通俗语言介绍了什么是软件产品线,软件产品线发挥的优势,以及如何全面的开发和应用软件产品线。联合电子将依托软件产品线的规划和正向的软件架构设计为客户提供更高效更可靠的控制器功能软件方案,用以满足日益趋严的法规要求及客户不断迭代的快速开发要求。