<Li> 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 . </Li> <Li> Extensibility - New capabilities can be added to the software without major changes to the underlying architecture . </Li> <Li> Modularity - the resulting software comprises well defined, independent components which 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 . </Li> <Li> Fault - tolerance - The software is resistant to and able to recover from component failure . </Li>

Correct sequence for the steps in detail design