Nohau Training Centre Course Descriptions 2009
Mar 03, 2016
Nohau Training Centre Course Descriptions
2009
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
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
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
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
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•
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
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
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•
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
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.
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
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
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
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•
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•
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
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.
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•
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•
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.
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
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
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•
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
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
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
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•
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
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
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
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.
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
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•
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.
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
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.
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•
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
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
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
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
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
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.
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.•
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•
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•
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
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
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.
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.
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? •
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
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
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•
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
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
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
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
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•
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•
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
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
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
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•
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
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
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
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.
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
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.
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
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
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
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
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.
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
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.
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•
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)
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
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•
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”•
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
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)
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