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

Software Engineering_01

Software engineering is the discipline of developing software products using systematic and scientific principles, resulting in efficient and reliable software. It encompasses the entire software development process, including requirement analysis, design, implementation, testing, and maintenance. Programming is a subset of software engineering focused on writing code to solve specific problems.

Uploaded by

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

Software Engineering_01

Software engineering is the discipline of developing software products using systematic and scientific principles, resulting in efficient and reliable software. It encompasses the entire software development process, including requirement analysis, design, implementation, testing, and maintenance. Programming is a subset of software engineering focused on writing code to solve specific problems.

Uploaded by

faizanarbab98
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 28

Software Engineering

Introduction
Software Engineering

The term software engineering is composed of two


words, software and engineering.

 Software is a collection of instructions or set of


instructions, data, and programs that tell a computer
how to perform specific tasks.

 Unlike hardware, which refers to the physical


components of a computer, software is intangible
and exists in the form of code and data structures.
Software Engineering

 Software is more than just a program code. A program


is an executable code, which serves some computational
purpose.

 Software is considered to be a collection of executable


programming code, associated libraries and
documentations.

 Software, when made for a specific requirement is called


software product.

 Engineering on the other hand, is all about developing


products, using well-defined, scientific principles and
methods.
Software Engineering

 So, we can define software engineering as an


engineering branch associated with the development
of software product using well-defined scientific
principles, methods and procedures.

 The outcome of software engineering is an efficient


and reliable software product.
Software Engineering

IEEE defines software engineering as:


 The application of a systematic, disciplined,
quantifiable (measureable, computable) approach
to the development, operation and maintenance of
software.
Software Engineering

Software Engineering is the science and art of


building significant software systems that are:
1) on time
2) on budget
3) with acceptable performance
4) with correct operation.
Types of Software

 Software can be categorized into different types based on


its functionality and purpose. The main types of software
are:

 System Software
 Windows, macOS, Linux, Android, iOS.

 Application Software
 (General and Customized)

 Utility Software
 (Antivirus software, Disk cleanup tools, Backup software etc.)
Problems in software development

 The final software does not fulfill the needs of the


customer

 Hard to extend and improve: if you want to add a


functionality later its mission impossible

 Bad documentation

 Bad quality: frequent errors, hard to use, ...

 More time and costs than expected


Software can have huge impact
in any aspect of our society
Where can we find software?
Some popular ones…
Some popular ones…
And even in…
What is Programming (Coding)?

 Programming (or coding) is the process of writing


instructions for a computer to execute. These
instructions, known as code, are written using
programming languages such as Python, Java, C++,
etc.
Key Components of Programming:

 Syntax: The set of rules defining the structure of a


programming language.
 Logic: The logical flow that determines how the
program processes data.
 Algorithms: Step-by-step procedures to solve
problems efficiently.
 Debugging: Identifying and fixing errors in the
code.
 Compilation & Interpretation: Translating code
into machine-readable form.
 The economies of all developed nations are
dependent on software.

 More and more systems are software controlled.

 Software engineering is concerned with theories,


methods and tools for professional software
development.
Key Aspects of Software Engineering:

 Requirement Analysis: Understanding what the


software must accomplish.

 Design: Creating architecture and data structures.

 Implementation/ Development: Writing and


implementing the software code.

 Integration and Testing: Verifying the software's


correctness and performance.

 Deployment & Maintenance: Installing, updating,


and maintaining the software.
Difference Between Software Engineering and
Programming
Aspect Software Engineering Programming
The application of engineering principles for Writing and implementing code to
Definition
software development solve specific problems

Entire software development process Writing code for specific


Focus
(design, development, testing, maintenance) functionalities

Large-scale, complex projects with Smaller-scale projects or individual


Scope
structured methodologies components of software

Uses systematic development models Typically focuses on coding and


Process
(SDLC, Agile, etc.) debugging

Involves teams of engineers, testers, Can be done individually or in small


Collaboration
designers, and managers teams

Tools & Project management, UML diagrams, Code editors, compilers, interpreters,
Techniques version control (Git), testing frameworks debugging tools
NEED OF SOFTWARE ENGINEERING

The need of software engineering arises because of higher


rate of change in user requirements and environment on
which the software is working.

 Large software - It is easier to build a wall than to a


house or building, likewise, as the size of software
become large engineering has to step to give it a scientific
process.

 Scalability- If the software process were not based on


scientific and engineering concepts, it would be easier to
re-create new software than to scale an existing one.
 Cost- The cost of software remains high if proper
process is not adapted.

 Dynamic Nature- If the nature of software is always


changing, new enhancements need to be done in the
existing one. This is where software engineering plays a
good role.

 Quality Management- Better process of software


development provides better and quality software
product.
Well-Engineered Software

Well-engineered software is one that has the following


characteristics:

 It Provides the required functionality


 It is reliable (Trustworthy)
 It has acceptable performance
 It is of good quality
 It is cost-effective
 It is User-friendly (good Interface)
“Software does not wear out!”

 Unlike physical hardware, which deteriorates over


time due to wear and tear, software does not
physically degrade.

 Once written, software remains the same unless


modified, updated, or affected by external factors
like bugs or compatibility issues.

 (Wear out: exhaust or get tired through overuse or great


strain or stress, tear out.)
 Even though software does not wear out, it may
become obsolete or malfunction due to:

Example: Software Bugs & Errors:


 Some programs may contain coding mistakes that
cause failures over time.
 Example: A banking app may crash due to a
programming error in a new update.
 Hardware parts like a hard drive or a keyboard
can break or wear out over time due to continuous
usage.

 Software is just a set of instructions stored


digitally, so it does not degrade like physical
materials.
Summary

 Programming is just one phase of software


development that involves writing code.

 Software Engineering is a broader discipline that


includes design, development, testing, maintenance,
and project management to ensure high-quality
software production.
Books for reference

 Software Engineering
 Sommerville

 Software Engineering : A practitioners Approach


 Roger S. Pressman

You might also like