Sie sind auf Seite 1von 3

Career episode 3

a) Introduction
In this narrative I would like to describe my participation in the project Archive Tracking System
for Ministry of inance of !epublic of "#bekistan$ This project took place in Tashkent$ I
participated in this project as a member of AS%T development team$ The project started in March
&''& and was finished by summer &''&$
b) Background
In the beginning of &''& IT department of Ministry of inance conducted an internal research and
concluded that there is a need for a system that will track documents in their archives$ This was just
another step in the moderni#ation and computeri#ation effort declared by the government and
president of the "#bekistan$ The purpose of this system is to serve as some kind of inde( to the vast
archive of documents of Ministry of inance$ or e(ample) some documents are kept in the archive
up to seventy years$ I personally see this system as a computeri#ed library of documents plus
some additional features$ *mployees of Ministry of inance in this case are users of this library
since they are allowed to temporarily borrow documents from archive$ This system also helps to
identify documents with the e(pired retention period$ Such documents are then removed from the
archive and destroyed$
Archive Tracking System reflects the internal structure of the archive$
It has following features+
,ata editing
Search
!eports
Tracking of the documents taken from the archive
-ustomi#able access control to program.s functions
Multilingual interface with user editable labels$
IT department of Ministry of inance provided us with the very detailed specification$ Also they
assigned a person to the project who we mainly contacted with$ /roject team for this program
consisted only of two developers$ 0e did not have an analysis team this time since all the research
and the re1uirements analysis were done for us by the Ministry of inance stuff$ They also re1uested
heavy comments usage in the code$
2ur team was organi#ed as follows+
34 /roject leader 5and developer at the same time4
&4 ,eveloper 5me4
In this project my responsibilities included+
34 "ser management subsystem
&4 Multilingual support
64 7eneral coding
84 0riting parts of the "ser Manual
c) Personal Workplace Activity
The system is written in %orland ,elphi 9 and uses Interbase 9 as a database$ The only reason for
this is that Ministry of inance.s IT team prefers these two products$ This was my very first
e(perience with Interbase$ Also I never programmed in /ascal or ,elphi before) but since -::
%uilder and ,elphi share the same library ; <-= it was only a 1uestion of learning a new synta()
which is not difficult after 9 years of -:: e(perience with its comple( set of rules$ I used a couple
of books) our firm bought earlier for this purpose$ %orland.s -:: %uilder had been my primary
development tool since 3>>?$ @owever recently they modified at least two of their flagship products
; ,elphi and -:: %uilder in a way that many of their users) including me) feel to be wrong$ In fact
they are effectively terminating -:: %uilder product line$ Thus I decided to switch to Microsoft.s
<isual -:: $A*T &''6$
My Involvement.
34 "ser management subsystem$
I designed and wrote a user right.s management subsystem for this program$ *ach user is identified
by username and password$ Any user can be a member of #ero or more groups$ !ights are assigned
to groups$ I tried to use 0indows AT security as a sample) but I removed assignment of rights
directly to the user$ Also I didn.t include a deny access option since it was unnecessary for this
particular system$ I chose that security model for this purpose because I studied it earlier using
MS,A as a part of my self;development activities$
!ights control enforcement is based on a <-= concept and component+ action$ In action centred
user interface design application logic is mainly encapsulated in actions and all relevant events such
as button clicks and menu item selections are linked to their respective actions$ ,isabling the action
also disables all controls associated with it$ I decided to use this feature to implement the user rights
management$ I assigned a uni1ue I, to each action and used them to identify functions that can be
accessed by the concrete group of users$
-onfiguration is read from database tables$ 2f course it would be more correct to enforce security
on the database level rather than on application level) for instance using Interbase users and groups
table access control$ @owever for this project it would probably be overkill since the system is not
intended to withstand any serious hacker attack$ "ser rights management is there to reduce user.s
ability to unintentionally damage database integrity or interfere with other user.s work$ Also this
feature is used to customi#e the set of functions available to users through administration rather than
through modification of application code$
&4 Multilingual support$
According to the specification of this system) administrator must have a way to edit everything that
is displayed as te(t in the user interface including report templates$ This is because some users
prefer to use either !ussian or "#bek 5-yrillic or =atin script4 or even both$ ,elphi.s built;in
support has not worked for us due to its limitations B users cannot alter everything) also even
programmers themselves cannot access every te(t string in the application$
So we consulted with Ministry of inance stuff and decided to write our custom support$ Although
was 1uite an une(pected and significant increase in the amount of work to be done) we still found it
to be feasible to implement this feature without increasing budget of the project and with only a
slight project schedule correction$ This task was assigned to me$ Actually I volunteered myself as I
always do) since it is much more fun for me to do things that are not very trivial instead of doing
routine visual programming$ or this task I used the fact) that all component instances in <-= are
organi#ed in a tree;like structure$ Since we can access the root of the tree B the application object B
we can access any of its braches and leafs$ I wrote a function that traverses the tree of controls and
calls a handler for each type of control) supplying its position in the tree among other parameters to
the handler$ *ach component is then referred by its name+
Application$Mainorm$control3$control33Ccontrolnn$ It later enabled me to create a user interface
presenting all the names in the application in form of the tree which is much more convenient than)
say) a list sorted alphabetically) because it groups controls in a natural manner e(pected by user$
Since this was the first time I cooperated with other developer working together on the single build
unit) I proposed to use a concurrent version system 5-<S4$ or this project we chose %orland.s
Teamsource$ *ven this is not the best tool on the market for this purpose it did help us a lot
managing our source files and documents$ I also made some forms and reports) nothing special) just
usual work$
d) Summary
The program we created is used now on a daily basis in Ministry of inance) users are satisfied with
its performance and features a lot$ ew bugs were discovered and 1uickly fi(ed$
*ven this was a relatively simple project I found the way to apply my knowledge and skills doing
some more advanced things$ In my belief the system benefited substantially from my input as well
as from my colleague.s$ I also demonstrated 1uick learner traits) as I became familiar with ,elphi
within a week or so$

Das könnte Ihnen auch gefallen