• Sign up
  • ‎What is Shvoong?‎
  • Sign In
    Sign In
    Remember my username Forgot your password?

Summaries and Short Reviews

.

Shvoong Home>Internet & Technology>The software Engineering Challenges Summary

.

The software Engineering Challenges

Website Review by: manoveg    


The Software Engineering Challenges
Introduction
Software Engineering is defined as the systematic approach to
the development, operation , maintenance and retirement of software.
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:-
Industrial strength
Expensive
Late and unreliable
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.
Published: September 11, 2006
Please Rate this Review : 1 2 3 4 5

Bookmark & share this post

.