Page 1

Nohau Training Centre Course Descriptions

2009


Training Course Descriptions Requirements Engineering Advanced Course on Requirements Engineering with IRQA 5 Advanced Requirements Management with CaliberRM

6

Basic Course on Requirements Engineering with IRQA 7

SilkTest: Verification Testing Advanced

29

Software Architecture for Embedded Systems 30 Software Architecture for small Real-time Embedded Systems

31

Software Reengineering - Workshop

33

CaliberRM Essentials

8

StarTeam Advanced: Server Administration

34

Defining High-Quality Requirements

9

StarTeam Essentials

35

Effektiv Kravhantering

10

Test Driven Development

36

Grundläggande Kravhantering

12

Test i Praktiken

37

Requirements-Based Testing Workshop

13

Unit Test with Cantata++ for C

39

Unit Test with Cantata++ for C++

40

Software Quality and Test Architecture of Medical Devices Containing Embedded Systems

15

Embedded Development and Debugging

Black Duck Protex Quick Start

16

Android Application Development Introduction 42

C Engineering

17

Basic Regulatory Training for Design Engineers 43

Certifierad Testare Grundnivå - enligt riktlinjer från ISTQB och SSTB 18

C Programming for Embedded Systems, part I 44

Klocwork Insight

19

Managing Quality with SilkCentral Test Manager 20 Managing StarTeam Projects

21

Reviewing C Code

22

SilkPerformer: BDL Scripting Techniques

23

SilkPerformer: Modeling & Implementing Load Tests 24

C Programming for Embedded Systems, part II 45 C Programming for Embedded Systems, part III 46 C++ Basic

47

C++ Supplementary

48

Develop Applications for ARM11

49

Develop Applications for ARM9

50

Develop for ARM Cortex-M3

51

SilkPerformer: Results Analysis & Correlation

25

Develop Linux Based Embedded Systems

52

SilkPerformer: Testing SAP Applications

26

Embedded Solutions with Windows CE 6.0

53

SilkTest: Testing Dynamic Application

27

Lauterbach Debugging

54

SilkTest: Verification Testing

28

Lauterbach for DSP Based Systems

55

Nohau training courses | contact: +46 40 59 22 16, kurs@nohau.se | www.nohau.se | Malmö - Stockholm - Finland - Denmark - Norway |


Training Course Descriptions Lauterbach for Linux Based Systems

56

Lauterbach Trace Functions

57

Python for Programmers - Part 1

58

Python for Programmers - Part 2

59

Real-time Systems

60

Symbian and S60

62

Symbian OS Multimedia Programming

63

System Programming with WIN CE

64

Using C++ in Embedded Systems

65

Model Driven Development Business Analysis with Together Designer for Eclipse

67

Design Patterns

68

MBSE Architecture

70

MBSE Bootcamp

72

MBSE Design, Execution and Code Generation 73 MBSE Simulation and Model-Based Testing

75

Practical Modeling with UML

77

Rhapsody and UML in Practice

79

Together for Eclipse Essentials

80

Agile Methods & Design of Medical Devices Certified Scrum Master

82

Lean and Agile for Managers

83

Scrum for Team Members

84

Patient Risk Management in Medical Devices

85

Nohau training courses | contact: +46 40 59 22 16, kurs@nohau.se | www.nohau.se | Malmรถ - Stockholm - Finland - Denmark - Norway |


Nohau Training Courses

Requirements Engineering

Nohau Solutions AB, Box 1030, SE-212 10 Malmรถ, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

4


Nohau Training Courses

Advanced Course on Requirements Engineering with IRQA

Course: Advanced Course on Requirements Engineering with IRQA Day(s): 3 Goal

It is also recommended to be familiar with the structured

The goal of this course is to provide training to the audience

methodology, and have certain knowledge of project planning

in all features of IRQA, both methodological and related to its

and management.

practical use, covering all of the functionalities provided by the tool.

Intended audience • Project managers

To carry out these objectives, the course includes a set of

• System analysts

theoretical presentations, with the underlying methodolo-

• System engineers

gical and engineering principles, and a number of practical

• QA Managers

exercises.

• Procurement Managers

Likewise, the course includes an introduction to requirement concept, its management, and its engineering process.

Languages • English

Prerequisites Basic knowledge of Software Engineering and its classical life

• Spanish

cycle, as well as the object oriented modeling standard UML (Unified Modeling Language).

Content 1. Introduction to requirements engineering 2. IRQA and requirements engineering: meta-IRQA 3. IRQA basic concepts 4. Getting started with irqa 5. Requirements capture and management 6. Organization of the system specification

8. Requirements analysis 9. Solution specification 10. Acceptance tests 11. Change impact analysis 12. Reports generation 13. Additional facilities 14. Integration with software design tools 15. IRQA administration

7. External import

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

5


Nohau Training Courses

Advanced Requirements Management with CaliberRM Advanced Requirement Management with CaliberRM is a hands-on workshop that presents advanced RM features using the CaliberRM tool.

Course: Advanced Requirements Management with CaliberRM

Day(s): 1

A one-day workshop, Advanced Requirement Management

Participants

with CaliberRM describes the advanced activities, specifically

Business Analysts, Requirements Analysts, Technical Direc-

Requirements Baseline, Document Factory and the roles

tor, QA Manager.

responsible for those activities.

Previous knowledge

Goal

CaliberRM Essentials.

The instructor introduces in detail the activities plus how each role interacts within the process. There are opportunities to demonstrate your understanding with hands–on, practical exercises. While the RM Process is toolset independent, CaliberRM is the preferred tool and is used in all practical work.

Content DocFactory

Maintaining Baseline Signatures

• How to create Doc Factory’s templates

• Locking and notification of a Baseline

• Doc Factory’s commands, keywords and operators

• Adding signatures and meaning to a Baseline

• Requirements features in CaliberRM

• Special tables and formatting rules for document extraction

• Best practices about Baseline’s signatures

• Best practices regarding Baseline Requirements

• Advanced document extraction controls with Doc Factory

Importing

Maintaining Requirements Baselines

Creating & Initializing Requirements Baselines

COURSE CONCEPTS Requirements Baselining • Concepts • Defining Requirements Baseline Scope

• Controlling Requirements Baseline • Controlling versions of Requirements Baseline

• Baseline creation through CaliberRM

• Changing Baselines properties

• Defining a Baseline “signature meaning”

• Comparing Baselines contents

• Automatic Baseline maintenance notification

• Details about signatures and reports

• Structure and re-use • Agreeing new re-usable requirements

• Defining a Baseline “signatories”

• Baseline’s initialization

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

6


Nohau Training Courses

Basic Course on Requirements Engineering with IRQA

Course: Basic Course on Requirements Engineering with IRQA Goal

Day(s): 1

Intended audience

The goal of this course is to provide training to the audience

• Project managers

in the basic IRQA features, such as requirements capture and

• System analysts

management, using the tool.

• System engineers

To do so, the course is composed of a set of theoretical

• QA Managers

presentations, introducing the advantages of performing an

• Procurement Managers

adequate requirement management. It also includes some practical exercises to be performed with IRQA and a brief introduction to the requirement concept.

Languages • English • Spanish

Prerequisites Basic knowledge about Software Engineering and its classical life cycle.

Content 1. Introduction to Requirements Engineering 2. Getting started with IRQA 3. Requirements capture and management 4. Organization of the system specification 5. Reports generation

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

7


Nohau Training Courses

CaliberRM Essentials CaliberRM Essentials introduces the requirements analyst or reviewer to the fundamental skill of managing requirement definitions using CaliberRM. A one-day session, CaliberRM Essentials is a tools-oriented course that provides hands-on training for anyone using CaliberRM.

Course: CaliberRM Essentials Day(s): 1 Goal

You will also learn how to define dependency relationships

The focus will be on using CaliberRM in the context of daily

between requirements and across development technologies as

requirements analysis, including creating requirements,

well as reporting capabilities so that you can extract critical

collaborating with other interested parties, and publishing

development metrics from your requirements repository.

approved requirement baselines.

Participants

Throughout the course, you will use the CaliberRM user inter-

Those who are new to CaliberRM and anyone involved in the

face to accomplish these tasks and will discuss how to adapt

definition, review, or approval of requirement specifications.

the interface itself so that each analyst may have a personal

Previous knowledge

view of the requirements information. During the course, you will learn not only the CaliberRM product features but also how to utilize them to manage evolving requirement definitions.

Working knowledge of Windows operating system.

Practical exercises / Tools All concepts are taught through a combination of instructor-

For example, you will learn how to extend requirement definitions with custom attributes and, if desired, reuse these customizations as part of a project or enterprise standard.

led discussion and self-paced exercises. After completing this course, you will be able to effectively use CaliberRM for any requirement specification activity.

Content Overview of Requirements Management

Entering Requirements in CaliberRM

• Conceptual overview of Requirements Management

• Editing and Saving Requirements

• Requirements Management terms and definitions

• Deleting Requirements

Getting Started with CaliberRM

• Importing Requirements from MS Word

• Technical Architecture • Structure of CaliberRM • Logging-On to CaliberRM

• Creating Requirements • Moving Requirements • Creating Requirements from MS Word

Collaboration • Threaded discussions

• Changing user options

• Requirements owners and assigning responsibility

• Accessing CaliberRM’s Help

• Notification and status • Sharing requirements across projects

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

8


Nohau Training Courses

Defining High-Quality Requirements This course will be useful to anyone who has to define, review, or use requirements on a software or systems development project.

Course: Defining High-Quality Requirements

Day(s): 1

Goal

Benefits

Defining High-Quality Requirements course describes how to

On completion of this course, the participant will be able to:

specify high-quality requirements for a software or systems

• Identify and understand different kinds of requirement

development project and avoid common pitfalls. It also helps

engineering processes

anyone reviewing or using requirements to identify common

• Choose and apply a suitable requirements elicitation

requirement problems.

technique

Sessions give students experience in techniques for eliciting

• Differentiate objectives from the solution

customer input, distinguishing requirements from design,

• Understand the purpose of different types of requirements

writing precise, unambiguous functional requirements, specifying quality attributes, choosing alternative ways to represent

• Describe the characteristics of high-quality requirements

requirements, reviewing requirements and identifying common

• Write functional requirements and quality attributes that are more precise, richer in detail, less ambiguous, and

ambiguities.

more actionable than before

For an on-site training, the course can be tailored to meet the

• Review and provide feedback on requirements written by

needs of each specific audience, such as having students work

others.

with requirements pertinent to their own development project or using a specific requirements elicitation tool.

Format Approximately 70% lecture and 30% group discussions and

Participants This course will be useful to anyone who has to define, review,

exercises.

or use requirements on a software or systems development project.

Content Requirements Engineering Process

• User Stories

Reviewing Requirements

• System Development

• Prototypes

• Ambiguity Review Checklist

• Software Development

• Visual Storyboards

• Confusing Constructs

• Agile Requirements Engineering • Tool Support

Writing Requirements

Requirements Elicitation

• Different Types of Requirements

• Good Elicitation Practices

• Writing Quality Requirements

• Common Elicitation Techniques

• Considerations for Maintenance Projects

• Interviews

• Defining Clear Objectives

• The Language Barrier • Jargon and Unnecessary Complexity

• Structured English

• Workshops • Surveys • Use Cases

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

9


Nohau Training Courses

Effektiv Kravhantering

Ett kurssamarbete mellan Combitech och Nohau

Kursen ges på svenska. The course is given in Swedish.

Kurs: Effektiv Kravhantering

Dag(ar): 2

Nödvändig för att överleva

Alla dessa och ytterligare faktorer kan göra även en skenbart

Krav är den grund som alla utvecklingsprojekt vilar på – utan

enkel kravprocess komplicerad.

en fungerande kravhantering riskerar projekten att kollapsa, vilket innebär både förseningar och ökade kostnader.

Insamling Insamling av krav syftar till att analysera och identifiera

För att undvika detta krävs en strukturerad krav-hantering

krav för en framtida (eller befintlig) produkt. Det finns olika

där giltiga krav fastställs för varje given tidpunkt i utveck-

typer av krav, t ex funktionella och icke-funktionella, varav de

lings-projektet. Allt i syfte att skapa en produkt som stämmer

senare är svårare att identifiera men nog så viktiga.

överens med kundens önskemål.

Vem vänder sig kursen till?

Dokumentation Hur krav dokumenteras beror bland annat på vilka intres-

Kursen vänder sig till alla som på något sätt kommer i

senterna i ett utvecklingsprojekt är – dvs vilka som behöver

kontakt med krav i sin verksamhet. Detta kan innebära såväl

förstå kraven.

utvecklare som chefer.

Bland det viktigaste med en kravdokumentation är att den ska

Förkunskaper

möjliggöra skapandet av gemensamma bilder, något som är

Inga speciella förkunskaper krävs.

en direkt framgångsfaktor för alla utvecklingsprojekt.

Målet med kursen

Prioritering

Efter kursen ska du ha fått en genuin förståelse för kravhan-

Prioritering handlar om att välja de krav som ger en produkt

tering och dess betydelse för ett lyckat utvecklingsprojekt.

som kunden är nöjd med till en rimlig kostnad. Som stöd för

Beskrivning Kursen baseras på mångårig erfarenhet av kravhantering från

detta finns ramverk som kan stötta vid prioriteringen. Dessa ramverk skapar de beslutsunderlag som behövs för att fatta väl underbyggda beslut.

ett antal olika branscher. Ett stort fokus läggs på att identifiera, hantera och om möjligt förebygga de problem som är

Verifiering och validering

vardag i de flesta utvecklingsprojekt.

Syftet med verifiering är att säkerställa att kraven beskriver rätt funktioner och beskriver dem på rätt sätt. Detta för att

Inledning

försäkra sig om att den produkt som utvecklas har förutsätt-

Viktiga frågor att besvara:

ningar att möta kundens krav.

• Vad är kravhantering och varför är kraven så viktiga?

Syftet med validering är att säkerställa att det utvecklade

• Vad är syftet med krav?

systemet uppfyller de krav som ställts på det. Detta för att

• Hur förhåller sig kundkrav till andra krav? • Vad är ett bra krav? • Finns det risker med krav?

försäkra sig om att den produkt som utvecklats faktiskt möter kundens krav. Kom ihåg – det går aldrig att gömma fel!

Kravhantering i ett perspektiv

Förvaltning

Faktorer som påverkar implementeringen av en kravhante-

Förvaltning av krav handlar bland annat om hantering av

ringsprocess är bl a vilken utvecklingsmodell som används,

kravändringar. Att kraven ändras under ett utvecklingsprojekt

hur kraven används, vilken bransch en organisation verkar

är ett faktum och en strategi för detta är nödvändig.

inom, hur kunder uppfattar krav och vilka verktyg och testme-

Förvaltning handlar även om att skapa strategier för återan-

toder som används.

vändning av krav.

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

10


Nohau Training Courses

Övningar och dialog

Kurslitteratur

• Reflektion och dialog kring centrala frågor

Eftersom kursen bygger på mångårig erfarenhet har vi ingen

• Praktiska övningar kring:

bok knuten till kursen.

• Kravinsamling

Kursmaterial

• Kravformulering och dokumentation

Alla deltagare får en kurspärm med allt presentationsmate-

• Säkerställande av önskvärda kravegenskaper

rial, exempel och mallar som används under kursen.

Kursupplägg

Allt material skickas också med digitalt för att deltagare smi-

Våra utbildare kommer direkt från fältet med aktuella kun-

digt ska kunna använda sina nya kunskaper i sin vardag.

skaper och en djup praktisk förankring. I vår värld måste alla teorier kunna omsättas i det dagliga arbetet. Kursen innehåller många praktiska övningar. Vi låter det gå en tid mellan kursdagarna, för att ge deltagarna tid att smälta intrycken och låta den nya kunskapen mogna. Mellan kurstillfällena får deltagarna hemuppgifter att lösa, gärna kopplade till den egna verksamheten.

Innehåll • Inledning • Kravhantering i ett perspektiv • Insamling • Dokumentation • Prioritering • Verifiering och validering • Förvaltning • Övningar och dialog

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

11


Nohau Training Courses

Grundläggande Kravhantering Ett effektivt sätt att lyckas med projekten redan från början är att sätta starkt fokus på kraven. Kursen ges på svenska. The course is given in Swedish.

Kurs: Grundläggande Kravhantering

Ett kurssamarbete mellan Combitech och Nohau

Dag(ar): 1

Praktiska övningar och viktiga lärdomar

Dessutom genomför vi en övning där vi identifierar krav. Vi

I korthet innebär det att formulera bra krav och därefter ta

pratar också om olika typer av krav och tydliggör på vilket

med dem under hela projektet, för att alla hela tiden relatera

sätt hanteringen av dem skiljer sig från varandra.

sitt arbete till de uppsatta kraven. Denna kurs ger deltagarna en enkel modell för att hantera krav.

Formulering Kravhantering handlar mycket om kommunikation. Därför är

Vem vänder sig kursen till?

det viktigt hur vi formulerar dem. Vi kommer att gå igenom

Kursen vänder sig till personer som ansvarar för eller är

kriterier för bra krav.

styrda/påverkade av krav i sitt arbete.

Dessutom kommer vi att prata om uppbyggnaden av specifikationer och hierarkier av specifikationer. Vi övar på att

Förkunskaper

formulera de krav som vi identifierat tidigare.

Inga speciella förkunskaper krävs.

Prioritering

Målet med kursen Efter kursen ska du ha fått grundläggande kunskaper om kravhantering och dess betydelse. Hur krav identifieras, formuleras och verifieras.

Alla krav kan inte vara lika viktiga och vi behöver veta prioriteten för att styra mängden tester och implementationsordning. Vi går igenom olika sätt att prioritera krav.

Dessutom kommer du att ha fått praktisk övning i vad

Verifiering och validering

kravhantering innebär och vad som är viktigt att tänka på i

Alla krav måste kunna verifieras. Vi går igenom olika strate-

praktiken.

gier för verifieringen. Dessutom pratar vi om hur verifiering går till för olika typer av krav. Vi granskar slutligen krav i en

Beskrivning

kravspecifikation för systemet vi tittat på tidigare.

Det är ett välbekant fenomen att det är svårt att finna kraven och utforma dem entydigt och förståeligt. De måste också

Underhåll

prioriteras, förhandlas, riskhanteras, spåras och ändringshan-

Slutligen går vi igenom underhåll av krav. Vi diskuterar hur

teras.

man arbetar med ändringar och visar olika strategier för

Dessutom behöver man verifiera och validera att kraven upp-

underhåll vid arbete med likartade produkter.

fylls. Detta fordrar samverkan mellan flera intressenter under

Vi övar sedan på att göra en påverkansanalys för tre kravänd-

hela systemets livscykel.

ringar i systemet vi jobbat med.

Identifiering

Kursupplägg

Det finns olika sätt att identifiera de krav som vi behöver för

Hur förmedlar man kunskap så att sammanhang och mönster

att göra en bra produkt. Vi går igenom ett antal olika strate-

blir tydliga istället för lösryckta detaljer och delsystem?

gier som kan användas.

Innehåll • Identifiering

• Prioritering

• Formulering

• Verifiering och validering • Underhåll

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

12


Nohau Training Courses

Requirements-Based Testing Workshop This workshop helps customer to practically implement focus areas of requirements-based test-ing, typically as a part of a broader process improvement activity.

Workshop: Requirements-Based Testing

Day(s): 1-2

This 1-2 day on-site engagement is valuable for anyone re-

system and SilkCentral Test Manager, either in the customer’s

sponsible for requirements, testing or the overall development

own environment or in a portable demonstration set-up.

process.

The workshop requires prior arrangements to ensure that a

It aims to find, test, and document optimal ways to handle

suitable pilot project, scope of the workshop, and supporting

requirements: eliciting, defining, linking to development-time

technologies are agreed on

assets, linking to test plans. Methods to track and report test status and coverage of requirements during testing activities are reviewed. You learn how to select an appropriate strategy for requi-

Goal On completion of this course, the customer team has (with the help of the instructor): • Identified high-benefit improvement areas within their

rements-based testing, systematically conduct test-ing, and

requirements and test processes

report on quality and progress. This may be tailored to your

• Evaluated and tested alternative solutions to optimize

different products or product families. You also learn how to

selected processes

participate in other quality processes related to RBT, such as project management, release control, and change manage-

• Produced supporting documentation and templates for

ment.

RBT • Implemented and piloted the solution (partially) with

Using your own pilot project as an example, the workshop

relevant technology

produces concrete deliverables which help the organization to quick-start the RBT process.

Format

These are typically produced using appropriate supporting

Approximately 15% lectures and 85% group discussions and

technology, such as CaliberRM requirements management

teamwork.

Content The exact content is always agreed before-

Requirements workflow

hand. Examples of focus areas include:

• Workflow (statuses, roles and responsibilities) for the requirements

Requirements-based testing process

• Tasks for each role during each step in the workflow

• Overall RBT process workflow • Supporting technologies • Integrations to other processes • Process measures

Requirements structure • Types and structure of the requirements • Traceability rules • Process for migrating or archiving old requirements

• Reports needed during each step in the workflow • Baselines, when they are created and how they are managed

Test Structure and traceability • Categories, organization and types of tests

• Methods for measuring test coverage and implementation progress • Integration between test and requirements tools

Parallel development • Strategy for parallel development (e.g. products, releases, customer projects) • Strategy for sharing common requirements (e.g. regulatory) • Strategy for requirement and test branches for separate development tracks

• Traceability to requirements • Process for executing the tests and reporting the results

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

13


Nohau Training Courses

Software Quality and Test

Nohau Solutions AB, Box 1030, SE-212 10 Malmรถ, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

14


Nohau Training Courses

Architecture of Medical Devices Containing Embedded Systems Course: Architecture of Medical Devices Containing Embedded Systems

Day(s): 2

Examples are given of the architecture of medical devices containing embedded systems. Solutions offering short development time, and reasonable manufacturing cost are discussed. Different user interface solutions are presented.

Exercises Exercises are performed on an embedded system.

Audience Engineers working on the design of medical devices.

Content • Architecture • One / two processors • Microcontroller versus embedded PC • Choice of operating system • Design of electronics for electrical safety (IEC 60601), compliance with defibrillation etc. • Documentation

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

15


Nohau Training Courses

Black Duck Protex Quick Start The Black Duck Protex Quick Start is a 3 day training session, conducted at your site, regardless of its location.

Course: Black Duck Protex Quick Start

Days: 3

An experienced trainer will visit your office(s) and teach you

Introduction

and your technical, legal and executive staffs how to effecti-

Learn how protexIP performs code identification and license

vely utilize your Black Duck solutions.

compliance.

Goal

Project Management and Identification

Before training takes place, a trainer will contact you to cover

Learn to use protexIP to identify and manage the inventory of

your particular needs, objectives, skills and processes so a

open source, 3rd party and proprietarycomponents that make

customized curriculum can be delivered.

up your projects.

By customizing the training, students learn how to use their

Command Line Tool

solution in a course that is more relevant to their daily jobs which enables them to quickly be more productive.

Training A customized curriculum is created and delivered based on your particular needs, objectives, skills and processes.

Learn to run analysis from the command line, which is used for scripting protexIP automation.

License Management Learn how protexIP involves attorneys in the code management process, from creating custom licenses and obligations to implementing review processes.

The curriculum covers the following areas:

protexIP Administration Covers topics such as system defaults, update scheduling and backups.

Content

Day One:

Day Two:

Day Three:

• Introduction and walk through

• Training on License and Component Management

• Hands on session with legal team

• Work as a team to baseline your project; perform identification, review and reporting functions

• Continue baseline work on actual projects

• Training on project management and identification • Optional: do this as a “hands-on” session with instructor supplied projects • Prepare and run analysis on an actual project

• Discuss/design procedures for using protexIP

• Additional technical training – Command Line Interface, System Administration, etc.

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

16


Nohau Training Courses

C Engineering The course is targeted towards professional C developers with some years of experience of practical C development.

Course: C Engineering

Days: 3

This training course is an advanced course in C and the envi-

Goal

ronment around C development.

This course is intended to give you a set of tools for personal

The course is targeted towards professional C developers with some years of experience of practical C development. In this course, C is described as a field of engineering.

development toward a role of expert or mentor. In the course, you acquire skills in working with code reviews, improving code quality and writing performance-critical code.

Some sample subjects from the course include software deve-

Previous knowledge

lopment as a team activity, defensive programming, psycho-

This course requires very good knowledge of C.

logical aspects on C programming and code development with tough performance requirements. The course also gives a basic overview of applied algorithm theory with a number of tips in the field of performance coding. This part of the course is intended to give a repetition of algorithms and data structures to those who have academic expe-

It is an advantage for you as a participant if you have experience from working in industrial software development projects.

Practical exercises / Tools The course contains both discussion exercises and computer exercises.

rience of it, but have not used it lately, and also to introduce

The computer exercises are done in a Windows-based environ-

the subject to those who have not previously encountered it.

ment with Visual C++ version 8. With the computer exercises, a free code library is handed out to the participants. This code library is free to use after the course.

Content Some sample subjects from the course include: • software development as a team activity, • defensive programming, • psychological aspects on C programming and • code development with tough performance requirements.

Applied algorithm theory

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

17


Nohau Training Courses

Certifierad Testare Grundnivå - enligt riktlinjer från ISTQB och SSTB

Ett kurssamarbete mellan Combitech och Nohau

Kursen ges på svenska. The course is given in Swedish.

Kurs: Certifierad Testare Grundnivå - enligt riktlinjer från ISTQB och SSTB

Våra produkter blir allt mer komplexa och innehåller mer programvara. Detta innebär att test blir en allt viktigare del av programvaruutvecklingen. En effektiv test förutsätter

Dag(ar): 4

• Att komma ihåg – Du som kursdeltagare ska känna igen, komma ihåg och påminnas om uttryck och begrepp. • Att förstå – Du som kursdeltagare ska välja ut skälen,

hög kompetens inom testområdethos testare, men även hos

eller förklaringarna, till påståenden som är relaterade till

utvecklare, projektledare och kvalitetsansvarig.

ämnet och kan sammanfatta, jämföra, klassificera och ge

Vi erbjuder i samarbete med Combitech en grundläggande

exempel på testbegrepp.

testkurs med möjlighet att certifiera sig inom programvaru-

Exempel: Som testare förstår man ju självklart varför vi ska

testning. Genom att bli en certifierad testare på grundnivå

testa – men är det alltid lika självklart vilka nivåer som vi ska

får du ett objektivt bevis på din kunskap, med möjligheter att

använda i vår testning? Hur berättigar vi vår testverksamhet?

fortsätta till högre certifieringsnivåer inom programvarutest.

Kan vi, med hänsyn taget till de tids- och resursbegränsningar

Vem vänder sig kursen till? Alla som har ett intresse av programvarutestning, såsom testare, testledare, programmerare, projektledare eller kvalitetsansvarig.

Förkunskaper Du får gärna ha varit i kontakt med test i något sammanhang, men det är inte ett krav.

Mål med kursen Efter kursen kommer du att ha förståelse för grunderna inom test. Kunskapen och förståelsen om programvarutest kommer att hjälpa dig att förklara samband, likheter och skillnader mellan olika testbegrepp, testtekniker och testnivåer mm.

som oftast finns i vår vardag, kommunicera test rätt? Genom en djupare förståelse kan vi bättre motivera test i våra organisationer och få bättre gensvar för vårt arbete med test • Att använda – Du som kursdeltagare kan välja rätt användning av ett begrepp eller teknik samt tillämpa det i ett givet sammanhang. Exempel: Vilka tekniker är lämpliga och när? Hur kan vi identifiera gränsvärden för giltiga och ogiltiga klasser? Hur väljs testfall ut från ett givet tillståndsövergångsdiagram för att täcka alla tillståndsövergångar?Vilka testdokument ska jag använda och hur? Hur ser dokumentmallar ut enligt aktuell IEEE-standard och hur nyttjar jag dem bäst i min testverksamhet?

Dessutom kommer du att lära dig att välja rätt användning av

Alla delar i kursen kommer att ge dig grundförutsättningarna

begrepp eller teknik i ett givet sammanhang.

för att hantera test så effektivt som möjligt på ditt företag.

Beskrivning

Efter kursen, dag fyra, genomförs en examination. Med godkänt resultat är du sedan ”Certifierad testare grundnivå”.

Kursen ger dig en grundläggande kunskap om test som alla som utvecklar programvaruprodukter behöver ha. Du får lära dig testprocessen med olika tekniker och grundbegrepp, inklusive hur vi väljer testfall utifrån kravspecifikationer och design. Vi går igenom testnivåer och syftena med dessa. Principerna för hur du bör tänka för att få en så effektiv test som möjligt, hur vi organiserar testverksamheten och hur verktyg kan stödja vår testverksamhet. Under kursen kommer vi genom både teori och konkreta exempel att tillämpa de olika nivåer som kursen är uppbyggd på:

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

18


Nohau Training Courses

Klocwork Insight This is a 3 day intensive instructor led training course in a formal classroom setting. The training is based on existing Klocwork suite integration with Customer product (if available).

Course: Klocwork Insight Day(s): 3

This is a 3 day intensive instructor led training course in a

• How to work with Klocwork’s powerful queries and filters, architecture rules and functional behaviour know-

formal classroom setting. The training is based on existing Klocwork suite integration with Customer product (if available).

ledge base • To generate, use and understand software metrics • To generate, use and understand metric trending and

Goal

distributions

This course provides in depth knowledge in the use of the Klocwork suite and how it is used within a build and software

• How to take advantage of and administer the setup and configuration options

development environment. The student will be taught in depth knowledge in: • To detect, fix and manage defects and security vulnerabi-

Participants Recommended for technical leaders, assigned Klocwork prime, technical managers, key developers and architects.

lities of all types • To visualize software structure and control, detect and fix anomalies • To generate software architecture and other models

Previous knowledge Basic programming is recommended to be able to obtain the most.

Content Day 1

Day 2

Day 3

• Klocwork and its Products

• Working with Security Problems Reporting

• Klocwork Client and Server Architecture Overview

• Working with Metrics Reporting

• Klocwork approach to Architecture Improvement

• SQLCMD & TOOLBUS Sample Projects

• Working with Include Problems Reporting

• Working with Klocwork Admin

• Klocwork inSight Architect Overview

• Build Integration Strategies

• Working with Klocwork Entities

• Klocwork inSpect Overview

• Working with Klocwork Relations

• Working with Klocwork Project Central • Klocwork Working with Code Problem Reporting • Klocwork inForce Overview

• Working with Interface Problems Reporting

• Basic modeling with Klocwork inSight Architect • Self Guided Tour – Klocwork inSight Client • Working With Models • Advanced Modeling with Klocwork inSight Architect • Working with Architecture Problems Reporting • Klocwork Intellect Overview

• Working with Klocwork inForce

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

19


Nohau Training Courses

Managing Quality with SilkCentral Test Manager A not-to-be-missed session if you use SilkCentral Test Manager (SCTM) to manage your software quality.

Course: Managing Quality With SilkCentral Test Manager

You will uncover new ways to manage user accounts and

Day(s): 3

Previous Knowledge

execution server locations; configure projects; manage test

• Familiarity with a Windows environment

requirements; create test and execution definitions.

• Ability to navigate in an Internet or intranet environment • Have a basic knowledge of software quality optimization

Goal Through hands on exercises, you will also upload and schedule

• Working knowledge of SilkTest and/or SilkPerformer

SilkTest and SilkPerformer projects for manual and unattended testing, and you will also review the different reports available in SCTM.

Participants Business Managers, Quality Assurance Project Leaders, and Engineers who need to develop a working knowledge of SCTM user and project management, requirements and test cases definitions, test executions and results interpretation.

Content COURSE CONCEPTS Introduction to SCTM • SCTM Architecture • SCTM”s Interface

Setting the Stage • What are Requirements?

Defining Requirements • Requirements Unit • Requirements Hierarchy • Office Import Tool

Creating a Test Plan • Generating a Test Plan • Assigning Test Definitions to Requirements

• Configuring Deployment Environments

System Administration

• Scheduling Test Executions

• The Administration Pages

• Configuring Execution Dependencies

• Users and User Groups

Test Monitoring and Reporting • Projects Unit • Overview Tab

Global Filters and Custom Attributes • Creating Custom Attributes • Creating Global Filters • Using Filters to Display Information

Project Management • The Settings Page • Project Settings Tab • Creating Custom Requirement Properties

The Execution Unit

• Creating Custom Step Properties

• Defining Test Executions

• Change Notification Tab

• Assigning Test Definitions to Test Executions

• Creating a New Project • Administrative Reports • Source Control Profiles • Products and Platforms • Global Schedules

Bringing It All Together • SCRN and Software Quality Optimization

Issue Manager • Using Inboxes • Entering New Issues • Processing Issues • Taking Action on Issues • Issues, Queries and Reports • Generating Reports

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

20


Nohau Training Courses

Managing StarTeam Projects Managing Projects Using StarTeam provides a process and tool-oriented approach to planning a new StarTeam configuration or optimizing an existing configuration to support and enhance your software configuration management processes.

Course: Managing StarTeam Projects

A three-day, process and tool-oriented course, Managing StarTeam Projects is for anyone planning a new StarTeam configuration or wanting to optimize their current use of StarTeam.

Days: 3 • Know how to use labels and promotion states for revision identification. • Be able to configure security policies for projects, views, folders and items.

The course examines the activities and processes required for

• Be able to define a change control process.

effective software configuration management, and focuses on

• Be able to produce reports when performing tasks like

the use of StarTeam to create and manage projects and product configurations, implement a change control process, and generate reports and charts to support configuration status accounting. The course includes discussions on how to configure StarTeam to support an organization’s configuration management

auditing or baseline verification. All concepts are taught through a combination of instructorled discussion and self-paced exercises.

Participants Individuals tasked with defining the organization’s configura-

processes.

tion management processes and deciding how StarTeam will

Goal

creation and management of projects and configurations in

Upon completing this course, you will:

StarTeam.

be implemented in the organization, anyone involved with the

• Understand the activities required for effective software configuration management.

Previous knowledge • StarTeam Essentials

• Be able to create and set up a StarTeam project.

• Working knowledge of the Windows operating system

• Know how to create and use views to manage product releases and configurations.

Content COURSE CONCEPTS Welcome and Introduction • Configuration Management and StarTeam

Configuring Projects and Folders • Create and configure StarTeam projects and folder structures

Managing Configurations with Views and Labels • Use views and labels to manage parallel development and multiple releases

Configuring Security Policies

Course Wrap-Up

• Configure access rights for users and groups

• This module summarizes the acquired skills and suggests the next steps.

Defining a Change Management Process • Define an effective change management process using Change Requests and workflow

SCM Auditing and Reporting • Define and generate measures and configuration status audits using reports and graphs

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

21


Nohau Training Courses

Reviewing C Code

Course: Reviewing C Code Days: 2

The course demonstrates important aspects of code reviews

Feedback into the process

with a focus on reviewing code written in the C language. The

• Correcting faults.

course is divided into chapters, each with a particular focus.

• Using statistics.

The topics of the course are as follows: Motivations for code reviews: The whys and whats. • Detection of bugs. • Knowledge buildup.

Organizing a review team • Personality types. • Different views – different experiences. How to mix a team.

• Optimization of processes – feedback.

Typical problems in C code

• Quality awareness.

Focused reviews

Types of code reviews, different levels of formality • The least formal: Code reading at the coffee table. • Prepared code reviews. • Formal roles in reviews. • Prepared code review with reading.

Data gathering • Remark levels. • Error classes.

• Types of focused reviews: Memory, performance, particular error types. • Organizing a focused review.

Tools • Lint and similar tools. • Compilers. • The C preprocessor.

Coding guidelines

• Code review protocols.

• Overview of coding guidelines.

• Handling of code review protocols.

• The MISRA coding standard.

• De-personalizing results.

• Safe C subsets.

• Statistics.

A review meeting • The role of the meeting organizer. • Leading a review meeting. • Attitudes. • Scheduling and planning review meetings.

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

22


Nohau Training Courses

SilkPerformer: BDL Scripting Techniques Available as instructor led or on-line training.

Course: SilkPerformer: BDL Scripting Techniques

Day(s): web

Take BDL scripting skills to the next level.

• Anyone involved with the management and versioning of files, change requests, requirements or tasks.

Goal As a Software Quality Optimization engineer you must ensure

Previous Knowledge

that your scripts trap known errors to be able to have the

• Three or more months experience with SilkPerformer

root-cause information at your fingertips;

• Familiarity with script randomization

• Implement the necessary content verification to ensure

• Experience in defining custom functions

the functionality of the application under high load

• Three or more months experience with SilkPerformer

conditions;

• Basic knowledge related to verification and parsing

• Properly design data driven and page driven load tests; • Share data across agent machines;

functions • Familiarity with include

• And manage dynamic forms and file uploads.

Participants • Software Quality Optimization Performance engineers who need to enhance their SilkPerformer BDL scripting skills to maximize the effectiveness and accuracy of their load test projects.

Content

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

23


Nohau Training Courses

SilkPerformer: Modeling & Implementing Load Tests

Course: Modeling & Implementing Load Tests

A comprehensive examination of load testing methodology

Day(s): 4 Previous Knowledge • Familiarity with a Windows Environment

with SilkPerformer.

• Ability to navigate in an Internet or intranet environment

Goal Define, create, execute, and explore all six workload models. Create a test plan, configure and record a test script, randomize data to create realistic loads, modularize code through functions and transactions, and establish and confirm a baseline.

• Familiarity with scripting or structured programming • Knowledge about basic concepts related to load testing, Web architecture and protocols • Experience testing Web applications (manually)

Tools

At the end of this session, you’ll be able to successfully utilize

Theory/Practice: 40% theory and 60% practice.

the TrueLog Explorer to troubleshoot scripts and use the Performance Explorer and Results Repository to analyze results.

Participants QA project leaders, testers, and engineers who need to develop a working knowledge of a load testing methodology and SilkPerformer.

Content • Implement Internet load testing methodology steps • Identify components of an Internet infrastructure

• Randomise data to create realistic loads • Modularise code through functions and transactions

• Create a test plan

• Create profiles to vary connection speeds and browser types

• Configure and record a test script

• Establish and confirm a Baseline

• Compile and try script

• Explain and execute all six workload models

• Utilise the TrueLog Explorer to troubleshoot scripts

• Monitor agents to ensure a valid test

• Use the Performance Explorer and Results Repository to explore results • Interpret basic load test results

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

24


Nohau Training Courses

SilkPerformer: Results Analysis & Correlation

Course: SilkPerformer: Results Analysis & Correlation Valuable instruction for those who want to improve their skill-set in load test results analysis and interpretation. Goal Leverage Performance Explorer’s functionality to your load testing advantage. Identify reliability and functionality risks. Interpret quantified data types. Analyze workload model results and pinpoint bottlenecks that

Day(s): 4

Comprehensive Certification Exam, a user will be recognized as a Performance Test Management Expert (STME).

Participants QA project leaders, testers and engineers who need to build or improve their skills related to load test results analysis and interpretation.

Previous Knowledge

can hamper your system infrastructure.

Successful completion of the Modeling & Implementing Load

Don’t miss this excellent opportunity to master your use of

rience).

the Performance Explorer and the Server Analysis modules. Note: The Results Analysis & Correlation course includes a

Test course (or 3+ months SilkPerformer working expe-

Knowledge of basic concepts related to statistics.

Level 3 competency test at its completion.

Tools

Upon successful completion of 3 competency tests and a

Theory/Practice: 40% theory and 60% practice

Content • Master the use of Performance Explorer and the Server Analysis Module

• Combine and correlate client side measures for effective results interpretation

• Determine if the workload and bandwidth requirements were met

• Remerge and interpret data from load tests using distributed agents

• Create custom reports using the Overview Report

• Combine and correlate server side measures for monitoring , graphing and reporting

• Apply the concepts of range and standard deviation to analyze the average

• Identify possible bottlenecks and performance issues of an e-business infrastructure.

• Use the Candles with Sticks series type to confirm the consistency of the average

• Determine the root cause of a server failure during load test executions

• Validate the test results before engaging in an in-depth analysis

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

25


Nohau Training Courses

SilkPerformer: Testing SAP Applications

Course: SilkPerformer: Testing SAP Applications Day(s): 2 weeks online

2 weeks Online training (approximately 30 hours of self-study

Previous Knowledge

content to be completed at student’s own pace, within allotted

• Awareness of functional testing and load testing concepts

timescale.)

• Experience using SilkPerformer for web and/or client-

A comprehensive examination of SilkPerformer’s ability to test and monitor SAP applications and infrastructures.

server testing • Expertise with SilkPerformer’s BDL scripting language • The ability to manage BDL verification and parsing

Goal This online course will help students to build the skills to execute and monitor quality assurance tests against SAP infrastructures. Using SilkPerformer, this course will focus on properly configuring the test environment, recording and plyaing back

functions • Experience using the parameter wizard and implementing project attributes • Familiarity with SAP environments and the SAPGUI Client

scripts through the SAPGUI Client API and monitoring the

Tools

infrastructure.

The course includes a large number of audio-visual compo-

In addition, this course will also review the integration of SAP based SilkPerformer projects with SilkCentral Test Manager and SAP eCATT.

nents demonstrating processes and procedures. In order to complete the hands-on exercises, course students must have access to a SAP infrastructure. SAP offers the ‘Mini Web Application Server 6.20 ABAP

Participants

Engine’ that can be purchased for a nominal fee from www.

QA project leaders, testers and engineers who need to develop

sap.com/shop by clicking on the ‘SAP Knowledge Shop’ link.

their SilkPerformer skills to test and monitor SAP systems.

This application can be installed on a desktop and will suffice the course requirements.

Content • Determine if the SAP client-server requirements are in place for testing with SilkPerformer • Configure SilkPerformer for SAP based testing

tests • Customize a script to properly handle system logons, user login information and timer names

• Record and playback SAP based scripts

• Prepare a SAP project for reuse in SCTM and SCPM

• Leverage the TrueLog Explorer to customize user data and add verifications

• Leverage the integration of SilkPerformer and SAP eCATT

• Define and execute functional tests and load

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

26


Nohau Training Courses

SilkTest: Testing Dynamic Application Available as instructor led or on-line training.

Course: SilkTest: Testing Dynamic Application

Day(s): web

A crash course in achieving reliable object recognition. Exa-

Previous Knowledge

mine the fundamentals of object recognition.

To succeed in this course, students must have:

See how SilkTest works with the Windows operation system. Practice object recognition strategies. Learn how to customize object tags and get the skills needed to achieve consistent object recognition in a dynamic environment.

Goal

• Successfully completed the Verification Testing with SilkTest course • Experience of testing Web or client-server applications with SilkTest • Experience with structured programming languages • Proficiency with 4Test functions and constructs

Students will leave this course with the ability to leverage the

Tools

Class, Identifier and Tag relationship, create fully qualified

Theory/Practice: 30% theory and 70% practice

tags and test reliably dynamic applications.

Participants

Course Material: We use course material in English from Borland.

Experienced SilkTest testers and engineers who are ready to take their SilkTest skills to the next level.

Content • Leverage the Class, Identifier and Tag relationship • Examine application objects • Create Fully Qualified Tags • Develop tag strategies for use with recorders and in scripts • Test dynamic applications and their objects • Write function tags

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

27


Nohau Training Courses

SilkTest: Verification Testing

Course: SilkTest: Verification Testing

Day(s): 3

A great introduction to the true power of SilkTest designed

Participants

for those who want to take their verification testing capabili-

QA project leaders and testers, analysts, engineers and super-

ties to a higher level.

visors who need to develop a working knowledge of Borland’s testing methodology and want to capitalize on the benefits of

Goal

utilizing the 4Test scripting language in their tests.

Learn how to organize and manage your verification tests using the test planning tool. Use SilkTest recorders to transi-

Previous Knowledge

tion from manual to automatic testing.

• Navigate a GUI environment

Utilize SilkTest’s 4Test scripting language for verification

• Use a web browser

testing and enhance your test case functionality using bran-

• Test web or GUI applications (manually)

ching and looping statements.

• Use structured programming and scripting techniques.

In just four days, you’ll be able to plan and validate tests against your application and report your test results to upper management.

Content SilkTest and the Testing Process

Application Verification

Beyond the Recorder

• The SilkTest Architecture

• Multiple Property Verification

• The Scripting Process

• The Testing Process

• Testcase Failure

• Autocomplete

• Linking Tests to the TestPlan

• Adding Information to the Results File

• Alternate Verification Techniques

• Error Trapping

Projects and Plans • SilkTest Projects

• Data Types and Variables

• Creating TestPlans

Creating a Project

• Using Attributes in TestPlans

• Starting a New SilkTest Project

• Creating a Master Plan

• Capturing Window Declarations

Capturing the Application

• BaseState and User Defined BaseState Method

Looping and Branching

• Using Invoke Methods

• Branching

• SilkTest Object Recognition • The Basic WorkFlow Bar

• Concatenation and List Structures • Using Records

• Looping

• Capturing State of an Application • Capturing Window Declarations

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

28


Nohau Training Courses

SilkTest: Verification Testing Advanced

Course: SilkTest: Verification Testing Advanced

Day(s): 3

For the serious SilkTest user who needs to tackle the object-

Participants

oriented benefits of the 4Test language.

QA developers and project leaders who want to maximize their automated testing abilities.

Goal In this course, you’ll receive step-by-step instruction on how

Previous Knowledge • Experience with all standard SilkTest functionality cove-

to:

red within the Verification

• declare new window classes;

• Testing with SilkTest course

• store test data within object declarations;

• Ability to build a SilkTest frame including Windows De-

• write new methods and verification properties;

clarations, Application States and Invoke Methods

• test non-standard (custom) objects;

• Ability to manage test case logic flow through looping

• develop an API for supporting custom objects;

and branching constructs

• access unseen objects using low-level events; • and test Java and Visual Basic objects.

Ability to create 4Test functions that take arguments and return values

Attend this course to maximize your use of the 4Test language within four days.

Content Introduction

Introduction to Custom Objects

• Advanced Object Oriented 4Test

• Supporting Custom Objects

• Reviewing Fundamental Features

Defining a Custom Test API

Object-Oriented Techniques

• Determining When to Define a Custom Class

• Storing Common Routines as Methods

• Adding Properties to a Custom API

• Storing Data as Data Members

• Defining an API at the Object Level

Applying Object-Oriented Techniques to Classes

Evaluating Available Resources

• Creating Methods for Classes • Redefining Built-In Methods

• Understanding the Custom Object

Developing the Test API

• Adding Properties

• Strategies for SubClasses of Standard Objects

• Redundant Declarations

• Strategies for Non- Standard Custom Objects • Graphical Custom Objects

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

29


Nohau Training Courses

Software Architecture for Embedded Systems The embedded systems are constantly growing bigger and becoming more complex while the development cycles are getting shorter and shorter. We just cannot do everything all over again for each project anymore. This 2-days course create individual awarness and reflection.

A training course cooperation between Combitech and Nohau

Course: Software Architecture for Embedded Systems Days: 2

To stay on top on a tougher market, you need to present new

This training course will not present “the ultimate solution”

or improved systems ahead of your competitors.

but rather create individual awareness and reflection.

The embedded systems are constantly growing bigger and

Participants

becoming more complex while the development cycles are getting shorter and shorter. We just cannot do everything all over again for each project anymore.

This training course is designed to suit project managers, product managers, system designers and system architects as well as software designers.

Software architecture has received great attention lately, and the importance of it to succeed with the development of modern systems is becoming clear, i e to support maintenance,

Previous knowledge You have previous experience of system design and modeling

extension, portation and reuse.

of SW in embedded systems.

Most of todays system have some kind of architecture, but

Practical exercises / Tools

very few work actively on defining the systems architecture.

Several exercises during this course. No tools are used.

Goal To get objectives for the concept of and the characteristics ruling SW architecture and some of the architectural ways that can be used in connection to embedded systems development.

Content Introduction • To understand the concept of SW architecture is of utmost importance when it comes to how and where to implement an architecture in your system.

Software architecture • Building a software architecture can roughly be described as breaking the system down into components, and • define their mutual relations as well as,

Terminology • During this training course we will take a good look at the theories and terminology, explain and place them into context.

• defining the principals and rules for the construction and development of connections and components over time. • SW architecture could give us a new vocabulary to describe our systems. This course will present some of it.

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

30


Nohau Training Courses

Software Architecture for small Real-time Embedded Systems

A training course cooperation between Combitech and Nohau

Course: Software Architecture - for Small Real-time Embedded Systems Days: 2

Focus is set upon the architecture in the design process. The global competition leads to the introduction of more efficient software development techniques. Embedded systems are expected to be reliable, simple to maintain and extend as well as providing short development cycles. Software product families are created from common software

Relationship between requirements and architecture • How is the architecture created from the product requirements? • Which requirements have the greatest impact? This course describes functional requirements and quality requirements and how they are used to form the architecture.

components and platforms. Software architecture is therefore an important measure to use in order to sustain these demands.

Who is this course aimed at? This course is aimed at system designers/system architects and software developers.

Approaches to describe and document architecture • How should the architecture be documented? • Which documents should be created? • What should be included in the description of an architecture? Using design pattern is a way to document parts of the archi-

Pre-knowledge

tecture and UML is a language that can be used to describe

You should have basic knowledge about real-time systems.

the architecture, which the course proves.

Goals of the course

Review of some useful patterns

The goal with this course is to set focus on architectural deci-

Design patterns provide standard solutions for design pro-

sions during the design phase of a system.

blems within the software development area.

We also create a common conceptual view for the design and

During the course we will provide some examples of design

architecture of a real-time system.

patterns that can be used to solve architectural problems for small real-time system.

Description Higher demands from the markets do not just affect larger

Concepts from real-time programming

system like telephone switches and aircraft control systems,

This course describes common concepts from the real-time

but they also affect smaller system based on, for example,

programming world, like ‘concurrency’, ‘interrupt’ and ‘synch-

8-bits microcontrollers.

ronization’.

We will describe how requirements, both functional and

These concepts are important to keep in mind when forming

none-functional, affects the choice of architecture and how an

the architecture for a real-time system, which means that

architecture can be described, both textually and graphically.

thorough knowledge regarding them is required.

We show how design patterns can solve general problems and

Example of architecture in different real-world products

we also evaluate the architecture for a few various products.

The course provides a few examples of architecture from

A definition of architecture for real-time system

some existing small real-time system.

Software architecture is a concept with many different but

The section describes issues such as which requirement are

similar definitions.

important for the architecture and how well the architecture

During the course, we will provide you with the definition of

realizes these requirements.

software architecture for small real-time system that corresponds to the commonly known definition for architecture.

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

31


Nohau Training Courses

Exercises

Course literature

The course contains a larger exercise containing a product

”Design and Use of Software Architectures” by Jan Bosch

description, where the participants shall identify architecture driven requirements, create architecture, evaluate the requi-

Course material

rements against it and apply design patterns to transform and

All participants obtain a binder that contains the presentation

improve the architecture.

material as well as the examples and templates that are used

A number of smaller exercises are also included, where the participants practice on specific problems.

during the course. All material is also provided in digital form in order for the participants to easily adapt their new knowledge in the every-

Course directions

day work.

The course is based upon a well-balanced blend of theory, followed by the appropriate exercises. How is knowledge mediated in a way so that context and patterns in a system become clear, instead of appearing as fragmented details and subsystem? In our world all theory must be translated to the daily work. Our educators come directly from the field providing deep and practical knowledge regarding the subject they teach.

Content • Definition of architecture for real-time system • Relationship between requirements and architecture • Approaches to describe and document the architecture • Review of some useful architecture patterns • Concepts from real-time programming • Example of architecture from different realworld products • Exercise

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

32


Nohau Training Courses

Software Reengineering - Workshop

Workshop: Software Architecture Discovery / Reconstruction

Day(s): 3

This workshop is 2 or 3 days, depending on code size, on

Your workshop leader

architecture reconstruction of an existing software system.

Miguel Miranda, senior software engineer, is your workshop

The workshop can actually last a whole week in case of a big code base or multiple projects.

leader. Since April 2006, he has supplied professional services for Klocwork in Europe. - This workshop is unique and much appreciated. I have

Participants

been all over Europe at big companies like Siemens, ABB,

The workshop is aimed for software architects or domain

Motorola and Intel, and this is actually my experience using

experts

Klocwork in a variety of projects, says Miguel.

Goal At the end of the workshop the software team will have a blueprint of the current architecture and a recommended list of actions for further improvements.

Content Activities in the workshop • Components discovery using a static analysis tool (it doesn’t have to be Klocwork). • Identification of component/module interfaces. • Software architecture assessment (defects, metrics).

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

33


Nohau Training Courses

StarTeam Advanced: Server Administration

Course: StarTeam Advanced: Server Administration Day(s): 1

StarTeam Advanced: Server Administration introduces the

In addition, you will learn how to set up the StarTeam multi-

configuration manager to the advanced skills of configuring a

casting facility, MPX, and how to customize the StarTeam

StarTeam server environment.

data schema.

A one-day, tools-oriented course, StarTeam Advanced: Server

Goal

Administration provides hands-on, advanced training for users responsible for managing a StarTeam product installation. The focus is on configuration options, repository reliability, and security strategies and you will practice configuring new StarTeam installations, upgrading existing ones, and managing repository growth. During this course, you will learn the essential components in

You will learn how to install and upgrade StarTeam and how to create team members and administrate their authority.

Participants Anyone responsible for administering StarTeam projects, anyone involved in the maintenance and customization of StarTeam software installations.

the StarTeam product architecture and their basic adminis-

Previous knowledge

trative management methods and techniques.

StarTeam Essentials.

You will also learn how to define a reliable backup and recovery procedure and how to configure primary and secondary repository security strategies.

Practical exercises / Tools All concepts are taught through a combination of instructorled discussion and self-paced exercises.

Content StarTeam Architecture

Backup and Restore

Security

• System architecture

• Database maintenance

• Determining Access Rights

• Connection methods

• Repository configuration files

• Security Levels

System Recommendations

• Using Groups to Manage Privileges

• Recommended hardware and software platforms

Other Server Settings

• Connectivity options

• Remote administration

• Using Custom Fields

Server Configuration

User Manager

• Server installation

• Using Users and Groups

StarTeam® MPX Server

• Client installation

• Granting Privileges

• Configure the StarTeam server

• System policies

Field Customization • Defining Custom Fields

• Installing the MPX Server • Configuring the MPX Server

Creating Projects

Repository structure

• Setting up New Projects

• Identity space considerations

• Identifying Working Directories

• Understand location options

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

34


Nohau Training Courses

StarTeam Essentials A one-day, tools-oriented course, StarTeam Essentials is for anyone getting started with StarTeam or anyone needing to refresh skills and knowledge of StarTeam.

Course: StarTeam Essentials Day(s): 1 • Understand the StarTeam project structure and be able

StarTeam Essentials introduces the basics of managing

to navigate StarTeam projects

software configuration with StarTeam; the necessary skills to easily and safely version files, manage change requests, and

• Be able to access and update Configuration Items

actively collaborate with coworkers through requirements,

• Be able to customize the way StarTeam displays item

tasks and discussion threads related to development.

data

Goal

• Know how to access previous CI revisions

The focus is on using StarTeam in the context of daily deve-

• Be able to participate in Change Management processes

lopment activities, ranging from managing files to satisfying

• Communicate with other team members using Topics

new product requirements to resolving reported software defects.

Participants

Throughout the course, you will use the StarTeam interface

ment and versioning of files, change requests, requirements or

to accomplish these tasks and learn how to integrate this into your existing development processes.

New users of StarTeam, anyone involved with the managetasks.

Previous knowledge

Upon completing this course, you will: • Understand the problems Configuration Management

No special requirements for previous knowledge.

solves, CM purpose, CM roles, StarTeam benefits and

Practical exercises / Tools

StarTeam architecture (client, server)

All concepts are taught through a combination of instructorled discussion and self-paced exercises.

Content Welcome and Introduction • Configuration Management and StarTeam

Identifying and Accessing Item Revisions

Navigating StarTeam Projects

• Access and work with individual item revisions, including;

• Open and explore StarTeam projects and views

Working with Files • Access files, add new files, and update existing files, including; • related tasks, such as creating links to Change Requests or • attaching a revision label

Customizing StarTeam Display • Customizing the way item data are displayed in the view window

• checking/opening a specific file revision,

Change Requests Using Topics • Communicating with other team members Course Wrap-Up • This module summarizes the acquired skills and suggests the next steps.

• accessing item revisions by revision number, • date, • label, • promotion state

Participating in a Change Management Process • StarTeam-specific skills required to participate in a Change Management process, including creating and updating

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

35


Nohau Training Courses

Test Driven Development Test-driven development (TDD) is a State-of-the-art method that enables fast, correct and simple software development.

Course: Test Driven Development Day(s): 2

Project teams using TDD has been able to show up to 90%

TDD is suitable for all enterprises, whether they be small,

fewer malfunctions and software bugs visible to customers

medium or large.

and has also shown development time reduction of up to 75%

TDD applies to any development language.

compared to equivalent projects not using TDD. You will learn how to avoid the most common beginner mistakes when introducing TDD in your development process. The course uses workshops wherein the necessary parts are covered theoretically and practically.

Previous knowledge You should have basic knowledge of at least one development language although the language is of less importance since we mainly focus on the central principles of TDD rather than how to use TDD within a specific language or framework.

Goal You acquire understanding of, among other things, how to use TDD to quickly learn new environments and API’s as well as not to lose sight of the development goals in your project. You will learn to master refactoring and maintenance of your code. You will also learn how to handle change requests late

Practical exercises / Tools The first exercises are done using, the relatively unknown language, Python in order to show the principles and fast learning rate using TDD. Then we shift development language and together work our

in a development process in a secure and structured way.

way through a staged project.

Using TDD gives you a very high-qualitative and structured

For realism in this exercise we will use a third-party binary

software development process.

code containing bugs, bugs added by you and a project team

This allows you and your project members to feel secure and

minds.

assured in your work. Your clients will also benefit from this due to the high delivery and product accuracy.

with diversified pre-knowledge and customers changing their

You will also be introduced to software that automates part of the software development process.

Participants If you are working as a software developer today or have done so in the past or if you are a Project Manager and you wish to

Language The course will be given in Swedish.

have a firmer grasp of TDD then this course is for you.

Content • Background, theories about TDD and common Agile (mobile processes)

• How does one change its developing environment?

• What Test Driven Development is not, where does one go wrong?

• How does one maintains its test case? • Practical exercises

• Incitement for project managers and individual programmers. • What can be tested automatic, what can not bee tested by automatic?

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

36


Nohau Training Courses

Test i Praktiken

Ett kurssamarbete mellan Combitech och Nohau

Erfarenhetsbaserad mjukvarutest av komplexa system. Kursen ges på svenska. The course is given in Swedish.

Kurs: Test i praktiken

Dag(ar): 3

Vilken roll har test?

Design av testfall

Målet med kursen är att ge deltagarna tillräckliga kunska-

Identifiering av testfall som testar alla kraven är en självklar-

per för att kunna delta i projekt där moderna testtekniker

het i teorin.

används.

I praktiken finns inte tiden för att testa ”allt”. Hur reducerar

Kursen visar hur test förhåller sig till andra metoder för att

vi testfallen till ett minimum men att vi fortfarande kan visa

förbättra en produkt och hur de aktiviteter som ingår i test

att vi har testtäckning?

förhåller sig till varandra.

Teori och praktikfall knyts samman Ett metodiskt sätt att planera och bedriva testverksamhet beskrivs. Kursen innehåller även många diskussioner och praktiska övningar i att ta fram testfall med olika metoder.

Påverkar test utvecklingsarbetet? Vi kommer att bekanta oss med olika utvecklingsstrategier

• Vilka tekniker finns för att reducera antalet testfall med bibehållen testtäckning? • Vad mera ska testas när vi har verifierat alla krav? Vi tar fram en testspecifikation utifrån en mall ochger exempel på vad man förväntar sig att hitta i en testspecifikation.

Genomförande av test Att exekvera testfall på ett felfritt system är enkelt men vad händer när man inte får förväntat resultat?

och hur de påverkar testerna.

Hur utreder man incidenter?

Vi undersöker också vad som gäller för motsatsen: påverkar

Hur ska fel rapporteras?

test utvecklingsarbetet? För att skapa en förståelse för hur

Vi tar fram en testrapport utifrån en mall och gerexempel på

det fungerar sätter vi test i ett längre perspektiv.

Planering av test Resultatet av all testplanering ska finnas dokumenterat i en testplan.

vad man förväntar sig att hitta i en testrapport.

Metoder för att rapportera fel och verifiering av rättade fel Syftet med felrapporter är att teckna ner scenariet som leder

Beroende på projektets storlek och omfattningen av test kom-

fram till ett icke förväntat resultat av ett eller flera testfall.

mer planen att delas upp i testnivåer.

Felrapporten ska vara så utformad att utvecklarna kan åter-

• Vad ska finnas med i en testplan och vilka är mottagarna av den? • Hur påverkar standarder test och påverkar testplanen

skapa felet och kunna påbörja felrättningen. Vid verifiering av ett rättat fel ska information om t ex påverkade delar i systemet finnas med.

övriga delar av projektet? Vi tar fram en testplan utifrån en mall och ger exempel på vad man förväntar sig att hitta i en testplan.

Workshop Kursen beskriver teoretiskt hur effektiv test ska bedrivas. För att ytterligare belysa de teoretiska delarna kommer ett delsystem att genomgå en testrunda.

Hjälpmedel för test På marknaden finns idag ett antal testverktyg. Vi presenterar ett axplock och vad de är tänkta att underlätta test med samt vad man ska tänka på vid införandet av testverktyg.

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

37


Nohau Training Courses

Kursupplägg

Kurslitteratur

Hur förmedlar man kunskap så att sammanhang och mönster

Kursen bygger mycket på kursledarnas erfarenhetermen refe-

blir tydliga istället för lösryckta detaljer och delsystem?

renser görs även till litteratur vilken skickas

Våra utbildare kommer direkt från fältet med aktuella kun-

Kursmaterial

skaper och en djup praktisk förankring. I vår värld måste alla teorier kunna omsättas i det dagliga ar-

Alla deltagare får en kurspärm med allt presentationsmaterial, exempel och mallar som används under kursen.

betet. Just växlingen mellan teori och praktik är en grundsten för våra kurser.

Förkunskaper Inga formella förkunskaper krävs, men du förväntas ha tillräcklig erfarenhet för att se utmaningarna med test.

Innehåll • Grunder i modern test • Planering av test • Testplan mall • Design av testfall • Testspecifikation mall • Genomförande av test • Testrapport mall • Metoder för felrapportering och verifiering av rättade fel • Workshop • Hjälpmedel för test

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

38


Nohau Training Courses

Unit Test with Cantata++ for C

Course: Unit Test with Cantata++ for C

This one-day course contains several presentations with seve-

Day(s): 1 • Applying coverage analysis to tests not driven by Cantata++.

ral practical examples. We start with a course introduction and an overview of Cantata++. You will gain a general insight in what Cantata++ do, the testing process and how Cantata++ works. We continue with an introduction to Dynamic Unit testing and the Cantata++ test harness. We address issues like:

• Analysing coverage results with HTML Results Viewer (HRV). • Combining coverage results over multiple test runs. • Analysing combined coverage results with HRV. Also, we address the Static Analysis, its metrics and their uses. For graphics production we are using Cantata++ Ana-

• Test script structure

lyse. We introduce you to Advanced Stubbing Techniques,

• User interface wizards and options

with:

• Check directives

• Stubbing function pointers

• Stubbing

• Stubbing macros

• Executing tests and checking results

Participants

Goal

This course is designed to suit users of Cantata++ for C.

You will obtain knowledge about Coverage Analysis where we show you how to add coverage analysis to a test script. We also look into coverage analysis metrics and configuring coverage criteria in rulesets.

Previous knowledge You should have basic knowledge of C programming.

Exercises / Tools

You learn about Dynamic Integration Testing, where you ob-

You will work with several practical examples during the

tain knowledge about wrapping. Also, we compare wrapping

training. We are setting up a test project environment and

and stubbing, and present wrapping for dynamic integration

Isolation testing a C maths() function.

testing.

We are achieving coverage ruleset criteria, trying Integration

We will look into Advanced Coverage Analysis and Standalone Coverage Analysis with Cantata++, and how to combine coverage results:

Testing, and combining coverage analysis. Also, we will have exercises in function pointers as parameters to stubs and stubbing function pointers.

Content • Introduction

• Static Analysis

• Dynamic Unit Testing

• Advanced Stubbing

• Coverage Analysis • Dynamic Integration Testing • Advanced Coverage Analysis

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

39


Nohau Training Courses

Unit Test with Cantata++ for C++

Course: Unit Test with Cantata++ for C++

Day(s): 1

This one-day course contains several presentations with seve-

Coverage Analysis where we are talking about Stand-alone

ral practical examples.

Coverage Analysis with Cantata++ and combining coverage

We start with a course introduction and an overview of Can-

results: • Applying coverage analysis to tests not driven by Can-

tata++. You will gain a general insight in what Cantata++ do,

tata++.

the testing process and how Cantata++ works. We continue with an introduction to Dynamic Unit testing and

• Analysing coverage results with Cantata++ Studio.

the Cantata++ test harness. We address issues like:

• Combining coverage results over multiple test runs. • Analysing combined coverage results with Cantata++

• Test script structure

Studio.

• Test Driver wizards and options • Exceptions and Stubbing

We also address the Static Analysis and its metrics and

• Executing tests and checking results.

their uses, and we are using Cantata++ Analyse for graphics production.

Goal You will obtain knowledge about Coverage Analysis where we show you how to add coverage analysis to a test script. We also look into coverage analysis metrics and configuring

Participants This course is designed to suit users of Cantata++ for C++.

coverage criteria in RuleSets.

Previous knowledge

We present White Box Testing and how you accessing private

You should have basic knowledge of C++ programming.

data / methods. We compare Black-Box and White-Box testing techniques for C++ and adding Statement coverage criteria to a test script.

Exercises / Tools You will work with several practical examples during the training. We are setting up a test project environment and iso-

Via the presentation of Integration Testing you obtain know-

lation testing a C++ List class. We are achieving Entry-Point

ledge about wrapping with Cantata++, comparing wrapping

coverage criteria, adding White Box tests and there adding

and stubbing, wrapping for integration testing and adding

Statement coverage analysis to the List class test.

Decision Coverage criteria to a test script.

Also, we adding Decision Coverage to the List class test and

In Call Sequence Testing we look into the uses of call se-

simulating hardware errors, adding call sequence verification

quence verification with Cantata++. We also learn Advanced

and learn how to combine coverage analysis.

Content • Introduction

• Call Sequence Testing

• Dynamic Unit Testing

• Advanced Coverage Analysis

• Coverage Analysis

• Static Analysis

• White Box Testing • Integration Testing

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

40


Nohau Training Courses

Embedded Development and Debugging

Nohau Solutions AB, Box 1030, SE-212 10 Malmรถ, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

41


Nohau Training Courses

Android Application Development Introduction

Course: Android Application Development Introduction Course leader

Day(s): 2

• USB memory

Patrik Lindergren

• Execise examples

Patrik Lindergren is one of the leading Embedded Linux spe-

• Software License agreements

cialists in the Nordic Region. He has been working with Linux

• Images

over 12 years. During the past year Patrik has been working

• Source code

with developing Board Support Packages and device drivers

• Android examples

for Linux and Open/NetBSD. He has also been working with implementing extersions to PC BIOS like AMI and embedded

• Reference book: Professional Android Application Deve-

bootloaders like U-Boot and PMON2000.

lopment by Reto Meier

Coursematerial • Course Binder

During the course excises are done in areas like installing

• Copies of all slides

Android SDK, installing Eclipse plugin, developing sample

• Appendix

applications.

• Extra materials

Content Android

Android

• Overview over Android

• The register-based virtual machine

• Android history

• Anatomy of an Android Application

• Development Tools

• Android Application Model

Installing Android • Installing the Android SDK

Eclipse • Introduction to Eclipse • Installing the Android plugin to Eclipse • Using Eclipse for developing Android applications

• Life Cycle of an Android Application • Android Building Blocks

Developing applications in Java for Android • Implementing a User Interface • User Interface layout in XML format • Storing, Retrieving and Exposing Data

• Creating an Android Project

• Security and Permissions in Android

• Running and Debugging an Application

• Resources and Internationalization

• Developing on Device Hardware

• Signing and Publishing Your Applications

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

42


Nohau Training Courses

Basic Regulatory Training for Design Engineers

Course: Basic Regulatory Training for Design Engineers

Day(s): 1

Design of medical devices is regulated by law in e.g. the US

Audience

and the EU.

Engineers working on the design of medical devices.

This training course aims to give a basic understanding of what these requirements mean for engineers in design projects.

Course Goal After completing the training, you will know the fundamentals of what safety standards need to be followed, what design procedures (planning, specification, implementation, review, testing, etc) should be used and what documentation needs to be in place. You will also learn where to find more information and how to complete applications such as a 510(k). Participants will also learn about finding information, and filling in applications such as a 510(k).

Content • Regulatory framework EU / US

• Harmonised standards / concensus standards

• Medical Device Directive

• Technical File / Design History File

• Quality System Regulation

• CE marking

• Intended use

• 510(k) application

• Device classification

• Documentation, especially of software

• Risk management • Design controls and document controls

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

43


Nohau Training Courses

C Programming for Embedded Systems, part I This is a complete introduction course that gives you a kick-start!

Course: C Programming for Embedded Systems, part I Days: 2

C is still the most common language for programming micro-

Previous knowledge

processors. We offer you a complete introduction course that

To gain the most from this seminar, you must be familiar with

gives you a kick-start!

programming in one language or the other, but not necessarily C. Maybe you have old knowledge in C that you need to

This is mainly a hands-on seminar.

freshen up?

Goal You will learn about datatypes, functions, operators, and expressions. We also talk about standard libraries and programstructuring. You will gain enough knowledge to start programming yourself, you will have a good platform to start

Practical exercises / Tools This class has many exercises included, showing the advantages of programming in C for microcomputers. Each theoretical part is followed by a practical exercise. We perform the exercises on a PC under teacher’s supervi-

for developing in C.

sion.

Participants We have had developers of embedded systems with no or little prior knowledge of C in our minds as participants, when we created this seminar.

We use an integrated Windows environment. You will edit, compile and link you code via a compiler from IAR, and a Lauterbach emulator connected to a MSC12 T-board.

Content Introduction

Variables

Library

• The origin of C and what is has meant for development

• Initiatings, vectors and indexing

• An overview of standard functions and libraries

C orientation

• Overview of arithmetic, shift, comparisons, bit, logical operators, terms and allocations.

• Overview of the advantages and downsides of C

Standard C (ANSI) • The meaning of the standard and portability

Structures • How the language is built and included parts

Datatypes • Overview of deklarations, integer types, etc.

Constants • Number constants, character constants, strings and constants in strings.

Operators

• Practical exercises with input and output, file handling and strings.

Bit handling • Shift and operator applications.

Functions • Declaration of functions, definitions and calls with parameters. • Pointers as parameters.

Selfdefined data types • Structures and type declarations

Pointers • An orientation on pointers and the use of such

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

44


Nohau Training Courses

C Programming for Embedded Systems, part II This is mainly a hands-on training course and the many exercises will take you a large step forward in your C-programming.

Course: C Programming for Embedded Systems, part II

Days: 3

This training course is the second in our series of C-program-

Previous knowledge

ming courses.

You need to have basic knowledge in C programming, cor-

You will learn more about the advanced possibilities and structures available in the language C.

responding to our course C programming for embedded systems, part I.

It is mainly a hands-on training course and the many exercises

Practical exercises / Tools

will take you a large step forward in your C-programming.

This course have many exercises following up the theory part of the training.

Goal Our aim with this training course is to give you the necessary, deeper knowledge in C programming that you need. You will learn valuable tricks and ways to make time saving construc-

We use an integrated Windows environment. You will edit, compile and link you code via a compiler from IAR, and a Lauterbach emulator connected to a MSC12 T-board.

tions in you development process.

Participants This training course is designed to suit developers and programmers of embedded systems with some experience in programming. You probably wish to deepen your C programming knowledge.

Content Introduction

Self defined data types

Hardware

• What C language has meant and future possibilities, i.e. C++

• Definitions and differences versus the use of macros.

• How to write in C towards a special HW

Short retrospect (part I)

Using pointers

• Special C language-phrases / words

• Thorough review regarding the use of pointers, and their advantages.

• We create libraries with functions and use them in practice.

Portable code • What to keep in mind with writing code possible to reuse in other projects.

Advanced structures • Compound data types and references with pointers and links. • Dynamic memory management in combination with structures

Function pointers • Functions calls via function pointers • Abstract data types • Examples of implementation of an abstract data type and its use

Library

Optimising • How does optimising affect the program?

Error handling • How to avoid errors and program crashes.

Assembler and C • How is a call from C to Assembler done

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

45


Nohau Training Courses

C Programming for Embedded Systems, part III The main part of the training is focused on the problems occurring when dealing with embedded systems programming, such as high performance, synchronising and memory requirements.

Course: C Programming for Embedded Systems, part III

Days: 2

This training course is the most advanced in our series of C-

knowledge, for those who wishes to get new fresh views on

programming courses.

the subject, and get practical ideas to be used in their own

We will take a good look at the complex parts of the C language so important when developing for embedded systems, such as function pointers, unions and bit fields.

company.

Previous knowledge You need to have good knowledge in C programming, cor-

We will also teach you methods for developing good code pos-

responding to our courses ”C programming for embedded

sible to do maintenance on, and possible to test.

systems, part I” and ”C programming for embedded systems, part II” as well as practical experience to a certain degree.

Goal What we aim for with this training course is to give you the

Practical exercises / Tools

necessary deeper knowledge in C programming that you do

This course has many exercises following up the items brought

need.

up on the theory part of the training.

You will be taught valuable tricks and ways to make time

We use a windows based integrated environment consisting of

saving constructions in you development process.

editor, C-compiler and linker from IAR (Embedded Workbench for ARM). The Programs are downloaded and run in an

Participants

ARM7TDMI-based target from Atmel (AT91EB42).

This training course is designed to suit developers and programmers of embedded systems with some experience in programming, who wishes to deepen their C programming

For debugging we use the In-Circuit Debugger from Lauterbach (Lauterbach Trace32-ICD).

Content Advanced C constructions

Generally

• More about pointers and function pointers

• Encapsulation of HW;

• Structures; • unions and bit fields • Memory requirement; • static and dynamic • Inline assembler

Performances in C • How do I write optimal code (which require little maintenance)

• writing code for several target environments

Advanced debugging and maintenance • Writing code possible to test • Logging

• Start-up codes and programs loading

• Built-in test

• Synchronising problems

• Hot-swap;

• Interrupt handling

• to write programs for on-line-update

• Semaphores and monitors • Re-entrancy • Shared data

Objectoriented C • How do you simulate C++ in C?

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

46


Nohau Training Courses

C++ Basic

Course: C++ Basic

Days: 2

During this basic training course in C++ you will learn the

Previous knowledge

methods of object oriented programming and program con-

The course requires previous experience in some function-

struction in C++.

and procedure oriented language and basic knowledge object

You will learn how to define and implement classes to produce reliable and reusable code.

orientation.

Practical exercises / Tools Several hands-on exercises covering topics on the course.

Goal After participating in this training course you will be able to write simple object oriented programs in C++ and use the language constructions to create efficient programming codes.

We use Microsoft Visual C++.

Language The course are given in Swedish.

Participants Embedded systems programmers.

Content Terminology, structures & data types

Object orientation terminology

Object

• variables

• class objects

• Create and use objects

• constants

• classes

• How to use the standard classes

• operators

• relations

• String and vector.

• type casting

• data members

• vectors

• member functions

• pointers • loops and iterations

Classes

Functions • define member functions • constructor and destructor

• define a class

Functions

• access to properties

• definition

• declare data members and member

• call and return value

• static data members and member

• declaration

• functions

• overloading and templates

• class constants

• standard arguments

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

47


Nohau Training Courses

C++ Supplementary

Course: C++ Supplementary

Days: 3

To stay on top in software development today, it is necessary

Participants

to have the ability to leverage the work of others and also to

For anyone who wants to be able to use all the C++ possibi-

avoid pitfalls.

lities and gain a deeper knowledge regarding efficient system

Applying proven idioms and patterns can greatly improve the effectiveness. You will learn how to increase productivity by comining tools, idioms, syntax and libraries, and a number of hands-on exercises will give you experience in developing high-quality C++.

Goal After participating in this training course you will have a dee-

development.

Previous knowledge The course requires basic knowledge in C++ programming, corresponding to our course ”C++ Basic”.

Practical exercises / Tools Several hands-on exercises covering topics in the course. We use Microsoft Visual C++.

per knowledge in C++ and know how to use the possibilities of the language.

Content • Introduction • Static analysis • Dynamic analysis • Review techniques • Testing techniques • Testing of object oriented code • Applicable standards • Overview of test tools

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

48


Nohau Training Courses

Develop Applications for ARM11

Course: Develop Applications for ARM11

Day(s): 1

We are now beginning to see chips based on the ARM11 core

This is to keep the best energy/performance ratio which has

meant for embedded systems.

made the ARM cores into the world leaders for embedded bat-

ARM has in version 6 of their instruction set extended it to

tery powered applications.

include the most common DSP operations as well as SIMD

Since the processor core can handle such a rich variety of

media-instructions.

media, ARM has incorporated hardware support for security

The ARM11 core can as an example handle coding and decoding of streaming video above QVGA resolution without additional video processors. The core is of course backward compatible with code compiled for ARM7 and ARM9.

applications. Typical applications would be DRM and other crypto solutions were hardware protection against evil code is needed. The course will give you an overview of these new possibilities and you will be trained in the DSP and media instructions.

Participants

Goal To be able to run the core at clock speeds of up to 1GHz, it has been equipped with a branch-prediction unit that in turn

ARM11 is the next step for projects that has outgrown the ARM9.

allows the pipeline to be extended to 8 phases.

Previous knowledge

Due to its impressive performance the ARM11 is the next step

To be able to understand the course material, you should have

for projects that has outgrown the ARM9 core.

previous knowledge of ARM assembler on ARM7 or ARM9

The ARM1176 variant has both soft- and hardware-support to measure the CPU load and can adapt both clock speed and voltage levels.

cores.

Practical exercises / Tools Exercises will be done with ARM assembler instructions as of version 5 and 6.

Content The course ARM11 builds on the basic

Branch prediction

ARM courses and focuses on the new

• New virtual memory types

extensions found in the ARM11 such as:

• performance counters

ARM v5 och v6 assembler instructions

TrustZone, Intelligent Energy Manager

• Example algorithms • FIR filter • The discrete Fourier transform

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

49


Nohau Training Courses

Develop Applications for ARM9 In recent years, RISC-processors from ARM (Advanced RISC Machines) have seen a tremendous growth in many embedded applications, providing 32-bit performance at low price and low current consumption.

Course: Develop Applications for ARM9

Day(s): 3

ARM is using an innovative award-winning business model,

Previous knowledge

where they focus on not manufacturing and delivering the

You have some working experience in programming using the

actual silicon products themselves, but rather licenses their

C language, comparable to the level in the course ”C-pro-

designs as synthesizable ”hardware code” to several different

gramming for embedded systems, part I”.

chip manufacturers.

You are not required to have experience from working in embedded systems environments, but you should be generally

Goal You will get a theoretical overview of all commercially available ARM-family members, like e.g. ARM7/9/11, XScale, Cortex and SecurCore. This is followed by a deeper description of the ARM920T variant, like e.g. registers, cache and MMU-functionality.

aware of microcontroller design and functionality (but not necessarily fro ARM).

Practical exercises / Tools About half of the course time you will be working with a number of practical exercises, designed to highlight various

We will also cover a set of selected peripheral devices, like

aspects of how to program and debug applications for embed-

e.g. interrupt controller, serial channel and timers. You will

ded ARM systems.

also get practical training in using a selected set of professional ARM development tools for e.g compiling, debugging and execution tracing.

The attendees will be working two-by-two, with continuous support from the lecturer when needed. We are using an MSWindows based integrated development environment from IAR, the ”IAR Embedded Workbench for ARM”.

Participants This course is aimed for participants who want to quickly get

The applications are downloaded, debugged and traced using

started developing high-level applications on any ARM-CPU

an In-Circuit Debugger from Lauterbach, the ”Trace32-ICD”

family member.

with ETM support, into an ARM920T-based embedded target board from Cogent, the ”CSB337”.

Content Introduction

ARM Assembler

ARM family Overview

• Overview of the ARM-family assembly instruction set and syntax.

• Overview of the different members of the ARM-family CPU cores and macro cells. • Overview of different ARM chip manufacturers and their variants.

ARM Architecture • In-depth discussion on the ARM9TDMI-core and the ARM920T macro cells. • In-depth discussion of a selected subset of peripheral devices available in the microcontroller used in the course.

• Development of start-up-code. • Handling calls between C- and Assembler, with parameter passing.

C for ARM • Overview of C do:s and don´t:s for embedded ARM systems.

• Walkthrough of the available compiler switches and directives.

Optimization Techniques • How to optimize whole or parts of an application. • Tips on what optimizations are generally useful on ARM systems.

High-level Debugging

• Discussion on extensions and exceptions from the ANSI-C standard.

• A walkthrough of the possibilities offered by an In-Circuit Debugger (ICE), compared with other commonly used approaches.

Compiling and Linking

• How to use the ARM ETM (Embedded Trace Macro cell) for in-target execution tracing.

• How to compile and link for ARM using the IAR Embedded Workbench.

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

50


Nohau Training Courses

Develop for ARM Cortex-M3 During the last decade the RISC-based processor architectures designed by ARM (Advanced RISC Machines) have reached a market leading position on the embedded market. Popular areas of applications are mobile devices, automotive and multimedia where high performance at a low cost and low power consumption is important.

Course: Develop for ARM Cortex-M3

Day(s): 2

ARM implements an innovative and price-winning business

Previous knowledge

model where the main strategy is not to manufacture chips,

You must have basic knowledge of the C programming langu-

but to license ”hardware source code” to a number of dif-

age, corresponding to our training course ”C programming

ferent silicon manufacturers.

for embedded systems, part I”.

This strategy has resulted in a large number for manufactu-

It is not required to have experience from the development of

rers of ARM-based micro controllers that target both generic

embedded systems, however, we expect that you have basic

and specialized applications. The ARM Cortex-M3 is from the

knowledge about a micro controller architecture and how it is

latest family of ARM cores with a greatly improved architec-

used (not necessarily ARM, though).

ture giving even faster and smaller code than the old ARM7TDMI core.

Practical exercises / Tools There are a number of exercises that you will work through

Goal

during the training. These will show you how to program and

After attending the course you will have learned the ARM-

debug applications for the ARM Cortex-M3 core. The exerci-

family architecture and modes of operation with focus on the

ses are carried out in pairs with assistance of the teacher.

ARM Cortex-M3. You will be familiar with interrupts and how to access and control peripheral functions such as serial channels and timers. You will also have used a professional development tool for creating, compiling, linking and debugging your software project.

We will use Keil’s RealView MDK for Windows. Keil is owned by ARM and the suite offers an integrated solution including both the software and hardware needed for creating, building and debugging projects running on a target system. All the exercises will be carried out running our code on the

Participants

MCBSTM32 evaluation board from Keil. The board is based

Anyone who would like a quick-start to develop C-based appli-

around the STM32F103 ARM Cortex-M3 micro controller

cations for ARM’s Cortex-M3 (and for ARM in general).

from ST.

Content Introduction The ARM family • Overview of the various ARM-based processor kernels and the different manufacturers and their complete microcontroller solutions.

The microcontroller architecture • Presentation of the architetcure and building blocks of the Cortex-M3 kernel. • Overview of the most important peripheral units of the microcontroller that is used during the course.

Assemler for ARM • Overview and presentation of the ARM instruction set and assembly language syntax.

• How to develop start-up code and how to use paramterized calls between C and assembler.

C for ARM • How C can be implemented on the ARM architecture. Extentions and deviations from the ANSI C standard.

Compiling and linking • The technique used for compiling and linking with the KEIL RealView MDK, including the use of compiler switches and other options.

Optimization • How to optimize part or all of your application with regards to techniques suitable for ARM.

High level debugging • Covers the possibilities with In-Circuit Debugging (ICD) compared to other methods like ”trail-and error”, logic analyzers, software monitors, simulators, and emulators. • Hints as to what is important for efficient C source level debugging.

Debugging • Hands-on use of KEIL RealView MDK for source level debugging, register inspection, variables and complex data structures. • Program optimization using performance and covreage analysis.

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

51


Nohau Training Courses

Develop Linux Based Embedded Systems During the last years, the Embedded Systems used in many applications have gained in performance and complexity. More and more functionality have been added as requirements increase and this has been possible as a result of the increase in H/W performance.

Course: Develop Linux Based Embedded Systems Day(s): 3

The evolution has moved Embedded Systems from simple

Previous knowledge

fixed function devices, like control and measurement of a

You know programming and have basic knowledge in the

simple application, to full feature, multi application devices

C-programming language, equal to the ”C programming for

with rich user interfaces (GUIs and web servers) and standard

embedded systems, part I” training.

”PC” communication protocols like TCP/IP.

You should also have some prior experience using Linux/

Linux, which is basically a UNIX, initially designed for PCs

UNIX as a user, and have some experience on how to use

using Intel’s 386 CPU, got early on a design that made it

development environments and debuggers for Embedded

suitable to port to other CPU architectures as well. Many of

Systems.

today’s powerful CPUs for Embedded Systems have passed the 386 in performance and are well beyond it. This makes it

Practical exercises / Tools

possible and attractive to use Linux in Embedded Systems.

Approximately half of the time will be on hands-on exercises. They have been designed to highlight the development process

Goal

for Embedded Linux projects.

You will learn how to use a complete set of ”Best of Breed” development tools to develop an Embedded Linux system. Emphasis will be on using and configure the breadth of functionality and applications available for Linux.

We use a PC as host for the development environment and connect to an ARM-based target system (OMAP5912 OSK). On the target we run Embedded Linux. We will develop and debug the applications using booth

Participants

hardware debugger (Lauterbach) and software debugger (for

If you quickly and efficiently want to get going with the

example GDB).

development of an Embedded Linux system, then this training is for you.

Content Introduction

Tools

• What’s Linux?

• Suitable development environment.

Overview

Configuration

• Different deployment models.

• Training contents and design. Terminology

• Kernel configuration and target file system creation.

• ROM/flash, network, root disk.

• Kernel, distribution, host/target system, tool chain, device drivers, file system, memory management and protection.

Dependencies

• Dynamic loading of modules.

Deployment

Debugging

• Standardards and conventions.

• The difference between debugging the kernel and applications.

System design

• FHS (File system Hierarchy Standard).

• File formats and debug information.

• What kind of system could be an Embedded Linux candidate?

• Runlevels. Startup scripts.

• Linux and Real-Time.

Application Development

• How to download/debug applications on a target system?

• Eclipse based tools.

• How to develop your own Embedded Linux application. Static and dynamic libraries.

Efficient development methods • Difference and similarities in development methods.

System services and device drivers • Network services, TCP/IP.

• Profiling. • Finding memory leaks.

Resources • Where can I find more information?

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

52


Nohau Training Courses

Embedded Solutions with Windows CE 6.0

A training course cooperation between Prevas and Nohau

Course: Embedded Solutions with Windows CE 6.0 Days: 4

Windows Embedded CE 6.0 is the latest version of

Participants

Microsoft’s real time operatingsystem.

The course is intended for system integrators who will work

Windows Embedded CE 6.0 is a componentized operating system build from the ground up and is targeting embedded systems with demands for robustness, real time, small footprint and low power consumption.

with existing BSP’s, who will create own BSP or work with device drivers for Windows Embedded CE.

Previous knowledge • Programming experience in C/C++. • Experience in Win32API programming and device driver

Goal Windows Embedded CE 6.0 contains a whole new kernel that

development will be helpful in taking this course, but is

can handle 32 000 processes with 2 GB virtual memory each.

not compulsory.

CE 6.0 also contains a new device drive model and a completely new development environment.

• No prior knowledge about Windows CE or Platform Builder needed.

The course concentrates on how to build an operating system image, develop device drivers and above all how to work in the tool Platform Builder.

Content • The overall architecture of the Operating System

• How to use the build system internal details to your advantage

• How and when to use each of the various development tools

• How to configure system initialization and startup options

• Terminology used in Windows CE

• How to build headless devices

• How familiar programming tasks are done in Windows CE • How and when to use each of the debug and diagnostics tools • How to use Platform Builder to configure aspects of a custom system

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

53


Nohau Training Courses

Lauterbach Debugging

Course: Lauterbach Debugging Day(s): 1

Lauterbach TRACE 32 is a development tool designed for

Previous knowledge

complex applications and is available for a number of dif-

You have basic programming knowledge in C, and know how

ferent processors.

a microcontroller works.

You have the possibility to participate in a training course

Exercises /Tools

giving you a flying start using an ICD (In-Circuit Debugger).

We use TRACE 32-ICD with a microcontroller based target for all exercises.

Goal You will learn how to get started in debugging with Lauterbach TRACE 32 and you get an introduction to the Lauterbach products.

Participants This training course is designed to suit anyone using a debugger from Lauterbach (BDM/JTAG/EPROM) This is also the start for users of TRACE 32 ICD-RISC Trace or Power Trace.

Content TRACE32 Power View

Advanced Breakpoints

Installation of configuration

• GUI

• Software breakpoints

• Config TR32

• Menus

• On-Chip breakpoints

• System settings

• Command line

• Program breakpoints

• On-line help

• Spot breakpoints

HLL debugging

FLASH programming

• Conditional breakpoints

• Register, display / modify

Macro language

• Memory, display / modify

• What is PRACTICE

• Variables, display / modify

• How to use macros

• Source code

• What built-in functions are there

• Stock frame

• GUI customization

• Symbol browser

• FLASH programmering

• Complex variables (structs, linked lists) • Program loading • Breakpoints

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

54


Nohau Training Courses

Lauterbach for DSP Based Systems

Course: Lauterbach for DSP Based Systems

Day(s): 1

Lauterbach supports the range of DSP 64X+ core up to

Participants

TMS320TCI6488.

This training course is designed to suit anyone using a debug-

Using Lauterbach to debug the DSP 64xx family allows you

ger from Lauterbach (BDM/JTAG/EPROM)

to take the benefit from using the advanced features which are

This is also the start for users of TRACE 32 ICD-RISC Trace

available in the Trace32 system together with time - critical

or Power Trace.

applications and areas where DSP is used. The main advantage is the speed (memory accesses, reads/ writes etc) and the none real-time influence which it involve when using Lauterbach system together with high performance DSP.

Previous knowledge You have god programming knowledge in C, god knowledge in how microcontrollers works and fundamental DSP knowledge.

Exercises / Tools

Goal You will learn how to get started in debugging with Lauterbach TRACE 32, how to customize the debugging en-

We use TRACE 32-ICD with a DSP based target for all exercises.

vironment and of cause how to use the debugger in a efficient way to debug DSP based targets.

Content • TRACE32 Power View

• Complex variables (structs, linked lists)

• GUI customization

• GUI

• Program loading

• Installation of configuration

• Menus

• Breakpoints

• Config TR32

• Command line

• Advanced Breakpoints

• System settings

• On-line help

• Software breakpoints

• HLL debugging

• On-Chip breakpoints

• Register, display / modify

• Program breakpoints

• Memory, display / modify

• Spot breakpoints

• Memory views (graphical, Formatted)

• Conditional breakpoints

• Variables, display / modify

• Macro language

• Source code

• Performance test

• Stock frame

• How to use macros

• Symbol browser

• What built-in functions are there

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

55


Nohau Training Courses

Lauterbach for Linux Based Systems Using Lauterbach to debug a Linux system now allows you to take the benefit from both the GDB as a software debugger and Lauterbach as a hardware debugger.

Course: Lauterbach for Linux Based Systems

Day(s): 1

The advantage in connecting the GDB server with the

• Debug multiple instances of tasks

Lauterbach lies in that we can run the RTOS in full speed and

• Trapping segmentation faults

stop/start different task without having to stop the remaining

• Handle pagefault

system during task load and kill.

• Loading and debugging SO - files/resources.

Lauterbach is today the only hardware debugger which is able to do this.

Previous knowledge

Goal

that you are familiar with the TRACE32 Debugger.

This training includes a rich portfolio of modules - from

We strongly recommend that you have participated at

It is assumed that you have good knowledge about Linux and

MMU handling to debugging tasks and functions in both user space and kernels space and how to switch between those. This training covers how the Linux Awareness works, which kind of tools and featurses that are available when debugging Linux with Lauterbach.

Lauterbach module: 1 and 2 or worked with Lauterbach debugger for a while to be able to profit from this training. You must have to have good programming knowledge in C and good knowledge in how microcontrollers works in general. Consider that this is a training of how to use the Lauterbach

Participants

debugger to debug Linux (both kernel and user task). It will

In this training the participants will have the opportunity to

not cover all features of the Linux Awareness and will defini-

learn for example how to:

tely not cover how to compile and setup a Linux system.

• Setup the debug environment for Linux debugging

Exercises / Tools

• Debug Common shared processes

We use TRACE 32-ICD with a ARM - based target for all

• Debug forked tasks

exercises.

Content It covers how to ues Lauterbach debugger for the following areas: • ASM/HLL Debugger • Peripheral Browser • PRACTICE Script Language • Statistic Analyzer • TRACE32 Multitask Debugger

• Kernel and/or Application Debugging • Statistic Evaluation and Graphic Display of Task Run Times • Run + Stop Mode Debugging which allows you to start-and-stop independently from each other • Use the HW debugger as an SW debugger with GDB as front-end

• Task related evaluation of function run times • MMU support for several address spaces, which allows you to debug several Linux applications (processes) at once.

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

56


Nohau Training Courses

Lauterbach Trace Functions

Course: Lauterbach Trace Functions

Day(s): 1

Lauterbach TRACE 32 is a development tool designed for

Previous knowledge

complex applications and can with the Trace module present a

You have either experience from working with Lauterbach

detailed picture of the behaviour of your application.

TRACE 32, knowing commands like e g ”do”, ”data.list”

During these training courses you get to deepen your knowledge and learn how to use the TRACE 32 with Trace in an

and ”sys.up”, or you have participated in our training course Lauterbach Debugging. You also have basic programming knowledge in C, and know

efficient way.

how a microcontroller works.

Goal You will get a deeper knowledge and configuration files. You

Exercises /Tools

get to do some exercises with e g Trace, CodeCoverage and

We use TRACE 32-ICD Power Trace, with a microcontroller

Preformance Analysis.

based target for all exercises.

Participants This training course is designed to suit users of ICD-Risc Trace or Power Trace from Lauterbach, wanting deeper knowledge.

Content Trace/Analyzer • Logger, Snooper, Analyzer • Trace windows • Tracking • Filtering of the trace-buffer • Code- and datacoverage • Performance analysis • Trigger programming

Breakpoint system PowerTrace • RiscTrace • ETM • OCDS • Program flow trace • Bus trace • Clock trace

CTS (Context Tracking System) • What is CTS? • Is ”step-back” possible?

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

57


Nohau Training Courses

Python for Programmers - Part 1

Course: Python for Programmers – Part 1

Day(s): 1

Goal

Exercises

We walk through the basic of Python, syntax, etc and do

Are done on Microsoft Windows PC’s. (Windows Vista,

practical exercises. After completion of the course you will be

Windows XP or Windows 2000).

able to read and write programs and scripts.

A USB memory with development tools and your examples is included in the course.

Pre-knowledge This is a course for people who program in other languages on at least a weekly basis. Participants should be using at least one other programming language – Assembler, C, Visual Basic, Java, Perl....

Content Introduction

Syntax

• Where is Python used and why?

• Namespaces

• How do we execute programs?

• help-system

• Development tools.

• expressions • tests

Types and operations • Built in objects

• loops and common faults.

• numbers

Functions

• strings

• Arguments.

• lists

• Positional, named and unlimited number of arguments.

• dictionaries files.

Errorhandling

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

58


Nohau Training Courses

Python for Programmers - Part 2

Course: Python for Programmers – Part 2

Day(s): 1

Goal

Exercises

We walk through more advanced Python topics while doing

Are done on Microsoft Windows PC’s. (Windows Vista,

practical exercises.

Windows XP or Windows 2000).

After completion of the course you will be able to do your own

A USB memory with development tools and your examples is

programs and applications.

included in the course.

Pre-knowledge Participants should program daily in some other language - Assembler, C, Visual Basic, Java, Perl, C# and know the basic details of Python syntax.

Content Introduction

Maintenance

• Background

• Unit testing

• execution

• Refactoring

Modules • Creating and handling packets.

Object-orientation • Classes

• Tools

More… • Common usages of Python • Useful frameworks

• Objects and heritage

• Were to go for information and keep updated.

Advanced

• Python 3.0

• Generators • Introspection • Lambda • Decorators

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

59


Nohau Training Courses

Real-time Systems Real-time technology ensures that computer results are not only correct, but also delivered at the correct times, which is essential in application ranging from airplanes, cars to mobile phones and multimedia devices, such as DVD players, TVs, etc.

Course: Real-time System

Days: 3

In real-time computing systems, the correctness of results

We will also discuss how different system solutions influence

does not only depend on functional values, but also the time of

the development and the maintenance of a system.

availability: a correct value delivered too late is wrong. The real-time system has to react to events as they occur, at their speed; the environment dictates the speed and cannot be slowed down. Fast, or timely on average behaviour is not acceptable; rather the worst case situation has to be handled.

Participants The course is suitable for project leaders, programmers and system developers aiming at development of embedded and/or distributed real-time applications. After taking this course, you will posses such knowledge and

Goal

understanding that you will be able to apply different techni-

Today, many developers of real-time applications choose to

cal solutions for development of real-time applications and

use a real-time operating system (RTOS) in order to fulfill the

be able to evaluate different commercial real-time operating

timing requirements of real-time tasks. Advantages include

systems in a structured way.

better application code structure, shorter development time and simpler maintenance of the system.

Previous knowledge

RTOS can be used both on PC platforms and single-chip

utilize the course in a best way. We recommend ”C program-

microprocessors. In this course you will learn how to structure and program real-time applications in a RTOS kernel. We

Basic knowledge in C programming is needed in order to ming for embedded systems, part I”.

will cover topics such as parallel thread execution, inter-th-

Practical exercises / Tools

read communication and synchronization, interrupt handling,

Programming exercises on a PC. You will develop and debug

memory management, and scheduling of real-time tasks.

own real-time applications on a modern commercial RTOS,

You will also learn how to specify, model and analyze a

RUBUS OS, by using MS Visual Studio and Rubus Visual

real-time system based on desired, but usually contradictory, requirement.

Studio as development environment.

Language

Furthermore, we will look into how to build complex distribu-

The course can be given in English and Swedish.

ted real-time applications that include inter-node communication in real-time, e.g., with CAN or TTP.

Content Introduction

What is in RTOS?

• device drivers

• What/why a real-time system?

• Why RTOS?

• memory management

• Different types of RT systems

• Event-trigged and time-trigged types of RTOS

• I/O etc.

Structuring of RT applications

• System clocks;

• Parallel threads • Suitable application partitioning, re-entrant code and robust robust programming

Real-time tasks

• timers

• Periodic and Aperiodic tasks

• interrupt handling

• Task states and state transitions

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

60


Nohau Training Courses

Communication between tasks

RT Scheduling

Complex system architectures

• Shared variables;

• Different scheduling policies

• Specification and validation

• mailboxes

• Static and dynamic scheduling

• Different architectural views and styles

• Wait&lockfree

• Timing analysis

• RT design methods

Distributed RT systems

• Component-based development for RT systems

• signals.... • Synchronization

Shared resources • Mutual exclusion;

• Real-time communication (CAN, TTP, LIN, Ethernet,…) • X-by-wire applications

• critical regions,

• End-to-end deadlines

• deadlock,

• Holistic scheduling for distributed RT systems

• starvation...

• Fault-tolerance • Industrial case-studies

• Semaphores and resource access protocols

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

61


Nohau Training Courses

Symbian and S60

A training course cooperation between Digia Oy and Nohau

Course: Symbian and S60

Day(s): 3

Course Overview

Course delivery method

This is a tailored course for SW developers, who need to be

The course is a combination of lectures and hands-on

able to run Qtopia programs in Symbian OS and S60

practicals.

platform. It will be described, how Qtopia-specific services have been implemented in Symbian OS. Such services include build chain, inter-process communication, event handling, application framework, UI framework, drawing issues, open source support, and security.

Target audience SW developers, who need to deploy Qtopia SW to Symbian OS and S60.

Prerequisites Qt and Qtopia.

Course level The course level is Basics (1 day) and Intermediate (2 days).

Content Day 1 Introduction to Symbian OS • Symbian OS Features • Overview of Symbian OS Development

Symbian OS build chain • SDK contents, usage and documentation • bld.inf, .mmp, _res.rss, .pkg, .mk files • Extension makefiles for moc and uic • UIDs • Building for emulator and target • Emulator limitations

• Constructing from a string literal: _LIT() macro • Descriptor functions

Active Objects

• Clip board

Event handling • Key presses and pointer events

• Background: asynchronous event-handling

• System events

• Life Cycle of AOs

• Event sources

• CActive class & CActiveScheduler class

• FEP framework

• Summary: motivation for AOs

Day 2 GUI application framework

• Other development tools

• What the GUI application framework supplies and how to use it

• Coding conventions

• Application architecture server API

• Platform security

• Additional S60 framework

• Debugging

• UI Control Framework

Basic Symbian programming

• Full screen mode

• Compound controls

Day 3 UI programming • S60 menus/softkeys • Resource files • Dialogs and notes • Listboxes • Panes

UI customization • S60 fonts and themes

• Exception handling

Control drawing

• TRAPD and Cleanup Stack

• Basic drawing

Misc topics

• Two-phase construction

• Font and bitmaps server

• Central repository

• Descriptor Classes - TDesC, TDes, TBufC, TBuf, TPtrC, TPtr, HBufC, RBuf

• New graphic architecture

• Symbian/S60 help system

• Direct screen access

• PIPS and OpenC • Limitations • Integrating with native applications

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

62


Nohau Training Courses

Symbian OS Multimedia Programming

Course: Symbian OS Multimedia Programming

A training course cooperation between Digia Oy and Nohau

Day(s): 2

Course Overview

Course delivery method

This is a “hands on” course aimed at developers who wish to

The course is a combination of lectures and hands-on

learn how to work with the Multimedia Framework subsystem

practicals. The split between the two is approximately

(MMF), and how to write applications with rich multimedia

50%-50%.

features using C++. Expecting no previous knowledge of multimedia programming it covers the main areas needed.

Target audience The course is targeted at application developers wishing to know possibilities of multimedia and will be using multimedia

Note: The course focus can easily be changed between MMF and graphics programming by changing the time spent on the

features in their work.

topics.

Prerequisites

Course level

with some practical experience in Symbian OS GUI applica-

The course level is Intermediate

tion development.

Participants are expected to have a good command of C++

Content Introduction

Scalable Vector graphics

Audio

• Possibilities of multimedia

• SVG-T

• Audio formats supported

• Different devices on the market

• Loading SVG images

• Playing and recording sound

• Symbian OS Multimedia Subsystem

• Working with SVG images

• Streaming audio

Multimedia Framework

Animated Graphics

Camera

• Architecture

• Animation principles

• Access onboard camera

• Implementing custom plug-ins - Controller plug-ins

• Timers

• ECam/Camera Server

• Multimedia device framework

Bitmapped Graphics

• Sprites

Video

Fast Graphics

• Recording video clips

• Direct access to video memory

• Playing video clips

• Bitmap formats supported

• Double buffering

• Conversion tools and methods

• Optimizing for ARM

• Using bitmaps with GDI C++ API

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

63


Nohau Training Courses

System Programming with WIN CE

Course: System Programming with WIN CE

A training course cooperation between Prevas and Nohau

Days: 3

The course is about the basic operating system primitives for

All real time operating systems contains some form of pro-

writing applicaions for Windows CE. The system primitives

gramming API’s, this course will show how to program for

are e.g:

Windows CE through the Win32 API.

• threads

Participants

• processes

The course is intended for those who have been working with

• synchronization objects

other operating systems for embedded systems and wants to

• memory management.

learn system programming for Windows CE.

Goal

Previous knowledge

The intention of the course is to go through, on a basic level,

Programming experience in C/C++, no need to know Win32

how to program for Windows CE when it comes to system

API.

programming and real time applications. The course does not contain any sections about graphical programming for Windows CE.

Content • Overview

• Timers and clocks

• Development

• Real-Time Performance

• Processes and threads • Dynamic memory

Course Objectives

• Synchronization

At the end of this course, the participant

• Interprocess communication (IPC)

will be able to:

• Exception handling

• Describe the architecture and features of Windows CE

• Communication • Data storage

• Use Win32 API for application development

• Dynamic link library • Accessing hardware • Remote connectivity

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

64


Nohau Training Courses

Using C++ in Embedded Systems This course describes the differences between C and C++, and which consequences they cause when developing embedded software. The course also covers how the central language constructs should be used in an optimal way. The course is not a beginner’s course. Some previous experience is assumed, see Previous knowledge below.

Course: Using C++ in Embedded Systems

Day(s): 3

In software engineering of today, object-oriented methods are

We will provide some useful design patterns especially app-

commonly used for system analysis and design. Modelling can

licable in an embedded context. To sum up: Using C++ in a

for instance be made using the graphical language UML.

correct way.

Despite this, C is by far the most popular programming langu-

Participants

age used for developing embedded or time-critical systems. By using C++ right, it is possible to get the advantages of an object-oriented language without the penalty of increased

The course is for embedded systems designers and programmers, as well as system architects and technical managers.

Previous knowledge

code size and bad performance.

The course requires previous experience of C++-program-

Goal The goal is to introduce C++ as an object oriented language

ming. We recommend C++ Basic and C++ Advanced.

alternative in an embedded system context. The similarities –

Practical exercises / Tools

and differences – with the C language. You will comprehend

A few exercises in order to practice some concepts are inclu-

different memory management strategies and understand

ded.

what different paradigms in C++ leads to in machine code.

Content What’s an Embedded System?

Templates

Using C++ Together with C

• Simple Definition, some milestones

• Function and Class Template

• Name Mangling

• Characteristics. Why using C++?

• Code Bloat. Implementation Strategies

• Static Initialization. Dynamic Memory

• Template Meta Programming

• struct Contents

Comparison with C •  C: A subset of C++ – almost

• Template Versus Inheritance?

Multithreading

• Performance. Added ”Free” Functionality. Why not using C++?

Error Handling

• A Thread Class. A Mutex Class

• Exception Handling

• Synchronization

Classes

• Performance Issues. Implementation

• Member Variables and Functions

Inline Code

• Initialization of Static Objects

• When to Use? Strategies

• RAII - Resource Acquisition Is Initialization

• struct in C++. Package

Standard Library

Embedded C++: A de facto Standard

• STL - Standard Template Library

• Embedded C++ – EC++

Inheritance

• iostream Library

• EC++ Suppliers

• Implicit Methods • Constructor Initialization List

• Realization. Performance • Multiple and virtual Inheritance

Polymorphism • Virtual Function and Destructor • Implementation

Design Patterns

Start-up • System Start-up. The C Part and the C++ Part

Memory Management

• RTTI - Runtime Type Information

• The C++ Memory Model. Strategies. Variables. Placement new

• Performance

• User Defined Memory Management

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

65


Nohau Training Courses

Model Driven Development

Nohau Solutions AB, Box 1030, SE-212 10 Malmรถ, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

66


Nohau Training Courses

Business Analysis with Together Designer for Eclipse Business Analysis with Together Designer for Eclipse teaches business and system analysts to use Borland Together Designer for Eclipse to efficiently model requirements and an application domain.

Course: Business Analysis with Together Designer 2006 for Eclipse

Day(s): 1,5

A one and a half-day course, Business Analysis with Together

Goal

Designer for Eclipse introduces the benefits of using Borland

The course will provide a better understanding for system

Together Designer 2006 for Eclipse in business and system

architecture development, relations between system requi-

analysis.

rements and system architecture as well as the role of the

The course teaches you how to model requirements and deve-

system architect.

lop analysis models with Together.

Participants

The heart of the course is a series of comprehensive exercises

Business and system analysts.

built around a realistic sample system.

Previous Knowledge Basic UML experience. Experience as a business or system analyst.

Content COURSE CONCEPTS: Welcome • Introducing Unified Modeling Language, Together Designer for Eclipse and Eclipse Platform • Together as a component of Application Lifecycle Management (ALM) solution • The process of modeling requirements and developing analysis models with Together

Creating and Configuring Together Projects • Creating Together projects

Developing Initial Use Case Model • Developing use case diagrams; best practices • Organizing reusable diagram elements; using shortcuts • Linking use case model artifacts with external documentation via hyperlinks • Checking model artifacts in to a version control system

Elaborating Use Case Model • Documenting use cases with activity diagrams and state machine diagrams; best practices

• Navigating the project and model structure

• Using hyperlinks to connect related use case model artifacts

• Placing a Together project in a version control system

Developing Analysis Model

• Developing use case realizations: mapping analysis classes to use cases with sequence diagrams, communication diagrams and class diagrams • Reusing analysis classes across the analysis model Organizing analysis model artifacts in packages

Generating Project Documentation • Generating a project report containing the use case model and the analysis model • Tailoring project documentation templates

Next Steps • Resources on UML, modeling and related topics

• Identifying and modeling analysis classes in class diagrams; modeling class relationships

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

67


Nohau Training Courses

Design Patterns An efficient approach to re-implement previously obtained experience.

A training course cooperation between Combitech and Nohau

Course: Design Patterns Day(s): 3

A design pattern is defined as a general reusable solution to

Furthermore, some patterns and idioms (language specific

a problem that is commonly occurring in software design,

techniques) meant for real-time systems will be provided.

and therefore provides an efficient approach to re-implement

The course participants will develop own solutions and per-

previously obtained experience as well as successful design solutions. Today, there are a great number of general, as well as application-specific documented design patterns available. Reusing design patterns helps to prevent subtle issues that can

form reflections about their own practical experience. The course literature includes well-known reference literature, which cover further studies in object oriented design patterns, real-time patterns and idioms.

cause major problems.

During the course, the participants obtain practical expe-

Furthermore, they improve code readability and understanda-

system by merging new combinations of them. As a conclusion

bility for stakeholders familiar with the patterns.

rience regarding how to identify a design pattern to enhance a to the course, our own experience regarding how to introduce

This course provides good knowledge about design patterns

and implement design patterns into development projects is

and how they are practically implemented in order to enhance

provided.

existing systems and their design solutions.

General design patterns

Who is this course aimed for?

The course focuses on practical usability of design patterns by

The course has its aim set for system developers and program-

providing examples covering existing systems, where they are

mers of object oriented- and/or real-time systems.

implemented.

Pre-knowlede You should have some experience from working with an object oriented language like C++ or Java. Code examples during the course are mainly provided in the language C++. Knowledge in object oriented concepts and methods is desirable but not required since they are taught and repeated during the course. Knowledge in UML is also desirable, since all diagrams provided are described in this language.

Goals of the course After the course you will have a deep understanding regarding the thoughts behind design patterns.

More than a third of the course consists of concrete exercises, where the participants work in small groups in order to find a solution for specific analysis and design tasks by introducing design patterns. In order to obtain full understanding regarding design patterns, it is important to recognize and understand the small differences which are found in the internal structures of the design patterns. This is achieved by providing a number of design patterns, which are completed by reviewing code examples written in the language C++.

Specific patterns for technical real-time systems Many of the examples provided in the course literature are

You will also have a knowledge database consisting of usable

resident in the application domain, which is generally well-

design patterns and related concepts, which will make you

known and thereby easy to understand.

well-prepared for implementation in your daily work.

Course description The course focuses on studying a large number of general design patterns and their practical application.

This should not in any way be considered as a limitation in the design patterns we provide. On the contrary, by providing good examples, we can prove that they are fully applicable in real-time systems as well.

Nohau Solutions AB, Box 1030, SE-212 10 Malmรถ, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

68


Nohau Training Courses

Deep understanding of the thoughts behind design patterns

There are a large number of forums and a lot of literature

Christoffer Alexanders is often considered to be the founder of

hensive level.

design patterns. Actually, he was not a system developer; he was an architect for constructions and city areas. His definition of a pattern is a rule that consists of three separate parts; a problem, a solution and their context. In a similar way, the design patterns are used as a formula to reach a solution for a commonly occurring problem.

Classification of patterns Various classifications of patterns are provided. A common classification consists of behaviour-related, structural and creative patterns. Behaviour-related patterns describe how algorithms and responsibility regarding functionality are divided between classes and how these classes communicate.

that cover the area around design patterns at a more compre-

Course direction How is it possible to mediate knowledge so that context and patterns become clear and visible instead of being loose details and subsystems? In our world, all theories have to be applicable in the daily work. The alternation between theory and practical exercise is the main focus for our courses. Our educators come directly from the field and are equipped with current knowledge and establish a deep practical support for the course that they are teaching. The course is given over three days, where more than a third of the time consists of practical exercises. The exercises consist of three parts:

Structural patterns describe how classes and objects are com-

• the course participants reflect over their daily work,

bined into larger structures.

• practical exercises in a development-related scenario and

Creative patterns describe how these larger structures are

• a larger practical project exercise, where the latter also

instantiated in the system.

forms a conclusion for the course.

Other common classifications are architectural patterns, de-

Course literature

sign patterns and idioms, where the separation is based upon

”Design Patters: elements of reusable object-oriented de-

when, and at what abstraction level, the pattern is applicable.

sign”, by Erich Gamma, ISBN: 0-201-63361-2.

Commonly, patterns for classes and objects are separated

All course participants obtain a folder that contains the

based upon if the pattern stresses class- and inheritance me-

presentation-material, examples and the exercises that are

chanisms, or the collaboration between objects.

used during the course.

Orientation around other types of patterns

This material will form a valuable resource in later daily

The course is a basic course within design patterns, and its

work.

focus is set around components and subsystems where realtime requirements have to be considered.

Content • General design patterns • Specific patterns for technical real-time systems • Classification of patterns • Orientation around other types of patterns

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

69


Nohau Training Courses

MBSE Architecture

A training course cooperation between Combitech and Nohau

Part of the MBSE course package

Course: MBSE Architecture Day(s): 2 How can MBSE be used within software architecture?

In various ways, requirements can be integrated in the mode-

The purpose of this course is to provide various aspects and

ling tool, alternatively be represented directly in the tool.

techniques regarding how the architecture of a product may

Various categories of requirements are studied based upon

be represented in a modeling tool.

whether they affect the construction/architecture and how

It is important to be able to communicate these aspects and

they appropriately are represented in the system model of the

therefore we provide a tool box in the shape of graphical

product.

description methods to handle this issue.

Use cases

An important part of the course is to describe how it is pos-

The use case analysis is an efficient method to use in order to

sible to develop this information/architecture in a methodic

identify a requirement. The result is a functional description

way.

embodied as scenarios, which describes user interaction with

Who is this course aimed at? The course is aimed at persons with a few years experience within software development.

the system and constitutes a base for systematic composition of a system. This functional description is developed without concerning the internal construction of the system.

Pre-knowledge Preferably, you should have been involved in a role such as

System components

product responsible, project manager, systems architect,

A system is formed by a number of separate items (system

software architect, software developer, test leader, hardware

components), which have to be identified. The course provides

constructor or similar.

examples of a methodic approach to find a good composition of a system.

Goals of the course After the course, you have obtained enough knowledge and basic skills in the subject in order to, by yourself, create a system model that corresponds to the requirement specification

The approach for composition in this course is object orientation but a mapping is performed towards functional programming (functional decomposition).

and the architecture for your product.

Interaction

You have also been provided with knowledge regarding va-

The functionality that has been described in the use cases

rious types of documentation that can be extracted from the

shall be realized by the system.

model.

The components of the system offer complete functionality by

Description Requirements

interacting with each other. Interaction can be described in various ways, for example by using UML sequence diagrams.

A basic concept for all development is to find and formulate

Traceability

the requirements that drive the product. Requirements are

The system model should contain traceability between the re-

traditionally described in a textually-based document.

quirements and the design. It shall be possible to trace partial

In later days, specific requirement handling tools have been used for this purpose. Even when using these tools, the requi-

functionality allocated in the respective system components to the product requirements.

rements only serve a couple of purposes; as a development-

Even traceability between requirements and the validation

base for the system and as means for validating it.

method used is an important aspect to consider.

Nohau Solutions AB, Box 1030, SE-212 10 Malmรถ, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

70


Nohau Training Courses

Interface definition

Every lecture is followed by the associated practical exercises

A good architecture is characterized by a good separation bet-

defined, which are connected to using the provided system

ween components, only a few relations between components

modeling tool.

and clearly specified component interfaces. Since components can be defined based upon their interface it is possible to use partitioned development, modifiability, scalability and product-line architecture.

Course literature Since the course is based upon the long experience in the area, no reference literature is provided.

The course describes a service-oriented approach to define

Course material

interfaces by using associated data.

All attendants obtain a course binder that contains all presented material and all exercises. Furthermore, you own-defined

Course directions

system model will be inserted.

The course is based upon a number of theoretical lectures covering each course section.

Content • Requirements • Use cases • System components • Interaction • Traceability • Interface definition

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

71


Nohau Training Courses

MBSE Bootcamp

A training course cooperation between Combitech and Nohau

A part of the MBSE course package. Exciting development using model-based engineering tools.

Course: MBSE Bootcamp

Day(s): 1

The MBSE Boot camp is a very intense event, with its focus

between the courses is that MBSE Boot camp focuses more

set on hands-on experience regarding software modeling using

on practical exercise and a bit less on the theoretical exer-

code generating tools. By default, the course is provided using

cise. For example, the course is concluded with a competition

the Rhapsody development environment, but it may as well be

where robots are involved.

adjusted using other model-based tools as well upon request. We go from designing the software in the model-based language to building an executable binary by generating source code in the tool. The course ends with a robot competition where the newly obtained knowledge of the participants is put to test.

Who is this course aimed at? The course is aimed at anyone who wants to test and obtain knowledge regarding model based development.

Compact education in model based development In a slightly traditional course format, day one is dedicated to becoming familiarized with UML modeling in a code generating tool. Lectures are mixed with exercises describing how to reach all the way from a system model to an executing system in a target environment.

Construction of a robot control software On day two, the group is divided in two teams where the task

The course applies to all project member categories, from

is to develop a robot control software application using the

project leaders to software engineers.

same tools as in day one.

Pre-knowledge It becomes easier if at least someone in the group has experience in object oriented programming, C++ and UML since

Robot competition. Conclusively, the robot control software created by the two teams is applied on robots and they are let out in the ring for a thrilling duel.

these techniques are applied without initial briefing. With a

By experience from previous courses given, it has been shown

reasonable competence mixture in the group, participants

that the MBSE Boot camp can be a fun as well as rewarding

without any deeper pre-knowledge about these areas are com-

team-building activity due to the robot competition.

monly able to handle this course without any problems.

Seldom before have you seen your co-workers so inspired, to

Goals of the course The goal of the MBSE Boot camp course is to embody system development using model based tools.

Course content • Compact education in model based development • Construction of a robot control application • Robot competition

Description MBSE Boot camp is an intense two-day course which aims to give practical experience about working with model based software development for embedded systems. By its content, the MBSE Boot camp course partly over-

solve the robot task in order to beat the robot belonging to the opponents.

Course directions The course is held during two intense days and includes many practical exercises.

Course literature No literature is tied to the course, instead it based on the many years of knowledge and experience invested in the teachers.

Course material All attendants obtain a binder containing all presentation material, exercises and solution suggestions used during the course.

laps the MBSE design and execution course. The difference

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

72


Nohau Training Courses

MBSE Design, Execution and Code Generation

A training course cooperation between Combitech and Nohau

Part of the MBSE course package.

Course: MBSE Design, Execution and Code Generation

Day(s): 2

Concrete exercises point out the opportunities. We start by

Design and implementation

using a modeling language to create a software design.

We look at examples provided in the modeling tools of inte-

After having generated the source code we compile it to a binary that runs on the dedicated platform. To reach our goal, the executable binary, we mix theory and practical exercises.

rest for this course and perform extended exercises in order to give you practical experience of what it is like to work with a modeling tool. To save money and increase the profitability, many companies look at developing product families and product lines.

Who is this course aimed at?

We will not go deeply in to this but we will relate MBSE to

This course is relevant for anyone interested in generating

these concepts and exemplify what it can mean in MBSE

software code from a model to host, as well as to target plat-

terms.

forms. If you have already attended the MBSE Architecture course this course provides the natural next step.

Pre-knowledge You should be familiar with the programming language C++, since the actual programming is performed in this language.

Further we look at the possibility to import existing code into the modeling tool; which is often referred to as ”reverse engineering”.

Code generation Software engineering has gone through an evolution where it

It is desirable to have attended the MBSE Architecture course

has evolved from assembler to C code and then even further

as well, but should not be considered as a requirement.

on into high level languages such as C++/Java/C#/Ada.

Goals of the course

The next step to handle complex systems is to generate source

The objective of this course is to provide a better understan-

code directly from software models.

ding of the Model-Based Systems engineering concept. This is

Even if code generation does not save time in a decisive way,

achieved by mix of theory and practical exercises.

it still has some important benefits.

We start by looking at the opportunities with modeling. There

Exercises under guidance of competent instructors will give

are several types of notations used for modeling - UML (Uni-

you concrete examples providing modeling experience.

fied Modeling Language) is not the only notation even though it is the dominating one. All solution approaches are not equally appropriate for all problem domains. For example, UML is not the best choice for designing advanced control systems. Further, we discuss the influence of methods, processes and project management on an MBSE project. These aspects are important factors directly connected to whether a MBSE project will be successful or not.

Execution In order to execute a model, there is a need for some kind of behavioral code. Some modeling tools include such a notation of their own while others lack this feature. Such tools must provide a behavioral notation in some other way, usually by using a standard language such as C++ or Ada. We will describe how to configure a model that is able to execute on both host and target. We will not discuss traditional

We also talk about common modeling concepts (i.e. MDD,

testing in this course but we will look at elaborative tests and

MDA, PIM, PSM) and put them in a context.

try-out model level debugging.

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

73


Nohau Training Courses

Course directions

The exercises are performed in small groups and will be alter-

How do you transfer knowledge in a clever way so that con-

nated between host and target platforms.

text and patterns remain clear instead of being loose details and subsystems? Our instructors come directly from their every day jobs in the

Course literature Normally no course literature is used in this course.

industry and hence they have fresh and deep knowledge within

Course material

the fields in which they are teaching. In our view all theories

All participants obtain a course binder with all the presenta-

must be directly applicable in your daily work.

tions, examples and solutions used in the course.

The combination of theory and practical exercises is a corner stone in our courses, and in this course in particular the exercises will be an extensive part.

Content • Model-Based Systems Engineering definition • Different models - different tools • Design and implementation • structure and behaviour • Code generation • model transformation and tools • Execution - Model Level Debugging

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

74


Nohau Training Courses

MBSE Simulation and Model-Based Testing Part of the MBSE course package.

A training course cooperation between Combitech and Nohau

Course: Simulation and Model-Based Testing

Day(s): 2

New possibilities arise when using model based tools for

Important questions to find answers for during the course are:

testing and simulation.

• What does traditional testing and verification mean?

Let’s start with describing the term simulation. Simulation is

• What is model based testing?

commonly used when it’s too expensive or too dangerous to

• What is simulation and execution?

perform tests upon real target systems. It is also useful to introduce simulation when there is a need to get a feel for the performance and abilities of the system before it is fully developed. The purpose of testing is to prove that a system is fully functional as defined by the requirement specification. Testing can be seen as a more formalized form of simulation. A real challenge is to re-use simulations and tests performed in a simulated environment.

Background The focus for system development is gradually transferred from coding to modeling. This fact provides us with new possibilities since the models commonly are executable. One clear benefit that arises when using model-based development is that it becomes possible to perform tests at the model level instead of at the code level. New possibilities for test and verification also arise, since the model itself often consists of directly useful pieces for this

Who is this course aimed at?

purpose.

The course is aimed at anyone involved in development of embedded- and real-time systems at a design- and/or test level.

Simulation In this section we will provide you with the requirements that

Pre-knowledge

must be met in order to execute a simulated model. We will

No pre-knowledge in the area is required, but basic know-

also provide you with a survey regarding various simulation

ledge regarding UML and C++ or another similar language is

models based on host or target.

desirable.

Goals of the course After the course, you shall have been provided with a genuine understanding for simulation and model-based testing and how it affects the development project in a positive way.

Description We encounter enormous challenges when start building the systems of tomorrow. They become more and more complex

We will describe terms such as “hardware in the loop” and what the difference is between a time continuous and a time discrete system. We will also discuss how to simulate signal controlled and event controlled systems.

Verification and validation Here we describe common strategies for performing verification and validation such as prototyping, modeling, reviewing, test and analysis, which are all important building blocks in

and can not clearly be specified in a traditional way.

order to ensure the quality of a system.

The need for models used for simulation and test increases

Test automation

constantly. With the techniques of today, we are able to de-

In this section the participants will learn what it means to

velop models in order to simulate systems that do not exist in

automate tests by introducing regression- and daily-testing.

target environment yet. The models can also be used for testing a system in an early stage and thereby discover faults earlier than when using traditional development.

Integration of model-based testing The introduction of model-based testing leads to a lot of challenges. It becomes important to be able to think in new ways without forgetting the quality aspects of the system.

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

75


Nohau Training Courses

In many cases it is possible to execute tests directly into the

We will also provide you with some information about the

tools where the system models are developed.

ways of working and the tools for the simulation and test pur-

Some tools have a plug-in support for testing. Other tools sup-

pose that will arrive on the market in the near future.

port the possibility to develop tests by scripting.

Course directions

Parts of the models are useful for testing, partly as templates

Our educators come directly from the field with fresh know-

but also more directly, in order to generate test cases. Two

ledge and have a deep practical support in the subject they

good examples for this are the UML sequence- and state

are teaching. In our world, every theory must be able to be

diagrams.

applied into the daily work.

Exercises and dialogue

The switching between theory and practice is a corner-stone

• Dialogue around central MBSE simulation and test issues. • Practical simulation- and test exercises using modern tools.

The future In this conclusive section we will describe where we are going in the area of MBSE simulation and test.

for our courses.

Course literature Since the course is based upon the long experience in the area, no reference literature is provided.

Course material All attendants obtain a course binder that contains all presented material and all exercises as well as their solutions.

Content • Background • Simulation • Verification and validation • Test automation • Integration of model-based tests • Exercises and dialogue • The future • Goals

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

76


Nohau Training Courses

Practical Modeling with UML We put the language in its context. This course has its aim set for concrete and pragmatical usage of UML, first and foremost for technical- and real-time systems.

Course: Practical Modeling with UML

Avoid points of no return Since our course leaders normally work in projects as consultants and mentors, they are able to connect their real-life

A training course cooperation between Combitech och Nohau

Day(s): 3

We start off from a real problem description and then continue to develop a design solution for it by providing multiple exercises.

experience to the course and are thereby able to focus on the

The purpose of this course is to mediate how to develop a

most important aspects to consider when modeling with UML.

system by the use of UML – all the way from requirement

The point of the course is that the participants shall obtain basic knowledge about object oriented thinking and be able to work with UML practically, for various kinds of systems in various phases of the project.

modeling to a complete implementation.

The requirement model In this initial part we describe and reflect over what information is required in a model in order to create a complete and

Who is this course aimed at?

common image over the system and its building blocks.

The course is aimed at anyone involved in object-oriented sys-

This includes functional requirements, quality requirements

tem development, first and foremost technical- and real-time

and construction limitations.

systems.

Pre-knowledge No pre-knowledge is required but some understanding regarding object-oriented programming is desired.

Goals of the course

By using problem-domain modeling and use cases we define all our system requirements in order to obtain such good understanding for the system as possible. This part also provides an introduction to object-oriented programming.

After the course, the participants will be able to use UML

The system model

for modeling in real projects, all the way from requirement

When we have explicitly defined what to achieve, it is time to

analysis to implementation.

find a solution for the problem itself. During the development

Furthermore, they will b able to model systems from various views of aspect by using the most of the diagram types described by UML 2.0.

Description

of the system model we design and assemble information regarding the behavior of the system. We also describe how the three views of modeling are connected to each other (logical view, physical view and process view).

The course is built upon a development process called PARTS, which defines three separate information models, all

The logical view

describing a system from separate aspects.

Focus is set for the static- and dynamic modeling of the logic.

This course describes all of these models; the requirement model, the system model and the implementation model. These models contain the information assembled during the analysis-, design- and implementation phase of the development process. We start the course with a discussion around modeling in

Initially on an architectural level and then, a bit more detailed, on subsystems, components and classes. We describe techniques that can be used to compose the system into more manageable pieces. An important aspect is to realize the system requirements by the use of collaborations.

general and the background for the introduction of UML on

Furthermore, we describe how to realize our use cases by

the market.

defining static classes.

Nohau Solutions AB, Box 1030, SE-212 10 MalmĂś, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

77


Nohau Training Courses

Finally, all UML 2.0 diagrams that can be used to describe

Course directions

such information are described.

How do you mediate knowledge in a clever way so that con-

In order to define the last details we use state diagrams to specify state dependant classes. We specify the exact behavior of these classes, which makes it possible to generate them into programming code, by either using manual translation techniques or by generating code in a tool specifically chosen for the purpose.

The physical view This shorter section describes how to define the context around the system; in what environment our logic will execute as well as the design decisions we have to make.

The process view In this third view we will define the real-time aspects for our system. How is it possible to make the logic execute appropriately on the hardware? We describe the UML diagrams that are suitable for this pur-

text and patterns remain clear instead of appearing as loose details and subsystems? Our instructors come directly from their every day jobs in the industry and hence, they have fresh and deep knowledge within the fields in which they are teaching. In our point of view, all theories must be directly applicable in your daily work. The combination of theory and practical exercises is a corner stone in our courses, and in this course in particular, the exercises will be an extensive part. The theory and the smaller exercises prepare the participants to be able to solve a larger coherent task in a group during the course days.

Course literature Normally The Unified Modeling Language Reference Manual (2nd edition) by Addison-Wesley is used, but other literature may be used as well.

pose and provide connected techniques and important aspects that can be applied. The implementation model. This model is used to define the transformation of our system into an executable binary that can be deployed on a hardware platform, with an operative

Course material All attendants obtain a binder containing all presentation material, exercises and their solutions that is used during the course.

system layer in-between.

Content • The requirement model • The system model • The logical view • The physical view • The process view • The implementation model

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

78


Nohau Training Courses

Rhapsody and UML in Practice Rhapsody is the perfect UML-tool for embedded systems development. In this training we use Rhapsody to model systems in UML.

Course: Rhapsody and UML in Practice

Day(s): 3

You will learn how to model both simple systems and to create

Previous knowledge

advanced models for safety critical real time systems.

You have a good knowledge of object-oriented analysis and

The training also teaches you code generation and debugging of your design by means of the Rhapsody simulation possibilities.

design and also of UML. We recommend our training courses ”Real-time for UML 2.1”.

Practical exercises / Tools

Goal After the training you will be able to use the UML tool Rhapsody and also use the notation UML to model, implement and verify software for embedded systems.

This is a practical guided training course that covers various examples with gradually increased detail-levels that shows the different functions in Rhapsody at a pedagogic way. You will at the end of the training course use Rhapsody to

Participants

design and test a complete system.

This training course is designed to suit system developers and real-time programmer who use the UML tool Rhapsody.

We use the UML tool Rhapsody for the exercises.

Content Introduction

Step 1

Step 3

• Course targets

• ”Hello World” with Rhapsody

• Trigged operations and incident parameter

• Orientation in the Rhapsody tool.

• Create classes and operations

• Class OMString

• Explore code

• Contents and iterations

• Roundtripping

• Multiple relations

• Attribute

• Package and threads

• Simple State charts

• Mutex and protected operations/relations

• Tracing and animation

• Version Control

• Use case

• Qualified association

Step 2

• Global instance

• Advanced State charts

Step 4

• Debug script

• Rhapsody’s framework

• Simple relations and associations

• Create and link graphical user interface to Rhapsody models

• Composite classes • Generalizations and virtual operations

• Reverse engineering

• Use case defined models

• Independent example

• Advanced State charts

• Documentation

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

79


Nohau Training Courses

Together for Eclipse Essentials

Course: Together for Eclipse Essentials

Day(s): 1

This course introduces analysts, software architects, desig-

Previous Knowledge

ners, and developers to the features of Borland Together for

Experience with previous Together versions (recommended)

Eclipse.

or with other modeling tools. UML2 modeling experience as an analyst, architect or deve-

Goal This 1-day course helps users of Together Architect 1.x or Together Designer/Developer 2005 ramp up quickly on the new user interface, technologies, and features offered in Together 2006 Release 2 for Eclipse.

loper.

Tools The course is taught in a practical hands-on environment, in which exercises and instructor-led demonstrations help reinforce the concepts taught during the lecture.

Participants Together Architect 1.x, Together Designer/Developer 2005 users; analysts, developers and architects interested in new Together capabilities.

Theory/Practice: 20% theory and 80% practice Course Material: We use course material in English from Borland.

Content Working with Projects

Using the New Tools

Other New Features

• Using the Eclipse environment and its components (workbench, perspectives, editors, views)

• Using new audits and metrics, Generating project documentation, Using UML profiles

• Understanding Model Driven Architecture (MDA), its benefits and supporting technologies

• Understanding project lifecycle (creating, importing, exporting, opening, closing and deleting projects)

Integration with Other Tools • Using Together perspectives and views that provide access to StarTeam

• Configuring projects (project properties, cross-project references, build order)

• Importing a project from StarTeam using Team Project Sets

• Configuring Together

• Sharing a project (submitting a project to StarTeam)

Working with Diagrams

• Checking model elements in and out

• Understanding the model-centric paradigm in Together 2006 . Understanding UML 2 diagram types

• Locking and unlocking model elements; controlling locking granularity

• Creating new diagrams. Adding and removing diagram elements

• Understanding how Together supports design patterns • Business modeling using Business Process Modeling Notation (BPMN)

• Accessing the CaliberRM requirement management system from Together

• Controlling diagram layout • Using shortcuts and hyperlinks • Searching through the model

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

80


Nohau Training Courses

Agile Methods & Design of Medical Devices

Nohau Solutions AB, Box 1030, SE-212 10 Malmรถ, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

81


Nohau Training Courses

Certified Scrum Master Agile project management is as radically different from traditional project management as agile processes are different from traditional methodologies.

Course: Certified Scrum Master

A training course cooperation between Softhouse and Nohau

D ay(s): 2

Agile project management is as radically different from tra-

The first day is dedicated to the Why and the Philosophy the

ditional project management as agile processes are different

Meaning of Scrum. The second day hands you over the tools

from traditional methodologies. Rather than plan, instruct

and the How of Scrum.

and direct, the agile project manager facilitates, coaches and

Using anecdotes and experience, teaching the Scrum met-

leads.

hodology, and how to use it to be an effective Agile project

This person is called a Scrum Master in the Scrum agile process to denote the difference and remind the person filling this role of the new responsibilities. Accepted participants learn how to be a Scrum Master and how to make a development

manager - you will learn to be a ScrumMaster.

Graduation Upon Graduation As a result of their successful completion of

team, a project, or an organization agile.

the program, each participant received an individual license

Goal

als, and Scrum software.

Each individual is trained to be able to assume the following

In addition, Certified ScrumMasters are authorized to par-

and copy of the Scrum methodology, Scrum training materi-

responsibilities:

ticipate in “open” development of the Scrum methodology

• Remove the barriers between development and the customer so the customer directly drives development; • Teach the customer how to maximize ROI and meet their objectives through Scrum;

and software, ensuring a growing body of knowledge from a qualified, competent group of certified professionals. They are also listed as Certified ScrumMasters at CertifiedScrum.

• Improve the lives of the development team by facilitating creativity and empowerment; • Improve the productivity of the development team in any way possible; and, • Improve the engineering practices and tools so each increment of functionality is potentially shippable

Course Material Participants will receive printed and bounded material on the first day of class. The material is in English and will change from Training class to training class. The material will be enhanced by more slides, videos and

Training – Methodology The training is done with a lot of exercises. Be prepared to do hard work. The training will give you the feeling of Scrum

other pictures in case the trainers will find this useful during class.

itself.

Content Fundamentals of agile and Scrum,

The agenda for the class is:

• Day in the Life of a ScrumMaster

running Scrum projects, planning

• Complexity

• Product Owner

and scaling Scrum projects, offshore

• Agile Manifesto

• Scrum Teams and there environment

development using Scrum, bidding on

• Agile Overview

• Managers

fixed price/date contracts, and ensuing the

• Scrum Overview

• Meetings

adequacy of engineering practices.

• Roles in Scrum

• Sprint Termination

• “DONE”

• Release Management

• Planning

• Scaling

• Retrospective

• Scrum and CMM, Scrum and XP

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

82


Nohau Training Courses

Lean and Agile for Managers Lean principles, Agile development, Scrum, XP, Testdriven development - these are just some of the buzzwords on the software business and development arena these days

Course: Lean and Agile for Managers

A training course cooperation between Softhouse and Nohau

Day(s): 2 What you will learn

Introduction Lean principles, Agile development, Scrum, XP, Testdriven

• Understand the underlying principles of Lean the Toyota

development – these are just some of the buzzwords on the

Way and the Agile Manifesto.

software business and development arena these days.

Accordingly, you can design improvement solutions for

Developers and testers often have a rather clear view of what this means for them. But in the busy position as a manager,

your own organization. • Use simple tools to define business value, find and remove your waste, and create a flow of deliveries.

resource owner or economically responsible it can be hard to

This will help you improve your profitability and reduce

stay updated. To help you retain the initiative, Softhouse has designed a special course called “Lean for managers” which will help

your lead times. • Set up a permanent structure for continuous learning and

you understand what Lean principles and tools can do for you.

improvement.

Participants The target group is all levels of management with the responsibility to deliver business value given a certain resource. The four-part course is generally given as a two-day package, but can also be held as a series of on-site workshops at your company.

Content 1. Lean, Toyota and value versus waste

2. Manage the flow

4. Lean IT and how to make it happen

• Flow, Pull and Just-in-time

• Value - the work of the Product Owner

• The history and background of Lean and Agile

• Throughput economy and bottlenecks

• Sourcing and new business models

• A Kanban system for maintenance work

• Lean practices - Introduction an dexpected results

• Exercise - ”Lean production”

• Exercise – ”Order your backlog by business value”

• Exercise ”Value Stream Mapping”

3. People, leadership and measurements

• Tool to use - ”Find your waste”

• Tool to use – “A structure for change”

• Leadership in an agile environment • Kaizen through trust and transparency • Building high performing teams • Exercise – ”The Six Thinking Hats” • Tool to use – “Agile Retrospectives”

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

83


Nohau Training Courses

Scrum for Team Members The self-organizing team is the heart of all Agile processes. This is true for Scrum as well. Scrum for Team Members is an introductory class focusing on the practices and needs of the Scrum Team.

Course: Scrum for Team Members

A training course cooperation between Softhouse and Nohau

Day(s): 1 What you will learn

Introduction The self-organizing team is the heart of all Agile processes.

• To understand the core values of Scrum

This is true for Scrum as well. Scrum for Team Members is

• The Scrum process flow, roles, meetings and artifacts

an introductory class focusing on the practices and needs of

• Self-organizing and cross-functional teams

the Scrum Team.

• How the Scrum roles interact with each other, and espe-

Often members of Scrum Teams are expected to self-organize

cially how the Scrum Team interacts with the other roles

from day one. In this course you will get the insights and tools

• How to use retrospectives as a tool for continuous impro-

necessary to quickly become a productive member of a Scrum Team.

vement and team learning

Target audience Goal

All potential participants of a Scrum team including develo-

After participation you will understand the core values of

pers, testers, analysts, architects and others.

Scrum, the Scrum process flow, roles, meetings and artefacts of Scrum. A strong focus is put on how to work in self organizing and cross functional teams and how to use retrospectives as a tool for continuous improvement and team learning.

Content Scrum Basics and overview

• Team tools

• Sprint Backlog

• Agile values

• Team dynamics

• Definition of ”Done”

• Lean principles • Theory of complex systems and processes

3. The Scrum Flow

2. The Scrum Roles

• Product backlog

• Scrum Team, Scrum Master and Product Owner • Interaction between roles

• Product Vision • i. Creation • ii. Estimation • iii. Maintenance and grooming

4. The Sprint • Sprint Planning

• Work environment • Visualisation tools • i. Task Board • ii. Burndown Chart • Daily Scrum Meeting • The Sprint Demo

5. Retrospective 6. Release planning

• Sprint Goal

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

84


Nohau Training Courses

Patient Risk Management in Medical Devices In Europe as well as in USA there are high requirements on risk management in medical device projects. The purpose is to guarantee that a product is sufficiently safe before use on people.

Course: Patient Risk Management in Medical Devices Day(s): 1 Previous knowledge

Goal As a project manager or design engineer you need to regard patient risk during the entire development process.

A few years experience of developing medical devices with electronics or software.

Problems you encounter are to decide what is safe enough and

Participants

how you get there. Often you use FTA (Fault Tree Analysis)

Project managers or design engineers in medical device pro-

or FMEA (Failure Mode and Effects Analysis) to show that

jects who have encountered risk management and now want to

you have reached acceptable risk levels.

know how it is done.

During the course we will get to know these tools, and we will

Exercises / Tools

discuss how to set an acceptable residual risk level. After this course, you will have sufficient experience to conduct risk management in a medical device design project in such a way that regulatory requirements in the EU and the US are met (MDD/QSR).

Shorter lectures mixed with practical examples. This course is focused on practical ways to handle risk management, and there will be large room for discussions – this course doesn’t have any finished truth.

• During the course, we will regard the different questions arising in different project phases. • Software requires special handling, since it is not physical, and errors in it have the potential to cause severe and unpredictable errors. • We look at different techniques to obtain sufficient safety in products with embedded software.

Content Big projects, small projects, old products,

Software

Basic tools

and new products.... the course will raise

• MDD/CE

• FTA (Fault Tree Analysis)

questions like:

• QSR/FDA

• How to implement risk management in different phases of a project?

• ISO 14971

• FMEA / FMECA (Failure Mode and Effects Analysis)

• EN60601-1-4

• When does risk management start? • When does risk management end? • Who performs the risk management?

Purpose with risk management • Release a product • Demonstrate acceptable risk level being met • How is an acceptable risk level set?

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, info@nohau.se, www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, kurs@nohau.se

85


Nohau Training Centre About Nohau Founded in 1981, Nohau is an independent experienced process and solution specialist who understands the evolution of the Software Delivery and understands the different processes needed to meet that evolution.

Contact Nohau Training Centre +46 40 59 22 16, mmj@nohau.se

The prime target for Nohau is to make the customers software team more efficient, effective, innovative and prepare for the business evolution of the market. Nohau have enabled over 3000 organisations to shorten development time and improve software quality through proven solutions of tools, training and process support. Nohau are represented all over the Nordic market with offices in Sweden, Denmark, Finland and Norway. More about Nohau: www.nohau.se

Nohau are represented all over the Nordic market with offices in Sweden, Denmark, Finland and Norway. Head office are located in Malmö, Sweden. Nohau Danmark A/S Klausdalsbrovej 493 DK-2730, Herlev Denmark phone: +45 44 52 16 50 fax: +45 44 52 16 55 www.nohau.dk

Nohau Finland Teknobulevardi 3-5 FI-01531 Vantaa Finland phone: +358 9 46 71 22 136 fax: +358 9 25 17 81 01 www.nohau.fi

Nohau Norge Skøyenåsveien 5D NO-0686 Oslo, Norge phone: +47 92 44 22 09 fax: +47 92 44 22 09 www.nohau.no

Nohau Solutions AB Box 1030 SE-212 10 Malmö Sweden phone: +46 40 59 22 00 fax: +46 40 59 22 29 www.nohau.se

Nohau Training Course Descriptions  

Nohau Training Course Descriptions

Advertisement