User interface (UI) design is an important aspect of creating software for use in a musical context. It is how your user––which could even be yourself––will interact with your software. Generally speaking, the user must use some kind of physical interface (i.e. "hardware") to interact with the software. In most cases the physical input or hardware devices are likely to be limited to a keyboard and mouse (or trackpad these days). However, affordable and standardized electronic musical equipment is widely available and often used in performance and recording situations.
There are several things to consider when designing a UI in general. For the most part, you will want your interface to be easy to navigate and efficient while maintaining a maximum degree of control over the program. That means that you have to 1) be able to identify which aspects of the software are important to control and/or provide visual feedback, 2) develop a sense of design and style, using space and layout to enhance your UI, and 3) know who is going to be using your software.
In a musical context, you will want to ask specific questions about how your software is being used in order to design a useful UI. Are you making a program that anyone should be able to use with a simple set of instructions? Are you instead designing an "instrument" that needs to be practiced and learned in order to perform with? Does your software rely on using the mouse and keyboard to interact with a set of virtual GUIs or are you using external hardware that ha its own set of physical knobs, buttons, sliders, etc?
You will want to consider the "role" of your program. Is it meant to record and manipulate sound to later be edited? Is it meant to be "performed" with in realtime?
Read the following articles on designing UIs and focus on what other specific questions would come up in designing software specifically for a musical context.