CNC 618: Software Engineering

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

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