Approaches to software development
Approaches to software development

Start this free course now. Just create an account and sign in. Enrol and complete the course for a free statement of participation or digital badge if available.

Free course

Approaches to software development

1.5 Divide and conquer?

As computing technology has improved, we have tried to construct software systems that can deal with larger and more complex problems. In order to provide such solutions, the software systems themselves have become larger and more complex. Unfortunately there is a limit to how much we can take in and understand at any one time. The Romans had a strategy called divide et impera – divide and rule. However this covered the idea that it was easier to rule over groups in conflict with each other.

How can we cope with tricky problems or situations where there is just too much information? The main technique for dealing with such messy situations is decomposition. We can decompose a problem into smaller and smaller parts or chunks until each one can be comprehended or dealt with by an individual. In terms of our earlier definition of a system, we are looking for patterns and/or components within a system and creating internal boundaries around them to identify smaller subsystems, sometimes referred to as modules. We will expose some form of hierarchy in our attempt to simplify a complex system.

The concept of decomposition can also be applied to the way you develop a software system. As you will see in Section 2, you can identify a number of different activities or tasks that an individual or group of individuals might perform in a software development project.

An individual can successfully build small software systems because it is possible for that person to understand all that is needed about the problem and its solution. There is a long history of individuals attempting to develop more complex systems – so-called heroic programming – where success has been less certain. Sometimes the circumstances resulting from poor planning lead to a situation where it is the only way out to achieve a piece of workable software. However there are systems that are so large and complex, such as those that monitor and control air traffic, that they cannot be built by a single individual. The development of such a software system requires a team of people whose work must be well coordinated and managed. There must be a well-defined process if they are to produce an appropriate solution – a software system that is useful, usable, reliable, flexible, available and affordable. In practice, the process of software development is partitioned to enable individuals to specialise in different development activities such as analysis, design and implementation.


Take your learning further371

Making the decision to study can be a big step, which is why you'll want a trusted University. The Open University has 50 years’ experience delivering flexible learning and 170,000 students are studying with us right now. Take a look at all Open University courses372.

If you are new to university level study, we offer two introductory routes to our qualifications. Find out Where to take your learning next?373 You could either choose to start with an Access courses374or an open box module, which allows you to count your previous learning towards an Open University qualification.

Not ready for University study then browse over 1000 free courses on OpenLearn375 and sign up to our newsletter376 to hear about new free courses as they are released.

Every year, thousands of students decide to study with The Open University. With over 120 qualifications, we’ve got the right course for you.

Request an Open University prospectus371