Sunday, March 21, 2010

Important Considerations for Designing Robust Software

Following approach should be taken to come up with a robust computer software system:-
1. Selection of appropriate software development lifecycle process should be the start point for the group responsible for developing the software which would help them in mitigating the risk.

2. Requirement gathering should be the next important step which would help the software developers get a clear idea about the system usage , memory allocation and selection of proper shareware based on the number of users which would have logged into the system simultaneously. This would also help them in selecting a proper database and come up with a robust backup and restore mechanism with minimum downtime. Requirement gathering should take the inputs from the stakeholders and actual users who would also help in coming up with the exact hardware needed to create a robust system.

3. Selecting a proper software architecture and correct software design is another important step that goes a long way in preventing single point of failure. Implementing an appropriate network algorithm will help in saving lots of time, effort and cost.

4. Single point of failures can be avoided by coming up with software system that is:-
a. Less complex and is easier to understand and rectify the problem in case of failure
b. Makes all critical components redundant with a robust backup and recovery mechanism to transfer control to a proper functioning unit in case of any failure
c. Diversification that is similar to redundancy and helps in doubling the functionality by designing it in two different manner so that in case of failure of one other is available
d. Transparency in code with proper comments and informative user documentation which can help in speedy rectification of any problem

No comments:

Post a Comment