Home

Catalog Description: This course provides a comprehensive introduction to the principles of software engineering, emphasizing the key phases of the software development process, including project planning, feasibility studies, requirements analysis, specification, design, implementation, testing, quality assurance, documentation, and maintenance. Students will explore various software development methodologies such as Waterfall, V-Model, Spiral, RAD, and Agile, while gaining both theoretical and practical skills in requirements engineering, focusing on gathering, specifying, validating, and evolving requirements. The curriculum covers critical technical document preparation, including Software Requirements Specification (SRS) and Software Design Specification (SDS), as well as software architecture models and modular system design. In the verification and validation section, students will engage in practical work related to various testing techniques, including unit testing, integration testing, system testing, and User Acceptance Testing (UAT), conducting validation studies on test planning, quality assurance strategies, and debugging techniques. The course also addresses project management topics, covering essential elements such as project scope, time and cost estimation processes, risk analysis, and quality management, equipping students with the knowledge and skills necessary to apply estimation methods like COCOMO and utilizing project time management tools such as Gantt analysis, Program Evaluation Review Technique (PERT), and Critical Path Method (CPM). To enhance their communication skills, students will prepare structured written reports and deliver oral presentations, gain practical experience in developing software solutions and understanding the societal and global impacts of software engineering through term application projects. In summary, this course blends theoretical knowledge with practical applications to effectively prepare students for managing software development projects and contributing to successful project outcomes.

Teaching the basic concepts of software engineering with specific emphasis on the practical issues involved in software project management through the use of a one-semester design project.

The students will work in teams on projects of interest to industry and will be involved in analysis of requirements, architecture and design, implementation, testing & validation, project management, software process, software maintenance, and software re-engineering.