CSC404: Software Engineering 6 credits (40-10-10)

Objectives

To apply engineering principles to software development and to identify requirements for given software, and determine how the requirements will be elaborated into a working piece of software as well as software development.

Contents

Introduction; History of Software engineering (SE); Factors considered in SE (e.g. human factors, reliability, efficiency); the software life-cycle; Requirements specification: requirements specifications and validation, prototyping; Mention of parallel and real-time processing issues; Simple examples of formal, semi-formal and informal specifications; Design: Introduction; design decomposition (functional vs. object-oriented); general design strategies; examples notations and methods; Need for design quality control; Importance of user interface design; Implementation: Coding algorithm structures; choice of languages; optimisation; programming style; Validation and verification: Importance; example testing techniques; Program debugging; Software management: Notions on project planning and scheduling; Mention of PERT and Gant charts; Importance of documentation; structure and content of documents from the software life cycle; maintenance issues (e.g. software evolution); Current SE concepts: software metrics, quality assurance and standards; configuration management; Software Engineering Environment (SEE) and Computer Aided Software Engineering (CASE); SE in developing countries including Cameroon.

Prerequisite:

CSC204 or CSC207 or CSC209