ASSIGNMENT 2Instruction: Answer all questions1.(a) The principle of component independence means that it ought to be possible to replace one component with another that is implemented in a completely different way. Using an example, explain how such component replacement could have undesired consequences and may lead to system failure.(b)Explain why it is difficult to validate a reusable component without the component source code. In what ways would a formal component specification simplify the problems of validation?(c)It has been suggested that an independent certification authority should be established. Vendors would submit their components to this authority, which would validate that the component was trustworthy. What would be the advantages and disadvantages of such a certification authority?2.(a) What do you understand by ‘scalability’? Discuss the differences between ‘scaling up’ and ‘scaling out’ and explain when these different approaches to scalability may be used.(b)Explain why distributed software systems are more complex than centralized software systems where all of the system functionality is implemented on a single computer.(c)Using an example of a remote procedure call, explain how middleware coordinates the interaction of computers in a distributed system.3.(a) What is the fundamental difference between a fat-client and a thin-client approach to client–server systems architectures?(b)Giving reasons for your answer, suggest two important types of applications where you would not recommend the use of service-oriented architecture.(c)Suggest how you could use aspects to simplify the debugging of programs.4.(a) Explain why incremental development is the most effective approach for developing business software systems. Why is this model less appropriate for real-time systems engineering?(b)You are a software engineering manager and your team proposes that model-driven engineering should be used to develop a new system. What factors should you take into account when deciding whether or not to introduce this new approach to software development?(c)Giving reasons for your answer based on the type of system being developed, suggest the most appropriate generic software process model that might be used as a basis for managing the development of the following systems:
a.A system to control anti-lock braking in a car.
b.A virtual reality system to support software maintenance.
c.An interactive travel planning system that helps users plan journeys with the lowest environmental impact.