An Introduction to Object-Oriented Analysis Objects and UML in plain English. Chapter 15: Moving to Object-Oriented Techniques Based on the book by David William Brown John Wiley & Sons, ISBN 0471371378 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 1 Copyright Copyright 8 2002 Flying Kiwi Productions All rights reserved. This slide presentation is based on “An Introduction to ObjectOriented Analysis; Objects and UML in Plain English,” by David William Brown, Wiley, ISBN 0471371378, “The Book.” Permission is hereby granted to copy, modify or excerpt all or any part of this slide presentation, provided it is solely for use with courses, seminars or other presentations or productions where a copy of The Book is purchased by or for each and every participant or recipient. An instructor guide is available from the publisher for such presentations. Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 2 Chapter 15: Moving to ObjectOriented Techniques 15.1. Is O-O Technology the Final Answer? 15.2. Is your Organization Ready 15.3. 15.4. 15.5. 15.6. 15.7. 15.8. 15.9. Copyright for O-O Techniques? Evolution or Revolution? Getting Started. Staffing and Training. The Pilot Project. Migration Problems. Dealing with Legacy Systems. Testing and Quality Assurance 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 3 Chapter 15: Moving to Object-Oriented Techniques 15.1. Is O-O Technology the Final Answer? Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 4 Chapter 15: Moving to Object-Oriented Techniques 15.1. Is O-O Technology the Final Answer? Users usually have: Vivid dreams of the future, But without: A clear idea of what they want built, An understanding of the available technology, Sufficient time to arrive at the desired product, Adequate resources to construct their vision.” Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com Tom Love 5 Chapter 15: Moving to Object-Oriented Techniques 15.1. Is O-O Technology the Final Answer? According to Tom Love, “The (O-O) technology is not perfect, Some projects do have difficulties, But the developers continue to use objects on subsequent projects.” Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 6 Chapter 15: Moving to Object-Oriented Techniques 15.1. Is O-O Technology the Final Answer? One suggestion for what comes after objects is Frames, proposed by Paul Bassett in his book: “Framing Software Reuse, Lessons from the Real World” Yourdon Press, 1996 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 7 Chapter 15: Moving to ObjectOriented Techniques 15.1. Is O-O Technology the Final Answer? 15.2. Is your Organization Ready for OO Techniques? 15.3. Evolution or Revolution? 15.4. Getting Started. 15.5. Staffing and Training. 15.6. The Pilot Project. 15.7. Migration Problems. 15.8. Dealing with Legacy Systems. 15.9. Testing and Quality Assurance Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 8 Chapter 15: Moving to Object-Oriented Techniques 15.2. Is your Organization Ready for OO Techniques? Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 9 Chapter 15: Moving to Object-Oriented Techniques 15.2. Is your Organization Ready for OO Techniques? Levels of Maturity in dealing with software development: Initial Level - Everyone does their own thing. Repeatable - Some informal agreement. Defined - Written methodology, maybe enforced. Managed - Methodology used on all or most projects. Training, sharing, some policing. Metrics taken and monitored. Optimized - Metrics regularly fed back to optimize development process. Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 10 Chapter 15: Moving to Object-Oriented Techniques 15.2. Is your Organization Ready for OO Techniques? The further down the list your group is, and the more your people understand their own development process, the easier they can adapt to new methods with less hassle. People in the first two levels (Initial and Repeatable) have a high resistance to any attempt to formalize their methods. They perceive it as control. Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 11 Chapter 15: Moving to Object-Oriented Techniques 15.2. Is your Organization Ready for OO Techniques? Exercise: In your group, each write down your opinion of where your organization is in this list. Also write down a brief justification for your opinion. Now the group discuss each member’s decision and reasons. Comment and query. Make them justify it to you. Each member of the class present their final judgment and reasons. Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 12 Chapter 15: Moving to ObjectOriented Techniques 15.1. Is O-O Technology the Final Answer? 15.2. Is your Organization Ready for OO Techniques? 15.3. Evolution or Revolution? 15.4. Getting Started. 15.5. Staffing and Training. 15.6. The Pilot Project. 15.7. Migration Problems. 15.8. Dealing with Legacy Systems. 15.9. Testing and Quality Assurance Copyright 15.10. A Little Peek Into the Future. 2002 Flying Kiwi Productions Inc. flykiwi@home.com 8 13 Chapter 15: Moving to Object-Oriented Techniques 15.3. Evolution or Revolution? Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 14 Chapter 15: Moving to Object-Oriented Techniques 15.3. Evolution or Revolution? Objects are an evolution from entities But are revolutionary in their effects. For many developers, a revolution is something to be feared and resisted! And so also, to them, is anything new. You will need: Mentors, Training, Progressive apprenticeships, People skills. Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 15 Chapter 15: Moving to Object-Oriented Techniques 15.3. Evolution or Revolution? People like this should not be on the pilot or early production projects! They should move on to O-O projects in the conversion calendar, later When there are plenty of experienced peers and mentors And the completed projects are living proof that objects work. (Otherwise you’ll get all kinds of complaints about “new and untried” methods) Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 16 Chapter 15: Moving to ObjectOriented Techniques 15.1. Is O-O Technology the Final Answer? 15.2. Is your Organization Ready for OO Techniques? 15.3. Evolution or Revolution? 15.4. Getting Started. 15.5. Staffing and Training. 15.6. The Pilot Project. 15.7. Migration Problems. 15.8. Dealing with Legacy Systems. 15.9. Testing and Quality Assurance Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 17 Chapter 15: Moving to Object-Oriented Techniques 15.4. Getting Started. Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 18 Chapter 15: Moving to Object-Oriented Techniques 15.4. Getting Started. Start Early! Investigations and decisions. People never Plan to Fail, They just Fail to Plan! Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 19 Chapter 15: Moving to Object-Oriented Techniques 15.4. Getting Started. Adequate planning, Sufficient time, Everyone is on a learning curve! There are more things to go wrong, And it’s all so new, no-one knows how to fix it when they DO go wrong. Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 20 Chapter 15: Moving to Object-Oriented Techniques 15.4. Getting Started. Choose language, OOGUI and OODBMS carefully. Ensure features meet your needs. Get training early. Get (proven) consultants in early. There’s never enough time to do it right, but always time to do it over. Copyright See Chapter 3, finding errors early. 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 21 Chapter 15: Moving to ObjectOriented Techniques 15.1. Is O-O Technology the Final Answer? 15.2. Is your Organization Ready for OO Techniques? 15.3. Evolution or Revolution? 15.4. Getting Started. 15.5. Staffing and Training. 15.6. The Pilot Project. 15.7. Migration Problems. 15.8. Dealing with Legacy Systems. 15.9. Testing and Quality Assurance Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 22 Chapter 15: Moving to Object-Oriented Techniques 15.5. Staffing and Training. Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 23 Chapter 15: Moving to Object-Oriented Techniques 15.5. Staffing and Training. There are not a lot of experienced O-O analysts and designers out there yet. Expect that mostly you’ll need to train people for the new skills, Including people skills (see Chapter 16), But use proven consultants, With a record of successful O-O development Check with previous clients. (Do actually CHECK!) Change is not an easy thing for most people, so you need a careful, people-centered approach. Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 24 Chapter 15: Moving to Object-Oriented Techniques 15.5. Staffing and Training. Selecting the Team: Ideal team size is around seven (7). Mix of skills and backgrounds needed. Copyright Important on any project, But especially with something this new and different. 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 25 Chapter 15: Moving to Object-Oriented Techniques 15.5. Staffing and Training. Project Manager: For your pilot, pick the best one available. Must have all the skills and attitudes we talked about regarding change. Must have responsibility, with sufficient authority Pilot is a critical project Must not repeatedly get hung up waiting for approvals from higher up. Must have Copyright demonstrated leadership skills Proven Under fire Able to inspire a team through difficulties. 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 26 Chapter 15: Moving to Object-Oriented Techniques 15.5. Staffing and Training. Recent Graduates: Young and enthusiastic On the leading edge Much to contribute, but May require careful supervision. Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 27 Chapter 15: Moving to Object-Oriented Techniques 15.5. Staffing and Training. Experienced Staffers: Experience, stability and common sense. But likely more set in their ways. Some may need help and patience adapting to change. Choose those who can handle change, Flexible in their thinking, And are excited about the new technology but more excited about what it can DO for us. Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 28 Chapter 15: Moving to Object-Oriented Techniques 15.5. Staffing and Training. Pilots are not for everybody!! There are many good people who are just not suited for the pilot! Sometimes they’ll quit if the change is a stress overload for them. Must minimize the loss of expensive, highlytrained developers. These ones should remain on legacy maintenance for now. Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 29 Chapter 15: Moving to Object-Oriented Techniques 15.5. Staffing and Training. Training: Extensive training, early Successful transition projects have reported this to be essential. But don’t let the new knowledge “rust out.” Use it or lose it. Beware - “lose” may mean they go elsewhere. Vendor training for methodology, OOPL, OODBMS, etc. OOA&D courses for everybody. A selection of books of varying levels. Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 30 Chapter 15: Moving to Object-Oriented Techniques 15.5. Staffing and Training. Mentors: “A wise and trusted advisor.” (Gage) “A person with knowledge and experience who is both willing and able to assist, advise and nurture those who are beginning their work in this area.” Initially, consultants mentor in-house staff. Second O-O project, this team mentors their peers. Knowledge and expertise spreads through the whole group. Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 31 Chapter 15: Moving to ObjectOriented Techniques 15.1. Is O-O Technology the Final Answer? 15.2. Is your Organization Ready for OO Techniques? 15.3. Evolution or Revolution? 15.4. Getting Started. 15.5. Staffing and Training. 15.6. The Pilot Project. 15.7. Migration Problems. 15.8. Dealing with Legacy Systems. 15.9. Testing and Quality Assurance Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 32 Chapter 15: Moving to Object-Oriented Techniques 15.6. The Pilot Project. Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 33 Chapter 15: Moving to Object-Oriented Techniques 15.6. The Pilot Project. Choose Three Pilots!! Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 34 Chapter 15: Moving to Object-Oriented Techniques 15.6. The Pilot Project. Your first and second projects will be about 30% more expensive. The third and on will show benefits. Reduced cost Reduced time Enhanced software quality This is because of . . . Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 35 Chapter 15: Moving to Object-Oriented Techniques 15.6. The Pilot Project. The learning curve for O-O methods, Much more than just learning a new language or development environment. We need to learn “Objectthink” Remember the logger! The first two projects will develop your inhouse class library. This enshrines all your corporate development and coding standards and conventions. You need to do some investigation and planning here, and develop any standards and conventions that are missing. An opportunity! Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 36 Chapter 15: Moving to Object-Oriented Techniques 15.6. The Pilot Project. Keep a Low Profile: Choose a project that Can be made highly visible if successful, but if not, Keep a low profile, Lick your wounds, pick yourself up, Learn, And try another one. Pilots are by nature experimental, and for learning, and can be expected sometimes to fail,2002 Flying Kiwi Productions Inc. Copyright 8 so . . . flykiwi@home.com 37 Chapter 15: Moving to Object-Oriented Techniques 15.6. The Pilot Project. Be Prepared to Deal with Possible Failure: Have contingency plans in place. Leader will need those people skills here! Keep team spirits and motivation up. Choose team members who will not be devastated by a failure. The ability to learn from failure and carry on to try again is characteristic of winners and high achievers. 8 Copyright 2002 Flying Kiwi Productions Inc. flykiwi@home.com 38 Chapter 15: Moving to Object-Oriented Techniques 15.6. The Pilot Project. Pilot Should Have a GUI: GUIs are one of the most widespread and spectacular applications of O-O technology. Large and varied set of software products available. GUIs will get you a lot of media and user attention. Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 39 Chapter 15: Moving to Object-Oriented Techniques 15.6. The Pilot Project. Independent Project: Make sure you choose a pilot so that if it fails, it will not bring down another project. or worse, Stop the whole O-O conversion process! It is a proof-of-concept, and a first attempt Keep it clear of corporate politics Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 40 Chapter 15: Moving to Object-Oriented Techniques 15.6. The Pilot Project. If you want a way to go down in corporate history, Choose a major mission-critical project for your first baby step into objects! Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 41 Chapter 15: Moving to ObjectOriented Techniques 15.1. Is O-O Technology the Final Answer? 15.2. Is your Organization Ready 15.3. 15.4. 15.5. 15.6. for OO Techniques? Evolution or Revolution? Getting Started. Staffing and Training. The Pilot Project. 15.7. Migration Problems. 15.8. Dealing with Legacy Systems. 15.9. Testing and Quality Assurance Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 42 Chapter 15: Moving to Object-Oriented Techniques 15.7. Migration Problems. Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 43 Chapter 15: Moving to Object-Oriented Techniques 15.7. Migration Problems. Software: O-O tools are about the same price as the old ones. Major costs are training on new software tools. Other migrations are going on in parallel with the move to objects: Away from mainframes To client-server and multi-tier To networks with UNIX, NT, etc. To Web-based, e-biz, XML, EDI, etc. Careful planning and management are needed to foresee the effects of interactions between these and the object migration. Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 44 Chapter 15: Moving to Object-Oriented Techniques 15.7. Migration Problems. Training: The biggest problem is making sure it happens, And early enough. The literature abounds with project post-mortems containing the statement: “More training was needed.” Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 45 Chapter 15: Moving to Object-Oriented Techniques 15.7. Migration Problems. Tool vs Methodology: The object paradigm will not solve all your problems. And especially, The finest new object CASE tool will not. Even a methodology doesn’t help much, unless it is used (and better, enforced and policed.) This means being in the top 3 of the 5 levels of development maturity, Defined, Managed or Optimized. Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 46 Chapter 15: Moving to Object-Oriented Techniques 15.7. Migration Problems. Tool vs Methodology: You can use a method without a tool, but not a tool without a method, Ivar Jacobson (Eevar Yahcobson) Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 47 Chapter 15: Moving to Object-Oriented Techniques 15.7. Migration Problems. A lumberjack brought his old hand saw to be sharpened, and the store owner talked him into buying a shiny new chainsaw. “You’ll cut down three times as many trees!” he said. Off went the lumberjack, only to return three days later, disappointed. “I’m only cutting down half as many as before,” he complained. The storekeeper said, “Let me see how you’re doing it,” and took him out the back to an old stump. He fired up the motor - and the lumberjack recoiled in horror. “What’s all that noise?” he cried. Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 48 Chapter 15: Moving to Object-Oriented Techniques 15.7. Migration Problems. Software: Watch we don’t get the old guys doing things the old way with the new tools. Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 49 Chapter 15: Moving to ObjectOriented Techniques 15.1. Is O-O Technology the Final Answer? 15.2. Is your Organization Ready 15.3. 15.4. 15.5. 15.6. 15.7. for OO Techniques? Evolution or Revolution? Getting Started. Staffing and Training. The Pilot Project. Migration Problems. 15.8. Dealing with Legacy Systems. 15.9. Testing and Quality Assurance Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 50 Chapter 15: Moving to Object-Oriented Techniques 15.8. Dealing with Legacy Systems. Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 51 Chapter 15: Moving to Object-Oriented Techniques 15.8. Dealing with Legacy Systems. Legacy System: A system (usually out-of-date) that already exists, and must continue to exist for now. Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 52 Chapter 15: Moving to Object-Oriented Techniques 15.8. Dealing with Legacy Systems. Your new O-O systems will need to interface to some legacy systems. The standard way to handle this is to place an O-O “wrapper” around the legacy system To encapsulate all its messy details. From the “outside” the wrapper looks like one or more regular objects, But inside it’s still the same old COBOL code still doing its thing. But all that is hidden from the objects in the new system. They just send messages, and get responses, as if this was a true object. Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 53 Chapter 15: Moving to Object-Oriented Techniques 15.8. Moving Dealing Legacy yourwith organization to Systems. Objects O-O wrapper “Surrounds” the legacy system Receives messages from other objects Translates into what the legacy code understands COBOL ‘perform’, etc. May need to simulate keystrokes Translates responses into O-O messages May need to trap printer and screen output Rest of legacy system continues to perform as always Wrapper “Encapsulates” messy legacy details No-one need know when legacy rewritten in OOA/OOD/OOP Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 54 Chapter 15: Moving to Object-Oriented Techniques 15.8. Dealing with Legacy Systems. When we later redevelop the legacy system with objects, the wrapper is replaced by true objects, and the other systems needs no changes. 8 Copyright 2002 Flying Kiwi Productions Inc. flykiwi@home.com 55 Chapter 15: Moving to ObjectOriented Techniques 15.1. Is O-O Technology the Final Answer? 15.2. Is your Organization Ready 15.3. 15.4. 15.5. 15.6. 15.7. 15.8. for OO Techniques? Evolution or Revolution? Getting Started. Staffing and Training. The Pilot Project. Migration Problems. Dealing with Legacy Systems. 15.9. Testing and Quality Assurance. Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 56 Chapter 15: Moving to Object-Oriented Techniques 15.9. Testing and Quality Assurance. Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 57 Chapter 15: Moving to Object-Oriented Techniques 15.9. Testing and Quality Assurance. Consider this: All software fails in its first production run. Have you ever written a (non-trivial) program that worked first try? NORAD uses much software. The first production run for NORAD is World War Three We’re in trouble !! Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 58 Chapter 15: Moving to Object-Oriented Techniques 15.9. Testing and Quality Assurance. Mission-critical software applications require extremely high levels of quality. In general, quality means customer satisfaction So it must satisfy the users’ actual requirements. Note that the specs are merely our attempt to document those requirements, And the specs are not always right! Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 59 Chapter 15: Moving to Object-Oriented Techniques 15.9. Testing and Quality Assurance. Objects and Quality We test inside the class, Then from outside the interface. Use Cases are also test scenarios. Encapsulation reduces the number of connections among classes, reducing the number of test cases needed. Each class must have an automated test suite, implemented as a “tester class.” Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 60 Chapter 15: Moving to Object-Oriented Techniques 15.9. Testing and Quality Assurance. Objects and Quality High levels of reuse require repeated retesting. Each time a class is reused, its test suite, run in the new environment, becomes an acceptance test. Then we test it in relation to the new project. So each time we reuse it, we further test all its methods, uncovering some old errors, So each reuse will then benefit earlier programs that used this class. The stability and trustworthiness of the class are progressively improved. Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 61 Chapter 15: Moving to Object-Oriented Techniques 15.9. Testing and Quality Assurance. Objects and Quality Because of better traceability from Analysis to Design to Coding, Corrections to the requirements or design point us directly to the affected code, and vice-versa. There are no hidden pieces of code to change This is all of it, Encapsulation makes sure the changes have limited effect in other places in the code. There is reduced ripple effect from the changes. Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 62 Chapter 15: Moving to Object-Oriented Techniques 15.9. Testing and Quality Assurance. Class Libraries Effective reuse demands: Good class libraries, and Ways to find classes that will do the job for us. The browser that comes with a class library can be as important as the classes. Watch that responsibility for maintenance is clearly spelled out among the re-users. Watch naming conventions, And avoid having a multitude of classes all doing almost the same thing. Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 63 End of Chapter 15 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 64 End of Chapter 15 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 65 End of Chapter 15 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 66 End of Chapter 15 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 67 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 68 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 69 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 70 Copyright 8 2002 Flying Kiwi Productions Inc. flykiwi@home.com 71