|
Software Developement
Software development (also known as Application Development; Software Design,
Designing Software, Software Engineering, Software Application Development,
Enterprise Application Development, Platform Development) is the development of
a software product in a planned and structured process. This software could be
produced for a variety of purposes - the three most common purposes are to meet
specific needs of a specific client/business, to meet a perceived need of some
set of potential users.
There are several different approaches to software development, much like the
various views of political parties toward governing a country. Some take a more
structured, engineering-based approach to developing business solutions, whereas
others may take a more incremental approach, where software evolves as it is
developed piece-by-piece. Most methodologies share some combination of the
following stages of software development:
1- Market research
2- Gathering requirements for the proposed business solution
3- Analyzing the problem
4- Devising a plan or design for the software-based solution
5- Implementation (coding) of the software
6- Testing the software
7- Deployment
8- Maintenance and bug fixing
These stages are often referred to collectively as the software development
lifecycle, or SDLC. Different approaches to software development may carry out
these stages in different orders, or devote more or less time to different
stages. The level of detail of the documentation produced at each stage of
software development may also vary. These stages may also be carried out in turn
(a “waterfall” based approach), or they may be repeated over various cycles or
iterations (a more "extreme" approach). The more extreme approach usually
involves less time spent on planning and documentation, and more time spent on
coding and development of automated tests. More “extreme” approaches also
promote continuous testing throughout the development lifecycle, as well as
having a working (or bug-free) product at all times. More structured or
“waterfall” based approaches attempt to assess the majority of risks and develop
a detailed plan for the software before. implementation (coding) begins, and
avoid significant design changes and re-coding in later stages of the software
development lifecycle.
A software development methodology is a framework that is used to structure,
plan, and control the process of developing information systems. A wide variety
of such frameworks have evolved over the years, each with its own recognized
strengths and weaknesses. One system development methodology is not necessarily
suitable for use by all projects. Each of the available methodologies is best
suited to specific kinds of projects, based on various technical,
organizational, project and team considerations
|