Application Development — Management Curriculum

These courses are scheduled on demand.


Tools and Modules for Application - Development, Management and Testing

Many projects fail to generate expected results and benefits as a result of poor management, testing and control. This is examplified by symptoms such as lack of version control and centralised storage of ptoject resources, badly thought out ( or non existent or ad hoc ) testing strategies, poor erros and problem tracking, poor documentation, projects that grow without adequate management control and, as a result, suffer from "scope creep".

Over the years FTT have developed courses and modules that assist the applications developer to gain mastery and awareness of topics such as version control, issue and bug tracking, unit testing, rapid development and prototyping ( agile and extreme programming ), analysis and modeling, as well as topics such as test automation, log file analysis, standardisation for safety critical software development and XML for system configuration and data exchange.

Custom Courses

To meet more specific training needs, FTT can provide customised applied programming courses including topics such as Bugzilla, CVSTrac, design and implementation of "small languages", agile and extreme programming "experiential" workshops and project management courses

These courses can be presented either at your own premises or at our facilities in Carshalton. Custom training can be cost-effective for groups as small as four. Please call us to discuss your requirements.

Click on the links below for HTML versions of the full course outllines
Crs Title Days Outline
MAD101 CVS for Users 1 HTML
MAD102 CVS for Installation and Administration 1 HTML
MAD103 CVS Hook Script Implementation 1 HTML
MAD104 SVN (Subversion) for Users 1 HTML
MAD105 SVN (Subversion) for Installation and Administration 1 HTML
MAD106 SVN (Subversion) Hook Script Implementation 1 HTML
MAD107 Trac for Users 1 HTML
MAD108 Trac Installation and Administration 2 HTML
MAD201 Java Unit Testing 2 HTML
MAD202 C++ Unit Testing 3 HTML
MAD203 C# Unit Testing 2 HTML
MAD204 Unit Testing Approaches for Embedded Systems C Developers 4 HTML
MAD301 Agile and Extreme Programming - Concepts and Strategies 2 Contact Us
MAD302 Rapid Prototyping of GUIs Using Python and Qt4 4 Contact Us
MAD401 Using Statecharts for Modeling, Prototyping and Implementing GUIs 3 Contact Us
MAD501 Implementing Testing Frameworks Using Tcl/Expect 4 Contact Us
MAD502 Implementing Testing Frameworks Using Perl/Expect 4 Contact Us
MAD501 Implementing Testing Frameworks Using Python/Expect 4 Contact Us
MAD601 Unix Tools and Utilities for Analysis of Trace and Log Files 2 Contact Us
MAD602 Perl Programming Techniques for Analysis of Trace and Log Files 2 Contact Us
MAD603 Python Programming Techniques for Analysis of Trace and Log Files 2 Contact Us
MAD604 Using Relational databases for the Analysis of Trace and Log Files 2 Contact Us
MAD701 MISRA C Programming - Understanding and Deploying the Guidelines 3 Contact Us
MAD702 MISRA C++ Programming - Understanding and Deploying the Guidelines 4 Contact Us
MAD801 Understanding XML and its uses for System Configuration 2 Contact Us
MAD802 Understanding XML and its uses for Data Exchange 2 Contact Us

There are eight main course areas:

  • Version Control, Issue and Bug Tracking (Courses MAD101 to MAD108)
  • Unit Testing courses (Courses MAD201 to MAD204)
  • Rapid Development and Prototyping Courses (Courses MAD301, MAD302)
  • Modeling, Analysis and Design courses (Courses MAD401 to MAD403)
  • Scripting for Test Automation courses (Courses MAD501 to MAD503)
  • Logfile Analysis courses (Courses MAD601 to MAD604)
  • Safety Critical Systems Development courses (Courses MAD701 to MAD702)
  • XML and Software Development courses (Courses MAD801 to MAD802)

The Version Control, Issue and Bugtracking courses are targetted at Users, or Developers or Script writers who will be extending the functionality of the various tools. It is recommended that Administrators also attend a Users course, unless they are very familiar with the tool being used. Course can be run on either Linux/Unix or Microsoft Windows platforms. If necessary they can also be run on MacOSX platforms. In addition the course modules can be tailored e.g. to cover the use of CVS and SVN from Eclipse. The SVN course can also be tailored to include use of SVN from within Microsoft Visual Studio ( using Ankh ).

The Unit Testing courses are language specific. The Java and C++ courses can be run in conjunction with various IDEs (Integrated Development Environments) on either Linux/Unix or Windows platforms. The C# Unit testing course is run on Windows platforms only. The Unit Testing for Embedded Systems course can be tailored as needed.

The Agile and Extreme Programming concepts and strategies module can be used as a starting point into a number of tailored workwhops ( please inquire about these if you are interested ).

The firmware peripheral programming courses can be run so as to cover a specific family of Microchip Processors, or can be run as more generic courses

The specialised modeling and analysis design technique courses are advanced courses for experienced analysts and engineers, and, typically will need to be tailored to match specific training and project needs.

The scripting for test automation courses are, essentially, variants of an original Tcl/Expect course. This is because some organisations would rather develop Expect testing frameworks in Perl or Python. FTT can also provide course on SWIG for those who need to extend the functionality of Tcl, Perl or Python respectively.

Log file analysis techniques are very useful both for testing, tuning and administration. The log file analysis course modules explore various techniques and tools for carrying out these tasks. These modules can be tailored and combined in various ways e.g. FTT has produced a course that combined log file analysis in Python, conversion of the log file to an XML Document ( so that it could be processed by other tools and the information stored in a machine independent way ), and loading of log file data into a relational database ( e.g. SQLite, MySQl, or PostgreSQL ) and generation of reports by querying the database. If necessary Data Warehousing and Data Mining modules can also be added to such a tailored course.

The Safety Critical Systems Development following MISRA guidelines courses are for experienced programmers. If you have a requirement for other aspects of safety critical computing such as fault tolerant and secure systems programming then please inquire.

The XML and Software Development modules are aimed at programmers who need to become familiar with XML in the context of producing and processing XML configuration files and for setting up XML based applications for data exchange and messaging in machine independent formats.