Answer:
MVC (Model View Controller) architecture pattern is an approach of designing software by decomposing the software into three parts such as input, processing and output architecture to the GUI domain. The software product is decomposed into
• Model- corresponds to processing
• View- corresponds to Output
• Controller- corresponds to Input
This allows each of the components to function and to change independently of the other and hence increases reusability. MVC architecture pattern is an instance of Separation of Concern from Chapter 5.
Separation of concern- It is an approach in which a software product is broken into components that do not overlap in there functionality. After doing separation of concern-
• Regression faults are minimized.
• Change in the functionality of one component do not change the functionality of the other components
• These kinds of components which have achieved separation of Concern can be efficiently reused in future products. High cohesion and low coupling between the modules is important feature of separation of concerns.
• Information hiding and encapsulation are another instance of separation of concern.
• Because of all these features there is very less interaction between the modules which have separation of concern.
Answer:
Make sure that all the modules have functional or informational cohesion and also data coupling. Because, modules with high cohesion and low coupling are suitable for reusability.
• Reuse can be done by using standard communications protocols.
• By using standard security protocols.
• Use object oriented techniques. Because, the modules can be reused in different products.
• Design the product by giving detailed explanation of the modules for reusability.
• Give the modules a detailed documentation carefully
• Design the product by levels of Abstraction.
Answer:
The fault can be detected during the reuse phase which means that if the Ariane 5 software reuses the Ariane 4 alignment software then the fault can be detected.
• Or else the fault can also be detected during the testing phase where testing is an essential phase in software life cycle.
• On the other hand, the Ariane crash also prevented using assert pragma during testing and in implementation phase.