Lesson 1
Lesson 1
Software?
Getting Started
Software is capable of performing many tasks, as opposed to hardware
which can only perform mechanical tasks that they are designed for.
Software provides the means for accomplishing many different tasks with the
same basic hardware.
Software is more than just a program code. A program is an executable code,
which serves some computational purpose. Software is considered to be
collection of executable programming code, associated libraries and
documentations. Software, when made for a specific requirement is called
software product.
Classes of Software
System software: The system software is a
collection of programs designed to operate,
control, and extend the processing capabilities of
the computer itself. System software is generally
prepared by the computer manufacturers. These
software products comprise of programs written
in low-level languages, which interact with the
hardware at a very basic level. System software
serves as the interface between the hardware and
the end users.
Some examples of system software are Operating
System, Compilers, Interpreter, Assemblers, etc.
Application software: Allows users to accomplish
one or more tasks. It includes word processing,
web browsing and almost any other task for
which you might install software. (Some
application software is pre-installed on most
computer systems.)
Programming software is a set of tools
to aid developers in writing programs.
The various tools available are
compilers, linkers, debuggers,
interpreters and text editors.
Basic Principles
1. Software, commonly known as programs or apps, consists of all the
instructions that tell the hardware how to perform a task.
2. These instructions come from a software developer in the form that will
be accepted by the platform (operating system + CPU) that they are based on.
3. For example, a program that is designed for the Windows operating system
will only work for that specific operating system. Compatibility of software will
vary as the design of the software and the operating system differ. Software that
is designed for Windows XP may experience a compatibility issue when running
under Windows 2000 or NT.
4. Software, in its most general sense, is a set of instructions or programs
instructing a computer to do specific tasks. Software is a generic term used to
describe computer programs. Scripts, applications, programs and a set of
instructions are all terms often used to describe software.
Software Evolution
The process of developing a software
product using software engineering
principles and methods is referred to as
software evolution. This includes the initial
development of software and its
maintenance and updates, till desired
software product is developed, which
satisfies the expected requirements.
Software Evolution
Evolution starts from the requirement gathering process. After which developers create a
prototype of the intended software and show it to the users to get their feedback at the early
stage of software product development. The users suggest changes, on which several
consecutive updates and maintenance keep on changing too. This process changes to the
original software, till the desired software is accomplished.
Even after the user has desired software in hand, the advancing technology and the changing
requirements force the software product to change accordingly. Re-creating software from
scratch and to go one-on-one with requirement is not feasible. The only feasible and economical
solution is to update the existing software so that it matches the latest requirements.
Laws in Software Evolution
Eight laws for software evolution:
• Continuing change - A software system must continue to adapt to the real
world changes, else it becomes progressively less useful.
• Increasing complexity - A software system evolves, its complexity tends to
increase unless work is done to maintain or reduce it.
• Conservation of familiarity - The familiarity with the software or the
knowledge about how it was developed, why was it developed in that
particular manner etc. must be retained at any cost, to implement the changes
in the system.
• Continuing growth- In order for a system intended to resolve some business
problem, its size of implementing the changes grows according to the lifestyle
changes of the business.
• Reducing quality - A software system declines in quality unless rigorously
maintained and adapted to a changing operational environment.
•Feedback systems- The software systems constitute multi-loop, multi-level
feedback systems and must be treated as such to be successfully modified or
improved.
•Self-regulation - a system evolution processes are self-regulating with the
distribution of product and process measures close to normal.
•Organizational stability - The average effective global activity rate in an evolving
a system is invariant over the lifetime of the product.
Thank You!