Differences between revisions 39 and 40
Revision 39 as of 2005-04-06 20:23:07
Size: 6416
Editor: t-indiv10-220
Comment:
Revision 40 as of 2005-04-06 20:48:14
Size: 8516
Editor: t-indiv10-220
Comment:
Deletions are marked like this. Additions are marked like this.
Line 17: Line 17:
[[Include(/ProgramGantt)]] {{{#!Gantt view-begin=2005-03-14,view-end=2005/03/29,timestep=2
<project xmlns:pg="http://www.logilab.org/namespaces/pygantt_docbook" id="monprojet">
<label>Software modelling and specification</label>
<task id="lw">
  <label>Lectures and workshops</label>
  <task id="lecture1">
    <label>Objectives, expections and planning (all)</label>
    <duration>1</duration>
    <constraint type="begin-after-date">2005/03/14</constraint>
  </task>
  <task id="lecture2">
    <label>Intro on software engineering (Loe)</label>
    <duration>1</duration>
    <constraint type="begin-after-date">2005/03/14</constraint>
  </task>
  <task id="lecture3">
    <label>User requirements specification (Panos)</label>
    <duration>1</duration>
    <constraint type="begin-after-date">2005/03/14</constraint>
  </task>
  <task id="lecture4">
    <label>Class diagrams (Yuechen)</label>
    <duration>1</duration>
    <constraint type="begin-after-date">2005/03/15</constraint>
  </task>
  <task id="lecture5">
    <label>State and sequence diagrams (Yuechen)</label>
    <duration>1</duration>
    <constraint type="begin-after-date">2005/03/18</constraint>
  </task>
  <task id="lecture6">
    <label>Intro to the case study (Jun)</label>
    <duration>1</duration>
    <constraint type="begin-after-date">2005/03/18</constraint>
  </task>
  <task id="lecture7">
    <label>Intro to Java platform (Jun)</label>
    <duration>1</duration>
    <constraint type="begin-after-date">2005/03/22</constraint>
  </task>
</task>
<task id="case">
  <label>Case Study: Emotion-based instant messaging</label>
  <task id="case1">
    <label>Specification</label>
    <duration>1</duration>
    <constraint type="begin-after-date">2005/03/21</constraint>
  </task>
  <task id="case2">
    <label>Implementation</label>
    <duration>6</duration>
    <constraint type="begin-after-date">2005/03/22</constraint>
  </task>
</task>
<task id="report">
  <label>Report session</label>
  <duration>1</duration>
  <constraint type="begin-after-date">2005/03/29</constraint>
</task>
</project>
}}}

Formal Software Specification (UML Modelling)

TableOfContents

1. Module Description

A product with sensors, actuators and network connections can offer an interesting, useful, or playful behaviour 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 behaviour. If the product isn’t stand-alone, neither is the designer. Whenever product behaviour is realised through computer software and protocols, the designer takes advantage of being an excellent communicator in these matters. In present-day software engineering, the Universal Modelling Language UML has become widely accepted. It contains “activity diagrams”, “use case diagrams”, “class diagrams”, “state charts” and “message sequence charts”. The knowledge and skills that students get by participating in this module will help them to express the structure and behaviour 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 behaviour.

Panos Markopoulos, Yuechen Qian, 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.

2. Program Schedule

<project xmlns:pg="http://www.logilab.org/namespaces/pygantt_docbook" id="monprojet">
<label>Software modelling and specification</label>
<task id="lw">
  <label>Lectures and workshops</label>
  <task id="lecture1">
    <label>Objectives, expections and planning (all)</label>
    <duration>1</duration>
    <constraint type="begin-after-date">2005/03/14</constraint>
  </task> 
  <task id="lecture2">
    <label>Intro on software engineering (Loe)</label>
    <duration>1</duration>
    <constraint type="begin-after-date">2005/03/14</constraint>
  </task> 
  <task id="lecture3">
    <label>User requirements specification (Panos)</label>
    <duration>1</duration>
    <constraint type="begin-after-date">2005/03/14</constraint>
  </task>
  <task id="lecture4">
    <label>Class diagrams (Yuechen)</label>
    <duration>1</duration>
    <constraint type="begin-after-date">2005/03/15</constraint>
  </task>
  <task id="lecture5">
    <label>State and sequence diagrams (Yuechen)</label>
    <duration>1</duration>
    <constraint type="begin-after-date">2005/03/18</constraint>
  </task>
  <task id="lecture6">
    <label>Intro to the case study (Jun)</label>
    <duration>1</duration>
    <constraint type="begin-after-date">2005/03/18</constraint>
  </task>
  <task id="lecture7">
    <label>Intro to Java platform (Jun)</label>
    <duration>1</duration>
    <constraint type="begin-after-date">2005/03/22</constraint>
  </task>
</task>
<task id="case">
  <label>Case Study: Emotion-based instant messaging</label> 
  <task id="case1">
    <label>Specification</label>
    <duration>1</duration>
    <constraint type="begin-after-date">2005/03/21</constraint>
  </task>
  <task id="case2">
    <label>Implementation</label>
    <duration>6</duration>
    <constraint type="begin-after-date">2005/03/22</constraint>
  </task>
</task>
<task id="report">
  <label>Report session</label>
  <duration>1</duration>
  <constraint type="begin-after-date">2005/03/29</constraint>
</task>
</project>

Include(/ProgramSchedule)

3. Case study : Emotion-based Instant Messaging

All students work in a team to develop an extenstion to an existing instant messaging system that,

  1. analyzes the messages and filters the emoticons in the message;
  2. calculates current emotional state of the buddies based on the collected emoticons,.
  3. keeps track of the emotional state history of the buddies.

The existing instant messaging system will be provided as a blackbox with the following interfaces:

  1. sending messages.
  2. notification of the messages received.
  3. changing the user's status.
  4. notification of the status change of the buddies.
  5. file transfer.

The team should not work on:

  1. network communication,
  2. session management,
  3. user profiles,
  4. conversation management etc.

4. Feedback

Include(/Feedback)

5. Resources

5.1. Slides and Handouts

  • attachment:UMLIntro-slides.pdf
  • attachment:UMLIntro-handouts.pdf

5.2. Software packages to start with

5.3. Modelling and programming tools

6. Download

6.1. Binaries

  • attachment:TIM3.jar - the blackbox. A Jabber client based on JBother 0.8.5
  • attachment:FileTransfer.jar - a plugin for TIM3 for exchanging files/photos.

  • attachment:EmoticonCollector.jar - a plugin for TIM3 to collect emoticons from the conversations.

  • attachment:PresenceWatcher.jar - a plugin for TIM3 to monitor/change the status of the user and the buddies.

    • please notice that these plugins does not work with the original JBother, use TIM3 instead.

6.2. Source code and documents

6.3. Requirements

Java 2 JREE 1.4 or above.

6.4. Installation

6.4.1. TIM3

Copy attachment:TIM3.jar to anywhere you like. Double click on the icon to start the program.

6.4.2. plugins

Copy the plugin to <home>/.jbother/plugins. On Linux, <home> is your home directory. On Windhows, <home> is C:\Documents and Settings\<your windows login user name>. You can download these plugins in the plugin manager because these plugins are not part of the standard JBother.

In order to serve the files from your local computer when transferring files, port 8080 will be open for connection. Any other software occupying this port or any firewall security hiding this port will fail the FileTransfer plugin to work properly.

6.5. Screenshots

TIM3 in action
attachment:JBother.jpg
Plugins are loaded

attachment:PluginManager.jpg

File Transfer plugin in action

attachment:FileTransfer.jpg

Emoticon Collector plugin in action

attachment:EmoticonCollector.jpg

Presence Watcher Plugin in action

attachment:PresenceWatcher.jpg

JunHu: UmlMasterModule/0503 (last edited 2010-09-28 14:11:22 by JunHu)