0% found this document useful (0 votes)
4 views2 pages

Software Engineering Essentials Explained

Uploaded by

clashofgamer6362
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views2 pages

Software Engineering Essentials Explained

Uploaded by

clashofgamer6362
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

■ Software Engineering Basics (Simplified)

1. Purpose of Software Testing


Testing is done to find errors and check if the software works as users expect. Example:
Checking if a food delivery app shows the correct address.

2. Design Verification
Before coding starts, make sure the design has all the required features. Example:
Railway booking system design should have ticket booking, cancellation, and seat
selection.

3. Characteristics of Good Software


• Reliable – works correctly without failing. • Usable – easy to learn and use. Example:
Google Maps is reliable and easy to use.

4. Verification in Software Engineering


Verification = building the product correctly as per design. Example: Reviewing an online
exam portal design before coding it.

5. Cohesion
Cohesion = how well tasks in a module belong together. High cohesion = easier to
understand and maintain. Example: A “Billing” module should only handle billing tasks.

6. Verification vs Validation
• Verification – Are we building it right? (design check) • Validation – Are we building the
right thing? (real use check) Example: Verification: ATM design has “withdraw” option.
Validation: Actually withdrawing cash works.

7. Test-Driven Development (TDD)


Write tests first, then code, then improve code. Benefits: - Catches errors early - Makes
design clear - Increases confidence in changes Example: Write a test for “Add to Cart”
before coding it.

8. Fault Tolerance
System keeps working even if something fails. Use backups, error recovery. Example:
Google Drive uses backup servers if one fails.

9. Low-Level Design (LLD) vs High-Level Design (HLD)


HLD – Big picture of the system (modules, structure) LLD – Detailed design of each part
(algorithms, classes) Example: Banking app HLD → Transaction Module LLD →
Debit/credit algorithm, class design

10. Coupling vs Cohesion


• Cohesion = tasks in a module are related • Coupling = how much one module depends
on another Best practice: High cohesion + low coupling = easy to maintain and grow.

11. Role of Documentation


Helps understand design, coding, and testing Includes test plans, test cases, and bug
reports Example: Hospital system docs explain modules, user guides, and test steps.

12. Manual vs Automated Testing


Manual Testing: - Done by humans, slow, error-prone Automated Testing: - Done by tools,
fast, accurate Example: Manual → Visually checking a signup form. Automated →
Running 100 logins using Selenium.

13. Error Detection & Correction


Detect errors using: - Reviews, testing, debugging tools Fix errors using: - Bug fixing, error
handling (try-catch), recovery systems Example: ATM shows “Transaction failed” if the
network drops.

Key Idea
• Verification → Did we build it right? • Validation → Did we build the right thing? • High
cohesion + low coupling = good software.

You might also like