Application design is a process of requirements gathering, systems analysis and planning for a new application. After the business objectives and requirements for the application are known, software designers will commence the application design process. The application design process includes both a high level Architecture and Wireline views of the application. The application design process also includes a low-level view of the application, including low-level component and algorithm specifications.
The software requirements analysis (SRA) step of the software development process produces software engineering specifications. For a user centric SaaS application, the specifications may also include a user experience desin work or a storyboard to help visualize the proposed Application. Application design work may also lead to the production of flow diagrams and sequence diagrams to express the flow of the application. An object model an entity-relation are often used to describe objects and data structure within the application.
An application design may be platform-independent or platform-specific, depending on the needs of the application.
Application design can be a complex process, involving many aspects, some of which can be in conflict with each other. In application design, the skill is in ballancing all of the issues in order to achieve a good balance between all of the issues involve.
Some of the issues to be considered in application design include; Architecture, Functionality, Useability, Scalability, Performance, Security, Compatibility, Extensibility, Availability, Fault-Tolerance, Maintainability, Modularity etc.
The application design documentation should be reviewed before application development takes place. The review process may be augmented by a prototype. Reviewing an application design prior to application development enables a multidisciplinary team of designers, subject matter experts and developers to enaure that the software is both useful and technically sound.