1/9
Final Exam
EEE321B Object-oriented techniques
18 April 2009
Examiner: Dr. G. Scott Knight
Examen final
GEF321B Techniques de logiciel orienté objets
18 avril 2009
Examinateur: Capitaine S.C. Cayouette
Instructions:
Do not turn this page until instructed to
do so.
This test is closed book, out of a total of 100
marks.
Questions have the values indicated in the
centre column.
You have three hours to complete the test.
Answer all questions in the test booklet.
If a question seems unclear, make a
reasonable assumption, document it, and
answer the question as though the
assumption were correct. The examiner will
not clarify the meaning of questions during
the exam.
Good luck!
Instructions:
Ne tournez pas cette page avant
l’instruction de l’examinateur.
Cet examen est livre fermé, sur un total de
100 notes.
Les questions ont les valeurs indiquées à la
colonne centrale.
Vous avez trois heures pour compléter
l’examen.
Répondez à toutes les questions dans le
livret.
Si une question ne vous semble pas claire,
faites une supposition raisonnable,
documentez-la, et répondez à la question
prenant compte de la supposition.
L’examinateur ne clarifiera pas le sens des
questions pendant l’examen.
Bonne chance!
2/9
1. Short answer [total of 15]
a. What is used as the primary basis for
decomposition in OO (i.e. how do we decide what
makes a good module/class)?
b. Consider the method call in the following line of
Java code:
variable.method(param1, param2);
What are the necessary conditions in Java for this
method call to be an example of parametric
polymorphism? Be precise.
c. Describe the goals, products, and process of the
Elaboration Phase of the RUP Macro Process.
d. What are the advantages of dividing a large
system into packages, both from a modeling
perspective and from a programming perspective?
e. Briefly explain the roles of use cases and
collaboration diagrams in the UML modelling
process. What is the relationship between use cases
and collaboration diagrams?
[3]
[3]
[3]
[3]
[3]
1. Réponses courtes [total de 15]
a. Quelle est la base primaire pour la décomposition
en conception orientée objets? (C’est-à-dire,
comment est-ce qu’on détermine ce qui fait une
bonne classe?)
b. Considérez l’appel à la méthode dans la ligne de
code Java suivante :
variable.methode(param1, param2);
Quelles sont les conditions nécessaires en Java pour
que l’appel soit un exemple de polymorphisme
paramétrique? Soyez précis.
c. Donnez une description des buts, des produits et
du processus de la phase d’Élaboration du macro
processus de RUP.
d. Quels sont les avantages de la division d’un grand
système en paquets, du point de vue de la
modélisation et aussi de la programmation?
e. Expliquez de façon brève les rôles des cas
d’utilisation et des diagrammes de collaboration dans
le processus de modélisation avec UML. Quelle est
la relation entre les cas d’utilisation et les
diagrammes de collaboration?
3/9
2. Design and Implementation [total of 25]
For this question, refer to the following Java code
segments provided at the end of this exam:
SimulationScheduler.java
SimClock.java
SimulationObject.java
Ship.java
2. Représentations de conception [total de 25]
Pour cette question, référez-vous aux segments de
code Java fournis à la fin de cet examen :
SimulationScheduler.java
SimClock.java
SimulationObject.java
Ship.java
a. Using the Java code segments provided (four
classes) for a Naval Warfare Simulator System draw
the class diagram that corresponds to the code.
Provide as much information as you can, including
but not limited to classes (including those referred to
in the code segments, but which may not have been
provided in the exam), attributes, methods, class
relationships and dependencies, type-information,
access control information.
[7]
a. En utilisant les segments de code Java fournis
(quatre classes) pour un système simulation de
guerre navale, dessinez un diagramme de classe
correspondant au code. Fournissez le plus
d’information possible, incluant mais ne se limitant
pas aux classes (incluant celles référencées dans le
segment de code qui ne sont pas fournies dans
l’examen), attributs, méthodes, relations entre les
classes, dépendances, types et modificateurs de
contrôle d’accès.
b. Note that the SimulationScheduler is an
Observable (i.e. Concrete Subject in the Observer
Pattern).
Provide extensions to your class diagram
that allow two views of the simulation state
(a simulation map, and a ship position
indicator).
Provide a description of how these added
views will be updated with current
information in your design. Include the
registration of observers.
(Javadoc for the class Observable is provided at
the end of the exam).
[5]
b. Notez que le SimulationScheduler est le sujet
concret du motif Observable.
Fournissez une extension au diagramme de
classe qui permet deux vues de l’état de
simulation (une carte de la simulation, et un
indicateur de la position du navire)
Décrivez comment ces vues ajoutées seront
mises à jour avec l’information courante
selon votre conception, incluant
l’enregistrement des observateurs.
(l’information Javadoc pour la classe Observable
est fournie à la fin de l’examen).
c. Provide a package diagram for the system.
[3]
c. Fournissez un diagramme de paquets pour le
système.
d. Provide a collaboration diagram for a typical run
of the simulator. You can assume that there is a
client object that is controlling the simulator. This
client will set the simulation time multiplier and set
the simulation running, giving each simulation object
a chance to take a turn.
[5]
d. Fournissez un diagramme de collaboration pour
une exécution typique du simulateur. Vous pouvez
assumer qu’il y a un objet client qui contrôle le
simulateur. Ce client ajustera le multiplicateur du
temps de simulation (simulation time multiplier) et
démarrera la simulation, en donnant la chance à
chaque objet de la simulation son tour de jouer.
4/9
e. Provide Java code showing the implementation of
the run() method in SimulationScheduler
assuming the collaboration in part d, but also
including any other functionality described in the
description of the method supplied in the code for
the class. Javadoc documentation for List and
Iterator provided as an attachment to the exam.
[5]
e. Fournissez le code Java montrant
l’implémentation de la méthode run() du
SimulationScheduler , incluant la collaboration
en d. et les autres fonctionnalités donnés dans la
description de la méthode fournie dans le code pour
cette classe. La documentation pour les classes List
et Iterator est fournie à la fin de l’examen.
5/9
3. Design Patterns, Detailed Design, and
Implementation [total of 20]
3. Motifs de Conception, conception détaillé, et
implémentation [total de 20]
An automatic climate control system is described
here:
Climate Control System
The climate control system has a master switch that
may be in any one of four positions: standby,
heating, cooling, or automatic. The position of the
switch may be changed from any position to any
other position at any time. When the switch is
changed to a new position, it generates an event
indicating the new position.
It also has two controls that are used to set desired
minimum and maximum temperatures.
A temperature sensor generates an event when the
temperature changes. This event contains the value
of the current temperature.
When the master switch is in the “standby” position
the system does nothing.
When the master switch is in the “heating” position
and the measured temperature falls below the
minimum desired temperature, the system turns on
the furnace and leaves it on until the maximum
desired temperature has been reached.
When the master switch is in the “cooling” position
and the measured temperature rises above the
maximum desired temperature, the system turns on
the chilling unit and leaves it on until the minimum
desired temperature has been reached.
When the master switch is in the “automatic”
position, heating AND cooling operations are
performed according to the descriptions for those
two modes of operation. It is supposed that the
minimum temperature is set lower than the
maximum temperature.
(See next page.)
Un système de climatisation automatique est décrit
ci-dessous.
Climatiseur automatique
Le climatiseur à un sélecteur principal qui peut
être dans une de quatre positions : attente, chauffage,
refroidissement ou automatique. La position du
sélecteur peut être modifiée d’une position à
n’importe quelle autre position à n’importe quel
instant. Lorsque le sélecteur est placé dans une
nouvelle position, il génère un événement indiquant
la nouvelle position.
Le climatiseur à aussi deux contrôles pour
sélectionner la température maximale et la
température minimale désirée.
Un senseur de température génère un évènement
lorsque la température change. Cet événement
renferme la valeur de la température courante.
Quand le sélecteur principal est dans la position
« attente », le système ne fait rien.
Quand le sélecteur principal est dans la position de
« chauffage » et la température mesurée devient
moins que la température minimale désirée, le
système allume la fournaise et la laisse allumée
jusqu’à ce que la température maximale désirée soit
atteinte.
Quand le sélecteur principal est dans la position de
« refroidissement » et la température mesurée
devient plus que la température maximale désirée, le
système allume le compresseur frigorifique et le
laisse allumé jusqu’à ce que la température minimale
désirée soit atteinte.
Quand le sélecteur principal est dans la position
« automatique », le chauffage ET le refroidissement
se déroulent tels que décrit dans ces deux modes
d’opération. On suppose ici que la température
minimale réglée est inférieure à la température
maximale.
(Voir la page suivante.)
1 / 9 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !