Modeling with UML, OCL, and IFML
Object-Oriented Analysis and Design for Information Systems clearly explains real object-oriented programming in practice. Expert author Raul Sidnei Wazlawick explains concepts such as object responsibility, visibility and the real need for delegation in detail. The object-oriented code generated by more » using these concepts in a systematic way is concise, organized and reusable.
The patterns and solutions presented in this book are based in research and industrial applications. You will come away with clarity regarding processes and use cases and a clear understand of how to expand a use case. Wazlawick explains how to build meaningful sequence diagrams. Object-Oriented Analysis and Design for Information Systems illustrates how and why building a class model is not just placing classes into a diagram. You will learn the necessary organizational patterns so that your software architecture will be maintainable.
* Learn how to build better class models, which are more maintainable and understandable.
* Write use cases in a more efficient and standardized way, using more effective and less complex diagrams.
* Build true object-oriented code with division of responsibility and delegation. « less
Types, Analysis, and Verification
This book presents a survey of the state-of-the-art on techniques for dealing with aliasing in object-oriented programming. It marks the 20th anniversary of the paper The Geneva Convention On The Treatment of Object Aliasing by John Hogg, Doug Lea, Alan Wills, Dennis de Champeaux and Richard Holt. The more » 22 revised papers were carefully reviewed to ensure the highest quality.The contributions are organized in topical sections on the Geneva convention, ownership, concurrency, alias analysis, controlling effects, verification, programming languages, and visions. « less
Learn how Ninject facilitates the implementation of Dependency Injection to solve common design problems of real-life applications
Dependency injection is an approach to creating loosely coupled applications. Maintainability, testability, and extensibility are just a few advantages of loose coupling. Ninject is a software library which automates almost everything that we need in order to implement a dependency injection pattern.
Mastering more » Ninject for Dependency Injection will teach you everything you need to know in order to implement dependency injection using Ninject in a real-life project. Not only does it teach you about Ninject core framework features that are essential for implementing dependency injection, but it also explores the power of Ninject's most useful extensions and demonstrates how to apply them. « less
You can find a whole range of programming textbooks intended for complete beginners. However, this one is exceptional to certain extent. The whole textbook is designed as a record of the dialogue of the author with his daughter who wants to learn programming. The author endeavors not to explain the Java more » programming language to the readers, but to teach them real programming. To teach them how to think and design the program as the experienced programmers do. Entire matter is explained in a very illustrative way which means even a current secondary school student can understand it quite simply.
The book comes out of the author's long-term experience with teaching children, university students as well as professional programmers. The author teaches programming according to the Architecture First methodology which reacts at the companies' complaints that the school graduates are usually good in coding, but bad in software architecture. Coding itself is gradually taken over by various code-generators, but the work of the architect will stay irreplaceable for a long time. The author pursues the pedagogical principle saying that those items considered as the most important should be presented as soon as possible. Therefore he leads the readers to apply the proper design of the architecture of the created program and to avoid common mistakes since the very beginning.
For designing the programs, the development environment BlueJ is used, which is proposed specially for the beginners and which enables explaining, demonstrating and programming a number of basic architectonic constructs without leaving the architectonic level and degrading to the code level. The book is divided into three parts. The first one deals with the explanation of basic constructs of the object oriented programming and all proposed programs are created by the code-generator incorporated in BlueJ. The second part repeats the explained constructs and the readers can learn how to code the proposed program similarly as was done by the generator in the first part. The third part presents constructs which are beyond the bounds of abilities of the used code-generator, and therefore the readers have to program them themselves. Despite that, the explanation core keeps in the level of architecture. The book is determined above all for complete beginners. However, the experience proved that even the intermediate programmers can find a lot of interesting and informative in it. « less
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 more » 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. « less
A comprehensive reference for an executable UML and the advantages of modeling This book presents the most up-to-date technology for rapidly developing information systems using the object-oriented paradigm and models, and establishes an executable profile of UML for such model-driven development. As more » a software developer, architect, or analyst, you'll benefit from learning how information systems can be developed more efficiently using the object-oriented paradigm and model-driven approach.
Written by an expert who is uniquely qualified in the topic, this Wrox reference offers a profile of UML that is formal and executable, instead of the relational paradigm or its incomplete coupling with object orientation. It provides a comprehensive tutorial on model-driven development and UML. « less
Object-oriented programming (OOP) is the foundation of modern programming languages, including C++, Java, C#, and Visual Basic .NET. By designing with objects rather than treating the code and data as separate entities, OOP allows objects to fully utilize other objects' services as well as inherit their more » functionality. OOP promotes code portability and reuse, but requires a shift in thinking to be fully understood. Before jumping into the world of object-oriented programming languages, you must first master The Object-Oriented Thought Process. « less
Theory and Practice
Use Case Driven Object Modeling with UML: Theory and Practice shows how to drive an object-oriented software design from use case all the way through coding and testing, based on the minimalist, UML-based ICONIX process. In addition to a comprehensive explanation of the foundations of the approach, the more » book makes extensive use of examples and provides exercises at the back of each chapter.
This book leads by example. It demonstrates common analysis and design errors, shows how to detect and fix them, and suggests how to avoid making the same errors in the future. « less
A Brain Friendly Guide to OOA&D
Head First Object-Oriented Analysis & Design shows you how to analyze, design, and write serious object-oriented software: software that's easy to reuse, maintain, and extend; software that doesn't hurt your head; software that lets you add new features without breaking the old ones.
By exploiting how more » your brain works, Head First Object-Oriented Analysis & Design compresses the time it takes to learn and retain complex information. Expect to have fun, expect to learn, expect to be writing great software consistently by the time you're finished reading this! « less
Learn by pragmatic example how to create effective designs composed of interfaces to objects, components and services.
You'll learn what polymorphism and encapsulation really mean, and how to use these ideas more effectively. See how to create better interfaces using agile development techniques, and more » learn the subtle differences between implementing an interface and inheriting an implementation. Take a fresh, modern view of Design By Contract and class responsibilities. Understand the basis of a service-oriented architecture, including stateful versus stateless interfaces, procedural versus document models, and synchronous versus asynchronous invocations. « less