Trevor G. Leybourne, PMP
Trevor is a Project
Manager for a Legal
Practice Management
Software Development
company based in
Auckland, New Zealand,
who has been developing
software for over
25 years.
| "IdeaBlade
took
away
the tediousness
of manually
developing
the data
access
layer
and UI
binding
and left
us to
concentrate
on the
functional
implementation." |
Trevor
G. Leybourne, PMP
|
Solution
Overview
The exam questions
and answers needed
to be in an easy
to maintain format,
but with multiple
levels of categorization
matching the
categories defined
by the PMI. The
questions would
be maintained
by different
people in a disconnected
manner with the
ability to synchronize
any new or changed
questions to
a central database.
The idea was
that a student
could ask the
application to
generate a random
exam using a
multitude of
criteria, which
could include
question level
(beginner, advanced,
expert), PMI
process groups
and PMI knowledge
areas, how they
had rated on
questions before,
or to weight
the types of
questions based
on the results
from previous
test exams.
Once an exam
had been generated,
it would operate
in a similar
way to the real
exam and would
have a full review
mode “post-grading” so
that the student
could review
each exam, seeing
where they had
gone wrong, and
why they had
gone wrong.
Trevor also
wanted to track
each exam attempt
so that the students
could see progress
and could compare
exams and results
over time.
Selection
Process
The original
idea was to
use serializable
entity objects,
but once Trevor
thought through
the design
further, it
became obvious
that this would
make the development
quite complex
due to the
way the data
needed to be
accessed and
sorted, and
to provide
the ability
to work offline
and yet sync
the data back
to a central
store. Trevor
has been using
IdeaBlade to
develop a Project
Management
application
for managing
agile software
development
projects and
so the selection
of IdeaBlade
was an obvious
choice.
Once the database
design was
sketched out
in SQL Server,
it took less
than an hour
to use IdeaBlade
to generate
a data access
layer over
the database.
The development
of the initial
UI was as easy
as developing
the data access
layer thanks
to the help
of IdeaBlade.
Using the ControlBindingManager,
the UI was
quickly mapped
to entity objects
in the database
to build the
question editor
and the exam
simulator and
review screens.
For the exam
generator,
a Wizard process
was used which
led the user
through the
different options
to generate
the questions
which in turn
built up an
IdeaBlade “Query
Object” to
query the database
for the random
question selection.
Finally the
application
needed to be
able to be
used without
a permanently
connected database,
but did need
the benefits
SQL server.
Using the off
line capabilities
of IdeaBlade,
the database
structure was
cached to an
entity set
which is used
by the students
for the normal
operation of
the application
(disconnected).
The various
group mentors
can then use
the application
offline to
create and
maintain the
questions,
and then connect
to a central
database to
synchronize
those changes.
Status/Result/Outcome
The
simulator has
been a huge success
with the first
study group,
and it has been
helping them
to prepare for
the upcoming
exams. A second
group is about
to start to use
the simulator
after which time
it will roll
out to other
groups.
Although this
is not an overly
complex application,
it does have
quite a few smarts
that would have
been difficult
to accomplish
without the use
of IdeaBlade.
It demonstrates
how IdeaBlade
removes the complexity
and drudgery
of managing the
data layer and
UI binding leaving
the developer
to focus on the
functional requirements
and design.
Having developed
data access layers
using both proprietary
and open source
solutions in
the past, IdeaBlade
has been joy
to work with,
and has made
the process so
much simpler
and without the
need to write
XML to define
entity to table
mappers. The
development of
the simulator
needed to occur
in a very short
time frame, and
this would not
have been possible
without IdeaBlade
generating the
core of the application.
View
a full size
screen shot
of their application
|