ECMS-PrototypeStudyReport_V0.1.docx - GoogleCode

looneyvillestaticSoftware and s/w Development

Aug 15, 2012 (5 years and 1 day ago)

294 views

Enterprise Cargo Management System (ECMS)

ECMS
-

Prototype Study Report






Project By


SE18S07




Author

:

Lai Wai

Document Version

:

0.1

Document Dated

:

23July

2011

Document Reference

:

ISS
\
ECMS
\
Tech
\
Spec
\
Prototype
\
ECMS
-
PrototypeStudyReport_V1.0.docx




Approved By

:

Varun

Approval Date

:





Authorized By

:


Authorization Date

:





ECMS

Issue:

0.1


Issue Date:
Error! Unknown document
property name.

Error! Unknown document property name.


SE18S07, Institute of Systems Science

Page
2



1. Introduction

1.1.
Overview

This report reflects the prototyping stage of ECMS project conducted by Mtech Team

7s
.

It describes
the driving factors behind prototyping,
the key challenges encountered during the
prototype phase, the solutions to these challenges and
the
lessons that we have learnt from it.

This report also mentions the technical approaches
and the design decisions
that are
made by
the project team

to implement ECMS system and
the influential factors
on thos
e decisions.

1.2 Audience

This report is primarily for a target audience of

(i)

Project Team (Team …)


To understand and document the work done during prototyping and the
lessons learnt
from it.

(ii)
ISS Audit Team


This report will enhance the understanding of the ECMS prototype

1.3. Reference

The following documents were used as a reference during the development of prototype
phase. It is recommended that the reader
s

of
ECMS prototype study
report should be familiar
with these documents to
grasp a full understanding of this repo
rt.

Document

Version

Filing Reference

ECMS

User Requirement
Specification



ECMS

Use Case Model
Survey



ECMS

Use Case Realization
Report




ECMS

Issue:

0.1


Issue Date:
Error! Unknown document
property name.

Error! Unknown document property name.


SE18S07, Institute of Systems Science

Page
3




1.4 Prototype Objectives


In order to highlight the technical challenges and risks which will probably be
encountered in ECMS project and minimize these risks, the ECMS project team has
decided

to
produce
a

prototype.

The technologies and tools used in ECMS are relatively new and s
ome of
the team members are not very familiar with them and some do not have hand
-
on experience.
We believe that developing prototype will help
us familiar with these technologies and tools
and balance the technical skills between team members.

The objecti
ves

of ECMS prototype are:



It is used to test the functionality and learn things about implementing them
which

will
be
help
fulin
the development
phase
.



It is used to bring user perspective early in the process



User feedback could be used to refine the
design of the final application before the
actual implementation of the project.



The prototype would minimize the risks



It can teach the project team valuable lessons about the best ways to develop the
system.



It will help the development team to determine

the most efficient techniques and tools
to use in development.



It will help the development team to familiar with the tools and technologies to be used
in the projects



It can prove that the design architecture and technologies that are decided are suitab
le
for the actual implementation of
ECMS

system

that
would satisfy the user requirements



The prototype can help both the ECMS users and development teams understand how
the information should be arranged on the screen and how the screens will look like in

the real system. It will help us determine the
best layouts and screen
designs that meet

the user expectations.

1.5 Approaches



The following approach was followed during the ECMS prototyping stage.



Develop High Level design and architecture of the syste
m



Analyze the requirements and identify the key technical challenges



Research suitable technologies and tools to assist development



Develop
proof of concepts
for technically challenges areas



Integrate the Proof of concept to demonstrate the main features of

ECMS to
users



Demonstrate the screen design
s

and
obtain the users feedback

ECMS

Issue:

0.1


Issue Date:
Error! Unknown document
property name.

Error! Unknown document property name.


SE18S07, Institute of Systems Science

Page
4





Standardize development environment and define the project structure



Develop the reusable prototype and demonstrate it to the customer


2.
High Level System Design

J2EE Web
Application Architecture

1)

Model View Controller architecture (MVC)
-

We are adopting the well
-
known and proven MVC architecture for the application
design and development.



Together with the above mentioned architecture following are the
J2EE design patte
rns

identified to be used





Business Delegate



Service Locator

ECMS

Issue:

0.1


Issue Date:
Error! Unknown document
property name.

Error! Unknown document property name.


SE18S07, Institute of Systems Science

Page
5





Front Controller



Data Access Object



Value Object



Interceptors.



Session Facade


2)

Selecting Application Tier


Following are the application’s logival tiers identified to meet the understood
requi
rements. However, the design would be flexible enough to accommodate any
additional tiers if needed later.

1

Client Tier from browser.

2

Web Tier from the server.

3

Business Tier from server.

4

Database Tier.

Approach

Model View Controller architecture (MVC)
-

We
are adopting the well
-
known and proven MVC architecture for the application
design and development.

Together with the above mentioned approach following are the
J2EE design patterns

identified is to use





Business Delegate



Service Locator



Front Controller



Data Access Object

ECMS

Issue:

0.1


Issue Date:
Error! Unknown document
property name.

Error! Unknown document property name.


SE18S07, Institute of Systems Science

Page
6





Value Object



Interceptors.



Session Façade







View



Renders the
Model.



Send user
requests to
controller.

Model



Encapsulate
application
states.



Maintained by
Controller and
refer by View.

Controller



Selects view for
response.



Updates Model
with user
actions.

Changes the
State

Query the state

Select the view

ECMS

Issue:

0.1


Issue Date:
Error! Unknown document
property name.

Error! Unknown document property name.


SE18S07, Institute of Systems Science

Page
7



3. Identification of suitable technologies

and Tools for ECMS

3.1.
Glassfish
Application Server
3.1

or Tomcat 7

3.2.
MySQL Server 5.5


MySQL database is chosen to use in ECMS projects
because

i
t is opensource and
free,
it
has
high performance, high reliability and ease of use. Limitation of budget by users is also one
of the reasons for
choosing MySQL database and the
requirement of the u
sers on data is

within
the limit
ation
of
MySQL.

3.3.
MySQL Workbench 5.2


This is a cross
-
platformGUI tools available for Windows, Linux and Mac that allows us to
graphically work with MySQL databases.

It is easy to install after

downloading the packages.
Using this tool to communicate with database and implementation can



Speed up the development



Simplify the database design and maintenance



Automate the time
-
consuming and error
-
prone tasks



Fully explore and configure the MySQL s
erver, by using one tools instead of using
separate tools (one for database administration and another for data manipulation



Create and run scripts on data



Simplify the documentation of database designs, providing a point
-
and
-
click process
that delivers d
ocumentation in HTML or plain
-
text format.

3.4.
NetBeans IDE 7.0

The reasons why we used Netbeans IDE in ECMS projects are



Free and Open Source



By using the Netbeans IDE, we are joining a
n

open
-
source community of

thousands of users who are ready to help

and contribute should we encounter any

issues with the IDE. The technical discussions and forums, blogs dedicated to

Netbeans are quite helpful and it can greatly improve the user experience for

developers who work with the IDE.

We have considered two
options of IDEs which

are open source and freely available on market; Eclipse and Netbeans. However, In

comparison to Eclipse, Netbeans is really platform
independent unlike Eclipse for

Mac OS
and
mature.
Some of our team members are using Apple Notebooks and Mac

OS,
we found out that
the support of Netbeans on different platform
s

is quite

i
mpressive and stable.


ECMS

Issue:

0.1


Issue Date:
Error! Unknown document
property name.

Error! Unknown document property name.


SE18S07, Institute of Systems Science

Page
8






E
asy to use


Netbeans is easy to install and use. There are several download bundles which
pr
event us going into the plugin hell, like other IDEs. The whole procedure of installation
takes only a few minutes and simple.

All common actions have a keyboard shortcut and
we can create one easily for the uncommon actions just by right clicking on the t
ask and
‘create shortcut’. We believe that using shortcut saves our development time and
enhance productivity.



Look and Feel


Netbeans surpasses Eclipse in this respect and the Netbeans designers try to
improve

little things like icons, splash screen, look

and feel continually. It has more
attractive
and simple look and feel, menu structure, inline and editor

compared to
Eclipse.



Easy to install plugins


It is actually quite easy to install plugins in Netbeans compared to other IDEs. A
single

download provi
des the IDE with
useful

plugins and application server. The

Installation and configuration of Glassfish server within Netbeans can be completed
within a few clicks. As we have decided to use Glassfish application server for ECMS, it is
one of the main
reasons

that Netbeans is used to implement ECMS.




Responsiveness and Performance


Netbeans performance is better compared to other IDEs and deployment is
faster. Redeployment can be done simply by saving the project.



Refactoring tools


The refactoring toos

in
Netbeans allows

us to move, rename and safely delete
any code without much trouble. It provides the features (e.g. introduce Method
) which

is useful for refactoring code blocks and improve our productivity.



Junit Support and java Profiler


Junit is def
ault testing environment in Netbeans and we can simply create the
templteJunti
-
file via Tools
-
> create JUnit Tests and write the test and make them
passing. Netbeans offers a nice UI to show the errors and passes test. It is awesome
feature for us to do t
he Unit testing and fix the error
s

in ECMS
implementation
.

Compared to Eclipse’s profiler, the NetBeans profiler is faster and easier to setup. This
feature is also one of the reasons we have decided to use Netbeans as users of ECMS
expects system to respo
nse them fast and hence we will need to do performance
testing using it.



3.5.
Ext JS

ECMS

Issue:

0.1


Issue Date:
Error! Unknown document
property name.

Error! Unknown document property name.


SE18S07, Institute of Systems Science

Page
9




One of the major concerns of ECMS user is the user interface. Users demand the simple,
user friendly and attractive user interface.

Ext Js can be used to build attrac
tive and very fast
web based GUIs system with minimal effort. It offers an extraordinary range of UI widgets such
as high performance scalable grids, trees and menus to name but a few. The most attractive
aspect of Ext Js is its colorful UI controls. We d
o believe that the enrich UI widgets and its
design can meet the user expectations on ECMS system. Since UI
screen
can be designed with
minimal effort to do the prototype , leaving the code behind for implementation phase, we can
get the user feedbacks on UI early in the SDLC stage and avoid the risks of
deploying

the system
with
UI which user are not satisfied.

3.6. H
ibernate framework

3.7. Spring framework

3.8.
Reporting


Jasper



Heavy focus on

reporting and analysis



Better GUI for server.



Comprehensive documentation.



Ease of use

Pentaho



Better data integration and workflow automation.



Powerful tool but harder to use.



Incomplete documentation.



Supports data mining.


According to the fundamentals
Jasper

is used mainly to focus on reporting, analysis and ease of use,
however
Pentaho

is mainly focused on enterprise integration, workflow and data transformation.

As per the

need of sponsors and by taking care of development team’s
skill, Jasper

report

to be
considered and Pentaho kept as an alternative approach.


4. Scope of Prototype

ECMS

Issue:

0.1


Issue Date:
Error! Unknown document
property name.

Error! Unknown document property name.


SE18S07, Institute of Systems Science

Page
10




This section describes the scope of the ECMS prototype, the details of the work flow for
this chosen use case and the contributing factors that lead us to choosing this particular area of
the system for prototyping.


4.1. Areas covered

The prototype covers the creation

of main job from scratch
and from tracking records,
the display of main job

records and it
s related sub job records and
the CRUD functionalities for
both sub job and main job.

We have chosen

this main job and sub job work
flow

to prototype

because
it
is the
important workflow to ECMS and the creat
ion and maintaining job lists are

what the users are currently doing as part of their everyday job
s
.
Additionally
, this workflow
covers
the

functionalities which are similar to those in other workflows
.

The idea behind this
prototype
is to study the feasibility in

the following areas:



User Interface

The simplicity and user friendliness arethe key features that users have

emphasized on
ECMS user interface.
Creating and demonstrating prototype
of
ECMS help both
the users and development team see how the system would look like and work.

Moreover, it
has assisted us in gaining the feedback from the users on the workflow and UI screen. The
project team has also become familiar with the Ext JS and JSP technologies that we have
decided to use in the implementation phase.

The prototype covers

main job and sub job
creation screen, job listing screen and maintain job screen providing basic user interface
functionalities such as grid and form display.




Technical explor
ation

The development team has an opportun
ity to investigate the possible

i
mplementation
approaches to
meet the user requirement
s

and
try out different coding
techniques to see if they work well.
Different technologies such as
HTML, Jscript, DHTML,
JSP
and ExtJS
has been studied and an

exploration

has been made

into what technology

will work
well to support a certain UI or web feature

that users requested.




Development and deployment environment

We have encountered many technical problems during the initiation phase of

the Prototype since our team members used different IDE and dif
ferent versions of tools.
Finally, we were able to standardize our development environment, successfully set up the
environment according to the standardization and configure the server.




Performance

ECMS

Issue:

0.1


Issue Date:
Error! Unknown document
property name.

Error! Unknown document property name.


SE18S07, Institute of Systems Science

Page
11



Performance requirement is one of the primary
motivations for using Ajax

in ECMS

application. Ajax can improve response time by communicating with the server without full
-
page requests. By reducing response time, we believe that Ajax can provide a significantly
better user experience.




Feasibility an
alysis of CRUD operations

One main workflow of CRUD operations was done successfully during the

the prototype stage and similar technologies and approach could be applied to other workflow.




Identification and Integration of 3
rd

party software

The
identification and integration of 3
rd

party software and libraries also

contribute to the value of this prototype
as it could reduce the risks of project.


5.

Address Key Technical Challenges



The technical challenges of the ECMS system

for each application tier and how we have
solved these challenges during the prototyping stage
will be
discussed in the section.

5.1. Presentation layer


Grid

component
is one of the most widely used
components in ECMS application and
along with this user
s expect to use the enriched features of grid such as sorting, column hiding
and display and virtual scroll with
a large number of records. Users also expect the related
records to be displayed in different tabs in the same popups. This is one of the chall
enges we

have faced during prototyping and the reason why we have decided to create the prototype.

Actions Taken

We have studied a few frameworks such as QooXdoo, JQuery and ExtJs. We skipped
QooXdoo framework because it’s a bit too young and
i
t doesn’t h
ave a solid community and
support yet. Also it did not provide some of the functionality of the grid which is a requirement
for us. The difficulty in finding documentation and examples is one of the reasons we have
decided to give up it.
We have
considered
u
sing
JQuery however, due to its lack of support for UI
elements like ExtJs’s grid and the code complexity it will bring to implement all these features,
we
gave up this option.

Finally we have deci
ded to use

Ext JS because it has the best collection
of UI elements, has one of the biggest communities and good documentation and examples. It
al
so provides good code quality and

readability.


Lessons Learnt

ECMS

Issue:

0.1


Issue Date:
Error! Unknown document
property name.

Error! Unknown document property name.


SE18S07, Institute of Systems Science

Page
12



We have learnt
that,
with JQuery, it is difficult to writ
e to provide the tab view and grid
view with features like editable and sorting. Using plug
-
ins will require
more

efforts.

ExtJs
provides more component and container models

and it
enhancesUI experience
.
We have also
learnt that
its
grid has very lightwei
ght markup, and additional feature
-
specific markup is only
rendered as
differen
t features are enabled and it enhances p
age rendering speed and overall
grid performance.

Users are also satisfied with its UI element design.



5.2.
Business Layer


Initially we have considered two approaches to implement
ECMS

system
. The choices of
these approaches have great impacts on our business layer implementation
. One is to use EJB
and Business Delegate pattern and another one is to use Spring framework. Howev
er, according
to our requirements, we have decided not to use EJB as we on
ly need a lightweight container
and there is a high learning curve to the team due to the
complexity of the EJB programming
model
.

A
ction taken

We have studied EJB and Spring
framework to use in our application.

We have also
studied
Service Locator

and Business Delegate patterns because t
o invoke a method on a local
or remote stateless session bean

in EJB
, client code must normally perform a JNDI lookup to
obtain the (local or
remote) EJB Home object, then use a 'create' method call on that object to
obtain the actual (local or remote) EJB object. One or more methods are then invoked on the
EJB.

We have observed that using
EJB will make it hard to use due to its dependency on Se
rvice
Locator or Business Delegate singletons.

With the Spring approach,
we have created the POJO
classes and classes to process the business
logic to

use
in the

Business Layer. We have created
a separate business layer which we called ‘service’ in our ap
plication and it resides between
controller and data access layer.

Lessons learnt

We have learnt that i
mplementing the Business Delegate pattern
with EJB
typically
results in significant code duplication, where we have to write numerous methods that simply

call the same method on the EJB.

On the other hands, t
he Spring approach allow
s

the creation
and use of proxy objects, normally configured inside a Spring container, which act as codeless
business delegates.
We do not

need to write another Service Locator
, another JNDI lookup, or
duplicate methods in a hand
-
coded Business Delegate unless
we

are actually adding real value
in such code.

We have learnt how to use Spring combining

with its rich supporting functionality
in the area of transactions, ORM and JDBC
access and this approach
is a better choice than
implementing equivalent functionality via an EJB container and EJBs.

We have also learnt that

ECMS

Issue:

0.1


Issue Date:
Error! Unknown document
property name.

Error! Unknown document property name.


SE18S07, Institute of Systems Science

Page
13



Spring drives the architecture

in a direction that more readily supports unit testing. For
example, a mock DAO object

can be injected

to unit test
the

business layer
.


5.3. Data Layer

Similar to other web applications, ECMS
use
s

the JDBC A
PI to access data residing
MySQL database. The

JDBC API enables standard access and manipulation of data in persistent
storage
. D
ata Access Object (DAO
) pattern is used
to abstract and encapsulate all access to the
data source. The DAO manages the connection with the data source to obtain and store
data.

Initially we have used hibernate in ORM mapping and implement DAO pattern.
However,d
ue to
the burden of creating and maintaining a number of mapping files and redundant codes

f
or
opening and closing sessions, we have observed alternative options.

Act
ion Taken


We have studied DAO pattern and how to integrate it with our choice of persistence
framework (Hibernate).

We have identified the tables which are required as entities in ECMS.
We have created the Hibernate Configuration file and entity mapping
files and entity classes.
After
that,

we implemented DAO layer with the required data access function and test the DAO
classes.
Much of our efforts
go

to creating and maintaining ORM Mapping files and
creating the
SessionFactory or dealing with opening/closing sessions. As a better
approach,

we have studies
the possibility of using Spring framework with Hibernate temple in implementing DAO pattern.

We have created spring configuration file and created t
he data source to Mysql in the
configuration
file.

Hibernate
AnnotationSessionFactoryBean
is also configured in the spring
configuration file itself. With this
approach,

we don’t
need a

separate hibernate configuration
file (
hibernate.cfg.xml ) to do this. W
e studied how to use Hibernate annotations
and
lis
t

all the
annotated classes using the
annotate.JsonAutoDetect
. We use a
separate

DAO clas
s to interact
with the database and create one service layer between controller and DAO.

Using setter
injection we inject the
DAO to the classes in service layer.

Lessons Learnt


We have learnt that
Hibernate offers a much more natural way of persisting objects.
Instead of writing JDBC code, hibernate allows
us to

de
al with POJO's and persist

them.

We have learnt that working with Hibernate is easier and more enjoyable than working with
JDBC directly.
However we have also found out that t
he bulk of
our
work lies in
maintaining

OR
Mapping files and there are
lots of cookie cutter try/catch blo
cks and redundant
opening/closing of sessions.

We have also learnt that
Hibernate Template is thread safe and
reusable and easy to use.

With an alternative approach with spring and hibernate, we observed
that it
ha
s a much cleaner and concise
implementation. We also n
otice this
approach

doesn't
ECMS

Issue:

0.1


Issue Date:
Error! Unknown document
property name.

Error! Unknown document property name.


SE18S07, Institute of Systems Science

Page
14



have to deal with creating the SessionFactory or dealing with opening/closing sessions. The
Spring Framework takes c
are of this under the covers.

6.

Obtain Customer Feedback

6.1. Approach

We have worked

closely with ECMS users to ensure that the system that we are going to
implement
meets the requirements and obtain their feedback at the early age.
On the other
hand, in view that we are new to technology ext JS for UI creation, thus at the same time we
n
eed to invest time to familiarize ourselves with the technology and explore its feasibility to
achieve the user requirements. To allow both streamlining of requirements with users and
studying of feasibility of new technology working in parallel
,

we have p
erformed two kinds of
prototypes, horizontal prototype and vertical prototype.
While horizontal prototypes mainly
simulate the functionality of the user interfac
e, vertical prototypes are used
more for
investigating the feasibility or meaningfulness of cer
tain requirements
. Horizontal prototype
illustrate
s

the basic
principle of system
operation and

shed a great deal of light
on partial
aspects of the later vertical prototype
.

The following sub
-
sections will explain the horizontal prototype that we have dev
eloped and
documents the transformation from mock
-
up screen in paper (horizontal prototype) to the
actual implemented UI screen using ext JS (vertical prototype).

6.1.1 Creating the mock
-
up screen

At the early phase, we created mock
-
up screen in paper to
acquire work flows of ECMS system
from user. We have specifically chosen some business functions for prototyping while the rest
of business functions, which bear similarity to the selected ones, are skipped. The following
business functions are prototyped:

-

Customer profile management

-

Shipment tracking management

-

Air import document processing

-

User administration

Through this mock
-
up screen prototype, it has enabled our team to acquire and optimize the workflows
for ECMS, by means of interviews and rounds of discussion with user
on the mock
-
up screens.

The
desired views, windows, data, logic operation

and other pro
perties of the sy
stem are sketched
with

simple drawing

tools

(we are using excel for sketching the screens).

This approach is user
-
oriented and flexible. And it allows us to find the solutions to user request extremely quickly. In
the rounds of interviews
with user, our user has participated actively to point out our
ECMS

Issue:

0.1


Issue Date:
Error! Unknown document
property name.

Error! Unknown document property name.


SE18S07, Institute of Systems Science

Page
15



misunderstanding on the user requirements, and worked together with us on the paper
prototype to streamline the ECMS work flow, some of which were not anticipated in the earlier
phase when docu
menting user requirement specification.

Not only that we have used this prototype to elicitate the user interface requirements from
user, we have also used this internally to facilitate discus
sions among

team members

which in
turn has helped them visualiz
e

the user requirements

and ease the communication in
understanding user requirements
.

This prototype serves to baseline a set of user interface specifications for the later vertical
prototype implemented using ext JS.

The later prototype created using ext

JS has worked on the workflow for air import document
processing.
Thus, t
he following screens for main job a
nd sub job workflows are put up here to
illustrate the transformation from mock
-
up screen (illustrated in this sub
-
section) to actual
implemented p
rototype using ext JS (illustrated in section 6.2).
The remaining
of mock
-
up screen
prototyped is detailed in user interface specification.

ECMS

Issue:

0.1


Issue Date:
Error! Unknown document
property name.

Error! Unknown document property name.


SE18S07, Institute of Systems Science

Page
16



Import Document Processing First Page
-

Air Job Record List


List Jobs by Month
Jan
Year
2011
Month and Year of Job
Job Number
ETA
Port of Loading
Flight Number
Jan-2011
A/IM/11-01015
28.02.11
Milan
CX375
Jan-2011
A/IM/11-01014
06.03.11
Shanghai
006E
Jan-2011
A/IM/11-01013
28.02.11
Milan
CX375
Jan-2011
A/IM/11-01012
06.03.11
Shanghai
006E
Jan-2011
A/IM/11-01011
28.02.11
Milan
CX375
Jan-2011
A/IM/11-01010
06.03.11
Shanghai
006E
Jan-2011
A/IM/11-01009
28.02.11
Milan
CX375
Jan-2011
A/IM/11-01008
06.03.11
Shanghai
006E
Jan-2011
A/IM/11-01007
28.02.11
Milan
CX375
Jan-2011
A/IM/11-01006
06.03.11
Shanghai
006E
Jan-2011
A/IM/11-01005
28.02.11
Milan
CX375
Jan-2011
A/IM/11-01004
06.03.11
Shanghai
006E
Jan-2011
A/IM/11-01003
28.02.11
Milan
CX375
Jan-2011
A/IM/11-01002
06.03.11
Shanghai
006E
Jan-2011
A/IM/11-01001
06.03.11
Shanghai
006E
Air Job List
Add Job
Delete Job
Search Job
ECMS

Issue:

0.1


Issue Date:
Error! Unknown document
property name.

Error! Unknown document property name.


SE18S07, Institute of Systems Science

Page
17



This page is presented when user select
s

one record from air job list and double click.


New Record
From Tracking
Port of Origin
Vessel
ETA
Month and Year of Job
Job Number
ETA (dd.mm.yy)
MAWB Number
HAWB Number
Port of Origin
Port of Discharge
Flight Number
Cost 1 (SGD)
1015.00
Cost 2 (SGD)
25.00
Cost 3 (SGD)
60.00
Cost 4 (SGD)
00.00
Total Invoice Amt
744.00
Profit / Loss (SGD)
356.00
Customer Order Number
Customer Name
Customer Supplier
Invoice Number
Invoice Amt
A/IM/11-02050-1
Dou Yee Enterprise
Levosil S.P.A.
A110001
1456.00
A/IM/11-02050-2
ABC
Nogon
A110002
1745.00
A/IM/11-02050-3
Dou Yee Enterprise
Levosil S.P.A.
A110001
1456.00
A/IM/11-02050-4
ABC
Nogon
A110002
1745.00
A/IM/11-02050-5
Dou Yee Enterprise
Levosil S.P.A.
A110001
1456.00
Job Details
Feb-2011
A/IM/11-02050
28.02.11
HAWB number
MIL (Milan)
CX375
160 36985214
MIL (Milan)
MIL (Milan)
GW Bridge
28.02.11
Add Customer
order
Delete Customer
Order
Delete
OK
Cancel
Import
ECMS

Issue:

0.1


Issue Date:
Error! Unknown document
property name.

Error! Unknown document property name.


SE18S07, Institute of Systems Science

Page
18



This page is presented when user s
elect
s

one sub
-
job rec
ord from 'Job Details' page

ECMS

Issue:

0.1


Issue Date:
Error! Unknown document
property name.

Error! Unknown document property name.


SE18S07, Institute of Systems Science

Page
19




Agent
Invoice Number
Customer Order Number
Voyage / Flight Number
006E
Vessel Name / MAWB Number
HBL Number / HAWB Number
Flight Details
CV7306
ETA (dd.mm.yy)
28.02.11
MAWB Number
172 68003191
Port of Origin
Port of Discharge
Port of Loading
Port of Destination
Incoterms
Exchange Rate
Contact Person Name
Shipper
China Machine
Consignee
Nilfisk Advance Pte Ltd
Collection Address
Delivery Address
Freight Term
Mark and Number
Number of Packages and Type
Description of Goods
Weight
Measurement
Total Number of Package in Word
Sale Person from WWW Cargo
Nelly
Customer Order Details
3L-SHA
S110005
1 pkg (Package)
Pump
148.00 kgs
1.02cbm
One package only
A/IM/11-02050-1
Zenit Asia Pacific Pte Ltd 17 Link rd. Singapore 619034 CTC : Ms
Grace Tel.: 62681006
EXW
-
AGI Freight (S) Pte Ltd 101 ALPS Avenue #01-01 Singapore
498793
Shanghai
Singapore
EXW
1.29:USD
Mr Gilbet / Mr Ong
Hanjin Taipei
3LSHA11002233
Shanghai
Shanghai
Delete
OK
Cancel
View Costing Sheet
View Delivery Note
ECMS

Issue:

0.1


Issue Date:
Error! Unknown document
property name.

Error! Unknown document property name.


SE18S07, Institute of Systems Science

Page
20



6.1.2 Creating the prototype

using ext JS

The prototype covers the main job and sub job work flows and its CRUD
operations

which is the
highest priority work flow to the system
.

We have implemented this prototype with a view to
demonstrate the users how the project is progressing and give them the opportunities to
provide feedbacks and inputs to the system.

We imp
lemented the prototype by:



Standardizing and setting up the development and deployment environment



Establishing the project structure and
policies for source code configuration
management (to use svn and commit/ update the source code versions)



Implement t
he

main job and sub job work flow

to provide agreed functionalities

Prototyping was also used to educate
the
team members who are new to
the technologies and
tools
used in ECMS system

and allowed them to learn the codes written by more experienced
team mem
bers.
This

stage

is used as a training or knowledge transfer step
between team
members

to
narrows the

gaps of
technical skills
between
them.

6.1.3

Demonstrate the prototype

The prototype was demonstrated to the user to collect their feedback at the early stage of the
project. It minimizes the risk of delivering the system which does not meet user expectations
and allows us to take the corrective actions in the early stage in
case
we

are in the wrong
direction.

6.2. Prototype development and walkthrough

Upon

successful login to the ECMS system,

the listing page for the main jobs will appear.

Please refer to Figure 1. Mainjob Listing screen

ECMS

Issue:

0.1


Issue Date:
Error! Unknown document
property name.

Error! Unknown document property name.


SE18S07, Institute of Systems Science

Page
21




Figure 1.Mainjob Listing screen

User

can do the sorting to the columns they preferred and also hide or display the columns as
displayed in Figure 2. Mainjob Listing screen with sorting

ECMS

Issue:

0.1


Issue Date:
Error! Unknown document
property name.

Error! Unknown document property name.


SE18S07, Institute of Systems Science

Page
22





Figure 2.Mainjob Listing screen with sorting











ECMS

Issue:

0.1


Issue Date:
Error! Unknown document
property name.

Error! Unknown document property name.


SE18S07, Institute of Systems Science

Page
23





As per user’s request, we provide the Editable
grid which will allow them to edit the existing
records or add the new records to the system.



Figure 3: Add/Update Mainjobs

Users can view the main job details and sub job details by clicking the

show details’ button on
the main job listing screen.

Th
e details will be displayed in separate tabs as per user request.
Please refer to Figure 4. Mainjob details screen and Figure 5. Subjob details screen.

ECMS

Issue:

0.1


Issue Date:
Error! Unknown document
property name.

Error! Unknown document property name.


SE18S07, Institute of Systems Science

Page
24




Figure 4.Mainjob details screen


ECMS

Issue:

0.1


Issue Date:
Error! Unknown document
property name.

Error! Unknown document property name.


SE18S07, Institute of Systems Science

Page
25




Figure 5.Subjob details screen.

6.3. Benefit of Prototype



We were a
ble to collect the feedbacks from the users and made necessary
modifications to the workflow
.



It improved our understanding of ECMS business flow and proposed suitable
solutions to achieve ECMS’s business goal.



ECMS management realized how effectively our
system improves their
productivity and streamline their business functions (Currently, they are using
excel application for their daily business functions and maintain all the data in
excel sheet.)



All the project team members have become familiar with the

tools and
technologies to be used in ECMS project



All the project team members have gained hands
-
on experience on how to
implement the ECMS system.



All the project team members have strong confidence on successful delivery
of
our ECMS system to the users
at the end of the project
.


ECMS

Issue:

0.1


Issue Date:
Error! Unknown document
property name.

Error! Unknown document property name.


SE18S07, Institute of Systems Science

Page
26




7. Aid Team Training and Knowledge Transfer


Improving the technical skills of the team members and their
experience on tools is one
of the key objectives of creating prototyping. Prototyping phase has, in fact, offered an
oppo
rtunity to our team members to learn the new technologies and tools which are to be
used in the actual implementation phase and this will, in turn, assists us in producing high
quality product and enhance our productivity in the implementation.


During thi
s prototyping phase, we have identified the appropriate tools and open source
components to be used and the development approach to be followed.

While making these
decisions, we took into account the technical skills and interest of the team membe
rs, the
e
xpected learning curve,
the availability of documentations and reference books and the
suitable of these technologies to our system requirements.


Since the very beginning stage of the project, our team members are advised and
encouraged to read the refere
nce books and documentations on various technologies which
would be employed.


7.1. Development Environment


The major lessons that we have learnt from our prototyping phase include



different development environment between team members



different level of

experience on various platforms and technologies among them



unrealistic expectations of more experienced members on the learning curve



the expected and actual effort required to pick up the various technologies and
tools which are required for the succes
sful delivery of the ECMS system.

To address all these challenges, we have standardized our development environments to use
the same versions of tools, frameworks and libraries and set up the standard project structure.
We have also organized some knowledg
e sharing sections between team members with more
hand on experiences and team members who are new or less experience. The following
section, ‘project structure’ will mention the details of our project structure.


7.2. Project structure

7.2.1.
Configuration Files

7.2.2
.

WEB
-
INF/Lib

ECMS

Issue:

0.1


Issue Date:
Error! Unknown document
property name.

Error! Unknown document property name.


SE18S07, Institute of Systems Science

Page
27




This folder contains all the library files used in the ECMS system.


7.2.3. WEB
-
INF/
Spring


This folder contains spring configuration file

(
app
-
config.xml
)

and data source
configuration file (
db
-
config.xml
).

7.2.4.
js


This is the place where all the Ext Js files are stored.

7.2.5. ecms.dao


This is for all the DAO classes which perform the data access to the database.

7.2.6. ecms.model


The
folder contains all the entity classes used in ECMS system.

7.2.7
. ecms.serv
ice


This folder contains all the services classes for the business layer which resides between
DAO and controller.

7.2.8
. ecms.controller


This includes all the controller classes ( Mainjobcontroller, subjobContoller)

7.2.9
. ecms.util


All the utilities f
unctions used within the ECMS project are stored in this folder.