According to usability.gov:
User Interface (UI) Design focuses on anticipating what users might need to do and ensuring that the interface has elements that are easy to access, understand, and use to facilitate those actions.
In other words, making sure users are able to get stuff done with whatever software you make. There are many ways to design interfaces and one of the most commonly known ones is designing a Graphical User Interface, which is a process that involves User Interface Design.
Successful user interfaces always tend to be consistent and predictable. These qualities allow users to not have to learn UI’s from scratch for every new piece of software. The main categories for UI elements are (also from usability.gov):
- Input: How the user will manage to communicate with the program. In many cases it may be text, but it also includes how you can make a file a to give the program instructions.
- Navigation: Elements that allow you to get somewhere inside the program. They aren’t what the user ultimately wants, but are necessary for him to get there.
- Information: How information is communicated to the user. Most of the time this is done by text, but images can also show information.. They may change depending on how much info should be given to an user without being overwhelming.
- Containers: Organization elements typically used to store more important information inside.