This course is focused on providing students with an overview of theoretical and practical aspects of Software Engineering such as: software process, project planning, requirements engineering, design strategies, informal/formal specification, analysis techniques, model-driven development, testing techniques, software product lines, prototyping and presentation.
Introduction to Software Engineering
Software Development Process Model
Requirements
Software Design
Testing Strategies (Validation and Verification)
Component-based Software Engineering
Software Maintenance & Reengineering
Agile Software Engineering
Techniques of Software Cost Estimation
Distributed Software Engineering
Embedded Systems Engineering
Software Management
[1] Sommerville, Ian. Software engineering 9th Edition, ISBN-10, 2011.
Course information (detailed syllabus, evaluation policies, important dates)
General course instructions and guidelines
Lecture 0: Motivation and course presentation
Lecture 1: Introduction to Software Engineering
Lecture 2: Software Development Process Models
Lecture 4: Software design and modelling
Lecture 5: Testing Strategies
Lecture 6: Component-based Software Engineering
Lecture 7: Software Maintenance & Reengineering
Lecture 8: Agile Software Engineering
Lecture 9: Software Cost Estimation
Lecture 10: Wrap-up session
Additional lecture: Risk-based testing