The component-based development model summary is used when software reuse is the objective. It involves researching available components, designing architecture to accommodate components, integrating and testing components to ensure functionality. This leads to cost and time savings.
The formal methods model uses rigorous mathematics to specify, develop and verify systems. It allows ambiguity and errors to be discovered through mathematical analysis, promising defect-free software. However, it is time-consuming, requires extensive training as developers lack mathematical background, and is difficult to communicate to non-technical customers.
The aspect-oriented software development process defines, specifies, designs and constructs aspects to address customer concerns that span architecture and affect functions, properties and systemic issues of complex systems.