- Firstly, complexity must be minimized as much as possible from the software design. This makes it much easier and quicker to develop as well as maintain and upgrade. To further ensure this, using loose coupling is required. This means that the codes are not dependant on others to run and/or work. By removing any serious complexity also allows the software to be easily tested.
- Portability will allow your product to be used elsewhere and by other environments. The best way to allow this is to standardize your codes so that other programmers and developers can use it without editing it thus making it more complex. Having and understanding of the programming platforms makes this easier to develop and design the codes to be flexible.
- Security is a top priority in software design. This ensures safety against malware and unauthorized access. Guaranteeing security will prevent damage in the design process and will make upgrading, editing and maintaining the software easier.
- Conciseness is a crucial element in software designing. This is highly important when taking into consideration memory capacity to prevent unused and waste information. Extensibility, such as plug-ins, fits into this section as it means you can add or remove elements and parts to the program.
- Reliability
- Efficiency
- Usability
- Consistency
- Completeness