Automated software evolution, refinement, and refactoring

XML representation of object-oriented source code and tool platform using it

Patterns, frameworks, and architecture for object-oriented/component software

Active (adaptive, autonomous, easy-customized) software components

Source code/component search

Program analysis and visualization

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.