T50 – Top Training in Tough Times

Quality - Process Improvement

Measurement and Analysis

Configuration Management

Agile Project Management

Project Management

Agile Development

Innovation and R&D

Requirements Engineering


The Test Maturity Model Integration (TMMI) – How to make your Testing more Effective and Efficient

How do we improve the efficiency of software testing and at the same time reduce the cost of testing? How do we make software testing better and cheaper? The answer is Process Improvement.

The ’Testing Maturity Model Integration’ (TMMIi) was developed with this purpose. The TMMI is a testing process improvement model that can either be used in conjunction with the Capability Maturity Model Integration (CMMI) or as a stand-alone tool. While the CMMI is an excellent development tool that recognises that reviews and testing are activities intended to enhance quality, it does not provide sufficient depth of testing coverage - the TMMi fills that void.

This course describes the TMMi and the benefits that can be derived from its use.

Software Test Management

This testing course is for anyone interested in improving the Software Test Management techniques and practices in their organisation. The course starts with an overview of software testing basics, the different levels of testing, basic testing principles, a lifecycle of testing activities and different types of testing documentation. Methods for performing test planning, test estimation, risk management, issue management and the importance of test monitoring and control are explored.

Successful Peer Reviews

Peer Review is one of the most effective software quality tools available with a proven higher return on investment of any software engineering practice. They have been proven to be the single most effective technique for finding defects early in the development lifecycle. So much time and money is spent chasing defects during system testing - and indeed during "live" operations, that software developers now realise that the early detection of defects is a vital part of the process of developing cost-effective quality software

This course examines a structured approach to peer review and will provide delegates with the necessary skills and techniques to implement effective and efficient peer reviews that meet the needs of any organisation.

Fundamentals of Software Testing

This testing course is intended for anyone interested in understanding the fundamental principles, issues, philosophy and key points of software testing. The course starts with an overview of software testing basics, why testing is necessary, the psychology of software testing, the different levels of testing, basic testing principles and examines a lifecycle of testing activities.

Structural (White Box) Testing Techniques

The purpose of a test design technique is to provide a structured mechanism for identifying test conditions and test cases. This course will provide an introduction to test case design techniques and will provide practical examples of applying a sample of the structural techniques, also referred to as white box techniques. Structural techniques are based on an analysis of the structure of the component or system. In this course the following code-related techniques for code coverage will be examined: statement coverage, condition coverage and decision coverage.

Specification (Black Box) Testing Techniques

The purpose of a test design technique is to provide a structured mechanism for identifying test conditions and test cases. This course will provide an introduction to test case design techniques and will provide practical examples of applying a sample of the specification based techniques, also referred to as black box techniques. Specification-based techniques are a way to derive and select test conditions or test cases based on an analysis of the test basis documentation, for a component or system without reference to its internal structure. In this course the following black box techniques will be examined: Equivalence Partitioning, Boundary Value Analysis and Decision Table Testing.

Incident Management – An effective Process

This course will examine an effective process for Incident Management including the steps necessary to handle an incident, the order of these steps, escalation procedures and responsibilities.

Quality – Process Improvement

Successfully Managing and Implementing your Process Improvement Initiative

Whether new or experienced in process improvement many organisations encounter barriers which prevent their improvement efforts from being a success. Process Improvement can be a challenging task.

This training course will help delegates to understand how to successfully plan and implement process improvements in their organisation. It will describe a step-by-step approach to process improvement that really works and can be continuously used. It will guide delegates through planning and preparing for process improvement, assessing current activities, prioritising and implementing new and improved practices, conducting pilots and evaluations and making improvements available to the entire organisation.

Understanding the Capability Maturity Model Integration (CMMI)

The Capability Maturity Model Integration (CMMI) is a process improvement approach that provides organisations with the essential elements of effective processes. This training course will introduce delegates to the fundamental concepts of the CMMI and its structure. It will also look at the benefits of using the CMMI in your organisation.

CMMI - Progressing through the Capability/Maturity Levels in the model

The Capability Maturity Model Integration (CMMI) contains two representations, Staged and Continuous. Both representations use the concept of levels to describe the evolutionary path an organisation may take to improve the processes it uses to develop and maintain its products and services. The Staged Representation contains five Maturity Levels, maturity levels 1 to 5, while the Continuous Representation contains six Capability Levels, capability levels 0 to 5. Regardless of which representation you are using the concept of levels is the same. This course will explain each of the levels, how the process areas of the model are organised and used across the levels and how to progress through the levels.

Performing Internal Quality Audits

This course will provide an overview of the fundamental steps necessary when performing an internal quality audit. It will examine the mechanisms to ensure that the audit allows an objective evaluation of the processes and work products in your organisation. It will examine the activities involved in audit planning, execution and follow up to ensure information from internal audits is used to make change and improve performance.

External Auditing of ISO9001 Quality Systems

Third party or external audits of ISO 9001 quality systems can contain many pitfalls for the unwary. This half-day course provides background to help make your external audit a success. The subjects covered include: types of audit; auditing and ISO 9001; planning the audit; selecting an auditor; the audit process; behaviour towards auditors; types of non-conformity; follow-up on audit results and surveillance audits.

The course also includes examples and exercises.

ISO 9001 – the Basics

This workshop will explain what ISO 9001:2009 is and why you might consider going for it. The session explains the requirements of ISO 9001:2009 as they relate to Software Companies and takes you through the steps you need to take to set up your own internal Quality System.

The course also includes an overview of the standard, its structure and how the detailed clauses that are contained within the standard relate to a software development company or IT department within a larger organisation.

Implementing a Quality Management System

ISO 9001 has been around for many years but has sometimes been given flack for being too bureaucratic and strangling organisations with paperwork. However, many organisations have shown that there are tangible benefits if a Quality System is implemented the correct way. It should be your Quality System designed to meet the individual needs of your unique organisation.

If you are considering implementation of a Quality System and want to make sure that your approach will be effective (whether or not you want to go for ISO certification) this course will be of interest to you.

Defining Processes – the Basics

This course introduces those tasked with performing process definition in an organisation to the basic skills and knowledge required to effectively document and define processes and to design improvements. It will examine the techniques involved in modelling the current ‘as-is’ processes, identifying weaknesses in the ‘as-is’ processes and agreeing necessary improvements.

Measurement and Analysis

Setting up a Software Measurement Programme – An Introduction

This course will examine the steps necessary in implementing a successful measurement programme in your organisation. It will examine the activities necessary to answer questions such as ‘what shall we measure?’ ‘how shall we measure?’ ‘how do we use the measurement data?’

Configuration Management

Configuration Management the Basics

This course is intended for anyone interested in understanding the fundamental concepts of Configuration Management. The course will provide an introduction to identifying and defining the configuration items in a system, controlling the release and change of these items throughout the system life cycle, recording and reporting the status of configuration items and change requests and verifying the completeness and correctness of configuration items.

Agile Project Management

Overview of Agile Methods

The recent emergence of Agile Methods represents an exciting opportunity for organisations to establish a proven software process that is results focussed while placing minimal overhead on the company.

Unlike traditional “heavyweight” processes, Agile Methods expect and welcome change. They are built around an ethos of developer and customer collaboration.

This course provides an overview of Agile Methods and a more in-depth look at the most commonly used of these appoaches, eXtreme Programming and SCRUM.

Agile Project Planning

Agile Methods deliver customer requirements through early and continuous delivery of valuable software, in contrast to the traditional approach of a long development time before implementation.

Agile Project Management represents a paradigm shift for Project Managers familiar with a traditional environment. Agile Project Planning will help smooth this transition and provide the necessary skills to plan and track an Agile Project successfully.

The course includes roles and activities covered by the SCRUM method; the tracking of an Agile project using burn-down charts and the key differences between planning an Agile Project vs planning a traditional project. The courses includes several exercises and is aimed at those considering managing an Agile project or have an interest in the Agile approach.

Agile Estimating

To ensure that software projects be more successful, effective estimation methods need to be employed. Effective planning and estimation are critical to ensure that a project is delivered on time.

The purpose of this workshop is for participants to gain an understanding of the various methods that can be used to estimate agile software projects. The workshop will also include specific interactive sessions for participants to discuss their own views on agile project estimation and its associated topics.

This workshop will be of interest to those involved in project estimating. It will also appeal to project managers, IT managers, software development managers, team leaders and developers.

Project Management

Project Planning – the Basics

Project Planning – the Basics provides an introduction to project management principles and practice. It provides a basis for the initial planning of a software development project, and tracking progress of the project, in terms of time, cost and effort when it is underway.

It is designed for people who need a grounding in project management principles and practices. It is applicable to those who are likely to be managing a project in the future, team leaders or managers who have responsibility for software or other types of project.

Software Estimating – the Basics

Organisations need to estimate various project elements including complexity, size and duration, at various stages of the project life-cycle. Effective planning and estimation are critical to ensure that a project is delivered on time.

The purpose of this workshop is for participants to gain an understanding of the various methods that can be used to estimate software projects. Other issues surrounding estimation methods will also be addressed.

Risk Management – the Basics

In the management of any project, large or small, an understanding of risk is critical. Too many software projects suffer unnecessarily from poor risk management and its consequences - projects that are over budget, delayed, or in some cases, even cancelled.

Risk Management – the Basics provides a framework that enables risk analysis and management to be conducted in a realistic and practical fashion. The workshop will be of interest to Project Managers, Senior Managers, Quality Managers, Team Leaders, who require an understanding of the principles of Risk Management.

PRINCE 2 - the Basics

PRINCE (Projects in a Controlled Environment) is a long established method for controlling IT and other types of project. The aim of the workshop is to provide delegates with an overview of the PRINCE 2 and explain the concepts such as PRINCE 2 processes and components, as well as the PRINCE life-cycle.

This workshop is designed for people who want a overview in project management practices. It is applicable to project managers, team leaders or managers who have responsibility for software or other types of project.

Unified Process - the Basics

Unified Process – the Basics is a half-day event that aims to provide delegates with an overview of the topic. The Unified Process (also known as the RUP - Rational Unified Process) is a common method for undertaking projects in a UML or object-oriented development. This process provides a number of techniques that provide a structure that enables an organisation to take an iterative approach to project management.

This course is designed for people who want a overview in project management practices. It is applicable to project managers, team leaders or managers who have responsibility for software or other types of project.

Agile Development


Refactoring is the art of making code more maintainable and readable without impacting on its functionality, its a fundamental practice of agile development.

The session is made up of two parts. The first part explains the different bad code smells which might prompt you to do a refactoring and how design patterns may act as goals for refactorings. In the second part, you get a real insight into refactoring through collaborating with the presentor on a real refactoring probem.

Pattern Cultivation

Show me flexible well engineered code and I will show you code with a high pattern density. But how do we decide when and where we should apply a pattern? It turns out that some patterns, such as Observer and Memento, solve specific technical problems that arise out of concerns such as persistence, usability, and distribution, they tend to be designed up front by system architects. Other patterns tend to appear magically out of the day to work of the programmers, I call these Organic Patterns, things like Composite and Strategy. In this session we show you how to cultivate organic patterns in your code using the right mix of refactoring, testing, and patience!

Agile Modeling

Agile modeling tools such as System Metaphor and CRC Cards allows us to think deeply about design problems, without getting bogged down in tortuous technical detail. They encourage participation and fresh insight and most importantly they foster a common living oral language that bonds the team members to the design and to each other. Everybody is a stakeholder in the design and everybody can clearly express their views about the design. In this session we get first hand experience with agile modelling by tackling a real life problem head on armed with nothing but a white board and some index cards.

DesignOOrama Tutorial - Getting inside the head of an Agile Developer

If you want to be good at chess you need to learn from other players. The chess world is full of books and magazines that contain annotated games. A annotated game shows the moves that were made in a game but most importantly describes the motivations for these moves. In programming we just don't have an equivalent for the annotated game, there are hardly any real world, real time descriptions of “warts and all” programming sessions. Our literature is full of opinion, dogma, toy examples but very little hard core.

DesignOOrama is a tool for recording design sessions as they happen, allowing you to annotate design decisions as they are made and map these annotations onto before-after pictures of the code. We call these annotated design sessions - dramas. You can share your dramas with the rest of the programming world for all to see and learn from.

In this session you will learn how to use DesignOORama to maximum effect.

Agile Enterprise Development

Its important if you want to stay agile that you preserve the integrity of your domain objects. This is easier said than done, in an enterprise context where the technical concerns tend to leak in and eventually overwhelm the domain object code. To prevent this subversion you need to get the architecture right, specifically you need to get the layering right. A comprehensive case study application is used as a vehicle to explore the patterns needed to maintain domain code.

Please note to get the most of this T50 you need to be familiar with the matter covered in the “Refactoring” and “Pattern Cultivation” course.

Innovation and R&D

Improving the Success Rate of Market Research

Many of us engage in a research exercise to arrive at a conclusion on the value of a new market opportunity. We could engage a market research consultancy if we could afford the cost and the possible delays; frequently we endeavour to carry it out ourselves. Experts in market research are not satisfied with the level of success achieved, one expert states that 75% of market research projects fail.

This short course is intended for those with some knowledge of carrying out market research though it can be of value to others. It builds on the five step approach to provide a structure to market research projects, whether contracted externally contracted or carried out internally that ensures greater clarity and improved success.

Organising the R&D Centre

Over 1,000 companies in Ireland carry out research and development. Most of it is Development rather than Research. In a number of companies it is late stage development, such as chemical engineering in the pharmaceutical sector in order to scale up laboratory results to full production. Some includes early stage and may have an independent design laboratory. While some other is engaged in longer term work that might include the development of new materials or technologies that are deployed in later stage R&D.

In all cases the company needed to establish an R&D competence that addresses both skills and facilities. This is equally applicable to a mature or early stage company where embarking of the first R&D projects is intended to greatly influence the future success of the enterprise. This short course addresses these first steps in capability building. It will provide for a more organised and efficient means of carrying out R&D.

Introduction to Creative Thinking

There is now an even more critical need for a company to innovate. Innovation is best achieved by making it a company wide initiative. The long established practice of a costs savings scheme in the larger companies may be taken on board to also stimulate innovative thinking and innovative changes.

At the heart of company wide innovation is ideation or the creation of ideas that may be considered to contribute to innovation projects. This short course will provide the means to get creativity going and give it the direction needed to feed into innovative endeavours.

Requirements Engineering

Requirements Management

This course provides an overview to managing user and software requirements throughout the life-cycle. It will also include a series of practical sessions, which will allow participants to gain experience in applying the principles and techniques learned.

The workshop is aimed at Business Analysts, Project Managers, Team Leaders and Designers who need to understand how to use effective methods to manage user requirements. Other staff that will be involved in the requirements stage of development will also benefit from attendance.

Contact CSE
emailE: cse@dcu.ie
phoneT: +3531 700 5427
Copyright © Centre for Software Engineering
Website: Red on Green Design