Designed as a companion volume to the Object- Oriented Analysis, this book focuses on the middle part of the software lifecycle: the active part of design. It shows readers how to apply object-oriented design, and how to tailor and expand the method to suit specific project requirements. Readers get to explore the major issues in OOD; the role of OOD in the systems lifecycle. This book is for software engineers and other users who undertake real-world systems development projects and designing overall software architecture for systems. The reader will find themselves referencing this book frequently for it well planned layout and structure. This book will explain OO in a simplistic form making it easy to read. It offers a real world approach to object oriented design. This book still serves as an excellent resource for Software engineers.
This book is for fairly programmer who are familiar with coding and want to start thinking object oriented. The material is introduced in a clear fashion. Towards the end of the book the author gives the reader a short reviewof UML, XML, JSON, and Design Patterns,etc. Alot of that material is for beginners. This book would serve as a beginning to object oriented design patterns and concepts. It is not for an indepth study of OOP but serves as a foundation and introduction.
OOP is in the field of cognitive science theories about how information in the human mind represented. Cognitive Science is a multidisciplinary field in which psychiatrists, neurologists, computer scientists and others are trying to understand the nature of human thought.
Cognitive theories behind OOP existed for decades. In fact, the first object-oriented programming languages began to appear in the 1960s, but at this time are not very popular. It is only recently (in the last 15 years or more), such as object-oriented programming has become popular.
Object-oriented programming has great advantages compared to other types of programming:
1) Reuse and recycle Code: objects are created for object-oriented programs can be easily used in other programs.
Encapsulation (Part 1): Once an object is created, the knowledge of their implementation is not required for use. In older programs, the necessary encoder understand the details of a piece of code prior to use (in this or another program).
2) Encapsulation (Part 2): The objects have the option to hide the parts of programmers. This prevents programmers falsification of values that they should not do. Also monitored as it interacts in the prevention of other error types. For example, a programmer (or another program) does not set the width of a window to -400.
3) Design Advantages: The main programs are very difficult to write. Object-oriented programs are the developers forced to go through a long planning phase, which makes for better designs with fewer errors. Further, when the program reaches a certain size, the programs are oriented objects actually easier to program than not object-oriented.
4) Software Support: Programs are not disposable. The old code must be dealt with on a daily basis or to be updated (for a new version of an existing piece of software) or with the last computer and software. An object-oriented program is much easier to modify and maintain than a non-object-oriented program. Although much work has gone before the program is written, is less work is required to maintain over time.