Back to main teaching page
Introduction to Software Engineering
Course Description
Introduction to tools, concepts and techniques used to develop complex software projects.
The tools include: object-oriented languages and data structures. Concepts and techniques
include: software development life cycle including requirements engineering, design methodology
and testing.
Syllabus
The objective of this class is to prepare students to understand the principles of software engineering, including
concepts such as requirements analysis, design, development and testing. Object-oriented languages and data
structures will be used as a foundation for software design and development. Students will be introduced to
traditional software engineering models such as the waterfall and spiral models and newer Agile methodologies
for the software development life cycle. At the end of this course, students will be introduced to the following
tools, concepts and techniques:
- Object-oriented programming concepts including encapsulation, inheritance, compile-time and run-time polymorphism.
- Software requirements engineering.
- Software design and development using principles of object-oriented programming.
- Software testing including test-first design and test-driven development.
Textbooks (Recommended, not required)
"Software Engineering" by Ian Somerville, 8th edition, Addison Wesley, 2006 (ISBN: 9780321313799).
"Software Engineering: Modern Approaches" by Eric J. Baude and Nichael E. Bernstein, 2nd edition, John Wiley & Sons.
"Software Engineering: Modern Approaches" by Eric J. Baude and Nichael E. Bernstein, 2nd edition, John Wiley & Sons.