PROMPT Professional Master in Software Engineering Courses 2015-2019
Malin Rosqvist and Hans Hansson, project leaders for PROMPT Customised, free education for engineers and software developers Software is a business-critical resource for large parts of Swedish industry. Software is also an important source of innovation and competitiveness. Therefore, the PROMPT initiative (Professional Master in Software Engineering) has been launched. PROMPT is a national educational initiative in cooperation with several academic parties and a number of leading Swedish industrial companies and organizations. Together the parties will develop advanced courses adapted for professional engineers and software developers. The goal is to guarantee the supply of advanced software competencies and innovativeness in Swedish industry. For several of our traditional industries software is of crucial importance. PROMPT focuses on three branches: automation, vehicles and telecommunications. These are branches with tough international competition, and where strong measures are required for Swedish companies to be able to maintain and develop their position. The courses are developed to suit those employed and who need to be able to combine work and studies. The courses combine conventional studies with distance, web based learning and seminars at campus or at the participating companies. The PROMPT project is led by the research direction Embedded Systems at Mälardalen University, and the courses are given in cooperation with Blekinge Institute of Technology, Chalmers, the University of Gothenburg, Mälardalen University and SICS Swedish ICT. The project is funded by the Knowledge Foundation and by participating universities and companies. PROMPT is an open initiative which welcomes additional companies and universities. www.promptedu.se I 3 I
Areas and courses 2015-2019 Area: Process and methods for development of software intensive systems Agile and lean development of software intensive products, 7.5 credits... 5 Continuous requirements and product management, 7.5 credits... 6 Evidence-based process change and evolution, 7.5 credits... 7 Distributed development and outsourcing, 2.5 credits... 8 Behavioral Software Engineering, 2.5 credits... 9 Model-based development, 7.5 credits... 10 Area: Software test Software testing, 7.5 credits... 11 Adaptive lean software testing, 7.5 credits... 12 Large-scale software testing, 2.5 credit... 13 Model-based testing, 2.5 credits... 14 Regression test selection and software fault prediction, 2.5 credits... 15 Formal Verification of Reactive Systems, 7.5 credits... 16 Area: Dependable software Functional safety, 7.5 credits... 17 Certification of safety-critical software and systems, 7.5 credits... 18 Design of dependable and fault-tolerant embedded systems, 7.5 credits... 19 Web-application security, 5 credits... 20 Area: Architecture and design Advanced software architecture, 7.5 credits... 21 Usability and user experience, 7.5 credits... 22 Area: Project courses Project course in software development for industry, 7.5 credits... 23 Theory of science and research methods, 7.5 credits... 24 Other courses Applied Cloud Computing and Big Data, 7.5 credits... 25 Knowledge-Based Systems, 7.5 credits... 26 I 4 I
Area: Process and methods for development of software intensive systems Tony Gorschek Blekinge Institute of Technology Agile and lean development of software intensive products, 7.5 credits Responsible: Blekinge Institute of Technology (Tony Gorschek) Purpose: give a complete view of agile and lean development in a software development organization. Agile methods are only one step in realizing an adaptable, fast and efficient development organization. Lean in the entire product development chain enables flexibility and efficiency without sub-optimization. 1. Product management and requirements engineering: gives product planning, requirements elicitation and specification, prioritization and value based delimitation and selection. 2. Project focused agility: established agile methods, elimination of waste to adapt level of agility to the context and needs of the development organization; context adherent techniques 3. Customer realization incl. configuration management; delivery and realization at customer site; maintenance and support; total development cost and ownership to enable estimation and focus on both efficiency and effectiveness Learning outcomes: The student should after course completion be able to: Understand the techniques and methods for requirements engineering and product management Understand and be able to realize lean in his organization after evaluation and suitability analysis Ability to improve efficiency and effectiveness, and evaluate the need for level of agility in the development organization Understanding of, and knowledge about, how to develop large scale software intensive products in an agile/ lean manner, and ability to understand and take into account the benefits and limitations of agile/lean development methodology Balance between short- and long-term trade-offs through deliberately adapted flexibility Avoid sub-optimization in product development through explicit differentiation between Waste and Overhead, and minimization of Waste Value based development to achieve product and project management that is flexible but not reactive Agile and lean development of software intensive products, 7.5hp I 5 I
Area: Process and methods for development of software intensive systems Mikael Svahnberg Tony Gorschek Tony Blekinge Gorschek Institute of Technology Blekinge Institute of Technology Continuous requirements and product management, 7.5 credits Responsible: Blekinge Institute of Technology (Mikael Svahnberg, Tony Gorschek) Purpose: The course focuses on the problems that arise when managing requirements in a changing and const sensitive reality. The course discusses challenges related to large scale requirements engineering and market-driven requirements engineering. Areas such as continuous requirements engineering, requirements engineering process improvement, and technical product management are discussed and related to industry practice. Course Modules: 1. Introduction to continuous requirements engineering and continouous product management 2. Processes, methods, and models for continuous large scale requirements engineering and product management. 3. Release-planning Learning Outcomes: The student should after course completion be able to: Extensively understand the challenges with continuous requirements engineering and product management. Be able to motivate the selection of suitable techniques for continuous requirements engineering. In a systematic way be able to apply appropriate techniques in a large scale requirements engineering context. Quickly and correctly be able to deal with large amounts of requirements and a large influx of requirements. Be able to plan relevant release packages for several releases of a software product. Be able to create a sufficient continuous requirements engineering process to deal with requirements in a large organisation from when the requirements enter the organisation to when they are launched as part of a product. Be able to reason about the challenges with, and appropriate techniques for continuous requirements engineering and product management. Related industry challenges that are addressed in the course: The course addresses the challenges that arises when dealing with requirements in a changing and cost-sensitive reality. I 6 I
Area: Process and methods for development of software intensive systems Jürgen Tony Gorschek Börstler Blekinge Institute of Technology Evidence-based process change and evolution, 7.5 credits Responsible: Blekinge Institute of Technology (Jürgen Börstler) Purpose: To provide an evidence-based perspective on change management in the industry with a focus on processes and quality in software development organizations. The course provides knowledge about quality work at the organizational level as well as insight into the typical barriers to improvement work at a technical and non-technical level. The course introducing methods and tools for measuring, evaluation and feedback processes and process improvements. 1. Evidence and scientific character: Introduction to scientific character and research methodology. Highlights the relationship between knowledge and evidence. 2. Processes and process improvement: Introduction to software processes and -methodologies and standards for measurement. How to plan and carry out a change in a systematic way. How can process improvement be sustained (continuous improvement). 3. Measurement: How to create evidence. How to determine if an improvement has actually occurred and whether it is sustainable. Which metrics can be used in the improvement process? 4. Analysis, reporting and follow-up: How to present the results of a process change. 5. Literature study: Based on the students experiences and companies participants look for evidence in the literature as a basis for improvement projects. 6. Improvement project: Course participants carry out a minor improvement project. Learning outcomes: The student should after course completion be able to: Discuss the concept of scientific character and relate it to his or her work. Describe how to conduct a process improvement project from beginning to end. Explain methods, tools and standards used in process improvement in software development. Demonstrate an understanding of the non-technical issues that complicate process improvement. Quantify the potential for improvement in measurable units that are tailored to a specific organization. In his or her own words, describe and reflect on the results presented in the literature. Write a simple report according to recognized academic practice. Refer to other people s work according academic standards. A continuous development of processes, methods and tools for software development force the industry to continuously change and adapt their ways-of-working. Such changes and adaptations are often ad-hoc and rarely evaluated systematically, which often leads to suboptimization and/or high costs. The industry therefore needs knowledge and tools to systematically plan, measure and evaluate the results of those changes and adaptations. I 7 I
Area: Process and methods for development of software intensive systems Tony Darja Gorschek Smite Blekinge Institute of Technology Distributed development and outsourcing, 2.5 credits Responsible: Blekinge Tekniska Högskola (Darja Smite) Purpose: To provide knowledge and understanding of the specificity of global software projects in general and outsourcing in particular, i.e. with regard to communication, cooperation and coordination of activities, and importance of interpreting and sensitively exploiting diversity (e.g. cultural, organizational) in the professional life. The course will highlight state-of-the-art knowledge in the area and focus on industrial case studies as a source for reflection and learning. Course Modules: 1. Basic Concepts: since global projects are enabled through a large number of different arrangements, in this module the key global setups are defined and explained, incl. offshoring, onshoring, nearshoring, outsourcing and insourcing, distributed, dispersed and virtual teamwork. 2. Feasibility of Offshoring and Outsourcing: in this module the realization of offshoring benefits will be discussed based on a number of real-life case studies. Practical tools and approaches to valuing the economic benefits will be introduced. 3. Distributed Teamwork: this module will focus on discussing the practical implications of geographic, temporal, cultural and organizational diversity on teamwork. A number of case studies will be used to reflect on the importance of trust building and coordination of work. Learning Outcomes: On completion of the course, students will be able to: Understand risks inherited in global projects; Demonstrate knowledge of practices that alleviate these risks; Apply this knowledge and understanding in valuation of feasibility of offshoring. Contents: The course will be organized around a number of seminars dedicated to the course topics. The learning will focus on discussing the real-life case studies and deriving practical implications. Trade-offs in outsourcing and offshoring decisions Fair comparison of costs and benefits Building win-win collaborations I 8 I
Area: Process and methods for development of software intensive systems Michael Tony Mattsson Gorschek Blekinge Institute of Technology Behavioral Software Engineering, 2.5 credits Responsible: Blekinge Institute of Technology (Michael Mattsson) Purpose: Behavioral Software Engineering aims to provide understanding and knowledge that it is people involved in software development that is key to ensuring the success of a project. People are not always rational, rather imperfect and act in group and organizational environments in which political games, group norms, personal agendas and subconscious biases affect their actions. Better understanding of human nature contributes to the organization so it can help individuals to better meet their needs, take advantage of the individual s strengths, and increase their chances of success with the development work. Course Modules: 1. BSE, human aspects of SE. The individual s imperfection and behavior in group and organizational environments. How organizations can support the individuals in their actions to better achieve their goals in software development work. Models for change, norms and motivation and their application. Learning outcomes: The student should after the course be able to: understand the difference in perspective between BSE and classical SE explain the risks/impacts that exists if not taking into account the human aspects understand that certain personality factors and political factors can influence how individuals behave in software development work apply models for change, norms and motivation in software development Learning outcomes: Background to the BSE. Disadvantages and risks / effects of not taking into account the individual and human aspects. Political games, group norms, personal agendas, subconscious prejudices, personality, cognitive biases, norms, motivation, and change in software development and the relationship to the individuals and their actions. Models for change, norms and motivation and their application. BSE focus on the classic SE challenges; develop the right quality, resource efficient development, changes etc. with the perspective to get people to better contribute to the goal by considering the humans aspects more. I 9 I
Area: Process and methods for development of software intensive systems Antonio Tony Gorschek Cicchetti Blekinge Institute Mälardalen of Technology University Model-based development, 7.5 credits Responsible: Mälardalen University (Antonio Cicchetti) Purpose: to provide participants with the principles behind model-driven development of software systems and the application of such a methodology in practice. Modelling is an effective solution to reduce problem complexity and, as a consequence, to enhance time-to-market and properties of the final product. 1. Basic concepts of modelling; what are models, metamodels, model transformations, modelling languages 2. Model-Driven Engineering in practice; domain-specific languages, UML profiles, design, analysis, and implementation of software systems through model-driven techniques 3. Practical problems in modelling usage; evolution management, tool chaining Learning objectives: After the successful completion of the course the students should be able to: Understand the general principles underlying Model-Driven Engineering techniques Analyse the contextual success factors and pitfalls for the adoption of Model-Driven software development in their own organization Analyse potential issues related to tool compatibility, needs for modelling language extensions/customizations, support for distributed development Foresee potentials and pitfalls entailed by the adoption of Model-Driven Engineering techniques in the current organization setting Draw a sustainable plan for introduction of modelling techniques in the development process Recognize tool maintenance and vendor locking factors Agile and I 10 I
Area: Software test Daniel Sundmark Tony Gorschek Mälardalen University / Blekinge Institute of Technology SICS Swedish ICT Software testing, 7.5 credits Responsible: SICS/Mälardalens University (Daniel Sundmark) Purpose: This course provides an understanding of the fundamental problems in software testing, as well as solid foundation in the practical methods and tools for a systematic state-of-the-art approach to testing of software. 1. Introduction to software testing and test design 2. Unit testing, test design and automation 3. Testing at integration and system level 4. Static and dynamic analysis 5. Advanced test design Learning outcomes: After the course, the participants are expected to: understand the fundamental goals, challenges and limitations of software testing, and its relation to other software engineering activities, such as requirements engineering, design and implementation. have a working knowledge and experience in applying the major established test design techniques. have a working knowledge and experience in static and dynamic code analysis. have an overview knowledge in more advanced testing methods (such as model-based testing, mutation testing and search-based testing), and in the state-of-the-art in software testing research. Finding problems earlier in the development process and integration chain. Avoiding quality deficiency costs. Evaluating the quality of software and systems, and knowing when to release. Understanding problems and gaps in the development process for continuous improvement. 5hp I 11 I
Area: Software test Simon Poulding Blekinge Institute of Technology Adaptive lean software testing, 7.5 credits Responsible: Blekinge Institute of Technology (Simon Poulding) Purpose: To provide practical experience of modern software testing techniques and tools, and an understanding of how testing can improve software quality when effectively integrated into the organisation s engineering processes. 1. Testing Foundations: the purpose and practical constraints of testing; testing objectives, including non-functional characteristics such as performance, security, and usability 2. Testing Strategies and Techniques: such as specification-based, structural, model-driven, search-based, mutationbased, exploratory, and probabilistic; the suitability of these techniques for different testing objectives, and for different types of software system 3. Testing Tools and Automation: practical experience of tools to support and automate aspects of the testing process 4. Managing the Testing Process: roles and responsibilities of testers; testing in agile and lean contexts; planning, monitoring, and improving the testing process; ensuring efficient and effective testing Learning outcomes: On completion of the course, students will be able to: Understand how testing techniques can evaluate a variety of system characteristics Demonstrate knowledge of a range of modern techniques for software testing, and an appreciation of the capabilities and limitations of these techniques Be able to select and apply suitable tools in practice Understand how to manage and monitor testing, and effectively integrate testing with other parts of the software development processes Cost-effectively improve software quality through the implementation of modern testing techniques Apply industry best-practice in software testing Gain awareness of start-of-the-art testing techniques emerging from testing research I 12 I
Area: Software test Simon Tony Gorschek Poulding Blekinge Institute of Technology Large-scale software testing, 2.5 credits Responsible: Blekinge Institute of Technology (Simon Poulding) Purpose: To provide practical experience of software testing techniques that address challenges of scale in terms of: the size and complexity of the software; the range of software and hardware configurations to be tested; and the structure of the testing processes within and between organisations. 1. Challenges of Large-Scale Testing: the types of scale that affect testing and the specific challenges that arise; managing large-scale testing processes (e.g. distributed testing) 2. Large-Scale Testing Techniques and Tools: techniques and tools with particular application to large-scale software systems, including techniques that accommodate scale through abstraction (e.g. software product line testing) or a high degree of automation (e.g. search-based testing). Learning outcomes: On completion of the course, students will be able to: Understand challenges that are specific to large-scale testing Identify technical and organisational solutions to these challenges Apply appropriate tools and techniques for large-scale testing Maintain software quality as the scale and complexity of the software being tested increases Enable effective and efficient testing as processes grows in complexity and extend between organisations I 13 I
Area: Software test Daniel Sundmark Tony Gorschek Eduard Enoiu Blekinge Institute of Technology Mälardalen University Model-based testing, 2.5 credits Responsible: Mälardalen University (Eduard Enoiu/Daniel Sundmark) Purpose: This course deals with model-based testing, a class of technologies shown to be effective and efficient in assessing the quality and correctness of large software systems. Throughout the course the participants will learn how to design and use model-based testing tools, how to create realistic models and how to use these models to automate the testing process in their organization. 1. Fundamentals of Model-based Testing: basic model-based testing terminology; what model-based testing is; finite state machines; how to select your tests using models; making these tests executable. 2. Model-driven Testing: creating models from industrial code; automating test design; model-checking and searching through large models to find suitable tests; test automation; executing model-based tests. 3. Using Coverage Criteria in Model-based Testing: practical ways to search the input space thoroughly; graph-based coverage criteria; logic-based coverage criteria; how to provide traceability from code to tests; make regression testing easier; 4. How to use Model-based Testing in Practice: tools for model-based testing; test management, choosing the model-based criteria to use and deciding how much automation is needed; test maintenance using model-based testing; test documentation in model-based testing. Learning outcomes: After this course students should be able to: have knowledge about models and understand model-based testing. develop practical skills and abilities on applying model-based testing in industrial practice. to test software using model-based testing in structured, organized ways. In industry, software testing is an essential and very consuming activity in the process of engineering software. Model-based testing is a promising technology that tackles challenges related to test design, test selection and test execution. Agile and lean development of software intensive products, 7.5hp I 14 I
Area: Software test Tony Wasif Gorschek Afzal Blekinge Institute Mälardalen of Technology University Regression test selection and software fault prediction, 2.5 credits Responsible: Mälardalen University (Wasif Afzal) Purpose: The course consists of two parts: For the regression test selection part, the purpose is to enable participants get an in-depth understanding of techniques for selecting test cases that should be executed following changes to the software under test. For the software fault prediction part, the purpose is to use software fault prediction models as a way to provide quality estimates using measurements from design and testing processes. The course will further discuss methodology of building simple software fault prediction models and highlight its use. 1. Introduction to regression testing and regression test selection: 2. Regression test selection techniques: 3. Basis of regression test selection: 4. Regression test selection for different applications: 5. Introduction to software fault prediction and benefits: 6. Classes of predictor variables to use for software fault prediction: 7. Techniques for software fault prediction: 8. Software fault prediction methodology: Learning outcomes: On completion of the course, students will be able to: Know different regression test selection techniques and the basis of their selection mechanisms. Understand the context in which to use different regression test selection techniques. Understand the limitations and advantages of different regression test selection techniques. Understand the use of software fault prediction to assist software testing. Understand the underlying methodological issues in regression test selection and building of software fault prediction models. Minimize test effort and increase test effectiveness in regression testing How to know which parts of the software under test to focus on during testing. I 15 I
Area: Software test Cristina Tony Gorschek Seceleanu Blekinge Institute Mälardalen of Technology University Formal Verification of Reactive Systems, 7.5 credits Responsible: MDH (Cristina Seceleanu) Purpose: The aim of the course is to introduce the participants into methods and tools for verifying systems that need to react to external stimuli. The methods use system models with precise formal semantics and will span model-checking as well as deductive verification. A set of simple examples as well as real-world applications will be used throughout the course to illustrate the methods and their tool support. The objective of the course is to understand the underpinning theories of formal verification, and learn how to apply tool support in order to verify system models. 1. Basic concepts of formal modeling: automata models, formalization of system properties 2. Automated verification of formal models: model-checking, deductive verification 3. Application of tools to formal models and code Learning outcomes: At the end of the course any participant should be able to: Understand the differences between algorithmic and deductive verification Formalize requirements in temporal logic or predicate logic Model functional and timing behavior of reactive systems Apply formal verification tools (such as UPPAAL and variants) to check properties of models Course content: This course consists of lectures and assignments that will teach the participants the basics of formal verification, differences between techniques, as well as their potential applicability to real-world systems. The course will cover both discrete as well as timed systems, and will show the application of techniques on some prototype examples from industry. Related Industrial Challenges Addressed in the Course: Uncover at early design stages potential trouble-spots / errors in design Provide design-space exploration automated support Increase assurance of future implementations I 16 I
Area: Dependable software Kaj Hänninen Tony Gorschek Kristina Blekinge Lundqvist Institute of Technology Mälardalen University Functional safety, 7.5 credits Responsible: Mälardalen University (Kaj Hänninen, Kristina Lundqvist) Purpose: The purpose is to give the students an overview of issues and methods for development and assurance of safety-critical software, including details of selected technologies, methods and tools. 1. Introduction to functional safety 2. Functional safety analysis techniques 3. Software safety standards 4. Verification and validation of software 5. Architectures for functional safety Learning outcomes: The student should after course completion be able to: be well aware of key issues and methods used for development of safety-critical software, be able to apply selected tools and methods for development and assurance of safety-critical software, have demonstrated ability to document the safety assurance work, and have aquired an ability to adopt the scientific advances within the area. How to increase the knowledge and general enhancement of safety cultures in development of safety critical systems How to clarifying the structure and scope of assurance activites in development of safety critical systems How to increasing the knowledge of responsibilities, morals and ethics in development of safety critical systems How to increase the competence and skills of personell to increase flexibility and qualification in role appointments for development of safety critical systems I 17 I
Area: Dependable software Barbara Tony Gorschek Gallina Blekinge Institute Mälardalen of Technology University Certification of safety-critical software and systems, 7.5 credits Responsible: Mälardalen University (Barbara Gallina) Purpose: to introduce certification and to teach how to certify/self assess safety-critical systems and how to create a safety case. 1. Introduction to certification/(self) assessment of safety-critical systems; transfer knowledge and skills about process vs product/ component vs system/ single system vs family of systems certification/assessment; relation between safety-critical systems/ safety culture/ development models w.r.t. supplier/manufacturer perspective / certification / the safety case /reuse and related issues; 2. Modelling methods; transfer knowledge and skills about different modeling methods for certification of safety-critical systems 3. Standards and certification; transfer knowledge and skills about different standards for the development of systems that include software Learning outcomes: The students should after the course be able to understand what certification is and implies; understand the typical V-model and the augmented model for (family of) components/systems; understand imporatnt portions of ISO 26262, and postion ISO 262626 w.r.t. other standards that deal with development of software; explain necessary steps to certify/qualify (a family of) components/systems; apply standards and propose development processes that meet the requirements of the standards. Standard related challenges: how should a standard be interpreted/used? Safety culture related challenges: how to establish and maintain a safety culture Communication related challenges between supplier and manufacturer: how should different interpretations of a single standard be handled? Reuse related challenges: how to make safe and time/cost effective reuse possible? I 18 I
Area: Dependable software Guillermo Rodriguez-Navas Tony Gorschek Blekinge Institute Mälardalen of Technology University Design of dependable and fault-tolerant embedded systems, 7.5 credits Responsible: Mälardalen University (Guillermo Rodriguez-Navas) Purpose: To provide participants with the fundamental principles of dependability and fault tolerance, as well as with the main practical methods and strategies for design of fault-tolerant embedded systems.. 1. Basic dependability concepts and terminology. 2. Fault tolerance fundamentals and principles 3. Strategies for design of fault-tolerant systems 4. Techniques to tolerate software faults 5. Study of the architecture of an existing fault-tolerant embedded system Learning outcomes: The student should after course completion be able to: Understand the basic concepts of dependability and fault tolerance Have knowledge and experience in applying different paradigms for design of fault-tolerant systems Develop fault-tolerant sofware according to current methodologies Have knowledge about existing fault-tolerant architectures Improve design quality in terms of dependability attributes (reliability, availability, etc.) Develop a systematic approach to fault tolerance, which should replace ad-hoc solutions that lead to long development and verification cycles, software refactoring and overdimensioning of resources. Learn and understand available design alternatives for fault tolerance as well as more advanced evaluation techniques. Create a common understansding of dependability terminology I 19 I
Area: Dependable software Tony Daniel Gorschek Hedin Blekinge Institute Mälardalen of Technology University Web application security, 5 credits Responsible: Mälardalen University (Daniel Hedin) Purpose: To identify, analyse and experiment with the most common web application and web service vulnerabilities and different methods for avoiding them. 1. Setting: introduction to web applications and services; typical application scenarios and associated security considerations and vulnerabilities. 2. Analysis: in-depth analysis of the selected vulnerabilities and practical experimentation including identification and exploitation. 3. Protection: review of different methods to protect against the vulnerabilities and practical application. Learning outcomes: The student should after course completion: be familiar with web applications and web services specifics, understand the most common classes of vulnerabilities, be able to identify and analyse potential vulnerabilities in applications, and have both theoretical and practical knowledge on how to protect against the vulnerabilities. Protection against injection attacks. Protection against attacks on authentication and session management. Protection against sensitive data exposure. I 20 I
Area: Architecture and design Riccardo Tony Scandariato Gorschek Chalmers/University Blekinge Institute of Gothenburg Technology Advanced software architecture, 7.5 credits Responsible: Chalmers and University of Gothenburg (Riccardo Scandariato) Purpose: present the most industry-relevant techniques in the area of architectural design and provide the means to document software architectures with standards like UML. The course also provides the participants with the necessary knowledge to reduce the technical debt in the software development projects they work on. Moreover, the course has a hands-on approach, which translates into actionable know-how that is relevant to the professional practice of software design. 1. Quality requirements: motivates the importance of quality requirements in the success of a software architecture; provides a definition of what quality requirements are. 2. Creating a software architecture: provides the tools (design principles, design tactics, and architectural patterns) and methods to create a software architecture that satisfies the key requirements and, particularly, the quality requirements related to performance, availability, and security. 3. Evaluating a software architecture: describes a qualitative method to assess whether a software architecture is able to provide support for the key system requirements. Learning outcomes: after course completion, the student should be able to: Understand the prevalent role of architectural design in the development lifecycle Identify and prioritize the requirements that have the highest impact on the design of a software architecture Suggest technical solutions to solve design challenges, e.g., with respect to performance, availability and security requirements Be able to identify trade-offs and risks in an architectural designs Improving the chances of delivering a project on time/budget by identifying the design flaws early on Reducing technical debt Making explicit trade-off decision among the conflicting interests of the stakeholders involved in a software development project Tackling security, performance and availability from the early stages of the development process Agile and lean development of software intensive php I 21 I
Area: Architecture and design Tony Rickard Gorschek Lindell Blekinge Institute Mälardalen of Technology University Usability and user experience, 7.5 credits Responsible: Mälardalen University (Rikard Lindell) Purpose: The course aims to provide students an opportunity to develop skill in experience design and design thinking as well as techniques and methods to design digital artifacts with desirable experiential qualities. This course focuses on the design process, techniques and methods to design and produce digital artifacts with desirable experiential qualities. 1. Usability and experiential qualities. The user experience of a digital artifact today consists of many experiential qualities. This module discusses the more complex situation faced by experience design today with many and sometimes conflicting experiential quality goals. The module provides techniques and methods for the initial part of the design process. 2. This module covers techniques for realizing a design. The module will also discuss different techniques and methods to validate a design and its experiential qualities. 3. Science philosophical basis. Experience design is based on an interpretive epistemology and phenomenology. A user interface for a digital artifact can be designed for different purposes, such as business or pleasure. This affects the course of philosophical concepts of pragmatism, utilitarianism, and hedonism. Learning outcomes: The student should after course completion be able to: demonstrate the ability to apply the design process for designing interactive digital artifacts focusing on user experience and experiential qualities, demonstrate the ability to conduct user tests to evaluate a design, demonstrate how the design work is based on scientific contributions in the field, design and develop interactive prototypes and digital artifacts focusing on user experience and experiential qualities, demonstrate the ability to make assessments with consideration to sustainable development, norm criticism, and scientific, social, and ethical aspects of interaction design, and describe basic philosophical concepts and scientific philosophy in experience design. Develop and attend to the experiential values throughout the development process. Handling of engineering epistemology with basic science versus the practice based design epistemology. Apply design thinking within the organization to develop products and services. I 22 I
Area: Project courses Tony Petra Gorschek Edoff Blekinge Institute SICS of Swedish Technology ICT / Mälardalen University Project course in software development for industry, 7.5 credits Responsible: Mälardalens högskola (Petra Edoff) Purpose: The purpose of the course is that students will develop and expand their knowledge of processes, methods and techniques in computer science. The course will provide knowledge of how to plan, carry out and present an independent improvement work related to their own company s problem and project model in software engineering. Introduction to scientific research and methods Planning for an in-depth study and/or application in the specific field, presentation of pre-study and project plan Evaluation of past change/development projects in the organization Executing a development/change project in the organization Learning outcomes: The student should after course completion be able to: 1. be able to search, identify and critically review the relevant sources 2. be able to account for improvements in processes, methods or techniques in projects with software, related to their own company s field of activity 3. draw a distinction, specification and plan for the problem that the project in question 4. be able to assimilate new knowledge by developing, testing and analyzing new processes, methods, or techniques that the project in question 5. to evaluate the introduction of new processes, methods or techniques and 6. be able to present orally and in writing, documenting the different phases, and the results. This course is for people working in the development of complex technical systems where software plays a key role. The course is suitable for people that are interested in learning more on how to run change projects in their organization. Studies include the planning, implementation and monitoring of this change (e.g., process improvement, introduction of new technology, methods or tools, etc). I 23 I
Area: Project courses Jan Gustafsson SICS Swedish ICT / Mälardalen University Theory of science and research methods, 7.5 credits Responsible: Mälardalen University (Jan Gustafsson) Purpose: to be introduced to concepts and problems in the philosophy of science. to study research methods in science and technology, especially computer science. to be able to search for information and to have a critical attitude. to be able to write, review, and present scientific papers. to be able to oppose others presentations. 1. Science theory. What is science and what is not? The scientific method for creating knowledge. 2. Research methodology in science and technology. Research methodology for computer science. 3. Scientific writing. Searching scientific articles. Writing and presentation of a scientific article. Examination and opposition of scientific articles. Learning outcomes: The student will, after course completion, be able to: explain central concepts and problems in science theory analyze scientific and pseudo-scientific texts and make critical examination of these review scientific articles describe some important research methods in computer science write a scientific article (based on own work or information found in scientific articles or similar) and present this article in a conference oppose others presentations practice a critical approach to knowledge, science and research I 24 I
Other courses Mikael Svahnberg Blekinge Institute of Technology Applied Cloud Computing and Big Data, 7.5 credits Responsible: Blekinge Tekniska Högskola (Mikael Svahnberg) Purpose: In todays mobile and connected world large amounts of data are created that need to be managed, analysed, and linked. This is done on a large number of servers in the so called Cloud. The development, deployment, and management of these servers is called Cloud Computing. The purpose fo this course is to give a broad background about the design, development, deployment, testing, and the monitoring of a cloud solution with a specific focus on large sets of data. Course Modules: 1. Introduction to Cloud Computing 2. Introduction to Big Data 3. Construction and Deployment of a Big Data Cloud Application Learning Outcomes: The student should after course completion be able to: In detail be able to understand and explain the underlying technologies used in a cloud computing system. In detail be able to understand and explain the more common technologies used in the management and analysis of Big Data. In detail be able to reason about privacy and security in a cloud system Be able to design a cloud application specifically targeted at a Big Data problem. Be able to deploy, test, and monitor a big data cloud application The course offers an overview of popular cloud platforms and the design and deployment of cloud applications. Furthermore, the course introduces MapReduce, nosql databases, and tools for large scale data analysis such as Hadoop, and how these can be deployed in a cloud application. I 25 I
Other courses Shahina Begum Mälardalen University Knowledge-Based Systems, 7.5 credits Responsible: Mälardalen University (Shahina Begum) Purpose: The course addresses the key concepts and techniques in the field of Knowledge-Based Systems. It gives an understanding of knowledge acquisition from human experts, other knowledge repositories, or via learning techniques from raw data e.g., sensors data. Based on the acquired knowledge, decisions must be made for the system to perform some actions. 1. Review Artificial Intelligence (AI) techniques and it s related subtopics with the focus on underlying themes. 2. Present case studies from different application domains and discuss key technical issues e.g., knowledge acquisition, knowledge representation etc. in developing such systems. 3. Discussion about selecting problem domain appropriate for knowledge-based system approach and future research issues in construction of practical knowledge-based systems. Learning outcomes: The student should after course completion be able to: Formulate a relevant practical problem and identify the key issue to solve the problem Find suitable AI techniques/algorithms to solve the problem and justify why they are selected for problem solving Design and implement a mini-prototype, analyze the results, as well as suggest possible ways for improvements Write a brief report summarizing the underlying problem, approach and results Automated knowledge-based system can acquire new, previously unknown, knowledge from routinely available industrial data Help to transform a part of human knowledge into machines. This knowledge can be used by decision support systems in various fields and provide economic values. Develop sophisticated and interactive automated system to support effective automated decision-making in Industries. Companies Desired: Ericsson, Volvo, Bombardier, Scania, SAAB, ABB, Addiva I 26 I
PROMPT Steering Committee Hans Hansson, professor Mälardalen University Christer Norström, CEO, SICS Swedish ICT Anders Caspár, Director External Research Relations, Ericsson Claes Wohlin, Professor, Blekinge Institute of Technology Kristina Forsberg, Systems Engineer/Technical Specialist, Saab Magnus Billgren, CEO, Tolpagorni Peter Wallin, Manager Technology Research, Volvo Construction Equipment Peter Gustafsson, Pro-Dean for education at Mälardalen University Miroslaw Staron, Chalmers and University of Gothenburg ASSOCIATION FOR REQUIREMENTS SARESWEDISH ENGINEERING Niffic AB I 27 I
Address: Box 883, 21 23 Västerås Telephone: +46 21-10 13 00 Address: Box 325, 631 05 Eskilstuna Telephone: +46 16-15 36 00 E-mail: info@mdh.se Web: www.mdh.se Mälardalen University,, 2015-04