Software is (1) instructions (computer programs) that when executed provide desired function and performance, (2) data structures that enable the programs to adequately manipulate information, and (3) documents that describe the operation and use of the programs.
·
Software
takes on a dual role: product and at the same time, the vehicle for delivering
a product.
·
As
a product, it delivers the computing potential embodied by computer hardware,
or more broadly, a network of computers that are accessible by local hardware.
·
As
the vehicle used to deliver the product, software acts as the basis for the
control of the computer, the communication of information, and the creation and
control of other programs.
·
The
role of computer software has undergone significant change over a time span of
little more than 50 years.
·
Dramatic
improvements in hardware performance, profound changes in computing
architectures, vast increases in memory and storage capacity, and a wide
variety of exotic input and output options have all precipitated more
sophisticated and complex computer-based systems.
·
The
programmers are asked some questions when modern computer-based systems are
built:
§ Why does it take so
long to get software finished?
§ Why are development
costs so high?
§ Why can’t we find
all the errors before we give the software to customer?
§ Why do we continue
to have difficulty in measuring progress as software is being developed?
1.2.1.
Software Characteristics
·
Software
is logical rather than a physical system element.
·
Software
has characteristics that are considerably different than those of hardware:
1. Software is developed or
engineered; it is not manufactured in the classical sense.
·
Although
some similarities exist between software development and hardware manufacture,
the two activities are fundamentally different.
·
In
both activities, high quality is achieved through good design, but the
manufacturing phase for hardware can introduce quality problems that are
nonexistent (or easily corrected) for software.
·
Software
costs are concentrated in engineering.
·
Software
projects cannot be managed as if they were manufacturing projects.
2. Software doesn’t “wear out.”
·
The
failure rate of the hardware is high as the hardware components suffer from the
cumulative affects of dust, vibration, abuse, temperature extremes, and many
other environmental maladies.
·
Stated
simply, the hardware begins to wear out.
·
Software
is not susceptible to the environmental maladies that cause hardware to wear
out.
·
Undiscovered
defects will cause high failure rates early in the life of a program.
·
However,
these are corrected ideally, without introducing other errors.
·
Software
does not wear out, but it deteriorates.
·
Software
maintenance involves considerably more complexity than hardware maintenance.
3. Although the industry is moving
toward component-based assembly, most software continuous to be custom built.
·
Each
integrated circuit has a part number, a defined and validated function, a
well-defined interface, and a standard set of integration guidelines.
·
After
each component is selected, it can be ordered off the shelf.
·
As
an engineering discipline evolves, a collection of standard design components
is created.
·
The
reusable components have been created so that the engineer can concentrate on
the truly innovative elements of a design, that is, the parts of the design
that represent something new.
·
A
software component should be designed and implemented so that it can be reused
in many different programs.
1.2.2.
Software Application
·
Software may be applied in any
situation for which a pre-specified set of procedural steps has been defined.
·
Information content and determinacy
are important factors in determining the nature of a software application.
·
Content refers to the meaning and
form of incoming and outgoing information.
·
Information determinacy refers to
the predictability of the order and timing of information.
·
It is somewhat difficult to develop
meaningful generic categories for software applications.
·
The following software areas
indicate the breadth of potential applications:
System Software
·
System software is a collection of
programs written to service other programs.
·
Some system software (e.g.
compilers, editors, and file management utilities) process complex, but determinate,
information structures.
·
Other system applications (e.g.
drivers, operating system components etc.) process largely intermediate data.
·
In either case, the system software
area is characterized by heavy interaction with computer hardware, resource sharing,
and sophisticated process management.
Real time Software
·
Software that monitors, analyzes,
controls real world events as they occur is called real time software.
·
Elements of real time software
include a data gathering component that collects and formats information from
an external environment, a control output component that coordinates all other
components so that real-time response can be maintained.
Business
Software
·
Business information processing is
the largest single software application area.
·
In addition to conventional data
processing application business software applications also encompass
interactive computing.
·
Applications in this area
restructure existing data in a way that facilitates business operations or
management decision making.
Engineering
and scientific Software
·
Engineering and scientific software
have been characterized by “number crunching” algorithms.
·
Applications range from astronomy to
volcanology and from molecular biology to automated manufacturing.
Embedded
Software
·
Embedded software resides in
read-only memory and is used to control products and systems for the customer
and industrial markets.
·
They can perform very limited and
esoteric functions or provide significant function and control capability.
No comments:
Post a Comment