Abstract
Defined by the ISO as "The extent to which a product can be used by specified users to achieve specified goals with effectiveness, efficiency, and satisfaction in a specified context of use", Usability came to light when it slowly turned out to be the sole reason for the failure of several software projects, both big and small. Though simple in definition, it remains ambiguous in practice since there is no way to measure the human mind and perception. Studies have shown and researches have proved that Usability is one of the key factors for a product to thrive and survive in the market. The reason for this is that Usability that was once restricted to being a measure of how efficient the User Interface of a product is, has over the years, grown beyond those shackles and now stands associated with not just the interface but the functionalities of a product as well. This new face of Usability brings with it the need to reconsider the method in which Usability was built into a project. Usability was often discussed as a non-functional requirement during the Requirements Gathering phase and then shelved until it was brought out while designing the interface for the product. But today, the whole idea of Usability has changed; it does not just focus on the final interface, rather on the entire product. Due to this, it becomes essential for developers to consider the idea of “ease-of-use” while designing the system itself. This project thus proposes a new approach of incorporating the mental model of a user, as a factor that needs to be considered while working through the Requirements and Design phases. I intend to contribute an approach/ a model, which would be supported by a real time example, to prove the same. In addition to it, I would like to come up with a prototype of an automated tool that would implement the ideas proposed by my model. It would help us rethink the generic method of designing, by giving us a new approach of how to come up with a design that takes the user's mental model of what they do and what they need to do and translates that into the design of the software. The entire focus of this approach would be to keep the ultimate end user in mind while not just gathering requirements or creating an interface but instead during the other phases of the project development as well.