4: Design

Abstract

This chapter begins with a cautionary tale of how software systems can accrue technical debt and eventually decay without good initial designs that are maintained as the software evolves. Then functional requirement gathering is discussed and advice is offered on how best to collect and maintain these requirements. The complementary methods of use case modeling and user story creation are also described in detail. Then a description is offered of how to approach the design of an application programming interface, breaking this up into high-level architecture design and detailed object or class design. Various design principles are discussed, including the SOLID principles, the Liskov substitution principle, the open/closed ...

Get API Design for C++, 2nd Edition 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.