Nada

Course Analysis for Object-oriented Analysis and Design (OAD), Spring -00

Author: Karl Meinke, NADA

Below is a course analysis for the course on object-oriented analysis and design (OAD).

Course data

The course was taught during period 3 in spring 2000.
Lectures: 28 hours
Exercises: 28 hours
Laboratory exercises: 15 hours
Course literature: (optional) UML in a Nutshell, by S.S. Alhir, O'Reilly, 1998.
Lab Assistant: None.
Number of students: 41
KM held all lectures and examples classes.

Goals

OAD is the new advanced course to follow on from OOP1 where students obtain basic training in object-oriented programming with Java. The course OAD attempts to build on this by teaching the fundamentals of object oriented analysis and design. We make use of the Unified Modelling Language (UML) as an emerging industry standard.

The philosophy of the course is to focus on the fundamentals of UML, as well as to focus on four strategic types of diagram, namely sequence diagrams (actually message sequence charts MSCs) for black-box dynamic modelling, object and class diagrams for static modelling and statecharts(for glass box dynamic modelling. For each visual language we are careful to describe both the graphical syntax and the semantics (using informal and formal mathematical concepts). We take a fundamental view, since UML is in a state of flux at present. Exercise classes are based on practical problems which cover sequence diagrams, class diagrams and statecharts.

Summary

The course went fairly smoothly this year, and response to student questionnaires shows improved response everywhere, except in the lab support. This reflects the fact that, again there were problems finding qualified lab assistants. (KM also acted as the only lab assistant). Also, use of new lab material introduced many changes, and it may take a while for the new material to stabilise.

Lectures

These were based on the kursbunt, which contains original material developed by KM, and focusses on the fundamental principles of UML. Material on abstract data types was removed and replaced by new material on Message Sequence Charts (MSCs). We chose MSCs instead of UML sequence diagrams since it was already clear that UML 2.0 would include most of the MSC standard, which is a much richer design language for use-cases. Thus the course was "future-proofed". This seemed to be more appreciated by the students. The coursebook functioned again mainly as a reference manual for UML.

Exercises

Exercises on MSCs were introduced from own material, and from I. Jacobsen's book, which also provided material on use case analysis. Exercises in class and object diagrams were taken from Rumbaugh et al "Object-oriented modelling and design". Exercises on statecharts were developed from own material.

Laboratory work

The lab work was totally revised this year to follow the lectures more closely. It now consists of a well known security controller exercise (also used in commercial UML courses). Informal requirements are given as english text. The students must then: (i) markup nouns, verbs and relational phrases in the text, (ii) define these in a data dictionary, (iii) write out text use cases, (iv) draw MSCs for each text use case, and (v) draw a class diagram to incorporate data dictionary components.
A novel aspect of the lab work is that solutions must be developed in html and submitted as web pages. This allows, e.g. hyperlinking from informal requirements to the data dictionary. Students seem to appreciate brushing up html skills. Also marking and remarking work became easier for me, as well as providing student feedback by e-mail.
The new lab exercises seem to be more stimulating and enjoyable than the old ones, though apparently harder! Probably this is because programming (old exercise) was easy while design (new exercise) is unfamiliar and therefore hard.

Student Performance

The course was examined with a 5 hour examination.
37 (last year 41) students took the first examination (October '00). Of these, 35 (last year 35) passed, 2 (last year 6) received U (fail), 27 (last year 25) received G (pass) and 8 (last year 10) received VG (pass with distinction).

The second examination was taken by 4 (last year 7) students. 0 (last year 2) received U (fail), 3 (last year 3) received G (pass) and 1 (last year 1) 1 received VG (pass with distinction).

Course Literature

The book "UML in a Nutshell" was continued with as a language reference .
However, it has drawbacks as a coursebook (no exercises). Nevertheless, I believe it to be more rigorous than most books. Other UML books (including e.g. Larman) were under evaluation but not yet recommended.

Course Evaluation


A total of 28 returns (last year 29) i.e. 68% (last year 71%) of student participants views were received.
Here are the results of the survey.

1. Rate the clarity of lectures (förläsningar): average 4.23 (last year 3.89)

1 very unclear 2 unclear 3 fair 4 clear 5 very clear

2. Rate the clarity of the course notes (kursbunt): average 3.67 (last year 3.27)

1 very unclear 2 unclear 3 fair 4 clear 5 very clear

3. Rate the clarity of the lab exercises (laborationer): average 3.46 (last year 2.86)
1 very unclear 2 unclear 3 fair 4 clear 5 very clear

4. Rate the usefulness of the lectures (förläsningar): average 3.96 (last year 4.06)
1 very useless 2 useless 3 fair 4 useful 5 very useful

5. Rate the usefulness of the course notes (kursbunt): 3.89 (last year 3.75)
1 very useless 2 useless 3 fair 4 useful 5 very useful

6. Rate the usefulness of the lab exercises (laborationer): 4.03 (last year 3.71)
1 very useless 2 useless 3 fair 4 useful 5 very useful

7. Did you find the teaching in english: average 3.5 (last year 3.24)
1 a great disadvantage 2 a disadvantage 3 neutral 4 an advantage

8. Were you satisfied with support in labs (redovisning, advice, etc)?: average 1.70 (last year 1.88)
1 very unsatisfied 2 satisfied 3 very satisfied

9. Overall, how satisfied with the course were you? average 2.21 (last year 2.21)
1 very unsatisfied 2 satisfied 3 very satisfied

Some typical comments:

10. If you could make changes to the course, how would you change it?

We need to know more about what and how things are used in industry.

There must be more support with the labs because they are unclear and difficult to get started with.

Unclear the difference between requirements analysis phase and design phase. Talk a little more about what is being done during design phase.

I would add some programming in the end. Mostly because to complete the step, i.e. req analysis, design and programming, so we could test our own MSCs.

I'd like more example diagrams. It'd be nice to have for example a complete large class diagram with many methods to see how to make them (where to put them, etc.)

Gärna gå igenom labben lite tidigare. ... Skulle vilja att MSC gavs större utrymme än nouns etc. Class diagram skulle också vara bra få veta mer om lite tidigare. Annars har kursen varit mycket rolig och intressant. (Please go through the lab a bit earlier ... would like it if MSC were given more space than nouns etc. Class diagrams would also be good to know about a bit earlier. Otherwise the course has been really fun and interesting.)

There's a lot of information in the end of the course, the information should be spread over the period.

Lite segt till en början, särskilt på lektionerna vid genomgång av data dictionary. (Bit slow to begin with, especially the exercise classes going over the data dictionary.)

Keep it as it is.

Högre tempo på föreläsningarna och lektionerna. (Faster pace in lectures and exercise classes.)

Perhaps fewer and shorter lab exercises so that all languages (that we've discussed) are used. Course notes could have been machine printed for better clarity (drawings by hand are adequate though)

Kanske en mer lättläst (ej handskriven) kursbunt med tidigare upplägg. (Perhaps a more easily read (not handwritten) set of course notes.)

We hardly had any exercise time. So I'd like to put more time on exercises.

Bra med en ex. som labben som går igenom hela från MSC -> class diagram -> statechart. (Good with an exercise like the lab which goes all the way from MSCs -> class diagram -> statechart.)

Conclusions

According to the student survey figures, the general level of satisfaction with the course increased slightly this year. The new lab material seems more appropriate than the old material (though interestingly some students want programming re-instated, but this would add to the burden of student work and is hard to consider).

Practically, the lab component is still difficult to manage without a well qualified lab assistant, but this still seems to be hard to arrange. However, the use of internet based lab solutions seems novel, valuable for the students, and practical to manage.

Page editor: <karlm@nada.kth.se>
Last changed 09 October 2000
Technical support: <webmaster@nada.kth.se>