Advertisement

Introduction to Software Design with Java

  • Martin P. Robillard
Textbook

Table of contents

  1. Front Matter
    Pages i-xii
  2. Martin P. Robillard
    Pages 1-12
  3. Martin P. Robillard
    Pages 13-37
  4. Martin P. Robillard
    Pages 39-60
  5. Martin P. Robillard
    Pages 61-90
  6. Martin P. Robillard
    Pages 91-118
  7. Martin P. Robillard
    Pages 119-153
  8. Martin P. Robillard
    Pages 155-189
  9. Martin P. Robillard
    Pages 191-236
  10. Martin P. Robillard
    Pages 237-272
  11. Back Matter
    Pages 273-297

About this book

Introduction

This textbook provides an in-depth introduction to software design, with a focus on object-oriented design, and using the Java programming language. Its goal is to help readers learn software design by discovering the experience of the design process. To this end, a narrative is used that introduces each element of design know-how in context, and explores alternative solutions in that context. The narrative is supported by hundreds of code fragments and design diagrams.

The first chapter is a general introduction to software design. The subsequent chapters cover design concepts and techniques, which are presented as a continuous narrative anchored in specific design problems. The design concepts and techniques covered include effective use of types and interfaces, encapsulation, composition, inheritance, design patterns, unit testing, and many more. A major emphasis is placed on coding and experimentation as a necessary complement to reading the text. To support this aspect of the learning process, a companion website with practice problems is provided, and three sample applications that capture numerous design decisions are included. Guidance on these sample applications is provided in a section called “Code Exploration” at the end of each chapter. Although the Java language is used as a means of conveying design-related ideas, the book’s main goal is to address concepts and techniques that are applicable in a host of technologies.

This book is intended for readers who have a minimum of programming experience and want to move from writing small programs and scripts to tackling the development of larger systems. This audience naturally includes students in university-level computer science and software engineering programs. As the prerequisites to specific computing concepts are kept to a minimum, the content is also accessible to programmers without a primary training in computing. In a similar vein, understanding the code fragments requires only a minimal grasp of the language, such as would be taught in an introductory programming course.

Keywords

Java Software Engineering Software Development Software Architecture Software Testing

Authors and affiliations

  • Martin P. Robillard
    • 1
  1. 1.School of Computer ScienceMcGill UniversityMontrealCanada

Bibliographic information

  • DOI https://doi.org/10.1007/978-3-030-24094-3
  • Copyright Information Springer Nature Switzerland AG 2019
  • Publisher Name Springer, Cham
  • eBook Packages Computer Science
  • Print ISBN 978-3-030-24093-6
  • Online ISBN 978-3-030-24094-3
  • Buy this book on publisher's site
Industry Sectors
Pharma
Automotive
Chemical Manufacturing
Biotechnology
Finance, Business & Banking
Electronics
IT & Software
Telecommunications
Energy, Utilities & Environment
Aerospace
Engineering