180 likes | 295 Views
Lesson 3: Selecting an OO Technique. Software Engineering II. 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
E N D
Lesson 3:Selecting an OO Technique Software Engineering II
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
THE MYTH OF AN ULTIMATE SOFTWARE DEVELOPMENT TOOL This tool will solve all of your problems!!! Tool Vendor
Good tools implement good methods THE REALITY • Look first for methods, not tools • Select tools only after you select the appropriate method *%$#@!!!
OO METHODS START AT DIFFERENT PLACES Top Down Abstract Objects Middle Up Down Objects Data Bottom Up
EVALUATING OO METHODS - STRENGTHS & WEAKNESSES THE “BEST” OBJECT-ORIENTED METHOD WILL BE THE ONE THAT MOST CLOSELY MEETS YOUR PARTICULAR NEEDS FIDO
EVALUATING OO METHODS - LIFE CYCLE COVERAGE METHOD SHOULD COVER AT LEAST OORA AND OOD • 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
EVALUATING OO METHODS - CASE TOOL AVAILABILITY USEFUL TOOLS WILL SUPPORT AT LEAST THE NOTATION, CONSISTENCY CHECKING, AND A DATA DICTIONARY • 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
EVALUATING OO METHODS - TRAINING AVAILABILITY • 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
EVALUATING OO METHODS - “GURU” AVAILABILITY • 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
EVALUATING OO METHODS - DOMAIN CONSIDERATIONS • 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
EVALUATING OO METHODS - LANGUAGE CONSIDERATIONS • 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 METHOD - FIRST VS. LATER PROJECTS David Zeigler
SOME METHOD RECOMMENDATIONS • 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
SUMMARY • 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