Software entities like: Class Libraries Functions should be open for extension, but closed for modification. Done to avoid single changes causing a cascade of changes to dependent modules. Examples