This course covers the concepts, principles, techniques and tools used in large-scale enterprise information systems development. It discusses the analysis and design phases of the software development process using the Unified Modeling Language (UML), and the target architecture of modern enterprise systems. Students will gain an in-depth understanding of the complete set of diagrams available for modelling the structural and dynamic aspects of complex systems. The challenges of integrating with existing legacy systems, and with external systems in the overall architectural mix in large organisations will be discussed. The objective of this course is to understand these processes and architectures, and identify the best practices for large software development projects in a multi-actor environment.
Students will attain an understanding of:
A historical perspective of system architectures, from mainframe batch and file, via relational DB and 4GL, to OO and Components, and finally to modern Service Oriented Architectures.
Architectural principles such as functional abstraction, data abstraction, data mapping, communication and interaction patterns, component and sub-system based interface abstraction, interactions in the context of a system of systems, quality of service, customisation and extensibility mechanisms.
The core technologies underlying the different tiers in a modern system architecture, and their interdependencies, such as ◦ Relational, NoSQL, OO, Real Time and In-memory Database Servers ◦ Application Server components, such as DB mapping, BPEL, Web Services, Rules Engine, and Enterprise Service Bus ◦ User interface technologies for mobile, browser and OS based multi channel applications
The impact of Cloud and Grid based technologies on the architecture and development process.
The role of advanced technologies such as model driven architectures (MDA), meta date driven architectures, event systems, coordination servers, micro containers and services, blockchain technologies, and AI on enterprise systems.
The complete set of UML diagrams used for structural and dynamic aspects of computer systems, and what UML's core concepts are, i.e. those that are used 80% of the time, versus more advanced, but less used, concepts.
The architecture of the UML standard and its application will be discussed in terms of meta levels, and in terms of model, views and diagrams.
The different development methodologies that UML supports, such as data driven, use case driven, process driven.
The different ways in which UML is applied in projects: white boarding; documentation; code generation; executable models.
The use of UML Profiles to create Domain Specific Languages and customisations of the UML standard, such the SysML profile for systems engineering.
A comparative review of commercial UML modelling tools, focusing on modelling functionality, as well as code generation capabilities.
The course consists of lectures and an in-depth team based practical component that focuses on the analysis and design of an end to end application to be deployed in a service oriented architecture.
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
Presence and participation: 20%
Written assignment: 30%
Written Exam: 50%
- Software Engineering: Principles and Practice, Hans van Vliet, 3rd edition, John Wiley & Sons, 2008.
Lecture slides and 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
Also register for every course in Blackboard. Important information about the course is posted here.