The projects

Programming machines became one of the new engineering tasks of the last century. In the beginning of the computer age programming was restricted to work on huge machines with one central processing unit.

In the era of Personal Computer the software engineering has become a diversified activity today offering some hundred programming languages and language derivates.

Software Engineering Processes comprises of several methods to analyse, define, implement and test the software. These methods have been developed within the last 40 years. Many of them have evolved during the decades others have been refined.

Essentially engineering methods apply to the analysis, design, construction and testing of software but still many people believe that programming itself is the primary task of implementing software on a computer. Producing a suitable, good software is not only a matter of good programming skills but also of software architecture, software design and software test.

With the growing complexity of the software not only a single engineer is able to construct and manage the software any more. Meanwhile companies develop and test software on different locations in different countries and continents.

Since many devices in a car and/or many tasks within a software system are supposed to work together but principles and rules for the communication between those systems and/or tasks must be invented and coordinated.

Thus, embedded software development has grown from an effort of a few programmer months to many programmer years. On top of this, the timeframe to develop the software has shrunk, e.g. in the automotive business development cycles for new software typically have a range of 6 to 24 months.