Skip to Content
Beginning Software Engineering
book

Beginning Software Engineering

by Rod Stephens
March 2015
Beginner
480 pages
14h 12m
English
Wrox
Content preview from Beginning Software Engineering

CHAPTER 6 Low-Level Design

We try to solve the problem by rushing through the design process so that enough time is left at the end of the project to uncover the errors that were made because we rushed through the design process.

—GLENFORD MYERS

WHAT YOU WILL LEARN IN THIS CHAPTER:            

  • How to use generalization and refinement to build inheritance hierarchies
  • Warning signs of bad inheritance hierarchies
  • How to use composition to build new classes without inheritance
  • How normalization protects databases from anomalies
  • Rules for first, second, and third normal forms

High-level design paints an application’s structure in broad strokes. It identifies the system’s general environment (hardware, operating system, network, and so on) and architecture (such as monolithic, client/server, and service-oriented). It identifies the system’s major components such as reporting modules, databases, and top-level classes. It should also sketch out how the pieces of the system will interact.

Low-level design fills in some of the gaps to provide extra detail that’s necessary before developers can start writing code. It gives more specific guidance for how the parts of the system will work and how they will work together. It refines the definitions of the database, the major classes, and the internal and external interfaces.

High-level design focuses on what. Low-level design begins to focus on how.

As an analogy, if you were building a highway system, high-level design would determine ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Beginning Software Engineering, 2nd Edition

Beginning Software Engineering, 2nd Edition

Rod Stephens
Fundamentals of Software Engineering

Fundamentals of Software Engineering

Nathaniel Schutta, Dan Vega
Essentials of Software Engineering, 3rd Edition

Essentials of Software Engineering, 3rd Edition

Frank Tsui, Orlando Karam, Barbara Bernal

Publisher Resources

ISBN: 9781118969175Purchase Link