Computersight > Programming

The software Engineering challenges

Software Engineering is defined as the systematic approach to the development, operation , maintenance and retirement of software.

Introduction

It is that part of computer science that basically revolves around programming concepts.

As the name suggests it is the task of Engineering the software to the client’s needs.

The term client is a very general term meaning the people whose needs are to be satisfied by the software.

Though software engineering revolves around programming concepts but it does not deals with programs that people build to illustrate something or for hobby instead it deals with those programs which we consider as software dealing with larger systems or business depends on software and where problems in the software can lead to significant direct or indirect loss.

Problem Domain

The problems that software engineering faces are:-

  1. Industrial strength
  2. Expensive
  3. Late and unreliable
  4. Maintenance and Rework

Industrial strength software

An industrial strength software is very much different from a student system.

In a student system bugs are not given that much significance. They are removed as and when they are found. It is built usually for the purpose of demonstration and is used by the developer itself.

An Industrial strength software system, on the other hand , is built to solve problem of a client and is used by the client’s organization for operating some part of business.

The correct functioning of Industrial strength software is very important.

Any malfunctioning in such a system may result in loss of revenue or in the worst case can effect lives of people.

Consequently, the software system needs to be of high quality with respect to properties like dependability, reliability, user friendliness etc.

The property of high quality of a software can only be achieved if it has undergone thorough testing. Now the need for rigorous testing increases the overall cost of the software. Testing is an integral part of industrial strength software.

Bugs have to be detected and removed from an industrial strength software in every possible way. In order to do this the development should be broken into phases with each phase evaluated and reviewed individually.

Besides quality requirements , there are requirements of backup and recovery, fault tolerance, following of standards, portability etc. This results in making the software more complex and large.

According to IEEE software is a collection of computer programs, procedures, rules and associated documentation and data.

Software is Expensive

As we know that a software system is a collection of programs, procedures, rules and associated documentation & data all this makes very labor-intensive.

If we take eg. of any popular software we can see it is always accompanied with necessary documentation. There is online technical help provided. It is tested before deployed. All this increases the cost of software considerably.

According to current state of practice in the Industry (LOC) lines of code or thousands of lines of code(KLOC) delivered is by far the most commonly used measure of software size in industry. Productivity is measured in terms of LOC or KLOC per person.month.

The productivity in the software industry, for writing fresh code generally ranges from 300 to 1000 LOC per person month.

Software companies charge their client around $100000 per person year or more than $8000 per person month which comes to be $150 per hour.

Such software can easily be hosted on a workstation or a small server. Thus hardware cost is very low in comparison to software cost.

This example clearly shows that not only is software very expensive, it indeed forms the major component of the total automated system.

Late and unreliable

There are softwares in which budget and schedule are out of control. There are consultancy companies set up to help clients solve problems related to such softwares.

Softwares are also considered unreliable. Failure in software has caused damages in the past.

Maintenance and Rework

After the software is deployed it enters the maintenance phase.

It might be possible that software has undergone rigorous testing through various phases but still there is always probability that some residual error might be remaining in the system and they are removed as they are discovered during maintenance.

The major problem associated with a software is changing requirement. If the requirement has changed than the current software is not of any use. Now more work has to be done according to the new requirements.

It is estimated that rework costs are 30 to 40% of the development cost.

0
Liked It
I Like It!
Related Articles
Tips for Buying Anti Virus Software   |  Object Oriented Programming Strategy (OOPS)
More Articles by manoveg
Inheritance in Java
Latest Articles in Programming
Microsoft Sql Server 2005: An Easy Task  |  SQL and Databases
Comments (6)
#1 by manoveg, Sep 12, 2006
hi friends pls leave a comment
#2 by Gyan shanker, Sep 13, 2006
good work
#3 by jitendra, Dec 20, 2006
what a fabulous task u have done. Great work yaar
#4 by himanshu, Dec 20, 2006
excellent work yaar. keep it up
#5 by Addy, Mar 20, 2007
Maintainance and rework is missing.
Also the VLSI/HardWare engineers are paid more than software engineers.So the cost of HardWare Design is more and not cost of software as you said.
#6 by Raj Kishor Pandey, Apr 2, 2007
Nice task .
Post Your Comment:
Name:  
Copy the code into this box:  
Post comment with your Triond credentials?
Inside Computersight

Communication & Networks

 /

Computers

 /

Hardware

 /

Operating Systems

 /

Programming

 /

Software


Popular Tags
Popular Writers
Powered by
Computersight
About Us
Terms of Use
Privacy Policy
Services
Submit an Article
Advertise with Us
Contact

© 2007 Copyright Stanza Ltd. All Rights Reserved.