Part IV Project Final Report
z/~PIVprojects/archive/reports2004/pdfs/szho007.pdf. It's a snapshot of the page taken as our search engine crawled the Web.
The web site itself may have changed. You can check the current page or check for previous versions at the Internet Archive.
Yahoo! is not affiliated with the authors of this page or responsible for its content.
Part IV Project Final Report
Department of Electrical & Electronic Engineering
Part IV Project Final Report
2004
CellML Editor
By: Senya (Lisa) Zhou Project partner: Leanne Kwok
Project supervisor: Dr. Matt Halstead
SOFTENG 401 Project final report
By Senya (Lisa) Zhou
- i -
Abstract
The purpose of the CellML Editor project is to develop an application which can generate
CellML XML using a graphical interface. The project was proposed by the Bioengineering
institute, and focus on the language CellML. Since no editor is available for editing CellML
via a graphical interface, developing an application which supports this is essential.
The application developed for this project is called Cell Elite. Cell Elite is made up of
CellML API, the GUI and the application XMath. CellML API is a partially developed API
written in Java given at the beginning of project, supporting read in of XML only. The
CellML API is then extended extensively during the year to allow logical constraint and
support for XML file generation. The GUI of Cell Elite was developed from scratch, and is
made up of Canvas view, Tree view, XML view and PropertySheet view. Another standalone
application XMath is responsible for handling the math equations in the CellML language in
the format of MathML, and is used as a plug-in to Cell Elite.
Several problems occurred during development including concurrent modification of the
CellML API since API is used by multiple project groups, rendering problem specific to the
Macintosh platform and unexpected exception from the Java framework.
Overall the functional requirements were achieved by Cell Elite, Cell Elite is able to create
modify and save a CellML Model with support for dynamic constraint validation and real
time XML generation, but future improvements can still be done to increase usability of the
system.
SOFTENG 401 Project final report
By Senya (Lisa) Zhou
- ii -
Declaration of Originality
This report is my own unaided work and was not copied from nor written in collaboration
with any other person
Signed: _________________________________
SOFTENG 401 Project final report
By Senya (Lisa) Zhou
- iii -
Acknowledgement
I would like to thank Dr Matt Halstead and Dr. Poul Nielson in their guidance for this project.
With out their feed back, we would not have fixed so many bugs and made improvements to
the project
Thank to Rick Mugridge for allowing me and Leanne to study his code, we would not have
built our applications concept without these information.
Thanks to Stephanie Jor on her help with the MathML editor, by spending time with us and
adding additional functionality to accommodate our application.
Most importantly, I would like to thank partner Leanne Kwok who worked hard along with
me in this project.
SOFTENG 401 Project final report
By Senya (Lisa) Zhou
- iv -
Table of contents
1.
Introduction......................................................................................................... 1
2.
Project Background ............................................................................................ 2
2.1.
CellML background ..................................................................................... 2
2.2.
CellML structure .......................................................................................... 2
2.3.
CellML constraints....................................................................................... 4
2.4.
MathML and MathML editor ........................................................................ 5
2.5.
Why do we need an editor?......................................................................... 5
3.
Project approach ................................................................................................ 6
3.1.
Background analysis ................................................................................... 6
3.2.
Implementation methodologies ................................................................... 6
3.3.
Use case ..................................................................................................... 6
3.3.1.
Planned Use case ................................................................................ 6
3.3.2.
Changes made..................................................................................... 7
3.4.
Functional requirements.............................................................................. 8
3.4.1.
Planed functional requirement ............................................................. 8
3.4.1.1.
Create CellML structure ............................................................................ 8
3.4.1.2.
Modify CellML structure .......................................................................... 8
3.4.1.3.
Visual operations with elements ............................................................... 8
3.4.1.4.
Save and load ............................................................................................ 9
3.4.1.5.
Import and export...................................................................................... 9
3.4.1.6.
Importing components .............................................................................. 9
3.4.1.7.
Syntax validation ...................................................................................... 9
3.4.1.8.
Connection to MathML Editor .................................................................. 9
3.4.2.
Changes made..................................................................................... 9
3.5.
Non- functional requirements .................................................................... 10
3.5.1.
Graphical user interface ..................................................................... 10
3.5.2.
Help.................................................................................................... 10
3.5.3.
Accuracy ............................................................................................ 10
3.5.4.
Extensibility ........................................................................................ 10
3.5.5.
Portability ........................................................................................... 10
3.5.6.
Stakeholder and user ......................................................................... 10
4.
Design methodology......................................................................................... 10
4.1.
Application structure.................................................................................. 10
4.2.
User interface design ................................................................................ 11
5.
Software architecture ....................................................................................... 12
5.1.
Overall architecture ................................................................................... 12
5.2.
GUI architecture ........................................................................................ 14
5.2.1.
Canvas architecture ........................................................................... 14
5.2.1.1.
Switching action...................................................................................... 14
5.2.1.2.
SingleSelectionSetManager supporting selection events........................ 14
5.2.2.
Tree architecture ................................................................................ 15
5.2.3.
PropertySheet architecture ................................................................ 15
6.
Implementation................................................................................................. 16
6.1.
Method of development............................................................................. 16
6.2.
Prototyping ................................................................................................ 16
6.2.1.
MathML Plug-in .................................................................................. 16
6.2.2.
PropertySheet prototype .................................................................... 17
6.2.3.
File generation in API......................................................................... 18
6.3.
User interface implementation................................................................... 18
6.3.1.
Implementation details ....................................................................... 18
6.3.2.
Problem Solved.................................................................................. 19