Development of quality software is a complex process. It is invaluable to have formally approved company-wide document that describes steps leading to creating of applications with required functionality within defined time frame. We have developed such a process during past years of our presence on custom software development market. We adopted best practices of software development companies like ours, and invented some unique techniques that have led to high quality of our services. he basic steps in the software development process are as follows:
Initially client provide us with system requirements specification or design prospectus. Additionally, it is very helpful to have discussions with the client regarding the system functionality. This process may include interviews with expected users, and reviews of existing software or documentation. Based on the project specification, the Project Coordinator formulates a draft project plan. This document is used to coordinate project management, scheduling, and communication. JavaRealm system analysts present the analysis of the project requirements as a draft of the Software Requirement Specification (SRS). This specification will be used in the next phase to build the first prototype.
This preliminary mockup of the application being developed is made available on our Prototype Server. It demonstrates the architecture and interface design. Building a prototype early in the development process has several benefits:
3. Detailed Design
ormulation of the System Design Specification (SDS) and Test Plan is made. The SDS is a detailed schematic for coding, including:
Unit testing is the most efficient way to detect as many errors as possible. Each module or method of the application is tested it by itself. The main advantage to unit testing is that it puts you much closer to the errors in a particular piece of code, thereby making error detection quicker and easier. Unit testing prevents many errors from occurring, catches existing errors as early as possible, achieves the fullest possible coverage of your methods, and uncovers problems that later levels of testing are unable to detect. The developer is responsible for unit testing all methods and modules of his code, results of the unit test are formally peer reviewed by other members of the development team.
5. Issues/Bugs Tracking
Although we pay close attention to in-development unit and application testing, everyone knows that bugs in released systems are inevitable. Each released application automatically gets account within our Bug Tracking system. This system has Web and Email interfaces and allows owners or users of the application to submit bug/issue reports to us and monitor bug fixing process. Additional adventage of this mechanism is to allow accumulating of users suggestions on improving of the product. This suggestions that can form invaluable base for improvements/features list of the next version of the application.
6. Beta testing
Beta testing is a cyclic process of release and revision, ultimately resulting in the final release version. Testing is conducted according to the Test Plan after the production of each beta version. The test results and the software itself are reviewed and once the software satisfies quality requirements and has been accepted by the client, developers create the final release version.
7. Post Deployment
To ensure that operations proceed smoothly after installation is complete JavaRealm offers a range of post-deployment and support services, including: