unit 1 part 1 se
unit 1 part 1 se
Modularity:-
The module simply means the software components that are been created by
dividing the software.
The software is divided into various components that work together to form a single
functioning item but sometimes they can perform as a complete function if not
connected with each other.
Encapsulation
Encapsulation in software engineering is a technique that restricts access to some
components of an object, which protects the data from being modified or exposed.
It's a fundamental concept in object-oriented programming (OOP).
Reusability
• Reusability in software engineering is the practice of reusing existing software
components, code, and other assets to develop new software.
Maintenance
• Maintainability is a software engineering term that refers to how easily a
Testing
• Software Testing is a method to assess the functionality of the software
program.
• The process checks whether the actual software matches the expected
requirements and ensures the software is bug-free.
• The purpose of software testing is to identify the errors, faults, or missing
requirements in contrast to actual requirements.
Design Pattern
• Reusable solutions for typical software design challenges are known as
design patterns.
• Expert object-oriented software engineers use these best practices to write
more structured, manageable, and scalable code.
○ Creational Design Pattern
○ Structural Design Pattern
○ Behavioral Design Pattern
Agile methodologies
• Agile methodologies are project management frameworks that break projects
into phases and emphasize collaboration and flexibility.
• They are used in software engineering to develop software quickly and
efficiently.
3. To decrease time:
Anything that is not made according to the project always wastes time. And if you are
making great software, then you may need to run many codes to get the definitive running
code.
This is a very time-consuming procedure, and if it is not well handled, then this can take a
lot of time. So if you are making your software according to the software engineering
method, then it will decrease a lot of time.
5. Reliable software:
Software should be secure, means if you have delivered the software, then it should work
for at least its given time or subscription. And if any bugs come in the software, the
company is responsible for solving all these bugs. Because in software engineering,
testing and maintenance are given, so there is no worry of its reliability.
6. Effectiveness:
Effectiveness comes if anything has made according to the standards. Software standards
are the big target of companies to make it more effective. So Software becomes more
effective in the act with the help of software engineering.
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.
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:
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.
Required functions are:
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.
Required functions are:
Portability:
A set of attributes that bears on the ability of software to be transferred from one
environment to another, without minimum changes.
Required functions are:
Types of Software
It is a collection of data that is given to the computer to complete a particular task.
1. System Software
○ Operating System
○ Language Processor
○ Device Driver
2. Application Software
○ General Purpose Software
○ Customize Software
○ Utility Software
System Software
System Software is software that directly operates the computer hardware and
provides the basic functionality to the users as well as to the other software to
operate smoothly.
System software basically controls a computer’s internal functioning and also
controls hardware devices such as monitors, printers, and storage devices, etc.
It is like an interface between hardware and user applications, it helps them to
communicate with each other because hardware understands machine
language(i.e. 1 or 0) whereas user applications are work in human-readable
languages like English, Hindi, German, etc.
System software converts the human-readable language into machine language
and vice versa.
New Section 3 Page 7
and vice versa.
2. Language Processor:
• As we know that system software converts the human-readable
language into a machine language and vice versa. So, the conversion is
done by the language processor.
• It converts programs written in high-level Programming
language like Java , C++ Python etc(known as source code), into sets of
instructions that are easily readable by machines(known as object code
or machine code).
3. Device Driver:
• A device driver is a program or software that controls a device and helps
that device to perform its functions.
• Every device like a printer, mouse, modem etc. needs a driver to connect
with the computer system eternally. So, when you connect a new device
with your computer system, first you need to install the driver of that
device so that your operating system knows how to control or manage
that device.
Application Software
Software that performs special functions or provides functions that are much more
than the basic operation of the computer is known as application software. Or in
other words, application software is designed to perform a specific task for end-
users.
It is a product or a program that is designed only to fulfill end-users’ requirements.
It includes word processors, spreadsheet, database management, inventory, payroll
programs, etc.
New Section 3 Page 8
programs, etc.