Software e 142 (2)
Software e 142 (2)
ENGINEERING
SOFTWARE ENGINEERING
(3150402)
Submitted by: Submitted to:
Tanushka Tiwari (0901CS231142) Dr. Ranjeet Kumar Singh
1
CO1. Explain the various fundamental
concepts of software engineering.
• Key Concepts:
• SDLC (Software Development Life Cycle): Phases from requirement gathering to maintenance.
• Process Models: Waterfall, Agile, Spiral, Iterative.
• Design Concepts: Abstraction, modularity, architecture.
• Testing & Maintenance: Ensures quality and adaptability.
• Project Management: Planning, scheduling, resource allocation.
• Quality Assurance: Ensures conformance to standards and user expectations.
2
CO2. Recognize the importance of requirements
engineering in the software development lifecycle
• Key Concepts:
• Requirements Engineering: Process of collecting, analyzing, and documenting what the software
must do.
• Types of Requirements:
• Functional: What the system should do (e.g., login functionality).
• Non-functional: How the system behaves (e.g., performance, security).
• Activities:
• Requirement Elicitation (interviews, questionnaires)
• Analysis
• Specification (SRS – Software Requirement Specification)
• Validation
3
CO3. Identify Effective Software Design principles
including cohesion and coupling
• Key Concepts:
• Cohesion: Degree to which elements of a module belong together.
• High cohesion = better maintainability & reusability.
• Coupling: Degree of interdependence between modules.
• Low coupling = less inter-module dependency, easier maintenance.
• Other Principles:
• Abstraction: Hiding implementation details.
• Modularity: Dividing system into independent modules.
• Separation of Concerns: Breaking problems into distinct parts.
• Encapsulation: Data hiding to protect integrity.
4
CO4. Implement software metrics for estimating the
cost, effort, and schedule of software projects.
• Key Concepts:
• Software Metrics: Quantitative measures of software characteristics.
• Estimation Techniques:
• LOC (Lines of Code): Based on size of code.
• Function Point Analysis (FPA): Based on functionality.
5
CO5. Examine various testing techniques based on
software requirements and design specifications.
Testing Types:
1. White-box Testing: Based on internal logic (Unit Testing, Code Coverage).
2. Black-box Testing: Based on requirements (Functional Testing, System Testing).
3. Grey-box Testing: Mix of both.
Testing Techniques:
1. Equivalence Partitioning
2. Boundary Value Analysis
3. Decision Table Testing
4. State Transition Testing
Levels of Testing:
Unit, Integration, System, Acceptance
Importance: Ensures reliability, correctness, and performance of the software.
6
CONCLUSION
7
Thank you