Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
level issues such as databases, data structures, of the code should not scale with the number of
performance measures, screens, and interfaces channels; not to first order. Only the size of the
because low level representations are the only arrays should grow, not the size of the code.
mechanisms that provide feasibility measures The same could be said about the number of
and evaluation feedback. As a result designers tracks in the detector, except for the second
move quickly to lower levels without order effect that with a large number of tracks
adequately investigating alternative early one expects to have areas of higher track
design decisions. Second, the nature of the density. Nor should the change in energy scale
business is that cost pressures often do not of the particles in the detector have a strong
allow for an adequate investigation of high effect on the code. And certainly, the total
level design alternatives. As a result projects amount of iron in the detector doesn’t have
designs are often inadequate and brittle. effect on the size and complexity of the code.
Examples:
willing to hazard some reasoned guesses. • Hardware people know they can not
Amongst these, I do not pretend to understand make final decisions on design or
the relative importance between them. Amongst construction without making a
the large collaborations, in fact, their relative prototype first. But for software people,
importance may be very different. the word “prototyping” isn’t used very
often. Frequently, when software is
• The first cause is that some people don’t taken too seriously
take software seriously enough, early
enough.
• There may be a lose of contact with
reality and the end-user for whom the
• The second is that some people take
system is presumably designed.
software too seriously, too soon. Let’s
explore the first a bit. Some people are
too busy prototyping, building, testing, • There may be also a lack of cost-
and installing the hardware to be effectiveness analysis of the gadgets,
“bothered” with software. They may where the real costs of a gadget include
think that they can always fix the not only the writing the code to support
software later. It is likely that some of it, but also the integration, maintenance,
these people are the real experts on how documenting and training of users.
the detector works, thus the ones that
will ultimately write the code that • One problem with programmers, in
works. And yet, in the early stages of general, is that they seem to be rugged
building the detector, how much time individualist, and yet there is little
do these experts spend in monitoring or constraint on them.
controlling what software is being
written by others. And who are these
others? They are probably younger, less
experienced physicists who could very V. Future Work
well use some guidance from those who
have been through this kind of software The question is, then, what do we need to do
development before. and what tools to we need in order to keep our
software efforts from being such a mess?
• This kind of situation can lead to large I don’t pretend to know all the answers, but will
important parts of the code being re- mention three possibilities below.
written at the last minute perhaps, even
perhaps, after the first data has been First, a large software effort needs a good
taken. Another cause is that some design. Good design comes with the proper
people take software too seriously too modularity, which may not be as simple as
soon. division by detector type. Between the
modules, there should be well designed
• It is as if people believe that decisions interfaces,
can be made at this early stage of
software development that are really A good design of a large project cannot be laid
going to last for five or more years. down correctly from the start; a certain amount
of prototyping needs to be done. When a
software team knows it is building a prototype,
Page |7
the whole attitude of approaching decisions understand the real causes of our current
changes to the better. problems, before we can find the real solutions.
That is, final decisions
are not being made, only decisions to test the The intent of this paper is to discuss the
prototype. Second, the program has to have a implications that the process of developing very
good architecture and a good set of tools. These large software or very large information
items are good if they are intuitive to use. The systems (VLIS) has on the approach to the
sign of bad architecture and tools is when users software engineering problem. Although the
complain of poor documentation or too much same SE problems are found in many domains,
documentation. they take on a unique set of constraints when
considered in the context of developing VLIS.
The architecture and tools should not be overly It is our position that possibilities for enhancing
constraining or overly protective. It is better to the software development process are functions
allow the user to make mistakes, provided he of the domain in which one participates.
can find them easy, than to have a protective
system which the user can’t figure out how to
use. VII. Reference