This guide looks at the development cycle of OOP, bringing its snares and shortcomings into focus to help achieve successful design and implementation. It clarifies the differences and similarities between OOP and classic software engineering and provides strategies for avoiding the pitfalls.
A Student Guide to Object-Oriented Development is an introductory text that follows the software development process, from requirements capture to implementation, using an object-oriented approach. The book uses object-oriented techniques to present a practical viewpoint on developing software, providing the reader with a basic understanding of object-oriented concepts by developing the subject in an uncomplicated and easy-to-follow manner. It is based on a main worked case study for teaching purposes, plus others with password-protected answers on the web for use in coursework or exams. Readers can benefit from the authors' years of teaching experience. The book outlines standard object-oriented modelling techniques and illustrates them with a variety of examples and exercises, using UML as the modelling language and Java as the language of implementation. It adopts a simple, step by step approach to object-oriented development, and includes case studies, examples, and exercises with solutions to consolidate learning. There are 13 chapters covering a variety of topics such as sequence and collaboration diagrams; state diagrams; activity diagrams; and implementation diagrams. This book is an ideal reference for students taking undergraduate introductory/intermediate computing and information systems courses, as well as business studies courses and conversion masters' programmes. - Adopts a simple, step by step approach to object-oriented development - Includes case studies, examples, and exercises with solutions to consolidate learning - Benefit from the authors' years of teaching experience
With this book, software engineers, project managers, and tool builders will be able to better understand the role of analysis and design in the object-oriented (OO) software development process. This book presents a minimum set of notions and shows the reader how to use these notions for OO software construction. The emphasis is on development principles and implementation.
Test-Driven Development (TDD) is now an established technique for delivering better software faster. TDD is based on a simple idea: Write tests for your code before you write the code itself. However, this "simple" idea takes skill and judgment to do well. Now there's a practical guide to TDD that takes you beyond the basic concepts. Drawing on a decade of experience building real-world systems, two TDD pioneers show how to let tests guide your development and “grow” software that is coherent, reliable, and maintainable. Steve Freeman and Nat Pryce describe the processes they use, the design principles they strive to achieve, and some of the tools that help them get the job done. Through an extended worked example, you’ll learn how TDD works at multiple levels, using tests to drive the features and the object-oriented structure of the code, and using Mock Objects to discover and then describe relationships between objects. Along the way, the book systematically addresses challenges that development teams encounter with TDD—from integrating TDD into your processes to testing your most difficult features. Coverage includes Implementing TDD effectively: getting started, and maintaining your momentum throughout the project Creating cleaner, more expressive, more sustainable code Using tests to stay relentlessly focused on sustaining quality Understanding how TDD, Mock Objects, and Object-Oriented Design come together in the context of a real software development project Using Mock Objects to guide object-oriented designs Succeeding where TDD is difficult: managing complex test data, and testing persistence and concurrency
Jia (software engineering, DePaul University) helps readers develop skills in designing software, and especially in writing object- oriented programs using Java. The text provides broad coverage of object-oriented technology, including object-oriented modeling using the Unified Modeling Language (UML), object-oriented design using design patterns, and object-oriented programming using Java. This second edition offers expanded coverage of design patterns, enhanced material on UML, and a new introduction to the iterative software development process made popular by extreme programming. Learning features include chapter summaries, exercises, and projects.
"This book consists of a series of high-level discussions on technical and managerial issues related to object-oriented development"--Provided by publisher.
Practical OO development tips for the C++ and Java programmer Practical Object-Oriented Development in C++ and Java offers advice on real-world ways to use these powerful programming languages and techniques. Using the Unified Modeling Language (UML) methodology, expert Cay S. Horstmann gives you clear, concise explanations of object-oriented design, C++, and Java in a way that makes these potentially daunting operations more accessible than they've ever been before. Horstmann compares and contrasts features of C++ and Java to give you a deeper understanding of OO design. He separates the genuinely useful C++, Java, and UML features from the less effective and potentially harmful ones. Horstmann shows you how to determine the best programming practice for whatever application you're in; provides the kind of eye-opening design tips and style rules that can only come from experience; and demystifies advanced topics like frameworks and object persistence. Dozens of illuminating programming examples are readily accessible through the accompanying Web site. Useful code is available for smart pointers, easy output formatting in C++ and Java, a set of classes that makes STL safe to use, and a nifty utility that automatically extracts header files. This unique book: * Offers over 100 practical design hints for good class design * Covers the essential OO features of Java 1.1-like serialization and reflection * Uses the C++ Standard Template Library (STL) throughout * Covers CRC cards in addition to UML
This book teaches you the key aspects of object-oriented programming: objects, classes, messages, methods and inheritance. This book is different from most books: - it focuses on Test Driven Design from day one. - it uses an extremely well-designed, simple, pure and powerfull object-oriented language, Pharo (http: //www.pharo.org). Why using Pharo? Because Pharo' syntax fits on a postcard and with Pharo you program a world of interacting objects. In Pharo there is nothing else but objects and messages. Even Booleans are true objects.Finally Pharo is fun program and fully interactive. This book is supported by the videos of the professional Pharo MOOC: (http: //mooc.pharo.org). This material guides you step by step in the exciting world of Pharo and object-oriented programming. You can also interact with Pharoers from all over the world using Discord (http: //discord.gg/Sj2rhxn). The authors have more than 20 years experience teaching advanced design and they are part of the core Pharo t
This book covers the essential knowledge and skills needed by a student who is specializing in software engineering. Readers will learn principles of object orientation, software development, software modeling, software design, requirements analysis, and testing. The use of the Unified Modelling Language to develop software is taught in depth. Many concepts are illustrated using complete examples, with code written in Java.