What are the key challenges facing in Software Engineering? Explain.
KEY CHALLENGES FACING SOFTWARE ENGINEERING
1. The legacy challenge
The majority of software systems that are in use today were developed many years yet they perform critical business functions. The legacy challenge is the challenge of maintaining and updating this software in such a way that excessive costs are avoided and essential business services continue to be delivered.
2. Heterogeneity challenge
Increasingly, systems are required to operate as distributed systems across networks that include different types of computers and with different kinds of support systems. The heterogeneity challenge is the challenge of developing techniques to build dependable software which is flexible enough to cope with this heterogeneity.
3. The delivery challenge
Many traditional software engineering techniques are time-consuming. The time they take is required to achieve software quality. However, businesses today must be responsive and change very rapidly. Their supporting software must change equally rapidly. The delivery challenge is the challenge of shortening delivery times for large and complex systems without compromising system quality.
4. Trust challenge
As software is intertwined will all aspects of our lives, it is essential that we can trust that software, so, the trust challenge is to develop techniques that demonstrate that software can be trusted by its users.
5. Risk challenge
In safety-critical areas such as space, aviation, nuclear power plants, etc. the cost of software failure can be massive because lives are at risk. Dealing with the increased complexity of software needed for new applications.