+2 votes
in Software Engineering by
software crisis

Programmer productivity

Software Quality

1 Answer

+1 vote
by (19.2k points)
 
Best answer

Software Crisis

I'll start by defining some key terms here.

Software Quality

When I think of software quality, my mind is usually drawn to how the piece of code (instructions) are able to meet the functional and non-functional requirements of the end-product.

Programmer Productivity

This is the ratio between software development output (Quantity of software produced) and input (total cost of development). A more productive programmer is expected to be able to build and evolve software systems.

Software crisis

This refers to the difficulty of writing very efficient and useful computer programs within the required time as a result of the use of software development techniques that do not meet current demands.

In my opinion, I do not think that software crisis can ever be completely resolved. This is because the demand for more complex software has been on the increase due to advancement in technology and it is evident that developers simply cannot keep up with the ever increasing complexities.

Recall that in the 1960s, computer engineers experienced a software crisis when they were unable to build the software they were being asked for. The primary reason for the software crisis at that time could be linked to the low programmer productivity at that time, and the increased demand for quality software. The programmers at the time simply had very limited capabilities, while the demand for quality software at the time was rising. This issue was addressed by the NATO Software Engineering Conferences in 1968 and 1969 (Ref: http://homepages.cs.ncl.ac.uk/brian.randell/NATO/NATOReports/), but there are indications today that reveal that software crisis has never and might never be completely resolved.

You will find that most of the software problems identified at the conference in 1968 and 1969 such as software being unreliable, hard to maintain, delivered over budget, late delivery etc. are problems still existing today in the software development scene. 

The singular fact that software problems that have existed since 1960s are still around with little improvement over the years convinces me that we are still in a software crisis today.

Software Crisis is often linked to the following;

  1. Software projects running over-budget
  2. Software developed being inefficient or of very low quality
  3. Software not meeting functional and non-functional requirements
  4. Software being difficult to maintain
  5. Software project running over-time
  6. Software that was never delivered.

and many more..

The truth remains that large software projects will always be vulnerable to large, unanticipated problems of this nature.

Most attempts today at solving the problem of software crisis are geared towards improvements in computing power. The problem with this approach is that these improvements in computing power and introduction of new technologies quickly outpaces the ability of programmers to effectively utilize those capabilities.

How has code reuse contributed to the problem or solution?

Software reuse has contributed more to the solution than the problem. Software reuse increase programmer productivity by lowering the cost associated with software development. A good process of software reuse leads to enhance the reliability, productivity, quality and the reduction of time and cost. Software reuse must be embraced by all software craftsmen, if the problem of software crisis is to be curtailed.

by (3.3k points)
Is it also possible that reuse (code reuse) contributes to the problem of software crisis?
by (19.2k points)
The key thing to understand is that code reuse - like any other software development approach poses a problem when not done efficiently. The idea behind code reuse is to utilise code that has already been tested to be of high quality for a new function or software. I would argue that code should only be reused if the following conditions are met;

1. The code can easily be extended to meet the specific requirements of the new application being developed.

2. The code has been tested and proven to be free from bugs that can affect the reliability, safety and security of the application being developed.

When these conditions are met, it is unlikely that code reuse would lead to software crisis.
by (19.2k points)
Click the link -> https://cpentalk.com/592/circumstances-which-might-recommend-against-software-reuse?show=593 to see the circumstances under which software reuse is not recommended.

Related questions

Welcome to CPEN Talk
Solution-oriented students of computer engineering on one platform to get you that

ONE SOLUTION

Each hair in Chuck Norris's beard contributes to make the world's largest DDOS.
...