Sei sulla pagina 1di 8

Page |1

Issues In The Design Of Large Software

We will first explore if the above reasoning is


Abstract fact or fiction. First of all, lets look at the size
and complexity of the code for a very large
The purpose of this term paper is to give the detector. The size and complexity of the code
description of Issues in the design of large should scale with some aspects of the detector.
software. Below I have discussed about its If we can find the scaling laws, we should be
brief introduction and main topics, then able to estimate the size of the problem for an
about the main topic, its features etc and SSC detector by extrapolation from our current
References from where I get the material to detectors. The size and complexity of the code
complete my term paper. should scale, for example, with number of
different kinds of detector elements in the
detector. This is because each detector type will
need its own pattern recognition code and there
Keywords will be some code that links tracks between the
detector elements. For an SSC detector,
however, there is no reason that there are more
Production , design model, intensive ,decision
different kinds of detector elements than a large
intregration, architecture, documentation,
Tevatron, LEP, or SLC detector. Therefore, this
modularity
scaling law would say that the software for an
SSC detector would not be more difficult.
Another scaling law is the size and complexity
I. Introduction
of the code scales with the number of
boundaries in the detector.
Today, in high energy physics, software is
generally in a mess. That is to say, most
This is because each
experimental groups, especially the new large
irregular boundary takes additional code to
detector groups, are having a difficult time
calculate the position of the boundaries, cross
developing and managing their software. As
the boundary, and in general, makes for a lot of
each new large detector comes on line, the
exceptional case handling in the code. There is
management the software effort seems to be
no reason that an SSC detector should have
getting more difficult. This seems to lead to a
more boundaries than existing large detectors,
conclusion that for Superconducting Super
so the software problem for an SSC detector
Collider (SSC) we will have a major software
should not be more complex because of this
problem. Although not
scaling law. The size and complexity of the
code should scale with the track density due to
confusion a pattern recognition program must
explicitly stated, there seems to be many in our try to resolve. However, these problems are in a
community that believe the reason that software limited area of the detector code and the effect
will be a problem at the SSC is that “we need to is not very strong. Thus we would not expect a
develop large (200-500K lines of FORTRAN) great deal of size and complexity from this
complex code for the detector with 400 effect alone.
physicists at 50 institutions.”
Page |2

II. Literature Survey • No planning of development


work (e.g. no milestones
defined)
2.1 Why Writing Large Programs
Is Hard • Deliverables to user not
identified
• Customer’s needs are hard to • Poor understanding of user
discover and record requirements

• Customer’s needs change with time • No control or review

• The larger the system the more • Technical incompetence of


potential interactions among developers
components
• Poor understanding of cost and
effort by both developer and
• Several people must cooperate
user
communication complexity among
people can grow.

III. Previous work


2.2 Challenge In Large Projects

• Developing large/complex software III.1 The Design Process Of Large


application is very challenging Software

1) Effort intensive The design process of large software is the task


2) High cost of creating or generating design artefacts and
3) Long development time subsequently evaluating, refining, integrating,
4) Changing needs for users and modifying these artefacts until the result
5) High risk of failure, user acceptance, satisfies the requirements of the problem
performance, maintainability definition. In essence, the design process is the
6) Quite different from one-time programs task of mapping problem requirements into
where author and user are same. design solutions.
The design process should be guided by a
2.3 Reasons For Failure productive, economic, and controllable
methodology that will ensure a high quality
product.
a) Schedule slippage
The reasons why the design problem is
b) Cost over-runs
important are fairly obvious. Good design
c) Does not solve user’s problem decisions made early have a positive effect on
the quality of the ultimate product as well as
d) Poor quality of software the efficiency of the development process. Poor
e) Poor maintainability design decisions play havoc with the quality,
efficiency and cost of the development process
f) Ad hoc software development results in and the design products.
such problems
Page |3

level of the development process are not


adequately understood. The result is an
inability to adequately map problem
requirements to technical solutions. No good
language” has been developed in which the
requirements of the problem can be expressed
and ultimately transformed to technical
solutions.
Fig 1(a)

Design is characterized by a necessity to deal


simultaneously with a large number of diverse
constraints that are highly intertwined. In
general the design problem is intractable.
However, we believe that the combination of
the restricted domain of VLIS development, the
simplicity of its algorithmic requirements, and
the knowledge accumulated from the
experience of building a large number of VLIS
provides good insights into the available
expertise, known solutions and alternatives.
Fig 1(b)
Our intention is to exploit the natural structure
of the domain in ways that allow us to reduce 3.1.2 Design Evaluation problem
the complexity of the problem to manageable
levels. We cite several issues that help focus In order to make good design decisions, one
some of the design process concerns. must have the ability to assess the validity of a
particular design decision or weigh the relative
3.1.1 The Paradigm Problem merits of competing design alternatives. The
lack of evaluation ability leads to inadequacies
The paradigm problem refers to the failure to in assessing the impacts of a design decision on
recognize and develop a manageable, all levels of the design process. Under the
productive, economically feasible process umbrella title of evaluation we include testing,
model for SE. Much attention has been focused validation, verification and, as a specific
on the development of new software instance, prototyping.
engineering paradigms [3, 41 but no results
have proven completely satisfactory for VLIS 3.1.3 The Representation Problem
development. Any successful model must deal
with the interdependent facets of making design The representation problem is a fundamental
decisions while recognizing the need for requirement for advancement in each of the
adequate leverage and project management. areas mentioned above. The issue is the ability
to express, manipulate and make inferences
Bridging the Functional to Technical Gap: A about design objects and processes. In current
significant portion of the design process occurs practice, major development takes place at very
during the creative process of translating the low levels of design for at least two reasons.
business problem description to a high level First, current methods of software engineering
systems design. Presently techniques at this encourage designers to think in terms of low
Page |4

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.

3.1.4 Large Scale Integration


IV. Methodology
The problem of large scale integration is
concerned with the understanding, use and 4.1 Various Issues In
exploitation of the functionalities, standards, Developing Large Software
protocols, and communication interfaces of a
Systems
Heterogeneous set of technologies in
developing large systems. Integration of
a) A single software developer may not be
component systems differing both in
able to do the job in the required
functionality and platform is important because
amount of Time, developers have to
systems within the commercial environment
work as a team
can no longer be treated as isolated entities. In
fact there is great disincentive to do so. The
b) The team members have to
large scale integration problem points out the
communicate and interact with each
need to understand the interrelationships of all
other
systems within a company.

c) Specification of a large software


Efforts need to be concentrated on large scale
product is more complicated than just
design at the enterprise, or companywide, level
saying “write a
before detail design and implementation of a
d) Program that sorts a set of integers”
particular component is undertaken.
Understanding the enterprise level connectivity
e) For a large software project one has to
and integration issues is extremely important
carefully think about the design of the
and will have tremendous impact upon the
software before starting to write code
design process.

f) A team of programmers have to write


So far, we have seen areas where an SSC
different parts of the code that will work
detector is not necessarily very different from
together
our present day detectors. However, there is
still a feeling shared by many that the large
g) How do we make sure that the software
physical size of an SSC detector is going to
does what it is supposed to do?
lead to a larger software code problem. For
example, an SSC detector will have many more
detector channels. But the size and complexity
Page |5

h) What happens if we need to add a new c. NASA’s Mars Sojourner software


feature to the software deadlocked. Cause: Priority inversion.
Priority inversion occurs when a
process that has higher priority is
waiting for a process for a lower
priority to release a lock. However,
since the process holding the lock has
lower priority it does not get scheduled
and the system deadlocks.

4.3 Second Order Effects


Fig 1(c)
There are other effects that I would consider
4.2 Software Crisis second order effects. With each new detector,
for example, one frequently tries to push the
state of the art in detector resolution, or two
Large Software Systems Often: Do not provide
particle separations, or both. This will lead to
the desired functionality, Take too long to
more code and perhaps somewhat complex
build, Cost too much to build, Require too
code. However, since this code should be
much time, space, or other resources to
localized in the module that does pattern
run,cannot evolve to meet changing needs.
recognition for the sub detector; I consider it a
second order effect. Also the large number of
(i) For every 6 large software projects that
channels will require some form of database
become operational, 2 of them are
management system. for calibration and
cancelled
alignment constants. But again, if well planned
and modular, it should not lead to overall
(ii) On the average software development
impression of large and complex code.
projects overshoot their schedule by
half

(iii) 3 quarters of the large systems do not


provide required functionality

Examples:

a. Because of software related problems in


its automated baggage-handling system,
opening of Denver’s big, state-of-the
art, international airport was delayed
almost a year in 1993

b. NASA’s Mars Climate Orbiter was Fig 1(d)


lost in 1999 ,Cause: failed translation of 4.4 Causes Of Our Software Problems
English units to metric units
I do not profess to understand all the causes to
the software problem. Nevertheless, I am
Page |6

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

There should be some uniformity of style


[1] www.cs.ucsb.edu/~kemm/courses/cs172
across levels and not too many levels to learn.
/Intro.pdf
By a level I mean,
[2] Pamela Zave, “An Operational
Third, as in any large project one needs to have Approach to Requirements
progress and quality controls. Unlike hardware, Specification for Embedded Systems,”
it is much harder to quantify progress or quality in New Paradigms for Software
with software. Although difficult, it is not Development, (ed. William W. Agresti),
impossible to invent some measurement tools, IEEE Society, Los Angeles, Ca., 1986,
with which a software manager can judge the 1.59 -178.
rate of progress.
[3] Bill Curtis, Herb Krasner, Vincent
These tools may not be computer based. At the Shen, & Neil Iscoe, “On Building
very least, peer review of software modules Software Process Models Under the
should be done systematically to judge progress Lamppost,” in the Proceedings of the
and quality. 9th International Conference on
Software Engineering, Monterrey, CA.,
VI. Conclusion 1987, 96-103.

[4] Barry W. Boehm, “A Spiral Model of


It is generally felt in our community, that with
Software Development and
each generation large detector, software is
Enhancement,” IEEE Computer, May
becoming a bigger and bigger problem. If we
1988,61- 72.
extrapolate this trend to the SSC era, software
would be a very big problem indeed. Many
[5] Cordell Green, David Luckham, Robert
people are inventing or using new tools to
Balzer, Thomas Cheatham and Charles
attack the software problem, but some of these
Rich. ‘Report on a Knowledge-Based
tools are like aspirins, they alleviate some pain
Software,
but don’t cure the disease. We need to
Page |8

Potrebbero piacerti anche