Get free consultancy
Contact Us Today!
Caldiatech™ –Software Development Methodology
- Custom Software Development-Overview
- Custom Software Development-Process Methodology
- Custom Software Development-Methodology for System Development
This describes the methodology to be used for project planning, monitoring and control in software development. This methodology provides a framework for software development and software maintenance teams to develop their project plans.
Using the activities detailed in this project planning process description and in supporting documents, project teams describe the work they will do, develop estimates of effort, develop a schedule, plan their management and technical approaches, identify measures to gather, and develop a risk management approach. It includes configuration management that is detailed in Chapter 5 titled configuration management.
The project monitoring and controlling process is used by project managers to ensure the team is making satisfactory progress towards the project goals. The purpose is to track all major project variables – cost, time, scope, and quality of deliverables.
The overall objectives of the process are to:
- Track and review actual project accomplishments and results to project plans
- Revise the project plan to reflect accomplishments thus far, and to revise the plan for remaining work, if needed
- Provide visibility into progress as the project proceeds, so that the team and management can take corrective action early when project performance varies significantly from original plans
- Project Planning Process
- Project Monitoring and Control Process
- Process for Project Reviews
- Process for Measuring Efficiency and Effectiveness Measures
- Supporting Templates
- Short Project Summary – A minimal plan for a small project; this can also be used for tracking progress on the project.
- WBS Elements from the Life Cycle Structure of 12207 WBS – List of WBS items that might be included in a life cycle for a project, with components for
- Primary life cycles for acquisition, supply, development, maintenance, operations
- Supporting processes for documentation, configuration management, quality assurance, verification, validation, joint review, audit, problem resolution
- Organization processes for (project) management, infrastructure, improvement, and training.
- Supporting Checklists
- Project Planning Checklist – This checklist carries the Items to consider when checking the work of a project team in building a project plan.
- Supporting Templates
- Weekly Project Status Report -A sample weekly status report for a project; includes items for tracking milestone progress, key accomplishments, costs, risks, and action items.
- Tracking Templates – Several worksheets for tracking action items, a simple work breakdown structure, and risks
- Supporting Checklists
- Change Management Checklist – Items to consider for documenting change requests, handling them with a change process, and ensuring approved changes are included in the project deliverables.
- Configuration Management Checklist – Items to consider for planning and performing configuration management.
- Project Monitoring Checklist – Items to consider when checking the work of a project manager and project team in monitoring the project to its plan.
- Project Review Checklist – Items to consider when planning, conducting, and following up on actions after a project review.
- Quality Assurance Checklist – Items to consider for planning and performing quality assurance.
The Methodology for system development is being illustrated in table below.
|(a)||Project Initiation||Define purpose and scope of the project. Prepare a project plan.||Project Plan|
|(b)||Requirements Specifications||Gather, tighten, refine and document requirements specifications from user||Requirement Specifications|
|(c)||Preliminary Design||Translate requirements specifications into logical design||Preliminary Design Specifications|
|(d)||Detailed Design||On the acceptance of the preliminary design detailed design will be drafted, it will be: Construct the physical design prepare detailed design specifications and program specifications||Detailed Design Specifications Conversion Specification (If any) Program Specification|
|(e)||Review of Mock-Up Website||Construct a skeletal (prototype) of website adhering to the system design.||Beta Prototype of the website|
|(f)||Website System Development||Build final required website and the system components||Final Website Website/System Code and final images animations|
|(g)||Local Website System||Testing setup hardware/software environment locally Load data into database on server (if required) and carry out system and integration testing||System Test Plan System Test Package System Test Reports|
|(h)||User Review of Local Website System||Check conformance to the requirements and design||Review Reports|
|(i)||Implementation||Prepare installation plan prepare user manual prepare operations manual prepare production system for implementation and train user support staff and operational staff on usage of the system||Installation Plan User Manual Operation Manual Production System|
|(j)||User Acceptance Test||Train users assist users in the preparation of user acceptance test plan provide technical assistance to users in carrying out the user acceptance testing resolve problems encountered during acceptance testing.||Training Materials User Acceptance Test Plan User Acceptance Test Package User Acceptance Test Reports|
|(k)||Implementation Support||Prepare project completion analysis report||Project Completion Analysis Report|
|(l)||Maintenance Support||Provide maintenance support to users||Maintenance Plan Maintenance Log|
This is the most important phase in the life cycle of the project since the functionality to be incorporated in the new system shall be understood and analyzed at this stage. The study, analysis and design for the existing system would require special attention, as the final understanding of the requirements for new system (vis-à-vis existing system) will determine the approach to be implemented for the new system development and implementation.
Keeping in mind the special needs for the system we have categorized the analysis and design of the systems into two parts. Each phase of study and analysis would be specially treated and would be given important consideration to the fact of each systems impact on the other system.
The analysis and design phase will be split into two parts:
- Analysis and Design of Existing System
- Analysis and Design of Proposed System (new system)
As the functionality and data/content of the existing system has to be reflected in the new system, the first step towards evolving the system will be to study, understand (functioning and flow) and analyze the existing system (if required and possible). The basic purpose of this whole exercise will be to finally come out with complete understanding of the existing system in view of the different tasks specified for it.
As the development for the new/enhanced system has to be based on the existing system, the study of the existing system/components of system will be done critically. This will enable to understand the functional requirements of the system and if required suggest the required modification/enhancements.
The outcome of this study would enable us to design and develop a robust and optimized system. The existing system would require attention and special treatment keeping the following points in perspective:
- Functional aspects of the existing system to be enhanced in the new system
- Interfacing the new features in the system over the existing components
The new system needs to ensure that functionalities of existing systems are preserved (if required) and also the existing functional areas of system are usable. To analyze and understand the existing system the following information would be required regarding the existing systems:
- Complete requirement specification (if available) of the existing system
- Complete functional specifications of the existing system
On the successful completion of the analysis/understanding and design of systems phase a functional prototype will be readied for the approval of our understanding of the system. This prototype will comply with the agreed required specifications of the client. The prototype developed will incorporate in miniature the basic system and data flow between the components in the system.
The prototype to be developed will be in two phases, namely:
- Prototype Beta
- Prototype Final
Specifics of the prototype to be developed based on the final understanding and the agreed final requirement is explained herein.
Prototype in the beta version will be the first stage development, making use of the outputs from the Analysis/Understanding and Design of Systems phase, in entirety. The requirement, functional, and design specifications formed after the completion of study, for the existing as well as the new systems will determine the shape of beta prototype.
The beta prototype of the system will involve the development of new layouts, content, theme for the website along with the representation of the service/interfaces.
The final outcome of the development will be a prototype, which will be considered to be of the beta version and will subsequently be sent for the approval.
Any changes, modifications in the beta prototype will be reviewed and incorporated Inputs for the prototype development will be:
- Finalized Requirement specifications from study of the new system
- Final Design evolved at the end of study of the new system
- Final defined functional specifications
During this period modifications/enhancements will be carried out based on the feedback. This phase will also carry out review of the images/graphics/animations (as applicable) and upon successful clearance will be incorporated in the system.
For the beta prototype if any bugs, shortcomings or defects were reported, these will be resolved. During this period the beta prototype will pass through the same rigorous testing and version control as applicable to the normal system development process. On the final approval/acceptance of the beta prototype the specific version of the beta prototype will be considered as the final prototype. Once the beta prototype accepted as the final prototype of the system will be a set guideline/benchmark for developing the complete system.
This stage shall be the longest in the entire life cycle of the system development. It shall encompass the development of all modules in conformance with the functional specifications.
The application development will commence only after the final approval of the beta prototype (i.e. with the final prototype). The system to be developed will be as per the set design and standards for the system. Each stage of application development will be monitored closely with the set milestones for each sub-system/sub-element/module.
Each successful accomplishment will be followed by the required round of testing (as applicable). The following tasks shall be carried out during this phase:
- UI and display logic development
- Business Logic Component development (enhancement/creation as required)
- Data handling components (specifically for new system)
- Creation of data /general information validation components
Below are the guidelines to be used during the development process. This is not intended to be all-inclusive but to be representative of the development process. While there are many methods or models that could be used for development, this is the process by which system will work through. Any problems with the process or deviations to the process should be brought forward in the quality assurance process. It is advisable, however, when performing QA to follow the methods described closely as any deviation to those processes could impact the delivery of the final product.
The following documents shall be drafted before the development begins:
- Functional Requirements Document
- Technical Requirements Document
- Test Requirements Document
- Test Plan/Procedure
- Inventory item
- Defect report
- Change request
- Quality Assurance check list and signoff sheet
The process of code development shown below is not absolute. However, it is intended as a guideline.
- Review functionality and technical capabilities to make sure that the capabilities to be coded to are understood.
- Identify capabilities and variances to be included. This is similar to what is required to be included in the test requirements. By identifying the test requirements more fully before the development process, the capabilities will be more fully understood. This will help with the code development by providing a better scope for the project.
- Test new code using unit and integration platforms with updated unit level test plan. A first level test will be performed on either the unit or the integration and testing platform. Any hardware requirements should have been identified in the test requirements so that it will be better understood what is needed to perform the unit level testing. This will also be the first level of integration testing. So any impacts to other modules will need to be identified at this stage.
- Inventory new code modules. Use the procedure documented in the following section to help understand the different inputs required.
- Update defect status. After completing code development, the status of the inventory item or defect should be changed to testing or system level testing as appropriate.
An important exercise in the system development is having a well-defined testing methodology following the robust QA standards set. While defining the testing methodology the important aspect considered is the well-understood base requirement and the defined parameters for the system. This process strengthens our understanding of the system and also helps in developing a system with more safeguards in place for the development of a robust and efficient system.
Each phase of testing will be undertaken as per the concerned stage of application development and will always have a sound process of preparing comprehensive test plans in adherence to the base system requirement catering to the complete (also special – if any) needs of every stage of system/sub-system.
The following methodology will be followed for testing as well as test plan preparation:
- Component Testing
- Integration Testing
- System Testing
- Acceptance Testing
Each stage of testing is incremental, fully taking into account the inputs from the previous testing phase. As shown in the following figure each phase of testing follows a set of standard procedures, which strictly comply, with QA norms. Feedback and reporting at each phase is robust to evolve a sound check system at place, which becomes a benchmark for the tester of next phase testing. During the complete process of testing, the bugs and defects reported are closely monitored for making any kind of design/requirement decisions (if required) for enhancing the system. The outcome of this complete exercise is a robust standard system as per the requirements and expectations of the client.