Software engineering is the discipline concerned with the application of theory, knowledge,  and  practice  to  build  effectively  and  efficiently  software  systems  that satisfy the requirements of users and customers. Software engineering is applicable to small, medium, and large-scale systems. It encompasses all phases of the life cycle of a software system. The life cycle includes requirement analysis and specification, design, construction, testing, and operation and maintenance. The development of programs benefits from the concepts and practices derived from software engineering.

Software engineering employs engineering methods, processes, techniques, and measurement. It benefits from the use of tools for managing software development; analyzing and modeling software artifacts; assessing and controlling quality; and for ensuring a disciplined, controlled approach to software evolution and reuse. Software development,  which  can  involve  an  individual  developer  or  a team of developers, requires choosing the tools, methods, and approaches that are most applicable for a given development environment.


  • To  introduce the student to the evolution and scope of Software Engineering as a discipline and as a Profession
  • To  expose  the  student  to  the  practical  imperatives  underpinning   software development  –  requirements  analysis,  design,  implementation,  testing, deployment, user training and support, and maintenance.
Attachment Name Attachment Type
CES2207 Law for Civil Engineering Surveyors DOC PDF PS