Case Study for Custom Software Development
The customer is a company specializing in manufacturing special video recording eyewear.
The customer has got specially designed eyewear equipped with built in HD camera that enables user to make videos, photos and transfer them on PC/Mac and mobile app. The initial task set for our team was to create a desktop application that would allow adjusting the settings of the video recording device as well as modify recorded movies and pictures. The further requirement was to create mobile apps with similar functions.
The development process had to be flexible as the software was being developed along with the process of constant firmware improving and updating on the Customer’s side. The Customer provided us with the devices of different advance level for development and testing purposes.
As a result our development team was able to find an effective solution for communicating the PC/Mac with video recording device. This made it possible to recognize the device as a regular camera when connected via USB cable.
The desktop application was created for managing this communication. Once the connection is established, the application gets an access to the video recording device settings as well as the recorded video. The program provides access to a number of setting video modes optimized for sports, power savings and hands-on, etc. As an option the user can also manually set the focus mode, change the resolution, and turn on or off features like face-tracking and audio recording. Once the camera is unplugged from the PC/Mac the new settings are updated on camera device. On the next stage the function to edit the recording (such as video trimming) and share it was implemented.
As the desktop application development was coming to the end the Customer decided to go for development of mobile applications both for iOS and Android OS. The apps let you to control settings, as well as download/upload/delete/view media files from eyewear, DSC camera and other storage devices such as USB flash drive or SD card. The user can trim and post video via mobile device into a social media tool.
Since the video recording eyewear has become widely spread and used, the Customer decided to have a special web social platform developed for broadcasting the video recorded with the eyewear. The platform is Java based and is subject to constant enhancements.
Technologies and tools
Java, Swing/AWT, iOS, Android, Java Web Application, Stormpath
The customer is a UK-based company working in the sphere of medical software development.
The customer's requirement was to develop specialized software for automated Magnetic Resonance Imaging (MRI) data analysis. The software package is to be used in clinical studies, imaging biomarkers research, clinical trials of inflammatory, cardio and neurologic diseases.
As a result of Altabel and client's fruitful cooperation a unique product has been developed. While computerizing medical image analysis, it distinguishes peculiar imaging biomarkers, thus accelerating the process of customary image interpretation.
The software is universal, it can be used both by clinical and hospital departments as well as a single user, who doesn't need to connect to a server or PACs to carry out his research.
It aims at facilitating image analysis workflow seamlessly integrating with major Picture Archiving Systems. After analysis study results are converted into structured reports with images, notes and statistics.
- Single/network/cloud based application for both single imaging specialists and imaging departments
- Highly scalable, web based infrastructure
- Customizable functionality for image analysis and consequently payment
- Customizable structured reports containing images, comments and statistics
- Inter user communication functionality
- Toolboxes for 2D, 3D and 4D image analysis and biomarker scoring
Technologies and tools
GWT, Spring, Jasper, Guava, GIN, GWTP, gflot, Hibernate, Maven, XToolkit, webGL
The customer is a big fabric provider. Since the scale of the client's company is growing day by day and its relationship with external sub-companies becomes closer, the existing systems couldn't satisfy its business needs any more.
The client desired a much more advanced Supply Chain Management system which could transfer information, data, message, raw material etc. from one phase like supply, manufacture or distribution to another in different directions. For every department involved, this system sent out coordination instructions to obtain feedback and master corresponding information in time, accordingly, achieving the management with efficiency, speediness, high-quality and low-cost.
Our team was to integrate several separate systems to provide real-time track on raw material transfer and make the flow of operation more fluent. The departments involved technical department, sales department, distribution department, warehouse department, Compounder, etc. The system should have guaranteed the fluency and smoothness for all the activities among these departments and keep better track on all the transfer of products, materials and so on.
Our team was involved in this project from the analysis phase and went through design, development, implementation and remote site support. We designed the system based on the Functional Specification provided by the client and delivered the design with System Design Specification Document including architecture diagram, class diagram, sequence diagram, data flow diagram, and solution architecture as well as software component design. We developed the system based on the database design provided by client.
In order to make the hierarchy legible and easy for maintenance, we adopted 3 layers B/S structure according to J2EE standard and used open source framework Struts for a standard mechanism of transferring data between the presentation tier and the business logic tier.
One issue of the development was to integrate the existing databases into one system. According to our development experience, we recommended the client to adopt Hibernate to solve the problem. Hibernate was a powerful and effective Object/Relational mapping solution, which we used to construct the data layer. We used Hibernate framework to realize the data-groups compounding of separated databases. This transparent data management added high flexibility and expansibility to the logic layer.
- Access to better control of the system.
- Reduced maintenance and operational costs.
- Improved communication among different departments expediting the real-time transaction.
- A flexible and scalable system.
- Timely and accurate inventory reporting.
- Convenient database migration.
Technologies and tools
J2EE, Struts, Hibernate, DBCP, Log4j, iText, Jakarta, Displaytag
The customer is an Australian leading IT service provider that specializes in helping its global customers plan, build and support their IT infrastructures. Its business operations cover over 30 countries located on 6 continents and mainly aim at Australian corporation and government organizations both locally and internationally.
As a result of various intentional or natural factors, the network or infrastructures always suffered some incidents. If not handled in time, these incidents would possibly result in disasters; hence duly obtaining the incidents information in order to deal with the incidents quickly and effectively became the urgent affairs. The client required our team to design a universal system which was used to report incidents and assign repair tasks to related engineers so to improve the efficiency of handling incidents.
The Security Incident Response System was developed to have different authorization roles such as manager, coordinator, internal engineer, external engineer and employee. After authenticated, any user could report a security incident to managers of the IR department by describing the incidents type, status, cause, nature, location, occurred time, detected time, and the person who detected it. After a manager viewed the report, he then classified the incident and assigned it to a coordinator. Once the coordinator received this incident, he would immediately assign the repair task to the most suitable internal/external engineers who would analyze and handle the incident; meanwhile, reports would be generated and mailed to appropriate users after each of the submitting. Furthermore, the functionalities of searching incidents and checking each incident's status would also be available.
Our engineers were involved in the complete development life cycle. The proven delivery model was successfully utilized in the development. The solution was built on Microsoft .NET 2003 and Windows 2003, and applied Application Building Blocks. The Windows Authorization Manager was used to realize the role-based security. The database was SQL Server 2000.
After deeply understanding the requirements, we began the architecture design and database design. This was a multi-layered system which included Presentation Layer, Business Layer, Data Access Layer and Data Layer in order to maximally separate concerns among components and allow different developers to work on different parts of the solution with minimal dependencies on one another. Many great patterns had been adopted in each of the layer.
Since user interface logic tended to change more frequently than business logic, especially in Web-based applications, modularizing the user interface functionality of a Web application was preferable way so that the user interface could be modified easily. For this reason, we adopted MVC (Model-View-Controller) pattern to separate the modeling of the domain, the presentation, and the actions in the design of Presentation Layer.
In the Data Access layer, a proven O-R Mapping framework, DAP, developed by our engineers was utilized. The DAP Framework was built with C# and designed to be an extensible and reusable package that could be freely deployed in any project developed with the programming languages that conformed to CLS (Common Language Specification). With the help of the DAP Framework, records in database table could be easily mapped to objects. The framework also provided functionalities of object caching, object states management, distributed transaction etc.
In the process of test, we implemented comprehensive test involving Function Test, Unit Test, Security Test, Integration Test, and Load Test to guarantee the quality of the system.
- The time to marketing was slashed
- Improved the working efficiency
- Reduced the chance of accident
- A stable and scalable system was available
Technologies and tools
Microsoft .NET 2003, Windows 2003, SQL Server 2000, MVC, DAP Framework