Link To Us   |   Bookmark Us Member Login   |   Not a FREE member yet?  Sign Up Here!
 
Google
 
 
   


Home | Computers | Software


Software Development Project: Phases Overview
By: Ronit

Software development isn't all about the code. In fact, coding is part of the overall project lifecycle.Softwarte development project includes certain different phases and almost each business applys these phases to the specific needs of real situations.The typical software project includes the following phases:

1. Requirements Analysis and Definition. System Overview
2. Estimation
3. Functional Specification and UI Prototype
4. Software Architecture and Test Plan
5. Implementation (Coding) and Testing
6. Release. Delivery and Installation
7. Operation and Maintenance

Requirements Analysis and Definition. System Overview

This phase begins with analyzing what exactly you want to have done. The system overview helps you see the big picture of the project and understand which steps need to be carried out. You should determine and document the vision for the target product or system; the user profile(s); the hardware and software environment; the most important components, functions, or features the software must have; the security requirements, etc.The product of this stage is the general system requirements (and sometimes, draft user manual). This document will be modified as the project is undertaken.

Estimation

This is a phase that is usually obscure to customers. Vendors tend to supply you with an estimate itself, and that's it.
customers may and should take more active part in the estimation process. For example, you have to be able to select from different options discussing the platforms, technologies, and tools that will be used for the target system. Also, make sure your vendor does a research of the existing libraries and tools that can be used in the project. Remember that an estimate should explicitly list what is included in the price, as well as why and how much any additional features will cost. Never let the vendor baffle you with technical jargon and complex details. Finally, if you are in doubt about the provided estimate, consult an expert; if the vendor appears to try to take advantage of you, don't bargain with such a company - just say "thank you" and look for another OSP. Outsourcing is risky by nature, so you can't afford to take chances with a vendor like that.

Functional Specification and UI Prototype

A functional specification determines what exactly the target system must do and the premises for its implementation. All requirements should be thoroughly defined and documented. The general system requirements and other documents created in the first phase serve as input here. Depending on the nature of the system, creating a UI prototype in this phase may be crucially important for the success of the project.If your company has appropriate experience, you can have the functional specification and UI prototype created in-house.Besides the functional specification and UI prototype, this phase may also result in creating an exact project plan that contains the project schedule, milestones, and human resources.

Software Architecture and Test Plan

In this phase, it is necessary to determine the system components covering your requirements and the way these components will work together. The software architecture design may be logically divided into two parts: general design and detailed design. The general design consists of the structural design, development strategy, and system design documentation. Working out the general design, developers break the target system into high-level components and describe them in the context of the whole system. When it comes to the detailed design, specification and documentation on each component are developed. The general system requirements, functional specification, and UI prototype serve as input for this phase.
Completing this phase, your vendor should produce the description of the software architecture, the algorithmic structure of the system components and their specifications, the documentation of all design decisions, and a thorough test plan.

Implementation (Coding) and Testing

The goal of this phase is building the target system based on the specifications developed in the previous phases. Transferring the specification algorithms into a programming language, your vendor creates and integrates the system components. Performing code reviews and test cases worked out by the vendor's QA/QC division, as well as unit, integration, and system tests are other key activities of this phase. Comprehensive testing and correcting any errors identified ensures that components function together properly, and that the project implementation meets the system specification.
Outsourcing a software development project, I advise you to have a project delivered and paid for in parts. This is one of the best ways to minimize the risk for you and your vendor. If you aren't satisfied with the way the project is being implemented, you can take to another vendor the specification and the code that was previously delivered.

Release. Delivery and Installation

In the release phase, your vendor must transfer the target product or system to you. The key activities usually include installation and configuration in the operational environment, acceptance testing, and training of the users if necessary.
A crucial point here is formal acceptance testing which comprises a series of end-to-end tests. It is performed to confirm that the product or system fulfills the acceptance requirements determined by the functional specification.
After this phase is complete, the product or system is considered formally delivered and accepted. If iterative development is used, the next iteration should be commenced.

Operation and Maintenance

The Operation and Maintenance phase begins once you have formally accepted the product or system delivered by the vendor. The task of this phase is the proper functioning of the software. To improve a product or system, it should be continuously maintained. Software maintenance involves detecting and correcting errors, as well as extending and improving the software itself.

Since the system requirements, user manual, functional specification, and even software architecture design often need to be updated and modified throughout the course of the project implementation so according to demand and requriment of your project above phases should be carried out.

Article Source: http://www.ArticleJoe.com

The author is a Writer working with a leading software development company, which deals with software outsourcing, offshore outsourcing and offshore software development. Get more valuable information at www.a1technology.com

Please Rate this Article

 

Not yet Rated

Click the XML Icon Above to Receive Software Articles Via RSS!




Copyright © ArticleJoe.com All Rights Reserved.
Use of our service is protected by our Privacy Policy and Terms of Service
100% Free Article Submission And Distribution

Powered by Article Dashboard