This course covers the software development process, from requirements elicitation and analysis, through specification and design, to implementation, integration, testing, and maintenance. A variety of concepts, principles, techniques, and tools are presented, encompassing topics such as software life cycle, people management, team organization, managing software quality, estimation, software requirements, software architecture, and detailed design, user interface design, software testing, and software maintenance. Although the emphasis will be on modern approaches some more traditional software engineering techniques will also be discussed. The objective of this course is to understand these stages, and identify the best practices for software development projects.
By the end of the course, the student should be able to:
Understand all phases of the software process through the study of concepts, principles and techniques applied in software development projects.
Understand the most important best practices used in software engineering through the use of simulations and case studies.
Understand the current methodologies and new paradigms applied in software engineering
The schedule can be found on the Leiden University student website
Detailed table of contents can be found in blackboard.
Mode of instruction
6 Interactive lectures
25% of the course grade.
75% of the course grade.
Attendance and active class participation is required to pass this course.
- Software Engineering: Principles and Practice, Hans van Vliet, 3rd edition, John Wiley & Sons, 2008.
Extra reading materials will be made available online on blackboard.
Signing up for classes and exams
You have to sign up for classes and examinations (including resits) in uSis. Check this link for more information and activity codes.
There is only limited capacity for external students. Please contact the programme Co-ordinator
Programme Co-ordinator: ms. Esme Caubo