• set of program development tools that enable programmers to develop software as a system of components that can be updated quickly and easily to adapt to new technologies, rad (computers)