Mentoring Real-Time Embedded Software
After attending one of our training courses you may feel you would benefit from longer term support in implementing the new techniques you have learned. Feabhas offer end to end learning, this means that having attended one of our courses we can then provide mentoring support to assist you in taking your new knowledge back into the workplace. In particular we offer mentoring in the area of Linux development and the application of UML development.
UML Mentoring Skills
Feabhas provide mentoring assistance at all stages of the development lifecycle. However we excel in these particular areas:
- Application of UML to embedded development – UML is a standard design notation used across all types of software development. UML is primarily developed with IT software techniques in mind and as such requires some work to fit it into embedded development. This may involve the use of extra diagrams and also requires a different process of application.
- Application of Use Cases – Use Cases are one of the major strengths of UML and yet this is the area of UML least well defined. Feabhas have solid ground rules for the use of Use Cases that benefit the development lifecycle from requirements through implementation to test.
- UML to C – many of the Feabhas clients still work in C, however many also have the need to adopt UML to improve their development process. We have a clear and effective method for moving from UML to C and conversely for reverse engineering C into UML.
- UML Process – UML is only a design notation, no process for its application is defined. Feabhas have developed a unique process that can be used as a basis for the definition of a process at company or project level. We recognise that a process is heavily influenced by the tools that are used within it (particularly the case tool) and also affected by a company’s existing procedures. We therefore work with our clients to help them define a process that is relevant and practical for them.
- Performance Engineering – At Feabhas we believe in assessing the performance of a system from the earliest point in the development lifecycle, rather than producing a design and then testing its performance in the hope that it complies with set constraints. We are highly experienced at modelling for performance from the use case stage of development onwards.
- Embedded Systems Design – our strengths are not only in the use of UML but in producing good quality embedded systems design. We can draw on our strengths in the areas of real-time operating systems and programming languages to help develop good quality, reliable, object oriented designs, documented in UML.
Linux Mentoring Skills
We can help you set up your Linux development environment. Usually this will be a PC running a version of Linux, but could also be a Windows operating system. We offer advice on the versions of compilers and libraries available, and can assist you with the installation of a working tool-chain for your target CPU architecture.
Optimise Linux for your Platform
The next stage is to create a Linux configuration that is tailored for your target hardware. This includes configuring and compiling the Linux kernel, partitioning the storage devices and populating the root file system with the basic commands you will need to run Linux. We then help you find and evaluate open source components for your application, including such things as graphical user interfaces, data bases, networking components and so on.
Device drivers and applications
It is likely that you will need to write new device drivers or modify old ones in order to access the various peripherals on the target. Writing a reliable device driver is no mean feat but it can be made easier by combining your knowledge of the hardware with our knowledge of Linux. Likewise, writing regular Linux applications may take more time than you thought if you are not familiar with the API. Again, we can help.
If your application has real-time constraints you may be wondering how Linux is going to cope. We can help you measure the latencies and variations in response to real-time events and advise on ways to modify the software to meet your requirements. This may simply be a case of applying a real-time “patch” to the kernel or it may involve a more radical switch to a real-time sub kernel such as RTAI.
For more information on Feabhas mentoring please contact us
Feabhas Training Consultants
The strength of Feabhas training and consultancy comes not only from the courses we offer but the calibre of lecturer/consultant that we use. All consultants have at least ten years experience and are considered experts in their field. Almost all consultants work for Feabhas on a freelance basis and compliment their work for us with consultancy and development for other companies. This ensures they are all still actively working in their field of expertise and are up to date with current practices.