CHAPTER 5 High-Level Design

Design is not just what it looks like and feels like. Design is how it works.

—STEVE JOBS

Design is easy. All you do is stare at the screen until drops of blood form on your forehead.

—MARTY NEUMEIER

WHAT YOU WILL LEARN IN THIS CHAPTER:            

  • The purpose of high-level design
  • How a good design lets you get more work done in less time
  • Specific things you should include in a high-level design
  • Common software architectures you can use to structure an application
  • How UML lets you specify system objects and interactions

High-level design provides a view of the system at an abstract level. It shows how the major pieces of the finished application will fit together and interact with each other.

A high-level design should also specify assumptions about the environment in which the finished application will run. For example, it should describe the hardware and software you will use to develop the application, and the hardware that will eventually run the program.

The high-level design does not focus on the details of how the pieces of the application will work. Those details can be worked out later during low-level design and implementation.

Before you start learning about specific items that should be part of the high-level design, you should understand the purpose of a high-level design and how it can help you build an application.

THE BIG PICTURE

You can view software development as a process that chops up the system into smaller and smaller ...

Get Beginning Software Engineering now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.