Introduction to Software Design with Java

ยท Springer
เช‡-เชชเซเชธเซเชคเช•
297
เชชเซ‡เชœ
เชฐเซ‡เชŸเชฟเช‚เช— เช…เชจเซ‡ เชฐเชฟเชตเซเชฏเซ‚ เชšเช•เชพเชธเซ‡เชฒเชพ เชจเชฅเซ€ย เชตเชงเซ เชœเชพเชฃเซ‹

เช† เช‡-เชชเซเชธเซเชคเช• เชตเชฟเชถเซ‡

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.

เชฒเซ‡เช–เช• เชตเชฟเชถเซ‡

Martin Robillard is a Professor of Computer Science at McGill University. He has been teaching software design with Java since 2005, and has over two decades of programming experience in Java. His current research focuses on problems related to software evolution, architecture and design, and software reuse. Martin served as the Program Co-Chair for the 20th ACM SIGSOFT International Symposium on the Foundations of Software Engineering (FSE 2012) and the 39th ACM/IEEE International Conference on Software Engineering (ICSE 2017).

เช† เช‡-เชชเซเชธเซเชคเช•เชจเซ‡ เชฐเซ‡เชŸเชฟเช‚เช— เช†เชชเซ‹

เชคเชฎเซ‡ เชถเซเช‚ เชตเชฟเชšเชพเชฐเซ‹ เช›เซ‹ เช…เชฎเชจเซ‡ เชœเชฃเชพเชตเซ‹.

เชฎเชพเชนเชฟเชคเซ€ เชตเชพเช‚เชšเชตเซ€

เชธเซเชฎเชพเชฐเซเชŸเชซเซ‹เชจ เช…เชจเซ‡ เชŸเซ…เชฌเซเชฒเซ‡เชŸ
Android เช…เชจเซ‡ iPad/iPhone เชฎเชพเชŸเซ‡ Google Play Books เชเชช เช‡เชจเซเชธเซเชŸเซ‰เชฒ เช•เชฐเซ‹. เชคเซ‡ เชคเชฎเชพเชฐเชพ เชเช•เชพเช‰เชจเซเชŸ เชธเชพเชฅเซ‡ เช‘เชŸเซ‹เชฎเซ…เชŸเชฟเช• เชฐเซ€เชคเซ‡ เชธเชฟเช‚เช• เชฅเชพเชฏ เช›เซ‡ เช…เชจเซ‡ เชคเชฎเชจเซ‡ เชœเซเชฏเชพเช‚ เชชเชฃ เชนเซ‹ เชคเซเชฏเชพเช‚ เชคเชฎเชจเซ‡ เช‘เชจเชฒเชพเช‡เชจ เช…เชฅเชตเชพ เช‘เชซเชฒเชพเช‡เชจ เชตเชพเช‚เชšเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡.
เชฒเซ…เชชเชŸเซ‰เชช เช…เชจเซ‡ เช•เชฎเซเชชเซเชฏเซเชŸเชฐ
Google Play เชชเชฐ เช–เชฐเซ€เชฆเซ‡เชฒ เช‘เชกเชฟเช“เชฌเซเช•เชจเซ‡ เชคเชฎเซ‡ เชคเชฎเชพเชฐเชพ เช•เชฎเซเชชเซเชฏเซเชŸเชฐเชจเชพ เชตเซ‡เชฌ เชฌเซเชฐเชพเช‰เชเชฐเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชธเชพเช‚เชญเชณเซ€ เชถเช•เซ‹ เช›เซ‹.
eReaders เช…เชจเซ‡ เช…เชจเซเชฏ เชกเชฟเชตเชพเช‡เชธ
Kobo เช‡-เชฐเซ€เชกเชฐ เชœเซ‡เชตเชพ เช‡-เช‡เช‚เช• เชกเชฟเชตเชพเช‡เชธ เชชเชฐ เชตเชพเช‚เชšเชตเชพ เชฎเชพเชŸเซ‡, เชคเชฎเชพเชฐเซ‡ เชซเชพเช‡เชฒเชจเซ‡ เชกเชพเช‰เชจเชฒเซ‹เชก เช•เชฐเซ€เชจเซ‡ เชคเชฎเชพเชฐเชพ เชกเชฟเชตเชพเช‡เชธ เชชเชฐ เชŸเซเชฐเชพเชจเซเชธเชซเชฐ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเชถเซ‡. เชธเชชเซ‹เชฐเซเชŸเซ‡เชก เช‡-เชฐเซ€เชกเชฐ เชชเชฐ เชซเชพเช‡เชฒเซ‹ เชŸเซเชฐเชพเชจเซเชธเซเชซเชฐ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชธเชนเชพเชฏเชคเชพ เช•เซ‡เชจเซเชฆเซเชฐเชจเซ€ เชตเชฟเช—เชคเชตเชพเชฐ เชธเซ‚เชšเชจเชพเช“ เช…เชจเซเชธเชฐเซ‹.