External Software
Suggestion for extension of ASP
Introduction
Atlas software will depend very heavily on packages originating
outside of Atlas ("external"). Total amount of code contained in these
packages as well as their influence on the design of the Atlas software
will be much bigger that those of our software. Despite their importance
and impact, external packages will not be reviewed, so mechanism for accepting
or denying them should be defined.
Evaluation Procedure
Definitions
External software package: External package is any
software package which doesn't originate from inside of Atlas collaboration.
Atlas people may participate on its development, but the responsible authority
should be independent on Atlas. External package may be reviewed (if authors
are willing to), rump-uped (if it fits all conditions) or evaluated.
Software Categories
All Atlas software packages can be devided into categories using various
measures.
-
Where Is Needed: It shows how neccessary is to have the package
on every machine or every place. It covers the accesibility of the software.
-
Everywhere: Should be available on each machine running Atlas software.
(Example: Control).
-
Nearby: Should be available to everyone, but not necessarily on
every machine. Everyone should have access to machine capable of running
them. (Example: Calibration).
-
Somewhere: May be missing. Will add additional functionality, which
is in general not required but may be useful for specific tasks. (Example:
Presentation Graphics).
-
Replaceability: It shows how much is the rest of the Atlas software
dependent on the package and how easy or difficult is to replace it.
-
Core: Is in the core system. Most of other packages heavily depend
on it. It is not simple to replace it by other package. It influences heavily
design of the rest of the Atlas software. (Example: Persistent
Storage).
-
Replaceable: Can be replaced by other package without big problems.
Have little or no impact on the design of the rest. (Example:
Mathematics).
-
One-of-many: Several packages with similar functionality exist possibly
even at the same time. User may use any of them in a similar way. (Example:
GUI).
-
Impact: It shows the impact on the data and results. Some packages
may for example make software more user-friendly, but would not change
neither the stored data nor the physical results.
-
Data: Have direct impact on the stored (persistent) physical data.
(Example: Reconstruction).
-
Results: Have only impact on analyses results. (Example:
Analysis).
-
No: Have no direct impact on data or analyses results. The graphical
presentation may, for example, change, but numbers shouldn't. Possible
error would not infect directly the physical results. (Example:
GUI).
Package Evaluation
-
Anyone can ask for evaluation of software package. She also supplies
the filled questionaire together with additional information which may
be usefull for evaluation and possibly suggestion for evaluators (if special
technical items should be addressed). The application goes directly to
concerned Domain. Domain tries to get evaluation applications for similar
(competing) products at the same time, so it can make reasonable comparison.
-
Domain decides if:
-
The package belongs to that Domain.
-
The package can be evaluated as external package. Note, that only packages
which have been reviewed, rump-uped or evaluated are allowed to be used
in Atlas for obtaining results for eventual publication.
-
Which category package belongs to (approximately).
Domain then sends the request to DIG. It may add any relevant additional
information and suggest evaluators.
-
DIG chooses approximately 3 to 5 evaluators and sends them all available
documentation and questionnaire. It also suggests them the category of
the package. The evaluators will be mostly internal from Atlas as satisfying
Atlas constraints is important requirement. Some evaluators may be from
HEP outside of Atlas or even from outside of HEP (to be able to judge more
technical items).
-
Evaluators perform evaluation of the package (including comparison
with similar packages which are available) and send the filled questionnaire
with any relevant comments back to Domain. This period may require evaluation
and testing.
-
Domain suggests accepting or denying of the package and planed schema
of package handling to DIG. Domain may perform another checks or testing.
-
DIG decides about package acceptance and schema of package handling.
If any finacial decision is required for the package acceptance,
the decision of DIG should be confirmed by ACOS.
Evaluation Questionnaire
-
To which categories does it belong ? Make your own judgement, even
if categories are already suggested.
-
Is it useful ? Does it satisfy Atlas requirements ? Does it satisfy
any particular requirement (not yet satisfied or badly satisfied) ?
-
In which timescale is it required ? Does it satisfy immediate need
or more long-term strategy ? Is it needed now, in medium term, in long
term ?
-
What is the price ? The price for the whole Atlas collaboration
is important. Include also HEP manpower.
-
What is the maintenance and support price ? Include also HEP manpower.
-
How are we protected against the raise of price ?
-
How are we protected against licencing changes ?
-
What efford would be needed to develop it ourselves? In Atlas ?
In HEP ? Try to guess the equivalent price.
-
What quality is it ? Is it state-of-the-art of the current software
? How does it compare to similar packages which are available ?
-
Does it use standards ? Whatever is meant as "standard". Does
it use any nonstandard feature which is standardized otherwise ? If so,
is it justified ?
-
Does it use Open or Proprietary solutions ? Is proprietary solution
justified (if used) ?
-
Is it well encapsulated ? Is it not too intrusive ? Should anything
be changed in the rest of the Atlas software to accommodate the package
? Will anything have to be changed if we want in future to withdraw the
package ?
-
Does it run on platforms and environments supported by Atlas ? If
not, will it run ? When ? And for which price ?
-
How fast will be port to new versions of OS, compilers,... ?
-
Are there any Atlas-wide or HEP-wide constraines concerning it ?
-
Is it used by other packages already used by Atlas ? So we are alreday
using it anyway ?
-
Does it clash with anything already used by Atlas ? Are we constrained
by another (alreday made) choice ? Could we change the other choice ?
-
Does anything alreday used by Atlas offer the same functionality ? Better
or worse ? Is it possible to move ?
-
Is there anything else offering the same functionality inside HEP ?
Better or worse ? Are we (will we be) constrained by the other package
?
-
Which level of support is available ? HEP, external, no at all ?
Does the maintainer officially exist ?
-
How fast will be bug hunting ? Is there official procedure or just
"good will" ?
-
May we request package enhancements ? Is the maintainer willing
to enhance package according to our requests ? For which price ?
-
May we request package changes ? Is the maintainer willing to make
the changes which would modify the package (so other customers may feel
unhappy) ? For which price ?
-
May we request port to other platforms and environments ? Or are
we depended on the maintainer choice ? Which is the price ?
-
How is future support insured ? What will happen if current maintainer
stops existing.
-
Are we the only customers ? Is the package developed for HEP ? For
Atlas ? For scientific world ?
-
Is HEP interesting for the vendor/maintainer ? What percentage of
customers are we ? Judge both the money and the importance.
-
What is previous experiance with the vendor/maintainer ? Inside
Atlas ? Inside HEP ? Inside academic world ?
-
How big the producer is ?
-
Is it alreday used in HEP ? With which satisfaction ?
-
Is documentation adequate ? For both developers and end-users ?
-
Is there documentation widely available ? Is it in machine readable
form. Can we print it ?
-
Is there HEP specific documentation ?
-
Is API well documented ?
-
Is source available ?
-
Will source be available in case of end of support ?
-
Will source be available in case of maintainer bankruptcy ?
-
Is design available ?
-
Is design available in our supported format ?
-
Is test suite available ?
-
Can we extend it ?
-
Can we include it in our testing schema ?
-
Will it pass our existing tests ? If it substitutes (part of) our
existing package. Maybe test should be a little modified (when interface
changes) ?
-
Can it be efficiently used in our SRT schema ?
-
Will it reside inside or outside of SRT ? If inside, should we do
anything after each package upgrade ourselves to put it into SRT ? If not,
how will we handle it ?
J.Hrivnac, (S.M.Fisher, R.Candlin,
K.Bos), Dec97