Top Banner
Nohau Training Centre Course Descriptions 2009
86

Nohau Training Course Descriptions

Mar 03, 2016

Download

Documents

Nohau Solutions

Nohau Training Course Descriptions
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Nohau Training Course Descriptions

Nohau Training Centre Course Descriptions

2009

Page 2: Nohau Training Course Descriptions

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

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

CaliberRM Essentials 8

Defining High-Quality Requirements 9

Effektiv Kravhantering 10

Grundläggande Kravhantering 12

Requirements-Based Testing Workshop 13

Software Quality and Test

Architecture of Medical Devices Containing Embedded Systems 15

Black Duck Protex Quick Start 16

C Engineering 17

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

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

SilkPerformer: Results Analysis & Correlation 25

SilkPerformer: Testing SAP Applications 26

SilkTest: Testing Dynamic Application 27

SilkTest: Verification Testing 28

SilkTest: Verification Testing Advanced 29

Software Architecture for Embedded Systems 30

Software Architecture for small Real-time Embedded Systems 31

Software Reengineering - Workshop 33

StarTeam Advanced: Server Administration 34

StarTeam Essentials 35

Test Driven Development 36

Test i Praktiken 37

Unit Test with Cantata++ for C 39

Unit Test with Cantata++ for C++ 40

Embedded Development and Debugging

Android Application Development Introduction 42

Basic Regulatory Training for Design Engineers 43

C Programming for Embedded Systems, part I 44

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

Develop Linux Based Embedded Systems 52

Embedded Solutions with Windows CE 6.0 53

Lauterbach Debugging 54

Lauterbach for DSP Based Systems 55

Page 3: Nohau Training Course Descriptions

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

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

Training Course Descriptions

Page 4: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 4

Requirements Engineering

Page 5: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 5

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

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

practical use, covering all of the functionalities provided by

the tool.

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

theoretical presentations, with the underlying methodolo-

gical and engineering principles, and a number of practical

exercises.

Likewise, the course includes an introduction to requirement

concept, its management, and its engineering process.

Prerequisites Basic knowledge of Software Engineering and its classical life

cycle, as well as the object oriented modeling standard UML

(Unified Modeling Language).

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

7. External import

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

It is also recommended to be familiar with the structured

methodology, and have certain knowledge of project planning

and management.

Intended audience Project managers •

System analysts •

System engineers •

QA Managers •

Procurement Managers •

Languages English •

Spanish •

Advanced Course on Requirements Engineering with IRQA

Content

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

Page 6: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 6

A one-day workshop, Advanced Requirement Management

with CaliberRM describes the advanced activities, specifically

Requirements Baseline, Document Factory and the roles

responsible for those activities.

GoalThe 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.

ParticipantsBusiness Analysts, Requirements Analysts, Technical Direc-

tor, QA Manager.

Previous knowledgeCaliberRM Essentials.

Advanced Requirements Management with CaliberRM Advanced Requirement Management with CaliberRM is a hands-on workshop that presents advan-

ced RM features using the CaliberRM tool.

Content

Course: Advanced Requirements Management with CaliberRM Day(s): 1

COURSE CONCEPTS

Requirements BaseliningConcepts•

Defining Requirements Baseline Scope•

Requirements features in CaliberRM•

Best practices regarding Baseline Require-•ments

Maintaining Requirements BaselinesControlling Requirements Baseline•

Controlling versions of Requirements Base-•line

Changing Baselines properties•

Comparing Baselines contents•

DocFactoryHow to create Doc Factory’s templates•

Doc Factory’s commands, keywords and •operators

Special tables and formatting rules for docu-•ment extraction

Advanced document extraction controls with •Doc Factory

Creating & Initializing Requirements Baselines

Baseline creation through CaliberRM •

Defining a Baseline “signatories”•

Defining a Baseline “signature meaning” •

Automatic Baseline maintenance notification •

Baseline’s initialization•

Maintaining Baseline SignaturesLocking and notification of a Baseline •

Adding signatures and meaning to a Baseline•

Details about signatures and reports•

Best practices about Baseline’s signatures•

ImportingStructure and re-use •

Agreeing new re-usable requirements•

Page 7: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 7

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

in the basic IRQA features, such as requirements capture and

management, using the tool.

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

presentations, introducing the advantages of performing an

adequate requirement management.

It also includes some practical exercises to be performed with

IRQA and a brief introduction to the requirement concept.

Prerequisites Basic knowledge about Software Engineering and its classical

life cycle.

1. Introduction to Requirements Engineering

2. Getting started with IRQA

3. Requirements capture and management

4. Organization of the system specification

5. Reports generation

Intended audience Project managers •

System analysts •

System engineers •

QA Managers •

Procurement Managers •

Languages English •

Spanish •

Basic Course on Requirements Engineering with IRQA

Content

Course: Basic Course on Requirements Engineering with IRQA Day(s): 1

Page 8: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 8

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

requirements analysis, including creating requirements,

collaborating with other interested parties, and publishing

approved requirement baselines.

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

face to accomplish these tasks and will discuss how to adapt

the interface itself so that each analyst may have a personal

view of the requirements information.

During the course, you will learn not only the CaliberRM pro-

duct features but also how to utilize them to manage evolving

requirement definitions.

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.

Overview of Requirements Management

Conceptual overview of Requirements Ma-•nagement

Requirements Management terms and •definitions

Getting Started with CaliberRM Technical Architecture •

Structure of CaliberRM •

Logging-On to CaliberRM •

Changing user options •

Accessing CaliberRM’s Help •

Entering Requirements in CaliberRM Creating Requirements •

Editing and Saving Requirements •

Moving Requirements •

Deleting Requirements •

Creating Requirements from MS Word •

Importing Requirements from MS Word •

Collaboration Threaded discussions •

Requirements owners and assigning respon-•sibility

Notification and status •

Sharing requirements across projects•

You will also learn how to define dependency relationships

between requirements and across development technologies as

well as reporting capabilities so that you can extract critical

development metrics from your requirements repository.

ParticipantsThose who are new to CaliberRM and anyone involved in the

definition, review, or approval of requirement specifications.

Previous knowledgeWorking knowledge of Windows operating system.

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

led discussion and self-paced exercises.

After completing this course, you will be able to effectively

use CaliberRM for any requirement specification activity.

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.

Content

Course: CaliberRM Essentials Day(s): 1

Page 9: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 9

GoalDefining High-Quality Requirements course describes how to

specify high-quality requirements for a software or systems

development project and avoid common pitfalls. It also helps

anyone reviewing or using requirements to identify common

requirement problems.

Sessions give students experience in techniques for eliciting

customer input, distinguishing requirements from design,

writing precise, unambiguous functional requirements, speci-

fying quality attributes, choosing alternative ways to represent

requirements, reviewing requirements and identifying common

ambiguities.

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

needs of each specific audience, such as having students work

with requirements pertinent to their own development project

or using a specific requirements elicitation tool.

ParticipantsThis course will be useful to anyone who has to define, review,

or use requirements on a software or systems development

project.

Requirements Engineering Process System Development •

Software Development •

Agile Requirements Engineering •

Tool Support•

Requirements ElicitationGood Elicitation Practices •

Common Elicitation Techniques •

Interviews •

Workshops •

Surveys •

Use Cases •

User Stories •

Prototypes •

Visual Storyboards •

Writing Requirements Defining Clear Objectives •

Different Types of Requirements •

Writing Quality Requirements •

Considerations for Maintenance Projects •

Structured English•

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

Identify and understand different kinds of requirement •

engineering processes

Choose and apply a suitable requirements elicitation •

technique

Differentiate objectives from the solution•

Understand the purpose of different types of requirements•

Describe the characteristics of high-quality requirements •

Write functional requirements and quality attributes that •

are more precise, richer in detail, less ambiguous, and

more actionable than before

Review and provide feedback on requirements written by •

others.

FormatApproximately 70% lecture and 30% group discussions and

exercises.

Defining High-Quality RequirementsThis course will be useful to anyone who has to define, review, or use requirements on a software or

systems development project.

Content

Course: Defining High-Quality Requirements Day(s): 1

Reviewing Requirements Ambiguity Review Checklist •

Confusing Constructs •

The Language Barrier •

Jargon and Unnecessary Complexity•

Page 10: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 10

Effektiv Kravhantering

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

Ett kurssamarbete mellan

Combitech och Nohau

Nödvändig för att överlevaKrav är den grund som alla utvecklingsprojekt vilar på – utan

en fungerande kravhantering riskerar projekten att kollapsa,

vilket innebär både förseningar och ökade kostnader.

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

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

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

överens med kundens önskemål.

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

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

utvecklare som chefer.

FörkunskaperInga speciella förkunskaper krävs.

Målet med kursenEfter kursen ska du ha fått en genuin förståelse för kravhan-

tering och dess betydelse för ett lyckat utvecklingsprojekt.

Beskrivning

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

ett antal olika branscher. Ett stort fokus läggs på att identi-

fiera, hantera och om möjligt förebygga de problem som är

vardag i de flesta utvecklingsprojekt.

InledningViktiga frågor att besvara:

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

Vad är syftet med krav?•

Hur förhåller sig kundkrav till andra krav?•

Vad är ett bra krav?•

Finns det risker med krav? •

Kravhantering i ett perspektivFaktorer som påverkar implementeringen av en kravhante-

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

hur kraven används, vilken bransch en organisation verkar

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

toder som används.

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

enkel kravprocess komplicerad.

InsamlingInsamling av krav syftar till att analysera och identifiera

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

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

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

DokumentationHur krav dokumenteras beror bland annat på vilka intres-

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

förstå kraven.

Bland det viktigaste med en kravdokumentation är att den ska

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

en direkt framgångsfaktor för alla utvecklingsprojekt.

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

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

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.

Verifiering och valideringSyftet 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

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

ningar att möta kundens krav.

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

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

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!

FörvaltningFörvaltning av krav handlar bland annat om hantering av

kravändringar. Att kraven ändras under ett utvecklingsprojekt

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

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

vändning av krav.

Kurs: Effektiv Kravhantering Dag(ar): 2

Page 11: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 11

Inledning•

Kravhantering i ett perspektiv•

Insamling•

Dokumentation•

Prioritering•

Verifiering och validering•

Förvaltning•

Övningar och dialog•

Innehåll

Övningar och dialogReflektion och dialog kring centrala frågor•

Praktiska övningar kring:•

Kravinsamling•

Kravformulering och dokumentation •

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

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

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ål-

ler många praktiska övningar.

Vi låter det gå en tid mellan kursdagarna, för att ge delta-

garna 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.

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

bok knuten till kursen.

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

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

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

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

Page 12: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 12

Grundläggande KravhanteringEtt 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.

Ett kurssamarbete mellan

Combitech och Nohau

Praktiska övningar och viktiga lärdomarI korthet innebär det att formulera bra krav och därefter ta

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

sitt arbete till de uppsatta kraven. Denna kurs ger deltagarna

en enkel modell för att hantera krav.

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

styrda/påverkade av krav i sitt arbete.

FörkunskaperInga speciella förkunskaper krävs.

Målet med kursenEfter kursen ska du ha fått grundläggande kunskaper om

kravhantering och dess betydelse. Hur krav identifieras, for-

muleras och verifieras.

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

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

praktiken.

BeskrivningDet ä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å

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

teras.

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

fylls. Detta fordrar samverkan mellan flera intressenter under

hela systemets livscykel.

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

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

gier som kan användas.

Identifiering•

Formulering•

Prioritering•

Verifiering och validering•

Underhåll•

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

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

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

FormuleringKravhantering handlar mycket om kommunikation. Därför är

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

kriterier för bra krav.

Dessutom kommer vi att prata om uppbyggnaden av speci-

fikationer och hierarkier av specifikationer. Vi övar på att

formulera de krav som vi identifierat tidigare.

PrioriteringAlla krav kan inte vara lika viktiga och vi behöver veta prio-

riteten för att styra mängden tester och implementationsord-

ning. Vi går igenom olika sätt att prioritera krav.

Verifiering och valideringAlla krav måste kunna verifieras. Vi går igenom olika strate-

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

kravspecifikation för systemet vi tittat på tidigare.

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

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

underhåll vid arbete med likartade produkter.

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

ringar i systemet vi jobbat med.

KursuppläggHur förmedlar man kunskap så att sammanhang och mönster

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

Innehåll

Kurs: Grundläggande Kravhantering Dag(ar): 1

Page 13: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 13

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

sponsible for requirements, testing or the overall development

process.

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

requirements: eliciting, defining, linking to development-time

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-

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

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

different products or product families. You also learn how to

participate in other quality processes related to RBT, such as

project management, release control, and change manage-

ment.

Using your own pilot project as an example, the workshop

produces concrete deliverables which help the organization to

quick-start the RBT process.

These are typically produced using appropriate supporting

technology, such as CaliberRM requirements management

The exact content is always agreed before-

hand. Examples of focus areas include:

Requirements-based testing processOverall RBT process workflow•

Supporting technologies•

Integrations to other processes•

Process measures•

Requirements structureTypes and structure of the requirements•

Traceability rules•

Process for migrating or archiving old •requirements

Requirements workflowWorkflow (statuses, roles and responsibili-•ties) for the requirements

Tasks for each role during each step in the •workflow

Reports needed during each step in the •workflow

Baselines, when they are created and how •they are managed

Test Structure and traceabilityCategories, organization and types of tests•

Traceability to requirements•

Process for executing the tests and reporting •the results

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

own environment or in a portable demonstration set-up.

The workshop requires prior arrangements to ensure that a

suitable pilot project, scope of the workshop, and supporting

technologies are agreed on

GoalOn completion of this course, the customer team has (with the

help of the instructor):

Identified high-benefit improvement areas within their •

requirements and test processes

Evaluated and tested alternative solutions to optimize •

selected processes

Produced supporting documentation and templates for •

RBT

Implemented and piloted the solution (partially) with •

relevant technology

FormatApproximately 15% lectures and 85% group discussions and

teamwork.

Requirements-Based Testing WorkshopThis workshop helps customer to practically implement focus areas of requirements-based test-ing,

typically as a part of a broader process improvement activity.

Content

Workshop: Requirements-Based Testing Day(s): 1-2

Methods for measuring test coverage and •implementation progress

Integration between test and requirements •tools

Parallel developmentStrategy for parallel development (e.g. pro-•ducts, releases, customer projects)

Strategy for sharing common requirements •(e.g. regulatory)

Strategy for requirement and test branches •for separate development tracks

Page 14: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 14

Software Quality and Test

Page 15: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 15

Architecture of Medical

Devices Containing Embedded Systems

Course: Architecture of Medical Devices Containing Embedded Systems Day(s): 2

Content

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.

ExercisesExercises are performed on an embedded system.

AudienceEngineers working on the design of medical devices.

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•

Page 16: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 16

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

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

vely utilize your Black Duck solutions.

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

your particular needs, objectives, skills and processes so a

customized curriculum can be delivered.

By customizing the training, students learn how to use their

solution in a course that is more relevant to their daily jobs

which enables them to quickly be more productive.

TrainingA customized curriculum is created and delivered based on

your particular needs, objectives, skills and processes.

The curriculum covers the following areas:

IntroductionLearn how protexIP performs code identification and license

compliance.

Project Management and IdentificationLearn to use protexIP to identify and manage the inventory of

open source, 3rd party and proprietarycomponents that make

up your projects.

Command Line ToolLearn to run analysis from the command line, which is used

for scripting protexIP automation.

License ManagementLearn how protexIP involves attorneys in the code manage-

ment process, from creating custom licenses and obligations

to implementing review processes.

protexIP AdministrationCovers topics such as system defaults, update scheduling and

backups.

Black Duck Protex Quick StartThe Black Duck Protex Quick Start is a 3 day training session, conducted at your site,

regardless of its location.

Content

Course: Black Duck Protex Quick Start Days: 3

Day One:Introduction and walk through•

Training on project management and iden-•tification

Optional: do this as a “hands-on” session •with instructor supplied projects

Prepare and run analysis on an actual •project

Day Two:Training on License and Component Mana-•gement

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

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

Day Three:Hands on session with legal team•

Discuss/design procedures for using protexIP•

Continue baseline work on actual projects•

Page 17: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 17

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

ronment around C development.

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.

Some sample subjects from the course include software deve-

lopment as a team activity, defensive programming, psycho-

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 algo-

rithms and data structures to those who have academic expe-

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

the subject to those who have not previously encountered it.

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

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

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.

Previous knowledgeThis course requires very good knowledge of C.

It is an advantage for you as a participant if you have ex-

perience from working in industrial software development

projects.

Practical exercises / ToolsThe course contains both discussion exercises and computer

exercises.

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

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.

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

practical C development.

Content

Course: C Engineering Days: 3

Page 18: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 18

Kurs: Certifierad Testare Grundnivå - enligt riktlinjer från ISTQB och SSTB Dag(ar): 4

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

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

utvecklare, projektledare och kvalitetsansvarig.

Vi erbjuder i samarbete med Combitech en grundläggande

testkurs med möjlighet att certifiera sig inom programvaru-

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

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

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

Vem vänder sig kursen till?Alla som har ett intresse av programvarutestning, såsom

testare, testledare, programmerare, projektledare eller kvali-

tetsansvarig.

FörkunskaperDu får gärna ha varit i kontakt med test i något sammanhang,

men det är inte ett krav.

Mål med kursenEfter 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.

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

begrepp eller teknik i ett givet sammanhang.

BeskrivningKursen 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. Prin-

ciperna 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å:

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, •

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

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

exempel på testbegrepp.

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

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

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

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

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?

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

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

Efter kursen, dag fyra, genomförs en examination. Med god-

känt resultat är du sedan ”Certifierad testare grundnivå”.

Ett kurssamarbete mellan

Combitech och Nohau

Certifierad Testare Grundnivå - enligt

riktlinjer från ISTQB och SSTB

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

Page 19: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 19

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).

GoalThis course provides in depth knowledge in the use of the

Klocwork suite and how it is used within a build and software

development environment.

The student will be taught in depth knowledge in:

To detect, fix and manage defects and security vulnerabi-•

lities of all types

To visualize software structure and control, detect and •

fix anomalies

To generate software architecture and other models•

Day 1Klocwork and its Products•

Klocwork Client and Server Architecture •Overview

SQLCMD & TOOLBUS Sample Projects•

Working with Klocwork Admin•

Build Integration Strategies•

Klocwork inSpect Overview•

Working with Klocwork Project Central•

Klocwork Working with Code Problem •Reporting

Klocwork inForce Overview•

Working with Klocwork inForce•

Day 2Working with Security Problems Reporting•

Working with Metrics Reporting•

Working with Interface Problems Reporting•

Working with Include Problems Reporting•

Klocwork inSight Architect Overview•

Working with Klocwork Entities•

Working with Klocwork Relations•

How to work with Klocwork’s powerful queries and fil-•

ters, architecture rules and functional behaviour know-

ledge base

To generate, use and understand software metrics•

To generate, use and understand metric trending and •

distributions

How to take advantage of and administer the setup and •

configuration options

ParticipantsRecommended for technical leaders, assigned Klocwork

prime, technical managers, key developers and architects.

Previous knowledgeBasic programming is recommended to be able to obtain the

most.

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).

Content

Course: Klocwork Insight Day(s): 3

Day 3Klocwork approach to Architecture Impro-•vement

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 Re-•porting

Klocwork Intellect Overview•

Page 20: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 20

You will uncover new ways to manage user accounts and

execution server locations; configure projects; manage test

requirements; create test and execution definitions.

GoalThrough hands on exercises, you will also upload and schedule

SilkTest and SilkPerformer projects for manual and unat-

tended testing, and you will also review the different reports

available in SCTM.

ParticipantsBusiness 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.

COURSE CONCEPTS

Introduction to SCTMSCTM Architecture•

SCTM”s Interface•

Setting the StageWhat are Requirements?•

Defining RequirementsRequirements Unit•

Requirements Hierarchy•

Office Import Tool•

Creating a Test PlanGenerating a Test Plan•

Assigning Test Definitions to Requirements•

The Execution UnitDefining Test Executions•

Assigning Test Definitions to Test Execu-•tions

Configuring Deployment Environments•

Scheduling Test Executions•

Configuring Execution Dependencies•

Test Monitoring and ReportingProjects Unit•

Overview Tab•

Global Filters and Custom AttributesCreating Custom Attributes•

Creating Global Filters•

Using Filters to Display Information•

Project ManagementThe Settings Page•

Project Settings Tab•

Creating Custom Requirement Properties•

Creating Custom Step Properties•

Change Notification Tab•

Previous KnowledgeFamiliarity with a Windows environment•

Ability to navigate in an Internet or intranet environment•

Have a basic knowledge of software quality optimization•

Working knowledge of SilkTest and/or SilkPerformer •

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

quality.

Content

Course: Managing Quality With SilkCentral Test Manager Day(s): 3

System AdministrationThe Administration Pages•

Users and User Groups•

Creating a New Project•

Administrative Reports•

Source Control Profiles•

Products and Platforms•

Global Schedules•

Bringing It All TogetherSCRN and Software Quality Optimization•

Issue ManagerUsing Inboxes•

Entering New Issues•

Processing Issues•

Taking Action on Issues•

Issues, Queries and Reports•

Generating Reports•

Page 21: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 21

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.

The course examines the activities and processes required for

effective software configuration management, and focuses on

the use of StarTeam to create and manage projects and pro-

duct 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

processes.

GoalUpon completing this course, you will:

Understand the activities required for effective software •

configuration management.

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

Know how to create and use views to manage product •

releases and configurations.

Know how to use labels and promotion states for revision •

identification.

Be able to configure security policies for projects, views, •

folders and items.

Be able to define a change control process.•

Be able to produce reports when performing tasks like •

auditing or baseline verification.

All concepts are taught through a combination of instructor-

led discussion and self-paced exercises.

ParticipantsIndividuals tasked with defining the organization’s configura-

tion management processes and deciding how StarTeam will

be implemented in the organization, anyone involved with the

creation and management of projects and configurations in

StarTeam.

Previous knowledgeStarTeam Essentials•

Working knowledge of the Windows operating system•

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 soft-ware configuration management processes.

Course: Managing StarTeam Projects Days: 3

COURSE CONCEPTS

Welcome and IntroductionConfiguration Management and StarTeam•

Configuring Projects and FoldersCreate 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 PoliciesConfigure access rights for users and groups•

Defining a Change Management Process

Define an effective change management pro-•cess using Change Requests and workflow

SCM Auditing and ReportingDefine and generate measures and configura-•tion status audits using reports and graphs

Content

Course Wrap-UpThis module summarizes the acquired skills •and suggests the next steps.

Page 22: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 22

The course demonstrates important aspects of code reviews

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

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

The topics of the course are as follows:

Motivations for code reviews: The whys and whats.Detection of bugs.•

Knowledge buildup.•

Optimization of processes – feedback.•

Quality awareness.•

Types of code reviews, different levels of formalityThe least formal: Code reading at the coffee table.•

Prepared code reviews.•

Formal roles in reviews.•

Prepared code review with reading.•

Data gatheringRemark levels.•

Error classes.•

Code review protocols.•

Handling of code review protocols.•

De-personalizing results.•

Statistics.•

A review meetingThe role of the meeting organizer.•

Leading a review meeting.•

Attitudes.•

Scheduling and planning review meetings.•

Feedback into the processCorrecting faults.•

Using statistics.•

Organizing a review teamPersonality types.•

Different views – different experiences. •

How to mix a team.

Typical problems in C code

Focused reviewsTypes of focused reviews: •

Memory, performance, particular error types.

Organizing a focused review.•

ToolsLint and similar tools.•

Compilers.•

The C preprocessor.•

Coding guidelinesOverview of coding guidelines.•

The MISRA coding standard.•

Safe C subsets.•

Reviewing C Code

Course: Reviewing C Code Days: 2

Page 23: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 23

Take BDL scripting skills to the next level.

GoalAs a Software Quality Optimization engineer you must ensure

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

root-cause information at your fingertips;

Implement the necessary content verification to ensure •

the functionality of the application under high load

conditions;

Properly design data driven and page driven load tests; •

Share data across agent machines; •

And manage dynamic forms and file uploads.•

ParticipantsSoftware Quality Optimization Performance engineers •

who need to enhance their SilkPerformer BDL scripting

skills to maximize the effectiveness and accuracy of their

load test projects.

Anyone involved with the management and versioning of •

files, change requests, requirements or tasks.

Previous KnowledgeThree or more months experience with SilkPerformer •

Familiarity with script randomization •

Experience in defining custom functions •

Three or more months experience with SilkPerformer •

Basic knowledge related to verification and parsing •

functions

Familiarity with include •

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

Content

Course: SilkPerformer: BDL Scripting Techniques Day(s): web

Page 24: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 24

A comprehensive examination of load testing methodology

with SilkPerformer.

GoalDefine, create, execute, and explore all six workload mo-

dels. 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.

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

the TrueLog Explorer to troubleshoot scripts and use the Per-

formance Explorer and Results Repository to analyze results.

ParticipantsQA project leaders, testers, and engineers who need to develop

a working knowledge of a load testing methodology and Silk-

Performer.

Implement Internet load testing methodology •steps

Identify components of an Internet in-•frastructure

Create a test plan•

Configure and record a test script•

Compile and try script•

Utilise the TrueLog Explorer to troubleshoot •scripts

Randomise data to create realistic loads•

Modularise code through functions and •transactions

Create profiles to vary connection speeds and •browser types

Establish and confirm a Baseline•

Explain and execute all six workload models•

Monitor agents to ensure a valid test•

Previous KnowledgeFamiliarity with a Windows Environment •

Ability to navigate in an Internet or intranet environment •

Familiarity with scripting or structured programming •

Knowledge about basic concepts related to load testing, •

Web architecture and protocols

Experience testing Web applications (manually)•

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

SilkPerformer: Modeling & Implementing Load Tests

Content

Course: Modeling & Implementing Load Tests Day(s): 4

Use the Performance Explorer and Results •Repository to explore results

Interpret basic load test results•

Page 25: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 25

Valuable instruction for those who want to improve their skill-set in load test results analysis and interpreta-tion.

GoalLeverage 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

can hamper your system infrastructure.

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

the Performance Explorer and the Server Analysis modules.

Note: The Results Analysis & Correlation course includes a

Level 3 competency test at its completion.

Upon successful completion of 3 competency tests and a

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

Determine if the workload and bandwidth •requirements were met

Create custom reports using the Overview •Report

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

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

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

Combine and correlate client side measures •for effective results interpretation

Remerge and interpret data from load tests •using distributed agents

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

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

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

Comprehensive Certification Exam, a user will be recognized

as a Performance Test Management Expert (STME).

ParticipantsQA project leaders, testers and engineers who need to build

or improve their skills related to load test results analysis

and interpretation.

Previous KnowledgeSuccessful completion of the Modeling & Implementing Load

Test course (or 3+ months SilkPerformer working expe-

rience).

Knowledge of basic concepts related to statistics.

ToolsTheory/Practice: 40% theory and 60% practice

SilkPerformer: Results Analysis & Correlation

Content

Course: SilkPerformer: Results Analysis & Correlation Day(s): 4

Page 26: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 26

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

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

timescale.)

A comprehensive examination of SilkPerformer’s ability to

test and monitor SAP applications and infrastructures.

GoalThis 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

scripts through the SAPGUI Client API and monitoring the

infrastructure.

In addition, this course will also review the integration of

SAP based SilkPerformer projects with SilkCentral Test

Manager and SAP eCATT.

ParticipantsQA project leaders, testers and engineers who need to develop

their SilkPerformer skills to test and monitor SAP systems.

Determine if the SAP client-server require-•ments are in place for testing with SilkPer-former

Configure SilkPerformer for SAP based •testing

Record and playback SAP based scripts•

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

Define and execute functional tests and load •

tests

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

Prepare a SAP project for reuse in SCTM •and SCPM

Leverage the integration of SilkPerformer •and SAP eCATT

Previous Knowledge Awareness of functional testing and load testing concepts•

Experience using SilkPerformer for web and/or client-•

server testing

Expertise with SilkPerformer’s BDL scripting language•

The ability to manage BDL verification and parsing •

functions

Experience using the parameter wizard and implementing •

project attributes

Familiarity with SAP environments and the SAPGUI •

Client

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

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

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

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

This application can be installed on a desktop and will suffice

the course requirements.

SilkPerformer: Testing SAP Applications

Content

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

Page 27: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 27

A crash course in achieving reliable object recognition. Exa-

mine the fundamentals of object recognition.

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 environ-

ment.

GoalStudents will leave this course with the ability to leverage the

Class, Identifier and Tag relationship, create fully qualified

tags and test reliably dynamic applications.

ParticipantsExperienced SilkTest testers and engineers who are ready to

take their SilkTest skills to the next level.

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•

Previous KnowledgeTo succeed in this course, students must have:

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 •

ToolsTheory/Practice: 30% theory and 70% practice

Course Material: We use course material in English from

Borland.

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

Content

Course: SilkTest: Testing Dynamic Application Day(s): web

Page 28: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 28

A great introduction to the true power of SilkTest designed

for those who want to take their verification testing capabili-

ties to a higher level.

GoalLearn how to organize and manage your verification tests

using the test planning tool. Use SilkTest recorders to transi-

tion from manual to automatic testing.

Utilize SilkTest’s 4Test scripting language for verification

testing and enhance your test case functionality using bran-

ching and looping statements.

In just four days, you’ll be able to plan and validate tests

against your application and report your test results to upper

management.

SilkTest and the Testing Process The SilkTest Architecture •

The Testing Process •

Projects and Plans SilkTest Projects •

Creating TestPlans •

Using Attributes in TestPlans •

Creating a Master Plan •

Capturing the Application SilkTest Object Recognition •

The Basic WorkFlow Bar •

Capturing State of an Application •

Capturing Window Declarations •

Application Verification Multiple Property Verification •

Testcase Failure •

Linking Tests to the TestPlan •

Alternate Verification Techniques •

Creating a Project Starting a New SilkTest Project •

Capturing Window Declarations •

BaseState and User Defined BaseState •Method

Using Invoke Methods •

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

visors who need to develop a working knowledge of Borland’s

testing methodology and want to capitalize on the benefits of

utilizing the 4Test scripting language in their tests.

Previous KnowledgeNavigate a GUI environment•

Use a web browser•

Test web or GUI applications (manually)•

Use structured programming and scripting techniques.•

SilkTest: Verification Testing

Content

Course: SilkTest: Verification Testing Day(s): 3

Beyond the Recorder The Scripting Process •

Autocomplete •

Adding Information to the Results File •

Error Trapping •

Data Types and Variables •

Concatenation and List Structures •

Using Records •

Looping and Branching Looping •

Branching•

Page 29: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 29

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

oriented benefits of the 4Test language.

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

to:

declare new window classes; •

store test data within object declarations; •

write new methods and verification properties; •

test non-standard (custom) objects; •

develop an API for supporting custom objects; •

access unseen objects using low-level events; •

and test Java and Visual Basic objects. •

Attend this course to maximize your use of the 4Test langu-

age within four days.

Introduction Advanced Object Oriented 4Test •

Reviewing Fundamental Features •

Object-Oriented Techniques Storing Common Routines as Methods •

Storing Data as Data Members •

Applying Object-Oriented Techniques to Classes

Creating Methods for Classes •

Redefining Built-In Methods •

Adding Properties •

Redundant Declarations •

Introduction to Custom Objects Supporting Custom Objects •

Defining a Custom Test API Determining When to Define a Custom Class •

Adding Properties to a Custom API •

Defining an API at the Object Level •

Evaluating Available Resources Understanding the Custom Object •

Developing the Test API Strategies for SubClasses of Standard •Objects

Strategies for Non- Standard Custom Objects •

Graphical Custom Objects•

ParticipantsQA developers and project leaders who want to maximize

their automated testing abilities.

Previous KnowledgeExperience with all standard SilkTest functionality cove-•

red within the Verification

Testing with SilkTest course •

Ability to build a SilkTest frame including Windows De-•

clarations, Application States and Invoke Methods

Ability to manage test case logic flow through looping •

and branching constructs

Ability to create 4Test functions that take arguments and

return values

SilkTest: Verification Testing Advanced

Content

Course: SilkTest: Verification Testing Advanced Day(s): 3

Page 30: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 30

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

or improved systems ahead of your competitors.

The embedded systems are constantly growing bigger and

becoming more complex while the development cycles are get-

ting shorter and shorter. We just cannot do everything all over

again for each project anymore.

Software architecture has received great attention lately, and

the importance of it to succeed with the development of mo-

dern systems is becoming clear, i e to support maintenance,

extension, portation and reuse.

Most of todays system have some kind of architecture, but

very few work actively on defining the systems architecture.

GoalTo get objectives for the concept of and the characteristics ru-

ling SW architecture and some of the architectural ways that

can be used in connection to embedded systems development.

IntroductionTo understand the concept of SW architectu-•re is of utmost importance when it comes to how and where to implement an architecture in your system.

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

Software architectureBuilding a software architecture can roughly •be described as breaking the system down into components, and

define their mutual relations as well as, •

defining the principals and rules for the •construction and development of connections and components over time.

SW architecture could give us a new vocabu-•lary to describe our systems. This course will present some of it.

This training course will not present “the ultimate solution”

but rather create individual awareness and reflection.

ParticipantsThis training course is designed to suit project managers,

product managers, system designers and system architects as

well as software designers.

Previous knowledgeYou have previous experience of system design and modeling

of SW in embedded systems.

Practical exercises / ToolsSeveral exercises during this course. No tools are used.

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.

Content

Course: Software Architecture for Embedded Systems Days: 2

A training course cooperation

between Combitech and Nohau

Page 31: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 31

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

components and platforms. Software architecture is there-

fore 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.

Pre-knowledgeYou should have basic knowledge about real-time systems.

Goals of the courseThe goal with this course is to set focus on architectural deci-

sions during the design phase of a system.

We also create a common conceptual view for the design and

architecture of a real-time system.

DescriptionHigher demands from the markets do not just affect larger

system like telephone switches and aircraft control systems,

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

8-bits microcontrollers.

We will describe how requirements, both functional and

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

architecture can be described, both textually and graphically.

We show how design patterns can solve general problems and

we also evaluate the architecture for a few various products.

A definition of architecture for real-time systemSoftware architecture is a concept with many different but

similar definitions.

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

software architecture for small real-time system that cor-

responds to the commonly known definition for architecture.

Relationship between requirements and architectureHow is the architecture created from the product requi-•

rements?

Which requirements have the greatest impact? •

This course describes functional requirements and quality

requirements and how they are used to form the architecture.

Approaches to describe and document architectureHow should the architecture be documented? •

Which documents should be created? •

What should be included in the description of an archi-•

tecture?

Using design pattern is a way to document parts of the archi-

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

the architecture, which the course proves.

Review of some useful patternsDesign patterns provide standard solutions for design pro-

blems within the software development area.

During the course we will provide some examples of design

patterns that can be used to solve architectural problems for

small real-time system.

Concepts from real-time programmingThis course describes common concepts from the real-time

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

ronization’.

These concepts are important to keep in mind when forming

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

thorough knowledge regarding them is required.

Example of architecture in different real-world productsThe course provides a few examples of architecture from

some existing small real-time system.

The section describes issues such as which requirement are

important for the architecture and how well the architecture

realizes these requirements.

Software Architecture for small Real-time

Embedded Systems

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

A training course cooperation

between Combitech and Nohau

Page 32: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 32

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 real-•world products

Exercise•

ExercisesThe course contains a larger exercise containing a product

description, where the participants shall identify architecture

driven requirements, create architecture, evaluate the requi-

rements against it and apply design patterns to transform and

improve the architecture.

A number of smaller exercises are also included, where the

participants practice on specific problems.

Course directionsThe course is based upon a well-balanced blend of theory, fol-

lowed 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.

Course literature”Design and Use of Software Architectures” by Jan Bosch

Course materialAll participants obtain a binder that contains the presentation

material as well as the examples and templates that are used

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-

day work.

Page 33: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 33

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

architecture reconstruction of an existing software system.

The workshop can actually last a whole week in case of a big

code base or multiple projects.

ParticipantsThe workshop is aimed for software architects or domain

experts

GoalAt 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.

Activities in the workshopComponents discovery using a static analysis •tool (it doesn’t have to be Klocwork).

Identification of component/module inter-•faces.

Software architecture assessment (defects, •metrics).

Your workshop leaderMiguel Miranda, senior software engineer, is your workshop

leader. Since April 2006, he has supplied professional servi-

ces for Klocwork in Europe.

- This workshop is unique and much appreciated. I have

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

Motorola and Intel, and this is actually my experience using

Klocwork in a variety of projects, says Miguel.

Software Reengineering - Workshop

Content

Workshop: Software Architecture Discovery / Reconstruction Day(s): 3

Page 34: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 34

StarTeam Advanced: Server Administration introduces the

configuration manager to the advanced skills of configuring a

StarTeam server environment.

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

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 mana-

ging repository growth.

During this course, you will learn the essential components in

the StarTeam product architecture and their basic adminis-

trative management methods and techniques.

You will also learn how to define a reliable backup and reco-

very procedure and how to configure primary and secondary

repository security strategies.

StarTeam Architecture System architecture •

Connection methods •

System Recommendations Recommended hardware and software •platforms

Connectivity options •

Server Configuration Server installation •

Client installation •

Configure the StarTeam server •

Repository structure Identity space considerations •

Understand location options •

Backup and Restore Database maintenance •

Repository configuration files •

Other Server Settings System policies •

Remote administration •

User Manager Using Users and Groups •

Granting Privileges •

Creating Projects Setting up New Projects •

Identifying Working Directories •

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

casting facility, MPX, and how to customize the StarTeam

data schema.

GoalYou will learn how to install and upgrade StarTeam and how

to create team members and administrate their authority.

ParticipantsAnyone responsible for administering StarTeam projects,

anyone involved in the maintenance and customization of

StarTeam software installations.

Previous knowledgeStarTeam Essentials.

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

led discussion and self-paced exercises.

StarTeam Advanced: Server Administration

Content

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

Security Determining Access Rights •

Security Levels •

Using Groups to Manage Privileges •

Field Customization Defining Custom Fields •

Using Custom Fields •

StarTeam® MPX Server Installing the MPX Server •

Configuring the MPX Server•

Page 35: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 35

StarTeam Essentials introduces the basics of managing

software configuration with StarTeam; the necessary skills to

easily and safely version files, manage change requests, and

actively collaborate with coworkers through requirements,

tasks and discussion threads related to development.

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

lopment activities, ranging from managing files to satisfying

new product requirements to resolving reported software

defects.

Throughout the course, you will use the StarTeam interface

to accomplish these tasks and learn how to integrate this into

your existing development processes.

Upon completing this course, you will:

Understand the problems Configuration Management •

solves, CM purpose, CM roles, StarTeam benefits and

StarTeam architecture (client, server)

Welcome and Introduction Configuration Management and StarTeam •

Navigating StarTeam Projects Open and explore StarTeam projects and •views

Working with Files Access files, add new files, and update exis-•ting 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

Identifying and Accessing Item Revisions

Access and work with individual item revi-•sions, including;

checking/opening a specific file revision, •

accessing item revisions by revision •number,

date, •

label, •

promotion state •

Participating in a Change Management Process

StarTeam-specific skills required to parti-•cipate in a Change Management process, including creating and updating

Understand the StarTeam project structure and be able •

to navigate StarTeam projects

Be able to access and update Configuration Items •

Be able to customize the way StarTeam displays item •

data

Know how to access previous CI revisions •

Be able to participate in Change Management processes •

Communicate with other team members using Topics •

ParticipantsNew users of StarTeam, anyone involved with the manage-

ment and versioning of files, change requests, requirements or

tasks.

Previous knowledgeNo special requirements for previous knowledge.

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

led discussion and self-paced exercises.

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.

Content

Course: StarTeam Essentials Day(s): 1

Change Requests Using Topics Communicating with other team members •Course Wrap-Up

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

Page 36: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 36

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

fewer malfunctions and software bugs visible to customers

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

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.

GoalYou 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

in a development process in a secure and structured way.

Using TDD gives you a very high-qualitative and structured

software development process.

This allows you and your project members to feel secure and

assured in your work. Your clients will also benefit from this

due to the high delivery and product accuracy.

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

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

Background, theories about TDD and com-•mon Agile (mobile processes)

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

Incitement for project managers and indivi-•dual programmers.

What can be tested automatic, what can not •bee tested by automatic?

How does one change its developing environ-•ment?

How does one maintains its test case?•

Practical exercises•

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

medium or large.

TDD applies to any development language.

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.

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

way through a staged project.

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

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

with diversified pre-knowledge and customers changing their

minds.

You will also be introduced to software that automates part of

the software development process.

LanguageThe course will be given in Swedish.

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

software development.

Content

Course: Test Driven Development Day(s): 2

Page 37: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 37

Kurs: Test i praktiken Dag(ar): 3

Test i Praktiken Erfarenhetsbaserad mjukvarutest av komplexa system.

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

Ett kurssamarbete mellan

Combitech och Nohau

Vilken roll har test?Målet med kursen är att ge deltagarna tillräckliga kunska-

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

används.

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

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

förhåller sig till varandra.

Teori och praktikfall knyts sammanEtt 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

och hur de påverkar testerna.

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

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

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

Planering av testResultatet av all testplanering ska finnas dokumenterat i en

testplan.

Beroende på projektets storlek och omfattningen av test kom-

mer planen att delas upp i testnivåer.

Vad ska finnas med i en testplan och vilka är mottagarna •

av den?

Hur påverkar standarder test och påverkar testplanen •

ö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.

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

het i teorin.

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

vi testfallen till ett minimum men att vi fortfarande kan visa

att vi har testtäckning?

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 exem-

pel på vad man förväntar sig att hitta i en testspecifikation.

Genomförande av testAtt exekvera testfall på ett felfritt system är enkelt men vad

händer när man inte får förväntat resultat?

Hur utreder man incidenter?

Hur ska fel rapporteras?

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

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

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

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

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

skapa felet och kunna påbörja felrättningen.

Vid verifiering av ett rättat fel ska information om t ex påver-

kade delar i systemet finnas med.

WorkshopKursen beskriver teoretiskt hur effektiv test ska bedrivas. För

att ytterligare belysa de teoretiska delarna kommer ett delsys-

tem att genomgå en testrunda.

Hjälpmedel för testPå 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.

Page 38: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 38

KursuppläggHur förmedlar man kunskap så att sammanhang och mönster

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

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

skaper och en djup praktisk förankring.

I vår värld måste alla teorier kunna omsättas i det dagliga ar-

betet. Just växlingen mellan teori och praktik är en grundsten

för våra kurser.

FörkunskaperInga formella förkunskaper krävs, men du förväntas ha till-

räcklig erfarenhet för att se utmaningarna med test.

KurslitteraturKursen bygger mycket på kursledarnas erfarenhetermen refe-

renser görs även till litteratur vilken skickas

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

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

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 veri-•

fiering av rättade fel

Workshop•

Hjälpmedel för test•

Page 39: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 39

This one-day course contains several presentations with seve-

ral practical examples.

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

tata++.

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:

Test script structure•

User interface wizards and options•

Check directives•

Stubbing•

Executing tests and checking results•

GoalYou 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.

You learn about Dynamic Integration Testing, where you ob-

tain knowledge about wrapping. Also, we compare wrapping

and stubbing, and present wrapping for dynamic integration

testing.

We will look into Advanced Coverage Analysis and Stand-

alone Coverage Analysis with Cantata++, and how to combine

coverage results:

Introduction•

Dynamic Unit Testing•

Coverage Analysis•

Dynamic Integration Testing•

Advanced Coverage Analysis•

Static Analysis•

Advanced Stubbing•

Applying coverage analysis to tests not driven by Can-•

tata++.

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-

lyse. We introduce you to Advanced Stubbing Techniques,

with:

Stubbing function pointers•

Stubbing macros•

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

Previous knowledgeYou should have basic knowledge of C programming.

Exercises / ToolsYou will work with several practical examples during the

training. We are setting up a test project environment and

Isolation testing a C maths() function.

We are achieving coverage ruleset criteria, trying Integration

Testing, and combining coverage analysis.

Also, we will have exercises in function pointers as parame-

ters to stubs and stubbing function pointers.

Unit Test with Cantata++ for C

Content

Course: Unit Test with Cantata++ for C Day(s): 1

Page 40: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 40

This one-day course contains several presentations with seve-

ral practical examples.

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

tata++. 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:

Test script structure•

Test Driver wizards and options•

Exceptions and Stubbing•

Executing tests and checking results.•

GoalYou 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.

We present White Box Testing and how you accessing private

data / methods.

We compare Black-Box and White-Box testing techniques for

C++ and adding Statement coverage criteria to a test script.

Via the presentation of Integration Testing you obtain know-

ledge about wrapping with Cantata++, comparing wrapping

and stubbing, wrapping for integration testing and adding

Decision Coverage criteria to a test script.

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

quence verification with Cantata++. We also learn Advanced

Introduction•

Dynamic Unit Testing•

Coverage Analysis•

White Box Testing•

Integration Testing•

Call Sequence Testing•

Advanced Coverage Analysis•

Static Analysis•

Coverage Analysis where we are talking about Stand-alone

Coverage Analysis with Cantata++ and combining coverage

results:

Applying coverage analysis to tests not driven by Can-•

tata++.

Analysing coverage results with Cantata++ Studio.•

Combining coverage results over multiple test runs.•

Analysing combined coverage results with Cantata++ •

Studio.

We also address the Static Analysis and its metrics and

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

production.

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

Previous knowledgeYou should have basic knowledge of C++ programming.

Exercises / ToolsYou will work with several practical examples during the

training. We are setting up a test project environment and iso-

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

coverage criteria, adding White Box tests and there adding

Statement coverage analysis to the List class test.

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

simulating hardware errors, adding call sequence verification

and learn how to combine coverage analysis.

Unit Test with Cantata++ for C++

Content

Course: Unit Test with Cantata++ for C++ Day(s): 1

Page 41: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 41

Embedded Development

and Debugging

Page 42: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 42

Android Application Development Introduction

Course: Android Application Development Introduction Day(s): 2

Course leaderPatrik Lindergren

Patrik Lindergren is one of the leading Embedded Linux spe-

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

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

with developing Board Support Packages and device drivers

for Linux and Open/NetBSD. He has also been working with

implementing extersions to PC BIOS like AMI and embedded

bootloaders like U-Boot and PMON2000.

CoursematerialCourse Binder•

Copies of all slides•

Appendix•

Extra materials•

AndroidOverview over Android•

Android history•

Development Tools•

Installing AndroidInstalling the Android SDK•

EclipseIntroduction to Eclipse•

Installing the Android plugin to Eclipse•

Using Eclipse for developing Android appli-•cations

Creating an Android Project•

Running and Debugging an Application•

Developing on Device Hardware•

AndroidThe register-based virtual machine•

Anatomy of an Android Application•

Android Application Model•

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•

Security and Permissions in Android•

Resources and Internationalization•

Signing and Publishing Your Applications•

USB memory•

Execise examples•

Software License agreements•

Images•

Source code•

Android examples •

Reference book: Professional Android Application Deve-•

lopment by Reto Meier

During the course excises are done in areas like installing

Android SDK, installing Eclipse plugin, developing sample

applications.

Content

Page 43: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 43

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

and the EU.

This training course aims to give a basic understanding of

what these requirements mean for engineers in design pro-

jects.

Course GoalAfter 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).

Regulatory framework EU / US •

Medical Device Directive•

Quality System Regulation•

Intended use •

Device classification•

Risk management•

Design controls and document controls•

Harmonised standards / concensus standards•

Technical File / Design History File•

CE marking•

510(k) application•

Documentation, especially of software•

AudienceEngineers working on the design of medical devices.

Basic Regulatory Training for Design Engineers

Content

Course: Basic Regulatory Training for Design Engineers Day(s): 1

Content

Page 44: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 44

C is still the most common language for programming micro-

processors. We offer you a complete introduction course that

gives you a kick-start!

This is mainly a hands-on seminar.

GoalYou will learn about datatypes, functions, operators, and

expressions. We also talk about standard libraries and pro-

gramstructuring. You will gain enough knowledge to start

programming yourself, you will have a good platform to start

for developing in C.

ParticipantsWe have had developers of embedded systems with no or little

prior knowledge of C in our minds as participants, when we

created this seminar.

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

C orientationOverview of the advantages and downsides •of C

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

StructuresHow the language is built and included parts•

DatatypesOverview of deklarations, integer types, etc.•

ConstantsNumber constants, character constants, •strings and constants in strings.

VariablesInitiatings, vectors and indexing•

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

Bit handlingShift and operator applications.•

FunctionsDeclaration of functions, definitions and •calls with parameters.

Pointers as parameters.•

Selfdefined data typesStructures and type declarations•

PointersAn orientation on pointers and the use of •such

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

programming in one language or the other, but not neces-

sarily C. Maybe you have old knowledge in C that you need to

freshen up?

Practical exercises / Tools This class has many exercises included, showing the advan-

tages of programming in C for microcomputers. Each theore-

tical part is followed by a practical exercise.

We perform the exercises on a PC under teacher’s supervi-

sion.

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.

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

Content

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

LibraryAn overview of standard functions and •libraries

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

Page 45: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 45

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

ming courses.

You will learn more about the advanced possibilities and

structures available in the language C.

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

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

GoalOur 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-

tions in you development process.

ParticipantsThis 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.

IntroductionWhat C language has meant and future pos-•sibilities, i.e. C++

Short retrospect (part I)Special C language-phrases / words •

Portable codeWhat to keep in mind with writing code pos-•sible to reuse in other projects.

Advanced structuresCompound data types and references with •pointers and links.

Dynamic memory management in combina-•tion with structures

Self defined data typesDefinitions and differences versus the use of •macros.

Using pointersThorough review regarding the use of poin-•ters, and their advantages.

Function pointersFunctions calls via function pointers•

Abstract data types•

Examples of implementation of an abstract •data type and its use

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

Previous knowledgeYou need to have basic knowledge in C programming, cor-

responding to our course C programming for embedded

systems, part I.

Practical exercises / Tools This course have many exercises following up the theory part

of the training.

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.

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.

Content

Course: C Programming for Embedded Systems, part II Days: 3

HardwareHow to write in C towards a special HW•

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

OptimisingHow does optimising affect the program?•

Error handlingHow to avoid errors and program crashes.•

Page 46: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 46

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

programming courses.

We will take a good look at the complex parts of the C langu-

age so important when developing for embedded systems, such

as function pointers, unions and bit fields.

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

sible to do maintenance on, and possible to test.

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

necessary deeper knowledge in C programming that you do

need.

You will be taught valuable tricks and ways to make time

saving constructions in you development process.

ParticipantsThis training course is designed to suit developers and

programmers of embedded systems with some experience in

programming, who wishes to deepen their C programming

Advanced C constructionsMore about pointers and function pointers•

Structures;•

unions and bit fields•

Memory requirement;•

static and dynamic•

Inline assembler •

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

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

GenerallyEncapsulation of HW;•

writing code for several target environ-•ments

Start-up codes and programs loading•

Synchronising problems•

Interrupt handling•

Semaphores and monitors•

Re-entrancy•

Shared data•

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

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

company.

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

responding to our courses ”C programming for embedded

systems, part I” and ”C programming for embedded systems,

part II” as well as practical experience to a certain degree.

Practical exercises / ToolsThis course has many exercises following up the items brought

up on the theory part of the training.

We use a windows based integrated environment consisting of

editor, C-compiler and linker from IAR (Embedded Work-

bench for ARM). The Programs are downloaded and run in an

ARM7TDMI-based target from Atmel (AT91EB42).

For debugging we use the In-Circuit Debugger from

Lauterbach (Lauterbach Trace32-ICD).

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.

Content

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

Advanced debugging and maintenance

Writing code possible to test•

Logging•

Built-in test•

Hot-swap; •

to write programs for on-line-update•

Page 47: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 47

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

methods of object oriented programming and program con-

struction in C++.

You will learn how to define and implement classes to produce

reliable and reusable code.

GoalAfter 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.

ParticipantsEmbedded systems programmers.

Terminology, structures & data typesvariables•

constants•

operators•

type casting•

vectors•

pointers•

loops and iterations•

Functionsdefinition•

call and return value•

declaration•

overloading and templates•

standard arguments•

Object orientation terminologyclass objects•

classes•

relations•

data members•

member functions•

Classesdefine a class•

access to properties•

declare data members and member•

static data members and member•

functions•

class constants•

Previous knowledgeThe course requires previous experience in some function-

and procedure oriented language and basic knowledge object

orientation.

Practical exercises / ToolsSeveral hands-on exercises covering topics on the course.

We use Microsoft Visual C++.

LanguageThe course are given in Swedish.

C++ Basic

Content

Course: C++ Basic Days: 2

ObjectCreate and use objects•

How to use the standard classes•

String and vector.•

Functionsdefine member functions•

constructor and destructor•

Page 48: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 48

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

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

avoid pitfalls.

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 exer-

cises will give you experience in developing high-quality C++.

GoalAfter participating in this training course you will have a dee-

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

the language.

Introduction•

Static analysis•

Dynamic analysis•

Review techniques•

Testing techniques•

Testing of object oriented code•

Applicable standards•

Overview of test tools•

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

lities and gain a deeper knowledge regarding efficient system

development.

Previous knowledgeThe course requires basic knowledge in C++ programming,

corresponding to our course ”C++ Basic”.

Practical exercises / ToolsSeveral hands-on exercises covering topics in the course. We

use Microsoft Visual C++.

C++ Supplementary

Content

Course: C++ Supplementary Days: 3

Page 49: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 49

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

meant for embedded systems.

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

include the most common DSP operations as well as SIMD

media-instructions.

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 compi-

led for ARM7 and ARM9.

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

allows the pipeline to be extended to 8 phases.

Due to its impressive performance the ARM11 is the next step

for projects that has outgrown the ARM9 core.

The ARM1176 variant has both soft- and hardware-support

to measure the CPU load and can adapt both clock speed and

voltage levels.

The course ARM11 builds on the basic

ARM courses and focuses on the new

extensions found in the ARM11 such as:

ARM v5 och v6 assembler instructions Example algorithms•

FIR filter•

The discrete Fourier transform•

Branch predictionNew virtual memory types•

performance counters•

TrustZone, Intelligent Energy Manager

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

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

tery powered applications.

Since the processor core can handle such a rich variety of

media, ARM has incorporated hardware support for security

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.

ParticipantsARM11 is the next step for projects that has outgrown the

ARM9.

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

previous knowledge of ARM assembler on ARM7 or ARM9

cores.

Practical exercises / Tools Exercises will be done with ARM assembler instructions as of

version 5 and 6.

Develop Applications for ARM11

Content

Course: Develop Applications for ARM11 Day(s): 1

Page 50: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 50

ARM is using an innovative award-winning business model,

where they focus on not manufacturing and delivering the

actual silicon products themselves, but rather licenses their

designs as synthesizable ”hardware code” to several different

chip manufacturers.

GoalYou will get a theoretical overview of all commercially avai-

lable ARM-family members, like e.g. ARM7/9/11, XScale,

Cortex and SecurCore. This is followed by a deeper descrip-

tion of the ARM920T variant, like e.g. registers, cache and

MMU-functionality.

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

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

also get practical training in using a selected set of professio-

nal ARM development tools for e.g compiling, debugging and

execution tracing.

ParticipantsThis course is aimed for participants who want to quickly get

started developing high-level applications on any ARM-CPU

family member.

Introduction

ARM family OverviewOverview of the different members of the •ARM-family CPU cores and macro cells.

Overview of different ARM chip manufactu-•rers and their variants.

ARM ArchitectureIn-depth discussion on the ARM9TDMI-core •and the ARM920T macro cells.

In-depth discussion of a selected subset of •peripheral devices available in the microcon-troller used in the course.

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

Development of start-up-code. •

Handling calls between C- and Assembler, •with parameter passing.

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

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

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

Previous knowledgeYou have some working experience in programming using the

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

gramming for embedded systems, part I”.

You are not required to have experience from working in

embedded systems environments, but you should be generally

aware of microcontroller design and functionality (but not

necessarily fro ARM).

Practical exercises / ToolsAbout half of the course time you will be working with a

number of practical exercises, designed to highlight various

aspects of how to program and debug applications for embed-

ded ARM systems.

The attendees will be working two-by-two, with continuous

support from the lecturer when needed. We are using an MS-

Windows based integrated development environment from

IAR, the ”IAR Embedded Workbench for ARM”.

The applications are downloaded, debugged and traced using

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

with ETM support, into an ARM920T-based embedded target

board from Cogent, the ”CSB337”.

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.

Content

Course: Develop Applications for ARM9 Day(s): 3

Walkthrough of the available compiler swit-•ches and directives.

Optimization TechniquesHow to optimize whole or parts of an app-•lication.

Tips on what optimizations are generally •useful on ARM systems.

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

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

Page 51: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 51

ARM implements an innovative and price-winning business

model where the main strategy is not to manufacture chips,

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

ferent silicon manufacturers.

This strategy has resulted in a large number for manufactu-

rers of ARM-based micro controllers that target both generic

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

latest family of ARM cores with a greatly improved architec-

ture giving even faster and smaller code than the old ARM7T-

DMI core.

GoalAfter attending the course you will have learned the ARM-

family architecture and modes of operation with focus on the

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 debug-

ging your software project.

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

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

Introduction

The ARM familyOverview of the various ARM-based proces-•sor kernels and the different manufacturers and their complete microcontroller solutions.

The microcontroller architecturePresentation 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 ARMOverview and presentation of the ARM in-•struction set and assembly language syntax.

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

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

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

OptimizationHow to optimize part or all of your applica-•tion with regards to techniques suitable for ARM.

Previous knowledgeYou must have basic knowledge of the C programming langu-

age, corresponding to our training course ”C programming

for embedded systems, part I”.

It is not required to have experience from the development of

embedded systems, however, we expect that you have basic

knowledge about a micro controller architecture and how it is

used (not necessarily ARM, though).

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

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

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

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

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

MCBSTM32 evaluation board from Keil. The board is based

around the STM32F103 ARM Cortex-M3 micro controller

from ST.

Develop for ARM Cortex-M3During 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 appli-cations are mobile devices, automotive and multimedia where high performance at a low cost and low power consumption is important.

Content

Course: Develop for ARM Cortex-M3 Day(s): 2

High level debuggingCovers the possibilities with In-Circuit •Debugging (ICD) compared to other methods like ”trail-and error”, logic analyzers, soft-ware monitors, simulators, and emulators.

Hints as to what is important for efficient C •source level debugging.

DebuggingHands-on use of KEIL RealView MDK for •source level debugging, register inspection, variables and complex data structures.

Program optimization using performance •and covreage analysis.

Page 52: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 52

The evolution has moved Embedded Systems from simple

fixed function devices, like control and measurement of a

simple application, to full feature, multi application devices

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

”PC” communication protocols like TCP/IP.

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

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

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

today’s powerful CPUs for Embedded Systems have passed

the 386 in performance and are well beyond it. This makes it

possible and attractive to use Linux in Embedded Systems.

GoalYou 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 func-

tionality and applications available for Linux.

ParticipantsIf you quickly and efficiently want to get going with the

development of an Embedded Linux system, then this training

is for you.

IntroductionWhat’s Linux? •

OverviewTraining contents and design. Terminology•

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

System designWhat kind of system could be an Embedded •Linux candidate?

Linux and Real-Time.•

Eclipse based tools.•

Efficient development methods Difference and similarities in development •methods.

Tools Suitable development environment.•

ConfigurationKernel configuration and target file system •creation.

DependenciesStandardards and conventions.•

FHS (File system Hierarchy Standard).•

Runlevels. Startup scripts.•

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

System services and device driversNetwork services, TCP/IP. •

Previous knowledgeYou know programming and have basic knowledge in the

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

embedded systems, part I” training.

You should also have some prior experience using Linux/

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

development environments and debuggers for Embedded

Systems.

Practical exercises / ToolsApproximately half of the time will be on hands-on exercises.

They have been designed to highlight the development process

for Embedded Linux projects.

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

hardware debugger (Lauterbach) and software debugger (for

example GDB).

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.

Content

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

Dynamic loading of modules.•

DeploymentDifferent deployment models.•

ROM/flash, network, root disk. •

DebuggingThe difference between debugging the kernel •and applications.

File formats and debug information.•

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

Profiling.•

Finding memory leaks. •

ResourcesWhere can I find more information? •

Page 53: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 53

Windows Embedded CE 6.0 is the latest version of

Microsoft’s real time operatingsystem.

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 foot-

print and low power consumption.

GoalWindows Embedded CE 6.0 contains a whole new kernel that

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

CE 6.0 also contains a new device drive model and a comple-

tely new development environment.

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.

The overall architecture of the Operating •System

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

Terminology used in Windows CE•

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

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

How to configure system initialization and •startup options

How to build headless devices•

ParticipantsThe course is intended for system integrators who will work

with existing BSP’s, who will create own BSP or work with

device drivers for Windows Embedded CE.

Previous knowledgeProgramming experience in C/C++.•

Experience in Win32API programming and device driver •

development will be helpful in taking this course, but is

not compulsory.

No prior knowledge about Windows CE or Platform •

Builder needed.

Embedded Solutions with Windows CE 6.0

Content

Course: Embedded Solutions with Windows CE 6.0 Days: 4

A training course cooperation

between Prevas and Nohau

Page 54: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 54

Lauterbach TRACE 32 is a development tool designed for

complex applications and is available for a number of dif-

ferent processors.

You have the possibility to participate in a training course

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

GoalYou will learn how to get started in debugging with

Lauterbach TRACE 32 and you get an introduction to the

Lauterbach products.

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

ger from Lauterbach (BDM/JTAG/EPROM)

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

or Power Trace.

TRACE32 Power ViewGUI•

Menus•

Command line•

On-line help•

HLL debugging Register, display / modify•

Memory, display / modify•

Variables, display / modify•

Source code•

Stock frame•

Symbol browser•

Complex variables (structs, linked lists)•

Program loading•

Breakpoints•

Advanced BreakpointsSoftware breakpoints•

On-Chip breakpoints•

Program breakpoints•

Spot breakpoints•

Conditional breakpoints•

Macro languageWhat is PRACTICE•

How to use macros•

What built-in functions are there•

GUI customization•

FLASH programmering•

Previous knowledgeYou have basic programming knowledge in C, and know how

a microcontroller works.

Exercises /ToolsWe use TRACE 32-ICD with a microcontroller based target

for all exercises.

Lauterbach Debugging

Content

Course: Lauterbach Debugging Day(s): 1

Installation of configurationConfig TR32•

System settings•

FLASH programming

Page 55: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 55

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

TMS320TCI6488.

Using Lauterbach to debug the DSP 64xx family allows you

to take the benefit from using the advanced features which are

available in the Trace32 system together with time - critical

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 perfor-

mance DSP.

GoalYou will learn how to get started in debugging with

Lauterbach TRACE 32, how to customize the debugging en-

vironment and of cause how to use the debugger in a efficient

way to debug DSP based targets.

TRACE32 Power View•

GUI •

Menus •

Command line •

On-line help •

HLL debugging •

Register, display / modify •

Memory, display / modify •

Memory views (graphical, Formatted)•

Variables, display / modify •

Source code •

Stock frame •

Symbol browser •

Complex variables (structs, linked lists) •

Program loading •

Breakpoints •

Advanced Breakpoints•

Software breakpoints •

On-Chip breakpoints •

Program breakpoints •

Spot breakpoints •

Conditional breakpoints •

Macro language•

Performance test•

How to use macros •

What built-in functions are there •

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

ger from Lauterbach (BDM/JTAG/EPROM)

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

or Power Trace.

Previous knowledgeYou have god programming knowledge in C, god knowledge

in how microcontrollers works and fundamental DSP know-

ledge.

Exercises / ToolsWe use TRACE 32-ICD with a DSP based target for all

exercises.

Lauterbach for DSP Based Systems

Content

Course: Lauterbach for DSP Based Systems Day(s): 1

GUI customization •

Installation of configuration•

Config TR32 •

System settings•

Page 56: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 56

The advantage in connecting the GDB server with the

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

stop/start different task without having to stop the remaining

system during task load and kill.

Lauterbach is today the only hardware debugger which is able

to do this.

GoalThis training includes a rich portfolio of modules - from

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.

ParticipantsIn this training the participants will have the opportunity to

learn for example how to:

Setup the debug environment for Linux debugging•

Debug Common shared processes•

Debug forked tasks •

It covers how to ues Lauterbach debugger for the following areas:

ASM/HLL Debugger•

Peripheral Browser•

PRACTICE Script Language•

Statistic Analyzer•

TRACE32 Multitask Debugger •

Task related evaluation of function run times•

MMU support for several address spaces, •which allows you to debug several Linux applications (processes) at once.

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

Debug multiple instances of tasks •

Trapping segmentation faults•

Handle pagefault•

Loading and debugging SO - files/resources.•

Previous knowledgeIt is assumed that you have good knowledge about Linux and

that you are familiar with the TRACE32 Debugger.

We strongly recommend that you have participated at

Lauterbach module: 1 and 2 or worked with Lauterbach de-

bugger 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

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

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

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

Exercises / ToolsWe use TRACE 32-ICD with a ARM - based target for all

exercises.

Lauterbach for Linux Based SystemsUsing 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.

Content

Course: Lauterbach for Linux Based Systems Day(s): 1

Page 57: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 57

Lauterbach TRACE 32 is a development tool designed for

complex applications and can with the Trace module present a

detailed picture of the behaviour of your application.

During these training courses you get to deepen your know-

ledge and learn how to use the TRACE 32 with Trace in an

efficient way.

GoalYou will get a deeper knowledge and configuration files. You

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

Preformance Analysis.

ParticipantsThis training course is designed to suit users of ICD-Risc

Trace or Power Trace from Lauterbach, wanting deeper

knowledge.

Trace/AnalyzerLogger, Snooper, Analyzer•

Trace windows•

Tracking•

Filtering of the trace-buffer•

Code- and datacoverage •

Performance analysis•

Trigger programming•

CTS (Context Tracking System)What is CTS?•

Is ”step-back” possible?•

Breakpoint system

PowerTraceRiscTrace•

ETM•

OCDS•

Program flow trace•

Bus trace•

Clock trace•

Previous knowledgeYou have either experience from working with Lauterbach

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

and ”sys.up”, or you have participated in our training course

Lauterbach Debugging.

You also have basic programming knowledge in C, and know

how a microcontroller works.

Exercises /ToolsWe use TRACE 32-ICD Power Trace, with a microcontroller

based target for all exercises.

Lauterbach Trace Functions

Content

Course: Lauterbach Trace Functions Day(s): 1

Page 58: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 58

Course: Python for Programmers – Part 1 Day(s): 1

Python for Programmers - Part 1

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

practical exercises. After completion of the course you will be

able to read and write programs and scripts.

Pre-knowledgeThis 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....

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

Windows XP or Windows 2000).

A USB memory with development tools and your examples is

included in the course.

IntroductionWhere is Python used and why? •

How do we execute programs? •

Development tools.•

Types and operationsBuilt in objects•

numbers•

strings•

lists•

dictionaries files. •

SyntaxNamespaces•

help-system•

expressions•

tests•

loops and common faults. •

FunctionsArguments. •

Positional, named and unlimited number of •arguments.

Errorhandling

Content

Page 59: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 59

Course: Python for Programmers – Part 2 Day(s): 1

Python for Programmers - Part 2

GoalWe walk through more advanced Python topics while doing

practical exercises.

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

programs and applications.

Pre-knowledgeParticipants should program daily in some other language

- Assembler, C, Visual Basic, Java, Perl, C# and know the

basic details of Python syntax.

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

Windows XP or Windows 2000).

A USB memory with development tools and your examples is

included in the course.

IntroductionBackground•

execution•

ModulesCreating and handling packets. •

Object-orientation Classes•

Objects and heritage •

AdvancedGenerators•

Introspection•

Lambda•

Decorators•

MaintenanceUnit testing•

Refactoring•

Tools•

More…Common usages of Python•

Useful frameworks•

Were to go for information and keep upda-•ted.

Python 3.0•

Content

Page 60: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 60

In real-time computing systems, the correctness of results

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

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 ac-

ceptable; rather the worst case situation has to be handled.

GoalToday, many developers of real-time applications choose to

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

timing requirements of real-time tasks. Advantages include

better application code structure, shorter development time

and simpler maintenance of the system.

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

microprocessors. In this course you will learn how to structure

and program real-time applications in a RTOS kernel. We

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

read communication and synchronization, interrupt handling,

memory management, and scheduling of real-time tasks.

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

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

requirement.

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

ted real-time applications that include inter-node communica-

tion in real-time, e.g., with CAN or TTP.

IntroductionWhat/why a real-time system? •

Different types of RT systems•

Structuring of RT applicationsParallel threads •

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

What is in RTOS?Why RTOS? •

Event-trigged and time-trigged •types of RTOS

System clocks;•

timers•

interrupt handling •

We will also discuss how different system solutions influence

the development and the maintenance of a system.

ParticipantsThe 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

understanding that you will be able to apply different techni-

cal solutions for development of real-time applications and

be able to evaluate different commercial real-time operating

systems in a structured way.

Previous knowledgeBasic knowledge in C programming is needed in order to

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

ming for embedded systems, part I”.

Practical exercises / Tools Programming exercises on a PC. You will develop and debug

own real-time applications on a modern commercial RTOS,

RUBUS OS, by using MS Visual Studio and Rubus Visual

Studio as development environment.

Language The course can be given in English and Swedish.

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 multi-media devices, such as DVD players, TVs, etc.

Content

Course: Real-time System Days: 3

device drivers•

memory management•

I/O etc.•

Real-time tasksPeriodic and Aperiodic tasks •

Task states and state transitions•

Page 61: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 61

Communication between tasksShared variables;•

mailboxes•

Wait&lockfree•

signals.... •

Synchronization•

Shared resourcesMutual exclusion; •

critical regions, •

deadlock, •

starvation... •

Semaphores and resource access protocols•

RT SchedulingDifferent scheduling policies •

Static and dynamic scheduling •

Timing analysis•

Distributed RT systemsReal-time communication (CAN, TTP, LIN, •Ethernet,…)

X-by-wire applications •

End-to-end deadlines •

Holistic scheduling for distributed RT •systems

Complex system architecturesSpecification and validation •

Different architectural views and styles •

RT design methods •

Component-based development for RT •systems

Fault-tolerance •

Industrial case-studies•

Page 62: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 62

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

able to run Qtopia programs in Symbian OS and S60

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.

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

Day 1

Introduction to Symbian OSSymbian OS Features•

Overview of Symbian OS Development•

Symbian OS build chainSDK 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•

Other development tools•

Coding conventions•

Platform security•

Debugging•

Basic Symbian programmingException handling•

TRAPD and Cleanup Stack•

Two-phase construction•

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

Constructing from a string literal: _LIT() •macro

Descriptor functions•

Active ObjectsBackground: asynchronous event-handling•

Life Cycle of AOs•

CActive class & CActiveScheduler class•

Summary: motivation for AOs•

Day 2

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

Application architecture server API•

Additional S60 framework•

UI Control Framework•

Compound controls•

Control drawingBasic drawing•

Font and bitmaps server•

New graphic architecture•

Direct screen access•

Course delivery methodThe course is a combination of lectures and hands-on

practicals.

Target audienceSW developers, who need to deploy Qtopia SW to

Symbian OS and S60.

PrerequisitesQt and Qtopia.

Symbian and S60

Content

Course: Symbian and S60 Day(s): 3

Full screen mode•

Clip board•

Event handlingKey presses and pointer events•

System events•

Event sources•

FEP framework•

Day 3

UI programmingS60 menus/softkeys•

Resource files•

Dialogs and notes•

Listboxes•

Panes•

UI customizationS60 fonts and themes•

Misc topicsCentral repository•

Symbian/S60 help system•

PIPS and OpenC•

Limitations•

Integrating with native applications•

A training course cooperation

between Digia Oy and Nohau

Page 63: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 63

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

learn how to work with the Multimedia Framework subsystem

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

features using C++.

Expecting no previous knowledge of multimedia programming

it covers the main areas needed.

Note: The course focus can easily be changed between MMF

and graphics programming by changing the time spent on the

topics.

Course levelThe course level is Intermediate

IntroductionPossibilities of multimedia•

Different devices on the market•

Symbian OS Multimedia Subsystem•

Multimedia FrameworkArchitecture•

Implementing custom plug-ins •- Controller plug-ins

Multimedia device framework•

Bitmapped GraphicsBitmap formats supported•

Conversion tools and methods•

Using bitmaps with GDI C++ API•

Scalable Vector graphicsSVG-T•

Loading SVG images•

Working with SVG images•

Animated GraphicsAnimation principles•

Timers•

Sprites•

Fast GraphicsDirect access to video memory•

Double buffering•

Optimizing for ARM•

Course delivery methodThe course is a combination of lectures and hands-on

practicals. The split between the two is approximately

50%-50%.

Target audienceThe course is targeted at application developers wishing to

know possibilities of multimedia and will be using multimedia

features in their work.

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

with some practical experience in Symbian OS GUI applica-

tion development.

Symbian OS Multimedia Programming

Content

Course: Symbian OS Multimedia Programming Day(s): 2

AudioAudio formats supported•

Playing and recording sound•

Streaming audio•

CameraAccess onboard camera•

ECam/Camera Server•

VideoRecording video clips•

Playing video clips•

A training course cooperation

between Digia Oy and Nohau

Page 64: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 64

The course is about the basic operating system primitives for

writing applicaions for Windows CE. The system primitives

are e.g:

threads•

processes•

synchronization objects •

memory management.•

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

how to program for Windows CE when it comes to system

programming and real time applications.

The course does not contain any sections about graphical

programming for Windows CE.

Overview•

Development•

Processes and threads•

Dynamic memory•

Synchronization•

Interprocess communication (IPC)•

Exception handling •

Communication •

Data storage•

Dynamic link library•

Accessing hardware•

Remote connectivity•

Timers and clocks•

Real-Time Performance•

Course Objectives

At the end of this course, the participant

will be able to:Describe the architecture and features of •Windows CE

Use Win32 API for application development•

All real time operating systems contains some form of pro-

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

Windows CE through the Win32 API.

ParticipantsThe course is intended for those who have been working with

other operating systems for embedded systems and wants to

learn system programming for Windows CE.

Previous knowledgeProgramming experience in C/C++, no need to know Win32

API.

System Programming with WIN CE

Content

Course: System Programming with WIN CE Days: 3

A training course cooperation

between Prevas and Nohau

Page 65: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 65

In software engineering of today, object-oriented methods are

commonly used for system analysis and design. Modelling can

for instance be made using the graphical language UML.

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

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

code size and bad performance.

GoalThe goal is to introduce C++ as an object oriented language

alternative in an embedded system context. The similarities –

and differences – with the C language. You will comprehend

different memory management strategies and understand

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

What’s an Embedded System?Simple Definition, some milestones•

Characteristics. Why using C++?•

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

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

ClassesMember Variables and Functions•

Implicit Methods•

Constructor Initialization List•

struct in C++. Package•

InheritanceRealization. Performance•

Multiple and virtual Inheritance•

PolymorphismVirtual Function and Destructor•

Implementation•

RTTI - Runtime Type Information•

Performance•

TemplatesFunction and Class Template•

Code Bloat. Implementation Strategies•

Template Meta Programming•

Template Versus Inheritance?•

Error HandlingException Handling•

Performance Issues. Implementation•

Inline CodeWhen to Use? Strategies•

Standard LibrarySTL - Standard Template Library•

iostream Library•

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

Memory ManagementThe C++ Memory Model. Strategies. Variab-•les. Placement new

User Defined Memory Management•

We will provide some useful design patterns especially app-

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

correct way.

ParticipantsThe course is for embedded systems designers and program-

mers, as well as system architects and technical managers.

Previous knowledgeThe course requires previous experience of C++-program-

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

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

ded.

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.

Content

Course: Using C++ in Embedded Systems Day(s): 3

Using C++ Together with CName Mangling•

Static Initialization. Dynamic Memory •

struct Contents •

MultithreadingA Thread Class. A Mutex Class •

Synchronization•

Design PatternsInitialization of Static Objects•

RAII - Resource Acquisition Is Initialization•

Embedded C++: A de facto StandardEmbedded C++ – EC++•

EC++ Suppliers•

Page 66: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 66

Model Driven Development

Page 67: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 67

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

Designer for Eclipse introduces the benefits of using Borland

Together Designer 2006 for Eclipse in business and system

analysis.

The course teaches you how to model requirements and deve-

lop analysis models with Together.

The heart of the course is a series of comprehensive exercises

built around a realistic sample system.

COURSE CONCEPTS:

WelcomeIntroducing 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•

Navigating the project and model structure•

Placing a Together project in a version •control system

Developing Initial Use Case ModelDeveloping use case diagrams; best practices•

Organizing reusable diagram elements; using •shortcuts

Linking use case model artifacts with exter-•nal documentation via hyperlinks

Checking model artifacts in to a version •control system

Elaborating Use Case ModelDocumenting use cases with activity dia-•grams and state machine diagrams; best practices

Using hyperlinks to connect related use case •model artifacts

Developing Analysis ModelIdentifying and modeling analysis classes in •class diagrams; modeling class relationships

GoalThe course will provide a better understanding for system

architecture development, relations between system requi-

rements and system architecture as well as the role of the

system architect.

ParticipantsBusiness and system analysts.

Previous KnowledgeBasic UML experience. Experience as a business or system

analyst.

Business Analysis with Together Designer for EclipseBusiness 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.

Content

Course: Business Analysis with Together Designer 2006 for Eclipse Day(s): 1,5

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 DocumentationGenerating a project report containing the •use case model and the analysis model

Tailoring project documentation templates•

Next StepsResources on UML, modeling and related •topics

Page 68: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 68

A design pattern is defined as a general reusable solution to

a problem that is commonly occurring in software design,

and therefore provides an efficient approach to re-implement

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

cause major problems.

Furthermore, they improve code readability and understanda-

bility for stakeholders familiar with the patterns.

This course provides good knowledge about design patterns

and how they are practically implemented in order to enhance

existing systems and their design solutions.

Who is this course aimed for? The course has its aim set for system developers and program-

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

Pre-knowledeYou 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 desira-

ble but not required since they are taught and repeated during

the course.

Knowledge in UML is also desirable, since all diagrams provi-

ded are described in this language.

Goals of the course After the course you will have a deep understanding regarding

the thoughts behind design patterns.

You will also have a knowledge database consisting of usable

design patterns and related concepts, which will make you

well-prepared for implementation in your daily work.

Course descriptionThe course focuses on studying a large number of general

design patterns and their practical application.

Furthermore, some patterns and idioms (language specific

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

The course participants will develop own solutions and per-

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.

During the course, the participants obtain practical expe-

rience regarding how to identify a design pattern to enhance a

system by merging new combinations of them. As a conclusion

to the course, our own experience regarding how to introduce

and implement design patterns into development projects is

provided.

General design patternsThe course focuses on practical usability of design patterns by

providing examples covering existing systems, where they are

implemented.

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 pat-

terns, 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 systemsMany of the examples provided in the course literature are

resident in the application domain, which is generally well-

known and thereby easy to understand.

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.

Design PatternsAn efficient approach to re-implement previously obtained experience.

Course: Design Patterns Day(s): 3

A training course cooperation between Combitech and Nohau

Page 69: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 69

General design patterns•

Specific patterns for technical real-time •systems

Classification of patterns•

Orientation around other types of patterns •

Content

Deep understanding of the thoughts behind design patternsChristoffer Alexanders is often considered to be the founder of

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 sepa-

rate 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 patternsVarious 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.

Structural patterns describe how classes and objects are com-

bined into larger structures.

Creative patterns describe how these larger structures are

instantiated in the system.

Other common classifications are architectural patterns, de-

sign patterns and idioms, where the separation is based upon

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

Commonly, patterns for classes and objects are separated

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

chanisms, or the collaboration between objects.

Orientation around other types of patterns The course is a basic course within design patterns, and its

focus is set around components and subsystems where real-

time requirements have to be considered.

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

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

hensive level.

Course directionHow 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:

the course participants reflect over their daily work, •

practical exercises in a development-related scenario and •

a larger practical project exercise, where the latter also •

forms a conclusion for the course.

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

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

All course participants obtain a folder that contains the

presentation-material, examples and the exercises that are

used during the course.

This material will form a valuable resource in later daily

work.

Page 70: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 70

MBSE ArchitecturePart of the MBSE course package

A training course cooperation between Combitech and Nohau

How can MBSE be used within software architecture? The purpose of this course is to provide various aspects and

techniques regarding how the architecture of a product may

be represented in a modeling tool.

It is important to be able to communicate these aspects and

therefore we provide a tool box in the shape of graphical

description methods to handle this issue.

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

sible to develop this information/architecture in a methodic

way.

Who is this course aimed at?The course is aimed at persons with a few years experience

within software development.

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

product responsible, project manager, systems architect,

software architect, software developer, test leader, hardware

constructor or similar.

Goals of the courseAfter the course, you have obtained enough knowledge and

basic skills in the subject in order to, by yourself, create a sys-

tem model that corresponds to the requirement specification

and the architecture for your product.

You have also been provided with knowledge regarding va-

rious types of documentation that can be extracted from the

model.

Description

RequirementsA basic concept for all development is to find and formulate

the requirements that drive the product. Requirements are

traditionally described in a textually-based document.

In later days, specific requirement handling tools have been

used for this purpose. Even when using these tools, the requi-

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

base for the system and as means for validating it.

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

ling tool, alternatively be represented directly in the tool.

Various categories of requirements are studied based upon

whether they affect the construction/architecture and how

they appropriately are represented in the system model of the

product.

Use casesThe use case analysis is an efficient method to use in order to

identify a requirement. The result is a functional description

embodied as scenarios, which describes user interaction with

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.

System componentsA system is formed by a number of separate items (system

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

examples of a methodic approach to find a good composition

of a system.

The approach for composition in this course is object orienta-

tion but a mapping is performed towards functional program-

ming (functional decomposition).

InteractionThe functionality that has been described in the use cases

shall be realized by the system.

The components of the system offer complete functionality by

interacting with each other. Interaction can be described in

various ways, for example by using UML sequence diagrams.

TraceabilityThe system model should contain traceability between the re-

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

functionality allocated in the respective system components to

the product requirements.

Even traceability between requirements and the validation

method used is an important aspect to consider.

Course: MBSE Architecture Day(s): 2

Page 71: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 71

Requirements•

Use cases•

System components•

Interaction•

Traceability•

Interface definition•

Content

Interface definitionA good architecture is characterized by a good separation bet-

ween components, only a few relations between components

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.

The course describes a service-oriented approach to define

interfaces by using associated data.

Course directionsThe course is based upon a number of theoretical lectures

covering each course section.

Every lecture is followed by the associated practical exercises

defined, which are connected to using the provided system

modeling tool.

Course literatureSince the course is based upon the long experience in the

area, no reference literature is provided.

Course materialAll attendants obtain a course binder that contains all presen-

ted material and all exercises. Furthermore, you own-defined

system model will be inserted.

Page 72: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 72

MBSE BootcampA part of the MBSE course package.

Exciting development using model-based engineering tools.

A training course cooperation between Combitech and Nohau

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

set on hands-on experience regarding software modeling using

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

the Rhapsody development environment, but it may as well be

adjusted using other model-based tools as well upon request.

We go from designing the software in the model-based langu-

age 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.

The course applies to all project member categories, from

project leaders to software engineers.

Pre-knowledgeIt becomes easier if at least someone in the group has expe-

rience in object oriented programming, C++ and UML since

these techniques are applied without initial briefing. With a

reasonable competence mixture in the group, participants

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

monly able to handle this course without any problems.

Goals of the courseThe goal of the MBSE Boot camp course is to embody system

development using model based tools.

Course content• Compacteducationinmodelbaseddevelopment

• Constructionofarobotcontrolapplication

• Robotcompetition

DescriptionMBSE 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-

laps the MBSE design and execution course. The difference

between the courses is that MBSE Boot camp focuses more

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

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

where robots are involved.

Compact education in model based developmentIn a slightly traditional course format, day one is dedicated to

becoming familiarized with UML modeling in a code genera-

ting 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 softwareOn day two, the group is divided in two teams where the task

is to develop a robot control software application using the

same tools as in day one.

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.

By experience from previous courses given, it has been shown

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

team-building activity due to the robot competition.

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

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

opponents.

Course directionsThe course is held during two intense days and includes many

practical exercises.

Course literatureNo literature is tied to the course, instead it based on the

many years of knowledge and experience invested in the

teachers.

Course materialAll attendants obtain a binder containing all presentation

material, exercises and solution suggestions used during the

course.

Course: MBSE Bootcamp Day(s): 1

Page 73: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 73

MBSE Design, Execution and Code GenerationPart of the MBSE course package.

A training course cooperation between Combitech and Nohau

Concrete exercises point out the opportunities. We start by

using a modeling language to create a software design.

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.

Who is this course aimed at?This course is relevant for anyone interested in generating

software code from a model to host, as well as to target plat-

forms. If you have already attended the MBSE Architecture

course this course provides the natural next step.

Pre-knowledgeYou should be familiar with the programming language C++,

since the actual programming is performed in this language.

It is desirable to have attended the MBSE Architecture course

as well, but should not be considered as a requirement.

Goals of the courseThe objective of this course is to provide a better understan-

ding of the Model-Based Systems engineering concept. This is

achieved by mix of theory and practical exercises.

We start by looking at the opportunities with modeling. There

are several types of notations used for modeling - UML (Uni-

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.

We also talk about common modeling concepts (i.e. MDD,

MDA, PIM, PSM) and put them in a context.

Design and implementationWe look at examples provided in the modeling tools of inte-

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.

We will not go deeply in to this but we will relate MBSE to

these concepts and exemplify what it can mean in MBSE

terms.

Further we look at the possibility to import existing code

into the modeling tool; which is often referred to as ”reverse

engineering”.

Code generationSoftware engineering has gone through an evolution where it

has evolved from assembler to C code and then even further

on into high level languages such as C++/Java/C#/Ada.

The next step to handle complex systems is to generate source

code directly from software models.

Even if code generation does not save time in a decisive way,

it still has some important benefits.

Exercises under guidance of competent instructors will give

you concrete examples providing modeling experience.

ExecutionIn 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 ex-

ecute on both host and target. We will not discuss traditional

testing in this course but we will look at elaborative tests and

try-out model level debugging.

Course: MBSE Design, Execution and Code Generation Day(s): 2

Page 74: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 74

Course directionsHow do you transfer knowledge in a clever way so that con-

text and patterns remain clear instead of being 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 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 exer-

cises will be an extensive part.

The exercises are performed in small groups and will be alter-

nated between host and target platforms.

Course literatureNormally no course literature is used in this course.

Course materialAll participants obtain a course binder with all the presenta-

tions, examples and solutions used in the course.

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•

Content

Page 75: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 75

MBSE Simulation and Model-Based TestingPart of the MBSE course package.

A training course cooperation between Combitech and Nohau

New possibilities arise when using model based tools for

testing and simulation.

Let’s start with describing the term simulation. Simulation is

commonly used when it’s too expensive or too dangerous to

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.

Who is this course aimed at?The course is aimed at anyone involved in development of em-

bedded- and real-time systems at a design- and/or test level.

Pre-knowledgeNo pre-knowledge in the area is required, but basic know-

ledge regarding UML and C++ or another similar language is

desirable.

Goals of the courseAfter 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.

DescriptionWe encounter enormous challenges when start building the

systems of tomorrow. They become more and more complex

and can not clearly be specified in a traditional way.

The need for models used for simulation and test increases

constantly. With the techniques of today, we are able to de-

velop models in order to simulate systems that do not exist in

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.

Important questions to find answers for during the course are:

What does traditional testing and verification mean?•

What is model based testing?•

What is simulation and execution?•

BackgroundThe focus for system development is gradually transferred

from coding to modeling. This fact provides us with new pos-

sibilities since the models commonly are executable.

One clear benefit that arises when using model-based develop-

ment 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

purpose.

SimulationIn this section we will provide you with the requirements that

must be met in order to execute a simulated model. We will

also provide you with a survey regarding various simulation

models based on host or target.

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 validationHere we describe common strategies for performing verifica-

tion and validation such as prototyping, modeling, reviewing,

test and analysis, which are all important building blocks in

order to ensure the quality of a system.

Test automationIn this section the participants will learn what it means to

automate tests by introducing regression- and daily-testing.

Integration of model-based testingThe introduction of model-based testing leads to a lot of chal-

lenges. It becomes important to be able to think in new ways

without forgetting the quality aspects of the system.

Course: Simulation and Model-Based Testing Day(s): 2

Page 76: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 76

Background•

Simulation•

Verification and validation•

Test automation•

Integration of model-based tests•

Exercises and dialogue•

The future•

Goals•

Content

In many cases it is possible to execute tests directly into the

tools where the system models are developed.

Some tools have a plug-in support for testing. Other tools sup-

port the possibility to develop tests by scripting.

Parts of the models are useful for testing, partly as templates

but also more directly, in order to generate test cases. Two

good examples for this are the UML sequence- and state

diagrams.

Exercises and dialogue Dialogue around central MBSE simulation and test is-•

sues.

Practical simulation- and test exercises using modern •

tools.

The futureIn this conclusive section we will describe where we are going

in the area of MBSE simulation and test.

We will also provide you with some information about the

ways of working and the tools for the simulation and test pur-

pose that will arrive on the market in the near future.

Course directionsOur educators come directly from the field with fresh know-

ledge and have a deep practical support in the subject they

are teaching. In our world, every theory must be able to be

applied into the daily work.

The switching between theory and practice is a corner-stone

for our courses.

Course literatureSince the course is based upon the long experience in the

area, no reference literature is provided.

Course materialAll attendants obtain a course binder that contains all presen-

ted material and all exercises as well as their solutions.

Page 77: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 77

Avoid points of no return

Since our course leaders normally work in projects as con-

sultants and mentors, they are able to connect their real-life

experience to the course and are thereby able to focus on the

most important aspects to consider when modeling with UML.

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.

Who is this course aimed at?The course is aimed at anyone involved in object-oriented sys-

tem development, first and foremost technical- and real-time

systems.

Pre-knowledgeNo pre-knowledge is required but some understanding regar-

ding object-oriented programming is desired.

Goals of the courseAfter the course, the participants will be able to use UML

for modeling in real projects, all the way from requirement

analysis to implementation.

Furthermore, they will b able to model systems from various

views of aspect by using the most of the diagram types descri-

bed by UML 2.0.

DescriptionThe course is built upon a development process called

PARTS, which defines three separate information models, all

describing a system from separate aspects.

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 develop-

ment process.

We start the course with a discussion around modeling in

general and the background for the introduction of UML on

the market.

We start off from a real problem description and then conti-

nue to develop a design solution for it by providing multiple

exercises.

The purpose of this course is to mediate how to develop a

system by the use of UML – all the way from requirement

modeling to a complete implementation.

The requirement modelIn this initial part we describe and reflect over what informa-

tion is required in a model in order to create a complete and

common image over the system and its building blocks.

This includes functional requirements, quality requirements

and construction limitations.

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.

The system modelWhen we have explicitly defined what to achieve, it is time to

find a solution for the problem itself. During the development

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 con-

nected to each other (logical view, physical view and process

view).

The logical viewFocus is set for the static- and dynamic modeling of the logic.

Initially on an architectural level and then, a bit more detai-

led, on subsystems, components and classes.

We describe techniques that can be used to compose the sys-

tem into more manageable pieces.

An important aspect is to realize the system requirements by

the use of collaborations.

Furthermore, we describe how to realize our use cases by

defining static classes.

Practical Modeling with UMLWe 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 Day(s): 3

A training course cooperation between Combitech och Nohau

Page 78: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 78

Content

The requirement model•

The system model•

The logical view•

The physical view•

The process view•

The implementation model•

Finally, all UML 2.0 diagrams that can be used to describe

such information are described.

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 viewThis 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 viewIn this third view we will define the real-time aspects for our

system. How is it possible to make the logic execute appro-

priately on the hardware?

We describe the UML diagrams that are suitable for this pur-

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

system layer in-between.

Course directionsHow do you mediate knowledge in a clever way so that con-

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 exer-

cises 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 literatureNormally The Unified Modeling Language Reference Manual

(2nd edition) by Addison-Wesley is used, but other literature

may be used as well.

Course materialAll attendants obtain a binder containing all presentation

material, exercises and their solutions that is used during the

course.

Page 79: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 79

You will learn how to model both simple systems and to create

advanced models for safety critical real time systems.

The training also teaches you code generation and debugging

of your design by means of the Rhapsody simulation possibi-

lities.

GoalAfter the training you will be able to use the UML tool

Rhapsody and also use the notation UML to model, imple-

ment and verify software for embedded systems.

ParticipantsThis training course is designed to suit system developers and

real-time programmer who use the UML tool Rhapsody.

Introduction Course targets•

Orientation in the Rhapsody tool.•

Step 1”Hello World” with Rhapsody•

Create classes and operations•

Explore code•

Roundtripping•

Attribute•

Simple State charts •

Tracing and animation•

Use case•

Step 2Advanced State charts•

Debug script•

Simple relations and associations•

Composite classes•

Generalizations and virtual •operations

Use case defined models•

Documentation•

Previous knowledgeYou have a good knowledge of object-oriented analysis and

design and also of UML.

We recommend our training courses ”Real-time for UML

2.1”.

Practical exercises / Tools 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

design and test a complete system.

We use the UML tool Rhapsody for the exercises.

Content

Course: Rhapsody and UML in Practice Day(s): 3

Rhapsody and UML in PracticeRhapsody is the perfect UML-tool for embedded systems development. In this training we use

Rhapsody to model systems in UML.

Step 3Trigged operations and incident parameter•

Class OMString•

Contents and iterations•

Multiple relations•

Package and threads•

Mutex and protected operations/relations•

Version Control•

Qualified association•

Global instance•

Step 4Rhapsody’s framework•

Create and link graphical user •interface to Rhapsody models

Reverse engineering•

Advanced State charts•

Independent example•

Page 80: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 80

This course introduces analysts, software architects, desig-

ners, and developers to the features of Borland Together for

Eclipse.

GoalThis 1-day course helps users of Together Architect 1.x or To-

gether Designer/Developer 2005 ramp up quickly on the new

user interface, technologies, and features offered in Together

2006 Release 2 for Eclipse.

ParticipantsTogether Architect 1.x, Together Designer/Developer 2005

users; analysts, developers and architects interested in new

Together capabilities.

Working with ProjectsUsing the Eclipse environment and its com-•ponents (workbench, perspectives, editors, views)

Understanding project lifecycle (creating, •importing, exporting, opening, closing and deleting projects)

Configuring projects (project properties, •cross-project references, build order)

Configuring Together•

Working with DiagramsUnderstanding the model-centric paradigm •in Together 2006 . Understanding UML 2 diagram types

Creating new diagrams. Adding and remo-•ving diagram elements

Controlling diagram layout •

Using shortcuts and hyperlinks •

Searching through the model•

Using the New ToolsUsing new audits and metrics, Generating •project documentation, Using UML profiles

Integration with Other ToolsUsing Together perspectives and views that •provide access to StarTeam

Importing a project from StarTeam using •Team Project Sets

Sharing a project (submitting a project to •StarTeam)

Checking model elements in and out •

Locking and unlocking model elements; •controlling locking granularity

Accessing the CaliberRM requirement mana-•gement system from Together

Previous KnowledgeExperience with previous Together versions (recommended)

or with other modeling tools.

UML2 modeling experience as an analyst, architect or deve-

loper.

ToolsThe course is taught in a practical hands-on environment, in

which exercises and instructor-led demonstrations help rein-

force the concepts taught during the lecture.

Theory/Practice: 20% theory and 80% practice

Course Material: We use course material in English from

Borland.

Together for Eclipse Essentials

Content

Course: Together for Eclipse Essentials Day(s): 1

Other New FeaturesUnderstanding Model Driven Architecture •(MDA), its benefits and supporting techno-logies

Understanding how Together supports design •patterns

Business modeling using Business Process •Modeling Notation (BPMN)

Page 81: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 81

Agile Methods & Design of

Medical Devices

Page 82: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 82

Certified Scrum MasterAgile project management is as radically different from traditional project management as agile

processes are different from traditional methodologies.

A training course cooperation between Softhouse and Nohau

Agile project management is as radically different from tra-

ditional project management as agile processes are different

from traditional methodologies. Rather than plan, instruct

and direct, the agile project manager facilitates, coaches and

leads.

This person is called a Scrum Master in the Scrum agile pro-

cess 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

team, a project, or an organization agile.

GoalEach individual is trained to be able to assume the following

responsibilities:

Remove the barriers between development and the custo-•

mer so the customer directly drives development;

Teach the customer how to maximize ROI and meet their •

objectives through Scrum;

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

Training – MethodologyThe training is done with a lot of exercises. Be prepared to

do hard work. The training will give you the feeling of Scrum

itself.

Fundamentals of agile and Scrum,

running Scrum projects, planning

and scaling Scrum projects, offshore

development using Scrum, bidding on

fixed price/date contracts, and ensuing the

adequacy of engineering practices.

The agenda for the class is:Complexity•

Agile Manifesto•

Agile Overview•

Scrum Overview•

Roles in Scrum•

“DONE”•

Planning•

Retrospective•

The first day is dedicated to the Why and the Philosophy the

Meaning of Scrum. The second day hands you over the tools

and the How of Scrum.

Using anecdotes and experience, teaching the Scrum met-

hodology, and how to use it to be an effective Agile project

manager - you will learn to be a ScrumMaster.

GraduationUpon Graduation As a result of their successful completion of

the program, each participant received an individual license

and copy of the Scrum methodology, Scrum training materi-

als, and Scrum software.

In addition, Certified ScrumMasters are authorized to par-

ticipate in “open” development of the Scrum methodology

and software, ensuring a growing body of knowledge from a

qualified, competent group of certified professionals.

They are also listed as Certified ScrumMasters at Certified-

Scrum.

Course MaterialParticipants 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

other pictures in case the trainers will find this useful during

class.

Content

Course: Certified Scrum Master Day(s): 2

Day in the Life of a ScrumMaster•

Product Owner•

Scrum Teams and there environment•

Managers•

Meetings•

Sprint Termination•

Release Management•

Scaling•

Scrum and CMM, Scrum and XP•

Page 83: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 83

Lean and Agile for ManagersLean principles, Agile development, Scrum, XP, Testdriven development - these are just some of the

buzzwords on the software business and development arena these days

A training course cooperation between Softhouse and Nohau

IntroductionLean principles, Agile development, Scrum, XP, Testdriven

development – these are just some of the buzzwords on the

software business and development arena these days.

Developers and testers often have a rather clear view of what

this means for them. But in the busy position as a manager,

resource owner or economically responsible it can be hard to

stay updated.

To help you retain the initiative, Softhouse has designed a

special course called “Lean for managers” which will help

you understand what Lean principles and tools can do for you.

ParticipantsThe target group is all levels of management with the re-

sponsibility 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.

1. Lean, Toyota and value versus waste

The history and background of Lean and •Agile

Lean practices - Introduction an dexpected •results

Exercise ”Value Stream Mapping”•

Tool to use - ”Find your waste”•

2. Manage the flowFlow, Pull and Just-in-time•

Throughput economy and bottlenecks•

A Kanban system for maintenance work•

Exercise - ”Lean production”•

3. People, leadership and measurements

Leadership in an agile environment•

Kaizen through trust and transparency•

Building high performing teams•

Exercise – ”The Six Thinking Hats”•

Tool to use – “Agile Retrospectives”•

What you will learnUnderstand the underlying principles of Lean the Toyota •

Way and the Agile Manifesto.

Accordingly, you can design improvement solutions for

your own organization.

Use simple tools to define business value, find and re-•

move your waste, and create a flow of deliveries.

This will help you improve your profitability and reduce

your lead times.

Set up a permanent structure for continuous learning and •

improvement.

Content

Course: Lean and Agile for Managers Day(s): 2

4. Lean IT and how to make it happenValue - the work of the Product Owner•

Sourcing and new business models•

Exercise – ”Order your backlog by business •value”

Tool to use – “A structure for change”•

Page 84: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 84

Scrum for Team MembersThe 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.

IntroductionThe 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.

Often members of Scrum Teams are expected to self-organize

from day one. In this course you will get the insights and tools

necessary to quickly become a productive member of a Scrum

Team.

GoalAfter participation you will understand the core values of

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.

Scrum Basics and overviewAgile values•

Lean principles•

Theory of complex systems and processes•

2. The Scrum RolesScrum Team, Scrum Master and Product •Owner

Interaction between roles•

Team tools•

Team dynamics•

3. The Scrum FlowProduct Vision•

Product backlog•

i. Creation•

ii. Estimation•

iii. Maintenance and grooming•

4. The SprintSprint Planning•

Sprint Goal•

What you will learnTo understand the core values of Scrum •

The Scrum process flow, roles, meetings and artifacts•

Self-organizing and cross-functional teams•

How the Scrum roles interact with each other, and espe-•

cially how the Scrum Team interacts with the other roles

How to use retrospectives as a tool for continuous impro-•

vement and team learning

Target audienceAll potential participants of a Scrum team including develo-

pers, testers, analysts, architects and others.

Content

Course: Scrum for Team Members Day(s): 1

Sprint Backlog•

Definition of ”Done”•

Work environment•

Visualisation tools•

i. Task Board•

ii. Burndown Chart•

Daily Scrum Meeting•

The Sprint Demo•

5. Retrospective

6. Release planning

A training course cooperation between Softhouse and Nohau

Page 85: Nohau Training Course Descriptions

Nohau Training Courses

Nohau Solutions AB, Box 1030, SE-212 10 Malmö, [email protected], www.nohau.se | Contact Nohau Training Courses: +46 40 59 22 16, [email protected] 85

Goal

As a project manager or design engineer you need to regard

patient risk during the entire development process.

Problems you encounter are to decide what is safe enough and

how you get there. Often you use FTA (Fault Tree Analysis)

or FMEA (Failure Mode and Effects Analysis) to show that

you have reached acceptable risk levels.

During the course we will get to know these tools, and we will

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).

During the course, we will regard the different questions •

arising in different project phases.

Software requires special handling, since it is not physi-•

cal, 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.

Big projects, small projects, old products,

and new products.... the course will raise

questions like: How to implement risk management in dif-•ferent phases of a project?

When does risk management start?•

When does risk management end?•

Who performs the risk management?•

SoftwareMDD/CE•

QSR/FDA•

ISO 14971•

EN60601-1-4•

Purpose with risk managementRelease a product•

Demonstrate acceptable risk level being met•

How is an acceptable risk level set?•

Previous knowledgeA few years experience of developing medical devices with

electronics or software.

ParticipantsProject managers or design engineers in medical device pro-

jects who have encountered risk management and now want to

know how it is done.

Exercises / ToolsShorter lectures mixed with practical examples.

This course is focused on practical ways to handle risk ma-

nagement, and there will be large room for discussions – this

course doesn’t have any finished truth.

Patient Risk Management in Medical DevicesIn 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.

Content

Course: Patient Risk Management in Medical Devices Day(s): 1

Basic toolsFTA (Fault Tree Analysis)•

FMEA / FMECA (Failure Mode and Effects •Analysis)

Page 86: Nohau Training Course Descriptions

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 are represented all over the Nordic market with offices in Sweden, Denmark, Finland

and Norway. Head office are located in Malmö, Sweden.

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 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 Norge Skøyenåsveien 5D

NO-0686 Oslo, Norge

phone: +47 92 44 22 09

fax: +47 92 44 22 09

www.nohau.no

Contact Nohau Training Centre

+46 40 59 22 16, [email protected]

About Nohau

Founded in 1981, Nohau is an independent experienced pro-

cess and solution specialist who understands the evolution of

the Software Delivery and understands the different proces-

ses needed to meet that evolution.

The prime target for Nohau is to make the customers soft-

ware 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 of-

fices in Sweden, Denmark, Finland and Norway.

More about Nohau: www.nohau.se

Nohau Training Centre