Object Oriented Software Engineering   View all facts   Glossary   Help
subject > practice
Next subjectpriority    Upsubject    Previous subjectport   

practice comparison table
Subject avoid by slow make be be not is part of is a synonym of is a subtopic of occur control avoid have disadvantage have purpose reduce prevent improve helps has definition use allow to have risks practise allow
duplication of codecreating a separate method that has the common code, and calling it from the original location and any other needed locations   a kind of reuse cloningProgramming Style Guidelines  because it increases the total volume of code and means that if you change the code in one place, then you might forget to change the code in the other placeswhen there are two or more occurrences of the same or similar code in the system, any changes made (e.g. to fix defects) will have to be made in all clones           
encapsulation       2.7 - Concepts that Define Object Orientation        to achieve information hidingCreating a module to contain some algorithm or data structure, thus hiding its details behind the module's interface    changes to code to be more easily made since one can be confident that 'outsiders' are not relying on too many details
information hiding       9.2 - Principles Leading to Good Design         Hiding details so as to reduce complexity     
locking performance since it takes a lot of extra work to manipulate and check the locks     10.5 - Defects in Timing and Co-Ordination: Deadlock, Livelocks and Critical Races      critical races  A mechanism for reserving a resource so as to avoid inappropriate concurrent accessa mechanism such as semaphores    
nesting       Programming Style Guidelines           too many levels   
overriding       2.6 - The Effect of Inheritance Hierarchies on Polymorphism and Variable Declarations         The situation where a method local to a class is used in place of a method that otherwise would have been inherited     
privacy       Programming Style Guidelines       encapsulation by ensuring that only programmers working inside a class (or inside a package) can use all of its facilities      changes to code to be more easily made since one can be confident that 'outsiders' are not relying on too many details
restricting access  designs more flexiblegood encapsulation The Basics of Java access to methods, instance variables and class variables   coupling         
reuse   one of the keys to successful software developmentas extensive in software engineering projects as might be desirable  3.2 - Incorporating Reusability and Reuse Into Software Engineeringif software developers reuse existing good-quality components, and also contribute to reusable components that others can use   to reduce the large cost associated with developing the same thing over and over again because of a vicious circle: Developers do not develop high quality reusable components, so there is nothing to reuse. Since there is nothing to reuse, software developers take so much time to develop applications that they lack time to invest in reusable frameworks or libraries  The practice of using the same code or design in more than one place   because
  • developing anything reusable is seen as not directly benefiting the current customer
  • If a developer has painstakingly developed a high-quality reusable component, but management only rewards the efforts of people who create the more visible 'final product', then that developer will be reluctant to spend time on reusable components in the future
  • Efforts at creating reusable software are often done in a hurry and without enough attention to quality. People thus lose confidence in the resulting components, and in the concepts of reuse and reusability
 
synchronization       The Basics of Java    to avoid problems that can arise when two threads can both modify the same object at the same time    A mechanism to guarantee that only one thread can access an object at a time     
testing strategy       10.2 - Effective and Efficient Testing               

Next subjectpriority    Upsubject    Previous subjectport