per person /

Free

Home Courses

SOFTWARE ENGINEERING AND TESTING

SOFTWARE ENGINEERING AND TESTING

Teacher

SUSANTA KUMAR NAYAK

Category

Course Attendees

Still no participant

Course Reviews

Still no reviews

SOFTWARE ENGINEERING AND TESTING  - CUCS1011   [1-2-0]

Course Objective:

  • The objective of the course is to provide understanding of the Software Engineering Fundamentals, Requirements Engineering, and Software Design Principles etc.
  • Provide the skills for understanding the techniques to acquire Object-Oriented Design Skills, Gain Expertise in Software And Verification.
  •  To learn the Ensure Software Quality Assurance and Software Maintenance and Evolution.

Course Outcomes:

COs Course outcomes
CO1 Knowledge on the software development life cycle (SDLC) phases and their significance with respect to various software process models (Waterfall, Agile, Spiral) and comparison their concepts.
CO2 Acquire the roles and responsibilities within software development teams and differentiate between functional and non-functional requirements in software engineering.
CO3 Applying requirement elicitation techniques (interviews, surveys) to gather software requirements effectively and evaluate the effectiveness of different software testing strategies for specific scenarios.
CO4 Creating comprehensive requirement specifications using use case modeling and user stories.
CO5 Critique and compare different software process models based on project requirements and evaluate the impact of software design decisions on system scalability and maintainability.

CO/ PO Mapping:

CO, PO Mapping Matrix
CO/PO PO1 PO2 PO3 PO4 PO5 PO6 PO7 PO8 PO9 PO10 PO11 PO12 PSO1 PSO2 PSO3
CO1 3 3 3 3 2 2 3 2 2 1 3 2 1
CO2 2 2 2 3 3 1 2 3 3 2 2 3 1
CO3 2 3 3 2 2 2 3 2 2 1 3 2 2
CO4 3 3 3 3 3 1 2 3 3 2 2 3 1
CO5 3 2 2 2 3 2 3 2 2 3 3 2 1

Course Content:

 

Module 1: Software Engineering (4hrs)

  • Overview of Software Engineering
  • Software Development Life Cycle (SDLC)
  • Software Process Models: Waterfall, Agile, Spiral
  • Roles and Responsibilities in Software Development Teams

Module 2: Requirements Engineering (4hrs)

  • Requirements Elicitation and Analysis
  • Functional and Non-functional Requirements
  • Use Case Modeling and User Stories
  • Requirement Specification and Documentation

Module 3: Software Design Principles (4hrs)

  • Software Design Basics
  • Modularization and Abstraction
  • Design Patterns: Creational, Structural, Behavioral
  • Architectural Styles: Layered, Client-Server, MVC

Module 4: Object-Oriented Design (3hrs)

  • Object-Oriented Programming
  • Classes, Objects, and Inheritance
  • Encapsulation and Polymorphism
  • Design Principles: SOLID, GRASP

Module 5: Software Testing Fundamentals (5hrs)

  • Software Testing
  • Testing Levels: Unit Testing, Integration Testing, System Testing
  • Testing Techniques: Black Box, White Box, Grey Box
  • Test Case Design: Equivalence Partitioning, Boundary Value Analysis
  • Testing Strategies: Regression Testing, Smoke Testing, Acceptance Testing
  • Test Planning and Execution
  • Test Automation Frameworks and Tools
  • Continuous Integration and Continuous Testing

Module 6: Software Quality Assurance (3hrs)

  • Quality Assurance Quality Control
  • Software Quality Attributes: Reliability, Usability, Maintainability, Scalability
  • Metrics for Software Quality Measurement
  • Defect Tracking and Management

Module 7: Software Maintenance and Evolution (3hrs)

  • Software Maintenance Activities: Corrective, Adaptive, Perfective
  • Impact Analysis and Change Management
  • Refactoring Techniques
  • Legacy System Migration and Modernization

Practical/Labs:

 

Lab 1: Requirement Elicitation Techniques: Interviews, Surveys;

Lab 2: Use Case Modeling and User Story Writing;

Lab 3: Software Design Exercise: UML Diagrams;

Lab 4: Object-Oriented Design Principles: Implementation in Java/C++;

Lab 5: Writing and Executing Unit Tests;

Lab 6: Integration Testing: Testing APIs and Interfaces;

Lab 7: Test Automation Using Selenium or Junit;

Lab 8: Software Quality Metrics ;

Lab 9: Software Measurement techniques and method;

Lab 10: Defect Tracking and Management Tools;

Lab 11: Refactoring Legacy Codebase Maintenance;

Lab12: Verification and validation Testing;

Lab13: More Oops design principles Implementation in C++;

 

 

Our Main Teachers