Our Customer is a global company, headquartered in Israel, specializing in high-performance machine control systems, ongoing customer service and support. The company helps leading machinery manufacturers improve motion control accuracy.
The Customer needed a solution to assist end users in better automation of production lines and fine-tuning the process of managing control modules. The challenge was to come up with an up-to-date version of the legacy software to cut maintenance costs and increase overall system performance. To attain these goals, the Customer turned to ScienceSoft.
The previous version of the software, released around 2000, was in .NET Windows forms. The ScienceSoft’s team was tasked to develop a new version from scratch.
The new version allows completing the following:
- Automate the calibration and maintenance of all the sensors on a production line
- Set addresses in automated mode
- Fine-tune the work of a production line
- The solution enables the following tools:
- Visual interface tools
- Diagnostic tools
The solution supports automated testing and can be employed for functional and unit testing.
The application was delivered in modules, the total number exceeding 20. The delivery approach allowed the Customer to use modules for different purposes, i.e., to integrate with third-party software, use modules for marketing objectives. The following changes were made to enhance the application architecture:
- Different software design patterns were used to improve the system architecture: Builder, Adapter, Observer, Command, Template, etc.
- The Model-View-ViewModel (MVVM) enterprise pattern was used to leverage the powerful features of Windows Presentation Foundation (WPF): data binding, command support, dependency properties, data templates, data trigger, etc.
- The Business logic and the User Controls appearance were spread over different levels, which allowed developers to independently work with the high quality of code.
- Added Dependency Injection (Unity) reduced coupling between classes to ensure more flexibility and independence.
The ScienceSoft’s team redesigned and updated application UI components using a new style, templates, animations, effects, and transitions. For customer business needs, the following third-party components were bought and integrated:
- Actipro WPF controls (MDI controls, docking, syntax highlighting editor, property grids, and wizards.
- National Instruments (Chart controls, Frequency response, Motion control, Signal processing).
- Enterprise Architect (UML diagrams, team collaboration, reverse engineering).
The Wizard subsystem (6 different wizard components) was completely redesigned to facilitate migration to new technology or creating a new Custom Wizard.Several components of a new WPF-based reporting system were integrated with printing support. A Report Exporting feature was added to all popular file formats (pdf, excel, word, csv, text file, jpg).
Each month, the development team prepared UML diagrams (class diagram, activity diagram, sequence diagram) of components to be migrated to new technology. Thereby, time for investigation and understanding application architecture was significantly reduced, the code became clear and maintainable.
For team collaboration and source server support, Team Foundation Services were used. For the testing team, EDT plans for each redesigned component were prepared.
Each application component was well-documented (SRS, EDT, SDD) and well-tested. The work also resulted in an up-to-date UI with facilitated further support.
ScienceSoft provided full-cycle development services and delivered a top-notch solution for processes automation. The customer received an updated application version with the option to separately use application modules for different objectives. The application UI was redesigned, a couple of known bugs were fixed, and the maintainability of different application components was improved. The ScienceSoft’s team reduced potential risks, improved the quality of code and speeded up the software development process.
Technologies and Tools
Integration with C++ libraries, Support for x86, x64 systems, Microsoft Visual Studio 2017, Microsoft Team Foundation Services, .NET 4.6, WPF, MVVM pattern, third-party components (Actipro for WPF, MVVMLight), Dependency Injection (Unity), UML diagrams.