The Nature of Software - Part - A
The Nature of Software - Part - A
features, function, and performance. A data structure that enables the program to adequately manipulate information and
documents that describe the operation and use of the program.
Characteristics of software:
There is some characteristic of software which is given below:
1. Reliability: The ability of the software to consistently perform its intended tasks without unexpected failures or errors.
2. Usability: How easily and effectively users can interact with and navigate through the software.
3. Efficiency: The optimal utilization of system resources to perform tasks on time.
4. Maintainability: How easily and cost-effectively software can be modified, updated, or extended.
5. Portability: The ability of software to run on different platforms or environments without requiring significant
modifications.
Changing Nature of Software:
Nowadays, seven broad categories of computer software present continuing challenges for software engineers. Which is
given below:
1. System Software: System software is a collection of programs that are written to service other programs. Some
system software processes complex but determinate, information structures. Other system application processes
largely indeterminate data. Sometimes when, the system software area is characterized by the heavy interaction with
computer hardware that requires scheduling, resource sharing, and sophisticated process management.
2. Application Software: Application software is defined as programs that solve a specific business need. Application in
this area processes business or technical data in a way that facilitates business operation or management technical
decision-making. In addition to conventional data processing applications, application software is used to control
business functions in real-time.
3. Engineering and Scientific Software: This software is used to facilitate the engineering function and task. however
modern applications within the engineering and scientific area are moving away from conventional numerical
algorithms. Computer-aided design, system simulation, and other interactive applications have begun to take a real-
time and even system software characteristic.
4. Embedded Software: Embedded software resides within the system or product and is used to implement and control
features and functions for the end-user and for the system itself. Embedded software can perform limited and esoteric
functions or provide significant function and control capability.
5. Product-line Software: Designed to provide a specific capability for use by many customers, product-line software
can focus on the limited and esoteric marketplace or address the mass consumer market.
6. Web Application: It is a client-server computer program that the client runs on the web browser. In their simplest
form, Web apps can be little more than a set of linked hypertext files that present information using text and limited
graphics. However, as e-commerce and B2B applications grow in importance. Web apps are evolving into a
sophisticated computing environment that not only provides a standalone feature, computing function, and content to
the end user.
7. Artificial Intelligence Software: Artificial intelligence software makes use of a nonnumerical algorithm to solve a
complex problem that is not amenable to computation or straightforward analysis. Applications within this area include
robotics, expert systems, pattern recognition, artificial neural networks, theorem proving, and game playing.
Software Processes
The term software specifies to the set of computer programs, procedures and associated documents (Flowcharts,
manuals, etc.) that describe the program and how they are to be used.
A software process is the set of activities and associated outcome that produce a software product. Software
engineers mostly carry out these activities. These are four key process activities, which are common to all software
processes. These activities are:
1. Software specifications: The functionality of the software and constraints on its operation must be
defined.
2. Software development: The software to meet the requirement must be produced.
3. Software validation: The software must be validated to ensure that it does what the customer wants.
4. Software evolution: The software must evolve to meet changing client needs.
1. A workflow model: This shows the series of activities in the process along with their inputs, outputs and
dependencies. The activities in this model perform human actions.
2. 2. A dataflow or activity model: This represents the process as a set of activities, each of which carries
out some data transformations. It shows how the input to the process, such as a specification is converted
to an output such as a design. The activities here may be at a lower level than activities in a workflow
model. They may perform transformations carried out by people or by computers.
3. 3. A role/action model: This means the roles of the people involved in the software process and the
activities for which they are responsible.
4. The waterfall approach: This takes the above activities and produces them as separate process phases
such as requirements specification, software design, implementation, testing, and so on. After each stage
is defined, it is "signed off" and development goes onto the following stage.
5. Evolutionary development: This method interleaves the activities of specification, development, and
validation. An initial system is rapidly developed from a very abstract specification.
6. Formal transformation: This method is based on producing a formal mathematical system specification
and transforming this specification, using mathematical methods to a program. These transformations are
'correctness preserving.' This means that you can be sure that the developed programs meet its
specification.
7. System assembly from reusable components: This method assumes the parts of the system already
exist. The system development process target on integrating these parts rather than developing them
from scratch.