Engineering and scientific applications in many ways were the first software applications ever created. The language Fortran, which incidentally stands for “Formula Translation,” came out 61 years ago in April 1957. The business language COBOL came out two years later in 1959. The term “software” didn’t exist before 1958. Back in these days there was no such thing as a “user interface.” The term “user friendly” didn’t appear until 1972! Obviously we had an interface but it was “horse and buggy” relying on IBM punch cards and printouts. This was the only way to interact with computers. My own experience began in 1978 when I took a college class in Fortran 66, a version of Fortran that came out in 1966. Fortran IV came out that same year and it added a few language constructs, like IF-THEN-ELSE.
Software is software in many respects, regardless of the type of application. However, engineering software does have unique aspects that other software does not have. All applications today have a user interface. And all applications usually take some data and store it in some fashion. But when you get right down to it, most software simply takes data and stores it for later retrieval. As an example, let’s take banking software. You can log into Bank of America or Wells Fargo or your local credit union’s website and see a time-sorted list of your credits and debits. That’s essentially an application that spits back to you that which was input earlier. That’s kind of like a mirror. But little or no work is done! Even sophisticated applications like Facebook are merely keeping a record of communications among many people. Now there is real work being done behind the scenes in determining which ads appear for each user and I’m sure these algorithms are doing some complex tasks.
On the other hand, engineering applications actually do real work! You can design a heat exchanger and use engineering algorithms to predict how that heat exchanger will perform once built! Or you can use wind loading software to find out if your structure, as designed, will hold up to Florida hurricanes. That’s vital work and that’s what engineering applications have done for decades. Many applications utilize numerical methods which permit calculations that would be difficult if not impossible to perform by hand. So engineering software utilizes algorithms that perform mathematical operations.
Science and engineering model the physical universe. As such, these applications use the language of units, i.e., a quantity of matter, energy, space (length, area, volume) and time. Unfortunately, these pesky units cause more problems than you can shake a stick at. Such errors can be incredibly costly. For example, NASA lost the 125 million dollar Mars climate orbiter spacecraft after its 286-day journey to Mars. Miscalculations from using English units rather than metric, sent the craft off-course by 60 miles. Lockheed Martin sent thruster data in English units (pounds) to NASA while NASA’s navigation team was expecting metric units (Newtons).
An axle broke on a roller-coaster in 2004 at Tokyo’s Disneyland Space Mountain. This caused the train, mid-ride, to derail. The cause was a part being the wrong size due to a conversion of the master plan (in English units) to Metric units. New axels were ordered in 2002 using the pre-1995 English specifications rather than the Metric ones.
Finally, Air Canada Flight 143 ran out of fuel en route to Edmonton from Montreal. The fuel loading was miscalculated because of a misunderstanding of the Metric system conversion factors. Canada switched to the Metric system in 1970 and the Air Canada flight was the first to use metric units. Fortunately, the pilot was able to land the plan safely.
Many engineering applications require entering data that mirrors physical objects. For example, if we are specifying an object that is a circular segment, we should provide a user interface that makes it clear what data we are entering. This is best done by showing an image that changes as the value needing to be entered changes. We can do this with colors (using red as a “hot” color). Here it is clear what value should be entered.
Senior datum #1 – Engineering applications do not simply present previously entered data but perform work with inputted data.
Senior datum #2 – Unit conversions are a vital part of engineering applications. Care must be taken to ensure conversions are done properly and output data units are clearly labelled.
Senior datum #3 – Engineering applications often require entering exact physical measurements that mirror real objects. It is helpful to augment the entered data with pictures which show the user exactly what he is entering.