Software Engineering

GJX301 Undergraduate 6 Credits

Course Description

A comprehensive course covering the entire software engineering discipline, from requirements analysis to maintenance. Students will learn modern software development methodologies, design patterns, testing strategies, project management, and industry best practices. This course provides hands-on experience with real-world software development scenarios and prepares students for professional software engineering roles.

Total Duration: 45 hours (2700 minutes)
Total Sessions: 68
Total Modules: 10

Course Outcomes:
Master the complete software development life cycle (SDLC) and apply it to real-world projects
Design and architect scalable, maintainable software systems using industry-standard patterns
Implement effective software testing strategies and quality assurance processes
Apply agile and traditional project management methodologies in software projects
Demonstrate proficiency in requirements engineering, system design, and documentation

Learning Outcomes:
Analyze and document software requirements using various elicitation techniques
Create comprehensive software design documents including UML diagrams and architecture models
Develop software following best practices, design patterns, and coding standards
Evaluate software quality through testing, code reviews, and metrics analysis
Manage software projects using agile and waterfall methodologies effectively

Course Outcomes (COs)

CO1

Analyze and document software requirements using various elicitation techniques

CO2

Create comprehensive software design documents including UML diagrams and architecture models

CO3

Develop software following best practices, design patterns, and coding standards

CO4

Evaluate software quality through testing, code reviews, and metrics analysis

CO5

Manage software projects using agile and waterfall methodologies effectively

Course Modules

Introduction to Software Engineering (4 hours (240 minutes))

Overview of software engineering principles, history, and the software crisis. Understanding the importance of systematic approaches to software development.

Topics: • What is Software Engineering?
• Software Crisis and Evolution
• Software Engineering Principles
• Software Engineering Ethics
• Professional Responsibilities
• Software Engineering vs Programming
Learning Objectives: • Define software engineering and its importance
• Explain the software crisis and its solutions
• Understand professional ethics in software engineering
• Differentiate between programming and software engineering
• Identify key software engineering principles

Sessions:

Introduction to Software Engineering

Session 1 of Module 1: Introduction to Software Engineering. Duration: 40 minutes. This session covers key concepts related to Introduction to Software Engineering.

Outcome: Understand the definition, scope, and importance of software engineering in modern technology

Software Crisis and Its Impact

Session 2 of Module 1: Software Crisis and Its Impact. Duration: 40 minutes. This session covers key concepts related to Software Crisis and Its Impact.

Outcome: Analyze historical software failures and understand why systematic approaches are necessary

Software Engineering Principles

Session 3 of Module 1: Software Engineering Principles. Duration: 40 minutes. This session covers key concepts related to Software Engineering Principles.

Outcome: Learn fundamental principles like modularity, abstraction, and information hiding

Professional Ethics in Software Engineering

Session 4 of Module 1: Professional Ethics in Software Engineering. Duration: 40 minutes. This session covers key concepts related to Professional Ethics in Software Engineering.

Outcome: Understand ethical responsibilities and the ACM/IEEE Code of Ethics

Software Engineering vs Programming

Session 5 of Module 1: Software Engineering vs Programming. Duration: 40 minutes. This session covers key concepts related to Software Engineering vs Programming.

Outcome: Differentiate between software engineering practices and simple programming

Overview of Software Engineering Activities

Session 6 of Module 1: Overview of Software Engineering Activities. Duration: 40 minutes. This session covers key concepts related to Overview of Software Engineering Activities.

Outcome: Identify the key activities in software engineering from conception to maintenance

Course Contents

Key Skills

  • • System Programming
  • • Operating System Concepts
  • • Process Management
  • • Memory Management

Technologies

Linux Shell Scripting C Programming