Course Title: Software Engineering I
Course Overview:
Software Engineering I is an introductory course that covers the fundamental principles and practices of software development. Students will learn about software development life cycles, requirements engineering, software design, testing, and project management. The course emphasizes both theoretical concepts and practical application through hands-on projects and case studies.
Course Objectives:
Understand the software development process and different development life cycle models.
Learn techniques for eliciting, analyzing, and documenting software requirements.
Gain knowledge of software design principles and patterns.
Develop skills in software testing, including test planning, execution, and evaluation.
Learn about project management concepts and tools used in software development.
Enhance problem-solving and teamwork skills through group projects and activities.
Course Outline:
Introduction to Software Engineering
Definition and scope of software engineering
Software development paradigms
Software processes and life cycle models (Waterfall, Agile, etc.)
Software Requirements Engineering
Requirements elicitation techniques
Requirements analysis and specification
Use case modeling and requirements documentation
Software Design
Principles of software design
Design patterns and architectural styles
UML (Unified Modeling Language) for software design
Software Testing
Testing fundamentals and objectives
Types of testing (unit testing, integration testing, system testing, etc.)
Test planning, execution, and reporting
Software Project Management
Project planning and estimation
Risk management in software projects
Agile project management practices (Scrum, Kanban)
Software Development Tools
Version control systems (e.g., Git)
Integrated Development Environments (IDEs)
Collaboration and communication tools (e.g., Slack, Jira)
Case Studies and Project Work
Analysis of real-world software projects
Group projects to apply concepts learned
Software development life cycle in practice
Assessment Methods:
Quizzes and exams to assess theoretical knowledge.
Individual and group assignments focusing on practical skills.
Software development projects with documentation and presentations.
Participation in discussions, workshops, and peer reviews.
Textbook:
“Software Engineering: A Practitioner’s Approach” by Roger S. Pressman
References:
“Introduction to the Team Software Process” by Watts S. Humphrey
“Agile Estimating and Planning” by Mike Cohn
Admission Open for this course
Contact Number: 03307615544