QUESTION 4 (a) Consider the development of a video player app for a mobile phone. The (18 marks) phone manufacturer has provided a library for playing video on the phone. The library provides the following class to control play back of a video. class VideoplaybackEngine ( public statia void void loadvideo (VideoData videoData) () void play() [ ) ) The provided library requires the video data to be provided in a specific way defined by the interface v ideobata. The playback library will constantly call the operations defined by this interface to display video frames on screen. interface videoData f publie Videopreperties getVideoproperties () : public VideoFrane getNextVideoFrane () : 1 Now assume that you already have some code which reads in many different kinds of video files (for example .wma, ,mp4, avi, etc.). It makes sense to reuse this code-you cannot change it. The relevant class is: class VideoFileReader ( public NameValueList getVideoAttributes () : public RGaData getNextFrame () z (i) Briefly explain the key features of a design pattern. (ii) Use the Adapter design pattern to write an adapter class and show how to use the videoPlaybackEngine to load a video that is being provided by a videorileReader object using an adapter. (b) Initial estimation of tasks for a software project has been completed and (15 marks) totals 55 story points. There will be 5 developers working on the project and the initial project velocity for the team is 3 story points per week. (i) Briefly explain the meaning of the terms story point and project velocity. (ii) Which iteration duration, 2 or 3 weeks, would be best for this project? Support your answer. Use the best iteration duration you identified in (ii) for the remaining parts of this question. (iii) How many weeks will the project take until final release (assuming the project velocity is maintained)? (iv) After 18 weeks, the project team has completed 15 story points fewer than were initially estimated. What is the revised project velocity? Show your workings. (v) How does the revised project velocity affect the project? Provide all options and use concrete numbers in your answer wherever possible