Mobile software development is the process of creating software which can be used on a mobile device. It also refers to the creation of special web and applications for mobile devices. This is often done using a mobile simulator on a personal computer.
Mobile software is developed by using different platforms and programming languages based on the target mobile device. There are many different hardware components found in mobile devices so their applications are developed using different software architectures. It is also made more difficult because users of mobile applications have diverse preferences so extensive improvements to traditional system development methodologies are required in order to keep up with this demand. 
Most of the methodologies in use are based on the model-driven approach which has three different views of the application development process: (1) the application itself and its structure, (2) the business logic and (3) the graphical user interface of the application.