A Contribution from Markus Völter on: Embedded vs. Enterprise
I looks as if the topic I discussed in my last posting is of a broader interest... The following is Markus Völter's view on the subject!
Traditionally, the enterprise software development community has considered the embedded folks to be a bit conservative and somewhat boring. "Bitcounters" they were often called :-). And indeed, traditioinally the embedded field hasn't been very eager to adapt new technologies, especially language adoption was very slow. Per-unit cost was often more important than inital software development cost, so complex one-off systems had to be built. As a consequence of (often premature) optimization for small devices, there was often no room for "nice design".
However, for the last couple of years, things have been changing dramatically. As a consequence of the fast growing complexity and size of (distributed) embedded systems the requirements for embedded software development are changing. The effort spent on developing the system becomes more important, compared to the per-unit cost of the device. There are more things pushing into the same direction: product lines, shorter time to market.
So, the embedded software development community is forced to consider more explicitly things such as software architecture, variability management, reuse and other similar topics. And since frameworks and "classic" OO technology often isn't a good fit (for reasons of performance and/or resource scarcity in general) and because the complexities involved are getting so big that classes aren't enough of an abstraction anyway, the embedded world is rapidly embracing model-driven development.
Using MDD, embedded developers can build meaningful abstractions to manage the system complexity, handle variabilities on the model level and in the generators and even simulate aspects of the system. And from these models, they can generate their tried and trusted C code ... that runs on their tried and trusted infrastructures (RTOSs).
Note that MDD has been used in the embedded world for ages (maybe not by that name), as exemplified by tools such as Ascet or Matlab/Simulink.
However, these tools often addressed mainly algorithmic aspect of the target system. Using models to describe the system as a whole, including processors, networks, distribution, deployment and quality of service is a more recent development.
In my talk at OOP 2007, I will elaborate on these topics ... the slides aren't finished yet, so let me know at voelter@acm.org what you want me to talk about in the session :-)
Donnerstag, 7. Dezember 2006
Dienstag, 5. Dezember 2006
OOP 2007 Embedded Track: Embedded vs. Enterprise (1)
Hi,
I've been asked often what my relationship as an "enterprise software" guy with embedded software is. In the enterprise world you don't have those stringent resource constraints,
operational quality requirements, and hardware dependencies as in embedded software. Conversely, a lot of technologies and practices of enterprise software development do not transfer to emmbedded software development, such as agile processes, and component and communication middleware.
Well, the truth is, that this is actually not true. In fact, both domains share a lot of properties, only at an other end of the same scale. For instance, even in the largest enterprise-level systems, such as online book stores and search engines, you can't throw arbitrary many hardware against the software. In those types of systems, memory, disc-space, CPU time, etc. are quite limited resources! Otherwise their total cost of ownership quickly become unaffordable. On the other hand, you as a user of such systems expect an appropriate quality of service, regardless how many other people are using the systems at the same time. As a consequence, a lot of techniques from the embedded domain, such as memory budgets, time-triggered computation, etc., also apply in the enterprise world.
Likewise, even the smallest embedded software system can benefit from technologies that are typically applied at the enterprise level. On Tuesday, January 23rd, 14:00 - 14:45, we have a talk at OOP on exactly this subject (in German):
Einsatz moderner Software-Entwicklungsmethoden bei Embedded Systemen am Beispiel eines Frameworks für verteilte „Mikro”-Anwendungen from Josef Brandstetter.
In this talk Josef demonstrates how agile software development, test-driven development, model-driven development, patterns, frameworks, and standard software platforms, helped building a flexible, yet real-time capable communication middleware for small embedded devices.
This is why I am interested in embedded software -- because I, as an enterprise guy, can learn from the embedded domain, and vice versa, I think, developers of embedded software can learn much from enterprise people. This vision, actually, shaped the design of the embedded software track at OOP: showing that both worlds, enterprise and embedded, are less different than they might appear at a first glance.
Thanks.
Frank
I've been asked often what my relationship as an "enterprise software" guy with embedded software is. In the enterprise world you don't have those stringent resource constraints,
operational quality requirements, and hardware dependencies as in embedded software. Conversely, a lot of technologies and practices of enterprise software development do not transfer to emmbedded software development, such as agile processes, and component and communication middleware.
Well, the truth is, that this is actually not true. In fact, both domains share a lot of properties, only at an other end of the same scale. For instance, even in the largest enterprise-level systems, such as online book stores and search engines, you can't throw arbitrary many hardware against the software. In those types of systems, memory, disc-space, CPU time, etc. are quite limited resources! Otherwise their total cost of ownership quickly become unaffordable. On the other hand, you as a user of such systems expect an appropriate quality of service, regardless how many other people are using the systems at the same time. As a consequence, a lot of techniques from the embedded domain, such as memory budgets, time-triggered computation, etc., also apply in the enterprise world.
Likewise, even the smallest embedded software system can benefit from technologies that are typically applied at the enterprise level. On Tuesday, January 23rd, 14:00 - 14:45, we have a talk at OOP on exactly this subject (in German):
Einsatz moderner Software-Entwicklungsmethoden bei Embedded Systemen am Beispiel eines Frameworks für verteilte „Mikro”-Anwendungen from Josef Brandstetter.
In this talk Josef demonstrates how agile software development, test-driven development, model-driven development, patterns, frameworks, and standard software platforms, helped building a flexible, yet real-time capable communication middleware for small embedded devices.
This is why I am interested in embedded software -- because I, as an enterprise guy, can learn from the embedded domain, and vice versa, I think, developers of embedded software can learn much from enterprise people. This vision, actually, shaped the design of the embedded software track at OOP: showing that both worlds, enterprise and embedded, are less different than they might appear at a first glance.
Thanks.
Frank
Freitag, 1. Dezember 2006
OOP 2007 Embedded Track Schedule Update
Hi,
just a quick scheduling info for the OOP 2007 embedded track: Miro Samek had to cancel his participation and talks, unfortunately. While there is no substitute for Miro's tutorial on Monday, we could win Andrey Nechypurenko from Siemens Corporate Research and Technology to give a talk on Hierarchical State Machines on Wednesday, January 24, from 9:00 - 10:30. Andrey used hierarchical state machines for OOP on concrete projects and will both introduce to using the approach and report on his experiences with it.
Note that this schedule change is not yet visible at the official OOP 2007 Program.
just a quick scheduling info for the OOP 2007 embedded track: Miro Samek had to cancel his participation and talks, unfortunately. While there is no substitute for Miro's tutorial on Monday, we could win Andrey Nechypurenko from Siemens Corporate Research and Technology to give a talk on Hierarchical State Machines on Wednesday, January 24, from 9:00 - 10:30. Andrey used hierarchical state machines for OOP on concrete projects and will both introduce to using the approach and report on his experiences with it.
Note that this schedule change is not yet visible at the official OOP 2007 Program.
OOP 2007 Embedded Track
Hi,
this is the official start of the blog on the embedded software track at OOP 2007. I am Frank Buschmann, the chair of this track. Many of you may know me from my work on software architecture and patterns, and from speaking at varius conferences, like OOP.
Blogs for OOP are a "new thing," so let's see how it runs. I am planning to use this track to post my thoughts and considerations on embedded software to share and discuss them with you. I'll also ask speakers of the track to contribute to this blog, and, of course, I'll provide comments on your comments.
Thanks -- and happy blogging.
this is the official start of the blog on the embedded software track at OOP 2007. I am Frank Buschmann, the chair of this track. Many of you may know me from my work on software architecture and patterns, and from speaking at varius conferences, like OOP.
Blogs for OOP are a "new thing," so let's see how it runs. I am planning to use this track to post my thoughts and considerations on embedded software to share and discuss them with you. I'll also ask speakers of the track to contribute to this blog, and, of course, I'll provide comments on your comments.
Thanks -- and happy blogging.
Abonnieren
Posts (Atom)