title: "Book - Software Engineering for Self-Directed Learners" This is a free and open-source SE textbook under the SE-EDU initiative. About this book About How to use this book Software engineering Software engineering {{icon_print}} Object-oriented programming Object-oriented programming {{icon_print}} Requirements Requirements {{icon_print}} Gathering requirements {{icon_print}} Specifying requirements {{icon_print}} Design Design {{icon_print}} Design fundamentals {{icon_print}} Modeling {{icon_print}} Architecture {{icon_print}} Design patterns {{icon_print}} Design approaches {{icon_print}} Implementation IDEs {{icon_print}} Code quality {{icon_print}} Refactoring {{icon_print}} Documentation {{icon_print}} Error handling {{icon_print}} Integration {{icon_print}} Reuse {{icon_print}} Quality assurance Quality assurance {{icon_print}} Testing {{icon_print}} Test case design {{icon_print}} Project management Revision control {{icon_print}} Project planning {{icon_print}} Teamwork {{icon_print}} Process models {{icon_print}} Tools UML {{icon_print}} IntelliJ IDEA {{icon_print}} Git and GitHub {{icon_print}} Principles Principles {{icon_print}} Supplementary C++ to Java {{icon_print}} Combined exercises List of definitions List of references List of learning outcomes Printable version {{icon_print}}