Modelling is the design of software applications before implementation. Using a model, those responsible for a software development project’s success can make sure that the business logic is complete and correct, end-user needs are met, and program design supports requirements for scalability, robustness, security, extendibility, and other characteristics, before implementation makes changes difficult and expensive to make.