The courses in this track were designed by our experienced and disciplined software engineers and showcase the full lifecycle software engineering capabilities which span multiple business and technology domains, including real-time, embedded, large-scale, integrated, and distributed systems, to modern web, mobile, and cloud-enabled applications. Our software engineering solutions are architected and built for superior quality, operational efficiency, and extensibility to adapt to future demands. Mentoring and knowledge transfer are core to our service delivery, helping improve the efficiency and effectiveness of our clients’ teams.
|Introduction to OpenDDS Programming with C++||Dec 3 - Dec 4||Day||Mitz||6|
|Introduction to OpenDDS Programming with Java||Dec 5 - Dec 6||Day||Mitz||6|
Introduction to OpenDDS Programming with C++
This course provides students with an overview of the DDS specification, an introduction to the OpenDDS implementation, and hands-on experience building C++ applications using OpenDDS.more…
Dates & Times
Tue, Dec 3, 9:00am to 12:00pm
Wed, Dec 4, 9:00am to 12:00pm
Introduction to OpenDDS Programming with Java
This course provides students with an overview of the DDS specification, an introduction to the OpenDDS implementation, and hands-on experience developing applications using OpenDDS in Java.more…
Dates & Times
Thu, Dec 5, 9:00am to 12:00pm
Fri, Dec 6, 9:00am to 12:00pm
This one-day intensive workshop presents an in-depth exploration of agile techniques as applied to databases. It focuses on refactoring and automation using the Flyway tools and libraries.
Fundamentals of Software Testing
This course presents an architecture that defines a process to implement a structured testing environment for all phases of the Systems Development Life Cycle (SDLC). It conveys the four techniques of structured testing, and the application of those techniques during the phases of the SDLC. Using risk assessment as a guide for structured testing is emphasized and a risk matrix is presented. The main focus is on the creation of functional and structural test plans, test scripts, and test cases, including the use of break-it testing, complexity testing, and basis path testing. The organization of a testing team and the testing environment is also discussed. Hands-on workshops in a JAD format are used to reinforce concepts.
Guidelines and Best Practices for .NET Development
Best practices are coding techniques that have been designed and proven to work. In this hands-on course, students will be introduced to the guidelines and best practices for writing .NET code. Each practice will be stated as well as the purpose, application, and exception. Topics include coding guidelines for the .NET programming languages and best practices for the .NET Framework.
Hands-on object-oriented Analysis & design using uml
Software developers moving to an object-oriented paradigm, or anyone who wishes to effectively communicate using object-oriented models.
Introduction to Git
The course introduces git as a model and tool for distributed version control. Common version control operations such as adding files, committing, branching, and reviewing history are presented using the git command-line tool. The course shows how git is used in a team setting by presenting the gitflow workflow and its rationale. Students will complete individual exercises to learn the git command-line tool and team exercises to practice collaborative activities. The course highlights differences between git and centralized version control systems like Subversion.
Object-Oriented Design Patterns Applied
Developers who wish to utilize advanced object-oriented design techniques. Managers with a strong programming background who will be managing the design and implementation of object-oriented systems.
Refactoring to Design Patterns
This course introduces a sequence of low-level refactorings that allow developers to safely move their designs to patterns. Participants will learn how to recognize code smells that signal a possible pattern implementation, learn relevant design patterns, and learn to safely refactor existing code to implement the patterns, using unit tests to validate the functionality of the resulting refactored code. Through this process, participants will also develop an appreciation for good design and gain confidence in their ability to improve the design of legacy code, even when that legacy code may not have been well designed.