Mechatronics Management (Part 3): Software Aspects 机电产品的管理 III 软件部分 原文 by Chad Jackson 翻译 by 咋不乐 This series of four posts looks at the management of items, data and bills of material for mechatronic products. It is split into mechanical aspects, electrical aspect, software aspects and integrated aspects. When you think about it, managing the software aspects of a mechatronic product is, at least in relative terms, one of the most recent advances in product develOPMent. Products have long had mechanical and electrical components to them. However there has been a recent explosion of software in more traditional products in an effort to make them smarter, more efficient, more use friendly and provide all sorts of new capabilities. 这四个系列的帖子着眼于机电产品的物料项目,数据和物料清单的管理。它分为机械部分,电子部分,软件方面和集成部分。 当谈到管理的机电一体化产品的软件部分的话,至少相对而言,是产品开发管理的最新进展之一。产品一直拥有机械和电子部分。但是现在在传统的产品中嵌入了越来越多的软件使之变得更加智能,更加高效,更加友好,并能够提供各类新功能。 Managing Software Aspects of the Product(管理产品软件部分) Like the electronic aspects of the product, the software aspects are complicated to say the least. However it is eminently different in that the end item ultimately has no physical form. There is really no equivalent in terms of manufacturing, unless you think of actually writing code as the analogue. Regardless, if you are writing code then one of the first things that needs to be done is to manage software configurations. 正如产品的电子部分一样,软件部分也不能说很简单。但它绝对不同的地方在于“最终零件”是无形的实物。他并没有对等的可制造出来的东西,除非你把实际编写的代码模拟成制造出的对等物。无论如何,如果你要写代码的话,首先要做的事情就是软件配置管理。 Managing Software Configurations(管理软件配置) So what exactly is this all about? The development of modern software is actually very similar to mechanical or electrical design. The software is broken down into modules. Those individual modules are then written, assembled and compiled. Overall it’s very similar to mechanical or electrical design in that individual parts are put together to form assemblies. The various software modules that comprise the overall software end item change at different rates, much like mechanical and electrical parts do. And as a result, the assembled software end item is composed of numerous software modules that exist at different versions. Tracking which software module is at which version is essentially a configuration management problem. Modern Software Configuration Management (SCM, wikipedia entry) systems do all this in an automated fashion across multiple sites for numerous users simultaneously. 那么软件配置管理究竟是什么?现代软件开发实际上与机械或电气设计非常类似。软件研发分解成模块。这些单独的模块依次被编写,组装和编译。整体而言,这非常类似于机械或电气部件的设计,每个单独的零件放在一起成为组装件。各个版本软件模块由不同频率的变更形成,这很像机械和电气元件。最终组装的软件是由众多的软件模块(存在不同的版本)组成的。跟踪软件模块是哪个版本就是配置管理的问题。现代软件配置管理(SCM,维基百科条目)跨越多个站点同时为众多用户自动化地管理这些版本。 The main purpose for this type of system is to ensure that right configuration is correctly tested, verified and flashed into the mechatronic product. And with new software development approaches daily builds (wikipedia entry) are commonplace, this becomes really important. But there are many other reasons also. Just as it is done in mechanical and electrical design, reuse is a huge time saver in the software world. Different existing software modules can be used again in an effort that means there is less net new software to be written and tested. It also means there’s less risk associated with a software end item that is reusing software modules that already exist. Overall, SCM systems manage the configuration problem that arises when software end items are split up and developed across a team. 此类型系统的主要目的是确保正确的配置被正确地测试,验证,并烧入到机电产品中。而随着新的软件开发方法多采用daily builds (wikipedia entry),配置变得非常重要。但也有很多其他原因。正如在机械和电气设计一样,软件设计的重用可以节省大量的时间。现有的不同的软件模块再利用就意味着少量的纯新软件的编写和测试。这也意味着同重用软件模块代码关联的低风险。 总体而言,SCM系统管理软件配置的问题,而这些问题由任务分配和跨团队开发引起。 Managing the Software Lifecycle(管理软件生命周期) But the story doesn’t end there. Much like any product, software end items have a lifecycle of their own through which they progress. It starts with requirements management, decomposition and allocation. There is then a planning phase where the software end item’s architecture is designed. It is then coded where project management techniques are used. It is also built and tested on a frequent basis. And finally it is released, after which a change management process governs how, when and why post-release changes are made. 但故事还没有结束。就像任何产品,最终的软件产品有一个属于自己的生命周期。它从需求管理,需求分解和需求分配开始。然后有那么一个阶段规划该软件最终产品的架构设计。接下来的进行代码编写并使用到各类项目管理技巧以及频繁地进行测试。最后它被发布出来,然后启动变更管理流程来管理如何,何时和为什么要更改。 This larger set of processes are commonly managed and controlled with an Application Lifecycle Management (ALM) system (wikipedia entry). Furthermore, SCM systems tend to be a subset of ALM systems much the same way that PDM systems are commonly a subset of PLM systems. In that way, there are many parallels between this type of system and traditional Product Lifecycle Management (PLM) systems (wikipedia entry). However there are unique processes and procedures specific to software development that ALM systems support that traditional PLM systems do not support. But these tend to get into workgroup level activities for which SCM systems are used. 这一比较庞大的过程通常需要“程序生命周期管理(ALM)系统”(维基百科条目)来管控。此外,SCM系统往往是ALM的一部分,正如PDM系统通常的PLM系统的一部分。ALM会支持软件开发有其特有的流程和程序,而这些是PLM不能够提供的。但这些往往进入工作组级的供应链管理系统的使用活动。 Software Management in Mechatronics as a Follower(后来者:软件管理) What may be most interesting about existing SCM and ALM systems how they have been initially developed for application development as opposed to mechatronics development. Make no mistake, these types of systems were initially created to support application development, which ends up running on a desktop or workstation as opposed to a mechanical-electrical product. And at the higher levels of planning, designing and validating a mechatronic product, there are processes and procedures that many ALM and SCM systems do not support. But that conversation starts to get into the integrated aspects of mechatronic development, which we’ll go into much deeper in the next post in this series. 我很感兴趣的一件事情是:现有的SCM和ALM系统是如何为软件程序研发而发展起来的,为啥没有针对机电产品呢? 毫无疑问,这种类型的系统主要是为了支持软件程序开发而发展的,最后仅仅在桌面和工作站上运行(主要用来管理代码),而不是针对机电一体化产品。对于更高的一级机电一体化产品的规划,设计和验证,有许多流程和程序是ALM和SCM系统不支持得。但是我们的这类谈话应该深入到集成机电产品开发,这也是下一篇帖子会谈论到的。 Conclusions and Questions(结论和问题) In the past deCADe, there has been an explosion of software in traditional mechanical-electrical products. Software Configuration Management (SCM) systems track the versions of software modules that make up a software end item. Application Lifecycle Management (ALM) enable the larger processes and procedures used to develop the software end item. Many ALM and SCM systems were originally created for application development as opposed to mechatronics development and as a result, often do not manage the higher level activities necessary for mechatronics development. Now it’s your turn. What systems has your organization used to manage software aspects of your product? How much has your organization focused on SCM as opposed to ALM? Sound off and let us know what you think. Take care. Talk soon. And thanks for reading. 在过去的十来年中,传统的软件机电产品的嵌入式软件呈现爆炸趋势。软件配置管理(SCM)系统跟踪构成最终产品的软件模块的不同版本。应用产品生命周期管理(ALM)可以管控大流程和程序并用于开发最终产品。许多ALM和SCM系统最初是为了管控应用程序的开发,而不是机电一体化产品。因此,它往往不能够管理更高层次机电产品的研发活动。 现在轮到你了。你的组织使用了哪种系统来管理软件方面的研发?你的组织花了多少精力在SCM上。停笔的时间到了,让我听听你们的反馈吧。 谢谢您的阅读。 |