The client is a Consulting company based in US, providing its customers with not only consulting services, but also software solutions to promote the productivity of companies and organizations.
The client intended to develop a management system that could dispatch assignments with different customizable content packs like exams, surveys and learning content to different groups of people. And the results could be reviewed, graded, and analyzed in the system. Finally, the system would generate reports on the results.
The content packs can be made by the author, or bought from online providers, or imported from different types of document. The content should be able to show common media types such as image, sound and video of common format.
The system provides a way of notification/communication of assignments through message/email. People can either read messages in the system or through emails outside the system.
A template system is provided to facilitate the user in making a content pack. And the user can edit the content pack in a WYSIWYG (What You See Is What You Get) way.
People can take the assignments through either a windows application or a website.
.NET Framework 3.5
Dev Express Controls
Microsoft SQL Server 2008
Visual Studio 2008
Updater Application Block
Nova has been involved in this project since the analysis phase, and went through design, development, implementation and testing.
According to the requirements of the clients, the system should be entailed with various features like: good user experience, response speed, powerful and complex management capabilities, rich and varied analysis capabilities, real-time monitoring and tracking capabilities etc. Furthermore, users should be able to browse the contents published by the system through a browser or e-mail. Thus, we broke down this system into three parts: the Web part, Windows Form based application and Web Services. Meanwhile, MS SQL Server 2005 was adopted as the database.
Actually Web part could be considered as a Rich Internet Application, thus DHTML & AJAX was used to implement the major functionalities. To attain better extensibility and maintainability, it was possible that we would re-factor this part using Sliverlight. The Dev Express Web Controls we used not only provided integrated and pleasing UI, but also provided powerful functions and improved our development. Great user experience has been injected due to the adoption of ASP.NET AJAX.
For the Windows Form based application, we adopted Smart Client Software Factory to create the framework of the whole system, for the sake of the scalability and a more reasonable architecture of the system. There was no doubt that the deploying of widows application is very difficult. We hereby adopted the ClickOnce technology to deploy the system which made deploying a Windows Forms based application as easy as that of a web application.
The Web Services part was built on WSE3.0, and we had successfully migrated this part to WCF which strengthened security and dependability. In addition we compressed all the data to enhance the transport capability between the server and Client.
We were very cautious to handle each of the system changes, especially for those with relatively high risks. Firstly, we made a prototype to eliminate uncertainties inside, and then wrote detailed design documents and inspected it fully. Only after the client reviewed and confirmed, we began to implement it. In the process of implementation, we constantly re-factored the system and cross-checked the code.
We have benefited from the Smart Client Software Factory framework which supplies a high degree of flexibility and scalability. Our developers are familiar with OO development concept, and they have made full use of OO design patterns .Our code are clear, readable, high cohesion and low coupling, which furnishes the system with a guarantee of maintainability.
As the system had been developed over 2 years, the functions and logic of the system grew over time. The developers could not tell exactly how each module should work after a period of time.
We hold “new feature presentations” periodically in the team to show the new changes brought into the system. Normally the testers hosted the meetings. They brought the team together and showed the whole picture of what the system was or would be look like. The developers asked questions or discussed with each other therefore renewed the knowledge for the system.
All the requirements were collected by the clients from their end users. Accordingly the team could only get the functional description from the clients. The development team did not clearly get the purpose of a modification in this way, and might lose the chance to improve the design in their perspective.
We improved this by actively taking part in the creation of the requirements. Everyone was asked to act as real end users in the system to grasp the essence of the requirements. And we held “feature batch” meetings to discuss the possible features that we can add to the system, the possible solutions could be implemented, and then offered suggestions to the clients. The clients were happy to accept those suggestions and later on logged them on their future change request list.
With us thinking together with the clients, the clients worry less about the inconsistency of the implementation with the requirements.
Thanks to the mature frame “Smart Client Software Factory” and experienced developer, the system was established with excellent extensibility and maintainability. The client is able to add new functions increasingly in each iteration.
Because of our stringent development process, excellent quality control and good progress control, the client's business runs well with the software timely released and deployed.
With the good structure, ongoing re-factoring and refinement, the system was endowed with high expansibility, which can well support future business logic extension.
With the deep-set trust between the two sides, the client can now focus their forces on marketing, and he doesn't have to worry about the software development and team management.