A Review of Object Oriented Systems Development by Ali Bahrami
Object Oriented Systems Development is a book by Ali Bahrami that covers the concepts, tools, development life cycle, problem solving, modeling, analysis, and design of object-oriented systems. The book uses Unified Modeling Language (UML) as the notation for modeling object-oriented systems. UML is a standard language that is widely adopted by software developers and supported by various tools and platforms.
The book is divided into five parts. The first part introduces the basic concepts of object orientation, such as objects, classes, inheritance, polymorphism, and encapsulation. It also presents an overview of the object-oriented systems development life cycle, which consists of four phases: analysis, design, implementation, and testing. The second part discusses the methodology, modeling, and UML in more detail. It explains the different types of diagrams and symbols used in UML, such as use case diagrams, class diagrams, sequence diagrams, state diagrams, and activity diagrams. It also describes the object-oriented methodologies that guide the development process, such as Booch method, Rumbaugh method, Jacobson method, and Unified Process. The third part focuses on the object-oriented analysis phase, which involves identifying use cases, classes, relationships, attributes, and methods. It shows how to apply UML to model the functional and structural aspects of a system. The fourth part covers the object-oriented design phase, which involves refining the analysis model and applying design principles and patterns. It shows how to design classes, access layer, view layer, and interface objects. It also discusses some issues related to object storage and object interoperability. The fifth part deals with software quality assurance and system usability. It explains how to perform testing, debugging, maintenance, and documentation of object-oriented systems. It also provides some guidelines and measures for evaluating user satisfaction.
The book is intended for students and practitioners who want to learn about object-oriented systems development using UML. It assumes some familiarity with programming languages and data structures. It provides many examples and exercises to illustrate the concepts and techniques. It also includes two appendices that contain a document template and an introduction to graphical user interface.
The book is available as a PDF file from various online sources[^1^] [^2^]. It can also be purchased as a hardcover or paperback edition from online or offline bookstores[^2^] [^3^].
The book also explains the advantages and disadvantages of object-oriented systems development. Some of the advantages are:
Modularity for easier troubleshooting: Objects are self-contained and can be tested and debugged independently. They also reduce the complexity of the system by hiding the implementation details from other objects.
Reuse of code through inheritance: Objects can inherit the common features and behaviors from their parent classes, which avoids duplication of code and enhances consistency.
Flexibility through polymorphism: Objects can have different forms or behaviors depending on the context. This allows for dynamic binding and overriding of methods, which increases the adaptability and extensibility of the system.
Effective problem solving: Objects can model the real-world entities and scenarios in a natural and intuitive way. They also facilitate abstraction, encapsulation, and decomposition, which are essential for solving complex problems.
Some of the disadvantages are:
Larger program size: Object-oriented programs tend to have more lines of code and more classes than procedural programs, which increases the memory and disk space requirements.
Slower execution speed: Object-oriented programs involve more function calls and message passing than procedural programs, which adds to the overhead and reduces the performance.
Not suitable for all problems: Object-oriented approach may not be the best choice for some types of problems, such as numerical computation, parallel processing, or real-time systems.
Steep learning curve: Object-oriented programming requires a paradigm shift from traditional programming. It also involves mastering various concepts, principles, patterns, and tools that may be challenging for beginners or experienced programmers alike.
The book concludes with a case study that illustrates how to apply object-oriented systems development to a real-world project. It shows how to use UML to model the requirements, analysis, design, and implementation of a library management system. It also demonstrates how to use various tools and techniques to support the development process, such as prototyping, testing, documentation, and configuration management. ec8f644aee