000899092 000__ 03912cam\a2200457Ii\4500 000899092 001__ 899092 000899092 005__ 20230306150200.0 000899092 006__ m\\\\\o\\d\\\\\\\\ 000899092 007__ cr\cn\nnnunnun 000899092 008__ 190725s2019\\\\sz\\\\\\ob\\\\001\0\eng\d 000899092 019__ $$a1111771901$$a1113975829 000899092 020__ $$a9783030240943$$q(electronic book) 000899092 020__ $$a3030240940$$q(electronic book) 000899092 020__ $$z3030240932 000899092 020__ $$z9783030240936 000899092 0248_ $$a10.1007/978-3-030-24 000899092 035__ $$aSP(OCoLC)on1110227580 000899092 035__ $$aSP(OCoLC)1110227580$$z(OCoLC)1111771901$$z(OCoLC)1113975829 000899092 040__ $$aLQU$$beng$$erda$$cLQU$$dNOC$$dGW5XE$$dYDXIT$$dYDX$$dDKU 000899092 049__ $$aISEA 000899092 050_4 $$aQA76.73.J38$$bR63 2019 000899092 08204 $$a005.1/17$$223 000899092 1001_ $$aRobillard, Martin P.,$$eauthor. 000899092 24510 $$aIntroduction to software design with Java /$$cMartin P. Robillard. 000899092 264_1 $$aCham, Switzerland :$$bSpringer,$$c[2019] 000899092 300__ $$a1 online resource 000899092 336__ $$atext$$btxt$$2rdacontent 000899092 337__ $$acomputer$$bc$$2rdamedia 000899092 338__ $$aonline resource$$bcr$$2rdacarrier 000899092 504__ $$aIncludes bibliographical references and index. 000899092 5050_ $$aIntroduction -- Encapsulation -- Types and Interfaces -- Object State -- Unit Testing -- Composition -- Inheritance -- Inversion of Control -- Functional Design. 000899092 506__ $$aAccess limited to authorized users. 000899092 520__ $$aThis 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 books 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 gr asp of the language, such as would be taught in an introductory programming course. 000899092 588__ $$aDescription based on online resource; title from digital title page (viewed on August 23, 2019). 000899092 650_0 $$aJava (Computer program language) 000899092 650_0 $$aObject-oriented programming (Computer science) 000899092 77608 $$iPrint version: $$z3030240932$$z9783030240936$$w(OCoLC)1102645640 000899092 852__ $$bebk 000899092 85640 $$3SpringerLink$$uhttps://univsouthin.idm.oclc.org/login?url=http://link.springer.com/10.1007/978-3-030-24094-3$$zOnline Access$$91397441.1 000899092 909CO $$ooai:library.usi.edu:899092$$pGLOBAL_SET 000899092 980__ $$aEBOOK 000899092 980__ $$aBIB 000899092 982__ $$aEbook 000899092 983__ $$aOnline 000899092 994__ $$a92$$bISE