Tend to agree with most, except the answer to c.
Reading your answer, it seems to appear that testing is completed prior to construction (coding), and that the black-box testing is applied to the model to ensure correctness prior to the construction/coding phase. Well, thats what I understood from your answer anyway. However, testing applies to constructed code, which is the purpose for intergration testing as a whole: build the software from the constructed units, but while building, test each new pieces that are being added, to ensure that they built software still functions correctly(ie: regression testing), and that the interaction between the already constructed part and the newly added part, still function correctly.
Since black-box testing is completed later in the testing phase, and primarily tests the behaviour of the constructed components (for example: that the correct data is obtained from the correct table from some database, and that if not, the user is informed appropriately and the software handles the error correctly and what not), then software would need to have been constructed already.
Then again, reading your answer again, it seems perhaps like you are referring to the use of the use-cases obtained from the analysis and modelling phases. The uses cases though are used as inputs to derive test cases for use during black-box testing.
Anyway, I failed this subject before, so I could be wrong
But anyway, my simple, 2 mark answer would be that it ensure that software functions correctly as a whole and that black-box testing is useful during validation testing to ensure that the software performs as reasonably expected by the customer.
Thats my 2cents (or 2 mark answer) anyway