When a request for proposal (RFP) is received, the Business Analysis team swings into action to analyze the client/project requirements. An estimate is provided to the client based on type of project and degree of complexity.
The BRS phase involves a high-level of interaction with client and core project team members to determine the scope, business rules and analyze requirements in-depth. The FE document is a deliverable to the client and needs approval.
The design team defines the software requirements for functionality, performance, design constraints, attributes, and external interfaces necessary to design the software. This phase helps the project and design team to underline the scope of the project in terms of technology requirements. The requirements define the response of the software to anticipated classes of input data, and provide the detail and information necessary to design the application.
The technical architecture team swings into action during this phase of development and prepares a high-level abstract of the system, which can be viewed as a whole. The dynamic behavior, conformance of the system in terms of performance, security and reliability requirements associated with current functionality, as well as flexibility or extensibility requirements associated with accommodating future functionality at a reasonable cost of change, are mapped. The architectural team at Novitas uses meta-architecture techniques like structural views, behavioral views, execution views, structural patterns, system decomposition principles and good interface design. The SRS combined with the technical architecture provides the input to the prototyping phase.
Prototype technique is used in our SDLC to determine system requirements, improve the accuracy of the requirements at hand, identify problems and risks early in the life cycle and bring about user involvement in defining of functional requirements. It also helps the project team in refining the system, reach concurrence on the requirements and interfaces with the client, simulate program and process flow. It also empowers the project team from both sides to avoid expensive errors later. The envisioning phase will conclude at this point and the planning phase begins.
With the FE and the SRS as a base, the system development team will conduct a comprehensive analysis of current and possible future functional requirements. The business rules and visual elements of the application are identified and explained. This makes sure that the application being developed, meets end user needs. The output of this phase will be the Functional Specifications document.
The output from the functional specification phase serves as an input to the Database design process in the development lifecycle. In this process, the entities relationships are identified and normalized to cater to rules for the application being built.
Items like performance issues, architecture constraints, system limitations etc are analyzed and appropriate actions performed.
The project team will make use of the Functional specifications and the database design to develop the overall technical specifications required for the application. The system/program architecture, system interfaces, system inputs and outputs are engineered using several modeling tools and techniques viz., VISIO, RATIONAL, System Architect, etc. The internal structure of each program (pseudo code, algorithms) is defined in sufficient detail to enable coding. The planning phase will conclude at this point.
The programming or development phase involves the development of operational code, unit and integration testing and related documentation. The main objectives of this phase are to translate the technical specifications into code, exercising all decision paths and functions of modules to produce desired results, ensure unit integration functionality with multiple units, and write the Unit Test Cases and Module Test Cases.
The Quality assurance process ensures that the application meets all user and system requirements, including compliance with coding standards and guidelines. The application is tested here for reliability, maintainability, usability and scalability apart from specification of system limits and volume capabilities. The application undergoes migration, turnover/test, readiness and review. The development phase ends here and the stabilizing phase begins.
The acceptance-testing phase empowers the client to verify that the system meets the certified user and functional requirements, is fully compatible with the required interfaces and is ready to be moved to production. System Test is energized to check the application being developed for integration and functionality. User acceptance testing is carried out and a formal approval is obtained on the software implementation and the documentation delivered so far along with relevant training materials.
This quality control gate ensures that all documents and activities have been completed, to verify acceptance of the application, its capabilities and to make sure that it is now ready to be implemented into production. The launch/deploy phase in the lifecycle helps to transition the application from the Acceptance Phase into live production status.