Software UI Design
Author : DAOUDI Samir | Context : MSc Software Engineering – Object Oriented Analysis |
The user interface is the final representation of our systems, and is the only view users and customers can have. A simple interface and easy to use windows and controls hide the whole complexity and internal hard implementation of the system. I personally think that the user interface is the last big encapsulation used in the system. We’ve seen during last weeks the definition of encapsulation (applied to objects) and it was stated that encapsulation is used to hide the complexity of objects and providing simple methods (with ins and outs) that can be directly be used without any care about how tasks are being done internally. The user interface is similar, customers and end users are not supposed to understand how the inner process is being implemented. In general, they just want the system to perform what they expect simply and efficiency. Developers and architects should remember that the end users are not smart IT guys and they should consider them with basic knowledge, for this reason the user interfaces should be very simple and nice looking (Spolsky ,2001).
Why should we consider patterns in design?
Thinking that user interfaces design is only a task for some graphical experts is wrong. We are not dealing with an art or paintings; the most important factor to consider in addition to the nice looking interface is the usability. This is the reason why even in user interfaces we might need to use some patterns. Some of the interfaces issues (e.g. usability and accessibility) are recurrent and some important patterns have been designed and enhanced. As mentioned by Griffiths and Pemberton “There are few universally acclaimed design solutions and this may mean that it will be easier to identify problems than to describe the solutions that address them.” (Griffiths&Pemberton , Unknown).
Designing the best and easier interface can be a real problem and it has been given more complexity with the appearance of different devices, browsers, Operating systems…etc. The application or web site should be tested on different platforms, browsers, resolutions and devices. This makes the task harder for the developers who are supposed to satisfy all possible users.
The most important question to ask here is whether we should go for design patterns and pattern languages for user interfaces, or just a set of guidelines and best practices can be enough?
The design patterns are solutions for common, recurrent and complex issues. So the question to ask here is whether the user interface should be considered as an issue or problems or just a question of better and most efficient interface(Galitz ,2007)? My personal opinion is that the user interface does not require a very complex pattern language, as it is not a real problem. A set of best practices and guidelines for optimum user interface can be enough.
I had a personal experience in this scenario, where we developed a web application using PHP. The interface was designed using CSS JavaScript and JQuery. We all were using Mac devices so the tests were performed on Safari and Firefox Browsers. And everything goes fine until some developers tried the beta system using Internet Explorer; we’ve noticed that many contextual menus and shortcuts do not render correctly, in addition to different gradient backgrounds that were not compatible on IE. This is one of the issues that web developers and designers should be aware of and for which they should be prepared. I personally do not think that for this, we might require a design pattern; but a set of guidelines should be enough as standards for web application developments and tests.
References:
– Richard N Griffiths, Lyn Pemberton (Unknonw). Don’t Write Guidelines Write Patterns!. University of Brighton, Brighton, UK. Available online at : http://www.it.bton.ac.uk/staff/lp22/guidelinesdraft.html
– Joel Spolsky (2001). User Interface Design for Programmers. ISBN:1-893115-94-1.
– Wilbert O. Galitz (2007). The Essential Guide to User Interface Design: An Introduction to GUI Design principles and technics. ISBN: 978-0-470-05342-3.