1.Helps insure stability when refactoring the application
2.Allows for the end user to manipulate data in real time
3.Connect components to an underlying data model
4.Enables the user to create data tables
Answer:3