Virtual University of Pakistan Study forum !
A software house received a project to develop an application for military use. Most important part of application is its flexibility to accommodate time to time change in requirements. Main objective of application is to keep record and activities for military vehicles which are land and air based.
Land vehicles include tanks (can fire from its gun, provide protection to its crew, can move over any surface), scout cars (provide off road mobility, can fire from machine guns) andmilitary trucks (transport cargos).
Air vehicles have two categories: One which can fly without pilot i-e unmanned aerial vehicle (UAV) and the others operated by pilots. UAV include highly sophisticated drones (bombing, remotely controlled flight or through embedded software). Air vehicles operated by pilots are fighting falcon (air-air combat role, can attack missile air- surface), helicopters(transportation, hover and land over any surface) and airplanes (transportation of goods and people, land over run ways).
Once the project was completed, the project manager came in with the new requirements for customized vehicle that has the properties of tanks and can transport cargo and having a control system as like of drones which can be operated with or without a driver but cannot fly.
As a developer, while implementing changes in project with new requirements which programming technique from composition and inheritance you will prefer to use and why? Justify your choice with solid reasons....................................