Case Study: Customized Application For A Consulting Company
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 system has a user-role based administration system. Different roles can access
a configurable set of modules.
- People are organized by a hierarchical structure of organizations, area and positions.
- 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.
Organize Training Plan
Draw the Diagram
- .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.
Windows Form based application
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.
Challenges of the development process
- The software has already been launched in the market; as a result, high quality,
capability, stability and maintainability are demanded for each release.
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.
Benefits to the Client
- The latest version of this software meets all the requirements of the client, including
the newly added features.
- 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
- 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