Product Line Architecture in Automobile Industry

I had worked with a major Automobile Supplier in Germany from past 6 years of time. Its nice to see the way this industry is into making the “Short Product Cycles”. Initially the coencentration was on the faster innovation and the engineering team that supports it. And then the higher management has realized that there is something more than the Product Innovation and shorter “Time To Market”.

Then everyone has come across the Nokia Product Line [Manufacturing/Designing/Architecture]. If we look at it closely in terms of how fast Nokia wasable to get new models in to the Market and how fast they change the entire product lines/series, it is amazing. The base of a particular product series is almost the same. The panel changes, the software featuers changes, the memory size changes, the screen changes, etc… So some how these guys are able to get all these very quickly and then turn them into the Market.

It was more or less on the same lines that the Automobile industry gone in to this. How can i make a product Series changing rapidly and still get the maximum out of this. This phylosophy goes into almost many of the engineerning teams. e.g. body team, power train team, electronics team, software for the engine, software for the multimedia, etc…. Inshort this spreads across both the Software and Hardware of the Automobile Engineering.

In the first look the idea is to have a STABLE platform which serves as the starting point to develop or improve further. In a product series, this platform is more or less the STABLE through out and suppliers or manufacturers add some plug-ins on the top of the platform. So you can imagine something like having the Widows or Linuz kernal with you and you write some value added applications on the top of it. So, you have the same platform/kernel with you for your applications. BUT the behaviour and features of the application changes.

This looks very easy to be implemented concept. But in reality we have the 1000’s of engineers and architects working on it to really see something like this. We also understand that as the organization grows the integration and architectural implications increases. Department A does not know whats happening in the Department B in the same Organization. Some times its even hard to know what the competior is doing.

But what i have seen is that its a really COOL to something like this. This really makes the product companies “get going faster”.

Posted in technology | Tagged , | Leave a comment

Showing Hierarchical data in Eclipse

Withe the introduction of RCP, EMF-RCP, GEF and GMF, now there are plethora of choices to display hierarchical or grouped data. I have been struggling with all these varieties to choose one amongst them. Its quite clear why would you choose a viewer (Tree, Table, etc…), so i am not going to write much about it. The real challenge is to choose between the available widgets appropriate for your application.

The Hierarchical data that need to be presented to the end user can be in many ways. It can be a TreeView, TableView, TableTreeView, Nebula PShelf Widget, ExpandBar. Probably there can be more viewers/widgets that i am not aware of.

The real important difference is to make sure that we have the right Widget and right Viewer to represent the data. Pretty clearly, many of the widgets from SWT can not manage the complex data manipulation. That’s the reason we have a very user friendly layer called JFace on the top of it 🙂

Recently i also fiddled around with the PaletteView in GEF. This is also a very good starting point to represent collection of artifacts, from which we are going to select a specific action or tool. To provide a select-drag-create kind of scenario, i love to use PaletteView, TreeView, PShelf.

A more dynamic scenario is supported by the TreeView (as it has the providers behind) . If we are sure of the artifacts to be represented at the design and development time, its better to go with the PaletteView, PShelf kind.

Posted in eclipse, software | Tagged , | Leave a comment

Minimum set of plug-ins for Eclipse RCP

There has been a lot of confusion about the RCP and the number of plug-ins. Does org.eclipse.core.resources or org.eclipse.ui.ide a part of the RCP plug-ins.

As i have seen and built the RCP applications…there are only TWO plug-ins needed for a RCP application.

  • org.eclipse.ui
  • org.eclipse.core.runtime

But on the other hand as given by eclipse.org, following are the set of plug-ins that are officially part of teh eclipse RCP distribution…

Runtime:

  • org.eclipse.core.runtime
  • org.eclipse.osgi
  • org.eclipse.osgi.services

SWT:

  • org.eclipse.swt
  • + platform-specific fragments, e.g. org.eclipse.swt.win32

JFace:

  • org.eclipse.jface

Workbench:

  • org.eclipse.ui
  • org.eclipse.ui.workbench

Other prerequisites for the Workbench:

  • org.eclipse.core.expressions
  • org.eclipse.help

In the end, as an application developer or an analyst, its YOU who have to decide wether to include the other stuff or not. In my experience of tool development, initially we started it as RCP and ended in full blown Eclipse application (with resourcemanagement, undate site, search, help, etc…).

Also look into… http://dev.eclipse.org/viewcvs/index.cgi/platform-ui-home/rcp/faq.html?rev=1.7

Posted in eclipse, plugins | Tagged , , | Leave a comment

What does Eclipse RCP Provide ?

For all those who think of the Eclipse as Java IDE, please ….come out of this notion. If you strip all the plug-ins that makes Java IDE, then we are left with the core components like… views, perspectives, menus, toolbars, etc… all these core components put together is RCP.

In short its the minimal set of plug-ins, required to make Rich UI.

Eclipse RCP offers the application developer:

  • A consistent and native look and feel for applications and features
  • Common application services such as window management, update management, help, and selection management
  • A native look and feel, leveraging real platform widgets on Windows, Mac OS X, Linux, Solaris, HP-UX, AIX, and embedded devices
  • A standardized component model
  • Pervasive extensibility
  • Integrated update mechanism
  • First-class development tools (the Eclipse Software Development Kit (SDK) is a world-class software development environment)
Posted in eclipse, software | Tagged , , , | Leave a comment