| The following is a copy of information I have given to
'code-bashers'. It contains updated information on Standards for
Tools, as well as the code to accomplish this, and accounting
details.
Alan.
*******************************************************************
BAS_TOOLS.HLP 17-AUG-89
-------------
I have mentioned to several 'code_bashers' a desire to
have our local diagnosis tools located in specific sub-directories
and invoked using a standard method, as well as ensuring these tools
are transportable.
Alan.
Some of the issues that have arisen are :-
Speed of access
Transportability of files
Security
Location of files
Accounting
Support of code
TIMA
Ownership of Programs
********* SOME THOUGHTS ***********
Transportability
----------------
Files for one diagnostic should be held in a sub-directory.
Access to any of these files should be made through a full file
specification. The file spec should be set up prior to the diagnostic
being executed.
Security
--------
All files should have the Digital Banner as a header.
Programs should always be given maximum security using
ACL's / VMS protection as required.
Location of files
------------------
Sub-directories of TOOLS$DIR is where all tools should
reside.
Accounting
----------
An accounting package should be available for each program.
This will be useful for calculating system resources, identifying
which tools are being used, and giving other offices a method of
quickly ascertaining what programs are likely to be most use to them.
Support of Code
---------------
The work we are doing is best efforts. There is no
obligation for anyone to support their code. (It would be much
appreciated though if code was supported!)
Standardisation of Programs
---------------------------
The method of storage, invoking, and accounting should be
the same for all tools.
Ownership
---------
Code written by ourselves should be seen as belonging to
Digital. We should all be prepared to have our programs shipped to
other Digital Support Centres or submitted to TIMA. Hopefully we
will be rewarded for our good work by obtaining access to programs
from other sources.
******** CONCEPT ********
The following pages show a concept we could adopt to achieve
standardisation.
Advantages of this concept are :-
1. The process is simple and transportable.
2. Code is already written.
3. To use this process requires little or no work to be done
to existing tools.
4. Tools from other support centres can be accomodated.
5. Basingstoke can easily "dump" it's tools from the standard
sub-directories onto another Digital Centre.
6. By keeping tools from different Centres in the same structure,
but in different sub-directories, the developers of these tools
retain the incentive to maintain their products.
7. Conforming to a standard and making our tools transportable
will make them more suitable for TIMA.
8. Tools run using this method will go via an accounting package.
This is helpful to other centres in ascertaining how useful a
tool might be, and for calculating system resources.
9. Flags assigned to a tool will be seen in the accounting package.
The present flags show whether a tool is in TIMA or whether it
is currently supported.
10. Existing Menu systems can be made to access tools using this
same method.
Disadvantages :-
1. Greater system overhead
2. Manually accessing Files not so easy.
**** TOOLS LAYOUT ****
TOOLS$DIR
|
|
(login.com)
(login.bas)
(bas_tools.hlp)
|
|
<--------------------------------------------------------------//
| | |
[.bas_admin] [.bas_tools] [.bas_misc]
| | |
| | |
(Basingstoke (Basingstoke (Basingstoke
admin tools) diagnostic Other
tools) Tools/Files)
|
|
------------------------
| | |
[.mc_chk] [.rpo6] [.fubar]
//--------------------------------------------------------------//
| |
[.VLB_TOOLS] [.xxx_TOOLS]
| |
| |
(Valbonne (xxx
diagnostic diagnostic
tools) tools)
| |
| |
----------------------- ----------------------
| | | | | |
//------------------------------------------------------------>
| |
[.world_tools] [.account]
| |
| |
(diagnostic (Accounting
tools) Files)
|
|
------------------------
| | |
[.dsaerr] [.block] [.fsterr]
Tools_login.com
---------------
$ ! **** TOOLS_LOGIN.COM ****
$ !
$ ! *********************************************************************
$ ! SET UP TOOLS$DIR
$ !
$ ! ***** TOOLS$DIR MUST BE SET UP FOR EACH SITE. *****
$ !
$ ! ***** This will be the only logical that has *****
$ ! ***** to be set up. All other logicals are *****
$ ! ***** set up from this logical. *****
$ !
$ define/nolog tools$dir rsws$disk:[basingstoke.tools] ! Basingstoke
$ !
$ ! *********************************************************************
$ !
$ @ TOOLS$DIR:LOGIN.BAS ! SET UP BASINGSTOKE TOOLS
$ !
$ ! *********************************************************************
$ ! *** SET UP WORLD TOOLS ***
$ !
$ ! P1 = name of tool
$ ! p2 = flags (T = Tool submitted to TIMA)
$ ! (FLAGS = no flags)
$ ! P3 = name of sub directory off of tools$dir
$ !
$ block :== @tools$acnt:tools_init.com BLOCK FLAGS WORLD_TOOLS
$ dsaerr :== @tools$acnt:tools_init.com DSAERR FLAGS WORLD_TOOLS
$ fsterr :== @tools$acnt:tools_init.com FSTERR FLAGS WORLD_TOOLS
$ !
$ !
$ ! *********************************************************************
$ ! *** SET UP ACCOUNTING AS SUB-DIRECTORY OF TOOLS$DIR ***
$ !
$ tools$acnt = f$trnlnm("tools$dir") - "]"
$ define/nolog tools$acnt "''tools$acnt'.account]"
$ !
$ ! *********************************************************************
$ !
$ exit
Basingstoke_login.com
---------------------
$ ! LOGIN.BAS
$ ! *********
$ !
$ ! P1 = name of tool
$ ! p2 = flags (T = Tool submitted to TIMA)
$ ! P3 = name of sub directory off of tools$dir
$ !
$ !
$ ! *** DIAGNOSIS TOOLS ***
$ !
$ dsa_ra81 :== @tools$acnt:tools_init.com DSA_RA81 T BAS_TOOLS
$ ndt :== @tools$acnt:tools_init.com NDT FLAGS BAS_TOOLS
$ !
$ !
$ ! *** ADMIN TOOLS ***
$ !
$ weekplan :== @tools$acnt:tools_init.com WEEKPLAN FLAGS BAS_ADMIN
$ !
$ !
$ ! *** TEST TOOLS ***
$ !
$ dectree :== @tools$acnt:tools_init.com DECTREE FLAGS BAS_TEST
$ !
$ ! *********************************************************************
$ !
$ exit
Tools_Init.Com
--------------
$ ! TOOLS_INIT.COM
$ ! **************
$ !
$ ! THIS FILE WILL BE INVOKED EVERY TIME A TOOL IS RUN
$ !
$ ! P1 = name of tool
$ ! P2 = flags (T = TIMA)
$ ! P3 = name of sub-directory off of tools$dir
$ !
$ ! *********************************************************
$ ! CALCULATE FILE SPEC FOR TOOL
$ !
$ file = f$trnlnm("tools$dir") - "]"
$ !
$ def/nolog tool$file_spec "''file'.''P3'.''P1']"
$ !
$ ! ( tool$file_spec = ['tools$dir' + sub-directory name] . toolname )
$ !
$ ! ********************************************************************
$ ! INVOKE ACCOUNTING
$ !
$ ! Calculate time
$ !
$ time = f$time()
$ mon = f$extract (3,3,time)
$ year = f$extract (9,2,time)
$ date = f$extract (0,12,time)
$ !
$ ! Calculate process name
$ !
$ prcnam = f$getjpi("","prcnam")
$ prcnam = f$edit(prcnam,"upcase")+" "
$ prcnam = f$extract (0,12,prcnam)
$ !
$ ! Calculate name of tool
$ !
$ tool = f$edit(P1,"upcase")+" "
$ tool = f$extract (0,14,tool)
$ !
$ ! Calculate sub-directory holding tool
$ !
$ sub_dir = f$edit(P3,"upcase")+" "
$ sub_dir = f$extract (0,18,sub_dir)
$ !
$ ! Add "TIMA" to FLGS if "T" found.
$ !
$ flgs := ""
$ if "''p2'" .eqs. "FLAGS" then $goto flgs_end
$ if f$locate("T",p2) .eqs. f$length(p2) then $goto unsupp
$ flgs = "''flgs'" + "T "
$ !
$ ! Add "UNSUPP" to FLGS if "U" found.
$ !
$ unsupp:
$ if f$locate("U",p2) .eqs. f$length(p2) then $goto flgs_end
$ flgs = "''flgs'" + "U "
$ !
$ flgs_end:
$ flgs = f$edit(flgs,"upcase")+" "
$ flgs = f$extract (0,12,flgs)
$ !
$ ! *** Write data to Current Accounting File ***
$ !
$ open/append/share/err=app_err acnt tools$acnt:acnt_'mon''year'.dat
$ goto acnt_wr
$ app_err:
$ open/write/share acnt tools$acnt:acnt_'mon''year'.dat
$ acnt_wr:
$ write acnt "''date' ''tool' ''sub_dir' ''flgs' ''prcnam' "
$ close acnt
$ !
$ ! *********************************************************
$ ! RUN THE TOOL
$ !
$ tool_file_spec = "''file'.''P3'.''P1']"
$ !
$ @'tool_file_spec''P1'.com
$ !
$ exit
Usage Summary
-------------
$ ! ***** TOTALS.COM ****
$ !
$ ! Produce tool usage summaries from monthly files created by
$ ! TOOLS_INIT.COM
$ !
$ ws := write sys$output
$ !
$ time = f$time()
$ mon = f$extract (3,3,time)
$ year = f$extract (9,2,time)
$ !
$ on control_c then goto exit
$ ws ""
$ ws " TOOL USAGE CALCULATOR"
$ ws " ---------------------"
$ ws ""
$ ws ""
$ ws ""
$ read/prompt=" Type name of Data File (e.g tools$acnt:acnt_jan89.dat) > " sys$command data_file
$ data_file = f$edit(data_file,"upcase")
$ ws ""
$ ws ""
$ ws ""
$ ws " ......creating TOTAL_''mon'''year'.DAT"
$ ws ""
$ ws ""
$ !
$ sort/key=(pos:15,size:47) 'data_file' sort.tmp
$ !
$ open/write totals total_'mon''year'.dat
$ open/read sort sort.tmp
$ !
$ write totals ""
$ write totals " DIAGNOSIS TOOL USAGE"
$ write totals " --------------------"
$ write totals ""
$ write totals " Totals from ''data_file'"
$ write totals ""
$ write totals " T = Tools in TIMA"
$ write totals " U = Tool Unsupported"
$ write totals ""
$ write totals ""
$ write totals " COUNT TOOL DIRECTORY FLAGS"
$ write totals ""
$ !
$ eof = 0
$ entry = "dummy"
$ total = 0
$ count = 0
$ !
$ rd_entries:
$ read /end_of_file=rd_eof sort line
$ goto extract
$ rd_eof:
$ eof = 1
$ goto bad_match
$ extract:
$ line_entry = f$extract (15,47,line)
$ if entry .nes. line_entry then goto bad_match
$ total = total+1
$ count = count+1
$ if eof .eq. 1 then goto bad_match
$ goto rd_entries
$ !
$ bad_match:
$ if entry .eqs. "dummy" then goto dum
$ if entry .eqs. "" then goto dum
$ total = total+1
$ count=count+1
$ write totals " ''count' ''entry'"
$ entry = line_entry
$ if eof .eq. 1 then goto finish
$ count=0
$ goto rd_entries
$ dum:
$ entry = line_entry
$ count = 0
$ total = 0
$ goto rd_entries
$ !
$ !
$ finish:
$ write totals " "
$ write totals " "
$ write totals " Total entries = ''total'"
$ write totals " "
$ write totals " "
$ ws " Totals are in TOTAL_''mon'''year'.DAT"
$ !
$ exit:
$ delete sort.tmp;*
$ close sort
$ close totals
$ ws ""
$ ws ""
$ exit
Accounting
----------
The following data is created monthly by TOOLS_INIT.COM
17-AUG-1989 NDT BAS_TOOLS JAMES
17-AUG-1989 DSAERR WORLD_TOOLS JAMES
17-AUG-1989 NDT BAS_TOOLS JAMES
17-AUG-1989 FSTERR WORLD_TOOLS JAMES
17-AUG-1989 WEEKPLAN BAS_ADMIN JAMES
17-AUG-1989 WEEKPLAN BAS_ADMIN JAMES
17-AUG-1989 DSA_RA81 BAS_TOOLS T U JAMES
17-AUG-1989 DSA_RA81 BAS_TOOLS T U JAMES
17-AUG-1989 DSA_RA81 BAS_TOOLS T U JAMES
17-AUG-1989 FSTERR WORLD_TOOLS JAMES
17-AUG-1989 BLOCK WORLD_TOOLS T JAMES
17-AUG-1989 FSTERR WORLD_TOOLS JAMES
17-AUG-1989 NDT BAS_TOOLS JAMES
17-AUG-1989 NDT BAS_TOOLS JAMES
The following is created by TOTALS.COM :-
DIAGNOSIS TOOL USAGE
--------------------
Totals from ACNT_AUG89.DAT
T = Tools in TIMA
U = Tool Unsupported
COUNT TOOL DIRECTORY FLAGS
1 BLOCK WORLD_TOOLS T
1 DSAERR WORLD_TOOLS
3 DSA_RA81 BAS_TOOLS T U
3 FSTERR WORLD_TOOLS
4 NDT BAS_TOOLS
2 WEEKPLAN BAS_ADMIN
Total entries = 14
File Layout
-----------
Directory of "tools$dir"[...]
Directory $44$DUS102:[BASINGSTOKE.TOOLS]
ACCOUNT.DIR;1 2 11-AUG-1989 12:40:10.10
BAS_ADMIN.DIR;1 1 19-JUL-1989 13:52:46.64
BAS_MAINT.COM;3 3 14-AUG-1989 16:36:55.45
BAS_MISC.DIR;1 1 10-AUG-1989 17:37:49.36
BAS_TOOLS.DIR;1 1 19-JUL-1989 13:53:09.84
BAS_TOOLS.HLP;17 39 17-AUG-1989 14:14:03.58
BAS_TOOLS.TJL;1 10 17-AUG-1989 14:36:17.10
LOGIN.BAS;15 2 17-AUG-1989 11:10:39.54
LOGIN.COM;10 4 16-AUG-1989 15:16:19.30
WORLD_TOOLS.DIR;1 1 11-AUG-1989 17:18:12.37
Total of 10 files, 64 blocks.
Directory $44$DUS102:[BASINGSTOKE.TOOLS.ACCOUNT]
ACNT_AUG89.DAT;2 3 17-AUG-1989 13:53:38.24
ACNT_JUL89.DAT;1 2 20-JUL-1989 15:26:14.43
TOOLS_INIT.COM;42 5 17-AUG-1989 11:49:27.94
TOTALS.COM;24 5 17-AUG-1989 14:35:20.44
TOTAL_AUG89.DAT;10 2 17-AUG-1989 14:03:33.99
Total of 5 files, 17 blocks.
Directory $44$DUS102:[BASINGSTOKE.TOOLS.BAS_ADMIN]
WEEKPLAN.DIR;1 1 11-AUG-1989 12:28:06.32
Total of 1 file, 1 block.
Directory $44$DUS102:[BASINGSTOKE.TOOLS.BAS_ADMIN.WEEKPLAN]
FRONT.BAS;106 32 11-AUG-1989 12:32:54.13
FRONT.EXE;46 18 11-AUG-1989 12:33:07.77
NEWAVA.DAT;2 273 25-JUL-1989 14:50:34.57
STAFF.DAT;2 1 25-JUL-1989 12:28:00.91
WEEKPLAN.BAS;41 50 11-AUG-1989 12:34:09.26
WEEKPLAN.COM;17 1 11-AUG-1989 12:34:51.68
WEEKPLAN.EXE;29 29 11-AUG-1989 12:34:21.54
Total of 7 files, 404 blocks.
Directory $44$DUS102:[BASINGSTOKE.TOOLS.BAS_MISC]
DECTREE.DIR;1 1 14-AUG-1989 09:09:24.98
Total of 1 file, 1 block.
Directory $44$DUS102:[BASINGSTOKE.TOOLS.BAS_MISC.DECTREE]
DECTREE010.A;10 1512 2-AUG-1989 10:44:33.00
FOXGLOVE040.A;1 24930 20-JUL-1989 15:57:49.00
Total of 2 files, 26442 blocks.
Directory $44$DUS102:[BASINGSTOKE.TOOLS.BAS_TOOLS]
DSAERR.DIR;1 1 19-JUL-1989 13:57:29.97
DSA_RA81.DIR;1 1 8-AUG-1989 18:05:40.83
NDT.DIR;1 1 11-AUG-1989 17:10:07.10
Total of 3 files, 3 blocks.
Directory $44$DUS102:[BASINGSTOKE.TOOLS.BAS_TOOLS.DSA_RA81]
DSA_RA81.COM;2 2 8-AUG-1989 18:09:22.85
Total of 1 file, 2 blocks.
Directory $44$DUS102:[BASINGSTOKE.TOOLS.BAS_TOOLS.NDT]
DT.EXE;1 50 5-JUN-1989 09:35:25.80
NDT.COM;3 3 11-AUG-1989 19:01:20.30
Total of 2 files, 53 blocks.
Directory $44$DUS102:[BASINGSTOKE.TOOLS.WORLD_TOOLS]
BLOCK.DIR;1 1 11-AUG-1989 17:19:46.75
DSAERR.DIR;1 1 11-AUG-1989 17:19:00.94
FSTERR.DIR;1 1 11-AUG-1989 17:19:35.85
Total of 3 files, 3 blocks.
Directory $44$DUS102:[BASINGSTOKE.TOOLS.WORLD_TOOLS.BLOCK]
BLOCK.COM;4 67 8-JUN-1989 16:45:59.34
Total of 1 file, 67 blocks.
Directory $44$DUS102:[BASINGSTOKE.TOOLS.WORLD_TOOLS.DSAERR]
DSA304A.EXE;1 99 30-MAY-1989 13:38:38.87
DSA304A.OBJ;1 139 16-MAY-1989 11:44:43.00
DSAERR.COM;3 2 9-MAR-1989 15:16:50.41
DSAERR.DIR;1 1 11-AUG-1989 17:34:08.11
DSAERR.DOC;1 112 21-MAY-1988 21:57:44.00
DSAERR.EXE;36 160 12-JUN-1989 11:13:08.48
DSAERR.HLB;2 22 2-JUL-1987 23:20:26.00
DSAERR.OBJ;35 230 9-JUN-1989 19:46:14.00
Total of 8 files, 765 blocks.
Directory $44$DUS102:[BASINGSTOKE.TOOLS.WORLD_TOOLS.FSTERR]
FSTERR034.A;3 864 30-JUL-1989 12:08:10.00
Total of 1 file, 864 blocks.
Grand total of 13 directories, 45 files, 28686 blocks.
|
| I N T E R O F F I C E M E M O R A N D U M
From: JOERG
JOERG@JOERG@MRGATE@VALMTS@VBO
Dept:
Tel No:
TO: Roberto Gregianin@MRA
TO: Peter Picthall@GMO
TO: Jean-Louis Franceschini@EVT
TO: Edwin Richter@MUH
TO: Mike Duffy@UCG
Subject: CS Assets
CS - INHOUSE ASSETS
===================
I am pleased to announce the birth of the CS - Inhouse Assets Program.
Purpose
-------
The purpose of this effort is to create a source code library, where tools
developed locally in the field will be stored and made available when
requested.
With this program, we want to encourage people who have developed tools for
their own use in the field to make them available to other users in other
coutries and geographies. This will allow us to resolve business problems
more quickly and take advantage of new opportunities faster.
Process
-------
One of the goals was to keep the associated process as simple as possible.
This can differ slightly from tool to tool. In general, the process
is divided into four steps:
Step 1)
If you have a tool available, send a mail with a one page description of the
tool to the Assets project manager (CLARID::KOCHAN). He will then try to
find a sponsor to pay for the effort needed to distribute, maintain and
archive the products.
Please note that, in general, neither re-development nor support work is
planned; the tool should follow the minimum EIC acceptance criteria to ensure
usability in the field. (see attachment).
Step 2)
If a sponsor has been found, the tool will be checked by EIC against the EIC
acceptance criteria. If EIC and the sponsor agree that the tool meets
quality standards, then the project manager sends a tool announcement
mail to the country service delivery managers, who should distribute this
announcement to potential users in their country.
At the same time, a Notes conference will be created for this tool to
allow users to exchange information.
Step 3)
The tool is now 'on the shelf' in EIC, ready for distribution. Any interested
party can now send mail to the project manager with the following information:
- Name
- Badge number
- Function
- Anticipated use of the product
After distribution agreement by the sponsor, the user will be informed from
where he can copy the kit.
Step 4)
If the tool is no longer needed , the country service delivery managers will
be informed about its retirement and it will then be properly archived
by EIC.
Best regards,
J�rg Kochan
Attachement:
EIC guidelines for Mini-Assets products
---------------------------------------
Documentation needed:
- installation documentation.
- user documentation.
- support documentation, including a short description of
all programs, data files and logicals.
Code rules :
- Only well-known languages (Pascal, C, Cobol, Basic, Fortran)
can be used as well as standard layered products (such as
RMS, RDB, TDMS, FMS, DBMS, SMG)
- Comments are required to describe each module, procedure and
function in the form of a header functional description.
- each module should not exceed 1000 instructions of code.
- procedures and functions should not exceed 100 instructions.
- only one instruction per line, commented as thoroughly as possible.
- the calls to procedures, functions or subroutines should
be commented with an indication of what the function, procedure
or subroutine does.
- return status should be tested after calls to external routines.
- variable names should describe the usage of the variable.
- labels should be meaningful.
- all files must be accessed through logicals, or logical directories.
- Common sense and reasonable rules for indentation and block
separation should be used (see Engineering coding guidelines in the
Sofware Engineering Manual).
Command procedures :
- MMS description file is strongly suggested. If not, a
compile and link procedure is required.
Miscellaneous :
- CDD record definitions must be provided for all files.
- DCL tables and DCL help should not be modified.
- RMS files should not be created by the programs.
- FDL files should be available for every RMS file to be created.
|