Education for Actual Software Engineering



Tutorial Track >> next
EASE is a reusable software engineering process for practical courses in higher education. It is ultra-lightweight and combines new concepts with proven concepts from software management and didactics. EASE targets the learning of soft-skills and high-level hard skills. EASE can be used to manage student teams of at least ten members. A team has a lecturer or a tutor as their leader.

In your course you might want to use a few of the EASE software development patterns, i.e. those that are convincing to you:


On the other hand you might want to adopt to your course the entire EASE process, which is our proposal of how to motivate and orchestrate the EASE software development patterns.

Motivation

A student project differs from a real world project in scope, in driving forces and in organisational culture. If a professional process model is used in education naïvely or in an oversimplified way, its constituting concepts are most probably not exploited at all. EASE is a software engineering process model that specifically targets student projects in higher education. The model has been obtained by analysing the requirements of student projects: EASE then carefully combines relevant state-of-the-art software project management concepts. Recommendations are given for structuring the course as a whole, as well as managing the work. The latter is oriented towards mature andragogical methodologies. It is worth pointing out that a university project has another target than a professional software project. A successful software project management must deal with cost, time, quality and quantity. Initially a student project is free from cost pressure, time pressure, quality pressure and quantity pressure. The aim of a project course is teaching students as much as possible. However project courses often try to a simulate professional project pressure as real as possible. This makes sense at a first glimpse, because a project course should give students an impression about professional software engineering methodologies and techniques. Instead EASE is a software process that targets to mitigate risks and exploit chances of higher education in general and software engineering education in particular. Thereby the resulting concepts are only judged with respect to learning outcome, even if they are contra-productive from a professional point of view. EASE distinguishes between low-level and high-level hard skills. A low-level hard skill is concrete knowledge about a concrete technology or software engineering methodology. A high-level hard skill is conceptual knowledge about software architecture and software engineering driving forces. High-level hard skills empower the software engineer to estimate risks and chances of concrete technologies and methods with respect to a given software engineering task. EASE targets learning of soft skills and high-level hard skills, because they are more sustainable than low-level hard skills. At the same time EASE does not prescribe concrete learning goals. Concrete learning goals are fixed by the lecturer, based e.g. on own convictions or the targets of an encompassing curriculum.

Overview

EASE is a methodology for the teaching of software engineering skills in higher education. It applies to projects, i.e. every kind of course in which students build software systems by doing teamwork. Such projects belong to every core curriculum in computer science, both undergraduate and graduate. EASE consists of the following components: In a broad sense the driving forces define the problem the lecturer is faced with. The process architecture and the practices catalogue together constitute the solution. The practices form a process pattern language. EASE has been designed from scratch to accommodate the specific needs of education. Wherever appropriate EASE is oriented towards concepts found in today's software engineering processes. With respect to didactics, EASE is influenced by Collaborative Learning. The core process of EASE has a sophisticated, yet easy to learn architecture. It consists of a macro process that is accompanied by tracking.

Further Reading

Tutorial Track >> next