Software engineering is aimed at reducing the cost of developing and using software. Object-oriented software development (OOSD) and component-based software development (CBSD) is a key that results in the improvement of productivity and maintainability, and are expected to be essential, common technologies of software. We are exploring novel, fundamental ways in which software creation and change can be more easy and rapid, ideally automated, in OOSD and CBSD.