Tuesday, November 3, 2009

Software – Problems and Prospects

Software Engineering is all about methods, tools and techniques used for developing software.

2 types of Software
1. System software – software that acts as tools to help construct or support applications software.
2. Application software – helps perform some directly useful or enjoyable task.

Problems in software development and the goals that software development seeks to achieve:
• Meeting users’ needs
• Low cost of production
• High performance
• Portability
• Low cost of maintenance
• High reliability
• Delivery on time

Meeting user’s needs
- The first step in developing some software is to find out what the client, customer or user needs. This is called requirement analysis or requirement engineering.
The cost of software production
- Cost that spend in developing a software
• Programmer productivity

 The cost of software is determined largely by the salaries paid to the programmers and by the productivity of the programmers.
• Predicting software cost
• Hardware versus software cost
• The impact of personal computers
• Software packages
• Application development tools
• The IT revolution
• Software re-use

Meeting deadlines
- Meet the deadline of the project depend of the need of client.
Software performance
- Called efficiency
Portability
- Always been to transfer software from one type of computer to another with the minimum expenditure of effort.

Maintenance
- Term for any effort that is put into a piece of software after it has been written and put into operation.

2 types of maintenance:
1. Remedial maintenance – is time spent correcting faults in the software (fixing bugs)
2. Adaptive maintenance – is altering software either because the users needs have changed or because operating system or programming language has chanced.
Reliability
- A piece of software is said to be reliable if it works and continues to work, without crashing and without doing something undesirable.

Useful to define bugs in software:
Error – a wrong decision made during software development
Fault – a problem that may cause software to depart from its intended behavior
Failure – an event when software departs from intended behavior
Software crisis
Various perceive problems with software:
• It fails to do what users want it to do
• It is expensive
• It isn’t always fast enough
• It cannot be transferred to another machine easily
• Maintenance is expensive
• It is unreliable
• It is often late
• It is not always easy to use.

No comments: