Selecting An OO Technique - Page P1-L3-1 MEF-TRANSITION-P1-L3-1 Dr. M.E. Fayad Lesson 3: Selecting an OO Technique SoftwareEngineeringII
Selecting An OO Technique - Page P1-L3-2 MEF-TRANSITION-P1-L3-2 Dr. M.E. Fayad Lesson Objectives Understand what is provided by the technique Learn why there is more than one software development method Understand the most important technique selection criteria Learn a complete process for selecting an OO technique Understand how later OO projects give you more flexibility in selecting an OO technique Explore experiences and Lessons Learned
Selecting An OO Technique - Page P1-L3-3 MEF-TRANSITION-P1-L3-3 Dr. M.E. Fayad M ETHOD P ROVIDES F OUNDATION F OR A LL S OFTWARE E NGINEERING
Selecting An OO Technique - Page P1-L3-4 MEF-TRANSITION-P1-L3-4 Dr. M.E. Fayad T HE M YTH O F T HE S INGLE S OFTWARE D EVELOPMENT M ETHOD
Selecting An OO Technique - Page P1-L3-5 MEF-TRANSITION-P1-L3-5 Dr. M.E. Fayad T HE M YTH O F A N U LTIMATE S OFTWARE D EVELOPMENT T OOL Tool Vendor This tool will solve all of your problems!!!
Selecting An OO Technique - Page P1-L3-6 MEF-TRANSITION-P1-L3-6 Dr. M.E. Fayad T HE R EALITY Look first for methods, not tools Select tools only after you select the appropriate method Look first for methods, not tools Select tools only after you select the appropriate method Good tools implement good methods
Selecting An OO Technique - Page P1-L3-7 MEF-TRANSITION-P1-L3-7 Dr. M.E. Fayad H OW M ANY OO M ETHODS E XIST ?
Selecting An OO Technique - Page P1-L3-8 MEF-TRANSITION-P1-L3-8 Dr. M.E. Fayad OO M ETHODS S TART A T D IFFERENT P LACES Top Down Bottom Up Middle Up Down Abstract Objects Data Objects
Selecting An OO Technique - Page P1-L3-9 MEF-TRANSITION-P1-L3-9 Dr. M.E. Fayad E VALUATING OO M ETHODS - S TRENGTHS & W EAKNESSES THE “BEST” OBJECT-ORIENTED METHOD WILL BE THE ONE THAT MOST CLOSELY MEETS YOUR PARTICULAR NEEDS FIDO
Selecting An OO Technique - Page P1-L3-10 MEF-TRANSITION-P1-L3-10 Dr. M.E. Fayad E VALUATING OO M ETHODS - L IFE C YCLE C OVERAGE Why use OO to cover as much of the software life-cycle as possible? –Prevent paradigm shifts –Avoid development of customized solutions –CASE and I-CASE availability & interoperability What to know before selecting a method: –All existing methods lack full life-cycle coverage –Most important activity is Object-Oriented Requirements Analysis (OORA) –Beware of methods that cover only Object-Oriented Design METHOD SHOULD COVER AT LEAST OORA AND OOD
Selecting An OO Technique - Page P1-L3-11 MEF-TRANSITION-P1-L3-11 Dr. M.E. Fayad E VALUATING OO M ETHODS - CASE T OOL A VAILABILITY Why have CASE tool support? –Enhances productivity and rigorous adherence to the method –Supports adherence to the method What to look for in a CASE tool –Accurately supports notation »A simple drawing package is often sufficient for small projects –Consistency Checking (especially for large projects) –Data Dictionaries »Multiple dictionaries support the OO principle of information hiding –“Automated” documentation generators ( a misnomer) often produce documents with poor visual quality USEFUL TOOLS WILL SUPPORT AT LEAST THE NOTATION, CONSISTENCY CHECKING, AND A DATA DICTIONARY
Selecting An OO Technique - Page P1-L3-12 MEF-TRANSITION-P1-L3-12 Dr. M.E. Fayad E VALUATING OO M ETHODS - T RAINING A VAILABILITY Why train? –Reinforces the culture change –All methods require practical experience to develop expertise –Learn and ask questions from an “expert” –Get off to a fast start (remember - requirements activity is most critical) What to look for when selecting training? –Train the specific method you have selected (not just OO training) TRAINING HELPS GET YOUR FIRST OO DEVELOPMENT OFF TO A QUICK START
Selecting An OO Technique - Page P1-L3-13 MEF-TRANSITION-P1-L3-13 Dr. M.E. Fayad E VALUATING OO M ETHODS - “G URU ” A VAILABILITY Why have a “guru?” –Focal point for method –Works with both engineers and non-engineers –Drives method uniformity and resolves issues –Adapts methods to CASE tools What to look for in a guru –Communication skills –Software and method experience –If guru not available, then develop one METHOD “GURUS” SAVE SCHEDULE AND BUDGET BY PROVIDING EXPERT ASSISTANCE DURING THE TRANSITION PERIOD
Selecting An OO Technique - Page P1-L3-14 MEF-TRANSITION-P1-L3-14 Dr. M.E. Fayad E VALUATING OO M ETHODS - D OMAIN C ONSIDERATIONS Why consider the domain? –Selecting a method that fits your domain will make your software development easier What to consider –Requirements analysis intensive –Database intensive –Real-Time requirements –Highly procedural or computational –Size of project METHOD DIFFERENCES DRIVE SUITABILITY FOR A PARTICULAR SOFTWARE DEVELOPMENT DOMAIN
Selecting An OO Technique - Page P1-L3-15 MEF-TRANSITION-P1-L3-15 Dr. M.E. Fayad E VALUATING OO M ETHODS - L ANGUAGE C ONSIDERATIONS Why consider the language? –Selecting a method that translates easily to your software development language will prevent the need for language workarounds What to consider –Inheritance –Multiple inheritance –Encapsulation METHOD DIFFERENCES DRIVE SUITABILITY FOR A PARTICULAR SOFTWARE DEVELOPMENT LANGUAGE
Selecting An OO Technique - Page P1-L3-16 MEF-TRANSITION-P1-L3-16 Dr. M.E. Fayad S ELECTING A N OO M ETHOD - F IRST V S. L ATER P ROJECTS David Zeigler
Selecting An OO Technique - Page P1-L3-17 MEF-TRANSITION-P1-L3-17 Dr. M.E. Fayad S OME M ETHOD R ECOMMENDATIONS Use only popular methods - tool and training availability For projects where the problem is well understood, use a bottom up or middle up down method –Coad-Yourdon –Shlaer-Mellor –Rumbaugh For projects where the problem needs significant analysis, use a top down method –Colbert –Berard –Firesmith
Selecting An OO Technique - Page P1-L3-18 MEF-TRANSITION-P1-L3-18 Dr. M.E. Fayad S UMMARY Instituting an OO method requires a culture change Your method selection will impact virtually all of your management processes A single method is insufficient for all applications There are many published OO methods Select methods before tools CASE tools automate the method