Final Exam - Examen corrige

En cas d'échec à la première session, l'étudiant se présente aux examens ....
Nous l'avons utilisé pour quelques Design Pattern et pour la génération de code.

Part of the document


|Final Exam | |Examen final |
|EEE321B Object-oriented techniques | |GEF321B Techniques de logiciel |
|18 April 2009 | |orienté objets |
| | |18 avril 2009 |
|Examiner: Dr. G. Scott Knight | | |
| | |Examinateur: Capitaine S.C. Cayouette|
| | | |
|Instructions: | |Instructions: |
| | | |
|Do not turn this page until | |Ne tournez pas cette page avant |
|instructed to do so. | |l'instruction de l'examinateur. |
| | | |
|This test is closed book, out of a | |Cet examen est livre fermé, sur un |
|total of 100 marks. | |total de 100 notes. |
| | | |
|Questions have the values indicated | |Les questions ont les valeurs |
|in the centre column. | |indiquées à la colonne centrale. |
| | | |
|You have three hours to complete the | |Vous avez trois heures pour compléter|
|test. | |l'examen. |
| | | |
| | |Répondez à toutes les questions dans |
|Answer all questions in the test | |le livret. |
|booklet. | | |
| | |Si une question ne vous semble pas |
| | |claire, faites une supposition |
|If a question seems unclear, make a | |raisonnable, documentez-la, et |
|reasonable assumption, document it, | |répondez à la question prenant compte|
|and answer the question as though the| |de la supposition. L'examinateur ne |
|assumption were correct. The examiner| |clarifiera pas le sens des questions |
|will not clarify the meaning of | |pendant l'examen. |
|questions during the exam. | | |
| | |Bonne chance! |
|Good luck! | | | |1. Short answer [total of 15] | |1. Réponses courtes [total de 15] |
| | | |
|a. What is used as the primary basis |[3] |a. Quelle est la base primaire pour |
|for decomposition in OO (i.e. how do | |la décomposition en conception |
|we decide what makes a good | |orientée objets? (C'est-à-dire, |
|module/class)? | |comment est-ce qu'on détermine ce qui|
| | |fait une bonne classe?) |
| |[3] | |
|b. Consider the method call in the | |b. Considérez l'appel à la méthode |
|following line of Java code: | |dans la ligne de code Java suivante :|
| | | |
|variable.method(param1, param2); | | |
| | |variable.methode(param1, param2); |
|What are the necessary conditions in | | |
|Java for this method call to be an | |Quelles sont les conditions |
|example of parametric polymorphism? | |nécessaires en Java pour que l'appel |
|Be precise. |[3] |soit un exemple de polymorphisme |
| | |paramétrique? Soyez précis. |
|c. Describe the goals, products, and | | |
|process of the Elaboration Phase of | |c. Donnez une description des buts, |
|the RUP Macro Process. |[3] |des produits et du processus de la |
| | |phase d'Élaboration du macro |
| | |processus de RUP. |
|d. What are the advantages of | | |
|dividing a large system into |[3] |d. Quels sont les avantages de la |
|packages, both from a modeling | |division d'un grand système en |
|perspective and from a programming | |paquets, du point de vue de la |
|perspective? | |modélisation et aussi de la |
| | |programmation? |
|e. Briefly explain the roles of use | | |
|cases and collaboration diagrams in | |e. Expliquez de façon brève les rôles|
|the UML modelling process. What is | |des cas d'utilisation et des |
|the relationship between use cases | |diagrammes de collaboration dans le |
|and collaboration diagrams? | |processus de modélisation avec UML. |
| | |Quelle est la relation entre les cas |
| | |d'utilisation et les diagrammes de |
| | |collaboration? | |2. Design and Implementation [total| |2. Représentations de conception |
|of 25] | |[total de 25] |
| | | |
|For this question, refer to the | |Pour cette question, référez-vous aux|
|following Java code segments provided| |segments de code Java fournis à la |
|at the end of this exam: | |fin de cet examen : |
|SimulationScheduler.java | |SimulationScheduler.java |
|SimClock.java | |SimClock.java |
|SimulationObject.java | |SimulationObject.java |
|Ship.java | |Ship.java |
|a. Using the Java code segments |[7] |a. En utilisant les segments de code |
|provided (four classes) for a Naval | |Java fournis (quatre classes) pour un|
|Warfare Simulator System draw the | |système simulation de guerre navale, |
|class diagram that corresponds to the| |dessinez un diagramme de classe |
|code. Provide as much information as | |correspondant au code. Fournissez le |
|you can, including but not limited to| |plus d'information possible, incluant|
|classes (including those referred to | |mais ne se limitant pas aux classes |
|in the code segments, but which may | |(incluant celles référencées dans le |
|not have been provided in the exam), | |segment de code qui ne sont pas |
|attributes, methods, class | |fournies dans l'examen), attributs, |
|relationships and dependencies, | |méthodes, relations entre les |
|type-information, access control | |classes, dépendances, types et |
|information. | |modificateurs de contrôle d'accès. |
|b. Note that the SimulationScheduler | |b. Notez que le SimulationScheduler |
|is an Observable (i.e. Concrete | |est le sujet concret du motif |
|Subject in the Observer Pattern). | |Observable. |
|Provide extensions to your class | |Fournissez une extension au diagramme|
|diagram that allow two views of the | |de classe qui permet deux vues de |
|simulation state (a simulation map, |[5] |l'état de simulation (une carte de la|
|and a ship position indicator). | |simulation, et un indicateur de la |
|Provide a description of how these | |position du navire) |
|added views will be updated with | |Décrivez comment ces vues ajoutées |
|current information in your design. | |seront mises à jour avec |
|Include the registration of | |l'information courante selon votre |
|observers. | |conception, incluant l'enregistrement|
| | |des observateurs. |
|(Javadoc for the class Observable is | | |
|provided at the end of the exam). | | |
| | |(l'information Javadoc pour la classe|
| | |Observable est fournie à la fin de |
| | |l'examen). |
|c. Provide a package diagram for the |[3] |c. Fournissez un diagramme de paquets|
|system. | |pour le système. |
|d. Provide a collaboration diagram | |d. Fournissez un diagramme de |
|for a typical run of the simulator. | |collaboration pour une exécution |
|You can assume that there is a client|[5] |typique du simulateur. Vous pouvez |
|object that is controlling the | |assumer qu'il y a un objet client qui|
|simulator. This client will set the | |contrôle le simulateur. Ce client |
|simulation time multiplier and set | |ajustera le multiplicateur du temps |
|the simulation running, giving eac