With over three billion euros a year invested in software R&D, Siemens is not only exploring the evolution of this crucial field—it’s driving it. Experts explain why software is becoming pervasive, networked, self-optimizing and responsive to our needs.
Although software consists of bare lines of code, entire factories can be controlled by mathematical formulae (left), an intelligently designed software architecture, and powerful computers. Background: an automated transport system used in the automotive industry
Deep down, there’s a program behind everything. Somewhere in your brain there is a program that tells you how to lift your eyelids. And buried in every cell of every plant and creature on earth is a program that tells it how to manufacture the proteins and enzymes that keep it alive and allow it to reproduce. The brilliant patterns on a butterfly’s wings are the outward expression of a program—as are the dots on the page you’re reading. In one universe, a few lines of code express the texture of a fruit fly’s abdomen, in another they say "welcome" when a cell phone is switched on.
Even decades after the introduction of computers, laymen are still marveling that the physical world can be altered by merely writing or editing code—the underlying patterns of ones and zeros that are combined to produce programs. And when married to an operating system—a kind of traffic cop that intermediates between user commands and the distribution of physical resources, such as a device’s memory and power—programs can perform a virtually limitless variety of different functions.
"In fact, to an ever-increasing extent, the functionality of our products is being defined by the software we develop," says Reinhold Achatz, who heads the Software & Engineering division at Siemens Corporate Technology, as well as the company’s Software Initiative, which is part of its Global Competitiveness Program. Indeed, with some 30,000 people involved in this crucial area—about as many as Microsoft—and over 3 bill. € per year invested in software research and development, Siemens’ businesses are driven by software.
Embedded Software. What’s driving the explosive shift away from hardware and toward software as the engine of innovation? Probably the most fundamental factor is the nose-diving cost of computing power. In 1976, a Cray computer capable of 100 million floating point operations per second cost the equivalent of about 13 mill. €. Today, you can find the same computing power under the hood of an average car, and the price tag will be a modest 13 €. In 1994, 1 Mbit (one million bits) of memory cost the equivalent of about 3.26 US-$. By 2003 it had dropped to approximately two cents.
Sightseeing with a cell phone. Information about a city’s sights can be read from geographically postmarked messages
This trend means that devices ranging from cell phones to automotive infotainment systems and set-top boxes can have enough computing capacity to accommodate an operating system and a spectrum of application software (see Pervasive Computing). Indeed, these so-called "embedded" systems now account for a major part of the $185 billion world software market.
"Some embedded systems use controllers that can be as advanced as a PC. That makes it possible to process more and more signals and manage growing levels of complexity, which in turn means new services ranging from networking to diagnostics for users," says Dr. Lothar Borrmann, head of the Software Architecture department at Siemens Corporate Technology (CT).
"Software is entering the smallest items, even parts of motors," adds Dr. Ulrich Löwen, head of CT’s Systems Engineering department, "and that makes the overview of a system extremely complex—but also more exact." Nowhere is this trend more evident than in the automotive industry, where software delivers enhanced comfort, convenience and security without adding weight. "Premium cars today have up to 70 electronic control units that use software to govern everything from motor management to braking," says Hans-Georg Frischkorn, head of system architecture and integration at BMW. In the near future (see Standardization) these embedded systems will be increasingly networked. "For instance," says Borrmann, "The navigation system will know that a hill is coming up around the next bend and will prepare the engine and brakes accordingly."
As more and more embedded software systems take over increasingly safety-critical functions, the need for software quality and associated testing is growing. In the power distribution area, for example, CT's Software Development Techniques department has developed software that can simulate whether the time it takes to detect, analyze and transfer information on a dangerous short circuit to the next highest node in a network of protection devices is sufficient to stem the problem. This avoids a potential cascade of events leading to power outages, explains department head Klaus Beetz.
Software embedded in circuit breakers for power-distribution systems and countless other safety-critical areas is not only increasingly being designed to share information on a networked basis, thus reducing real-time risks. It is also playing an increasingly valuable role in terms of archiving data, diagnosing errors and helping to improve system efficiency. "That’s important," says Beetz, "because more and more things are happening simultaneously." He points out, for instance, that the latest medical magnetic resonance systems have as many as 60 separate programs in operation simultaneously.
From Ants to Robots. With a veritable explosion in the number of systems interacting with one another on a real-time basis—or very close to it—optimization of the routes taken by signals and moving objects has become a booming area of software research. "The age-old question of ‘What's the shortest route between a number of locations in a transport network?’ now has enormous economic relevance," explains Dr. Johannes Nierwetberg, who heads CT's Software Optimization department. A physicist, Nierwetberg points out that the answer could be "digital pheromones"—a concept based on the trace chemicals left by ants to find the shortest paths to a food supply. Interestingly, the concept can apply to industrial pick-and-place machines. Here, tiny software programs have been developed that mimic the pheromone-based decision-making of ants and can work together to collectively optimize the path of the 12-nozzle revolver head on a machine to the components to be picked and placed on printed circuit boards.
"The question is: Which components should be placed in which sequence to maximize throughput, and when?," says Nierwetberg. "A few percentage points of improvement can make a significant productivity difference, because under optimal circumstances the machine can place as many as 60,000 components per hour." The technology could offer solutions for applications as varied as robot movements in a warehouse to choosing the best place to order a pizza.
Object-Oriented Programming (OOP): Program and data form a single unit (an object) that communicates with the outside world via interfaces. The interfaces define the behavior of the objects toward one another. The events within the object remain private. Objects are defined in a general way, so that they can be used in varying contexts. A car is a good analogy—the same parts can be used in different models, all of which are functional automobiles.
Aspect-Oriented Programming (AOP): Provides the means by which specific sections of programs (aspect code) can be reused many times. For example, security functions for account inquiries are also active during online funds transfers.
Model-Driven Development (MDD) Based on graphical modeling languages that represent real tasks and "map" the processes in the system that’s to be developed. Development tools then create outline code that is tailored to the specific application by programming.
Programming Languages: There are languages close to machine level (Assembler), higher-level languages (ADA, Cobol, Fortran, Pascal, PL/1, C) and object-oriented languages such as C++, Java, Delphi or Smalltalk. Application-specific, script, modeling and page description languages are also important. Manufacturers offer their own collections of tools and methods (frameworks).
Toward Software That Writes Itself. Considering the immense and steadily growing demand for software (see Facts and Forecasts), it’s not surprising that researchers are exploring methodologies that will accelerate software development itself.
In addition to a variety of highly promising standardization (see Standardization) and process improvement scenarios (see Quality), one of the quickest and best ways to accelerate software development is modularization. Once they have been optimized and outfitted with a standardized interface, modules can be snapped together to form programs almost as easily as squeezing Lego blocks together—and with just as little room for error. Working along these lines, researchers are now using aspect-oriented programming, a promising new concept that makes it possible for developers to leave so-called "join points" in their software. These points allow future modules to be plugged into a program.
Faster and more accurate assembly is one thing. But what about automating the process of writing software itself? According to software architect Borrmann, modularization could be the first step in that direction. Research that’s currently being conducted in cooperation with Vanderbilt University in Nashville, Tennessee, for instance, indicates that "in principle, a model interpreter—basically a software tool—can identify the modules that are needed for a program, and locate and interconnect them to build a functional system," says Borrmann. "Naturally, if we could get this to work, it would mean a significant reduction in the amount of time needed to produce software systems," he explains.
With this in mind, researchers in Borrmann’s department in Munich, at Vanderbilt University and at Siemens’ giant PSE software subsidiary in Vienna, Austria, are working on so-called "model-driven" software (see Programming). The idea here is to sharply reduce the time needed for software development by simply drawing a formal model of a program. A special program then translates the model into code. "We are clearly moving in the direction of faster, more efficient development, and that means model-driven development," says Siegfried Zopf, an expert in software development methodology and quality management at PSE.
Meanwhile, in cooperation with Tecnomatix, an Israel-based company that specializes in simulations of industrial processes, Siemens researchers have developed a technology that generates code directly from automotive part descriptions and production simulations. "Admittedly, this is a narrow environment. But it is my expectation that this solution will widen to embrace more industry segments," reports Software & Engineering head Achatz.
Taken together, the trends that are shaping the development and application of the most invisible technology on earth are likely to have the profoundest implications for the way we live. "The software that will drive our world in coming years will be pervasive, networked, self-optimizing and responsive to our needs," says Achatz. As in the natural universe, it will become a truism that, deep down, there will be a program behind everything.
Arthur F. Pease
Researchers at Siemens Corporate Technology in Munich have developed a unique software platform and prototype cell phone that let users post messages on buildings, doors and—if they’re working on road crews—even on potholes. Unlike an SMS, these messages cause the target person’s phone to ring only when and where it makes sense to do so. Known as "Digital Graffiti," the technology will make it possible for maintenance personnel to digitally mark the locations of potholes on runways, for instance, by simply positioning a phone above them and clicking. Using a built-in gyroscope, GPS transmitter and magnetic sensor, such a phone can send a geographically postmarked message to a server—with a spatial accuracy of up to 30 cm. Later, when the person to be contacted, in this case a repairman, enters a radius that can be a mile or more in diameter from the pothole, the server transmits the message to his phone. When the phone’s camera is panned across the tarmac, arrows will appear on the images in the phone’s display, showing exactly where the potholes can be found. According to project development director Dieter Kolb, the technology could also be used for posting and reading personalized messages at "Info Points" in airports, or as a navigational and information guide for tourists or museum visitors. "Eventually, users will be able to simply ask their cell phone where the Renoir paintings are, and the phone will display a path to them. By pointing the phone at an individual painting, the user will be able to access a fountain of information about it," says Kolb.