0% found this document useful (0 votes)
42 views20 pages

Lesson 2

Software is a collection of executable programming code, libraries, and documentation that enables hardware to perform various tasks. It is categorized into system software, application software, and programming software, each serving different functions. The document also discusses the necessity of software evolution to adapt to changing requirements, fix bugs, and enhance security and functionality.

Uploaded by

beaueve1997
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
42 views20 pages

Lesson 2

Software is a collection of executable programming code, libraries, and documentation that enables hardware to perform various tasks. It is categorized into system software, application software, and programming software, each serving different functions. The document also discusses the necessity of software evolution to adapt to changing requirements, fix bugs, and enhance security and functionality.

Uploaded by

beaueve1997
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 20

WHAT IS A SOFTWARE?

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

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 requirements
is called software product.
CLASSES OF SOFTWARE

o System software

helps run the computer hardware and computer system itself. System
software includes operating system, device drivers, diagnostic tools and more.
System software is almost always pre-installed on your computer.
o 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.)
CLASSES OF SOFTWARE

o Programming Software

is a set of tools to aid developers in writing programs. The various tools


available are compiler, 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 tasks.
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 OS. Compatibility of software will vary as the design of the software and
the OS differ. Software that is designed for Windows XP may experience a compatibility
issue when running under Windows 2000.
4. Software, in its most general sense, is a set of instructions or programs instructing a
computer to do a specific tasks. Software is a generic term used to describe computer
programs. Scripts, applications programs and a set of instruction 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 in 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 refers to the ongoing process of developing and modifying software after its
initial release to adapt to changing needs, fix bugs, and add new features.
Evolution starts from the requirement gathering process. After which developers create a
prototype of the intended software and show it in the users to get their feedback at the early stage of
software product development. The users suggest changes 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 requirement 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 requirement.
SOFTWARE EVOLUTION

1. Change
Identification Process

4. New System 2. Change


Proposal

3. Software
Evolution Process
1. Change
Identification Process 2. Change proposal

A formal document submitted to


Recognizing the need for a change and suggest modifications to a product,
understanding its rationale. This includes process or system, often in the context
identifying areas that are require improvement, of engineering, manufacturing, or
defining the desired outcome, and assessing
the potential impact and feasibility of the
business. Ultimatelty, a change
change. It’s a crucial first step in any change proposal aims to manage and control
management process, paving the way for changes, ensuring they are
planning and implementation. implemented effectively and with
minimal disruption.
3. Software evolution process New System

Is the process of modifying and updating


software after its initial release to address
changing needs and requirements. It
involves activities like identifying Be open to
necessary changes, planning releases,
implementing modification, and ensuring changing
the software remains functional and
relevant over time. This process is crucial
processes.
for adapting to new technologies, fixing
bugs, and integrating with other evolving
systems.
NECESSITY OF SOFTWARE EVOLUTION

1.Change in requirement with time: With time, the organizations needs


and modus Operandi of working could substantially be changed so in this
frequently changing time the tools(software) that they are using need to
change to maximize the performance.
2.Environment Change: As the working environment changes the things
(tools) that enable us to work in that environment also changes proportionally
same happens in the software world as the working environment changes
then, the organizations require reintroduction of old software with updated
features and functionality to adapt the new environment.
NECESSITY OF SOFTWARE EVOLUTION

3. Errors and bugs: As the age of the deployed software within an organization increases their preciseness or
impeccability decrease and the efficiency to bear the increasing complexity workload also continually
degrades. It becomes necessary to avoid use of absolete and aged software. All such obsolete Pieces of
software need to undergo the evolution process in order to become robust as per the workload complexity of
current environment.
An error is a mistake in the code, logic, or design made by the developer. A bug, on the other hand, is a flaw in
the software that causes unexpected behavior or results, and it's often discovered during testing or after
deployment.
4. Security risks: Using outdated software within an organization may lead you at the verge of various
software-based cyberattacks and could expose your confidential data illegally associated with the software
that is in use. O it become necessary to avoid such as breaches through regular assessment of the security
patches/modules are used within the software. If the software isn’t robust enough to bear the current occurring
Cyber attacks so it must be changed (updated)
5. For having new functionality and features. In order to increase the performance and fast data
processing and other functionalities, an organization need to continuously evolute the software throughout its
life cycle so that stakeholders and clients of the product could work efficiently.
EIGHT LAWS FOR SOFTWARE EVOLUTION

1. Continuing change – A software system must continue to adopt to the real world
changes, else it becomes progressively less useful.
2. Increasing complexity – A software system evolves, its complexity tends to increase
unless work is done to maintain or reduce it.
3. 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.
4. 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.
EIGHT LAWS FOR SOFTWARE
EVEOLUTION
5. Reducing quality – A software system declines in quality unless rigorously
maintained and adapted to a changing operational environment.
6. Feedback system – The software system constitute multi-loop, multi-level
feedback systems and must be treated as such to be successfully modified
or improved.
7. Self-regulation – a system evolution process are self regulating with the
distribution of product and process measure close to normal.
8. Organizational stability – The average effective global activity rate in an
evolving system over the lifetime of the product.
SOFTWARE PARADIGMS

SOFTWARE DEVELOPMENT PARADIGM


Software paradigms refers to the methods and steps, which are taken
while designing the software. There are many methods proposed and are in
work today, but we need to see where in the software engineering these
paradigms stands.
These can be combined into various categories, though each of them is
contained in one another.
Programming paradigm is a subset of Software design paradigm which
is further a subset of Software development paradigm.
SOFTWARE DEVELOPMENT PARADIGM
The paradigm is known as software engineering paradigms where all the
engineering concepts pertaining to the development of software are applied. It
includes various reasearches and requirement gathering which helps the software
product to build. It consist of the following:

 Requirement gathering
 Software design
 Programming
SOFTWARE DESIGN PARADIGM
• This paradigm is a part of Software development and includes the following:
 Design
 Maintenance
 Programming
PROGRAMMING PARADIGM
• This paradigm is relatively closely to programming aspects of software development must satisfy on
the following grounds:
 Coding
 Testing
 Integration
CHARACTERISTICS OF GOOD SOFTWARE
A software product can be judged by what it offers and how well it can
be used. This software must satisfy on the following grounds:
Operational
Transitional
Maintenance
OPERATIONAL
This tells us how well software works in operation. It can be measured on:
 Budget – cost
 Usability – the degree of case with which products such as software and Web applications
can be used to achieve required goals effectively and efficiency.
 Efficiency – is defined as a level of performance that uses the lowest amount of inputs to
create the greatest amount of outputs.
 Correctness – adherence to the specifications that determine how users can interact with
the software and how the software should behave when it is used correctly.
 Functionality – is the ability of the system to do the work for which it was intendd.
 Dependability – is the ability to provide services that can defensibly be trusted within a
time-period.
 Security – secured system
 Safety
TRANSITIONAL
This aspects is important when the software is moved from one platform to another.
 Portability – he usability of the same software in different environments,
 Interoperability – the ability of computer systems or software to exchange and make use of
information.
 Reusability – the use of existing assets in some form within the software product development
process; these assets are products and by-products of the software development life cycle and
include code, software components, test suites, designs and documentation.
 Adaptability – an open system that is able to fit its behavior according to changes in its
environment or in parts of the system itself.
MAINTENANCE
This aspects brief about how well a software has the capabilities to maintain
itself in the ever-changing environment.
 Modularity – the extent to which a software/Web application may be divided
into smaller modules.
 Maintainability – is defined as the degree to which an application is
understood , repaired or enhanced.
 Flexibility – it normally refers to the ability for the solution to adopt to
possible or futue changes in its requirements.
 Scalability – is the ability of a program to scale.

You might also like