Anda di halaman 1dari 4

Development Methodology

Diyatech follows industry accepted procedures and processes to ensure highest quality output for its customers. We have devised a 4D's (Discover, Design, Develop and Deliver) Methodology based on widely accepted Software Development Life Cycle (SDLC).

Discover
Business requirements

This description is only intended for business and marketing managers of the customer and does not commit any details of what this system would do. This phase try to understand the customer's business needs to provide them a high-level solution portrayal and helping them understand exactly how this would benefit their business.
Software requirements

This segment illustrates all the functionality of the project that is to be implemented. The Client is the owner of this document which describes what exact functionality system should provide, from an external viewpoint. The software requirement capture phase also deals with the parts of the system that have human users, and would describe the functionality from a user's perspective. The audience of this document is first the software engineers/architects who are responsible for using this as their basis for the design of the system. Secondly, this document is intended to help Quality Assurance personnel to start thinking about how to best prepare their test plans. Third, this document is intended for the technical writers so they can start preparing for writing any user's manuals, administration manuals, online help, and more. Finally, this document is intended for the customer to use as their acceptance test before a system could be put into production. Design
Use case analysis

This activity is purely from the perspective of software developers who are digging deep into

software requirements and understanding them more effectively. The main process contains the selection of the common and representative set of software requirements, building use-cases descriptions for them and then use-case course of events for them.A use case is a general, declarative sentence that describes actions a user of the system might perform. Then, for each of these sentences, a paragraph or so of descriptive text may be added. Use case analysis is a technique for developing system specifications and design by analyzing the system from the user's point of view. The results of use case analysis are:

The system requirements will describe the system according to how the user will use the system. Customers will easily understand the system requirements document, so they can help review it to find errors. Designers will add to the system only what the system needs to satisfy its requirements, so the system will be as simple as possible.

Prototype

This activity is very useful but is not always required. For a GUI based system, this becomes a very effective way of understanding all the user interface behavior. Prototyping is also very beneficial for getting the end-user approval about what the final system would look like. For non-GUI parts of a system, it helps solidify software developers' understanding about how to interact with this external system and all the issues related to it. Prototyping may go in parallel with use case analysis.
System architecture

After finishing use case analysis and prototyping, the next activity is to do a high level design. This again involves various UML methodology activities including the preparation of high-level object models, sequence diagrams, collaboration diagram, and data models. The end goal is to come up with a software architecture that can break the entire system into well-defined subsystems. All the subsystems, their public interfaces, and any subsystem interactions and dependencies are discussed in detail. This is the guiding light for all further design and development of the product. Architects and senior members of the development team do this activity. Application design

Develop
Subsystem design

Once an architectural design is finalized, work is then distributed to all the different team members who are responsible for making sure their subsystems are well designed internally and implemented with the best programming practices. During this activity, whenever an individual subsystem is implemented, it is also unit-tested to make sure it works well in isolation.

A test plan is prepared in parallel to the subsystem design and implementation and its outcome is a concise document explaining all the different ways in which the system can be tested. The Test Plan document contains all the test cases, which are to be used by the QA team. In addition to a test plan document, the QA team may also prepare test scripts to help automate some or all of the testing. We also prepare a customer acceptance test plan which is used to ensure that all features and functionality of the project is being handled. Passing this document is the exit criteria at the end of the project. In addition to communicating a clear criteria for project completion, the acceptance test plan provides all critical delivery information to development and QA team for correct and timely implementation and testing.
Subsystem development

Development of subsystems is spread across a number of intermediate milestones. As each milestone is achieved, it demonstrates limited functionality of the system. The purpose of these milestones is to make sure the progress of the project is on-track and the client is able to comment on the content of the work during the project. Integrating the code of all these milestones crafts the whole system.
Unit testing

Each member of the development team is responsible for conducting testing on his/her output. Developers do not release their code until they have tested it thoroughly and are satisfied with its correctness and quality.
Integration testing

This activity is done most by the software developers but the software QA also gets involved in it as a prelude to their eventual alpha testing. The purpose of this testing is to see two or more subsystems working together. As more and more subsystems are implemented and unit-tested, they are also put through integration testing. This is an iterative process and in every iteration it usually contains more and more subsystems until the entire system is completed. Integration testing starts somewhere during the subsystem implementation phase and continue until we reach Alpha phase. Deliver
Alpha testing

When all the different subsystems of the system are completed, unit-tested, and integration tested, the system is considered complete. This stage is called Alpha and any further testing on it is called Alpha Testing. In Alpha Testing, software QA is in-charge of all testing activity and tries to test this system as if it is being used by the end-users. This testing and bug-fixing is again an iterative process and all the information generated during this phase is controlled by a bug tracking system (BTS). We have a BTS in-house that is very effective in helping manage this very crucial phase of the product life cycle.
Beta testing

Many customers release their system to a limited number of their customers and go through another phase of testing and bug-fixing. This phase is called Beta Testing and is very similar to

the Alpha Testing except the customers are the actual "testers" of the system. A BTS is again involved in this phase to manage all the information generated.
System Rollout

This is the last stage of the project in which we work with the customer to rollout the system to all users. We hand-off all source code and documentation to customer after which we get customer's acceptance to formally end the project.

Anda mungkin juga menyukai