Back to main teaching page


Introduction to Software Engineering

Fall 2010   


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.