The goal of this two year Master's programme is to develop students with the knowledge and skills to work in and lead teams in the development of software products.
Software is everywhere – visible as a product or service in its own right, or hidden as a component of a wider product. Thinking of the code base in product terms from the outset can ensure that the delivered software is successful both in its initial release and as a platform for product evolution over the longer term.
In everyday speech, we are use concepts like apps, software, IT systems, platforms, etc. This diverse software landscape is further enriched by the increasing use of rapid and dynamic (agile) methods and approaches. Software product development involves people working together in teams to which individuals contribute their expertise in various areas, providing a structured yet creative way of moving development forward. A key challenge facing software engineers – and their customers and bosses – is the constantly changing technological context of the programming work. Pragmatic software practitioners must balance the benefits of the latest technical innovations with the risks of abandoning established practices.
Software development is in many respects an applied (practical) science. With an emphasis on "evidence-based software engineering", this Master's degree ensures that you are familiar with the latest research and practice in the software field. It equips you to review research reports critically, and it prepares you – should you wish – for a further career in software research.
Modelling is a key strand of thinking and practice in product development within the School of Engineering. In this Master's you will learn how modelling can underpin software development.
This Master's degree will help you achieve professional competence in your chosen career. Collaboration with businesses and institutions ensures that the course content reflects "real-world" product development needs. With a focus on evolving industry practice, lectures from external software engineers provide a counterpoint to the academic view of software development. In following the Curriculum Guidelines for Graduate Degree Programs in Software Engineering and by mapping to the Software Engineering Body of Knowledge, the degree builds upon the work of professional bodies.
More information, see GSwE2009 and SWEBOK.
Time is allocated through the first three semesters for you to work on a collaborative project with the aim of delivering a working software product, under the title of Product Development in Cross-discipline Teams. The product concept may come from an industry partner, from an initiative within the University, or you can suggest your own product concept for consideration. The practical, product focus of your chosen project is enhanced by an industrial placement course that enables you to apply your knowledge in a work environment. The Master's thesis serves to consolidate your new skills by addressing a specific problem in software product engineering.
The School of Engineering, Jönköping University, is a member of the prestigious collaborative between leading engineering schools worldwide - the CDIO Initiative™. The CDIO Initiative is an innovative educational framework to conceive and develop a new vision of engineering education and for producing the next generation of engineers.
More information, see CDIO
This Master's degree enables you to aim for the more senior roles in the development of software products. These roles can be focused on areas such as software architecture, project management / control, requirements management, testing, and development of socio-technical systems. Students will also have developed the capabilities needed to work in both large corporations and smaller specialized businesses; working with major ERP (Enterprise Systems) to specialized embedded software components; with everything from so-called "back-end data processing" to Internet-related systems.
Tuition fees do NOT apply for EU/EEA citizens or exchange studentsOur partner universities
Industrial Product Realisation: Process - Methods - Leadership 9 credits
Software Engineering - a Product Perspective 6 credits
Software Product Architectures 7,5 credits
Entreprenurial Performance Management and IT
Product Development in Cross-discipline Teams 1 7,5 credits
Engineering of Socio-technical Systems 6 credits
Mathematics for Software Engineers 6 credits
Software Product Quality Assurance 6 credits
Product Development in Cross-Discipline Teams 1 & 2 6 credits
Safety and Security of Software Products 6 credits
Industrial Placement Course 9 credits
Product Development in Cross-Discipline Teams 3 9 credits
Product Specification and Requirements Management 6 credits
- Cloud Computing and Data Analytics 6 credits
- User Experience Design 6 credits
Final Thesis Work, Master 30 credits
Industrial Product Realization:
Process - Methods - Leadership, 9 credits
The course covers the different parts of the product realization process regarding their content, operation, management and methods of development and research. The course provides a theoretical, organizational and scientific contextual framework to the each master program’s focus and the contribution of each program field to the product realization process is introduced.
The course includes the following topics: - Product realization process parts - Methods relevant to product development as well as development of production, industrial design and information technology - Scientific methods used for development of knowledge in the different parts of the process - Group dynamics, leadership and communication in the different parts of the product realization process - The course includes elements from anthropology, leadership and psychology.
Software Engineering - a Product Perspective, 6 credits
The course provides an overview of the software engineering domain as an evolving professional discipline that is concerned with software as a product or service in its own right, or as a component of a wider product. After studying the perspectives that apply to software engineering, the course focuses upon the elements of software development beyond the writing of code. The course introduces the concept of model-driven software engineering and offers students an example approach to follow. The course also covers the planning, control and monitoring of software development work. The remaining courses in the programme provide deeper knowledge and practice of software development, supported by a practical project.
The course includes the following topics: - Software as a product itself or as part of a product (including maintenance and evolution) - Software engineering as a profession (including ethics and sustainability) - Process models for software development life cycles (including Agile and traditional approaches) - Introduction to software process improvement - The importance of requirements and their place in the software product lifecycle - Model Driven Software Engineering (including domain-specific and translational approaches) - Software architecture and system design decisions - Re-use (patterns, components, frameworks, Open Source and COTS, "commercial off the shelf") - The management of software projects (including estimation, risk analysis and control) - Software metrics and evidence-based software engineering.
Product Development in Cross-discipline Teams 1, 6 credits
The course focuses on development of a product in a real-life-like scenario. A product may include software, electronic and mechanical components. The results may be delivered in different forms, including product specifications, digital and paper-based prototypes, (software) code, and other artefacts. The scenario for the product may originate from an external company or organisation, from a need internal to the University, or from an original idea from the students. The product will be developed through an Agile lifecycle, with clearly defined intermediate deliverable points.
The course includes the following topics: - Project work in teams consisting of different types of professionals - Analysis of the business, user research, specification of requirements to a product - Design of user experiences and interactions, design of software and IT architectures - Development of product prototypes, testing and evaluation - Communication with stakeholders, users, and management - Project planning, including releases.
Engineering Socio-technical Systems, 6 credits
The course gives students a conceptual awareness of systems thinking and introduces the concept of engineering complex systems, in which software plays a key role. The value of modelling itself is emphasised as a way of understanding and designing systems. Research and problem solving methods with a strong basis in the systems tradition are presented and the course covers the use of system simulation tools.
The course includes the following topics: - Systems thinking - Complexity, chaos theory and emergent behaviour - Socio-technical systems and purposive behaviour - Hard and Soft Operations Research (OR) - Design Science, Action Research and Soft Systems Methodology (SSM) - Representing systems through models (including SysML) - System simulation (including the use of Simulab and Systems Dynamics).
Safety and Security of Software Products, 6 credits
The course explores how software differs from hardware and considers the impact of these differences upon the safety and security of software-based systems. The course covers how to deliver software that is safe to use and which is secure against intrusions and attacks.
The course includes the following topics: - Safety and security failures of software systems - The human and organisational aspects of software safety and security - The role of safety and security standards - Safety versus security, and cross-cutting issues - Modelling safety and security (including risk management and hazard analysis) - Software dependability engineering (including availability, reliability, redundancy, recovery and survivability) - Designing for safety and security, and defensive programming techniques - Testing software for safety and security vulnerabilities.
Software Product Architectures, 7,5 credits
The course teaches the student the principles that can be applied to the architectural design of a software system, looking at modularity and layering across the spectrum of application types.
The course includes the following topics: - Software architecture, its definition, key concepts and importance - The role of the software architect - Architectural stakeholders, viewpoints and perspectives - Architectural styles, categories and the use of patterns - Software interoperability and interfacing standards - Reference architectures, architecture description languages and architectural standards - Modelling, prototyping and evaluating a software architecture - Design disclosure and documenting a software architecture - Specifying the development infrastructure - Software architecture in context: System-on-a-Chip; Parallel processing and multi-threaded systems; Model Driven Architecture and automatic code generation; Software product lines, architecture recovery and architecture properties; Agile development and the relevance of design; Enterprise applications and their architectures.
Mathematics for Software Engineers, 6 credits
The course investigates mathematical concepts of direct relevance to programming and the construction of software systems. The course also provides students with the competence to use mathematics as a problem-solving tool in software engineering and the confidence to approach mathematicians for support in addressing more complex software engineering challenges.
The course includes the following topics: - Abstract algebra and data structures - Algorithm complexity and code structures - Automata and state-based behaviour - Graph theory and network topologies - The mathematical basis for encryption and cryptology - Measurement theory and software metrics - Optimisation techniques (including linear programming and dynamic programming) - Mathematical simulation (including the use of Matlab/Simulink) - Spreadsheet modelling of engineering problems (including the use of dashboards).
Software Product Quality Assurance, 6 credits
The course ensures that students have a sound understanding of the different influences on software quality. Four key messages are emphasised: that successful software can persist for years after initial delivery but only if it is of sufficient quality; that software quality assurance is not just about testing; that testing is not a phase conducted towards the end of development; and that quality assurance addresses both product and process.
The course includes the following topics: - Describing software quality (including the use of quality models) - Metrics in software quality assurance - Software process improvement (including the Capability Maturity Model Initiative) - Achieving software quality assurance (via inspections, clean coding, testing and retrospectives) - Organising for testing (including the role of the tester and the need for independence) - Testing in an Agile context (including test-driven development and continuous integration) - Designing a testing infrastructure (including code analysers, test tools and test automation) - Controlling software quality (including the management of defects, versions and releases) - Evolutionary testing, including the use of genetic algorithms - Testing particular types of software: Embedded systems; Distributed systems; Mobile systems; User interface systems.
Software Entrepreneurship and Business Planning, 7,5 credits
The course includes the following topics: - Entrepreneurship as a social phenomenon - Entrepreneurial processes and their relationship to innovation and creativity - Formulation of the vision, mission and business idea - Sourcing finance and sustaining stakeholder engagement - Business plans – purpose, strategic relevance and essential content - Business planning processes - Balancing opportunity and uncertainty through risk analysis.
Industrial Placement Course, 9 credits
The course provides students with a deeper awareness and insight of working with technology in the private or public sector. At least 75 % of the course is off-campus, which means that 4-5 weeks will be spent with a company or an organisation. Students are expected to find their own placement. On-site they engage in practical work, performing the tasks of engineers relevant to their respective majors and as agreed with the host management. Students must demonstrate their ability to maintain a regular journal record of their practical work, describing the activities undertaken and reflecting upon the experience. To complete the course, students will draw together a summary report and then give an oral presentation on return to campus.
Cloud Computing and Data Analytics, 6 credits (Elective course)
The exponential growth of the digital universe, particularly in the form of storage and computing power in recent decades, enables companies to accumulate huge amounts of data at moderate cost. Accompanying this technological shift is a widespread realization that collected data contain potentially valuable information. Exploiting this stored data, in order to extract useful and actionable information, is the overall goal of the generic activity termed data analytics.
The course includes the following topics: Basics of cloud architecture, - Software as a Service (SaaS), Platform as a Service (PaaS), Infrastructure as a Service (IaaS) - The MapReduce framework, especially Hadoop - Fundamental tasks in data mining, i.e., classification, regression, clustering and association rules - Basic machine learning techniques for classification, regression, clustering and association rules - Organization of a data mining project, i.e., preprocessing, modeling and evaluation - Software tools for data analytics - Data analytics applied in different business domains - Research directions in data mining and machine learning
User Experience Design, 6 credits (Elective course)
The course provides an overview of the ongoing shift from usability and performance as the main user-centered goals in the design of information systems, to user experience, satisfaction, and engagement. The course accounts for the social and technological reasons for this shift, introduces the theoretical foundations of user experience, and details the core hands-on principles, methods, techniques, and deliverables that form the foundations of a sound design process. The resulting design process offers a user-centered approach not only to Web applications but also to mobile and wearable apps as well as to more traditional information systems.
The course includes the following topics: - user needs, organizational needs, and business needs - balancing design and technology - user-centered design methodologies and processes - personas, scenarios, and journey maps - wire-frames, mock-ups, and prototypes - design principles for web, mobile, and wearable technology - project management (agile, lean, iterations and effect maps)
Product Specification and Requirements Engineering, 6 credits
The course serves as a retrospective of the previous courses in the programme and thus draws out the importance of requirements engineering as a means of ensuring successful software product delivery. It covers how to discover and capture requirements, and how to shape and structure them into a software product specification. The focus is on the practical steps, models and techniques needed to obtain a complete, relevant and rigorous set of requirements to guide product development.
The course includes the following topics: - Engaging with product stakeholders - The roles of the product owner, the business analyst and the systems analyst - Capturing and documenting requirements (including use cases, user stories and product backlogs) - Using models to conduct robustness analysis - Formal requirements specifications - Tracking requirements, and their changes, through development to delivery - Requirements negotiation (including QFD, Quality Function Deployment)
Product Development in Cross-Discipline Teams 2, 9 credits
The course allows students to continue the product project commenced in Part 1, bringing the project to a conclusion with the product in a defined state for handover or continued development. The course concludes with a reflection activity in which students present lessons learnt.
Final Thesis Work, Master, 30 credits
The course aims to produce deepened knowledge and skills in the autonomous performance of a study which shows the student's ability to apply, critically utilise and further develop the knowledge that the curriculum has provided, particularly in close collaboration with companies, organisations or public authorities.
The course will contain the following elements: - Collecting, sorting and analysing data - Project planning - Project implementation - Report writing - Oral presentation and opposition and when required a physical model and exhibition.
Content checked / updated 2016-09-26