Reviewer: Avinash Sridhar

 

Paper:   Poore, J.H A tale of three disciplines and a revolution [software engineering] , IEEE Computer, 37(1), 2004, pp. 30- 36

 

Summary of the paper: 

Software engineering arose out of the so called software crisis of the 1960s, 1970s, and 1980s, when many software projects had bad endings. Many software projects ran over budget and schedule. Some projects caused property damage. A few projects caused loss of life. As software becomes more pervasive, we all recognize the need for better software. The software crisis was originally defined in terms of productivity, but evolved to emphasize quality.”

The author makes a sincere effort to postmortem the problems involved in the software industry comparing contrasting with other streams which though complex have evolved to be a winners. Even now the software engineering loss amount to many billions, the author criticises the existing system which has turned its blind eyes towards the long standing problems in  the engineering stream.

The author compares with the two contemporaries , though one has evolved very recently, with the software engineering. The Circuit Engineering and Genetic Engineering.

 

The following picture explains the evolution of Circuit Engineering:

 

 

The Evolution of  Genetic Engineering had lot of challenges like deciphering human genome  which had 3 billion base pairs. However there was again lot of mathematics driven approach. The parallelism was exploited to great extent and with huge computing powers , distributed and concentrated, the genome was deciphered much earlier than planned. This could happen only because of the great underlying co-ordination and common vocabulary that was also evolving in the scientific community and researchers and was imbibed into the academics.

 

Software Engineering – the third discipline which needs a revolution!:

People are expected to not expect any reliability and quality in software while other engineering products are delivering it. The academics is to be blamed for not persisting on efficient methods of writing a piece of code. The government for turning a blind eye and not to press on any reforms though the economic world undergoes heavy losses. The Industry to be blamed for non-conformist actions, they follow their own standards and  naming conventions( vocabulary) which is entirely different from the  curriculum thought at the schools. Compounded with all these problems the Software engineering in deep trouble not able to meet the ever increasing demands and already evolved hotchpotch standards.

 

Software engineering has these 3 following primary areas where the reforms are badly needed

  1. Certification: Though a software in its simplest form is a sequence of mathematical statements , mathematics is never a defining principle of a software. The basic of certification should begin to enforce this mathematical software.

The programming languages compliers should ruthlessly impose the strict norms of error corrections that could be mathematical oriented. The norms should be similar for all the complier for a particular language. So the software written will not be specific to a particular complier.

 The government should impose strict norms for the critical software like Medical and other public safety related software. The experts in the fields of mathematics , algorithms , statistics and other such people should be the arbitrators of such certifications.

 

  1. Licensing: A similar licensing scheme for all the software professions  making them dependable, capable and working according to an approved process for application under question. This is required has the field has been involved in the devices and processes that impinge on social and public well-being.

 

  1. Curricular/ Academics: The basic onus on the software education is to at least make the students understand the products and systems that they will be developing. One way to achieve is to have apprenticeship under masterful software engineers. Also a license that will enable the engineer to do what the others can’t do. Mathematics should be embodied into all the disciplines of software engineering. The standards and tools used should be no different or lesser than the actual standards and tools used in the industry.

Strengths:

Weakness:

3 critical questions:

1. Who is going to take the initiative the industry, the government or the academics?

2.  How to incorporate rules and regulations into a Software Engineering, which has evolved and branched so much?

3. Will the companies, which have high revenue and success rate, confirm to the guidelines and fall in line? Or in the other way around will they share their success stories?

References:

http://www.fact-index.com/s/so/software_engineering.html