DEPARTMENT OF COMPUTER SCIENCE
CS 6640: SOFTWARE ENGINEERING
Advanced topics related to the analysis, design, and development of large software projects. Prerequisite: CS 5640.
Core topics (more or less in order of coverage):
- Introduction - broad issues and challenges that face professional software engineers. How has the field changed over the last 20 years.
- CASE tools - categories, costs and benefits. Examples of CASE tools.
- Rapid Prototyping - types of prototyping. Costs and benefits. Examples of prototyping tools.
- Software complexity - complexity analyses and models. Theories of software complexity.
- Program productivity - measurements and influences.
- Software costing models.
- Object-oriented Software Engineering - analysis, design, testing, and complexity issues
- Software reliability concepts and models
- Training issues
- Future trends - software engineering "in the large"
- Alternative software engineering methodologies and environments
- Database software engineering
- Usability Engineering - Psychology of programming. User interface design. Usability Assessment
The course consists of lectures, demonstrations and student presentations. Students are expected to write at least one significant research paper.