Software systems are typically built over a longer period of time with diverse teams (in terms of organizational roles and skill sets), as well as with constantly changing requirements. This results in various challenges with respect to engineering and project management. In addition, the wishes of a client are not always easy to translate to a set of functional requirements for a software system. And various non-functional requirements, such as, performance, maintenance costs, and reliability of the software system, only come into real focus once a system has been deployed in the real-world environment.
In the course “Software Engineering,” we study techniques for managing software development processes and for engineering high-quality software systems. These skills are honed in the context of the real-world corporate environment provided by LUdev, a software house fully ran by students. Students join LUdev in teams, which are tasked to complete a real-world software project for an actual client. Completing this project requires more than just programing skills, as the team is also in charge of project management, version management, client communication, collaborations within LUdev (involving students from other courses) and product deployment. LUdev facilitates these acivities with infrastructure, tutorials, manuals and technical support, so student teams can be as productive as possible (for previous results see the website www.ludev.nl).
Development processes and methodology
Software project management
Requirement elicitation and analysis
System modeling using UML
Quality Assurance & Testing
Programming and algorithmic skills are required to participate in the course.
Managing the software development process using agile approaches
Learning the differences between various software development methodologies
Practical experience with project management and team-based software development
Modeling the design of software systems and business processes in UML
Applying version control, testing and quality metrics to software under development
Using modern software development tools (IDEs, version control, continuous integration, etc)
You will find the timetables for all courses and degree programmes of Leiden University in the tool MyTimetable (login). Any teaching activities that you have sucessfully registered for in MyStudymap will automatically be displayed in MyTimetable. Any timetables that you add manually, will be saved and automatically displayed the next time you sign in.
MyTimetable allows you to integrate your timetable with your calendar apps such as Outlook, Google Calendar, Apple Calendar and other calendar apps on your smartphone. Any timetable changes will be automatically synced with your calendar. If you wish, you can also receive an email notification of the change. You can turn notifications on in ‘Settings’ (after login).
For more information, watch the video or go the the 'help-page' in MyTimetable. Pleas note: Joint Degree students Leiden/Delft have to merge their two different timetables into one. This video explains how to do this.
Mode of Instruction
Workshops on homework assignments
A project on a real-world software development project inside the virtual company LUdev
Due to the project-based nature of the course, presence during the first lecture and the evaluation meetings is mandatory. Evaluation meetings are planned during scheduled lecture times. The meeting schedule will be made available on Brightspace.
The final grade consists of the project grade, amended with bonus points for individual team members, based on their participation in the project.
The teacher will inform the students how the inspection of and follow-up discussion of the exams will take place.
Book (optional): H. van Vliet, Software Engineering: Principles and Practice, ISBN: 9780470031469
Sheets and practice materials are made available on Brightspace
From the academic year 2022-2023 on every student has to register for courses with the new enrollment tool MyStudymap. There are two registration periods per year: registration for the fall semester opens in July and registration for the spring semester opens in December. Please see this page for more information.
Please note that it is compulsory to both preregister and confirm your participation for every exam and retake. Not being registered for a course means that you are not allowed to participate in the final exam of the course. Confirming your exam participation is possible until ten days before the exam.
Extensive FAQ on MyStudymap can be found here.