Main page ||
The project consists of 3 assignments:
For assignment 2 and 3 you will need to use CDD EiffelStudio.
Download it from http://dev.eiffel.com/CddBranch
and don't forget to submit your logs.
Clarifications for Assignment 3
You can assume that the vCards that you are about to import are valid w.r.t. the RFCs. But they do not have to stick to further restrictions stated in the assignment, like - for instance - the occurence and position of long-line breaks.
Merging of Lists of Strings
When merging lists of strings, the elements from the `other` attribute are appended to the list of the current attribute iff they're not already present in the current list. The order of the elements in the lists shouldn't be changed in this process.
Comparing Lists of Strings
Same here, the order of elements in the lists must not be changed. E.g. ("A", "B") is considered smaller than ("B", "A")
What's the issue with merging and the NAME attribute?
The assignment is not clear about merging and the handling of the NAME attribute. You can rely on the following assumption:
"If the NAME attributes of two vCards are present (not empty), they are identical iff the FN attributes are identical." This means that you can in fact just check the FN attributes for equality to find out whether two vCards need to be merged or not. That simplifies the implementation quite a bit.
What can I and what mustn't I change ?
- Check in all log files (ending with .log) from the cdd_tests directory and not just the file called 'cdd_interpreter.log'. The ones with the cryptic date in the name (E.g. '2008-04-01_19-53-43_cdd.log') are actually more important for us that the 'cdd_interpreter.log'.
- Every time you start EiffelStudio a new log file is created. You have to add these new files to svn (e.g. 'svn add 2008-04-01_19-53-43_cdd.log') and then commit them.
- You have to provide the implementation
- You must not change the API (class interface)
- You may strengthen the postcondition
- You must not weaken the postcondition
- You must not strengthen or weaken the precondition
- Any change must be in accordance with the specification given in the
Sample Data for Assignment 2
The following is sample data that you can feed the geneaology
(ROOT_CLASS) via the load. Start the application from
within EiffelStudio and switch focus to its console window. On
Windows a new window pops up, on Unix you have to use the
terminal that you started EiffelStudio form. Now enter load
To generate random scenarios, it is possible to use the random_generator project!!!