lunduniversity.lu.se

Denna sida på svenska This page in English

Generic Tutorials

A number of tutorials are provided by the center free of charge for companies participating in the research center. The tutorials normally take half a day to one day. If you are interested in a tutorial, please contact Jonas Wisbrant.

Empirical Evaluation of Software Technology

Length: 0.5 days

Abstract:
New methods and techniques are continuously presented and it is often hard to know whether they are better than existing ones. The objective of this tutorial is to provide an introduction to empirical studies in software engineering. This includes surveys, case studies and experiments. It will be discussed how these different empirical methods can be used as a means for technology transfer. Moreover, it is presented how the different methods can be used to understand, assess and improve software development. Finally, a particular emphasis will be put on how experiments may be conducted within software engineering to help evaluate new methods and techniques in software engineering.

Requirements Engineering Essentials

Length: 0.5 days

Abstract:
Requirements Engineering (RE) is an important success factor when developing software-intensive systems. Successful RE gives several positive effects: customer satisfaction, solid foundation for planning, the developers know what to develop, more efficient testing, etc. The road to successful RE may, however, be long and full of obstacles, and there seldom exist simple solutions to difficult problems. A first step is to increase the awareness of challenges and opportunities. This tutorial gives a basic understanding of the concepts, problems, and possibilites within RE. It also provides insight into a number of specific techniques for improving specification, prioritization, and validation of requirements. Suggestions on good sources for further studies are given, together with important issues to start focusing on when implementing an improvements programme for RE

Real-Time Control Systems

Length: 1-1.5 days

Abstract:
The tutorial gives an overview of design, implementation and scheduling of real-time computer-based control systems. Both continuous-time and discrete-event systems are covered. The continuous-time part gives an overview of sampled control theory and shows how continuous-time designs can be discretized. PID control is used as a unifying example. Emphasis is given to different implementational issues including anti-reset windup and mode-handling, and how this is reflected in the resulting code. The tutorial further discusses how continuous-time controllers are implemented in a real-time kernel and gives an overview of the applicable real-time scheduling theory. The discrete-event part of the course discusses how state machines can be used for modeling. Focus is given to Statecharts and Grafcet. The industrial programming language IEC1131-3 is also discussed.

Software Processes and Software Process Improvement

Length: 0.5 days

Abstract:
The software process includes the activities that are carried out in order to develop software. Examples of activities are Specification, Design, Validation, and Evolution. In the tutorial a number of general models of software development processes are presented. It is a commonly accepted fact that the quality of the development process affects the quality of the delivered products. Therefore, it is important for software developing companies to continuously improve their software processes. Process improvement is often carried out by following a defined procedure. First the currently used process is assessed, and strength and weaknesses are identified. Then changes are identified based on the assessment. After that the changes can be introduced and evaluated. In order to constantly improve the process, these steps are iterated. The tutorial describes this procedure for process improvement. A number of important standards and methods, such as ISO 9000 and CMM, are covered.

An Introduction to Automatic Memory Management Techniques

Length: 0.5 days

Abstract:
Automatic memory management, or garbage collection, is a key technique for relieving programmers of the burden of manually having to manage dynamic memory, yielding reducing software complexity and shortening development time as well as improving software quality. Java is an example of a popular language utilising automatic memory management. Basic knowledge of the techniques used for automatic memory management can be useful in many situations. From developing new runtime systems to just relying on automatic memory management as an application programmer. We survey and analyse the basic techniques for automatic memory management. Methods for using automatic memory management with programming languages lacking built-in support for it (e.g. C, C++) is discussed. We study methods for using automatic memory management in real-time systems with varying timing demands, including safety-critical hard real-time systems. Real-time Java and its memory management requirements are discussed.