fall2010
Systems Modeling, Fall 2010, MTAT.03.083
Attention, I am still editing this page, please come back frequently. Discussion list is on http://discuss.sm.ulno.net. Homework has to be sent to systems-modeling at the ulno site (replace ulno in my email with systems-modeling). A shortcut to this page is http://sm.ulno.net.
News
07.12.2010 results for course project are up.
Just to be complete: Here is the project grading table once more digitally (in addition to the paper form you got). Some comments I gave over the presentation on the discussion list: Most important for us is the demo of your application. However, the presentation should also show your commitment and a sample of your modeling work. You have only 10 minutes to present (max 2 minute questions, hard time limit as we have to deal with 16 teams in 180 minutes), so it is like a sales pitch. Prepare one laptop, which is able to present externally (try with an external monitor) on 1024x768 with 60 Hertz and has the slides and running program or screencast(s). So, show some demo paths. then the class diagram and some sample object diagrams/story boards and resulting tests, which you can run also. Try eventually to change roles while presenting. Practice the presentation so it runs fluently! Best and good luck, Ulrich
Two model view controller examples (both Fahrenheitconverters) as eclipse projects. here
26.10.2010: On sandstorm.cs.ut.ee (login as SOLARIS\universityusername) you find eclipse with fujaba here: C:\Program Files\fujaba4eclipse-SDK-3.6.1-win32\eclipse\eclipse.exe
26.10.2010: Attention, there was a mistake in the course schedule, it will be the 7th of December, when we present the work not the 6th. The 6th was a Monday.
26.10.2010: Course project grading table: here, command pattern example (now updated, undo was not working for having multiple commands the same)
19.10.2010: Material for lecture: here
15.10.2010: Vistorpattern (and delgating file) for Filetree in Fujaba here.
15.10.2010: Provided online versions of the screencasts.
14.10.2010: Delegation example as ctr file.
14.10.2010: Slides and homework updated, more screencasts online at fujaba.
13.10.2010: The CounterVisitor example.
12.10.2010: Very simple version of hanoi: here
12.10.2010: Python preprocessing script for resolving merge conflicts in Fujaba ctr-Files. crt_resolve_conflict.py
06.10.2010: Added more screencasts to here (from lecture).
01.10.2010: Updated git usage scenarios.
30.09.2010: Screencasts and object game online here (bottom of page) and here.
28.09.2010: Some material for the lecture today: eclipse project
27.09.2010: Small mistake in the second post-condition: corrected is "Post: Eero has now on his hand HK, HQ, Artjom has DJ, C8, H10, and Ulno has CA. The top of the deck shows DK, DQ, D10, D9 (DK is top card). On the top of the open deck are now all the cards, HA, H7. H7 is the top-most card of the open deck. It is now Artjom’s turn."
24.09.2010: Concerning Mau Mau rules: Take the base rules with base rules with the Jack rule and the 7 rule to draw cards. After each hand is over the players except the one who won the hand count the points in their hands; the player with the most points is eliminated from the competition and play continues. Usually, kings are worth 50, queens and jacks are worth 20 each, aces are 1 each, and others have face value. If sombody plays an 8, the next person has to pass (will skip their turn). The Jack rule means: If you play a jack you can ask for a suit. You play a jack and then can select any suit with which the game should be continued (playing another Jack then is possible).
21.09.2010: Material for new home work is here
10.09.2010: Virtualbox-Image with all course software is now available at: http://vm.sm.ulno.net. Sorry, you will have to sacrifice 10GB of your precious diskspace for this course. Remove some movies and do exciting Systems Modeling exercises instead.
06.09.2010: Remember to bring your notebooks and paper and pens.
06.09.2010: Here are two links, you might need tomorrow: http://www.sparxsystems.com.au/resources/uml2_tutorial/uml2_usecasediagram.html and http://en.wikipedia.org/wiki/Use_case
01.09.2010: First version of syllabus up, still lots of changes pending
Schedule
Classes will be Tuesdays from 14:15-15:45 in room 404 and 16:00-17:30 in room 405.
07. Sep., Dr. Norbisrath, Introduction, Modelling and Abstraction, User Stories and Scenarios, Use cases, slides (and homework) hw: 6 pts
14. Sep., Dr. Norbisrath, Objects, Object Diagrams, slides (and homework) hw: 5 pts
21. Sep., Dr. Norbisrath, From Objects to Class Diagrams to Code, slides (and homework), extra material hw: 5pts (+1)
28. Sep., Dr. Norbisrath, Test Driven Development, Storyboards, Method design, the Object Game, slides100928.pdf
05. Oct., Dr. Norbisrath, Modeling in Fujaba, Story diagrams, Design patterns start, slides (and homework) hw: 8pts (+4)
12. Oct., Dr. Norbisrath, More Modeling in Fujaba, Coobra (distributed modeling), design patterns, slides
19. Oct., Dr. Norbisrath, Interfacing Fujaba, more design Patterns, slides (and homework)
26. Oct., Dr. Norbisrath, Interfacing Fujaba, practice session, Questions and Tips and Tricks, slides
Nov., Dr. García-Bañuelos, Statemachines
Nov., Dr. García-Bañuelos, Statemachines
Nov., Prof. Marlon, Petri nets
Nov., Prof. Marlon, Petri nets
Nov. deadline for course project
Dec. , Dr. Ulrich Norbisrath, Course project presentation
Course Project
We will develop a multiplayer version of the game Mancala in this course as course project.You can see an example implementation here. Wikipedia has some nice compact rules here. The project report you will have to hand in has to consist of a guide through your project (and repository), your project plan, project log, and documentation.
Grading
One will get points for each of the following:
participation in 12 lectures: 10 points
homework (24) + course project (36): 60 points
statemachine: 20 points
petri nets: 10 points
The maximum points one can achieve in this course are 100 points. The grading scheme is the following: 100-91:A, 90-81:B, 80-71:C, 70-61:D, 60:-51:E, 50-0:F There will not be an exam in this course. Doing good homework, showing active participation in the lecture, and doing a good course project will be your way to a successful course. The participation points as well as the homework points are available here. The project grading is at the bottom of this page.
Structure/Homework
The participation in the course is compulsory. If you can't attend, you have to present a valid excuse to me in advance. You will work in teams of 3-4 persons (for some bigger tasks I might merge some teams). The lectures will usually start with the presentation of the last homework, presented by selected persons of selected teams. Everybody in a team, must be able to present the homework. We will start each of the classes (2nd to 8th) with a homework presentation. There, I will pick a team and a person in the team to present. If this persons is not present or fails to present, I will deduct 1 point from your homework points for this day and pick another one of the team. If this persons also fails, I will deduct another point. Homeworks will usually give around 5 points, some might give more and some first very easy homeworks may give only 3-4 points. Homework has to be sent to systems-modeling until the following Monday morning at the ulno site (replace ulno in my email with systems-modeling). The subject of the homework has to have the form "[SM] <homework-number> <sorted – low to high - matrikel numbers of team members>". As an example, if your team members have matrikel numbers A11111, B11111, A11121 than the title would look like this for the first homework assignment:
[SM] 1 A11111 A11121 B11111
Version management with git
In the course we will use Git, the distributed version control system developed by Linus Torvalds. Git is one of the best version control systems (read short comparison here), it is optimal for small distributed development teams. The binary packages can be downloaded here, alternatively on linux you can install the following packages from the repository:
git-core git-gui gitk
Git is already installed in our virtual machine. Try to run git gui. Here is a good tutorial, this should help to understand Git and the difference between centralized and decentralized version control systems. Here is complete tutorial how to use git. Git also has a graphical user interface, here is a nice tutorial for windows users. For linux users there is no need for Putty client since git is using standard ssh client. To start git graphical user interface type:
git gui
in terminal and follow instructions from the tutorial.
VirtualBox tricks
Resources
Virtual box image: http://vm.sm.ulno.net
Rumbaugh, J., Blaha, M., Premerlani, W., Eddy, F., & Lorensen, W. (1991). Object-oriented modeling and design. Prentice-Hall, Inc. Upper Saddle River, NJ, USA.
Larman, C. (1998). Applying UML and Patterns: An Introduction to Object-oriented Analysis and Design. Prentice Hall PTR.
Gamma, E., Helm, R., Johnson, R., & Vlissides, J. (1995). Design patterns: elements of reusable object-oriented software. Addison-Wesley Reading, MA.
Barnes, D. J., & Kolling, M. (2006). Objects First With Java: A Practical Introduction Using BlueJ. Prentice-Hall, Inc. Upper Saddle River, NJ, USA.
Virtual image for development environment (includes Eclipse, Fujaba, and Dia): here
More nice material on designpatterns (credits to Egon): http://gameprogrammingpatterns.com/