|
THEORY:
Just like any living
being, software also has a life cycle of its own. The production of a piece of
software is no less than production of a product like a shoe or a bag. When a
client comes to the shoe company and orders for a specific type of shoe, then
and there itself, the life cycle begins.
Every piece of end-user software, goes through different phases of production
and testing. They all are basically individual blocks of code , which have been
simulated together to form one major block which can be considered as the root
of a tree. Let us now look at such a tree structure:
DETAILED SOFTWARE DEVELOPMENT LIFE CYCLE

Let us now look quickly at these various stages for information :
Concept Exploration
This phase occurs to create the objectives and limits of the development
project. How urgent is a solution to a problem or opportunity? What
are the benefits? What are the possible solutions? What are the
preliminary estimated costs? What are management's objectives?
Answers to these questions are the results of this phase.
Return to Top
Preliminary Requirements
Analysis
This phase gathers the business requirements for a system. Measures of success
are defined to ensure a successful project. If there is a current system
what are its functions, benefits, limitations? What is the process that is
used to accomplish a task? What data is used to complete a process?
What do the people that will use the system expect it to do?
The output of this phase should be a fairly detailed list of the business
functions that will be performed by the proposed application. Most fail or
marginally successful software projects started out with poorly defined business
requirements! This step is essential for high levels of success! This
stage defines what the system will do, not how to do it.
Without this information the developer will add and add and add to the software
without a clear measure of when to stop.
Return to Top
Architectural Design
High level system design begins to define how a system will
accomplish what it is suppose to do. This phase includes
data
modeling, process modeling, interface
design, and partitioning a system's requirements into pieces (or
versions) that can be delivered in rapid succession. How the application
is partitioned into deliverable versions depends on the purpose of the
application.
Data Modeling
Data modeling is a technique to organize and document an application's data.
The technique is roughly divided into two steps: the logical model and the
physical model. A logical data model is a pictorial representation
of the data in an application, whose purpose is display data about things (entities)
and their relationships. Having a picture of this, usually called a entity relationship diagram
(ERD), helps eliminate design problems in
storing data for an application. Having a picture makes it easier to
communicate with clients and customers, and to spot errors in completeness,
consistency and accuracy. Problems in design can be very expensive
to fix after an application has be delivered.
A physical data model of the data defines how the data will be
stored. Many notations are used to describe data models. Which one
to use depends on your choice of CASE (computer-aided software engineering)
tools for creating the ERD. CASE tools can be used to create a
database from the model helping to speed development.
Process Modeling
Process modeling is a technique for organizing and documenting the logic,
policies, and procedures that are implemented by a system. Similar to data
modeling, process modeling is divided up into two steps: the logical model
and the physical model.
The logical process model, sometimes called conceptual or business
model, shows what a system does. It is implementation independent; that
is, it depicts the independent of any technical solution.
As the process model is developed, it evolves into a
physical process
model that describes how a system does what it is required to
perform. The physical model will be affected by choices and limits of the
technical implementation.
Process modeling has been since the beginning of the Industrial Revolution,
so many types of process models exist. Some examples are logic flowcharts,
decision tables, hierarchy charts, and data flow diagram (DFD).
Interface Design
User interface design is the specification of the dialog between the
application user and the computer. Since the introduction of the
Macintosh, application users are demanding that their applications look like and
work like there other graphical user interface (GUI) applications.
The goal of GUI applications is to make them easier and less error prone to user
that the older "prompt and process" character user interfaces of
legacy applications. The best user interfaces are "invisible" in
that they are very intuitive for the user. At the same time creating these
"invisible" interfaces can be very time consuming and difficult for
the application designers.
System interface design is the specification of how separate
applications interact to allow exchange of information. This allows
purchased systems to be controlled by custom applications. Newer GUI
applications can extract data from older legacy applications.
Return to Top
Detailed Design, Code and Testing
The construction phase in creating a working version of a system. When a
developer is creating the code for an application, many details are brought to
the forefront. A combination of detailed design and coding works very well
in creating an application that meets the needs of the users, but is
cost-effective to build.
Return to Top
Deliver Application
Creating a package for installing an application involves bringing together
various components that allow the user to install a version of the application
on their system.
The most important of these components is the executable application.
This is created by compiling tens and sometimes hundreds of program source files
using a compiler.
Another important component of an application is the database. This may
be an empty structure or may contain a significant amount of reference data or
data converted from a previous application.
Other components of the package include documentation (online and printed),
setup program (an application in itself), and various system files that support
the application.
The final step of creating a deliver package is testing the package on a
system configured a closely as possible to the user's computer system.
Return to Top
Customer Feedback
No major application has ever been delivered error free or without some function
missing! This can be the result of changing customer needs, vague
requirements, or poor design in varying degrees. Pressure to deliver
applications in shorter time frames has required that compromises are
made. Sometimes people using an application do not think of what they want
done or how they want something accomplished until the use an application for
awhile.
This phase allows the developers to evaluate their initial success and modify
an application to better meet the needs of the customer. Incremental
changes to existing software can be excellent way to deliver applications
rapidly!
Return to Top
Incorporate Changes
Design, code, test and deliver an
application's changes based on the customer feedback.
Return to Top
Deliver Final Application
Packaging an application for installation on the end users computer
system. Also updating and archiving all analysis and design documentation
to allow for better maintenance and enhancement of the application.
Finally, checking that the application meets all the business requirements
outlined in the analysis phase
of the software development life cycle |