Dr. Hari Singh Gour Vishwavidyalaya, Sagar
(M.P.)
A Project Report On
PASSPORT MANAGEMENT
Submitted As A Part Fulfilment Of
B.C.A (SEMESTER VI) – MAJOR PROJECT
GUIDED BY:
Miss.
(LECTURER, DHSGVV,
SAGAR(M.P.))
SUBMITTED BY:
SWETA DANGI
PARUL SONI
DR.
HARI
SINGH
GOUR
VISHWAVIDYALAYA
SAGAR, (M.P.)
(SESSION 2011)
DEPARTMENT OF COMPUTER SCIENCE
C
ERTIFICATE
This is to certify that
Miss. Shweta Dangi and Miss Parul Soni,
students of B.C.A VI Semester, Dr. Hari Singh Gour Vishwavidyalaya, Sagar,
(M.P.), have completed their major project titled
“ICICI BANKING
SYSTEM“,
as per the syllabus and have submitted a satisfactory report. This
project is a partial fulfilment towards the award of degree of
Bachelor of
Computer Applications
under
Dr. Hari Singh Gour
Vishwavidyalaya, Sagar, (M.P.).
A
CKNOWLEDGEMENT
There always remains a pleasure to acknowledge the assistance of several individuals
to the accomplishment of our goal and complication of the project:
―ICICI BANKING SYSTEM‖.
We owe a debt of gratitude to our project guide, Miss???, whose devotion of valuable
time from her busy schedule and coordination lead us towards the completion of
this project. She was extremely generous and we give our sincere thanks to her for
the constant support and guidance.
Our heartiest thanks extended to???. Last but not the least, we are thankful to the
whole computer science faculty, who directly or indirectly helped and advised us at
every step to complete this project work.
Project Team:
Shweta Dangi
Parul Soni
D
ECLARATION
We, MISS SHWETA DANGI and MISS PARUL SONI hereby declare that the work
presented in this project report entitled, ‖ICICI BANKING SYSTEM‖, submitted to
Department of Computer Science And Application towards the partial fulfilment of
B.C.A Semester, is an original & authentic record of work and it has not been
submitted by anywhere.
We further declare that if the statement cited above found false, we will be liable to
be disqualified, at any stage.
(
)
Name & Signature Enrollment No
(
)
T
ABLE
O
F
C
ONTENTS
Contents
Page No.
1.
Certification
1.1
Acknowledgement
1.2
College Certificate
1.3
Declaration
1.4
Project Certificate
2.
About Company – Aptech Ltd., Mumbai
2.1
Company profile
3.
Introduction
3.1
Project Definition
3.2
Objective Definition
3.3
Software And Hardware Requirement
4.
Technology Introduction
4.1
Strategies For Making “ICICI Banking
System”
4.2
Technology Description:
4.2.1
Java
4.2.2
Advantages of Using Java
4.2.3
JDBC
4.3
Framework
4.4
Features
4.5
About DBMS – Oracle
5.
Methodology
5.1
Software Development Life Cycle
5.2
Software Process Model
5.3
Entity Relation Diagram
5.4
Data Flow Diagram
6.
Implementation
6.1
Coding
7.
Testing Results
7.1
Testing
7.2
Software Testing Techniques Used
7.3
Screen Layout
7.4
Database
8.
Conclusion & Future Scope
8.1
Conclusion
P
ROJECT
I
NTRODUCTION
The ideal structure of online passport registration provides security to the passports to be registered where in we can fill all the details in an efficient and easy manner. A passport is a document, issued by a national Government. This certifies, for the purpose of international travel, the identity and nationality of its holder. The Elements of identity are name, date-of-birth, sex and place of birth most often, most often nationality and citizenship are congruent. A passport does not of itself entitle the passport holder entry into another country, nor to consular protection while abroad or any other privileges it does. However normally entitle the passport holder to return to his country that issued the passport. Rights to consular protection arise from international agreements, and the right to return arises from the laws of issuing country. An individual can register for a passport irrespective of his/her age. The registration of passport is a major step for issuing of a passport. It is system or process in which an individual has to provide exact details of his /her personal information and residential information. Proper registration of a passport is very vital as all the detail filled by the individual are depicted on the passport that is issued.
P
ROJECT
I
NTRODUCTION
SYNOPSIS
The main aim of the project is to design innovative software,which deals with
the passport authority management. The motto of the projectis to simplify the job
of the administrative people and to render a user-friendly package.The system
provides information regarding the passportapplication and its status (enquiry). The
tedious jobs such as verifying all therecords of the applicant, confirming that all the
personal details are furnished,submission of emigration check documents, passing
of police enquiry, positivereport from the previous applied section, etc., are done in
the most convenientway to the administrator.Also security is being provided in
the most proficient way. Allthe intermediate stages starting from receiving of
the application form torevealing the passport number along with the dispatch of the
passport are beingdealt
SYSTEM DEFINITION
At
first,
the
applicant
is
given
the
application
form.
Theapplicant returns the application duly filled up with all the details. After returning
the application the administrator awards with a file number to thatapplicant. This file
number plays the major role in the entire administrative procedure.Using the file
number
administrator
enters
all
the
details
such
as personal information, address details, physical particulars and educationalqualifica
tions. If any one of these are found to be invalid then that particular section is stopped
for process and the confirmation is being stopped.Next section consists entirely of
validating all the details like police records, validation of the amount paid, previous
applied and submissionof all the documents including the photos. Only if the
concerned departmentscorrectly approve all the reports then the file is sent to the
passport writingsection. Then the passport writing is done and dispatched. Also an
ability of theapplicant to enquire about the status of his application can be known
throughthe enquiry section.
H
ARDWARE
R
EQUIREMENTS
1. Processor : Intel Pentium III 800 Mhz. or above
2. Hard Disc : A minimum of 10 MB Hard disc space
3. RAM : 64 MB or above
4. Keyboard : Standard
5. Mouse : Standard
S
OFTWARE
R
EQUIREMENT
(F
ORD
EVELOPER)
a .
Windows XP or later
b.
Java Development Kit 1.6.0
Passport Seva
Vision"To deliver passport services to citizens in a timely, transparent, more
accessible, reliable manner and in a comfortable environment through
streamlined processes and committed, trained and motivated workforce"
In recent years, the Government of India has taken many initiatives to usher in an
era of Governance to improve the delivery of public services. The National
e-Governance Plan (NeGP) includes many high impact e-e-Governance projects that
have been identified as Mission Mode Projects (MMP's). One such project focuses
on reforming Passport services in India.
The Ministry of External Affairs (MEA) is responsible for issuance of Passports to
Indian Citizens through a network of 37 Passport offices across the Country and 180
Indian Embassies and Consulates abroad.
A Passport is an essential travel document for those who are traveling abroad for
education, tourism, pilgrimage, medical attendance, business purposes and family
visits. During the last few years, the growing economy and spreading globalization
have led to an increased demand for Passport and related services. The passport
demand is estimated to be growing by around 10% annually. This increased demand
for passport and related services is coming from both large cities and smaller towns,
creating a need for wider reach and availability. To augment and improve the
delivery of passport services to Indian citizens, the Ministry of External Affairs
(MEA) launched the Passport Seva Project (PSP) in May 2010.
The project has been implemented in a Public Private Partnership (PPP) mode with
Tata Consultancy Services, selected through a public competitive procurement
process. Under this program, the sovereign and fiduciary functions like verification,
granting and issuing of passport have been retained by MEA. The ownership and
strategic control of the core assets including data/information is with MEA.
Passport Seva enables simple, efficient and transparent processes for delivery of
passport and related services. Apart from creating a countrywide networked
environment for Government staff, it integrates with the State Police for physical
verification of applicant's credentials and with India Post for delivery of passports.
Transforming Passport Services for India Citizens
The Passport Seva Project is transforming passport and related services in India to
provide a best-in-class experience to Indian citizens. PSP is enabling MEA to
deliver passport services in a reliable, convenient and transparent manner, within
defined service levels. Key aspects of the service transformation achieved by PSP
are as follows:
1. Anywhere Anytime Access : Citizens can submit their passport applications
and seek an appointment on payment of passport fees online through the PSP
portal (www.passportindia.gov.in) at their convenience. The portal provides
comprehensive and latest information on all passport related services.
Citizens visit the nearest PSK with prior appointment date/time, thus
avoiding long queues and inconvenience.
2. Increased Network :As extended arms of 37 Passport Offices, 77 Passport
Seva Kendras (PSKs) have been made operational across the country and 16
Passport Seva Laghu Kendras(PSLKs) are being established as part of
Passport Seva.
3. Improved Amenities :The PSK provides a world class ambience. Amenities
in every PSK include helpful guides, information kiosks, photocopying, food
and beverage facilities, public phone booth, baby care, newspapers and
journals and television in a comfortable air-conditioned waiting lounge. The
Electronic Queue Management System ensures the 'first-in-first-out'
principle in application processing.
4. State of the Art Technology Infrastructure : Passport Seva is supported
by state-of-the-art technology infrastructure which enables end-to-end
passport services to be delivered with enhanced security comparable to the
best in the world. The photograph and biometrics of the applicants are
captured when they visit the PSK. Their applications and supporting
documents are digitized and stored in the system for further processing.
5. Integration with Police and India Post : The PSP network connects with
the State Police across all the states and union territories. The applicant's
data is sent electronically for police verification. PSP also provides an
interface to India Post for tracking delivery of passport to citizens.
6. Call Centre & Helpdesk : A multi-lingual National call centre operating in
17 Indian languages enables citizens to obtain passport service related
information and receive updates about their passport applications, round the
clock, seven days a week. An e-mail based helpdesk besides a mobile based
application 'mPassport Seva' provides information on passport services.
Technology
Introduction
J
AVA
Java is a programming language originally developed by James Gosling at Sun
Microsystems (which is now a subsidiary of Oracle Corporation) and released in
1995 as a core component of Sun Microsystems' Java platform. The language derives
much of its syntax from C and C++ but has a simpler object model and fewer
low-level facilities. Java applications are typically compiled to bytecode (class file) that
can run on any Java Virtual Machine (JVM) regardless of computer architecture. Java
is a general-purpose, concurrent, class-based, object-oriented language that is
specifically designed to have as few implementation dependencies as possible. It is
intended to let application developers "write once, run anywhere". Java is currently
one of the most popular programming languages in use, and is widely used from
application software to web applications.
The original and reference implementation Java compilers, virtual machines, and
class libraries were developed by Sun from 1995. As of May 2007, in compliance
with the specifications of the Java Community Process, Sun relicensed most of its
Java technologies under the GNU General Public License. Others have also
developed alternative implementations of these Sun technologies, such as the GNU
Compiler for Java, GNU Classpath, and Dalvik.
ADVANTAGES OF JAVA
Java offers a number of advantages to developers.
1. Java is simple: Java was designed to be easy to use and is therefore easy to
write, compile, debug, and learn than other programming languages. The
reason that why Java is much simpler than C++, is because Java uses
automatic memory allocation and garbage collection where else C++ requires
the programmer to allocate memory and to collect garbage.
2. Java is object-oriented: Java is object-oriented because programming in Java
is centered on creating objects, manipulating objects, and making objects
work together. This allows you to create modular programs and reusable code.
3. Java is platform-independent: One of the most significant advantages of Java
is its ability to move easily from one computer system to another. The ability
to run the same program on many different systems is crucial to World Wide
Web software, and Java succeeds at this by being platform-independent at
both the source and binary levels.
4. Java is distributed: Distributed computing involves several computers on a
network working together. Java is designed to make distributed computing
easy with the networking capability that is inherently integrated into it.
Writing network programs in Java is like sending and receiving data to and
from a file.
5. Java is interpreted: An interpreter is needed in order to run Java programs.
The programs are compiled into Java Virtual Machine code called bytecode.
The bytecode is machine independent and is able to run on any machine that
has a Java interpreter. With Java, the program need only be compiled once,
and the bytecode generated by the Java compiler can run on any platform.
6. Java is secure: Java is one of the first programming languages to consider
security as part of its design. The Java language, compiler, interpreter, and
runtime environment were each developed with security in mind.
7. Java is robust: Robust means reliable and no programming language can
really assure reliability. Java puts a lot of emphasis on early checking for
possible errors, as Java compilers are able to detect many problems that would
first show up during execution time in other languages.
8. Java is multithreaded: Multithreaded is the capability for a program to
perform several tasks simultaneously within a program. In Java, multithreaded
programming has been smoothly integrated into it, while in other languages,
operating system-specific procedures have to be called in order to enable
multithreading. Multithreading is a necessity in visual and network
programming.
JDBC
Java DataBase Connectivity, commonly referred to as JDBC, is an API for the Java
programming language that defines how a client may access a database. It provides
methods for querying and updating data in a database. JDBC is oriented towards
relational databases. A JDBC-to-ODBC bridge enables connections to any
ODBC-accessible data source in the JVM host environment.
Functionality
JDBC allows multiple implementations to exist and be used by the same application.
The API provides a mechanism for dynamically loading the correct Java packages
and registering them with the JDBC Driver Manager. The Driver Manager is used as
a connection factory for creating JDBC connections.
JDBC connections support creating and executing statements. These may be update
statements such as SQL's CREATE, INSERT, UPDATE and DELETE, or they may
be query statements such as SELECT. Additionally, stored procedures may be
invoked through a JDBC connection. JDBC represents statements using one of the
following classes:
Statement – the statement is sent to the database server each and every time.
PreparedStatement – the statement is cached and then the execution path is
pre-determined on the database server allowing it to be executed multiple
times in an efficient manner.
CallableStatement – used for executing stored procedures on the database.
Update statements such as INSERT, UPDATE and DELETE return an update count
that indicates how many rows were affected in the database. These statements do not
return any other information.
Query statements return a JDBC row result set. The row result set is used to walk
over the result set. Individual columns in a row are retrieved either by name or by
column number. There may be any number of rows in the result set. The row result
set has metadata that describes the names of the columns and their types.
There is an extension to the basic JDBC API in the javax.sql.
Examples
The method Class.forName(String) is used to load the JDBC driver class. The line
below causes the JDBC driver from some jdbc vendor to be loaded into the
application. (Some JVMs also require the class to be instantiated with
.newInstance().)
Class.forName( "com.somejdbcvendor.TheirJdbcDriver" );
In JDBC 4.0, it's no longer necessary to explicitly load JDBC drivers using
Class.forName().
When a Driver class is loaded, it creates an instance of itself and registers it with the
DriverManager. This can be done by including the needed code in the driver class's
static
block. e.g.
DriverManager.registerDriver(Driver driver)Now when a connection is needed, one of the
DriverManager.getConnection()methods is
used to create a JDBC connection.
Connection conn = DriverManager.getConnection(
"jdbc:somejdbcvendor:other data needed by some jdbc vendor",
"myLogin",
try {
/* you use the connection here */
} finally {
//It's important to close the connection when you are done with it
try { conn.close(); } catch (Throwable ignore) { /* Propagate the original exception
instead of this one that you may want just logged */ }
}
JDBC drivers
JDBC drivers are client-side adapters (installed on the client machine, not on the
server) that convert requests from Java programs to a protocol that the DBMS can
understand.
Types
There are commercial and free drivers available for most relational database servers.
These drivers fall into one of the following types:
Type 1 that calls native code of the locally available ODBC driver.
Type 2 that calls database vendor native library on a client side. This code
then talks to database over network.
Type 3, the pure-java driver that talks with the server-side middleware that
then talks to database.
Type 4, the pure-java driver that uses database native protocol.
There is also a type called internal JDBC driver, driver embedded with JRE in
Java-enabled SQL databases. It's used for Java stored procedures. This does not belong to
the above classification, although it would likely be either a type 2 or type 4 driver
(depending on whether the database itself is implemented in Java or not). An example
of this is the KPRB driver supplied with Oracle RDBMS. "jdbc:default:connection" is
a relatively standard way of referring making such a connection (at least Oracle and
Apache Derby support it). The distinction here is that the JDBC client is actually
running as part of the database being accessed, so access can be made directly rather
than through network protocols.
F
RAMEWORK
T
ECHNOLOGY IN
B
ANKING
S
ECTOR
Over the years as the consumer demand increased and the retailers geared up to meet
this increase, technology evolved rapidly to support this growth. The hardware and
software tools that have now become almost essential for retailing can be into 2 broad
categories.
Customer Interfacing Systems:
Bar Coding and Scanners
Point of sale systems use scanners and bar coding to identify an item, use pre-stored
data to calculate the cost and generate the total bill for a client. Tunnel Scanning is a
new concept where the consumer pushes the full shopping cart through an electronic
gate to the point of sale. In a matter of seconds, the items in the cart are hit with laser
beams and scanned. All that the consumer has to do is to pay for the goods.
Payment
Payment through credit cards has become quite widespread and this enables a fast
and easy payment process. Electronic cheque conversion, a recent development in
this area, processes a cheque electronically by transmitting transaction information to
the retailer and consumer's Retail outlet. Rather than manually process a cheque, the
retailer voids it and hands it back to the consumer along with a receipt, having
digitally captured and stored the image of the cheque, which makes the process very
fast.
Internet
Internet is also rapidly evolving as a customer interface, removing the need of a
consumer physically visiting the store.
Operation Support Systems:
ERP System
Various ERP vendors have developed retail-specific systems which help in integrating
all the functions from warehousing to distribution, front and back office store systems
and merchandising. An integrated supply chain helps the retailer in maintaining his
stocks, getting his supplies on time, preventing stock-outs and thus reducing his costs,
while servicing the customer better.
CRM Systems
The rise of loyalty programs, mail order and the Internet has provided retailers with
real access to consumer data. Data warehousing & mining technologies offers
retailers the tools they need to make sense of their consumer data and apply it to
business. This, along with the various available CRM (Customer Relationship
Management) Systems, allows the retailers to study the purchase behavior of
consumers in detail and grow the value of individual consumers to their businesses.
Advanced Planning and Scheduling Systems
APS systems can provide improved control across the supply chain, all the way from
raw material supplier’s right through to the retail shelf. These APS packages
complement existing (but often limited) ERP packages. They enable consolidation of
activities such as long term budgeting, monthly forecasting; weekly factory
scheduling and daily distribution scheduling intone overall planning process using a
single set of data
The major reasons behind the development of new trends are:
Scalable and profitable Retail models are well established for most of the categories:
Rapid Evolution of New-age Young Indian Consumers
Retail Space is no more a constraint for growth
Partnering among Brands, retailers, franchisees, investors and malls
A
BOUT
D
ATABASE
M
ANAGEMENT
S
YSTEMS
–
O
RACLE
The Oracle Database (commonly referred to as Oracle RDBMS or simply as Oracle)
is an object-relational database management system (ORDBMS) produced and
marketed by Oracle Corporation.
Larry Ellison and his friends and former co-workers Bob Miner and Ed Oates started
the consultancy Software Development Laboratories (SDL) in 1977. SDL developed
the original version of the Oracle software. The name Oracle comes from the
code-name of a CIA-funded project Ellison had worked on while previously employed by
Ampex
Physical and logical structures
An Oracle database system—identified by an alphanumeric system identifier or SID
—comprises at least one instance of the application, along with data storage. An
instance—identified persistently by an instantiation number (or activation id:
SYS.V_$DATABASE.ACTIVATION#)—comprises a set of operating-system
processes and memory-structures that interact with the storage. Typical processes
include PMON (the process monitor) and SMON (the system monitor).
Users of the Oracle databases refer to the server-side memory-structure as the SGA
(System Global Area). The SGA typically holds cache information such as
data-buffers, SQL commands, and user information. In addition to storage, the database
consists of online redo logs (or logs), which hold transactional history. Processes can
in turn archive the online redo logs into archive logs (offline redo logs), which
provide the basis (if necessary) for data recovery and for some forms of data
replication.
If the Oracle database administrator has implemented Oracle RAC (Real Application
Clusters), then multiple instances, usually on different servers, attach to a central
storage array. This scenario offers advantages such as better performance, scalability
and redundancy. However, support becomes more complex, and many sites do not
use RAC. In version 10g, grid computing introduced shared resources where an
instance can use (for example) CPU resources from another node (computer) in the
grid.
The Oracle DBMS can store and execute stored procedures and functions within
itself. PL/SQL (Oracle Corporation's proprietary procedural extension to SQL), or the
object-oriented language Java can invoke such code objects and/or provide the
programming structures for writing them.
Storage
The Oracle RDBMS stores data logically in the form of table spaces and physically in
the form of data files ("data files"). Tablespaces can contain various types of memory
segments, such as Data Segments, Index Segments, etc. Segments in turn comprise
one or more extents. Extents comprise groups of contiguous data blocks. Data blocks
form the basic units of data storage.
There is also a partitioning feature available on newer versions of the database, which
allows tables to be partitioned based on different set of keys. Specific partitions can
then be easily added or dropped to help manage large data sets.
Oracle database management tracks its computer data storage with the help of
information stored in the
SYSTEMtablespace. The
SYSTEMtablespace contains the
data dictionary—and often (by default) indexes and clusters. A data dictionary
consists of a special collection of tables that contains information about all
user-objects in the database. Since version 8i, the Oracle RDBMS also supports "locally
managed" tablespaces which can store space management information in bitmaps in
their own headers rather than in the
SYSTEMtablespace (as happens with the default
"dictionary-managed" tablespaces). Version 10i and later introduced the
SYSAUXtablespace which contains some of the tables formerly in the
SYSTEMtablespace.
Disk files
Disk files primarily consist of the following types:
Data and index files
Redo log files consisting of all changes to the database, used to recover from an instance failure
Undo files used for recovery, rollbacks, and read consistency
Archive log files
Temporary files
Control files containing information on data files
At the physical level, data files comprise one or more data blocks, where the block
size can vary between data files.
Data files can occupy pre-allocated space in the file system of a computer server,
utilize raw disk directly, or exist within ASM logical volumes.
Control files
The following parameters govern the size of the control files:
* maxlogfile * maxlogmembers * maxloghistory * maxinstances * control_file_record_keep_time
Database Schema
Oracle database conventions refer to defined groups of object ownership (generally
associated with a "username") as schemas.
Most Oracle database installations traditionally came with a default schema called
SCOTT
. After the installation process has set up the sample tables, the user can log
into the database with the username
scottand the password
tiger. The name of the
SCOTT
schema originated with Bruce Scott, one of the first employees at Oracle (then
Software Development Laboratories), who had a cat named Tiger.
Oracle Corporation has de-emphasized the use of the
SCOTTschema, as it uses few of
the features of the more recent releases of Oracle. Most recent examples supplied by
Oracle Corporation reference the default HR or OE schemas.
Other default schemas include:
SYS (essential core database structures and utilities)
SYSTEM (additional core database structures and utilities, and privileged account)
OUTLN (utilized to store metadata for stored outlines for stable query-optimizer execution plans.
BI, IX, HR, OE, PM, and SH (expanded sample schemas containing more data and structures than the older SCOTT schema).
System Global Area
Each Oracle instance uses a System Global Area or SGA—a shared-memory area—
to store its data and control-information.
Each Oracle instance allocates itself an SGA when it starts and de-allocates it at
shut-down time. The information in the SGA consists of the following elements, each of
which has a fixed size, established at instance startup:
The redo log buffer: this stores redo entries—a log of changes made to the database. The instance writes redo log buffers to the redo log as quickly and efficiently as possible. The redo log aids in instance recovery in the event of a system failure.
the shared pool: this area of the SGA stores shared-memory structures such as shared SQL areas in the library cache and internal information in the data dictionary. An insufficient amount of memory allocated to the shared pool can cause performance degradation.
Library cache
The library cache stores shared SQL, caching the parse tree and the execution plan
for every unique SQL statement. If multiple applications issue the same SQL
statement, each application can access the shared SQL area. This reduces the amount
of memory needed and reduces the processing-time used for parsing and execution
planning.
Data dictionary cache
The data dictionary comprises a set of tables and views that map the structure of the
database.
Oracle databases store information here about the logical and physical structure of the
database. The data dictionary contains information such as:
user information, such as user privileges
integrity constraints defined for tables in the database
names and datatypes of all columns in database tables
information on space allocated and used for schema objects
The Oracle instance frequently accesses the data dictionary in order to parse SQL
statements. The operation of Oracle depends on ready access to the data dictionary:
performance bottlenecks in the data dictionary affect all Oracle users. Because of
this, database administrators should make sure that the data dictionary cache has
sufficient capacity to cache this data. Without enough memory for the data-dictionary
cache, users see a severe performance degradation. Allocating sufficient memory to
the shared pool where the data dictionary cache resides precludes these particular
performance problems.
S
YSTEMS
D
EVELOPMENT
L
IFE
C
YCLE
The Systems Development Life Cycle (SDLC), or Software Development Life Cycle
in systems engineering, information systems and software engineering, is the process
of creating or altering systems, and the models and methodologies that people use to
develop these systems. The concept generally refers to computer or information
systems.
In software engineering the SDLC concept underpins many kinds of software
development methodologies. These methodologies form the framework for planning
and controlling the creation of an information system
1: the software development
process.
OVERVIEW
Systems Development Life Cycle (SDLC) is a process used by a systems analyst to
develop an information system, including requirements, validation, training, and user
(stakeholder) ownership. Any SDLC should result in a high quality system that meets
or exceeds customer expectations, reaches completion within time and cost estimates,
works effectively and efficiently in the current and planned Information Technology
infrastructure, and is inexpensive to maintain and cost-effective to enhance.
Computer systems are complex and often (especially with the recent rise of
Service-Oriented Architecture) link multiple traditional systems potentially supplied by
different software vendors. To manage this level of complexity, a number of SDLC
models or methodologies have been created, such as "waterfall"; "spiral"; "Agile";
"rapid prototyping"; "incremental"; and "synchronize and stabilize".
SDLC models can be described along a spectrum of agile to iterative to sequential.
Agile methodologies, such as XP and Scrum, focus on lightweight processes which
allow for rapid changes along the development cycle. Iterative methodologies, such
as Rational Unified Process and Dynamic Systems Development Method, focus on
limited project scope and expanding or improving products by multiple iterations.
Sequential or big-design-up-front (BDUF) models, such as Waterfall, focus on
complete and correct planning to guide large projects and risks to successful and
predictable results. Other models, such as Anamorphic Development, tend to focus
on a form of development that is guided by project scope and adaptive iterations of
feature development.
In project management a project can be defined both with a project life cycle (PLC)
and an SDLC, during which slightly different activities occur. According to Taylor
(2004) "the project life cycle encompasses all the activities of the project, while the
systems development life cycle focuses on realizing the product requirements".
HISTORY
The Systems Life Cycle (SLC) is a type of methodology used to describe the process
for building information systems, intended to develop information systems in a very
deliberate, structured and methodical way, reiterating each stage of the life cycle. The
systems development life cycle, according to Elliott & Strachan & Radford (2004)
originated in the 1960s, ―to develop large scale functional business systems in an age
of large scale business conglomerates. Information systems activities revolved around
heavy data processing and number crunching routines".
Several systems development frameworks have been partly based on SDLC, such as
the Structured Systems Analysis and Design Method (SSADM) produced for the UK
government Office of Government Commerce in the 1980s. Ever since, according to
Elliott (2004), "the traditional life cycle approaches to systems development have
been increasingly replaced with alternative approaches and frameworks, which
attempted to overcome some of the inherent deficiencies of the traditional SDLC".
SYSTEMS DEVELOPMENT
PHASES
The System Development Life Cycle framework provides a sequence of activities for
system designers and developers to follow. It consists of a set of steps or phases in
which each phase of the SDLC uses the results of the previous one.
A Systems Development Life Cycle (SDLC) adheres to important phases that are
essential for developers, such as planning, analysis, design, and implementation, and
are explained in the section below. A number of system development life cycle
(SDLC) models have been created: waterfall, fountain, spiral, build and fix, rapid
prototyping, incremental, and synchronize and stabilize. The oldest of these, and the
best known, is the waterfall model: a sequence of stages in which the output of each
stage becomes the input for the next. These stages can be characterized and divided
up in different ways, including the following:
Project planning, feasibility study: Establishes a high-level view of the
intended project and determines its
goals.
Systems analysis, requirements definition: Defines project goals into
defined functions and operation of the intended application. Analyzes
end-user information needs.
Systems design: Describes desired features and operations in detail, including
screen layouts, business rules, process diagrams, pseudocode and other
documentation.
Integration and testing: Brings all the pieces together into a special testing
environment, then checks for errors, bugs and interoperability.
Acceptance, installation, deployment: The final stage of initial
development, where the software is put into production and runs actual
business.
Maintenance: What happens during the rest of the software's life: changes,
correction, additions, and moves to a different computing platform and more?
This, the least glamorous and perhaps most important step of all, goes on
seemingly forever.
These stages of the Systems Development Life Cycle are divided in ten steps from
definition to creation and modification of IT work products:
The tenth phase occurs when the system is disposed of and the task performed is
either eliminated or transferred to other systems. The tasks and work products for
each phase are described in subsequent chapters.
Not every project will require that the phases be sequentially executed. However, the
phases are interdependent. Depending upon the size and complexity of the project,
phases may be combined or may overlap.
System analysis
The goal of system analysis is to determine where the problem is in an attempt to fix
the system. This step involves breaking down the system in different pieces to
analyze the situation, analyzing project goals, breaking down what needs to be
created and attempting to engage users so that definite requirements can be defined.
Requirements analysis sometimes requires individuals/teams from client as well as
service provider sides to get detailed and accurate requirements; often there has to be
a lot of communication to and from to understand these requirements. Requirement
gathering is the most crucial aspect as many times communication gaps arise in this
phase and this leads to validation errors and bugs in the software program.
Design
In systems design the design functions and operations are described in detail,
including screen layouts, business rules, process diagrams and other documentation.
The output of this stage will describe the new system as a collection of modules or
subsystems.
The design stage takes as its initial input the requirements identified in the approved
requirements document. For each requirement, a set of one or more design elements
will be produced as a result of interviews, workshops, and/or prototype efforts.
Design elements describe the desired software features in detail, and generally
include functional hierarchy diagrams, screen layout diagrams, tables of business
rules, business process diagrams, pseudocode, and a complete entity-relationship
diagram with a full data dictionary. These design elements are intended to describe
the software in sufficient detail that skilled programmers may develop the software
with minimal additional input design.
Testing
The code is tested at various levels in software testing. Unit, system and user
acceptance testings are often performed. This is a grey area as many different
opinions exist as to what the stages of testing are and how much if any iteration
occurs. Iteration is not generally part of the waterfall model, but usually some occur
at this stage. In the testing the whole system is test one by one.
Following are the types of testing:
Defect testing
Path testing
Data set testing
Unit testing
System testing
Integration testing
Black box testing
White box testing
Regression testing
Automation testing
Performance testing
Operations and maintenance
The deployment of the system includes changes and enhancements before the
decommissioning or sunset of the system. Maintaining the system is an important
aspect of SDLC. As key personnel change positions in the organization, new changes
will be implemented, which will require system updates.
SYSTEMS
ANALYSIS AND DESIGN
The Systems Analysis and Design (SAD) is the process of developing Information
Systems (IS) that effectively use hardware, software, data, processes, and people to
support the company’s business objectives.
SYSTEMS DEVELOPMENT LIFE CYCLE
Management and control
SDLC Phases Related to Management Controls.
The Systems Development Life Cycle (SDLC) phases serve as a programmatic guide
to project activity and provide a flexible but consistent way to conduct projects to a
depth matching the scope of the project. Each of the SDLC phase objectives are
described in this section with key deliverables, a description of recommended tasks,
and a summary of related control objectives for effective management. It is critical
for the project manager to establish and monitor control objectives during each SDLC
phase while executing projects. Control objectives help to provide a clear statement
of the desired result or purpose and should be used throughout the entire SDLC
process. Control objectives can be grouped into major categories (Domains), and
relate to the SDLC phases as shown in the figure.
To manage and control any SDLC initiative, each project will be required to establish
some degree of a Work Breakdown Structure (WBS) to capture and schedule the
work necessary to complete the project. The WBS and all programmatic material
should be kept in the ―Project Description‖ section of the project notebook. The WBS
format is mostly left to the project manager to establish in a way that best describes
the project work. There are some key areas that must be defined in the WBS as part
of the SDLC policy. The following diagram describes three key areas that will be
addressed in the WBS in a manner established by the project manager.
WORK BREAKDOWN STRUCTURE.
Work breakdown structured organization
The upper section of the Work Breakdown Structure (WBS) should identify the
major phases and milestones of the project in a summary fashion. In addition, the
upper section should provide an overview of the full scope and timeline of the project
and will be part of the initial project description effort leading to project approval.
The middle section of the WBS is based on the seven Systems Development Life
Cycle (SDLC) phases as a guide for WBS task development. The WBS elements
should consist of milestones and ―tasks‖ as opposed to ―activities‖ and have a
definitive period (usually two weeks or more). Each task must have a measurable
output (e.x. document, decision, or analysis). A WBS task may rely on one or more
activities (e.g. software engineering, systems engineering) and may require close
coordination with other tasks, either internal or external to the project. Any part of the
project needing support from contractors should have a Statement of work (SOW)
written to include the appropriate tasks from the SDLC phases. The development of a
SOW does not occur during a specific phase of SDLC but is developed to include the
work from the SDLC process that may be conducted by external resources such as
contractors and struct.
Baselines in the SDLC
Baselines are an important part of the Systems Development Life Cycle (SDLC).
These baselines are established after four of the five phases of the SDLC and are
critical to the iterative nature of the model. Each baseline is considered as a
milestone in the SDLC.
Functional Baseline: established after the conceptual design phase.
Allocated Baseline: established after the preliminary design phase.
Product Baseline: established after the detail design and development phase.
Updated Product Baseline: established after the production construction
phase.
Complementary to SDLC
Complementary Software development methods to Systems Development Life Cycle
(SDLC) are:
Software Prototyping
Joint Applications Design (JAD)
Rapid Application Development (RAD)
Extreme Programming (XP); extension of earlier work in Prototyping and
RAD.
Open Source Development
End-user development
Object Oriented Programming
An alternative to the SDLC is Rapid application development, which combines
prototyping, Joint Application Development and implementation of CASE tools. The
advantages of RAD are speed, reduced development cost, and active user
involvement in the development process.
V-M
ODEL
(
SOFTWARE DEVELOPMENT
)
The V-model represents a software development process (also applicable to hardware
development) which may be considered an extension of the waterfall model. Instead
of moving down in a linear way, the process steps are bent upwards after the coding
phase, to form the typical V shape. The V-Model demonstrates the relationships
between each phase of the development life cycle and its associated phase of testing.
The horizontal and vertical axes represents time or project completeness
(left-to-right) and level of abstraction (coarsest-grain abstraction uppermost), respectively.
VERIFICATION PHASES
Requirements analysis
In the Requirements analysis phase, the requirements of the proposed system are
collected by analyzing the needs of the user(s). This phase is concerned with
establishing what the ideal system has to perform. However it does not determine
how the software will be designed or built. Usually, the users are interviewed and a
document called the user requirements document is generated.
The user requirements document will typically describe the system’s functional,
interface, performance, data, security, etc requirements as expected by the user. It is
used by business analysts to communicate their understanding of the system to the
users. The users carefully review this document as this document would serve as the
guideline for the system designers in the system design phase. The user acceptance
tests are designed in this phase. This is parallel processing
There are different methods for gathering requirements of both soft and hard
methodologies including; interviews, questionnaires, document analysis, observation,
throw-away prototypes, use cases and status and dynamic views with users.
System Design
Systems design is the phase where system engineers analyze and understand the
business of the proposed system by studying the user requirements document. They
figure out possibilities and techniques by which the user requirements can be
implemented. If any of the requirements are not feasible, the user is informed of the
issue. A resolution is found and the user requirement document is edited accordingly.
The software specification document which serves as a blueprint for the development
phase is generated. This document contains the general system organization, menu
structures, data structures etc. It may also hold example business scenarios, sample
windows, reports for the better understanding. Other technical documentation like
entity diagrams, data dictionary will also be produced in this phase. The documents
for system testing are prepared in this phase.
Architecture Design
The phase of the design of computer architecture and software architecture can also
be referred to as high-level design. The baseline in selecting the architecture is that it
should realize all which typically consists of the list of modules, brief functionality of
each module, their interface relationships, dependencies, database tables, architecture
diagrams, technology details etc. The integration testing design is carried out in the
particular phase.
Module Design
The module design phase can also be referred to as low-level design. The designed
system is broken up into smaller units or modules and each of them is explained so
that the programmer can start coding directly. The low level design document or
program specifications will contain a detailed functional logic of the module, in
pseudo code:
database tables, with all elements, including their type and size
all interface details with complete API references
all dependency issues
error message listings
complete input and outputs for a module.
VALIDATION
PHASES
Unit Testing
In computer programming, unit testing is a method by which individual units of
source code are tested to determine if they are fit for use. A unit is the smallest
testable part of an application. In procedural programming a unit may be an
individual function or procedure. Unit tests are created by programmers or
occasionally by white box testers. The purpose is to verify the internal logic code by
testing every possible branch within the function, also known as test coverage. Static
analysis tools are used to facilitate in this process, where variations of input data are
passed to the function to test every possible case of execution.
Integration Testing
In integration testing the separate modules will be tested together to expose faults in
the interfaces and in the interaction between integrated components. Testing is
usually black box as the code is not directly checked for errors.
System Testing
System testing will compare the system specifications against the actual system.
After the integration test is completed, the next test level is the system test. System
testing checks if the integrated product meets the specified requirements. Why is this
still necessary after the component and integration tests? The reasons for this are as
follows:
Reasons for system test
1. In the lower test levels, the testing was done against technical specifications,
i.e., from the technical perspective of the software producer. The system test,
though, looks at the system from the perspective of the customer and the future
user. The testers validate whether the requirements are completely and
appropriately met.
o
Example: The customer (who has ordered and paid for the system) and the user
(who uses the system) can be different groups of people or organizations with
their own specific interests and requirements of the system.
2. Many functions and system characteristics result from the interaction of all
system components; consequently, they are only visible on the level of the
entire system and can only be observed and tested there.
User Acceptance Testing
Acceptance testing is the phase of testing used to determine whether a system
satisfies the requirements specified in the requirements analysis phase. The
acceptance test design is derived from the requirements document. The acceptance
test phase is the phase used by the customer to determine whether to accept the
system or not.
Acceptance testing helps
to determine whether a system satisfies its acceptance criteria or not.
to enable the customer to determine whether to accept the system or not.
to test the software in the "real world" by the intended audience.
Purpose of acceptance testing:
to verify the system or changes according to the original needs.
Procedures
1. Define the acceptance criteria:
o Functionality requirements.
o Performance requirements.
o Interface quality requirements.
o Overall software quality requirements. 2. Develop an acceptance plan:
o Project description.
o User responsibilities.
o Acceptance description.
Release Testing
Release testing is a phase that will determine if the software is suitable for the
organisation of the end-user. How will compatibility with other systems be ensured?
Is the performance of the software optimized?
E
NTITY
R
ELATION
D
IAGRAM
D
ATA
F
LOW
D
IAGRAM
S
HARE TRANSACTION DIAGRAM
C
ODING
Frame Name:
Login
Coding:
import java.sql.*;
public class Login extends javax.swing.JFrame { Statement s;
Connection conn; ResultSet rs;
public static String utype; public Login() { initComponents(); try { DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); conn=DriverManager.getConnection("jdbc:oracle:oci8:@xe","scott","tiger"); s=conn.createStatement(); } catch(SQLException e) {
jOptionPane1.showMessageDialog(this,"Error :"+e, "Error",0); }
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) { this.setVisible(false);
}
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) { jTextField1.setText("");
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { try { String uname,pass; uname=jTextField1.getText(); pass=jPasswordField1.getText(); int cnt;
rs=s.executeQuery("select count(*) from add_users where username='"+uname+"' and password='"+pass+"'");
rs.next();
cnt=rs.getInt(1); if(cnt==0)
jOptionPane1.showMessageDialog(this,"Invalid Username/Password\nPlease Re-enter Username & Password","Error",0);
else {
rs=s.executeQuery("select type from add_users where username='"+uname+"' and password='"+pass+"'");
rs.next();
utype=rs.getString(1); System.out.println(utype);
NewMDIApplication mdi=new NewMDIApplication(); mdi.setVisible(true); this.setVisible(false); } } catch(SQLException e) {
jOptionPane1.showMessageDialog(this,"Error :"+e, "Error",0); }
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() { public void run() {
new Login().setVisible(true); }
}); }
Frame Name:
Add User
Coding:
import java.sql.*;
public class add_users extends javax.swing.JFrame { Connection conn; Statement s; ResultSet rs; public add_users() { initComponents(); try { DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); conn=DriverManager.getConnection("jdbc:oracle:oci8:@xe","scott","tiger"); s=conn.createStatement(); } catch(SQLException e) {
jOptionPane1.showMessageDialog(this,"Error :"+e, "Error",0); }
}
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) { this.setVisible(false);
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) { jTextField1.setText("");
jPasswordField1.setText(""); jPasswordField2.setText(""); }
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { String uname,pass1,pass2,type;
int cnt;
if(jTextField1.getText().length()==0) {
jOptionPane1.showMessageDialog(this,"User Name Not Entered","Invalid Value",0); return; } else uname=jTextField1.getText(); if(jPasswordField1.getText().length()==0) {
jOptionPane1.showMessageDialog(this,"Password Not Entered","Invalid Value",0); return; } else pass1=jPasswordField1.getText(); if(jPasswordField2.getText().length()==0) {
jOptionPane1.showMessageDialog(this,"Confirm Password Not Entered","Invalid Value",0); return;
} else
pass2=jPasswordField2.getText(); type=jComboBox1.getSelectedItem().toString(); if(pass1.equals(pass2)) { try {
rs=s.executeQuery("Select count(*) from add_users where username='"+uname+"'"); rs.next();
cnt=rs.getInt(1); if(cnt==0) {
s.executeUpdate("insert into add_users values('"+uname+"','"+pass1+"','"+type+"')"); jOptionPane1.showMessageDialog(this,"New User Created", "User Added",1); this.setVisible(false);
} else {
jOptionPane1.showMessageDialog(this,"Username already exists", "Error",0); jTextField1.setText(""); jPasswordField1.setText(""); jPasswordField2.setText(""); } } catch(SQLException e) {
jOptionPane1.showMessageDialog(this,"Error :"+e, "Error",0); }
} else
jOptionPane1.showMessageDialog(this,"Password Mismatch\n Re-Enter Password", "Error",0);
jPasswordField1.setText(""); jPasswordField2.setText(""); }
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() { public void run() {
new add_users().setVisible(true); }
}); }
Frame Name:
Edit User
Coding:
import java.sql.*;
public class Edit_Users extends javax.swing.JFrame { Connection conn; Statement s; ResultSet rs; public Edit_Users() { initComponents(); try { DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); conn=DriverManager.getConnection("jdbc:oracle:oci8:@xe","scott","tiger"); s=conn.createStatement(); loadaddusers(); } catch(SQLException e) {