\textsf{Max-Planck-Institut f\"ur Meteorologie \hfill Compte rendu CIMD No. 6 v2}
}
\title{Summary Design Specification of the Graphical User Interface for configuring YAC}
\subtitle{Versin 1.3.0}
\author{Ren\'e Redler}
\author{Junpei Xu}
...
...
@@ -97,42 +94,55 @@
\color{black}
\begin{abstract}
This document impart information and understanding about the
implementation of graphical user interface for configuring YAC.
We firstly describe the resource files which need to be deal with and
This document imparts information and understanding about the
implementation of a graphical user interface for configuring YAC.
We firstly describe the resource files which need to be dealt with and
introduce the development methods before attempting to devise a complete
design solution.Then we describe a high-level overview of the system
design solution.Then we describe a high-level overview of the system
architecture and the relationship between subsystems to illustrate how
loadind components and coupling configuration were partitioned.
the loading of components and coupling configuration is partitioned.
\end{abstract}
\section{Introduction}
The summary design specification are concerned with the general design of
The summary design specification is concerned with the general design of
the software. The main goal is to provide training material for new project
members,so that they are able to gain a general understanding of how and why
members,so that they are able to gain a general understanding of how and why
the system was decomposed, and how the individual parts work together to
provide the desired functionality. This document do not go into details
about each submodules. There is a particular design specifacation for the
detailed component descriptions.
Extensible Markup Language (XML) is a markup language that defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. In this application, component described in XML contains meteorological entries and coupling is intergration of the source and target entries and their interpolation information.
XML Schema Definition (XSD), a recommendation of the World Wide Web Consortium (W3C), specifies how to formally describe the elements in an Extensible Markup Language (XML) document. It can be used by programmers to verify each piece of item content in a document. The appilication has component.xsd and coupling.xsd as resource, which identify the type of the elements and attributes in the XML files, as well as the sequenc in which they are written and read.
provide the desired functionality. This document does not go into details
about each submodule, which should be part of a particular design specification.
Extensible Markup Language (XML) is a markup language that defines a
set of rules for encoding documents in a format that is both
human- and machine-readable. In this application, the component
described in XML contains meteorological entries, and the coupling is
the intergration of the source and target entries and their interpolation
information.
XML Schema Definition (XSD), a recommendation of the World Wide Web
Consortium (W3C), specifies how to formally describe the elements in
an XML document. It can be used by programmers to verify each item
contained in a document. The application has component.xsd and
coupling.xsd files as resource, which identify the type of the
elements and attributes in the XML files, as well as the sequence in
which they are written and read.
\section{Design Considerations}
\subsection{General Constraints}
This part is about software environment for developer:
This part is about the software environment for developer:
1. Java SE Runtime Environment 8
\begin{itemize}
\item[1.] Java SE Runtime Environment 8
\item[2.] Java editor that you are familiar with, such as Eclipse, Netbeans, etc.
\item[3.] If the editor tool does not integrate a compiling
environment, you also need a Java compile tool like Apache Ant
\end{itemize}
2. Java editor that you are familiar with, such as Eclipse, Netbeans
3. If the editor tool does not intergate compile, you also need Java compile tool like Apache Ant
We use a Git repository to maintain YAC project. As YAC GUI is a part of the project, make sure Git tool is installed.And you should know how to use Git deal with version control.
We use a Git repository to maintain YAC project. As the YAC GUI is
part of the whole YAC project, make sure the the Git tool is
installed. Basic knowledge about how to use git is mandatory.
\section{System Overview}
...
...
@@ -148,11 +158,28 @@ See \texttt{gui\_manual\_v1\_2\_1.pdf} Section 2 to Section 4.
\subsection{Exception handling}
On the \texttt{Timestep Tab}, \texttt{Source timestep}, \texttt{Target timestep}, \texttt{Coupling period} and \texttt{Operation} are controlled by the unit of time step which is selected by the user on the \texttt{Basic settings}. When \texttt{Timestep unit} is a time unit, these input fields are able to sanitize malformed input like negative integer and word. When it is String, an example of legitimate inputs is \texttt{\textdollar\{dt\_atm\}}. When it is \texttt{ISO\_format}, examples are \texttt{+2014-03-31T00:00:00.000}. In this two cases, a filter is used to prevent user entering a single negative number like \texttt{-34}. But this filter does not deal with such input exception that the user enter \texttt{-} in the middle of a string like \texttt{20sgdj11-222}, then delete everything before \texttt{-}. An unexpected negative number is left \texttt{-222}.
The \texttt{Source Time Lag} and the \texttt{Target Time Lag} are not even controlled by \texttt{Timestep unit}. As a consequence, they suffer more from this exception. The current countermeasure is giving user a hit that non-negative number are allowed here when they edit the fields.
On the \texttt{Timestep Tab}, \texttt{Source timestep},
\texttt{Target timestep}, \texttt{Coupling period} and \texttt{Operation} are
controlled by the unit of time step which is selected by the user on
the \texttt{Basic settings}. When \texttt{Timestep unit} is a time
unit, these input fields are able to sanitize malformed input like
negative integer or string. When String is selected, an example of legitimate
inputs is \texttt{\textdollar\{dt\_atm\}}. When it is \texttt{ISO\_format},
examples are \texttt{+2014-03-31T00:00:00.000}. In this two cases, a
filter is used to prevent the user from entering a single negative number like
\texttt{-34}. However, this filter does not deal with such input exception
of \texttt{-} in the middle of a string like
\texttt{20sgdj11-222}. Instead, everything in front of \texttt{-} is deleted. An
unexpected negative number is left \texttt{-222}.
The \texttt{Source Time Lag} and the \texttt{Target Time Lag} are not
controlled by \texttt{Timestep unit}. As a consequence they
suffer more from this exception. The current countermeasure is to give
the user a hint that non-negative numbers are allowed here when they edit
the fields.
But developer shall never believe inputs! Our recommendation is that an Optimization filter is needed for this case and Documentfilter is a promising countermeasure.
Results need to be checked! An Optimization filter is needed for this
case and a Document filter would be a promising countermeasure.
\newpage
...
...
@@ -178,15 +205,16 @@ The \texttt{id} has to be selected such that it is unique among the
component XML descriptions, likewise the \texttt{name} of the
component shall be unique.
A list of \texttt{transients} links standard names with a unique
local identifier. For each component these IDs can run from 1 to N.
This is followed by a list of \texttt{transients} links standard names
with a unique local identifier. For each component these IDs can run
from 1 to N.
The list of \texttt{transient\_grid\_refs} provides additional
information for the transients. The IDs of the \texttt{transient\_grid\_refs}
shall again run from 1 to N. These references are later used in the
coupling XML description to access the transient information. The
number of the \texttt{transient\_ref} refers to the \texttt{transient}
ID explained above. A \texttt{transient\_ref} of 3 refers to
ID explained above. A \texttt{transient\_ref} of 3 refers to
\texttt{transient} ID 3, and thus to \texttt{heat\_flux}. Likewise,
the \texttt{grid\_ref} of 1 refers to the grid ID 1
defined below. In this case we have only defined one grid, thus the
...
...
@@ -223,7 +251,7 @@ ID may have a different \texttt{collection\_size}, \texttt{grid\_ref} and
\end{figure}
These lists are copied from the componet XML descriptions. The \texttt{grid\_ref}
and \texttt{transient\_ref}ids get updated (see Appendix \ref{Appendix:A}).
and \texttt{transient\_ref}IDs get updated (see Appendix \ref{Appendix:A}).
Typically we will have at least two entries in the
\texttt{grid} element (Fig. \ref{figB2a}), thus \texttt{grid\_ref}
becomes either 1 or 2 in this case. In the same way the \texttt{transient\_ref} ids
...
...
@@ -238,7 +266,7 @@ point to the appropriate entries in the transient list.
\end{figure}
In the couple (Fig. \ref{figB3}) the two components are listed
with its component ID. Next a list of transient couples is provided
with its component ID. Next, a list of transient couples is provided
which defines the source component identified by its component ID and
its respective transient grid reference ID and the transient grid