Professional Documents
Culture Documents
major task (referred to as an application). The applications usually consist of many programs. An
example would be the Department of Defense supply system, the customer system used at your local
bank, the repair parts inventory system used by car dealerships. There are thousands of applications
that use an information system created just to help solve a business problem.
Another example of an information system would be the "101 Computer Games" software you might
buy at any of several retail stores. This is an entertainment application, that is we are applying the
computer to do a task (entertain you). The software actually consists of many different programs
(checkers, chess, tic tac toe, etc.) that were most likely written by several different programmers.
Computer professionals that are in charge of creating applications often have the job title of System
Analyst. The major steps in creating an application include the following and start at Planning step.
During the Design phase the System Analyst will document the inputs, processing and outputs of each
program within the application. During the Implementation phase programmers would be assigned to
write the specific programs using a programming language decided by the System Analyst. Once the
system of programs is tested the new application is installed for people to use. As time goes by, things
change and a specific part or program might need repair. During the Maintenance phase, it goes through
a mini planning, analysis, design and implementation. The programs that need modification are
identified and programmers change or repair those programs. After several years of use, the system
usually becomes obsolete. At this point a major revision of the application is done. Thus the cycle
repeats itself.
Definitions
Definition 2: applications
Definition 4: implementation
The phase of a Systems Development Life Cycle where the programmers would be assigned to write
specific programs.
Software Development Life Cycle
by Scott Hebert
Problem Recognition
The first step in the SDLC is the recognition and understanding of the problem. It is not always
the case that a programmer is presented with a detailed list of instructions describing how the
final application should operate. Instead, a programmer is often approached when an
organization senses that something is wrong, but does not quite know where the problem lies.
During the problem recognition phase, the programmer uses research and investigation to more
narrowly define the problem that must be addressed (Senn, 2004).
Requirements Gathering
In order to design an application that fits the needs of the user, the programmer must understand
the inputs and outputs the user expects the application to perform. These inputs and outputs are
known as requirements. Requirements are features that the user must have in the application that
is being developed. It is often helpful for programmer and user to work together to develop a list
of requirements. The programmer often has a better understanding of the technology necessary to
develop the required list of features and can make recommendations that may improve on a
user’s expectations (Kingsley-Hughes & Kingsley-Hughes, 2005).
Software Design
A design describes how the software will satisfy the requirements agreed upon by the
programmer and the user. Software design tools, such as Unified Modeling Language (UML), to
translate the spoken language requirements into something that can be turned into computer
software. The software design phase consists of three steps. The preliminary design step begins
to flesh out the major characteristics of the application. The next step, prototyping, builds a
working model of the application. It is not the intention of the prototype to fulfill the design
requirements, but instead to give the user an idea of how the application will operate. The final
step in the design phase is the detailed design. The detailed design is the definitive
documentation of how the application will be implemented and operate. It defines the inputs the
application expects and the outputs it generates (Senn, 2004).
The Unified Modeling Language (UML) was created to provide a language that could be easily
understood by users and programmers. The UML is a standards-based modeling language that
uses shapes to diagram high-level processes so that details can be hidden and functionality
highlighted. The heart of the UML is its 13 diagram types which can be divided into 3 broad
categories: structure diagrams, behavior diagrams, and interaction diagrams. Structure diagrams
define things in the application. Behavior diagrams describe what happens in the application.
Finally, interaction diagrams define the flow of data among the structures in the application
(Farrell, 2008).
Development
The development phase is when the application is coded. The detailed design generated during
the software design phase is used to create the application. Few programs are completely built
from the ground up. During this phase, the programmer may acquire pre-built libraries or
modules to implement standardized pieces of the new application. No matter how comprehensive
the libraries or modules may be, some amount of programming will be necessary to satisfy the
specific requirements of the user. Finally, it is necessary to perform testing during this phase to
ensure the application is bug free (Senn, 2004).
Implementation
The final phase of the SDLC is to measure the effectiveness of the application and evaluate
potential enhancements. Most enterprise applications are in production for several years. During
this time, the application must evolve to meet the changing requirements of the enterprise. For
example, a landscaping business may decide to expand into sprinkler system installation. If the
billing application developed for the landscaping business does not have the ability to handle the
new product line, it must be modified. This evolution of the application will continue until it is
finally replaced by a new application (Senn, 2004).
The product developed which achieves customer satisfaction is not done in a single step. It
involves series of steps in a software development process. This is needed to develop quality
products with error free products to achieve customer satisfaction. There are many models
available in the software development process.
But majority of software development process follow the model named as software development life
cycle. This software develop life cycle has number of steps in it. The below article describes about the
software development life cycle and the steps involved into it.
Software development life cycle model is also called as waterfall model which is followed by majority of
systems. This software development life cycle process has the following seven stages in it namely
2. Feasibility study
3. Systems Analysis and Design
4. Code Generation
5. Testing
6. Maintenance
7. Implementation
Let us discuss each of these to have an overview about teach of the following steps in software
development life cycle.
The first essential or vital thing required for any software development is system. Also the
system requirement may vary based on the software product that is going to get developed. So a
careful analysis has to be made about the system requirement needed for the development of the
product. After the analysis and design of the system requirement phase the system required for
the development would be complete and the concentration can be on the software development
process.
2. Feasibility study:
After making an analysis in the system requirement the next step is to make analysis of the
software requirement. In other words feasibility study is also called as software requirement
analysis. In this phase development team has to make communication with customers and make
analysis of their requirement and analyze the system. By making analysis this way it would be
possible to make a report of identified area of problem. By making a detailed analysis on this
area a detailed document or report is prepared in this phase which has details like project plan or
schedule of the project, the cost estimated for developing and executing the system, target dates
for each phase of delivery of system developed and so on. This phase is the base of software
development process since further steps taken in software development life cycle would be based
on the analysis made on this phase and so careful analysis has to be made in this phase.
This is an important phase in system development .Here analysis is made on the design of the
system that is going to be developed. In other words database design, the design of the
architecture chosen, functional specification design, low level design documents, high level
design documents and so on takes place. Care must be taken to prepare these design documents
because the next phases namely the development phase is based on these design documents. If a
well structured and analyzed design document is prepared it would reduce the time taken in the
coming steps namely development and testing phases of the software development life cycle.
4. Code Generation:
This is the phase where actual development of the system takes place. That is based on the
design documents prepared in the earlier phase code is written in the programming technology
chosen. After the code is developed generation of code also takes place in this phase. In other
words the code is converted into executables in this phase after code generation.
5. Testing:
A software or system which is not tested would be of poor quality. This is because this is the
phase where system developed would be tested and reports are prepared about bugs or errors in
system. To do this testing phase there are different levels and methods of testing like unit testing,
system test and so on. Based on the need the testing methods are chosen and reports are prepared
about bugs. After this process the system again goes to development phase for correction of
errors and again tested. This process continues until the system is found to be error free. To ease
the testing process debuggers or testing tools are also available.