发表于2024-11-08
Practical Object-Oriented Development with UML and Java 2024 pdf epub mobi 电子书
图书标签:
Practical Object-Oriented Development with UML and Java is for busy professional software analysts and developers who work on large systems. If you do not have time to take a class and need to get up-to-speed on object-oriented technology using unified modeling language (UML) and Java, then this book is a self-teaching guide for you. It will help you understand the differences between object-oriented analysis, object-oriented design, and object-oriented programming. Our goals are to Teach you to build an object-oriented application using Java and make the right trade-off decisions to meet your business needs Clarify the basic concepts associated with object-oriented technology Supply sufficient depth in coverage for students and practitioners entering the field to get them up-to-speed Expose some of the myths surrounding object-oriented technology while focusing on its practicality as a software engineering tool Provide a practical approach to analysis, design, and programming in object-oriented technology Show how to implement object-oriented technology using Java Balance theory with application practices in the existing literature You do not have to know computer science or advanced mathematics to understand the important object-oriented concepts and issues in depth. Even the programming chapters do not require a background in Java; they illustrate how working code in Java is produced. OBJECT-ORIENTED TECHNOLOGY We are software developers of large systems. We have delivered code written in several dozen programming languages representing a half-dozen software technologies. There have been few software revolutions that we have not experienced over the last 30 years. So it is from some nontrivial perspective that we say that it is our belief that object-oriented technology is the most important software technology with which we have worked. Why do we say this? Well, object-orientation has changed the way we build software and the way applications intercommunicate over worldwide networks and across mufti-vendor computers. Moreover, the object model is changing the way we design business processes and the way we think about an enterprise. Most enterprises are in the process of redesigning themselves to meet current business challenges introduced by the Internet. Object-orientation is playing a major role in this effort by providing a model that captures the business processes, procedures, policies, and rules that facilitate design. The use of tools that translate the model into an operational system speeds implementation of the redesign. As-market or business conditions change, these systems should be regenerated to reflect these changes by updating the model and using these tools. Solid software engineering practices have taken us farther and faster than any other approach in previous decades. It is a common belief that object-oriented technology has put a dent in the software crisis, meaning that the mechanisms of object-oriented technology are becoming for software what the bolts and beams are for construction design and what the chip is for computer hardware design. This belief stems from the following: The proficiency of a higher-level object-oriented model provides the software designer with real-world, programmable components, thereby reducing software development costs. Its capability to share and reuse code with object-oriented techniques reduce time to develop an application. Its capability to localize and minimize the effects of modifications through programming abstraction mechanisms allows for faster enhancement development and provides more reliable and more robust software. Its capability to manage complexity allows developers to address more difficult applications. The collection of object-oriented concepts is a tool set for modeling reality. This object-oriented tool set gives developers the best means of managing the complexity. Certain object-oriented concepts help developers produce flexible and maintainable software. WHY UNIFIED MODELING LANGUAGE? As practitioners of object-oriented technology, we know that all the methods, if practiced properly, result in the same or a similar model. Different modeling language notations, however, can be impediments to progress. The unified modeling language (UML) has become an industrial standard that has integrated different modeling notations into a single modeling language notation. This is reason enough to have chosen the UML. UML is a language for documenting our analysis and design models. It gives us all the drawing icons necessary to capture most of the concepts or mechanisms that we find valuable in solving real business problems. Also, it provides all the necessary diagrams that are vital for documenting our models. Finally, it is a living language that gives us the ability to extend the notation for mechanisms not yet defined by the distinguished group of Grady Booch, James Rumbaugh, and Ivor Jacobson at Rational Software Corporation. UML is not the central subject of this book. It is presented as a means of documenting the analysis and design models that are developed as a result of the methods that are the central subject of this book. All of the figures of UML are presented and discussed in terms of what information is captured within them and how that information is captured. WHY JAVA? It is true that Java is exclusively an object-oriented programming language and that this exclusivity tends to limit its use compared to the multi-paradigm programming language C++. Yet Java has one benefit that far outweighs any general limitations. In particular, Java runs on the Java Virtual Machine (Java VM). This allows a Java program to run on any machine that has an implementation of the Java VM running on it. This frees developers from having to design and implement the same functionality for several different combinations of hardware and operating systems. There are positive consequences to the use of the virtual machine that may not be apparent at first glance. For one, vendors can now focus on development of tools and products knowing that they have to invest development dollars on only one implementation and not five or six. This means that they can emphasize the realization of greater functionality (read that as greater business value). This impacts reuse efforts as well. One can develop libraries on any hardware running any operating system and reuse the code without modification for platform differences. Programming errors will not appear in one version of the code for a given platform and not in another. The broader base of reuse of the same code means that greater reliability of components can be achieved in less time and cost. Analysis can focus on business value; design can focus on greater flexibility and maintainability; and implementation and testing can now focus on quality, reliability, and performance. The net result of this change in focus is better code for less money. These benefits are seen when one looks at the large number of Java libraries (frameworks) that are now available from Sun. There is now a good set of general utility libraries, a high-performance graphical user interface library (e.g., SWING), and libraries of special-purpose business classes available to developers. Compared to the C++ versions of these libraries, they are far more sophisticated, provide much greater functionality, and are more easily incorporated into a final product. Because these libraries are available across all projects and are well documented in other books, they are widely used. Hence, expertise in their use is readily available. This is to be compared to the C++ versions that have entirely different application programming interfaces (APIs). In the C++ world, a developer may be an expert for one product on one platform and know nothing about other products for other platforms. Few programmers have actually written code for the PC, Mac, and Unix platforms. The direct incorporation of the Java VM in modern web browsers makes it possible for Java programs to be downloaded from the Internet and run from within the browser. This has helped provide greater functionality within the browser environment and has spawned a new class of applications. It is safe to say that it would have been impossible for us to have achieved the recent gains in functionality, being delivered to users via the Internet without Java. Java programs now appear as both client and server applications. The widespread use of Java in the modern World Wide Web is unlikely to diminish until a new (as yet unrecognized) technology provides a greater set of abstractions and the same broad platform support. OUR APPROACH TO OBJECT-ORIENTED TECHNOLOGY We are not object-oriented purists, and neither are we theorists. We are developers willing to use any good idea that will help us achieve two very critical business goals: lower development cost and reduced time-to-market for enhancements. We believe that these technical objectives reliability, maintainability, and flexibility are critical to meeting these business goals. Our approach to using object-oriented technology is to mange the complexity of developing software so it is reliable, maintainable, and flexible. Managing complexity is the key to achieving these objectives and, thus, our business goals. To manage complexity in complex problem domains, we find that the developers are required to know how objects, classes, relationships, and rules fit into the object paradigm. When we model most complex problem domains, we find objects, classes, and many relationships among objects. In addition, we need to capture the rules (policies) within that domain. Thus, we have to use very rich static modeling techniques to capture the data (object) relationships. Many object-oriented experts consider relationships as "bad" because they violate the encapsulation principle. From our perspective, it helps us manage the complexity of the problem domain and helps us to achieve our business goals. We gladly use it, and we look for more mechanisms and language support in ...
Practical Object-Oriented Development with UML and Java 2024 pdf epub mobi 电子书