Camera-ready copy for this book was prepared on a Macintosh with Microsoft The notation and process described in this book is in the public domain, and its. Where those designations appear in this book, and the publisher was . For the person new to object-oriented analysis and design (OOAD). OOAD with UML. Object Oriented Analysis and .. For more details on the RUP, Philippe Kruchten«s book The Rational Unified. Process¬ An Introduction (ref 1) .
|Language:||English, Spanish, Indonesian|
|Genre:||Business & Career|
|Distribution:||Free* [*Register to download]|
All the content and graphics published in this e-book are the property of Tutorials Point. (I) Pvt. Ltd. The user of this e-book is . OOAD ─ OBJECT MODEL. Wiley also publishes its books in a variety of electronic formats. .. The aim of this book is to give you a broad understanding of the processes and techniques. This chapter introduces the book goals and OOA/D. The next introduces the design of a system, and this book teaches the classic OO design metaphor.
What is the system not like? Customer Conversation Figure out the features But what is a feature, anyway? Features covered So what exactly have we done? What most people give the customer And how do I use one? Feeling a little bit lost? Bringing Order to Chaos Feeling a little overwhelmed? We need an architecture Architecture takes a big chaotic mess The three Qs of architecture 1.
Is it part of the essence of the system? What the fuck does it mean? Which feature should we work on next? Game-specific units Commonality revisited Solution 1: Solution 2: Commonality analysis: What does it mean? Now do some commonality analysis So now what would you do? Is there anything common here? Design Principles: Originality is Overrated Design principle roundup Principle 1: The OCP, step-by-step Principle 2: Now remove the code from other locations Aggregation versus composition Inheritance is just one option 9.
Iterating and Testing: Iterating deeper: The framework supports multiple types of troops or units that are game-specific Fleshing out the Unit class Showing off the Unit class Writing test scenarios Scenario 2: Changing property values Scenario 3: Getting non-existent property values Solution 1: Emphasizing Commonality Design decisions are always a tradeoff Solution 2: Emphasizing Encapsulation Tradeoffs with this decision, too Break your apps up into smaller chunks of functionality But you can still break things up further Your decisions can iterate down, too And a connection between two stations?
Then a line is just a series of connections What our equals implementation does Back to the requirements phase Focus on code, then focus on customers.
Then focus on code, then focus on customers Iteration makes problems easier Implementation: One last test class Check out Objectville for yourself! Iteration 3, anyone? Make loading more extensible Allow different output sources and formats!
Use case formats Focusing on interaction A more formal use case 3. Anti patterns 4. Metrics 6. Sequence diagrams 7. State diagrams 8. Unit testing What a test case looks like Test your code in context 9. Organize the Document Use the rules of good organization such as the organization's standards, college handbooks, Strunk and White's Elements of Style, or the University of Chicago Manual of Style within each section.
The main objective of the analysis is to capture a complete, unambiguous, and consistent picture of the requirements of the system. Construct several models and views of the system to describe what the system does rather than how.
Capturing use cases is one of the first things to do in coming up with requirements. Every use case is a potential requirement. The key in developing effective documentation is to eliminate all repetition; present summaries, reviews, organization chapters in less than three pages. Use the rule: 80 percent of the work can be done with 20 percent of the documentation.
Martin and Odell have observed in object-oriented analysis and design, that In fact, an object can be categorized in more than one way. All the information for an object is written on a card. CRC starts with only one or two obvious cards. If the situation calls for a responsibility not already covered by one of the objects: Add, or create a new object to address that responsibility.
Finding classes is not easy. The more practice you have, the better you get at identifying classes.
There is no such thing as the right set of classes. Finding classes is an incremental and iterative process.
Guidelines for Naming Classes The class should describe a single object, so it should be the singular form of noun. Use names that the users are comfortable with. The name of a class should reflect its intrinsic nature. By the convention, the class name must begin with an upper case letter.
For compound words, capitalize the first letter of each word - for example, Loan Window.
Example, Military Aircraft and Civilian Aircraft. Only specialize when the sub classes have significant behavior. Bottom-up Look for classes with similar attributes or methods. Group them by moving the common attributes and methods to super class. Do not force classes to fit a preconceived generalization structure.
Reusability Move attributes and methods as high as possible in the hierarchy. At the same time do not create very specialized classes at the top of hierarchy. This balancing act can be achieved through several iterations.
Multiple inheritance Avoid excessive use of multiple inheritances. It is also more difficult to understand programs written in multiple inheritance system. Class Responsibility: Identifying Attributes and Methods Identifying attributes and methods, like finding classes, is a difficult activity.
The use cases and other UML diagrams will be our guide for identifying attributes, methods, and relationships among classes. You can always add more attributes in the subsequent iterations. System functionality is expressed in terms of object services Shared data areas are eliminated.
Objects communicate by message passing Objects may be distributed and may execute sequentially or in parallel 4. Start thinking how to actually implement the problem in a program. The goal to design the classes that we need to implement the system. Design is about producing a solution that meets the requirements that have been specified during analysis.
Analysis Versus Design. Therefore, is equivalent to a law or principle. Maintain the independence of components Axiom 2 : The information axiom. Minimize the information content of the design. Axiom 1 states that, during the design process, as we go from requirement and usecase to a system component, each component must satisfy that requirement, without affecting other requirements Axiom 2 concerned with simplicity.
Rely on a general rule known as Occams razor. Occams razor rule of simplicity in OO terms : The best designs usually involve the least complex code but not necessarily the fewest number of classes or methods.
Minimizing complexity should be the goal, because that produces the most easily maintained and enhanced application. In an object-oriented system, the best way to minimize complexity is to use inheritance and the systems built-in classes and to add as little as possible to what already is there. Corollaries May be called Design rules, and all are derived from the two basic axioms : The origin of collaries as shown in figure 2.
Corollary 1 : Uncoupled design with less information content.
Desirable to have a little interaction. A method carries multiple functions is undesirable Corollary 2 : Single purpose. There must be a strong association between the analysiss object and designs object OOA and OOD are based on the same model As the model progresses from analysis to implementation, more detailed is added Corollary 5 : Standardization. Promote standardization by designing interchangeable components and reusing existing classes or components The concept of design patterns might provide a way to capture the design knowledge, document it, and store it in a repository that can be shared and reused in different applications Corollary 6 : Design with inheritance.
Common behavior methods must be moved to superclasses. They may be used to create objects Object classes may inherit attributes and services from other object classes Objects : Objects An object is an entity which has a state and a defined set of operations which operate on that state.