Business Technology
Associates, Software Development Life Cycle
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.
Return to Top
BTA Home Page | Top
| Contact Us
Copyright © 1997, Business Technology Associates, Inc.