A design pattern where UIs are built from reusable, self-contained pieces (components) that can be combined to create larger interfaces.
Code generation, debugging, explanation, and refactoring