Monday, March 29, 2010

Software Development Life Cycle (SDLC)

Outsourcing software development work is riding high these days. Many companies and individuals prefer to go for software development outsourcing instead of doing it in-house. Software development work isn't an easy task as it involves a lot of planning, strategizing and testing. No software is perfect and in full functionality unless it overcomes all the tests. This is the reason why many companies going for software development outsourcing also keep a check on its testing services.

Any company supporting software development outsourcing usually follow a software development life cycle or popularly known as SDLC. The software development life cycle is a set framework preferably used for understanding and developing information systems and software successfully. Nowadays, businesses can easily acquire software in various ways that is from simply purchasing it off the shelf to designing a system tailored to the business' needs.

This software development life cycle has got many versions and each version carries its own strengths and weaknesses and benefits and disadvantages. Software developer can easily understand how each of these methods affects risk. Many software developers also call Software Development Life Cycle as Classic Life Cycle Model or Linear Sequential Model or Waterfall Method. Each and every software developer has got its own name and definition.

All the software development life cycle includes following activities:

• System/Information Engineering and Modeling- Software are always comprised of a large system, and work usually begins by setting up the requirements for all system elements. Next step is to allocate some subset of these requirements to software.

• Software Requirements Analysis- This stage is also known as feasibility study. In this crucial phase, the development team mainly visits the customer and studies their system.

• Systems Analysis and Design- This is the third phase in which, the software's overall structure and its nuances are defined. Being in terms of the client/server technology, it requires a number of tiers for the package architecture, the database design, and the data structure design.

• Code Generation- This code generation is performed in a detailed manner, and can be easily accomplished without much difficulty. Programming tools used to generate the code are Compilers, Interpreters and Debuggers.

• Testing- In this phase testing is performed to check the quality and its functionality. Various testing methodologies are available to unravel the bugs.

• Maintenance- Software surely goes into various changes once it is delivered to the customer/client.


Post a Comment