Master’s Programme in Software Engineering
- Period : 2020-August-31 until 2022-June-05
- Location: Karlskrona
- Type of instruction: On campus, day, full-time
- Language of instruction: The teaching language is English.
- Programme syllabus: Download
It is no longer possible to apply to this option
Analyze, adapt and apply. Meet future needs with a wide capacity to understand software engineering – from start to finish, and every step in between.
Analyze, adapt and apply. Meet future needs with a wide capacity to understand software engineering – from start to finish, and every step in between.
Create software to meet future challenges
The Master’s programme in Software Engineering meets the complex challenges facing the software developers of the future. You acquire a wide understanding and base of knowledge through education and training in advanced concepts within software engineering, covering the entire development process. You learn how to construct and test software products to meet the challenges of tomorrow, with high demands on efficiency and quality. You also learn how to reflect upon and improve modern development processes.
From start to finish – each process, step and action
The education provides you with the skills and knowledge required to engineer software systems from the initial planning and scoping of projects, to the process of development, testing and delivery of the software system itself. The courses cover both engineering and working methodologies and you will study subjects such as project planning, software quality, and research methodology.
As a student within the programme, you will get access to Ericsson Space Lab (2:26, English text)
Chose your future – development or research
The programme is developed to meet the needs of students, industry, and academia. It has a strong focus on preparing you for employment in both business and research organizations, and elective courses enable you to create your unique profile of skills.
Courses and content
Courses in this programme
The purpose of this course is to offer an introduction and an overview of the subject area software engineering, insight into contemporary research in software engineering, and practical exercise in basic software engineering skills.Read more about the course
Software Architecture is an important technical concept in modern large-scale software development that serves several purposes: planning development resources; analyzing the problem domain from multiple perspectives using the architectural views; and abstracting big amounts of information to obtain a useful overview of the system. In addition, the architecture and the decisions on how to construct architecture are a key component to plan and achieve a certain level of quality in a system, which thereby determines how successful the system will be. In the course the students are expected to obtain detailed knowledge about software architectures and software quality and the effects software architectures and architectural decisions have on the qualities of the software product under development. The students will acquire understanding about how to: i) document software architectures of existing systems; ii) construct software architectures based on modern methods and ideas such as architecture styles and patterns and tactics, by considering the intended product, the surrounding technology and the developing organization; iii) discuss the suitability of a software architecture for a specific software product in a specific context using facts as basis.Read more about the course
The course focuses on basic and advanced knowledge and skills within continuous requirements engineering and product management in large-scale development of software intensive systems and products in a changing and cost sensitive reality. The course provides the students with both a theoretical and practical application of methods and techniques for requirements engineering and product management.Read more about the course
The aim of the course is to offer an overall training in agile and lean that prepares campus students to practically evaluate the potential of agile / lean, plan the implementation of agile / lean, and realize agile and lean in an agile environment.Read more about the course
To understand, assess and control software and software development projects, one must be able to measure various aspects of software and its development. The measurement may concern for example the software’s quality, the efficiency of processes and tools, or the productivity of the staff. Measurements make it possible to detect and diagnose problems and to follow up whether various actions have had the desired effect. The goal of the course is to provide students with the fundamentals of software measurement. Students will acquire knowledge of how measurements can be used to control, manage and predict software development processes. Students will also acquire a basic understanding of measurement processes and an awareness of the problems associated with software measurement, as well as experience in creating measurement models and carry out measurements.Read more about the course
Testing is vital software engineering activity, but it is often challenging to perform software testing in an efficient and effective manner. The objectives of this course are for participants to appreciate how testing can improve software quality when effectively integrated into the software engineering processes, understand how this can be achieved using both established and novel software testing techniques, and gain practical experience of tools that support and automate these techniques.Read more about the course
The purpose of the course is to obtain knowledge in probability theory as well as statistical theory and methods. Emphasis lies in probability theory and stochastic processes with technical applications.Read more about the course
The purpose of the course is to provide organizations with graduates having knowledge and skills that are useful for promoting social sustainability through product and service development. By product and service development we mean development of any type of offering, including physical products, digital products, services, and any mixture of these. Product and service development has a key role for society’s transition towards sustainability and the social dimension of sustainability is currently under-developed in this context. Improved knowledge and skills in how to systematically and strategically integrate also social sustainability aspects in product and service development makes more optimized, whole-systems solutions possible.Read more about the course
The main purpose of the course is to introduce theory and methods from machine learning and real-world applications from data mining. The technological development has increased our dependency on databases for storage and processing of information. The number and size of these databases grow rapidly. Due to this growth, it becomes more difficult to manually extract useful information. We therefore need semiautomatic and automatic methods to use, aggregate, analyze, and extract such information. Methods and techniques from machine learning, data mining, and artificial intelligence have been shown to be useful for these purposes.Read more about the course
The aim of the course is to enable students to acquire specialised understanding of UNIX-based systems and for programming close to the operating system. This involves, among other things, being able to program at the most abstract level of the operating system, close to the user, and down through the levels of abstraction to the lowest level, system calls. The course trains students in designing software that interacts with the computer through the operating system UNIX (and operating systems similar to or based on UNIX such as Linux and MacOS). It provides a foundation for continued studies in other fields (such as computer security) demanding a practical understanding of the technology involved. The objective of the course is achieved by the student through gaining practical experience of developing programs in a UNIX environment in a series of laboratory exercises.Read more about the course
Performance is an important aspect of all software. In order to develop good and high-performance software, it is essential that students have a good understanding of and can apply the different methods and techniques to analyze and optimize the performance of a software system.Read more about the course
The mobile and connected world of today generates a large amount of data that needs to be managed, analysed, and linked. This is often done on the cloud. The development, deployment, and management of this is called Cloud Computing. The purpose of this course is to offer a wide background about designing, developing, deploying, testing, and monitoring a cloud solution, specifically with a focus on big data problems.Read more about the course
Artificial intelligence exists in different forms in an increasingly bigger part of the computerized systems we use - Optimization techniques in logistics, computer-controlled characters in computer games, decision support systems, imaging algorithms and mobile robots. This purpose of the course is to introduce students to the field of artificial intelligence and some of its applications.Read more about the course
The main objective of this course is to teach students to understand and how to address various software security problems in a secure and controlled environment. During this course the students will gain knowledge (both theoretical and practical) in various kinds of software security problems, and techniques that could be used to protect the software from security threats. The students will also learn to understand the ”modus operandi” of adversaries; which could be used for increasing software dependability.Read more about the course
The purpose of the course is to offer students a possibility to enrich their knowledge and their understanding within a specific topic in the subject area software engineering. The students embiggens their knowledge about current research and state of the art in the specific topic as a preparation for a upcoming masters thesis or to extend their knowledge about a topic not part of the regular course offering.Read more about the course
The course aims at a detailed understanding of software quality and the challenges involved in achieving high software quality. Furthermore, the course discusses quality management of software and its role in software development, as well as the activities, technologies and models that are important for software quality assurance. During the course, participants will develop an awareness of the current state-of-the-art in software quality assurance as well as the state-of-practice within the software industry.Read more about the course
Evolution and Maintenance of software is concerned with continuously correcting, adapting, and perfecting the software. This work introduces special challenges such as the need to understand the existing codebase without having access to the original developers, in order to make changes you need to understand the consequences of thee changes, you need to modernise the use of e.g. unit testing, and you need to take time to improve and refactor the codebase according to sound programming principles. It is, however, not enough to understand the source code in itself. You also need to understand how the source code is stored in a configuration management system, and how to suggest, inspect, approve, introduce, and test changes in the software and in the configuration management system. The intention of this course is to, through a practical case, create a deer insight in to challenges such as the above.Read more about the course
The aim of the course is that students will practice their ability to define, plan, implement and present independent scientific research work. Students are expected to apply the knowledge acquired during their education and independently immerse themselves in one or more specific sub-areas within the main subject area software engineering. The goal of the student is to, orally and in writing, report the results of his or her research and to critically examine and oppose on another thesis. The presentations shall comply with the requirements and criteria for academic writing.Read more about the course
You will study here
On BTH’s main campus in Karlskrona, you will find our programmes and courses in engineering, IT, spatial planning, industrial economics and health sciences.
Campus Gräsvik in Karlskrona is located right next to the water, and there is even a swimming jetty 50 meters from the lecture halls. From the modern library’s study areas, you have a nice view of the sea and outside there are exercise trails that take you through the woods and along the beach.
Good to know
Look below for information about how to apply, entry requirements and important dates.
How to apply
Read more about the application process, entry requirements and about higher education in Sweden.
After submitting your online application, the next step is to document your eligibility for the courses and programmes you have applied to.
(This paragraph is a translation from Swedish of the approved method, “Antagningsordning”[Admission regulations], Dnr; BTH-1.2.1-0223-2017.)
This method has the purpose of assessing the applicants’ competency for studies at, among others, the Master Programmes in Electrical Engineering, Computer Science and Software Engineering.
BASES FOR RANKING OF APPLICANT
Previous university studies and English.
DETAILS ON BASES FOR SELECTION:
The first step of the ranking process is an assessment of the relevance of the area and specialisation of the applicants’ previous university studies to the applied programme. This assessment is made in three categories: minimal relevance = merit points 0, average relevance = merit points 0.5, high relevance = merit points 1.
Finally, the applicants’ TEOFL or IELTS level in English is normalised to a value between 0 and 1, where 0 is the minimum level to pass the prerequisites of the applied programme and 1 is the maximum level of the test. Applicants’ who are not required to prove their English skills with TOEFL or IELTS tests will get the merit point 1.
These two merit point values are added to a total merit value between 0 and 2.
MAXIMUM MERIT RANKING:
A maximum of 2 merit points will be given, according to the above given details.
Applications that are accepted for review based on the basic requirements for the programme will be ranked according to the details above. If not all applicants with the same lowest merit point can be admitted, a preference is given to the gender that is least represented at the programme, and if further selection is needed lots will be drawn.
On completion of the programme, students will be awarded the second cycle degree
Master of Science (120 credits).
Main field of study: Software Engineering
After completion of the programme the student shall:
- Have understanding for problems, theories and challenges within large scale software engineering.
- Have broad understandings for methods within software engineering.
- Have deep method knowledge within parts of software engineering.
- Have necessary skills to adapt available methods to the problem at hand.
- Have the ability to identify strengths and weaknesses within methods, results as well as prepare improvement suggestions.
- Have the ability to lead investigations using appropriate scientific methods.
- Have the ability to critically assess problems, solutions and results.
- Have the ability to take a scientific approach to the work performed.
- Have the ability to reflect over ethical and social aspects of Software Engineering.