Software Can Be Designed and Developed in Many Different Ways

Software Can Be Designed and Developed in Many Different Ways

Software Development Lifecycles

The various activities which are undertaken when developing software are commonly modeled as a software development lifecycle. The software development lifecycle begins with the identification of a requirement for software and ends with the formal verification of the developed software against that requirement.

The software development lifecycle does not exist by itself, it is in fact part of an overall product lifecycle. Within the product lifecycle, software will undergo maintenance to correct errors and to comply with changes to requirements. The simplest overall form is where the product is just software, but it can become much more complicated, with multiple software developments each forming part of an overall system to comprise a product.

Software Development Approaches

Software can be designed and developed in many different ways. Noone way is any better than another way, and only analysis of the original problem will decide the requirements to solve it. Different requirements will determine the different ways in which programs may be developed. Some of the issues include:

  • the computer hardware and software available
  • the amount of time available
  • the amount of money available
  • the exact nature of the problem to be solved
  • the programming experience of the person who wishes to develop the program
  • the end users of the program.

The approach taken to design and develop a software package can vary from the very simple, limited planning approach to a very detailed, formal and structured approach.

Approach / Definition / Characteristics / Use / Personnel / Advantages / Disadvantages
Structured
approach / Use of the program
Development cycle:
• Defining the problem
• Planning the solution
• Building the solution
• Checking the solution
• Modifying the solution / • long time
periods required
for development
• suitable for
large-scale
projects
• requires large
budgets
• team approach / Very large
complex
programs e.g.
operating
systems,
integrated suites / • analysts
• designers
• programmers
• users
• management /
  • Thoroughly tested
  • Should meet exact requirements of user
  • Uses a range of experts
/
  • Costly
  • Time consuming
  • Requires a range of different skills (and usually costly experts)

Prototyping Approach / The development of a
working model which
may then be developed
further into a fully
functioning solution / • non-formal
• shorter time
period
• small-scale
projects
• small budgets / • multimedia
• websites
• online inquiry / • analysts
• programming
team /
  • Relatively fast development
  • Models a larger project, thus allows easier modification and visualization of larger project
/
  • May be difficult to implement as a fully working program

Rapid
applications
approach / The use of design which
results in the rapid
development of a
program / • lack of formal
stages
• coding
languages used
• relationship of
programmer to
end user
• short time
period
• small-scale
projects
• low budgets / Visual Basic
programs using
libraries of
available code / • developer
• end user /
  • Fast Development
  • Relatively Cheap
  • Uses considerable amount of existing code (which has usually been thoroughly tested elsewhere).
/
  • May not meet exact program requirements
  • May involve copyright and intellectual property rights problems
  • If using ope-source, may not be professionally supported.

End-user
approach / The customizing of
existing programs to
meet specific needs eg
adaptation of off-the-
shelf software / • use of standard
software packages
• lack of formal
stages
• short time
period
• potential long-
term, small-scale
projects
• low budgets / • word
processing,
spreadsheet and
database
templates
• integration of
queries, reports
and other
structures from a
4GL / end user is the
developer /
  • Should meet exact user requirements
  • Quicker and cheaper
/
  • Limited to simple projects
  • Limited to application programs
  • May not be properly documented or supported
  • System may fail if key person leaves
  • Does not usually scale up as business grows.