Professional Documents
Culture Documents
On
School Management System
Submitted By
Subhadip Chanda
Department of MCA
Calcutta Institute of Technology
We would like to declare that this is the result of our own effort
and that it has not been satisfied to this Collage or to other
Universities or boards for the award of degree.
Prepared by:
Subhadip Chanda
Registration no.- 000276 of 2012-2013
Roll- 4611223 No.- 024
Prasanta Jana
Registration no.- 000262 of 2012-2013
Roll- 4611223 No.- 010
Surajit Bar
Registration no.- 000295 of 2011-2012
Roll- 4611123 No.- 020
Sourav Pahari
Registration no.- 000321 of 2011-2012
Roll- 4611123 No.- 039
----o----
BCA
DEPT. OF COMPUTER SCIENCE AND APPLICATION
Purba Medinipur
TABLE OF CONTENTS
1. INTRODUCTION
1.1 PURPOSE
1.2 SCOPE
1.3 ACRONYMS
1.4 REFERENCES
1.5 OVERVIEW
2. GENERAL DESCRIPTION
2.1 FEASIBILITY STUDY
2.1.1 TECHNICAL FEASIBILITY
2.1.2 OPERATIONAL FEASIBILITY
2.1.3 ECONOMICAL FEASIBILITY
2.2 PRODUCT PERSPECTIVE
2.2.1 ARCHITECTURAL DIAGRAM
2.2.2 TECHNOLOGIES USED
2.2.3 SOFTWARE SPECIFICATION
2.2.4 HARDWARE SPECIFICATION
2.3 SOFYWARE REQUIREMENT SPECIFICATION (SRS)
2.3.1 PURPOSE OF SRS
2.3.2 SOPE OF PRODUCT
2.4 PRODUCT FUNCTIONS
2.4.1 FUNCTIONAL REQUIREMENTS
2.4.2 NON FUNCTIONAL REQUIREMENTS
2.5 USER CHARACTERISTICS
2.6 GENERAL CONSTRAINTS
2.7 ASSUMPTIONS AND DEPENDENCIES
3. TOOLS DESCRIPTION
3.1 XAMPP SERVER
3.2 PHP
3.3 HTML
3.4 JAVA SCRIPT
3.4 MY SQL DATABASE
4. ENTITY RELATIONSHIP DIAGRAM
5. DATA FLOW DIAGRAM
6. SPECIFIC REQUIREMENTS
6.1 DATABASE MODEL
6.1.1 DATABASE DIAGRAM
6.1.2 DATABASE REPORT
7. SCREEN SHOT
8. TESTING
9. MAINTENANCE
10. ADVANTAGES
11. DISADVANTAGES
12. BIBLIOGRAPHY
1. INTRODUCTION
1.1 Purpose:
This web Application provides facility to conduct online searching for
various real life services like grocery, plumber, carpenter, doctor etc daily
needs worldwide. It saves times as it allows people to give advertise of their
services, they can promote their services also. It primarily helps those people
who are new in a location. They can got the address and contact details of
service provider.
1.2 Scope:
Administrator
Administrator has a privilege to create, modify and delete some
website content, category. Admin can deactivate or activate a service
and user. Admin can also solve the report against any service or any
query.
User
Here user can register as a service provider. User can also search for
any service. User can promote his/her services.
1.3 Acronyms
AJAX: Asynchronous JavaScript and XML
GUI: Graphical User Interface
HTML: Hyper Text Markup Language
HTTP: Hyper Text Transfer Protocol
JSP: Java Server Programming
J2EE: Java 2 Enterprise Edition
UML: Unified Modeling Language
XHTML: Extensible Hyper Text Markup Language
XML: Extensible Markup Language.
1.4 References:
Project Scenario provided by IBM-TGMC `09
IEEE SRS Format
SAMS Teach Yourself UML In 24 Hours by Joseph Schmuller
PHP Project for Beginners by Sharanam Shah, Vaishali Shah
1.5 Overview:
General Description: will describe major components of the system,
technologies used and its software and hardware requirements. It also
depicts the functional and non-functional requirements of the system.
Specific Requirements: It contains diagrams and their reports. The
diagrams describe what a system is supposed to do.
Database Diagram consists of a number of tables with their
attributes, and the relationship between them.
2. GENERAL DESCRIPTION
This section of the SRS describes the general factors that affected the
product and its requirements. This section contains following sub sections
Feasibility Study
Product Perspective
Product Function
The web pages are present to provide the user interface on client side.
Communication between client and server is provided through
HTTP/HTTPS protocols.
On the server side web server is for EJB and database server is for
storing the information.
2.2.2 Technologies Used:
J2EE: Application Architecture (Java, JavaBeans, Servlet, JSP,
JavaScript etc.)
XML: Technique to transport and store data.
AJAX: Technique for creating more interactive web application.
Web 2.0: facilitates interactive information sharing, interoperability,
user-centered design and collaboration on the www.
Web-services: is software system designed to support interoperable
machine-to machine interaction over a network.
Dream Weaver: Technique to design and develop website (HTML,
XHTML, CSS etc.).
How to start:
When you install XAMPP Server, a "htdocs" directory is created (generally c:\
XAMPP\ htdocs). Create a directory inside for your project and put your PHP
files in it.
Click on the link "Localhost" in the XAMPP Server menu or open your
browser and open the http://localhost address.
An icon on the taskbar tray displays the status of XAMPP, letting you know
if;
XAMPP is running but no services are opened (the icon will appear
red)
XAMPP is running and one service is opened (the icon will appear
yellow) or
XAMPP is running with all services opened (the icon will appear
white). Apache and MySQL are considered to be services (they can be
disabled by left-clicking on the taskbar icon, guiding your cursor over
the service you wish to disable and selecting "Stop Service").
The files/web pages that are hosted on your XAMPP server can be accessed
by typing http://localhost/ or http://127.0.0.1/ in the address bar of your
web browser. XAMPP must be running in order to access either of the above
addresses.
If you would like to share your files/web pages with others, click on the icon
located on your taskbar tray and select "Put Online." You must have access
to the Internet in order to continue.
Cross-platform:
You can run most PHP5.2.0 code, without alternation, on computers
running many different operating systems. A PHP5.2.0-script that runs on
Linux will generally run on Windows as well.
HTML-embedded:
PHP5.2.0 code is written in files containing a mixture of PHP instructions
and HTML code.
Server-side:
The PHP5.2.0 programs we write are run on a server – specifically, a web
server (Apache).
One more thing to keep in mind with regards to containers. Since HTML is
based on these structures, it is often the case that the arrangement of text
within a container is irrelevant. For example, within a paragraph container,
all of the text can be in one long line, or in a series of separate lines, or with
every word on its own line, or with every word separated from every other by
nineteen spaces. These would all be displayed exactly the same.
Therefore, try to keep in mind this thought: white space doesn't matter.
(White space is all of the blank areas in a text file--empty lines, extra spaces,
and so on.) We'll mention this again when discussing the paragraph tag and
it will crop up in other places. Again: whites pace doesn't matter.
Having said all that, we will now attempt to muddy the waters a bit by
mentioning that not every tag in HTML is paired. Some tags, such as the
line-break tag, stand on their own (that is, they have no closing tag). These
are known as empty tags. As we encounter them, I'll point them out.
The first and last tags in a document should always be the HTML tags.
These are the tags that tell a Web browser where the HTML in your
document begins and ends. The absolute most basic of all possible Web
documents is:
<HTML>
</HTML>
That's it. If you were to load such a page into a Web browser, it wouldn't do
anything except give you a blank screen, but it is technically a valid Web
page. Obviously, you'll want more than that.
HEAD:
The HEAD tags contain all of the document's header information. When I
say "header," I don't mean what appears at the top of the browser window,
but things like the document title and so on. Speaking of which...
TITLE:
This container is placed within the HEAD structure. Between the TITLE
tags, you should have the title of your document. This will appear at the top
of the browser's title bar, and also appears in the history list. Finally, the
contents of the TITLE container go into your bookmark file, if you create a
bookmark to a page.
What you type should probably be something which indicates the
document's contents, but it doesn't have to be. The length of the title is
pretty much unlimited, but don't go overboard. Users will either sneer at or
be confused by exceedingly long titles.
If you don't type anything between the TITLE tags, or don't include the
TITLE tags at all -- remember the blank document in the HTML section
earlier? – Then the browser will typically use the actual file name for the
title. Therefore, a document titled "TCh4ex4.html" will have that name
appear in the history list. Again, you can choose to do this, but it will likely
generate either confusion or contempt.
BODY:
BODY comes after the HEAD structure. Between the BODY tags, you find all
of the stuff that gets displayed in the browser window. All of the text, the
graphics, and links, and so on -- these things occur between the BODY tags.
So, putting everything we've covered thus far into one file, we have:
<HTML>
<HEAD>
<TITLE>Document Title</TITLE>
</HEAD>
<BODY>
</BODY>
</HTML>
This time, the result would be a document with a completely blank browser
window, but at least the words "Document Title" would appear in the
browser's history list. But don't take my word for it lets look at the above
block of HTML again, but this time with container lines sketched in. Note
that the TITLE tags and text have been rearranged to make it easier to draw
in the container lines. The rearrangement of the text does not in any way
change the resulting Web page's appearance.
COMMENT TAGS:
If you want to leave yourself notes in an HTML document, but don't want
those notes to show up in the browser window, you need to use the
comment tag. To do that, you would do the following:
<! -- Hi, I'm a comment. -->
Your note would go where the text Hi, I'm a comment Appears. Yes, you do
need an exclamation point after the opening bracket, but not before the
closing bracket. That's the way the standard is written. I have no idea why.
Also, there is no end tag; that is, a tag like </! -- Text --> does not exist. The
comment tag is not a container. This is our first example of an empty tag.
You can put comments pretty much anywhere, but you have to be aware of
one important thing: you shouldn't put any HTML markup within a
comment tag. Theoretically, you should be able to, but most browsers
handle this less than gracefully (i.e., they either mess up or crash).
What if you get the tag wrong, like forgetting to include the exclamation
point? In that case, the text you did type in would be displayed.
HEADINGS:
The heading structures are most commonly used to set apart document or
section titles. For example, the word "Headings" at the beginning of this
section is a heading. So is this document's title (it's at the top of the page, in
case you somehow missed it).
Remember that these heading structures go into the body of the document.
The headings being discussed here have nothing to do with the HEAD
structure from the previous chapter.
There are six levels of headings, from Heading 1 through Heading 6.
Heading 1 (H1) is "most important" and Heading 6 (H6) is "least important."
By default, browsers will display the six heading levels in the same font,
with the point size decreasing as the importance of the heading decreases.
Here are all six HTML pairs, in descending order of importance:
<H1>Heading 1</H1>
<H2>Heading 2</H2>
<H3>Heading 3</H3>
<H4>Heading 4</H4>
<H5>Heading 5</H5>
<H6>Heading 6</H6>
These six lines, when placed into an HTML document, will simply display
the six levels of headings.
Since, as we have discussed, whites pace doesn't matter, you might think
that the above block of HTML would just string the content into one line of
text. However, because headings are meant for section titles and the like,
they are defined as existing on a line by themselves. A heading always
begins at the margin of a line and always forces a line break at the end of
the heading. In other words, you cannot have two heading levels on the
same line.
PARAGRAPHS:
As you might suspect, paragraphs are quite common in Web pages. They are
one of the most basic structures in HTML. If you regard a document as a
collection of structures and sub-structures, you may come up with
something like:
The overall structure is a page. The page is composed of a number of
sections, each of which is composed of one or more paragraphs. Each
paragraph is composed of words, and each word of letters.
Admittedly, this is a simplified way of looking at text, but it will do for our
purposes. The furthest HTML goes down this progression is to the
paragraph level.
The beginning of a paragraph is marked by <P>, and the end by </P>. This
tutorial is obviously filled with examples of this container, and you can look
at the following example page to get a more direct idea of how the paragraph
tag works.
Let's say you want to create a paragraph. You start to wonder, "What
happens if I hit return at the end of every line in the paragraph? Should I
make the paragraph just one long continuous line? What if I accidentally
put too many spaces between words?"
At this point, you should once again be saying to yourself: whites pace
doesn't matter. You could put each word on its own line, and the paragraph
would look completely normal. In fact, no matter how much whites pace you
put between words, whether returns or spacebar hits, the words will be
separated by one space in a Web browser.
Got all that? If you're not sure you completely understand, go through the
section again -- or better still, try it on your own.
LINE BREAK:
So what if you want to end a line after a certain word, but don't want to
start a new paragraph? Well, what you need is a line break, which is
invoked by using the <BR> tag. This forces a line break wherever you place
it in the content (that is, whatever is after the <BR> tag will start from the
left margin of the next line on the screen.)
And no, there is no </BR> tag. The line break tag is -- that's right! -- An
empty tag. And when you think about it, this makes sense. The concept of a
line break beginning and ending doesn't really work, since a line break is a
one-shot occurrence.
3.4 JAVASCRIPT:
JavaScript is a scripting language most often used for client-side web
development. Its standardized name is ECMAScript, though "JavaScript" is
much more commonly used. "JavaScript" is actually Netscape
Communications Corporation's (and now the Mozilla Foundation's)
implementation of the ECMAScript standard.
JavaScript is a dynamic, weakly typed, prototype-based language with
first-class functions. JavaScript was influenced by many languages and was
designed to have a similar look to Java, but be easier for non-programmers
to work with. The language is best known for its use in websites (as client-
side JavaScript), but is also used to enable scripting access to objects
embedded in other applications.
Despite the name, JavaScript is unrelated to the Java programming
language; though both have a common debt to C syntax. The language was
renamed from Live Script in a co-marketing deal between Netscape and Sun
in exchange for Netscape bundling Sun's Java runtime with their browser,
which was dominant at the time. JavaScript semantics is much more similar
to the Self programming language.
"JavaScript" is a registered trademark of Sun Microsystems, Inc. It was used
under license for technology invented and implemented by Netscape
Communications.
3.5 MySQL:
SQL, or Structured Query Language is the standard command set used to
communicate with a relational database management system on any given
platform. All tasks such as creating databases or tables, as well as saving,
retrieving, deleting, and updating data from databases are done via SQL
statements.
When you create a database table, the type and size of each field must be
defined. A field is similar to PHP variables. The three usual sets of data are
supported in MySql: numeric, date/time, and characters.
Why MySQL:
MySQL is a freely available RDBMS, which fully joined the Open Source
Community only recently, when it was released under the GNU Public
License.
Table Definition:
Table Name: my_sitesetup
Primary Key: site_id
Column Definition:
Column Type Null Comments
site_id int(11) No
site_name varchar(255) No
site_email varchar(255) No
site_contact bigint(20) No
site_address text No
site_moto varchar(255) No
site_path varchar(255) No
site_author varchar(255) No
site_description text No
site_keyword text No
logo_image varchar(255) No
Table Description:
Column Type
site_id Unique id for this website.
site_name Site name.
site_email Website contact email.
site_contact Website contact no.
site_address Office address.
site_moto Tagline for this website.
site_path Path or Web address.
site_author Site Developer.
site_description Website details or metadata.
site_keyword Meta keyword for SEO.
logo_image Site logo.
Explanation: This table is a lookup table, which stores all the site
information,logo,site name including meta data and keyword.
Table Definition:
Table Name: my_ category
Primary Key: cat_id
Column Definition:
Column Type Null Comments
cat_id int(10) No
parent_cat_id varchar(255) No
main_cat_id int(10) No
cat_name varchar(255) No
cat_icon varchar(255) No
status enum('1', '0') No 1=Active 0=Inactive
Table Description:
Column Details
cat_id Unique id for all categories.
parent_cat_id Hierarchical path for a category.
main_cat_id Root category of a sub category.
cat_name Category title.
cat_icon Specific font awesome icon for every category.
status This category is currently Active or Inactive.
Explanation: This table is a lookup table, which stores all category and sub
categories.
Table Definition:
Table Name: my_user
Primary Key: user_id
Column Definition:
Column Type Null Comments
user_id int(10) No
first_name varchar(255) No
last_name varchar(255) No
email varchar(255) No
email_verified enum('0', '1') No 0=not verified,1=verified
password text No
contact_no bigint(20) No
contact_no_verifie enum('0', '1') No 0=not verified,1=verified
d
user_img text No
date_of_birth varchar(255) No
date_of_joining varchar(255) No
gender enum('0', '1', '2') No 0=Male,1=Female,2=Others
add_street text No
add_city text No
add_pin int(10) No
add_state text No
add_country text No
add_lat text No
add_long text No
reffer_id text No
reffer_by text No
odc_count text No
ban_cause text No
status enum('0', '1') No 1="Active",0="Inactive"
Table Description:
Column Details
user_id Unique user id for every user.
first_name User first name.
last_name User last name.
email User email id. It must be unique for every user.
email_verified Email is verified or not.
password Login password.
contact_no User contact no. It must be unique for every user.
contact_no_verifie Contact no is verified or not.
d
user_img User image or profile picture.
date_of_birth User date of birth.
date_of_joining Date of joining or registration in our website.
gender User gender.
add_street User Street address.
add_city User city address.
add_pin User PIN code.
add_state User State.
add_country User Country.
add_lat User Latitude that is generated from address.
add_long User Longitude that is generated from address.
reffer_id User referral id which can he/she use for promote our website.
reffer_by If this user is registered from any one’s referral. Then it holds the
referral user id.
odc_count Number of coin own by this user.
ban_cause If this user profile deactivate. Then this field holds the banning
cause.
status User profile is active or inactive.
Explanation: This table is a lookup table, which stores service provider
details.
Table Definition:
Table Name: my_user_service
Primary Key: service_id
Column Definition:
Column Type Nul Comments
l
service_id int(10) No
user_id int(10) No
service_name varchar(255 No
)
service_category int(10) No
service_parent_category text No
service_details text No
service_contact_no bigint(20) No
service_email varchar(255 No
)
service_website text No
service_time_from varchar(255 No
)
service_time_to varchar(255 No
)
service_charge text No
service_keyword text No
service_keyword_predefine text No
d
service_add_landmark varchar(255 No
)
service_add_street varchar(255 No
)
service_add_city varchar(255 No
)
service_add_state varchar(255 No
)
service_add_country varchar(255 No
)
service_add_pin varchar(255 No
)
service_add_lat varchar(255 No
)
service_add_long varchar(255 No
)
service_registration_date text No
ban_cause text No
service_status enum('0', No 1="Active",0="Inactive"
'1')
odc_alloted varchar(255 No
)
Table Description:
Column Details
service_id Unique service id.
user_id User id (Service provider id) whis is taken from “my_user”
table.This is the primary ke of “my_user” table.
service_name Service name.
service_category Service is in which category.
service_parent_category Hierarchical path of this category.
service_details Service details.
service_contact_no Contact no which is very important.
service_email Email id which is also very important.
service_website Website if available.
service_time_from Starting time of time duration.
service_time_to Closing time of time duration.
service_charge Charge for service.
service_keyword Keyword defined by the user that is helpful to service
provider.
service_keyword_predefine Some keyword which will be defined by the system.
d
service_add_landmark Landmark or notable place from where the service is
provided.
service_add_street Service Street address.
service_add_city Service city address.
service_add_state Service PIN code.
service_add_country Service State.
service_add_pin Service Country.
service_add_lat Service Latitude that is generated from address.
service_add_long Service Longitude that is generated from address.
service_registration_date Date of service registration.
ban_cause If this service deactivate. Then this field holds the banning
cause.
service_status This service is active or not.
odc_alloted Coin allotted for a service to promote this service.
Explanation: This table is a lookup table, which stores the service details.
Table Definition:
Table Name: my_user_service_image
Primary Key: img_id
Column Definition:
Column Type Null Comments
img_id int(11) No
service_id int(11) No
service_image text No
Table Description:
Column Details
img_id Unique id for every image.
service_id Service id for which the image will be inserted. Service i is taken
from “my_user_service” table which is primary key in
“my_user_service” table.
service_image Service image.
Explanation: This table is a lookup table, which stores the service image.
Table Definition:
Table Name: my_user_service_review
Primary Key: review_id
Column Definition:
Column Type Null Comments
review_id int(11) No
service_id int(11) No
review_name varchar(255) No
review_contact bigint(20) No
review_email varchar(255) No
review_pic text No
review_star int(11) No
review_details text No
review_date text No
Table Description:
Column Details
review_id Unique id for every review.
service_id Service id for which the review is given. Service id is taken from
“my_user_service” table which is primary key in “my_user_service”
table.
review_name Reviewer’s name.
review_contact Reviewer’s contact no.
review_email Reviewer’s email.
review_pic Reviewer’s picture if he/she is a registered user.
review_star Rating by Reviewer.
review_details Review details or comment.
review_date Review given date.
Explanation: This table is a lookup table, which stores the review against
any service.
Table Definition:
Table Name: my_user_service_report
Primary Key: report_id
Column Definition:
Column Type Null Comments
report_id int(10) No
service_id int(10) No
reported_by int(10) No
report_cause text No
report_date text No
report_time text No
report_condition enum('1', '0') No 1=True 0=False
final_decision text No
status enum('1', '0') No 1=Active 0=Close
Table Description:
Column Details
report_id Unique id for every report.
service_id Service id for which the report is filed. Service id is taken from
“my_user_service” table which is primary key in “my_user_service”
table.
reported_by This column hold id of the user who filed this report. User id is taken
from “my_user” table which is primary key in “my_user” table.
report_cause Report cause.
report_date Report Date.
report_time Report time.
report_condition Decided by our support team that the report is valid or not.
final_decision Final decision against this report.
status Report is solved or not.
Explanation: This table is a lookup table, which stores the report filing
information against any service.
Table Definition:
Table Name: my_user_service_upgrade
Primary Key: invoice_id
Column Definition:
Column Type Null Comments
invoice_id varchar(255) No
user_id int(11) No
contact_no bigint(20) No
transaction_id text No
item_name varchar(255) No
quantity varchar(255) No
ammount int(11) No
date_time text No
status enum('1', '0') No 1=Paid 0=Due
Table Description:
Column Details
invoice_id Unique system generated invoice id for every transaction.
user_id This column hold id of the user who bought coin. User id is taken
from “my_user” table which is primary key in “my_user” table.
contact_no This column hold contact no of the user who bought coin. Contact no
is taken from “my_user” table.
transaction_id This transaction return by PayPal.
item_name Coin package name.
quantity How much coin this user bought.
ammount Price of this package.
date_time Purchase time.
status Payment status (paid or unpaid).
Explanation: This table is a lookup table, which stores user coin buying
details.
Table Definition:
Table Name: my_support
Primary Key: support_id
Column Definition:
Column Type Null Comments
support_id int(11) No
support_subject varchar(255) No
support_name varchar(255) No
support_email varchar(255) No
support_contact_no bigint(20) No
support_msg text No
support_result text No
support_query_date text No
support_solve_date text No
status enum('1', '0') No 1=open 0=close
Table Description:
Column Details
support_id Support token id.
support_subject Subject.
support_name Name of the user.
support_email Email id of this user.
support_contact_no Contact number of this user.
support_msg Query details.
support_result Solution by our support team.
support_query_date Query date.
support_solve_date Problem solving date.
status This token is open or close.
Explanation: This table is a lookup table, which stores the user query,
complains etc.
Table Definition:
Table Name: my_odc_manager
Primary Key: id
Column Definition:
Column Type Null Comments
id int(11) No
user_id int(11) No
service_id int(11) No
odc_count varchar(255) No
odc_type enum('1', '0') No 1=Earning,0=Expence
Table Description:
Column Comments
id Unique id for coin earns or expense.
user_id This column hold id of the user who earn or expense coin. User id is taken
from “my_user” table which is primary key in “my_user” table.
service_id If user expense coin. Then this column holds the promoted service id.
Service id is taken from “my_user_service” table which is primary key in
“my_user_service” table.
odc_count How much coin earns or expense.
odc_type Type of behavior that means coin earns or expense.
Explanation: This table is a lookup table, which stores the details of coin
buying and expensing.
7. Screen Shot
7.1 Database
Database Design
Table Admin
Table Site setup
Content Table
Category Table
User Table
Service Table
Support Table
Coin Manager Table
Dashboard
Manage Admin Details
Manage Site Details
Manage Content
Manage Category
Manage User
Manage Service
Manage Report
Manage Order
Manage Support
8.2 User Panel
Welcome to Online Directory
Search Result
List of Services
Edit Service
Promote Service
If payment cancelled
Coin manager
Service Details
Service Details-Information
Service Details-Review
Service Details-Direction
Service Details-Report
Our Support
FAQ
Multilingual
8. Testing
Testing presents an interesting anomaly for the software developing. During
the earlier development phases, the engineer attempts to build software
from an abstract concept to a tangible implementation. Now comes testing
the engineer creates a series of test cases that are intended to “demolish”
the software that has been built.
Test Information Flow:
Information flow for testing follows the pattern described in figure below.
Two classes of input are provided to test process:
A software configuration that includes a software requirements
specification, a design specification and source code.
A test configuration that includes a test plan and procedure, any
testing tools that are to be used and test cases and their expected
results.
System Testing:
At the beginning, we stressed the fact that software is only one element of a
larger computer-based system. A classic system problem is “finger pointing”.
This occurs when a defect is uncovered, and one system element developer
blames another for the problem. Rather than indulging in such nonsense,
the software engineer should anticipate potential interfacing problem and
Design error handling paths that test all information coming from
other elements of the system;
Conduct a series of tests that simulate bad data or other potential
errors at the software interface;
Record the results of test to use as “evidence” if finger pointing does
occur;
Participate in the planning and designing of the system tests to ensure
that software is adequately tested.
System testing is actually a series of different tests whose primary purpose
is fully exercised the computer based system.
9. Maintenance
The last part of our system development life cycle is system maintenance,
which is actually the implementation of the post-implementation review
plan. Maintenance is the enigma of system development. It holds the
software industry captive, tying up programming resources. When system is
installed, it is generally used for long periods. The average life of a system is
4 or 6 years, with oldest application often in use for over 10 years. However,
this period of use brings with it the need to continually maintain the system.
There is also a need of time-to-time maintenance of this Online Directory
System according to the requirement of the correction house staff and
management. Analyst and programmers spend far more time maintaining
programs than they do writing them.
The study on the maintenance requirement for the information system
reveals the following three facts:
50 to 70 per cent of the overall cost of software during the life of
system is spent on maintenance.
In documented cases, the cost of maintenance, when measured on the
basis of writing each instruction in coding form, is more than 50 times
the cost of developing a system.
The software demand is increasing at faster rate than supply. Many
programmers are devoting more time on systems maintenance than
on new software development. There is a backlog of new development
work.
Most programmers view maintenance as low-level drudgery. After they
develop an application, they spend years locked into maintaining it.
Eventually, boredom sets in, with subsequent turnover and loss of expertise
necessary to maintain the system. It is obvious that the more carefully a
system is thought out and developed, with attention paid to external
influence over a reasonable lifetime, the less maintenance will be required.
Classification of Maintenance:
Maintenance can be classified as corrective, adaptive or perfective.
Corrective maintenance means repairing processing or performance failures
or making changes because of previously uncorrected problems or false
assumptions. Adaptive maintenance means changing the program function.
Perfective maintenance means enhancing the performances or modifying the
program(s) to respond to the user’s additional or changing needs. Of these
types, more time and money are spent on perfective than on corrective and
adaptive maintenance together.
Maintenance covers a wide range of activities, including corrective coding
and design errors, updating documentation and test data, and upgrading
user support. Maintenance means restoring something to its original
condition. Unlike hardware, software does not wear out, it is corrected.
Although software does not wear out like a piece of hardware, it “ages” and
eventually fails to perform because of cumulative maintenance. Over time,
the integrity of the program, test data and documentation degenerates as a
result of modifications. Eventually, it takes more effort to maintain the
application then to rewrite it.
A major problem with software maintenance is its labor-intensive nature
and therefore the likelihood of errors. For example, if a change is occurred in
the code then altering the code, no matter how slight, must be manually
introduced into each program because there is no easy way of making sure
that the changes will interface with all the programs. Reusing the old codes
depends heavily on the programmer’s ability to judge what code can and
cannot be reused. It is an error-prone process that is still perceived by many
as more cost effective than writing programs from scratch.
Primary Activities of a Maintenance Procedure:
Maintenance activities begin where conversion leaves off. Maintenance is
handled by the same planning and control used in a formal system project.
The following Figure shows the basic activities. Documentation is as much
part of maintenance as it is of system development.
Briefly, the maintenance staff receives a request for service from an
authorized user, followed by a definition of the required modifications. The
source program and written procedures for the system are acquired from the
programming library. Program changes are then tested and submitted to
the user for approval. Once approved, the modified documentation is filed
with the library and project completion notice is sent to the user, signaling
the termination of the project.
Requestin Submissi
System and program documentation
g system on of test
and results
programd for user
ocumenta approval
Return of
Specifying Modification requirements
modified
tion
required documentati
modificatio on to library
n
Acquiring
source
Source program statement printout Project completion notice
Notification
program to the user of
statement project
printout completion
from library
Making
required
changes to
programsan
d systems
Testing
of
changes
1
Limitations:
Certificate cannot generate in this exam system.
User cannot see the answer instantly.
Administrator cannot give the diagram for the corresponding
questions.
BIBLIOGRAPHY
The following books were very helpful during the completion of project.
Software engineering
-K K Aggarwal and Yogesh Singh.
Web Enable Commercial Application development
-Ivan Bayrowss.
Head First Servlets and JST.
-Bryan Basham, Kathysierres and Bert Bates.