Software Engineering Notes
1. What is Software Reuse?
Using existing software components like code, designs, or libraries in new projects to save time and improve quality.
Two Types:
- Systematic Reuse: Planned reuse (e.g., libraries).
- Opportunistic Reuse: Unplanned reuse of existing parts.
2. What is OOP (Object-Oriented Programming)?
A programming method that organizes code into objects and classes to make it modular and reusable.
Building Blocks:
- Class & Object: Blueprint and instance
- Encapsulation: Hides internal data
- Inheritance: Reuses code
- Polymorphism: One function behaves differently in different contexts
- Abstraction: Hides complexity
3. What is SDLC (Software Development Life Cycle)?
A process guiding software from idea to deployment through steps like planning, designing, building, testing, and
maintaining.
Advantages:
- Structured and organized
- Easier maintenance
- Better quality
- Good documentation
Disadvantages:
- Time-consuming
- Hard to change
- High planning
- Costly if errors appear late
4. What is Debugging?
The process of finding and fixing errors in a program.
Causes of Bugs:
- Syntax mistakes
- Wrong logic
- Runtime failures
- Developer errors
- Integration issues
Logical Bug Example:
A calculator using (a + b + c) / 2 instead of / 3 gives the wrong average.
Software Engineering Notes
5. What is Software Testing?
Checking software to ensure it works properly and meets requirements.
Levels:
- Unit Testing: Tests parts
- Integration Testing: Combined modules
- System Testing: Whole app
- Acceptance Testing: Final check by users
6. What is a Version Control System?
Tool to track and manage code changes (e.g., Git).
Git Commands:
- git add . : Stage all changes
- git commit -m "msg": Save with message
- git status: Check current state
- git pull: Update from remote
- git push: Upload to remote