The informal approaches that most individual programmers use when writing small programs do not work very well when applied to the development of large pieces of software and team programming situations. Software engineering is a discipline that applies principles of traditional engineering to improve software, as well as its development and maintainability. In this course, we will examine the stages of the software engineering process, including requirements gathering, specification, design, implementation, and testing. We will also cover the practicalities of software engineering, covering a number of the key tools and technologies leveraged in successful endeavours. A large group project, completed by teams of students, will serve to reinforce concepts learned and give students practical experience developing software in a realistic work environment.
The informal approaches that most individual programmers use when writing small programs do not work very well when applied to the development of large pieces of software and team programming situations. Software engineering is a discipline that applies principles of traditional engineering to improve software, as well as its development and maintainability. In this course, we will examine the stages of the software engineering process, including requirements gathering, specification, design, implementation, and testing. We will also cover the practicalities of software engineering, covering a number of the key tools and technologies leveraged in successful endeavours. A large group project, completed by teams of students, will serve to reinforce concepts learned and give students practical experience developing software in a realistic work environment.