Software design is a process of problem-solving and planning for a software solution. There are many aspects to consider in the design of a piece of software. The importance of each should reflect the goals the software is trying to achieve. Some of these aspects are:
- Extensibility - New capabilities can be added to the software without major changes to the underlying architecture.
- Robustness - The software is able to operate under stress or tolerate unpredictable or invalid input. For example, it can be designed with resilience to low memory conditions.
- Reliability - The software is able to perform a required function under stated conditions for a specified period of time.
- Fault-tolerance - The software is resistant to and able to recover from component failure.
- Security - The software is able to withstand hostile acts and influences.
- Maintainability - The software can be restored to a specified condition within a specified period of time. For example, virus software may include the ability to periodically receive virus definition updates in order to maintain the software's effectiveness.
- Compatibility - The software is able to operate with other products that are designed for interoperability with another product. For example, a piece of software may be backward-compatible with an older version of itself.
- Modularity - the resulting software comprises of well defined, independent components. That leads to better maintainability. The components could be then implemented and tested in isolation before being integrated to form a desired software system. This allows division of work in a software development project.
- Reuse - the modular components designed should capture the essence of the functionality expected out of them and no more or less. This single-minded purpose render the components reusable wherever there are similar needs in other designs.
Sehelsoft can help you to find your software solutions
Reference: Answers.com
No comments:
Post a Comment