Posted on

Modeling and Specification in Action

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, Loe Feijs and Philip Ross 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.

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 .

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.

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.

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.

Deliverables

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

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

References

[Fow05]
Martin Fowler.
UML Distilled.
Addison-Wesley, 2005.
[Amb05]
Scott W. Ambler.
The Elements of UML Style.
Cambridge University Press, 2005.
[KRRS03]
A. Khamis, D.M. Rivero, F. Rodriguez, and M. Salichs.
Pattern-based architecture for building mobile robotics remote
laboratories.
In IEEE International Conference on Robotics and Automation
(ICRA’03)
, volume 3, pages 3284-3289, Taiwan, 2003.
[HRF+07]
Jun Hu, Philip Ross, Loe Feijs, , and Yuechen Qian.
Uml in action: Integrating formal methods in industrial design
education.
In Edutainment 2007: The 2nd International Conference of
E-Learning and Games (to appear)
, 2007.

Essense of Object Oriented Programming :

Several chapters of this book by Wampler are available online. Chapter 2 has a very good overview of object-orientation.