The core focus of the PRAISE program is software engineering (SE), encompassing the ideation, development, commissioning, evolution, and maintenance of software-intensive products and services (SIPS). SIPS is not merely “software”. Rather, every domain and area (telecom, automotive, defence, health, farming, to mention a few) either offers products that contain software, or their products/services are enabled by software. Hence, SIPS and software engineering as such is critical for companies and the public sector in two main ways. First, the products and services offered must be effective (good/competitive). Second, the SIPS must be developed/maintained/evolved in an as efficient manner as possible (fast, high quality, costeffective). Therefore, as software now underpins products, services, operations, and innovation as indispensably as electricity, excellence in software engineering profoundly impacts nearly every organization in every industrial sector.
PRAISE responds to a fundamental transformation in software engineering driven by the advent of AI in the contexts of AI for Software Engineering (AI4SE) and Software Engineering for AI (SE4AI). In principle, AI4SE denotes how AI can be used to improve the effectiveness and efficiency in the engineering of SIPS. SE4AI, in turn, denotes what software engineering principles and practices need to be in place to engineer software that contains “AI components” and how this changes the main and sub-process areas of the engineering discipline. Although SE4AI and AI4SE are different perspectives, they are complementary by nature.
Under PRAISE, we culminate research expertise and experiences in both areas required to develop “AI-enabled Software Engineering” as a basis for substantial competence enhancement for professionals. PRAISE constitutes the main educational effort of this change, backed up by current and future research efforts.
The PRAISE program will yield ten completely new courses, co-developed with industrial partners, to ensure the delivery of cutting-edge, research-based content.
This course provides software engineers with the skills and knowledge to effectively leverage cutting-edge AI tools, including generative AI, in their engineering workflows and to seamlessly integrate these technologies into software-intensive products and systems. Participants will gain a comprehensive understanding of AI fundamentals, enabling them to evaluate, compare, and select the most appropriate AI solutions for specific challenges. Through a blend of theoretical foundations and hands-on practical applications, the course immerses participants in the use of generative AI, ensuring they are equipped to navigate and innovate within the AI-driven landscape of modern software development.
Module 1 – Introduction to AI and Generative AI
An overview of AI and GenAI history, key terminology, and demystify LLMs as functional systems rather than “magic boxes.” It also compares closed vs. open-source models and explores local vs. cloud hosting options.
Module 2 – How to choose the right AI tool for an SE task
A summary of AI tools suitable for specific software engineering (SE) tasks, addressing challenges, opportunities, and regulations. It covers privacy, financial implications, hardware requirements, and associated constraints and concerns.
Module 3 – How to use it correctly
Guidance on managing hallucinations in AI models, with example workflows for practical implementation, and an exploration of concept drift—how models adapt to changes in data over time.
Module 4 – Hands-on Session: Using GenAI4SE
Engage students in a live, interactive session where students collaboratively brainstorm and build a small app using GenAI. Incorporate one or two additional features to extend functionality, and address development challenges in real-time. The session emphasizes hands-on coding, problem-solving, and tackling obstacles during the software engineering process using GenAI.
Module 5 – Integration of AI tools in Production Systems
Learn how to select the right GenAI tool for your specific use case and integrate it into a project or service, such as implementing a chatbot on a website.
Module 6 – Keeping up with Future AI Development
How to stay informed about the evolution of AI4SE and SE4AI, identifying relevant and up-to-date sources of information on new models and approaches. “Future-proofing” your career.
Course team: Martin Boldt, Anton Borg, Niklas Lavesson, Nauman Bin Ali
This course introduce requirements engineering and product management, but with focus on both the utilization of “AI” – in order to elicit, analyze, specify, and manage requirements – as well as product management tasks involved with product planning and evolution decisions over time. In addition, the course goes through what implications AI-intensive products and services will have on the product management requirements engineering work.
Module 1 – Introduction
Introduction of requirements engineering (RE) and product management (PM) (agile/lean based, IREB, ISPMA).
Module 2 – Introduction to AI in RE/PM Context
Introduction to GenAI, weaknesses, benefits, potential, quality assurance, practical use-cases with RE/PM. Tools, AI interfaces and different models.
Module 3 – Elicitation and Documentation
Introduction of documentation standards for requirements and exploration how GenAI can be used to generate requirements from e.g. regulatory documents or stakeholder interviews
Module 4 – Analysis – Negotiation
Analyse e.g. competitor systems or legacy systems to enable requirement gap identification, also supported by GenAI. Conduct impact analyses and gap analysis with respect to regulations and standards utilising GenAI. Use GenAI to review requirements, e.g. non-functional quality requirements to guide their refinement to testable metrics. Explore the use of AI to automatically generate test cases out of requirements.
Module 5 – Requirements Management
Effectively manage evolution and control of requirements over time as product development and system evolve.
Module 6 –
Impact on AI-intensive Products and Services
Detailing on new aspects that need to be taken into consideration given that a product/service contains “AI” components. We will elaborate on a perspective-based specification of requirements for AI-intensive products and services (e.g. data needs). and conclude also with compliance and ethical considerations.
Course Team: Daniel Mendez, Julian Frattini, Tony Gorschek
Software architecture (SA) enables solution architects to design complex software systems to meet evolving business and technical needs while delivering scalable and maintainable systems. Increased demand for integrating AI-enabled components and systems poses unique challenges, requiring additional knowledge and skills.
In this course, students will learn the fundamentals of SA, use AI-enabled tools to perform architecture design activities, and apply traditional and emerging SA design techniques to integrate large-scale, compute-intensive AI components in complex software systems.
Module 1 – Fundamentals of Software Architecture (SA)
Module covers the fundamentals of Software Architecture (SA), including identifying architectural requirements, designing software architectures, documenting and evaluating them.
Module 2 – Introduction to applying AI in SA
Module introduces AI, exploring its strengths and limitations, and potential quality assurance challenges in its application to Software Architecture (SA). Discussion includes practical use cases of generative AI tools and models in SA context.
Module 3 – Architectural requirements with AI
Module focuses on using Generative AI (GenAI) to identify architectural drivers, such as quality attributes and primary functionality. It will include GenAI-based exercises to elicit, analyze, prioritize, and establish architectural drivers for a system.
Module 4 – Designing Software architecture with AI
Module explores use of AI in designing architectures and the application of AI tools for i.e. selecting design patterns and tactics based on system requirements to ensure alignment with architectural goals.
Module 5 – Architectural evaluation with AI
Module focuses on AI-enabled trade-off analysis for evaluating software architectures and their fitness for purpose. It will explore how AI can assist in assessing architectural design decisions to ensure alignment with quality requirements.
Module 6 – Architecture of AI-intensive SIPS
Module covers the application of traditional and AI-centric architectural patterns, standards, and tactics to design modifiable, reliable, efficient, and scalable AI-intensive systems supporting continual learning.
This course discuss the contribution of AI tools in object-oriented design and modeling through a combination of a theoretical foundation and practical exercises. Grounded in fundamental principles of object-oriented design, the course explores how AI tools can be used to generate software designs or improve existing designs. With AI tools, the dream of round trip engineering, from requirement via design to code, and back again, comes one step closer. A particular focus will be on both the utilization of “AI” to build and validate models, e.g. on the basis of natural language requirements, as well as design practices for AI-intensive products and services.
Module 1 – Introduction
Introduction of object-oriented design and software modeling. Case Studies on how AI has been used for design, and its benefits and limitations, with a focus on responsible application of AI in the software development life cycle.
Module 2 – AI for requirements analysis and design generation
AI-based approaches, such as Natural Language Processing, for transforming requirements into object-oriented designs and analyzing requirements to identify inconsistencies, ambiguities, or missing details.
Module 3 – Design Principles and Design Patterns
Fundamental design principles, such as low coupling, high cohesion, Don’t Repeat, Yourself, etc. Design Patterns such as Strategy, Factory, Observer, etc. in order to recognize the limitations of AI generated designs.
Module 4 – AI for Optimization and Refactoring
Using AI for identifying fundamental design principles and design patterns in an existing design and/or code and improve them according to SOLID, DRY, and KISS principles.
Module 5 – Round Trip Engineering
Effectively manage the continuous evolution and changes to the system over time. Aligning/synchronize the initial design documents and models with the actual state of the system.
Module 6 – Implications on and for AI-intensive Modelling and Design
Principles and challenges when interfacing with and integrating AI components in a software system, where e.g., output may be non-deterministic. This includes ethical considerations with respect to AI generated contents as well as conformance and compliance considerations.
Course Team: Mikael Svahnberg, Andreas Baur, Liang Yu
This course teaches students to leverage AI/LLMs to enhance programming productivity and problem-solving. It covers using AI tools for generating code, debugging, documentation, and learning new programming concepts while emphasizing critical thinking and ethical use. Students will gain practical skills to integrate AI/LLMs into modern software development workflows. By the end, they will confidently use AI/LLMs as effective tools for learning and creating software solutions.
Module 1 – Introduction
Identify use cases for AI/LLM assisted programming. Understand the capabilities and limitations of AI/LLMs in programming tasks. Get an overview of existing tools and assistants for specific tasks.
Module 2 – Problem solving with AI/LLMs
Use AI/LLMs to improve developers’ domain understanding. Learn how to break down complex requirements or complement incomplete requirements. Find entry points for code changes and get algorithm suggestions.
Module 3 –
Write code with AI/LLMs
Write effective prompts to generate quality code (software and testware). How to judge the quality of generated code. How to mitigate risks of over-reliance on generated material.
Module 4 –
Read and understand generated code
Teach strategies to quickly grasp code to understand its functionality and adapt it to the requirements.
Module 5 – Documentation with AI/LLMs
Judge readability and correctness of comments, documentation, tutorials and instructions generated by AI/LLMs.
Module 6 –
Learning new programming concepts
Efficiently and effectively gain new knowledge related to programming paradigms, development environments and frameworks, programming languages. Know how to ask the right questions to acquire new knowledge about new topics.
This course introduce testing of software intensive software and services (SIPS) that contain AI (Testing4AI) as well as testing SIPS with AI-driven tools (AI4Testing). The course will give a theoretical framework for the challenges, solutions and ways-of-working with GenAI testing but also practical experiences of methods, practices and tools that can be applied for/with testing of SIPS.
This course is primarily aimed towards Testers and Quality Managers/Engineers.
Module 1 – Introduction to GenAI in Testing
Introduction to key concepts of traditional quality assurance, emphasizing the challenges and differences required for quality assurance with GenAI or of systems with GenAI and its concurrent capabilities.
Module 2 – Theory of Testing SIPS with GenAI
Introduction to the core concepts required to test software with GenAI components, including quality assurance, manual and automated testing and quality metrics.
Module 3 – Practice of Testing SIPS with GenAI
Practical demonstration and exercises in the use of methods, practices and tools for testing SIPS that contain generative AI.
Module 4 – Theory of GenAI-driven Testing
Introduction to the core concepts of GenAI-driven testing, including methods, practices, and tools that are available for traditional testing as well as SIPS with GenAI. This includes how to reason, measure and assure quality and compliance to key standards (e.g. EU AI ACT).
Module 5 – Practice of GenAI-driven Testing
Practical demonstration and exercises in the use of methods practices and tools that contain Generative AI, from unit testing to system testing on a Graphical user level of abstraction.
Module 6 – Impact on GenAI on SIPS
Detailing on new aspects of testing and quality assurance of software systems that need to be taken into consideration given that a product/service contains “AI” components. We will elaborate on current and future strengths, weaknesses, threats and opportunities of testing SIPS that contain GenAI, and testing with GenAI of SIPS.
As Generative AI (GenAI), such as Large Language Models (LLMs), integrate deeply into modern software applications, securing these systems becomes critical. This course equips developers, engineers, and security professionals with the knowledge to identify, mitigate, and manage risks specific to LLM-based applications. Specifically focusing on threat modeling and security testing, participants will learn to navigate challenges such as data poisoning, prompt injections, and emerging risks outlined in frameworks like OWASP Top 10 for LLMs and MITRE ATLAS.
Module 1 – Introduction
This module introduces foundational concepts in AI security, emphasizing the unique risks posed by Generative AI and LLMs in modern applications. It covers the evolution of AI threats and their implications for privacy and system integrity.
Examples of attacks on GenAI-powered applications.
3.Security challenges unique to LLMs and GenAI
Module 2 – Threat landscape and models
Focus on LLM-specific threats represented in OWASP Top10 LLM, MITRE ATLAS frameworks.
Module 3 – Threat Modeling
Dive into threat modeling specific to LLMs using frameworks like MITRE ATLAS and real-world scenarios.
Module 4 – Security Testing
Hands-on guidance on testing LLMs for vulnerabilities and implementing secure development practices.
Module 5 – Incident Response and Maintenance
How to maintain GenAI-powered applications and perform monitoring and incident response.
Course Team: Alex Adamov, Michel Nass, Feliz Jedrzejewski
This course explores how AI transforms software maintenance and evolution, combining AI for Software Engineering (AI4SE) and Software Engineering for AI-intensive Systems (SE4AI). It covers AI-driven tools for automating maintenance tasks, managing evolving AI components, and addressing challenges like model drift and dependency management. Participants will also learn AI-augmented strategies for project management and testing, preparing them to navigate the complexities of modern, AI-enhanced software systems.
Module 1 – Introduction to software maintenance with/for AI
– Introduction to maintenance for and with AI
– Maintenance categories (corrective, adaptive, perfective, preventive)
– Integration of AI4SE and SE4AI concepts in modern maintenance practices
Module 2 – AI-Driven Maintenance Tools and Techniques
– AI- driven program comprehension and analysis
– Automated detection of code smells, anti-patterns, and design flaws
– Code refactoring with LLMs
Module 3 – Integrating AI and Traditional Maintenance Practices
– Harmonizing updates to AI and non-AI components.
– Dependency analysis between AI models and traditional code.
– Strategies for managing technical debt in AI-enhanced systems
Module 4 –
Proactive and Scalable Maintenance Strategies
– Predictive maintenance using AI to identify future system needs.
– Scalable management of evolving software and AI components.
– Developing robust and reliable maintenance strategies for complex systems.
Module 5 –
Evolution and Maintenance of AI Systems
– Continuous monitoring of model performance, detecting data or concept drift, and maintaining data quality through regular evaluation and updates.
– Implement scalable, secure, and automated pipelines for retraining, deployment, and system integration while ensuring low latency and fault tolerance
Module 6 –
AI-Augmented Project Management and Testing
– AI for project planning, maintenance prediction, and resource estimation.
– AI-driven testing techniques, including test case generation and prioritization
This course prepares managers and engineers to address ethical, legal, and compliance challenges arising in the development of AI-intensive software products and services. Participants will explore regulatory frameworks, ethical principles, and best practices for ensuring fairness, accountability, and transparency in AI systems. Through theoretical insights and practical case studies, learners will develop strategies to navigate the evolving landscape of AI regulation and responsibility.
Module 1 -Laws and Regulations
An introduction to key legal frameworks such as GDPR and the EU AI Act. Participants will learn about risk levels defined in the EU AI Act, methods for applying regulations, and the implications of transparency requirements on global competitiveness.
Module 2 -Ensuring Ethical AI In Models and Data
This module deals with data quality and bias mitigation in AI training data. It explores strategies for identifying and addressing ethical issues, such as bias, fairness, and representativeness, throughout the AI model lifecycle.
Module 3 -Compliance in the Software Development Lifecycle
Focuses on integrating compliance checks into software development. Topics include lifecycle management of AI models, data lineage tracking, auditing decision-making processes, and implementing traceability systems to ensure adherence to regulations.
Module 4 – Operation and Monitoring for AI Compliance
Examines operational challenges such as preventing unauthorized data access, detecting sensitive data leaks, and ensuring secure usage of AI systems. Participants will explore tools and practices for monitoring compliance in deployed AI systems.
Module 5 -Leveraging AI for Compliance Management
Explores the potential of AI tools, including large language models (LLMs), to support compliance. Topics include automating documentation, monitoring development processes for regulatory violations, and interpreting new legal standards to forecast compliance risks.
Module 6 – Case Studies and Practical Applications
Learners will analyze real-world scenarios to apply ethical and compliance principles. This module emphasizes balancing ethical obligations, legal constraints, and business goals in AI-intensive software systems.
Use of AI-tools to support more efficient and effective software development processes. An example of processes are Agile, Lean, CI/CD or DevOps. AI can be utilized as a process analytics engineer to suggest SPI improvement areas. Organizations can decide if suggested improvement should be automated (executed by AI) or performed by humans. AI can also be applied to support more efficient project management and team composition.
Module 1 – Introduction
The course focuses on utilizing AI technologies to analyze and improve continuous software development processes, software project management and team composition.
Module 2 – Using AI for SPI
Use of AI-tools for identifying SPI areas and how current SPI methods (SPICE, iFLAP, CMMI, SAFe) can be enriched with the help of AI.
Module 3 – Using AI to support team level processes
Introduction of how AI can be used to improve team level processes. For example, the use of AI in inform planning processes or backlog management.
Module 4 – Using AI to support organization level processes
AI-enabled methods for team composition leads to better execution of software processes and methodologies. This includes identifying what responsibilities can be outsourced to AI and how humans and AI synchronize in the processes. AI-enabled organizational knowledge analysis use AI to generate knowledge maps for a given software engineering organization to identify the needs for complementary human capital (e.g., hiring new experts in the area that are emerging).
Module 5 – AI-enabled project management processes
Use of AI tools for project management, including risk management, task dependencies, effort estimation and project burndown charts. AI enables automated comparing with previous projects within the organization.
Module 6 -Managing AI components in software development processes
Integrating ML components into software development processes requires AI-specific practices, e.g. MLOps. For example, in the CI/CD pipeline, there is an AI component that needs to be retrained or fine tuned depending on the changing data or environment.