What do the terms MDI (Multiple Document Interface) and SDI (Single Document Interfaces) mean in relation to the software interface? I read about it, but I am still confused about the terms, perhaps for lack of examples. What are these patterns?
What do the terms MDI (Multiple Document Interface) and SDI (Single Document Interfaces) mean in relation to the software interface? I read about it, but I am still confused about the terms, perhaps for lack of examples. What are these patterns?
Names already say it all. Multiple Document Interface (MDI) translates to Multiple Document Interface because it addresses a choice of interaction method in which an application allows the user to manipulate multiple "documents" in the same session (the same instance of the app). On the other hand, SDI (Single Document Interface) translates to Single Document Interface because it deals with the choice of interaction method in which the user can only handle a single "document" at a time (or for each instance of the application).
Classic examples are text editors. Traditional Windows Notepad, for example, only allows you to edit a file:
Ontheotherhand,Notepad++alreadyallowsyoutoeditseveralofthematthesametime,selectingtheassetfromtabs(oneforeachopenfile):
NotethatIhavepreviouslyusedtheword"document" in quotation marks. The reason is that such a "document" can be anything but a text file. A music editing application that uses an SDI approach would allow you to edit only one song at a time, while another using the MDI approach would allow you to edit several, probably alternating between them through internal tabs or windows. In fact, there are several design patterns for MDI applications, and the tabs are just one of them. Previously used internal mini windows in the "parent" window (the main application):
Buttodayitismorecommontouse"dockable" tabs or windows (which can be "docked" in pre-set or moved to "float" as separate windows).
When a designer considers using one or another interaction approach, he or she considers the use that users will make of such "documents". The main question is:
Will the user need to simultaneously manipulate more than one file?
If the answer is yes, the option for an MDI approach may be the right one. I say may because nothing prevents you from allowing users to open more than one instance of the same application and edit each "document" in a separate instance. In this case, an additional important question is:
What will be the interactions between "documents" that the user will need to do?
Because if the user needs to interact between documents quite often (for example, looking at something that is in one to decide how to change the other, or copy and paste, etc.), it can make much more sense from the point of view of usability you provide an MDI interface.