After successful completion of the module student is able to …(Agile software engineering)|
E1. …develop software following Agile principles: SCRUM meetings, task boards, burn-down charts, frameworks, etc.;
E2. …apply requirements-based testing;
R1. …identify business requirements and translate these to user stories;
R2. …specify functional and non-functional requirements;
R3. …prioritize requirements in collaboration with various stakeholders;
R4. …design a UML class diagram;
R5. …systematically design web based applications using UML;
D1. …derive a logical database schema from a UML class diagram;
D2. …identify functional dependencies and use these to systematically normalize a database to BCNF;
D3. …formulate questions and translate these to SQL queries;
D4. …apply SQL triggers in simple cases;
D5. …identify transactions and explain the effect of different isolation levels on concurrency;
P1. …design and implement complex multi-tier web applications;
P2. …use repositories and version management;
P3. …integrate web applications with existing (REST-ful) services;
P5. …explain the consequences of server-side vs. client-side scripting, servlets, Ajax, JSP, Web frameworks, etc.;
(Semi- and unstructured data)
U1 … apply basic techniques for handling XML/JSON data in an XML database using XML standards such as XPath and XQuery
U2 … apply basic techniques for handling XML/JSON data in a relational database using extensions to the SQL standard, such as SQL/XML and JSON types, functions and operators
U3 … understand the basic theoretical principles behind tree data structures and indexing of tree data
U4 … understand the basic theoretical principles behind information retrieval and apply basic full text querying support in XML and relational databases
S1. …protect applications against unauthorized access;
S2. …project applications against (SQL-)injection and cross-site scripting;
(Academic skills: Project skills)
A1… apply the Belbin team role model
A2… apply the core quality quadrant model of Daniel Ofman
A3... effectively give and receive feedback
A4... effectively resolve team conflicts
A5… explain the concepts of fraud and plagiarism and behave responsibly as a professional concerning these aspects
In the module “Software systems” students have learnt to solve complicated software problems by means of stand-alone applications. In this module they learn and get experience in the design, implementation, and testing of complex multi-tier systems, using standard tools like database management systems, scripting frameworks and existing services (RESTful services). In this module, data (structured and semi-structured) play an important role. This comprises classically structured data in databases as well as obtaining data from social media and other web resources. Security will be explicitly dealt with.|
A large project for an external client will be carried out by means of agile methods. As a consequence, students will gain experience in dealing with various stakeholders. Team skills are explicitly addressed as Academic Skills.
The mathematics in this module is concerned with probability theory.
Programming: Core concepts of imperative programming and object-oriented programming; being able to write software of average size (around ten classes) in Java. If you have adequate programming experience, but not in Java, you should additionally familiarize yourself with Java syntax and a Java software development environment like Eclipse.
Computer networks: Understanding the basic working of internet applications and protocols like HTTP.
Databases: No prerequisite knowledge required, but if you have no experience with elementary database concepts and data modelling, some extra effort is required to catch up.
Mathematics: No prerequisite knowledge required, but elementary knowledge of Set Theory and Mathematical Logic is helpful for understanding query languages.
For further details please contact the module coordinator.