Differences between revisions 20 and 21
Revision 20 as of 2012-05-22 11:37:41
Size: 9969
Editor: wlan-235095
Comment:
Revision 21 as of 2012-05-22 13:34:27
Size: 10040
Editor: wlan-232241
Comment:
Deletions are marked like this. Additions are marked like this.
Line 28: Line 28:
Line 29: Line 30:
   * Michael Geertshuisje
   * Martijn Kors
   * Robert van Vliet

Modeling and Specification in Action

1. Module Description

A product with sensors, actuators and network connections can offer an interesting, useful, or playful behavior to its users and to the other products, systems and services to which it is connected. The ID Master takes responsibility for the creation of this behavior. If the product isn’t stand-alone, neither is the designer. Whenever product behavior is realized through computer software and protocols, the designer takes advantage of being an excellent communicator in these matters. In present-day software engineering, the Universal Modeling Language UML has become widely accepted. It contains activity diagrams, use case diagrams, class diagrams, State Machine diagrams and Sequence diagrams. The knowledge and skills that students get by participating in this module will help them to express the structure and behavior of the software components in their design in a way that is understood by third parties. Starting from elementary programming skills, which are a prerequisite, the student will develop an understanding and appreciation of what it means to master complexity. The scope is widened from small programs to real complex software systems. Although developing and maintaining such systems usually involves computer scientists as well, the ID Master will be well equipped to use UML and thus specify system structure and desired behavior.

Jun Hu and Loe Feijs will work together to provide background information, explain UML and create a learning experience in which reading UML, writing UML, and creating software come together. A method of acting out will be applied in verifying the models and the specifications.

2. Groups

  • Group A
    • Bianca
    • Daniel
    • Leonid
    • Huang-Ming
  • Group B
    • Aryan Kazemi
    • Laura Duncker
    • Koen van Ham
  • Group C
  • Group D
    • Michael Geertshuisje
    • Martijn Kors
    • Robert van Vliet
  • ...

3. Schedule

Mon May 20  09:00 – 11:00 and 13:00 – 15:00 hrs -> HG 4.95
Tu  May 22  09:00 – 12:00 hrs -> Zwarte Doos, ZD 1.03 (res. nr. ZB6B600B)
Fri May 25  15:00 – 17:00 hrs -> HG 4.95

3.1. Monday morning

  • 09:00 – 11:00, Location: HG 4.95

    • Introduction to software engineering, by Loe Feijs

3.2. Monday afternoon

  • 13:00 – 15:00, Location: HG 4.95

    • Think Different: Object orientation, by Jun Hu, OO.pdf

    • Introduction to Use cases and Class Diagrams, By Jun Hu, UML.pdf

    • Introduction to the project: Zoo of Tamagotchi animals, by Jun Hu

  • Exercise
    • Use cases and class diagrams of a Zoo. zoo.zip

    Book
    • Used only for educational purposes in this module. Do not distribute.
    • If you see "Navigation to the webpage was canceled" when reading the chm on a windows computer, right-mouse click it and select Properties. Then click Unblock.

3.3. Tuesday morning

  • 09:00 – 12:00, Location: Zwarte Doos, ZD 1.03 (res. nr. ZB6B600B)

    • Introduction Sequence diagrams, activity diagram and state machine diagrams by Jun Hu

3.4. Tuesday afternoon

3.5. Wednesday morning

  • Project: Zoo of Tamagotchi animals

3.6. Wednesday afternoon

  • Project: Zoo of Tamagotchi animals

3.7. Thursday morning

  • Project: Zoo of Tamagotchi animals

3.8. Thursday afternoon

  • Project: Zoo of Tamagotchi animals
  • 3:00pm: Finalizing the specifications
  • 5:00pm: Specification handover

3.9. Friday morning

  • Read the specification;
  • Act it out;
  • Look for problems.

3.10. Friday afternoon

  • Location: HG 4.95 Time: 15:00 – 17:00

  • The Show. Invite friends and families to the show.
    • acting out the specifications;
    • pointing out the design flaws;
    • defending your designs;
    • open discussions.

4. Exercise: Reverse engineering of a Zoo of animals

Students start with an existing Java implementation of a Zoo of animals. By running and reading the code, students get their hands on the use cases, class diagrams and activity diagrams. Acting-out is practiced to see whether the diagrams describe the design concepts of the Zoo correctly .

5. Project: Designing and modeling a Zoo of Tamagotchi animals

Based on the basic understand of OO design principles and the acting-out approach, a new Zoo is to be designed, modeled, specified and verified.

5.1. Format

Students are divided into teams. Every team gets the same task: Designing a system called Zoo of Tamagochi Animals:

  • The first half of the project would be the teams making and specifying the OO design of the system;
  • At the end of the first half of the project, the teams swap their specifications for implementation;
  • The second half of the project would be implementing the specifications received.

You are not going to do real software implementations. You will implement the system by acting the specification out to show how the system should work according to the specification. You can play the objects, showing their behaviors and the communications in between. Stage props can be used to represent objects, interfaces, and events etc. Imagination and creativity are needed.

5.2. Zoo of Tamagotchi animals

A preliminary description of the requirement:

  • All animals live in a zoo.
  • An animal has got a life after it is born. While the life goes on, the animal moves and sleeps (if it is still alive), eats (if it moves and finds food), grows (if it eats) until one day, it dies because of hunger, illness or age.
  • Every animal has got a body. Different animals look different because of their different bodies. Every animal has got two eyes and one mouth on its body. When eyes are pinched, animals scream and can be hurt.
  • There are male and female animals. When grownup males and females meet, they may fall into love and the love may result in baby animals.
  • Some animals are pets. Pets have names and they wear their name plates on their bodies. People (the users) take care of their pets and feed them with food.
  • People may play with their pets to keep their pets fit.
  • Some baby animals will be selected by people and they become pets. The rest are left free in the zoo and they have to strive for food and try to survive by themselves.
  • When a zoo is created, it is empty, until people get some animals from somewhere else (from shops, for example).
  • People may exchange their pet animals.
  • Dogs and cats will be our favorite animals for the time being. Dogs bark and cats miaow. Cats are scared of dogs and can be bitten by dogs. When big dogs bark, cats scream and start running away. When big dogs fall into sleep, cats start getting together and partying.
  • The zoo is open for other animals, including unknown ones.

6. Deliverable

  • The final presentation (The Show) from the teams
  • Individual reports (Not more than 2 pages of A4, font size 10) to be delivered before 5pm, Tuesday, 5 Oct

    • Reflections on what you have learned from this module
    • Comments, suggestions and complaints

7. Tools

  • You will need the following software packages:
  • Eclipse IDE for Java Developers. Do download "Eclipse IDE for Java Developers". To install Eclipse, all you do is unpack the zip file download in the desired directory. No further work is required (other than making sure you have a Java Runtime Engine installed). When you unzip the file, it creates a subdirectory called "eclipse", with multiple subdirectories under that. So, for example, in Windows you could unpack the zip file in the root directory (e.g., C:\) and Eclipse would be installed in C:\eclipse.

  • Microsoft Visio

8. References

Allen Holub's UML Quick Reference

JunHu: UmlMasterModule/1205 (last edited 2012-05-25 12:58:40 by JunHu)