1. Computing

What Is Software Engineering?

What is a Software Engineer?

By

What is the difference between a programmer and a Software Engineer? Fundamentally there is little difference as both write software. Software Engineers are programmers but it's how they do the job that differs.

Read about software

Is it all Paperwork?

Software Engineering is an approach to developing software that attempts to treat it as a formal process more like traditional engineering than the craft that many programmers believe it is. We talk of crafting an application, refining and polishing it, as if it were a wooden sculpture, not a series of logic instructions. The problem here is that you cannot engineer art. Programming falls somewhere between an art and a science.

Programming - Art or Engineering?

There has always been considerable debate about the nature of programming. If bridges were designed like software then there would be a lot of ferries operating. You can't have a second go if a bridge fails. That's the argument that the Software Engineering proponents put forward.

Am I a Designer or Engineer?

I don't quite accept this argument as it's comparing chalk and cheese. Computer programs are very complex pieces of logic. In a bridge, the main load bearing members are well defined and the design takes into account the strength and thickness of the materials used. Any reasonable sized application may have ten thousand branch points, so the number of execution paths through this application is a very large number. Testing all those paths is a difficult task.

How do I Stop my Software Killing Someone?

Manufacturers cannot build complex life-critical systems like aircraft, nuclear reactor controls, medical systems and expect the software to be thrown together. They require the whole process to be thoroughly managed, so that budgets can be estimated, staff recruited, and to minimize the risk of failure or expensive mistakes.

In safety critical areas such as aviation,space, nuclear power plants,medicine, fire detection systems, and roller coaster rides the cost of failure can be enormous as lives are at risk. A divide by zero error that brings down an aircraft is just not acceptable.

So It Never Goes Wrong?

In spite of this there have been a few high profile disasters. Ariane 5, a rocket system for delivering satellites into orbit blew up in June 1996, 40 seconds after takeoff due to an arithmetic overflow bug. The system had used specifications from an earlier rocket Ariane 4 without having been fully tested.

What Is Computer Aided Software Engineering?

The whole design process has to be formally managed long before the first line of code is written. Enormous design documents- hundreds or thousands of pages long are produced using C.A.S.E. (Computer Aided Software Engineering) tools then converted into Design Specification documents which are used to design code.

C.A.S.E suffers from the "not quite there yet" syndrome. There are no systems that can take a set of design constraints and requirements then generate code that satisfies all the requirements and constraints. Its far too complex a process. So the available C.A.S.E. systems manage parts of the lifecycle process but not all of it.

So it is Paper Work?

One distinguishing feature of Software Engineering is the paper trail that it produces. Designs have to be signed off by Managers and Technical Authorities all the way from top to bottom and the role of Quality Assurance is to check the paper trail. Many Software Engineers would admit that their job is around 70% paperwork and 30% code. It's a costly way to write software and this is why avionics in modern aircraft are so expensive.

Call Yourself an Engineer?

Note. In some parts of the world (and some U.S. States) you cannot call yourself a software engineer without a formal qualification.

If you want to become a software engineer, the first step is to learn a programming language and you are in the right place! Try one of our tutorials- heres a selection!

  1. About.com
  2. Computing
  3. C / C++ / C#
  4. Pro. Development
  5. What Is Software Engineering?

©2014 About.com. All rights reserved.