Software Engineering Notes 1 ( Unit 1)
What is Software?
Software is a collection of programs, data, and instructions that tell a computer what to do. It can be categorized
into:
System Software – Operating systems, compilers ( Windows, Linux).
Application Software – Programs for users (MS Word, Web Browsers).
Embedded Software – Used in devices like ATMs, microwaves, and cars.
What is Engineering?
Engineering is the application of scientific and mathematical principles to design and develop efficient and reliable
solutions to real-world problems.
What is Software Engineering?
Software Engineering is the application of engineering principles to software development to create high-quality
software in a systematic, efficient, and cost-effective manner.
Components Of Good Software ( Software Characteristics)
Software differs from physical goods (such as hardware) in that it is not physical and has a logical structure, not a
physical structure. The following are the key features of software:
1. Correctness
The program has to meet all the user-listed functional requirements.
Example: A banking app should execute transactions correctly without error.
2. Reliability
It should operate uninterrupted without frequent failure and crashing.
Example: An airline reservation system should never crash during a reservation.
3. Efficiency
Software should utilize only minimal system resources (CPU, memory, disk space) but still maintain performance.
Example: A video editing app needs to be responsive without consuming excessive RAM.
4. Maintainability
The program should be easy to modify or debug if needed.
Example: A payroll system should offer easy updates for tax rate changes.
5. Usability (User-Friendliness)
The software should be user-friendly with a simple and intuitive interface.
Example: There must be easy navigation and clear-to-read buttons in a social media app.
6. Portability
Software must be executable on other hardware and operating systems with minimal modification.
, Example: A web application must accommodate running on Windows and Mac.
7. Reusability
Certain components of the software must be reusable in future projects.
Example: A login system developed in a project can be reused in another application.
8. Testability
The code should be easy to test in order to detect and fix bugs.
Example: There should be price calculation testability in a shopping cart application.
9. Security
The program should protect information from abuse, hacking, and malware.
Example: Mobile banking apps are required to use encryption to safeguard transactions.
*** Quality software must be secure, efficient, reliable, easy to use, and maintainable. The more of these, the higher
the quality of the software!**
Software Crisis ?
Software Crisis is a term used in computer science for the difficulty of writing useful and efficient computer
programs in the required time. The software crisis was due to using the same workforce, same methods, and same
tools even though rapidly increasing software demand, the complexity of software, and software challenges. With
the increase in software complexity, many software problems arose because existing methods were insufficient.
Software Crisis refers to the difficulties in software development, such as:
Increasing complexity of software.
Projects running over time and budget.
Low-quality software with too many bugs.
Difficulty in maintenance and scalability.
Less skilled project members.
One possible solution to a software crisis is Software Engineering because software engineering is a systematic,
disciplined, and quantifiable approach. For preventing software crises.
Software Process?
A Software Process is a structured sequence of activities required to develop a software system. It includes:
1. Requirement Analysis – Understanding user needs.
2. Design – Planning the architecture and components.
3. Implementation – Writing the code.
4. Testing – Checking for defects.
5. Deployment – Delivering software to users.
6. Maintenance – Fixing bugs and updating the system.
What is Software?
Software is a collection of programs, data, and instructions that tell a computer what to do. It can be categorized
into:
System Software – Operating systems, compilers ( Windows, Linux).
Application Software – Programs for users (MS Word, Web Browsers).
Embedded Software – Used in devices like ATMs, microwaves, and cars.
What is Engineering?
Engineering is the application of scientific and mathematical principles to design and develop efficient and reliable
solutions to real-world problems.
What is Software Engineering?
Software Engineering is the application of engineering principles to software development to create high-quality
software in a systematic, efficient, and cost-effective manner.
Components Of Good Software ( Software Characteristics)
Software differs from physical goods (such as hardware) in that it is not physical and has a logical structure, not a
physical structure. The following are the key features of software:
1. Correctness
The program has to meet all the user-listed functional requirements.
Example: A banking app should execute transactions correctly without error.
2. Reliability
It should operate uninterrupted without frequent failure and crashing.
Example: An airline reservation system should never crash during a reservation.
3. Efficiency
Software should utilize only minimal system resources (CPU, memory, disk space) but still maintain performance.
Example: A video editing app needs to be responsive without consuming excessive RAM.
4. Maintainability
The program should be easy to modify or debug if needed.
Example: A payroll system should offer easy updates for tax rate changes.
5. Usability (User-Friendliness)
The software should be user-friendly with a simple and intuitive interface.
Example: There must be easy navigation and clear-to-read buttons in a social media app.
6. Portability
Software must be executable on other hardware and operating systems with minimal modification.
, Example: A web application must accommodate running on Windows and Mac.
7. Reusability
Certain components of the software must be reusable in future projects.
Example: A login system developed in a project can be reused in another application.
8. Testability
The code should be easy to test in order to detect and fix bugs.
Example: There should be price calculation testability in a shopping cart application.
9. Security
The program should protect information from abuse, hacking, and malware.
Example: Mobile banking apps are required to use encryption to safeguard transactions.
*** Quality software must be secure, efficient, reliable, easy to use, and maintainable. The more of these, the higher
the quality of the software!**
Software Crisis ?
Software Crisis is a term used in computer science for the difficulty of writing useful and efficient computer
programs in the required time. The software crisis was due to using the same workforce, same methods, and same
tools even though rapidly increasing software demand, the complexity of software, and software challenges. With
the increase in software complexity, many software problems arose because existing methods were insufficient.
Software Crisis refers to the difficulties in software development, such as:
Increasing complexity of software.
Projects running over time and budget.
Low-quality software with too many bugs.
Difficulty in maintenance and scalability.
Less skilled project members.
One possible solution to a software crisis is Software Engineering because software engineering is a systematic,
disciplined, and quantifiable approach. For preventing software crises.
Software Process?
A Software Process is a structured sequence of activities required to develop a software system. It includes:
1. Requirement Analysis – Understanding user needs.
2. Design – Planning the architecture and components.
3. Implementation – Writing the code.
4. Testing – Checking for defects.
5. Deployment – Delivering software to users.
6. Maintenance – Fixing bugs and updating the system.