CNC 618: Software Engineering

Offered Under: M.Sc. in Computer Networks & Communications (CNC)

This course is designed to provide you opportunity to gain knowledge and skills necessary to analyse, design and implement complex software engineering projects. The course focuses on taking a group development project from beginning to end. The project based approach used requires you to review and refine your design iteratively based on regular feedback. Topics include: Software as product and process; Project management and planning; tracking and scheduling; risk analysis and quality assurance techniques; configuration management; Project and process metrics, size and function oriented metrics; Software testing techniques: black box and white box techniques, Testing strategy: unit, integration and system testing; Concepts of object-oriented, event-driven and network programming, client-server architecture, web engineering. 

Course Type Major
Credit Hour 3
Lecture Hour 45
Expected Outcome(s):
  • Explain and apply the main aspects of software engineering
  • Evaluate requirements for a software system and apply the process of analysis and design using the object-oriented approach.
  • Employ group working skills including general organization, planning and time management and inter-group negotiation.
  • Translate a requirements specification into an implementable design, following a structured and organized process.
  • Formulate a testing strategy for a software system, employing techniques such as unit testing, test driven development and functional testing.

Suggested Books:
  1. Software Engineering: A Practitioner's Approach by Roger Pressman and Bruce Maxim
  2. Software Engineering (9th Edition) by Ian Sommerville

Grading Policy:

Biweekly Quiz, One Midterm Exam, One Final Exam, Project