1.7 Summary of Section 1
This section has briefly examined the nature of software, and identified the desirable characteristics of a software system. You have seen:
- that a good software system is one that meets its users’ needs
- examples that illustrated the connections between the usefulness, usability, reliability, flexibility, availability and affordability of a software system
- that a software system can soon be out of date, as users’ needs change with time, and that needs can often be missed during requirements capture
- that modularisation is the main method of dealing with the size and complexity of a software system
- the problems that arise with legacy systems
- the significance of maintenance
- the importance of software architecture.
Software systems are becoming all-pervasive in our society, and the demand for new systems is growing rapidly. There are significant risks associated with software systems when they are critical to a business. This all points to the need for software development processes that will deliver software systems that are easy to maintain and reliable, while at the same time ensuring that the systems serve some useful purpose for their users. Good development processes will produce well-engineered components based on reusable architectures.