0% found this document useful (0 votes)
72 views

Introduction To Software Engineering

The document provides an introduction to software engineering. It defines software engineering as the process of designing, developing, testing, and maintaining software using systematic and disciplined approaches. Some key principles of software engineering discussed include modularity, abstraction, encapsulation, reusability, maintenance, testing, design patterns, agile methodologies, and continuous integration. The document also discusses the importance of software in maximizing hardware potential, providing intuitive interfaces, promoting innovation and collaboration, and boosting efficiency. Components of software like functionality, reliability, efficiency, usability, maintainability and portability are also explained. Finally, some characteristics of software like being intangible, non-perishable, easy to replicate but also complex and difficult to

Uploaded by

Ashish Hooda
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
72 views

Introduction To Software Engineering

The document provides an introduction to software engineering. It defines software engineering as the process of designing, developing, testing, and maintaining software using systematic and disciplined approaches. Some key principles of software engineering discussed include modularity, abstraction, encapsulation, reusability, maintenance, testing, design patterns, agile methodologies, and continuous integration. The document also discusses the importance of software in maximizing hardware potential, providing intuitive interfaces, promoting innovation and collaboration, and boosting efficiency. Components of software like functionality, reliability, efficiency, usability, maintainability and portability are also explained. Finally, some characteristics of software like being intangible, non-perishable, easy to replicate but also complex and difficult to

Uploaded by

Ashish Hooda
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 24

Introduction

Presented By: Mr. Madhur Thapliyal


Assistant Professor
School of Computing
Department of Computer Applications
GEHU
Definition
Software Engineering is the process of
designing, developing, testing, and maintaining
software. It is a systematic and disciplined
approach to software development that aims to
create high-quality, reliable, and maintainable
software. Software engineering includes a
variety of techniques, tools, and
methodologies, including requirements
analysis, design, testing, and maintenance.
Key Principles of Software Eng..

Modularity: Breaking the software into smaller, reusable components that can be
developed and tested independently.

Abstraction: Hiding the implementation details of a component and exposing only
the necessary functionality to other parts of the software.

Encapsulation: Wrapping up the data and functions of an object into a single unit,
and protecting the internal state of an object from external modifications.

Reusability: Creating components that can be used in multiple projects, which can
save time and resources.

Maintenance: Regularly updating and improving the software to fix bugs, add new
features, and address security vulnerabilities.

Testing: Verifying that the software meets its requirements and is free of bugs.

Design Patterns: Solving recurring problems in software design by providing
templates for solving them.

Agile methodologies: Using iterative and incremental development processes that
focus on customer satisfaction, rapid delivery, and flexibility.

Continuous Integration & Deployment: Continuously integrating the code changes
and deploying them into the production environment.
Importance of Software

Maximizes the full potential of Hardware.


Provides an intuitive interface to work with.
Promotes innovation and collaboration.
Boosts efficiency and productivity.
Importance of Software
 In simple terms, the software is the program and
instructions that a computer uses to make itself run.
Hardware, the opposite, is the actual material that
comprises a computer. Far too often we think of
getting more powerful devices or the latest
specifications for smart phones or computers, but the
software is what actually makes it work right. It’s
what we interface with, the icons that we click, the
programs that we run, the blank space where we type
our words- that is all software. Just as much as good
hardware is important, good software is even more so.
All the latest and greatest computer hardware in the world is useless
if there isn’t any software to interpret it. Software is there to utilize
hardware: from making sure that it runs efficiently, to providing
people with the latest functionality upgrades. Even older hardware
benefits from improved software support, namely driver upgrades.
Software is important in the sense that it can even dictate how we
use our devices. How something looks, feels, and functions are all
important factors in how we interact with computers, and how
efficiently and accurately we can use them. Nowadays, with the
amazing progress of software, even the most complex of tasks can
now be accomplished through simple input of information.
Type certain information in a specific box, and then you’ll be able to
gather results a few seconds later- a far cry from computers running
terminals from half a century ago. This is all thanks to the graphical
user interface that we all use and enjoy.
Evolving role of Software Eng…
Software Evolution is a term which refers to the process of
developing software initially, then timely updating it for various
reasons, i.e., to add new features or to remove obsolete functionalities
etc. The evolution process includes fundamental activities of change
analysis, release planning, system implementation and releasing a
system to customers.
The cost and impact of these changes are accessed to see how much
system is affected by the change and how much it might cost to
implement the change. If the proposed changes are accepted, a new
release of the software system is planned. During release planning, all
the proposed changes (fault repair, adaptation, and new functionality)
are considered.
A design is then made on which changes to implement in the next
version of the system. The process of change implementation is an
iteration of the development process where the revisions to the system
are designed, implemented and tested.
Laws used for software evolution
Law of continuing change:
This law states that any software system that represents some real-
world reality undergoes continuous change or become progressively
less useful in that environment.
Law of increasing complexity:
As an evolving program changes, its structure becomes more
complex unless effective efforts are made to avoid this
phenomenon.
Law of conservation of organization stability:
Over the lifetime of a program, the rate of development of that
program is approximately constant and independent of the resource
devoted to system development.
Law of conservation of familiarity:
This law states that during the active lifetime of the program,
changes made in the successive release are almost constant.
Software Characteristics
It is intangible, meaning it cannot be seen or touched.
It is non-perishable, meaning it does not degrade over time.
It is easy to replicate, meaning it can be copied and
distributed easily.
It can be complex, meaning it can have many interrelated
parts and features.
It can be difficult to understand and modify, especially for
large and complex systems.
It can be affected by changing requirements, meaning it may
need to be updated or modified as the needs of users change.
It can be affected by bugs and other issues, meaning it may
need to be tested and debugged to ensure it works as intended.
Components of Software
Functionality
It refers to the degree of performance of the software against its
intended purpose.
Functionality refers to the set of features and capabilities that a software
program or system provides to its users. It is one of the most important
characteristics of software, as it determines the usefulness of the
software for the intended purpose. Examples of functionality in
software include:
Data storage and retrieval
Data processing and manipulation
User interface and navigation
Communication and networking
Security and access control
Reporting and visualization
Automation and scripting
Reliability
A set of attributes that bears on the capability of software to maintain its
level of performance under the given condition for a stated period of time.
Reliability is a characteristic of software that refers to its ability to perform
its intended functions correctly and consistently over time. Reliability is an
important aspect of software quality, as it helps ensure that the software will
work correctly and not fail unexpectedly.
Examples of factors that can affect the reliability of software include:
Bugs and errors in the code
Lack of testing and validation
Poorly designed algorithms and data structures
Inadequate error handling and recovery
Incompatibilities with other software or hardware
To improve the reliability of software, various techniques, and
methodologies can be used, such as testing and validation, formal
verification, and fault tolerance.
Efficiency
It refers to the ability of the software to use system resources in the most
effective and efficient manner. The software should make effective use of
storage space and executive command as per desired timing requirements.
Efficiency is a characteristic of software that refers to its ability to use
resources such as memory, processing power, and network bandwidth in an
optimal way. High efficiency means that a software program can perform
its intended functions quickly and with minimal use of resources, while low
efficiency means that a software program may be slow or consume
excessive resources.
Examples of factors that can affect the efficiency of the software include:
Poorly designed algorithms and data structures
Inefficient use of memory and processing power
High network latency or bandwidth usage
Unnecessary processing or computation
Unoptimized code
Usability

 It refers to the extent to which the software can be used with ease. the
amount of effort or time required to learn how to use the software.
Maintainability

It refers to the ease with which modifications


can be made in a software system to extend its
functionality, improve its performance, or
correct errors.
Portability
A set of attributes that bears on the ability of
software to be transferred from one
environment to another, without minimum
changes.
Various Characteristics of Software in
Software
Software is developed or engineered; it is not
manufactured in the classical sense:
Although some similarities exist between
software development and hardware manufacturing,
few activities are fundamentally different.
In both activities, high quality is achieved through
good design, but the manufacturing phase for
hardware can introduce quality problems than
software.
The software doesn’t “wear out.”:Hardware
components suffer from the growing effects of
many other environmental factors. Stated simply,
the hardware begins to wear out.
Software is not susceptible to the environmental
maladies that cause hardware to wear out.
When a hardware component wears out, it is
replaced by a spare part.
There are no software spare parts.
The software continues to be custom-built:
A software part should be planned and carried out
with the goal that it tends to be reused in various
projects.
Current reusable segments encapsulate the two
pieces of information and the preparation that is
applied to the information, empowering the
programmer to make new applications from
reusable parts.
In the hardware world, component reuse is a
natural part of the engineering process.

You might also like