Portfolio of Training Courses
Practical ICT Experience – Flexibility – Worldwide References
Knowledge Evolution
Why Ericpol Training Services? Practical Wide Experience We teach the subjects which we use in our work, combining practical experience with our professional but friendly teaching style
Flexibility We customize our training programs to fulfil customers’ needs We are flexible in how we organize our training courses
Worldwide References Our trainers conduct courses all over the world
Ericpol Training Centre tel. +48 42 6642500 fax: +48 42 6642555 training@ericpol.com training.ericpol.com
I/02
ericpol.com
Undoubtedly, knowledge is a valuable thing; however it is the ability to transfer, develop and practically apply it which actually influences a company's income. 20 years ago, when I created Ericpol, I personally used to teach my first employees modern methods of work and technologies that, at the time, were unknown in Poland. Even now we pay special attention to ensure that the ability to transfer knowledge benefits the entire company. The result is good. We employ over 1000 people in 4 countries. We have the know-how and experience which enable 1.5 billion people worldwide to communicate over the phone every day. I would like to encourage you to use our potential. Every day, since 1991 we have been creating global telecommunications systems, working in large international projects, verifying our competences in practical ways, often on a 24/7 basis. Telecommunications never sleep and remain in a continuous state of development. Our team of engineers follows the changes, analyzes them and passes their knowledge onto others. Their experience is at your disposal.
Yours sincerely, Jan Smela President of the Board of Ericpol Telecom Sp. z o.o.
Our training is conducted by a specially - designated team to enable us to share with you the know-how and skills we acquire. I hope that our catalogue communicates the scope of our services and allows you to choose those which will effectively aid you in meeting your challenges, today and in the future. We offer training related to telecommunications technologies, tools and programming solutions. These over 30 choices will surely allow you to find something of interest for your engineers and managing staff alike. Our team always adapts the topic you choose to suit your actual individual needs in order to transfer the target knowledge in a competent and effective manner. We have a motto which states that only those who speak about difficult issues in an easy way truly understand the essence of the topic. Thanks to this approach we can present references from satisfied customers from all over the world. Together with our team we guarantee that both the know-how and the way it is transferred will meet your expectations. You can expect that, when it is applied in practice, such know-how will increase the effectiveness of your organization. We want your market success to also become our success. Only then will our mission have been achieved. Yours sincerely, Małgorzata Wdówka Manager of the Training Department of Ericpol Telecom Sp. z o.o.
I/03
ericpol.com
Table of Contents
Why Ericpol Training Services? .........................................................................
I/02
Ericpol Telecom ..........................................................................................
I/06
Ericpol Training Centre .................................................................................. I/07 Training Competence ..................................................................................... I/08 Worldwide Training References .........................................................................
I/09
Courses on Telecommunications Networks GSM Overview ...................................................................................... II/01 GSM for non-IT Staff ...............................................................................
II/02
UMTS – 3rd Generation Network Solution ....................................................... II/03 IMS Overview .......................................................................................
II/04
LTE/SAE – a Step towards 4G ..................................................................... II/05 LTE Radio Interface ...............................................................................
II/06
Courses on Telecommunications Signalling SS7 Signalling in GSM Core Network ............................................................. III/01 SIGTRAN – SS7 Signalling over IP ............................................................... III/02 IN Protocols Introduction .......................................................................... III/03 MSS Signalling ...................................................................................... III/04 UTRAN Protocols and Procedures ................................................................ III/05 Introduction to SIP ................................................................................. III/06 ASN.1 ............................................................................................... III/07 Applications Development Training Courses UML Modelling ....................................................................................
IV/01
Perl – Workshop ....................................................................................
IV/02
Python – Workshop ................................................................................. IV/03 OCJP Tips & Tricks .................................................................................
IV/04
Java Workshop – Preparation for OCJP Exam .................................................... IV/05
I/04
JAIN SLEE and SIP Servlets – Workshop ........................................................
IV/06
JAIN SLEE – Workshop ...........................................................................
IV/07
SIP Servlets – Workshop ...........................................................................
IV/08
ericpol.com
Table of Contents
Embedded Systems Software Design and Development Introduction to Embedded Systems and Software ................................................. V/01 Introduction to Real-Time Operating Systems ..................................................... V/03 Testing of Embedded Software ...................................................................... V/05 Embedded Software Fundamentals Masterclass ................................................... V/07 Architectural Design of Real-Time Software ....................................................... V/09 Debugging Real-Time Software ..................................................................... V/11 Design of Distributed and Multi-Core Systems & Software ....................................... V/13 Design of High Availability Systems & Software ................................................... V/15 Design of Safety-Critical Systems & Software ...................................................... V/17 Design of Device Drivers for Embedded Systems .................................................. V/19 Safety Critical & High Availability Systems Masterclass .......................................... V/21 Embedded Software Testing and Debugging Masterclass ......................................... V/23 C++ Wizardry for Embedded ........................................................................ V/25 New Ways of Working Work with Agile Software Development – Scrum .................................................. VI/01 Scrum Simulation .................................................................................... VI/02
I/05
ericpol.com
Knowledge Evolution
Ericpol Telecom Professionalism in ICT Services Since 1991, Ericpol has been providing the highest quality outsourcing and consulting services in the field of telecommunications, as well as technical support and training services for the world’s largest telecommunications suppliers and various telecoms operators. Ericpol is also the largest company in Poland to provide telecommunications software solutions and on-demand software. Our engineers have extensive knowledge and experience in fixed and mobile networks, IN, NGN, signalling and data transmission protocols as well as billing systems. Our services cover consultancy for telecoms suppliers and operators, software development for telecoms nodes, telecoms network maintenance & management, installing network elements and comprehensive software testing. Ericpol Telecom employs over 1000 people in Poland and in subsidiary companies in Sweden, Ukraine and Belarus. Our engineers have carried out a large variety of successful projects in more than 70 countries all over the world. Thanks to the experience which we have gained whilst working with business partners such as Ericsson, France Telecom Group, Telmex, Telia Sonera, Oracle, BEA, OpenCloud, Catapult, Dialogic, AePona and Alcatel Lucent, we are in an excellent position to define our own processes, not only for software development, but also for business areas. This is reflected in the fact that we hold ISO 9001:2008 and ISO 14001:2004 certificates, and expect to gain the ISO 27001 certificate in the near future, all of which gives our partners a feeling of security in the certain knowledge that, in working with us, they have chosen highly reliable and respectable partner. All the above makes Ericpol Telecom a stable company with a critical mass of knowledge and experience, large growth potential and in a strong financial position.
You can rely on Ericpol’s professional expertise to handle the complexity of your current and future networks!
I/06
ericpol.com
Knowledge Evolution
Ericpol Training Centre Experience, Flexibility and Worldwide References Ericpol always aspires to set up “win-win” partnerships coupled with our individual approach and flexible pricing model. We strive to create constructive dialogue whilst choosing the most suitable training model for our client. Clear communication, fast responses and an attitude which values long term-relationships are very important to us. Ericpol Training Centre offers many off-the-shelf training courses in telecommunications technologies, a wide range of programming languages and technological platforms as well as project management methodologies, all presented by highly qualified and experienced instructors. The content of these courses is based on standard documents and, what is more important, originates from Ericpol’s experience gained in real projects which we have undertaken all over the world. If no course from our portfolio fully satisfies customers’ requirements, we adapt currently existing course or compile a few courses into one. Each course consists of a number of modules which can be combined to create a unique training programme depending on the customer choice and preference. In this way, our new partner pays for exactly what he or she really wants. We can also prepare and organize courses with the content tailored to customers’ specific requirements and needs. Key areas of our competence are:
RADIO NETWORKS BSS BSC BTS RNC
PROJECT MANAGEMENT AGILE SCRUM PMI
PROTOCOLS & STANDARDS SS7 (ISUP, MAP, BICC, TCAP) INAP CS1, INAP CS1+ CAPV2,3,4 SIP, DIAMETER TCP/IP, SIGTRAN LDAP
SOFTWARE DEVELOPMENT TECHNOLOGIES UML, JAVA, C++, PERL, PYTHON, PARLAY, JSLEE, SIP SERVLETS
CORE NETWORKS GSM (HLR, MSC) GPRS/EDGE UMTS/WCDMA LTE IMS PSTN IN
EMBEDDED SYSTEMS - RTOS VRTX, pSOS VxWorks OSEK/VDX Nucleus OSE, µC/OS
As our offer in telecommunications sector is wide, training courses and workshops can be part of a more complex project. We are also experienced in technology knowledge transfer.
I/07
ericpol.com
Knowledge Evolution
Training Competence Practical, Wide Experience with Professional Teaching Skills Ericpol has a team of competent trainers who are all curious about new technologies and solutions in telecoms and software design. They are professionals with broad knowledge and years of experience in business and running training courses. Their friendly, yet professional teaching style has gained praise from many participants as reflected in the very positive feedback. Training courses can be provided at all levels, from the basics to advanced. They are aimed at: Telecommunications and IT professionals (designers, software system architects and analysts, software development engineers, testers, operation and maintenance engineers) Technical consultants Technical sales support and sales representatives Project managers CTO, CIO Ericpol offers training paths which can be adjusted to specific needs in order to: Build up competence effectively Improve efficiency in problem solving Support the implementation of new technologies and new ways of working Trainers are carefully chosen, regularly assessed and themselves trained to transfer knowledge effectively, run workshops and lead groups. They keep up-to-date with current and cutting-edge technologies and standards in the industry. They can easily translate technical language to more understandable language depending on participants’ background. Training courses with such professionals are more effective than any form of self-education, including books, e-learning and tutorials, because the trainer is always ready and willing to: Share personal experiences Guide through technological complexities Give (live) answers to all questions on a topic Dispel any doubts After training, we support participants by offering consultation sessions which help them to use their newly gained knowledge in practical way in their everyday work. Ericpol offers all training courses in English, most of them in Polish (except for Embedded Systems Software Design and Development) and some can be provided in Russian.
I/08
ericpol.com
Knowledge Evolution
Worldwide Training References Ericpol Training Centre conducts courses all over the world (see the figure below for examples of past training locations):
Participants on our training courses work for technology providers, operators and institutions such as: Ericsson France Telecom Group T-Mobile Group ... and more Here is what some of our clients said about the quality of our training courses and attitude of our trainers: “Ericsson was very pleased with the way the training was performed and the high quality level of the training.” – Competence Manager, Ericsson AB “The training program on SS7 and SIGTRAN protocols, which was provided to a group of our designers and architects, fully met our expectations.” – Consulting & System Integration Manager, Ericsson Poland “The workshop was prepared in a professional manner. Trainer had extensive knowledge on the presented subject (...) Well-illustrated examples of the discussed topics were used. The training was positively received by participants.” - Head of Division, Telekomunikacja Polska (France Telecom Group) “I confidently recommend Ericpol Telecom's services in providing training workshops in the domain of telecommunications solutions, in this case, on JAIN SLEE / SIP Servlets.” – Studio Manager, Orange Labs Poland
I/09
ericpol.com
Knowledge Evolution
Courses on Telecommunications Networks GSM Overview Course ID: EPOL-05:002 Duration: 3 days Number of participants: recommended minimum 4, maximum 12 Course objectives This course aims to present a general description of the GSM system architecture and functionality. On completion of the course, participants will have a general knowledge of GSM: History of mobile and cellular systems Services in 2G and 2,5G GSM networks Architecture of Core Network and interconnections to other networks (including layered architecture) Coverage optimisation and frequency reuse problem Radio interface in 2G and 2,5G systems (with typical limitations of radio transmissions) Radio channels and bursts transmitted in radio channels GPRS/EDGE Packet transmission ID-numbers, with information about numbering plans and number analyzing tool Traffic cases (most typical scenarios) in the core network Target audience This training course has been designed for professionals in telecommunications who need technical background on GSM system. This includes designers, testers and maintenance engineers. Prerequisites Participants should have a general understanding of data communications and telecommunications. Some technical background, especially in the fields of the telecoms network and signalling, is recommended; otherwise, the course will take longer to complete. Learning method The course is based on theoretical lessons supported by a quiz and active discussion.
II/01
ericpol.com
Knowledge Evolution
GSM for non-IT Staff Course ID: EPOL-07:024 Duration: 1 day Number of participants: recommended minimum 4, maximum 12 Course objectives “GSM for non-IT Staff� is a course which aims to introduce participants to the Global System for Mobile Communications. The discussion about GSM includes: Brief history of cellular networks of the zero, first and second generations Basic services available in GSM network General structure of the network Description of the radio interface with some radio transmission concepts Introduction to resource usage, including the concepts of physical and logical channels Numbers used in the system Basic scenarios which are characteristic of the GSM system Target audience This course is tailored for people with no technical background, but who wish to gain a basic understanding of GSM. It has been developed especially for managers and sales representatives. All the concepts are presented without any difficult technical language, making it easy to absorb knowledge. Also numerous non-technical analogies help people feel more confident while exploring this field. Prerequisites There are no prerequisites for this course. Learning method The course is delivered in the form of presentations, lectures, reviews and time for questions, thereby helping participants to better assimilate information.
II/02
ericpol.com
Knowledge Evolution
UMTS – 3rd Generation Network Solution Course ID: EPOL-09:005 Duration: 3 days Number of participants: recommended minimum 4, maximum 12 Course objectives “UMTS – 3rd Generation Network Solution” is a course which aims to introduce participants to the Universal Mobile Telecommunications System network with Wideband Code Division Multiple Access as the radio access method. The presentation comprises: The evolution path of 1G – 4G mobile systems Network architecture from Release 99 to Release 8 Introduction to TDMA, FDMA and CDMA multiple access methods Spreading and scrambling codes in WCDMA Quality of Service concept for UTRAN Description of power control mechanisms and handovers in WCDMA Channel concepts for WCDMA access networks Protocol stack structures on the UTRAN interface Security in a UMTS network Popular scenarios and flow cases for a UMTS network Target audience The course is tailored for telecoms professionals working with system engineering, operation and maintenance, hardware and software development, testing and verification. Prerequisites The course will be more beneficial for people with some technical background. Basic knowledge of telecoms networks may be useful. Previous attendance on the “GSM Overview” (EPOL-05:002) course is recommended. Learning method The course is delivered in the form of presentations, lectures, reviews and time for questions, thereby helping participants to better assimilate information.
II/03
ericpol.com
Knowledge Evolution
IMS Overview Course ID: EPOL-10:013 Duration: 1 day Number of participants: recommended minimum 4, maximum 12 Course objectives The main objective of the “IMS Overview” course is to introduce the participants to the IP Multimedia Subsystem network and its basic concepts. The presentation includes: Introduction to IMS and network convergence IMS (and VoIP) architecture and component IMS identities, user identification and “Registration” process Services and service functionality in IMS (AS, B2BUA, SS to TISPAN, Media Server Control) Brief description of the main protocols used in IMS (e.g. SIP, SDP, H.248, RTP, Diameter) IMS over cellular systems – radio interface Security aspects and charging policies Example of the call flow and session establishment (e.g. Registration to IMS) Perspectives (3GPP, EPS) Target audience The course is tailored for telecoms professionals working with technical project management, design, system engineering, network planning, operations and maintenance, as well as technical sales of IMS systems, products and services. Prerequisites The course will be more beneficial for people with some technical background. Basic knowledge of telecoms networks and computer network protocols may be an advantage. Learning method The course is delivered in the form of presentations, lectures, reviews and time for questions, thereby helping participants to better assimilate information.
II/04
ericpol.com
Knowledge Evolution
LTE/SAE – a Step towards 4G Course ID: EPOL-10:035 Duration: 2 days Number of participants: recommended minimum 4, maximum 12 Course objectives The “LTE/SAE – a Step towards 4G” is a course which aims to present the architecture and functionality of the Evolved Packet System, which is to be successor of, for example, UMTS/HSPA technology. On completion of this course, participants will have gained the following knowledge about the LTE/SAE system: LTE/SAE system architecture and interworking with legacy networks (GSM/UMTS/CDMA 2000) LTE/SAE node functions, e.g. eNB, MME, S-GW, P-GW, PCRF, HSS QoS model for LTE/SAE ID numbers and area structure LTE radio interface (including FFT/IFFT, OFDMA, SC-FDMA, MIMO) Overview of LTE channel organization and physical procedures Voice transfer via LTE/SAE (VoIP, SAE and legacy networks interworking – CS fallback) Security mechanisms in LTE/SAE Example traffic cases Target audience Professionals in the field of telecommunications who need to know about the Evolved Packet System. This course will be valuable for employees from different teams and domains who want to start working with LTE/SAE or need to refresh their current knowledge of this subject. Prerequisites The course will be more beneficial for people with a general knowledge of 2G/3G mobile networks and telecommunications in general. Learning method The course is presentation-based.
II/05
ericpol.com
Knowledge Evolution
LTE Radio Interface Course ID: EPOL-10:036 Duration: 2 days Number of participants: recommended minimum 4, maximum 12 Course objectives The “LTE Radio Interface� course aims to present key aspects of the LTE air interface, physical layer procedures as well as signal transmission and processing in L1/L2 in detail. On completion of the course, participants will have know the following about the LTE radio interface: E-UTRAN structure and node functions Structure of S1-U, S1-MME, X2 and Uu protocol stacks and signalling protocol functions for each stack Uu interface physical layer features (frequency allocation, Doppler, multipath, ISI, OFDMA, SC-FDMA, FFT/IFFT, Cyclic Prefix, MIMO) LTE physical channels (types, functions, processing chains, physical resources organization, reference signals, radio frame structure) Physical layer procedures (cell search, synchronization, random access, etc.) L2 for LTE (MAC/RLC overview) Target audience Telecoms professionals who need detailed knowledge of the LTE radio interface. This course will be valuable for employees from different teams and domains, working on LTE radio. Prerequisites The course will be more beneficial for people with a general knowledge of LTE/SAE. Learning method The course is presentation-based.
II/06
ericpol.com
Knowledge Evolution
Courses on Telecommunications Signalling SS7 Signalling in GSM Core Network Course ID: EPOL-07:022 Duration: 2 days Number of participants: recommended minimum 4, maximum 12 Course objectives The “SS7 Signalling in GSM Core Network” course explains and describes the world’s most widely used inter-exchange signalling system for mobile telecommunications today, Signalling System No 7. This course concentrates on the SS7 protocol stack and includes: Introduction to the Signalling System No. 7 protocol stack Description of the Message Transfer Part protocol Description of the Signalling Connection Control Part protocol Description of the Transaction Capabilities Application Part protocol Description of the ISDN User Part Description of the Mobile Application Part protocol Description of the Intelligent Network Application Part and CAMEL Application Part Standardization documents and organisations Target audience The course has been developed for telecommunications professionals working with network management, system engineers, hardware and software developers and anybody who wishes to gain a basic understanding of SS7 signalling. Prerequisites The course will be more beneficial for people with some technical background, especially in the field of the telecommunications networks and GSM network structure. We recommend that participants on this course have previously attended the “GSM Overview” (EPOL 05:002) and “ASN.1” (EPOL 07:004) courses. Learning method The course is delivered in the form of presentations, practical exercises, reviews and time for questions, helping participants to better assimilate the newly acquired information.
III/01
ericpol.com
Knowledge Evolution
SIGTRAN – SS7 Signalling over IP Course ID: EPOL-10:034 Duration: 2 days Number of participants: recommended minimum 4, maximum 12 Course objective The “SIGTRAN – SS7 Signalling over IP” course aims to provide the details of signalling issues in IP networks, but still compatible with worldwide SS7 signalling. On completion of the course, participants will have gained the following knowledge about SIGTRAN in a network: The idea behind SIGTRAN, IP networking, adaptation layers from SS7 in TDM to IP networks Stream Control Transmission Protocol – a reliable way to deliver messages over unreliable network Typical adaptation layers in SIGTRAN (M2UA, M3UA, SUA, IUA) Practical issues related to redundancy, reliability and the evolution of signalling into SIGTRAN Traffic cases and call flows – typical scenarios which relate to signalling messages in IP Target audience This course has been designed for professionals in the telecommunications field who need to know the details on SIGTRAN signalling. This course will be valuable for employees from different teams and domains, but especially for those who design, maintain or support signalling over IP networks or multi-domain networks. Prerequisites The course will be more beneficial for participants with a general knowledge of networks and telecommunications, especially if they are familiar with SS7 signalling issues and IP networking. Learning method The course is presentation-based, along with exercises for participants.
III/02
ericpol.com
Knowledge Evolution
IN Protocols Introduction Course ID: EPOL-05:017 Duration: 6 hours Number of participants: recommended minimum 4, maximum 12 Course objectives During this course, participants will be trained on, and will gain knowledge about: The general concept of Intelligent Network and its origins Architecture of an IN Network Description of IN functional entities: SSP, SCP, SDP, IP, other IN services and examples of use Signalling protocols (SS7 stack), focus on IN Application Part protocol Main differences between INAP protocol versions (CS-x) The CAMEL standard and solution for implementing in a mobile network Exemplary traffic flows between IN nodes Process of creation of an IN service (lifecycle and SCE) Target audience This training course has been designed for professionals in telecommunications who need technical background on the Intelligent Network solution. Prerequisites Participants should have a general understanding of data communications and telecommunications. Some technical background, especially in the field of the networking and signalling, is recommended. Learning method The course is based on theoretical lessons.
III/03
ericpol.com
Knowledge Evolution
MSS Signalling Course ID: EPOL-09:015 Duration: 2 days Number of participants: recommended minimum 4, maximum 12 Course objectives This course aims to present a general description of the MSS system architecture and functionality used in core mobile networks. On completion of the course, participants will have knowledge on the following: Introduction – description of the Signalling Network and Mobile Core Network protocol stacks Mobile SoftSwitch architecture and functionality (MSC Server, Media Gateway, Virtual Media Gateway) ATM/AAL/Q.2630 – Functions and capabilities, frames structures, typical flow cases IPBCP – the tunnelling concept, messages and parameters, Session Description Protocol BICC – Principles and concepts, messages and parameters, typical BICC procedures GCP (H.248) – Functions and concepts, commands and descriptors, examples of procedures SIP – Functions and capabilities, routing and addressing for SIP signalling, how SIP works in MSS operations Explanations of complex traffic cases according to 3GPP standards and based on real traffic cases Target audience This training course has been designed for professionals in telecommunications who need technical background on the Mobile SoftSwitch system (MSC Server + Media Gateway). Prerequisites Participants should have a general understanding of data communications and telecommunications. Technical background, especially in the fields of the networking and signalling, is recommended. Learning method The course is delivered in the form of presentations, network log exercises supported by review and active discussion.
III/04
ericpol.com
Knowledge Evolution
UTRAN Protocols and Procedures Course ID: EPOL-10:005 Duration: 3 days Number of participants: recommended minimum 4, maximum 12 Course objectives The “UTRAN Protocols and Procedures” which cover the WCDMA radio access interfaces, such as Uu, Iub, Iur and Iu. It also includes a comprehensive survey of the protocols used over these interfaces: RRC, RLC, MAC, NBAP, RNSAP and RANAP. The presentation comprises: Protocol stacks for Uu, Iub, Iur, Iu interfaces QoS architecture RRC – Radio Resource Control RLC – Radio Link Control MAC – Medium Access Control NBAP – Node B Application Part RNSAP – Radio Network Subsystem Application Part RANAP – Radio Access Network Application Part FP – Frame Protocols Signalling procedures on UTRAN interfaces for layer 3 signalling protocols Target audience The course has been developed for telecoms professionals working with system engineering, hardware and software development, testing and verification. Prerequisites The course will be more beneficial for people with an understanding of UMTS’s WCDMA radio interface principles. Pervious participation on the “UMTS – 3rd Generation Networks Solution” (EPOL-09:005) course is therefore recommended. Learning method The course is delivered in the form of presentations, lectures, reviews and time for questions, thereby helping participants to better assimilate the newly acquired information.
III/05
ericpol.com
Knowledge Evolution
Introduction to SIP Course ID: EPOL-07:006 Duration: 1 day Number of participants: recommended minimum 4, maximum 12 Course objectives This course provides a high-level overview of SIP protocol functionality. Participants will acquire background on SIP's strengths and performance. They will learn the structure of SIP messages and SIP usage in applications. The discussion about Session Initiation Protocol includes: SIP history and introduction SIP functions and components SIP message, methods and response format SDP format, offer/answer model and usage in SIP Registrations and addressing (URI, URL) SIP servers, clients and user agents (e.g. B2BUA) SIP routing and proxies Reliability, Extending the protocol, forking, call preferences SIP session and basic call flow (e.g. Registration and Subscribe) SIP usage in the IMS network and SIP interworking SIP Target audience The course has been created for telecoms professionals working with hardware and software design, system engineering, testing and verification, network planning, operations and maintenance as well as technical sales of IMS systems, products and services. Prerequisites The course will be more beneficial for people with basic knowledge of telecoms networks, especially IMS. Previous attendance on the “IMS Overview� (EPOL-10:013) course is therefore recommended. Learning method This course is delivered in the form of lectures with a presentation of applications based on SIP protocol.
III/06
ericpol.com
Knowledge Evolution
ASN.1 Course ID: EPOL-07:004 Duration: 1 day Number of participants: recommended minimum 4, maximum 12 Course objectives This course aims to introduce participants to the Abstract Syntax Notation number one. The presentation on ASN.1 includes: Introduction to the Abstract Syntax Notation and description of its main concepts Description of the notation elements, aimed to prepare the participants to easily understand the ASN.1-based specifications Detailed description of the Basic Encoding Rules with examples of usage The course can be adapted to CER or DER encoding formats on demand. Target audience Telecoms professionals who need technical details on ASN.1 notation and BER encoding rule. Prerequisites The course will be more beneficial for people with some technical background. It is especially useful if participants are familiar with the basics of at least one computer programming language and binary/decimal/hexadecimal numbers conversion. Learning method The course is presentation-based. Apart from the lecture part, it includes practical exercises in encoding and decoding.
III/07
ericpol.com
Knowledge Evolution
Applications Development Training Courses UML Modelling Course ID: EPOL-06:001 Duration: 2 days Number of participants: recommended minimum 4, maximum 12 Course objectives This course aims to introduce participants to the Unified Modelling Language. It shows them how to analyze customers’ needs, formalize them in UML diagrams and create a system model. The course includes: History of UML language Class diagrams Use case diagrams Sequence diagrams Communication diagrams Activity diagrams Interaction overview diagrams Object diagrams State machine diagrams Package diagrams Composite structure diagrams Component diagrams Deployment diagrams Timing diagrams Target audience This course has been created for software architects, programmers, software developers, analysts and anyone else interested in understanding how to analyse and design systems in the UML 2.1 language. Prerequisites The course will be more beneficial for people familiar with the object-oriented approach. Learning method The course is predominantly presentation-based, but also includes some exercises.
IV/01
ericpol.com
Knowledge Evolution
Perl – Workshop Course ID: EPOL-07:025 Duration: 3 days Number of participants: recommended minimum 4, maximum 6 Course objectives This course aims to introduce participants to the Practical Extraction and Report Language. The training includes: Programming basics Control structures, loops and decisions Subroutines Object-Oriented Programming Target audience This training course has been designed for software engineers who need to use the Perl language for scripting and web development. Prerequisites The course will be most beneficial for people familiar with any high-level programming language (Python, Java, C++), although it has been designed to be approachable for people with basic knowledge of programming in any structural language (ANSI C, Pascal). Learning method The course is based on theoretical lessons interlaced with practical exercises carried out by participants.
IV/02
ericpol.com
Knowledge Evolution
Python – Workshop Course ID: EPOL-08:002 Duration: 2 days Number of participants: recommended minimum 4, maximum 6 Course objectives This course aims to introduce participants to the Python language. The presentation includes: Syntax and variables in the Python language Control structures Functions, modules and classes I/O handling Brief information about the standard library Target audience The training course has been designed for software engineers who need to use the Python language for scripting. Prerequisites The course would be most beneficial for people already familiar with any high-level programming language. Learning method The course is based on theoretical lessons, instructor-led presentations of tools and practical exercises carried out by participants.
IV/03
ericpol.com
Knowledge Evolution
OCJP Tips & Tricks Course ID: EPOL-10:031 Duration: 3 days Number of participants: recommended minimum 4, maximum 12 Course objectives This course aims to introduce participants to the Oracle Certified Java Programmer (OCJP) examination. It shows how to deal with tough questions and gives some rarely referred to information on Java. The presentation includes: Exam details General tips and tricks Tips for all the exam objectives Examples of questions Target audience The training course has been designed for software engineers who want to pass the OCJP exam. Prerequisites The course will be beneficial for people with a good level of knowledge of the Java programming language. Experience in Java programming will be an advantage. Learning methotd The course is based on presentation and hands-on exercises.
IV/04
ericpol.com
Knowledge Evolution
Java Workshop – Preparation for OCJP Exam Course ID: EPOL-10:032 Duration: 3 days Number of participants: recommended minimum 4, recommended optimum 6, maximum 8 Course objectives This course aims to help participants to prepare for the Oracle Certified Java Programmer examination. Its goal is to give participants the chance to work on specific features of the Java language. It concentrates on: Object oriented subjects Concurrency Collections Declarations and initialization objectives Target audience The course has been created for software developers who need to gain practical experience in Java programming, especially before taking the OCJP exam. Prerequisites The course will be more beneficial for people who already know Java and have used it at work as designer or tester. Learning method The course is in the form of a project. Participants learn by writing code which correctly solve set problems.
IV/05
ericpol.com
Knowledge Evolution
JAIN SLEE and SIP Servlets – Workshop Course ID: EPOL-08:010 Duration: 4 days Number of participants: recommended minimum 4, recommended optimum 6, maximum 8 Course objectives This course aims to introduce participants to JAIN technology and the concept of SIP servlets. On completion of the course, participants will be familiar with: IMS basis SIP protocol basis SIP servlets JAIN technology JSLEE elements Differences between SIP Servlets and JSLEE Example applications can be implemented on different platforms depending on a trainees’ requirements. Target audience The course has been created for software engineers, service developers or technical managers who need to gain practical experience in SIP servlets or JAIN SLEE technologies. Prerequisites The course would be more beneficial for people who have knowledge of the basics of telecommunications technologies. Participants should be familiar with the Java language. Previous participation in the “IMS Overview” (EPOL-07:019) and “SIP Protocol” (EPOL-07:006) courses would be helpful for participants of this course to better understand the IMS/SIP environment of developed applications. Learning method The course is based on presentation and hands-on exercises.
IV/06
ericpol.com
Knowledge Evolution
JAIN SLEE – Workshop Course ID: EPOL-10:014 Duration: 2 days Number of participants: recommended minimum 4, recommended optimum 6, maximum 8 Course objectives This course aims to introduce participants to JAIN technology. On completion of the course, participants will be familiar with: IMS basis JAIN technology JSLEE elements Example applications can be implemented on different platforms depending on a trainees’ requirements. Target audience The course has been created for software engineers, service developers or technical managers who need to gain practical experience in JAIN SLEE technologies. Prerequisites The course would be more beneficial for people with at least some knowledge of the basics of telecommunications technologies. Learning method The course is based on presentations and hands-on exercises.
IV/07
ericpol.com
Knowledge Evolution
SIP Servlets – Workshop Course ID: EPOL-10:015 Duration: 2 days Number of participants: recommended minimum 4, recommended optimum 6, maximum 8 Course objectives This course aims to introduce participants to the concept of SIP servlets. On completion of the course, participants will be familiar with: IMS basis SIP protocol basis SIP servlets Example applications can be implemented on different platforms depending on a traineess’ requirements. Target audience The course has been created for software engineers, service developers or technical managers who need to gain practical experience in SIP servlets. Prerequisites The course would be more beneficial for people with at least some knowledge of the basics of telecommunications technologies. Learning method The course is based on presentations and hands-on exercises.
IV/08
ericpol.com
Knowledge Evolution
Embedded Systems Software Design and Development Introduction to Embedded Systems and Software Course ID: EPOL-10:016 Duration: 2 or 3 days Number of participants: recommended optimum 15, maximum 25 Course objectives The primary goal of this course is to give the participant the concepts and techniques necessary to develop software for embedded computer systems with or without a real-time operating system. This is a very practical, results-oriented course that will provide knowledge and skills that can be applied immediately. This course introduces the concepts shared by most embedded systems and their software. It also introduces the techniques used in the development of embedded multitasking application software. The course begins with the fundamental elements of embedded systems hardware and software, including their design and development. Fundamental processor and operating system concepts relevant to multi-tasking systems are introduced, with focus on the basic services provided by off the shelf real-time operating system (RTOS) kernels. The course then introduces the students to multitasking application software design, using many application examples. Design approaches are shown for soft- as well as hard- real time systems. In addition, both mathematical and empirical development and debugging tools are studied. The special facilities of the C programming language for embedded software development are surveyed. On the third day of the course, special topics are given in-depth attention – including embedded device driver development, testing and debugging of embedded software and systems. The usage of multi-core systems-on-a-chip for embedded multiprocessing is also discussed.
V/01
ericpol.com
Knowledge Evolution
Target audience This course is intended for practicing software developers who will be transitioning into embedded systems software development. This is a course for engineers working in industry with less than a year of experience in the specifics of embedded systems development. For companies who can dedicate 4-5 days of training to its embedded systems software engineers, our course “Embedded Software Fundamentals� provides more extensive introductory training. Prerequisites Course participants are expected to be knowledgeable in the C programming language for general applications. Learning method The course is based on presentation with student work exercises.
V/02
ericpol.com
Knowledge Evolution
Introduction to Real-Time Operating Systems Course ID: EPOL-10:017 Duration: 2 or 3 days Number of participants: recommended optimum 15, maximum 25 NOTES: Can be tailored to focus on a specific Real-Time Operating System (RTOS), such as: VRTX, pSOS, VxWorks, OSEK / VDX, Nucleus, OSE, ÂľC/OS and others Can be tailored to focus on the Transition of Applications between specific RTOSs, such as: VRTX, pSOS, VxWorks, OSEK / VDX, Nucleus, OSE, ÂľC/OS and others Course objectives The primary goal of this course is to give the participant the skills necessary to develop software for embedded computer systems using a real-time operating system. This is a very practical, results oriented course that will provide knowledge and skills that can be applied immediately. This course introduces the principles shared by many real-time operating systems, and their use in the development of embedded multitasking application software. The course begins with the fundamental elements of real-time multitasking embedded application software design and development. Processor and operating system concepts relevant to multitasking systems are examined, with focus on pre-emptive task scheduling, intertask communication and synchronization. The course continues with a detailed survey of popular operating system kernel services, giving many application examples. Topics include timer services, dynamic memory allocation schemes, network communication programming interfaces and device driver supervisors. Multitasking code development is discussed and example programs are reviewed and debugged. Practical experience is gained during student work exercises.
VxWorks and pSOS are registered trademarks of Wind River Systems, Inc. Other marks and brands are the property of their respective holders
V/03
ericpol.com
Knowledge Evolution
On the third day of this course, advanced topics are discussed such as operating systems and hypervisors for symmetric and asymmetric multiprocessing which are appropriate for multi-core SOCs. The faculty for this course has extensive experience with a number of major real-time operating systems (RTOSs), including VRTX, pSOS, VxWorks, OSEK / VDX, Nucleus, OSE, µC/OS and others. Instructor can provide in-depth insight into the specific workings of these RTOSs during the course, if it is of particular interest. Target audience This course is intended for practicing embedded systems software development engineers, software system architects, project managers and technical consultants who are responsible for designing and implementing the software for real-time and embedded computer systems using a real-time operating system. This is a course for engineers in industry with less than 3 years of experience with real-time operating systems. For those with more experience, we recommend the advanced course “Architectural Design of Real-Time Software”. Prerequisites Course participants are expected to be knowledgeable in the C programming language. Learning method The course is based on presentation with student work exercises.
V/04
ericpol.com
Knowledge Evolution
Testing of Embedded Software Course ID: EPOL-10:018 Duration: 2 days Number of participants: recommended optimum 15, maximum 25 Course objectives The primary goal of this course is to give the participant the skills necessary to systematically plan, develop and implement test cases for software in embedded and real-time computer systems. This is a very practical, results-oriented course that will provide knowledge and skills that can be applied immediately. This course examines the activities and methods involved in systematically testing for errors, flaws, faults and failures in embedded and real-time software as it undergoes development. The class begins with a presentation of the main concepts and principles for systematic testing of embedded systems software. General techniques are touched upon quickly, including equivalence partitioning, boundary value testing, and code coverage criteria. Emphasis is placed on uniquely embedded testing issues such as flaws in interfacing, multitasking and timing, rather than on general data processing issues. The class continues with an examination of approaches important in embedded software testing, such as input / protocol testing, state machine model testing, testing of functional pair interactions, and simulation of unexpected interactions with the world outside the embedded system. High-level testing approaches are discussed for advanced stages of system development and integration, including security testing, stress testing and independent verification and validation. Disciplined techniques and tools are presented to support these approaches. Participants are asked to do detailed exercises on many of the techniques presented, so that the concepts and methods taught are reinforced and absorbed into the participant's arsenal of testing skills. This course is not a general course about software testing, but rather it is highly focused on the testing of embedded, time-constrained, resource-constrained software. Multitasking and real-time operating system (RTOS) testing issues will be emphasized if relevant for course participants.
V/05
ericpol.com
Knowledge Evolution
Target audience This course is intended for practicing real-time and embedded systems software testers, designers, developers and quality engineers who have responsibility for testing, planning and implementing the software for embedded and real-time computer systems. Prerequisites Course participants are expected to have some background in coding for real-time and embedded systems. It would be helpful, although it is not required, for course participants to have some familiarity with at least one RTOS. This knowledge can be gained at one of our introductory courses “Introduction to Embedded Systems and Software” or “Introduction to Real-Time Operating Systems”. Additional knowledge useful for attendees of this course can be obtained at the co-requisite advanced course “Debugging Real-Time Software”. Both courses can be combined in a 3-day format named “Embedded Software Testing and Debugging Masterclass”. Learning method The course is based on lectures, discussions, example software testing scenarios and classroom exercises.
V/06
ericpol.com
Knowledge Evolution
Embedded Software Fundamentals Masterclass Course ID: EPOL-10:019 Duration: 4 or 5 days Number of participants: recommended optimum 15, maximum 25 Course objectives The primary goal of this Masterclass is to give the participant the concepts and skills necessary to develop software for embedded computer systems, including the use of a real-time operating system and debugging tools and techniques. This is very practical, results-oriented training that will provide knowledge and skills that can be applied immediately. This Masterclass introduces the concepts shared by most embedded systems and their software. It also introduces the techniques used in the development of embedded multitasking application software, including real-time operating systems, and debugging techniques specific to real-time and embedded software. The Masterclass begins with the fundamental elements of embedded systems hardware and software, including their design and development. Fundamental processor and operating system concepts relevant to multitasking systems are introduced, with focus on the basic services provided by off-the-shelf real-time operating system (RTOS) kernels. The Masterclass then introduces the students to multitasking application software design. Design approaches are shown for soft- and hard- real time systems. In addition, development and debugging tools are studied. The special facilities of the C programming language for embedded software development are surveyed, as well as more disciplined approaches to C language programming for use in critical systems. The Masterclass concludes with an extensive 2-day session on the “Top 50� bugs in embedded software, and tools and techniques that are used to deal with them.
V/07
ericpol.com
Knowledge Evolution
Target audience This Masterclass is intended for practicing software developers who are transitioning into embedded systems software development. This is technical training for engineers working in industry with less than a year of experience in the specifics of embedded systems development. For those with more experience, we recommend the advanced course “Architectural Design of Real-Time Software�. Prerequisites Masterclass participants are expected to be knowledgeable in the C programming language for general applications. Learning method The course is based on presentation with student work exercises.
V/08
ericpol.com
Knowledge Evolution
Architectural Design of Real-Time Software Course ID: EPOL-10:020 Duration: 2 or 3 days Number of participants: recommended optimum 15, maximum 25 Course objectives The primary goal of this course is to give the participant the skills necessary to do high-level design of software for single-CPU real-time and embedded computer systems using a real-time operating system. This is a very practical, results-oriented course that will provide knowledge and skills that can be applied immediately. For engineers more focused on distributed and multi-core multiprocessing software design, our course “Design of Distributed and Multi-Core Systems & Software� may be of more immediate interest. This course examines the activities of high-level design of real-time and embedded systems software that's to be developed using a real-time operating system (RTOS). The class begins with a quick examination of some fundamental issues in real-time multitasking embedded application software design and development, and briefly reviews several modern techniques for real-time and embedded software requirements specification. It then quickly focuses on how to structure a software system that must execute within strict deadline and resource limits. Emphasis is placed on multitasking and timing behaviours, rather than object orientation. The class continues with a detailed examination of a broad spectrum of intertask communication and synchronization options including mutexes of several varieties. 'Liveness' issues such as deadly embrace, lockout, memory starvation and CPU starvation are discussed in detail. Students learn how to correctly configure queue lengths, and examine design dangers such as excessive interrupt latency and interrupt overflow. The next major subject area of the class is the evaluation of timing performance and quality of a real-time or embedded software design. A large variety of application examples reinforce the concepts that are learned. This course is not a general course about software design theory, but rather it is highly focused on the design of deeply-embedded, time-constrained, resource-constrained multitasking software that will run under the control of a modern RTOS.
V/09
ericpol.com
Knowledge Evolution
Target audience This course is intended for practicing real-time and embedded systems software system architects, project managers and technical consultants who have responsibility for designing, structuring and implementing the software for real-time and embedded computer systems using an RTOS. This course focuses on design for single-CPU systems. Prerequisites Course participants are expected to have thorough familiarity with at least one RTOS. This knowledge can be gained by attending one of the prerequisite introductory courses “Introduction to Embedded Systems and Software” or “Introduction to Real-Time Operating Systems”. Learning method The course is based on lectures, discussions, design examples, exercises.
V/10
ericpol.com
Knowledge Evolution
Debugging Real-Time Software Course ID: EPOL-10:021 Duration: 2 days Number of participants: recommended optimum 15, maximum 25 Course objectives The primary goal of this course is to give the participant the skills necessary to identify and correct defects in software for real-time computer systems developed with or without an RTOS. This is a very practical, results-oriented course that will provide knowledge and skills that can be applied immediately. This course examines the activities involved in discovering and correcting errors, flaws, faults and failures in real-time and embedded systems software. The class begins with a presentation of the main steps and guidelines for identifying and remedying situations in which real-time and embedded software is not working correctly. This is followed by a survey of the wide range of categories of bugs from which such software can suffer. The class then quickly focuses on a detailed discussion of the “top 5” kinds of bugs that can be “project killers” or “product killers”, including stack overflows, race conditions, deadlocks, timing problems, and re-entrancy conditions. Emphasis is placed on multitasking and timing behaviours, rather than on general data processing issues. The class continues with an examination of debugging tools that are helpful in real-time software development, such as low-level monitors, and high-level RTOS-aware system debuggers. 'Liveness' issues including deadly embrace, lockout, memory starvation and CPU starvation are discussed in depth. As are the particular sorts of bugs that tend to create problems in multi-tasking software when using real-time operating systems. Emphasis then focuses on the unique sorts of bugs that plague Interrupt Service Routines (ISRs), such as interrupt overflow. This course is not a general course about software debugging, but rather it is highly focused on the debugging of embedded, time-constrained, resource-constrained multitasking software that may run under the control of a modern real-time operating system (RTOS).
V/11
ericpol.com
Knowledge Evolution
Target audience This course is intended for practicing real-time and embedded systems software designers, software developers, project managers and quality engineers who have responsibility for planning, implementing and debugging the software for real-time and embedded computer systems. Prerequisites Course participants are expected to have practical knowledge of coding for real-time and embedded systems, plus some familiarity with at least one RTOS. This knowledge can also be gained by attending one of our prerequisite introductory courses “Introduction to Embedded Systems and Software” or “Introduction to Real-Time Operating Systems”. Additional knowledge useful for attendees of this course can be obtained at the prerequisite foundation course “Testing of Embedded Software”. Both courses can be combined in a 3-day format named “Embedded Software Testing and Debugging Masterclass”. Learning method The course is based on lectures, discussions, example debugging scenarios, classroom exercises.
V/12
ericpol.com
Knowledge Evolution
Design of Distributed and Multi-Core Systems & Software Course ID: EPOL-10:022 Duration: 2 days Number of participants: recommended optimum 15, maximum 25 Course objectives The primary goal of this course is to give the participant the skills necessary to design software for real-time and embedded multiprocessing systems that will operate in distributed and/or multi-core processing configurations. This is a very practical, results-oriented course that will provide knowledge and skills that can be applied immediately. This course examines the high-level design of embedded systems and software for distributed and multicore processing environments. It begins with a discussion of the basic concepts of distributed systems and multi-core systems on a chip (SoC's). This is followed by an in-depth study of distributed control systems design, including examples from automotive applications and home automation. Guidelines are given for the design of large and complex distributed systems, with examples from the worlds of transportation and highperformance communication systems. The course then shifts focus to the use of multi-core SoC's in embedded systems designs. This includes detailed study of both symmetric and asymmetric multiprocessing – from the perspectives of hardware, software and operating systems support. It delves deeply into operating systems for multi-core SoC's, multi-core software architectural design, and special memory issues in multi-core software. This course is far from a general course about system or software design theory, but rather it is highly focused on the practical design of multi-processor embedded systems and software that will operate in distributed and multi-core processing configurations.
V/13
ericpol.com
Knowledge Evolution
Target audience This course is intended for practicing real-time and embedded systems software system architects, project managers and technical consultants who will have responsibility for designing, structuring and implementing the software for real-time and embedded multiprocessing systems that will operate in distributed and/or multi-core processing configurations. Prerequisites Course participants are expected to have background in embedded and real-time software design for single-CPU systems. This knowledge can be gained by attending a prerequisite embedded software design course such as “Architectural Design of Real-Time Software�. Learning method The course is based on lectures, discussions, design examples, exercises.
V/14
ericpol.com
Knowledge Evolution
Design of High Availability Systems & Software Course ID: EPOL-10:023 Duration: 2 days Number of participants: recommended optimum 15, maximum 25 Course objectives The primary goal of this course is to give participants the skills necessary to design software for real time and embedded computer systems that must relentlessly provide service despite the occurrence of internal and external faults. This is a very practical, results-oriented course that will provide knowledge and skills that can be applied immediately. This course examines the high-level design of embedded systems and software that are to provide their services at near-continuous availability. High availability systems must tolerate both expected and unexpected faults. Their design is based on redundant hardware and software combined in ways that will achieve “five-nines� (99.999%) or greater availability, equivalent to less than 1 second of downtime per day. Basic hardware N-plexing and voting issues are discussed, followed by an in-depth study of a number of backward error recovery fault tolerance techniques including static N-version programming, Checkpoint-Rollback, Process Pairs, and Recovery Blocks. The class continues with several forward error recovery techniques. Technical issues such as failover management, data replication, and software design defects, are addressed in depth. Many real-world examples are presented. This course is far from a general course about system or software design theory, but rather it is highly focused on the design of embedded systems and software that must make their services available at all times, with less than 5 minutes per year of downtime.
V/15
ericpol.com
Knowledge Evolution
Target audience This course is intended for practicing real-time and embedded systems software system architects, project managers and technical consultants who have responsibility for designing, structuring and implementing the software for real-time and embedded computer systems that are required to continue providing service despite the occurrence of internal and external faults. Prerequisites Course participants are expected to be familiar with general embedded and real-time software design. This knowledge can be gained by attending a prerequisite embedded software design course such as “Architectural Design of Real-Time Software”. Many (but not all) high-availability systems are also safety-critical systems - which can threaten human safety or even human life in situations where the system fails and remains unavailable for significant periods of time. For those high-availability systems that also have safety-critical requirements, we recommend that the course “Design of Safety-Critical Systems and Software” should be taken at the same time as this course. The two courses have little overlap in content, and offer complimentary approaches and perspectives. It is possible to combine these two courses into a unified three- or four-day course for presentation at customer sites, under the name “Safety Critical and High Availability Systems Masterclass”. Learning method The course is based on lectures, discussions, design examples, exercises.
V/16
ericpol.com
Knowledge Evolution
Design of Safety-Critical Systems & Software Course ID: EPOL-10:024 Duration: 2 or 3 days Number of participants: recommended optimum 15, maximum 25 Course objectives The primary goal of this course is to give the participant the skills necessary to design software for real-time and embedded computer systems in which faults and failures could pose a danger to human life. This is a very practical, results-oriented course that will provide knowledge and skills that can be applied immediately. This course examines the design of embedded systems and software that are to provide services in applications that could, when they fail, threaten the well-being or life of people. It offers practical guidance on how to address safety concerns when designing safety critical software in fields such as medical, automotive, avionics, nuclear and chemical process control. The course surveys concepts and alternatives for software and system architectures appropriate for safety-critical systems. Following an examination of hazard and risk analysis techniques, it goes on to list a number of approaches to software safety that span fault avoidance, fault detection, and fault containment tactics including redundancy, recovery, masking and barriers. A variety of candidate architectural design patterns are examined, including dual/triple modular redundancy, dissimilar independent designs, backup parallel patterns and active/monitor parallel patterns. Many real-world examples are presented. Software design approaches are discussed for run-time Built-In Self Test (BIST) of processor and peripheral hardware. This course is far from a general course about system or software design theory, but rather it is tightly focused on the design of embedded systems and software that are required to provide their intended functions without endangering the safety or life of users or their environment.
V/17
ericpol.com
Knowledge Evolution
Target audience This course is intended for practicing real-time and embedded systems software system architects, project managers and technical consultants who have responsibility for designing, structuring and implementing the software for real-time and embedded computer systems in applications that could, when they fail, threaten the well-being or life of people. Prerequisites Course participants are expected to be familiar with general embedded and real-time software design. This knowledge can be gained by attending a prerequisite embedded software design course such as “Architectural Design of Real-Time Software”. Many (but not all) safety-critical systems must also be high-availability systems – with severe consequences in situations where the system fails and remains unavailable for significant periods of time. For those safety-critical systems that also have high-availability requirements, we recommend that the course “Design of High Availability Systems and Software” should be taken at the same time as this course. The two courses have little overlap in content, and offer complimentary approaches and perspectives. It is possible to combine these two courses into a unified three- or four-day course under the name of “Safety Critical and High Availability Systems Masterclass”. Learning method The course is based on lectures, discussions, design examples, exercises.
V/18
ericpol.com
Knowledge Evolution
Design of Device Drivers for Embedded Systems Course ID: EPOL-10:025 Duration: 2 days Number of participants: recommended optimum 15, maximum 25 Course objectives The primary goal of this course is to provide the participant with the knowledge and skills needed to design and develop device drivers for use with custom application specific hardware. This is a very practical, results-oriented course that will provide knowledge and skills that can be applied immediately. This course covers the concepts and principles shared by device drivers in a wide variety of environments. It deals with issues important to engineers who need to structure and write drivers for input, output and network interfacing hardware devices. Rather than focusing on the device driver requirements for a specific real-time operating system (RTOS), this course examines features and design similarities that are shared by device drivers in a variety of environments including those without an RTOS. The course begins with a presentation of the basic structure of device drivers and device I/O supervisors. This is followed by an in-depth discussion of fundamental issues in the design of device driver software or firmware, such as mutual exclusion, and synchronous vs. asynchronous execution. High-level design of device drivers is presented with emphasis on tailoring the structure of the driver to the characteristics of specific hardware devices and the nature of the data they carry. Interrupts, exception handling and DMA are discussed in detail.
V/19
ericpol.com
Knowledge Evolution
Target audience This course is intended for real-time software development engineers, software system architects, project managers, and technical consultants who have the responsibility for designing and implementing device driver software for real-time and embedded systems running on custom hardware containing application-specific I/O and network interfaces. While the class will be most useful for engineers who need to design and code device drivers, it will also be very helpful for application software engineers who want to have a better understanding of underlying firmware and how it relates to their application software. Prerequisites Course participants are expected to have a thorough familiarity with the C programming language and some software-hardware interface programming experience. Knowledge of at least one real-time operating system (RTOS) kernel is recommended. This knowledge can also be gained by attending one of the prerequisite introductory courses “Introduction to Embedded Systems and Software” or “Introduction to Real-Time Operating Systems”. Learning method The course is based on lectures, discussions, design examples, exercises.
V/20
ericpol.com
Knowledge Evolution
Safety Critical & High Availability Systems Masterclass Course ID: EPOL-10:026 Duration: 3 days Number of participants: recommended optimum 15, maximum 25 Course objectives The primary goal of this Masterclass is to give the participant the skills necessary to design systems and software for real-time and embedded computers in which faults and failures could pose a danger to human life. As part of this, participants gain skills in designing systems for high availability. This is very practical, results-oriented training that provides knowledge and skills that can be applied immediately. This Masterclass examines the design of embedded systems and software that are to provide services in applications that could, when they fail, threaten the well-being or safety of people. Many, though not all, of these systems must not be stopped under any circumstances, and thus must be designed for high availability. Practical guidance is offered on how to address these concerns when designing systems in fields such as medical, automotive, avionics, nuclear and chemical process control. The Masterclass surveys concepts and alternatives for system and software architectures appropriate for safety-critical and high availability systems. Following an examination of hazard and risk analysis techniques, the seminar goes on to list a number of approaches to software safety that span fault avoidance, fault detection, and fault containment tactics including redundancy, recovery, masking and barriers. A variety of candidate architectural design patterns are examined, including dual/triple modular redundancy, shutdown monitors, dissimilar independent designs, backup parallel patterns and active/monitor parallel patterns. Many real-world examples are presented. Systems which are required to provide high availability must be designed to tolerate faults. Their design is usually based on off-the-shelf hardware and software combined in ways that will achieve “five-nines� (99.999%) or greater availability. Basic hardware N-plexing and voting issues are discussed, followed by an in-depth study of a number of backward error recovery fault tolerance techniques including Checkpoint-Rollback, Process Pairs, and Recovery Blocks. The class continues with several forward error recovery techniques. Software design approaches are discussed for run-time Built-In Self Test (BIST) of processor and peripheral hardware. Technical issues such as failover management, data replication, and software design defects, are addressed in depth.
V/21
ericpol.com
Knowledge Evolution
This Masterclass is far from a general course about system or software design theory, but rather it is tightly focused on the design of embedded systems and software that are required to provide their intended functions without endangering the safety or life of users or their environment, while at the same time maintaining high availability if required. Target audience This Masterclass is intended for practicing real-time and embedded systems engineers, software system architects, project managers and technical consultants who have responsibility for designing, structuring and implementing the hardware and software for real-time and embedded computer systems in applications that could, when they fail, threaten the well-being or life of people. Many of these systems have high availability as an additional design requirement. Prerequisites Course participants are expected to be familiar with general embedded and real-time software design. This knowledge can be gained by attending a prerequisite embedded software design course such as “Architectural Design of Real-Time Software�. Learning method The course is based on lectures, discussions, design examples, exercises.
V/22
ericpol.com
Knowledge Evolution
Embedded Software Testing and Debugging Masterclass Course ID: EPOL-10:027 Duration: 3 or 4 days Number of participants: recommended optimum 15, maximum 25 Course objectives The primary goal of this course is to give the participant the skills necessary to systematically identify and correct defects in software for real-time computer systems developed with or without an RTOS. This is a very practical, results-oriented course that will provide knowledge and skills that can be applied immediately. This Masterclass examines the activities involved in testing and debugging errors, flaws, faults and failures in real-time and embedded systems software. Testing and debugging are two distinct activities with the shared goal of extracting defects from software and systems. Testing uses systematic, engineering-style methods, while debugging uses investigative, research-style methods. The class begins with a presentation of the main concepts and principles for systematic testing of embedded systems software. Emphasis is placed on uniquely embedded issues such as flaws in interfacing, multitasking and timing, rather than on general data processing issues. The class continues with an examination of approaches important in embedded software testing. Highlevel testing approaches are discussed for advanced stages of system development and integration, including security testing, stress testing and independent verification and validation. Techniques and tools are presented to support these approaches. The debugging portion of the course starts with a survey of the wide range of categories of bugs from which embedded and real-time software can suffer. It then focuses on a detailed discussion of the “top 5” kinds of bugs that can be “project killers” or “product killers”, including stack overflows, race conditions, deadlocks, timing problems, and re-entrancy conditions. Emphasis is placed on multitasking and timing behaviours. The class continues with an examination of debugging tools that are helpful in real-time software development. 'Liveness' issues including deadly embrace, lockout, memory starvation and CPU starvation are discussed in depth. As are the particular sorts of bugs that tend to create problems in multi-tasking software when using real-time operating systems. Emphasis then focuses on the unique sorts of bugs that plague Interrupt Service Routines (ISRs), such as interrupt overflow.
V/23
ericpol.com
Knowledge Evolution
Participants are asked to do detailed exercises on many of the techniques presented, so that the concepts and methods taught are reinforced and absorbed into the participant's arsenal of testing and debugging skills. This course is not a general course about software testing and debugging, but rather it is highly focused on the testing and debugging of embedded, time-constrained, resource-constrained multitasking software that may run under the control of a modern real-time operating system (RTOS). Target audience This course is intended for practicing real-time and embedded systems software designers, software developers, project managers, testers and quality engineers who have responsibility for planning, implementing, testing and debugging the software for real-time and embedded computer systems. Prerequisites Course participants are expected to have practical knowledge of coding for real-time and embedded systems, plus some familiarity with at least one RTOS. This knowledge can also be gained by attending one of our prerequisite introductory courses “Introduction to Embedded Systems and Software” or “Introduction to Real-Time Operating Systems”. Additional knowledge useful for attendees of this course can be obtained at the co-requisite advanced Course “Architectural Design of Real-Time Software”. For on-site presentation, both courses can be combined in a 4- or 5-day format. Learning method The course is based on lectures, discussions, design examples, exercises.
V/24
ericpol.com
Knowledge Evolution
C++ Wizardry for Embedded Course Code: EPOL-10:042 Duration: 2 days Number of Participants: recommended optimum 15, maximum 25 participants Course objectives The primary goal of this course is to give the participant a better understanding of C++ constructs, and when it is and is not appropriate to use those constructs. The course will arm participants with a new set of C++ programming techniques to enhance the quality, reliability, maintainability, performance and ease of coding of their software projects. These programming techniques are also useful as a baseline and “food for thought� for participants to build upon to formulate their own techniques to improve their software projects. This course examines and demonstrates the applicability and advantages of C++ to the embedded developer. Using numerous tested and proven programming techniques, solutions are demonstrated for avoiding common problem areas in software design relating to quality, reliability, maintainability and performance using C++ language facilities. Techniques are shown to reduce source code size and eliminate common manual programming tasks - all leading to more maintainable software with significantly lower bug counts, faster development times and shorter debug cycles. Examples of high consequence real world embedded software failures are examined. Strategies are then presented for how those problems could have been avoided using advanced C++ programming techniques. Particular attention is paid to issues of memory and resource management which can lead to intermittent, difficult to detect and hard to find and fix classes of bugs. In addition, performance implications of advanced C++ constructs, decoupling/maintainability, test driven development/defensive programming and interface-hidden performance enhancement techniques are covered in great detail. This course is not intended as an introduction to C++ and its features. Rather it is focused on advanced techniques and patterns that make ingenious use of C++ features to increase maintainability and quality without degradation of performance.
V/25
ericpol.com
Knowledge Evolution
Target audience This course is intended for engineers and consultants in the embedded field with intermediate to advanced C++ experience wishing to improve the quality, reliability, maintainability and performance of their software projects. Also, technically oriented managers and architects who wish to gain an understanding of why and how choosing C++ can benefit their new or existing projects. Prerequisities Course participants are expected to be familiar with C++ and related topics such as object oriented programming and templates. Training Methods The course is based on lectures, discussions, example C++ problem-solving scenarios, classroom exercises.
V/26
ericpol.com
Knowledge Evolution
New Ways of Working Work with Agile Software Development – Scrum Course ID: EPOL – 10:001 Duration: 5 or 6 hours Number of participants: recommended minimum 4, maximum 12 Course objectives During this course, participants will receive a solid grounding in Scrum and its core principles. They will learn how to apply Scrum techniques and tools in teams and how to benefit from them. After completing the course participants will be familiar with: Agile manifesto Scrum roles Scrum meetings Project flow Tools used in Scrum projects Optional module: a 60 minute Scrum which simulates a three-day sprint from start to finish will give participants the opportunity to check how the Scrum methodology works in practice. Target audience This course has been created for IT professionals who are interested in implementing Scrum methodology in software development. It is suitable both for engineers, project leaders and managers. Prerequisites There are no prerequisites for this course. Learning method The course is based on theoretical presentation. Participants will also learn through interactive and team-based exercises, and will be challenged to discuss and solve the most common Scrum problems.
VI/01
ericpol.com
Knowledge Evolution
Scrum Simulation Course ID: EPOL – 10:002 Duration: 2 days Number of participants: recommended minimum 6, maximum 12 Course objectives During the Scrum Simulation course your employees will have a chance to work in a mini project lead with Scrum. They will have to prepare a product during three sprints fulfilling the Product Owner’s needs. During the course participants will: Take part in all the Scrum meetings Cope with the continuous change of requirements Learn how to define and share the tasks Meet with different project problems Learn the differences between the first, the middle and the last sprint See how money issues are handled in Scrum methodology Work out good practices in Scrum projects Target audience The course has been created for IT professionals who are interested in implementing Scrum methodology in software development. It is suitable both for engineers, project leaders and managers. Prerequisites Participants have to be familiar with Scrum methodology. We recommend taking part in Agile Software Development with Scrum (EPOL/BDTR/DES:10-001). Learning method Participants build up Scrum skills on a mini project using Lego Blocks. They are supported by the team of experienced trainers – one in a role of a team coach, the other in a role of Product Owner.
VI/02
ericpol.com
Close to Customer Location Ericpol offices are located in six cities in four European countries.
Linkoping, SWEDEN Lodz, POLAND
Lviv, UKRAINE
Krakow, POLAND
Brest, BELARUS Warsaw, POLAND
ericpol.com
Head Office Ericpol Telecom Sp. z o.o. Targowa 9A 90 042 Lodz, Poland tel: +48 42 6642500 fax: +48 42 6642555 Krakow office Bobrzynskiego 12 30 348 Krakow, Poland tel: +48 12 2954600 fax: +48 12 2954666 Warsaw office Chalubinskiego 8 00 613 Warszawa, Poland tel: +48 22 6243561 fax: +48 22 6243561 Ericpol - Sweden Ericpol AB Datalinjen 4 583 30 Linkoping, Sweden tel: +46 13 212141 fax: +46 13 212151 Ericpol - Ukraine Ericpol TZOV Sholom Aleykhem 11 79 007 Lviv, Ukraine tel: +38 032 2424421 fax: +38 032 2424423 Ericpol - Belarus IOOO Ericpol Brest 63 Dzerzhynskogo Str. 22 4030 Brest tel: +375 162 204697 fax: +375 162 205457 office@ericpol.com er icpol.com
Ericpol Training Centre tel. +48 42 6642500 fax: +48 42 6642555 training@ericpol.com training.ericpol.com
EPOL/DOTR/INF-08:006 Uen
This document is non-binding offer. Copyright 2011 by Ericpol Telecom Sp. z o.o.