Testen van software is een speerpunt in onze opleiding Software Engineering. In de propedeusefase wordt de testgedreven software-ontwikkeling geoefend. De student wordt aangeleerd software met testen at te leveren. Als onderdeel van de toetsing werd een performance-assessment ontwikkeld, dat de mogelijkheid biedt modelleren, programmeren en testen integraal te toetsen. Studenten blijken deze nieuwe toetsvorm positief te waarderen. In het kader van competentiegericht onderwijs is dit performance-assessment een waardevolle toevoeging.
DOCUMENT
Both Software Engineering and Machine Learning have become recognized disciplines. In this article I analyse the combination of the two: engineering of machine learning applications. I believe the systematic way of working for machine learning applications is at certain points different from traditional (rule-based) software engineering. The question I set out to investigate is “How does software engineering change when we develop machine learning applications”?. This question is not an easy to answer and turns out to be a rather new, with few publications. This article collects what I have found until now.
LINK
This chapter discusses how to build production-ready machine learning systems. There are several challenges involved in accomplishing this, each with its specific solutions regarding practices and tool support. The chapter presents those solutions and introduces MLOps (machine learning operations, also called machine learning engineering) as an overarching and integrated approach in which data engineers, data scientists, software engineers, and operations engineers integrate their activities to implement validated machine learning applications managed from initial idea to daily operation in a production environment. This approach combines agile software engineering processes with the machine learning-specific workflow. Following the principles of MLOps is paramount in building high-quality production-ready machine learning systems. The current state of MLOps is discussed in terms of best practices and tool support. The chapter ends by describing future developments that are bound to improve and extend the tool support for implementing an MLOps approach.
LINK
The past two years I have conducted an extensive literature and tool review to answer the question: “What should software engineers learn about building production-ready machine learning systems?”. During my research I noted that because the discipline of building production-ready machine learning systems is so new, it is not so easy to get the terminology straight. People write about it from different perspectives and backgrounds and have not yet found each other to join forces. At the same time the field is moving fast and far from mature. My focus on material that is ready to be used with our bachelor level students (applied software engineers, profession-oriented education), helped me to consolidate everything I have found into a body of knowledge for building production-ready machine learning (ML) systems. In this post I will first define the discipline and introduce the terminology for AI engineering and MLOps.
LINK
The current set of research methods on ictresearchmethods.nl contains only one research method that refers to machine learning: the “Data analytics” method in the “Lab” strategy. This does not reflect the way of working in ML projects, where Data Analytics is not a method to answer one question but the main goal of the project. For ML projects, the Data Analytics method should be divided in several smaller steps, each becoming a method of its own. In other words, we should treat the Data Analytics (or more appropriate ML engineering) process in the same way the software engineering process is treated in the framework. In the remainder of this post I will briefly discuss each of the existing research methods and how they apply to ML projects. The methods are organized by strategy. In the discussion I will give pointers to relevant tools or literature for ML projects.
LINK
Author-supplied abstract: Developing large-scale complex systems in student projects is not common, due to various constraints like available time, student team sizes, or maximal complexity. However, we succeeded to design a project that was of high complexity and comparable to real world projects. The execution of the project and the results were both successful in terms of quality, scope, and student/teacher satisfaction. In this experience report we describe how we combined a variety of principles and properties in the project design and how these have contributed to the success of the project. This might help other educators with setting up student projects of comparable complexity which are similar to real world projects.
DOCUMENT
Presentatie voor de 20e Nederlandse Testdag, m.m.v. Raymond Slot, Wiebe Wiersema, (HU), Christian Köppe (HAN, Arnhem), Sjaak Brinkkemper, Jan Martijn van der Werf (UU Utrecht). The Software Architecture of the Schiphol Group is taken as an example. Compliance checking of software rulescan be done with the Hogeschool Utrecht Software Architecture Compliance Checking Tool which is available at http://husacct.github.io/HUSACCT/
DOCUMENT
Author supplied: Teaching software architecture (SA) in a bachelor computer science curriculum can be challenging, as the concepts are on a high abstraction level and not easy to grasp for students. Good techniques and tools that help with addressing the challenging SA aspects in a didactically responsible way are needed. In this tool demo we show how we used the software architecture compliance checking tool HUSACCT for addressing various concepts of SA in our courses on software architecture. The students were introduced to architectural reconstruction and architecture compliance checking, which helped them to gain important insights in aspects such as the relation between architectural models and code and the specification of dependency relations between architecture elements as concrete rules.
DOCUMENT
Author supplied: DOI : http://dx.doi.org/10.1145/2691352.2691357 Assignments and exercises are an essential part of software engineering education. It usually requires a variety of these assignments to cover a desired wide range of educational objectives as defined in the revised Bloom's taxonomy. But such a variety has inherent problems, e.g. that students might not see the connections between the assignments and find it hard to generalize the covered concepts. In this paper we present the educational design pattern Multi-Level Assignment which addresses these problems. It enables the assignment designer to incorporate a variety of educational objectives into a single assignment by including the concepts on multiple knowledge and process levels. The description as educational design pattern and the provided three implementation examples make this approach directly applicable for other software engineering educators.
LINK