Final Exam - Scott Knight's Home Page

L'examinateur ne clarifiera pas le sens des questions pendant l'examen. ... Briefly
explain the roles of use cases and collaboration diagrams in the UML modelling
process. .... Use the ?State? Design Pattern to model the climate control system, ...

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