The most common use of mockups in
software development is to create user interfaces that show the end user what the software will look like without having to build the software or the underlying functionality. Software UI mockups can range from very simple hand drawn screen layouts, through realistic bitmaps, to semi functional user interfaces developed in a software development tool. Mockups are often used to create
unit tests - there they are usually called
mock objects. The main reason to create such mockups is to be able to test one part of a software system (a unit) without having to use dependent modules. The function of these dependencies is then "faked" using mock objects. This is especially important if the functions that are simulated like this are difficult to obtain (for example because it involves complex computation) or if the result is non-deterministic, such as the readout of a sensor. A common style of software design is
Service-oriented architecture (SOA), where many components communicate via
protocols such as
HTTP.
Service virtualization and API mocks and simulators are examples of implementations of mockups or so called over-the-wire
test doubles in
software systems that are modelling dependent
components or
microservices in SOA environments. Mockup software can also be used for micro level evaluation, for example to check a single function, and derive results from the tests to enhance the products power and usability on the whole.
Systems engineering Mockups,
wireframes and prototypes are not so cleanly distinguished in
software and
systems engineering, where mockups are a way of designing
user interfaces on paper or in computer images. A software mockup will thus look like the real thing, but will not do useful work beyond what the user sees. A software prototype, on the other hand, will look and work just like the real thing. In many cases it is best to design or prototype the user interface before
source code is written or hardware is built, to avoid having to go back and make expensive changes. Early layouts of a World Wide Web site or pages are often called
mockups. A large selection of
proprietary or
open-source software tools are available for this purpose. == Architecture ==