SlideShare une entreprise Scribd logo
1  sur  65
1
CHAPTER ONE
BACKGROUND INFORMATION AND PROBLEM SETTINGS
1.1 BACKGROUND TO THE STUDY
An Intranet Mailing system is designed to provide a communication channel
inside an organization between different clients (Organization staff) on the
network. The main objective of the project is to develop a fully functional Intranet
Mailing System that enhances communications among the members of the
organization in a reliable, cost-effective and secure way. Thus it helps the
organization to improve the performance of its teams in the corporate sector.
Intra Mailing system allows organizations with intranet to exchange emails
internally without the need of an Internet connection, in which text is usually
transmitted, users are allowed to communicate under specified conditions,
messages are held in storage until called for by addressee. Operations include
sending, storing, processing, and receiving information.
1.2 STATEMENT OF PROBLEM (PROBLEM DEFINITION)
The existing mailing communication system at Kumo consults is a traditional 2-
tier architecture where there is only the server and the client. In this case, the
server was only a data base server that can only offer data. Therefore most of
the business logic and validations had to be placed on the clients system. This
process therefore makes the maintenance of this system very expensive. This
also means that every client has to be trained as to how to use the application.
Some of the problems identified with the current system include:
a. It is expensive to maintain
b. It performs logic on client system
2
c. It increases stress on network (load)
d. Logic application cannot be re-used because it is bound to an individual
system
e. It is highly prone to error
f. It is time consuming
g. Data stored on client can easily be hacked or accessed by unauthorized
user.
1.3 MOTIVATION
For Kumo Consult to fully achieve its vision as the most preferred construction
company and to compete globally, it has to fully harness the use of technology,
and in this case, it’s mailing system. But the mailing system the company
currently uses cannot help them to achieve the vision. And so the need for this
research, that communication can flow freely and timely among the work force,
which will result to quick performance and high result.
1.4 AIMS & OBJECTIVES
The main advantage of the Intra mail system will be its security feature allowing
only registered users to access the system and preventing any hackers,
unauthorized users. As the access is only restricted to the people registered
within the organization itself and information is transferred within the organization
itself, and all this transformation will be up to some limit so the data
transformation will be fast.
The user of Intra Mailing System will be given a unique login id and must give the
correct password by the administrator. It will give total security for the company,
so unauthorized user won’t have access to the messages.
3
The main objective of the Intra mail system is to create security feature allowing
only members of the organization to access the system and preventing any
hackers, unauthorized users. It is also aimed to send the mails spontaneously
without requiring the parties be available at the same instant. It is much safer
than the traditional 2-tier system. Therefore, the system is designed
 To provide a communication channel inside an organization between
different clients on the network.
 To accept the mails from authorized users providing security.
 To enhances communications among the members of the organization in a
reliable, cost-effective and secure way
1.5 PURPOSE OF THE STUDY
These days the organization is growing rapidly and is increasing in size also. So
the organization is divided into departments. In the fast growing world the
information is needed as fast as possible. This can be accomplished by passing
the information quickly and securely. The security of information is not
guaranteed in the traditional 2 tier systems, because the mails or information are
stored in the clients. But it takes much time and risk also. So we need a system
which is quick, accurate, secured and less expensive. This can be achieved by
mailing system.
Intra mailing system sends the mails spontaneously without requiring the parties
be available at the same instant. Furthermore mails can be sent to more people
at the same time. It also leaves a written copy of the sending mails that can file
away. It is much cheaper than the traditional 2 tier system.
4
1.6 SIGNIFICANCE OF THE STUDY
In the new mailing system, each employee can Log-in himself/herself and send
mails to any other employee and they can establish communication and perform
the assigned tasks in less time. Also the employees do not have to pay for the
mails but can avail this facility free of cost. The mail that the employee sends
reaches the destination in little or no time. Although the Intranet mailing system
works in similar fashion as that of an Internet mailing system, but here there is no
need to get an Internet connection for this mailing system. The various branches
of the organization can be connected to a single host server and then an
employee of one branch can send a message to the employee of another branch
through the server.
1.7 ORGANIZATION OF THE WORK
Project Modules
The Intranet Mailing System is applicable to this fast growing world where every
qualified person is in urgent need of job, they join places, working at odd times.
The organization have shift systems and it becomes difficult for an employee of
one shift to communicate with another employee on a different shift. In these
circumstances the Intranet Mailing System proves its worth, if the organization
has an Intranet Mailing facility available to all its employees then each employee
can send mails to any other employee and thus making the communication
easier. No necessity of paying money for the mailing facility (i.e. free of cost).
The mails that the employees send reach the destination with less time than
internet. Although the intranet Mailing System works in a similar fashion as that
of an Internet Mailing System, there is no need to get an Internet connection for
our mailing system. The various branches of the organization can be connected
to a single host server and then an employee of within organization can only use
5
this facility. In one branch can send a message to an- employee of another
branch through the server.
Project Plan
A project plan is a view of a whole project. It is the fundamental plan which
provides a statement of how and when a project’s objective is to be achieved, by
showing the major products, activities and resources required on a project.
ACTIVITY REFERENCE DEPENDENT
ON
DURATION IN
DAYS
Orientation and Selection of
client
A None 14
Study the current system B A 12
Choosing a programming
language
C B 1
Learning a programming
language
D C 10
Choosing a compatible
database
E B,C 1
Designing the databases and
system various systems
interface
F B, C 10
Coding for the new system G C, F 12
Testing and Debugging H G 7
Launch I H 1
6
CHAPTER TWO
LITERATURE REVIEW
2.1 SYSTEMS DEVELOPMENT METHODOLOGIES
Before this system is built, one crucial step would be deciding which software
development approach is the most appropriate to use. In this section different
methodologies were analysed and the one which is most appropriate for this
project was chosen.
SPIRAL MODEL
The spiral model is a software development process combining elements of both
design and prototyping-in-stages, in an effort to combine advantages of top-down
and bottom-up concepts. Also known as the spiral lifecycle model (or spiral
development), it is a systems development method (SDM) used in information
technology (IT). This model of development combines the features of the
prototyping model and the waterfall model. The spiral model is intended for large,
expensive and complicated projects.
This should not be confused with the Helical model of modern systems
architecture that uses a dynamic programming (mathematical not software type
programming!) approach in order to optimise the system's architecture before
design decisions are made by coders that would cause problems.
The spiral model combines the idea of iterative development (prototyping) with
the systematic, controlled aspects of the waterfall model. It allows for incremental
releases of the product, or incremental refinement through each time around the
spiral. The spiral model also explicitly includes risk management within software
development. Identifying major risks, both technical and managerial, and
determining how to lessen the risk helps keep the software development process
under control.
7
The spiral model is based on continuous refinement of key products for
requirements definition and analysis, system and software design, and
implementation (the code). At each iteration around the cycle, the products are
extensions of an earlier product. This model uses many of the same phases as
the waterfall model, in essentially the same order, separated by planning, risk
assessment, and the building of prototypes and simulations.
Documents are produced when they are required, and the content reflects the
information necessary at that point in the process. All documents will not be
created at the beginning of the process, nor all at the end (hopefully). Like the
product they define, the documents are works in progress. The idea is to have a
continuous stream of products produced and available for user review.
The spiral lifecycle model allows for elements of the product to be added in when
they become available or known. This assures that there is no conflict with
previous requirements and design. This method is consistent with approaches
that have multiple software builds and releases and allows for making an orderly
transition to a maintenance activity. Another positive aspect is that the spiral
model forces early user involvement in the system development effort. For
projects with heavy user interfacing, such as user application programs or
instrument interface applications, such involvement is helpful.
Starting at the center, each turn around the spiral goes through several task
regions determine the objectives, alternatives, and constraints on the new
iteration.
Evaluate alternatives and identify and resolve risk issues.
Develop and verify the product for this iteration.
Plan the next iteration. The requirements activity takes place in multiple sections
and in multiple iterations, just as planning and risk analysis occur in multiple
places. Final design, implementation, integration, and test occur in iteration 4.
The spiral can be repeated multiple times for multiple builds. Using this method
8
of development, some functionality can be delivered to the user faster than the
waterfall method. The spiral method also helps manage risk and uncertainty by
allowing multiple decision points and by explicitly admitting that all of anything
cannot be known before the subsequent activity starts.
APPLICATIONS
For a typical shrink-wrap application, the spiral model might mean that you have
a rough-cut of user elements (without the polished / pretty graphics) as an
operable application, add features in phases, and, at some point, add the final
graphics.
The Spiral model is used most often in large projects and needs constant review
to stay on target. For smaller projects, the concept of agile software development
is becoming a viable alternative.
Advantages
Estimates (i.e. budget, schedule, etc.) get more realistic as work progresses,
because important issues are discovered earlier.
It is more able to cope with the (nearly inevitable) changes that software
development generally entails.
Software engineers (who can get restless with protracted design processes) can
get their hands in and start working on a project earlier.
The steps in the spiral model can be generalized as follows:
The new system requirements are defined in as much detail as possible. This
usually involves interviewing a number of users representing all the external or
internal users and other aspects of the existing system.
A preliminary design is created for the new system.
9
A first prototype of the new system is constructed from the preliminary design.
This is usually a scaled-down system, and represents an approximation of the
characteristics of the final product.
A second prototype is evolved by a fourfold procedure: (1) evaluating the first
prototype in terms of its strengths, weaknesses, and risks; (2) defining the
requirements of the second prototype; (3) planning and designing the second
prototype; (4) constructing and testing the second prototype.
At the customer's option, the entire project can be aborted if the risk is deemed
too great. Risk factors might involve development cost overruns, operating-cost
miscalculation, or any other factor that could, in the customer's judgment, result
in a less-than-satisfactory final product.
 The existing prototype is evaluated in the same manner as was the
previous prototype, and, if necessary, another prototype is developed from
it according to the fourfold procedure outlined above.
 The preceding steps are iterated until the customer is satisfied that the
refined prototype represents the final product desired.
 The final system is constructed, based on the refined prototype.
 The final system is thoroughly evaluated and tested. Routine maintenance
is carried out on a continuing basis to prevent large-scale failures and to
minimize downtime.
PROTOTYPE MODEL
A prototype is an early sample or model built to test a concept or process or to
act as a thing to be replicated or learned from. The word prototype derives from
the Greek prototypon. The Prototyping Model is a systems development method
(SDM) in which a prototype (an early approximation of a final system or product)
10
is built, tested, and then reworked as necessary until an acceptable prototype is
finally achieved from which the complete system or product can now be
developed. This model works best in scenarios where not all of the project
requirements are known in detail ahead of time. It is an iterative, trial-and-error
process that takes place between the developers and the users.
In many fields, there is great uncertainty as to whether a new design will actually
do what is desired. New designs often have unexpected problems. A prototype is
often used as part of the product design process to allow engineers and
designers the ability to explore design alternatives, test theories and confirm
performance prior to starting production of a new product. Engineers use their
experience to tailor the prototype according to the specific unknowns still present
in the intended design. For example, some prototypes are used to confirm and
verify consumer interest in a proposed design whereas other prototypes will
attempt to verify the performance or suitability of a specific design approach.
In general, an iterative series of prototypes will be designed, constructed and
tested as the final design emerges and is prepared for production. With rare
exceptions, multiple iterations of prototypes are used to progressively refine the
design. A common strategy is to design, test, evaluate and then modify the
design based on analysis of the prototype. In many products it is common to
assign the prototype iterations Greek letters. For example, a first iteration
prototype may be called an "Alpha" prototype. Often this iteration is not expected
to perform as intended and some amount of failures or issues are anticipated.
Subsequent prototyping iterations (Beta, Gamma, etc.) will be expected to
resolve issues and perform closer to the final production intent.
In many product development organizations, prototyping specialists are
employed - individuals with specialized skills and training in general fabrication
11
techniques that can help bridge between theoretical designs and the fabrication
of prototypes.
Basic prototype categories
There is no general agreement on what constitutes a "prototype" and the word is
often used interchangeably with the word "model" which can cause confusion. In
general, "prototypes" fall into five basic categories:
Proof-of-Principle Prototype (Model) (in electronics sometimes built on a
breadboard). A Proof of concept prototype is used to test some aspect of the
intended design without attempting to exactly simulate the visual appearance,
choice of materials or intended manufacturing process. Such prototypes can be
used to "prove" out a potential design approach such as range of motion,
mechanics, sensors, architecture, etc. These types of models are often used to
identify which design options will not work, or where further development and
testing is necessary.
Form Study Prototype (Model). This type of prototype will allow designers to
explore the basic size, look and feel of a product without simulating the actual
function or exact visual appearance of the product. They can help assess
ergonomic factors and provide insight into visual aspects of the product's final
form. Form Study Prototypes are often hand-carved or machined models from
easily sculpted, inexpensive materials (e.g., urethane foam), without representing
the intended colour, finish, or texture. Due to the materials used, these models
are intended for internal decision making and are generally not durable enough
or suitable for use by representative users or consumers.
User Experience Prototype (Model). A User Experience Model invites active
human interaction and is primarily used to support user focused research. While
intentionally not addressing possible aesthetic treatments, this type of model
does more accurately represent the overall size, proportions, interfaces, and
12
articulation of a promising concept. This type of model allows early assessment
of how a potential user interacts with various elements, motions, and actions of a
concept which define the initial use scenario and overall user experience. As
these models are fully intended to be used and handled, more robust
construction is key. Materials typically include plywood, REN shape, RP
processes and CNC machined components. Construction of user experience
models is typically driven by preliminary CAID/CAD which may be constructed
from scratch or with methods such as industrial CT scanning.
Visual Prototype (Model) will capture the intended design aesthetic and simulate
the appearance, colour and surface textures of the intended product but will not
actually embody the function(s) of the final product. These models will be suitable
for use in market research, executive reviews and approval, packaging mock-
ups, and photo shoots for sales literature.
Functional Prototype (Model) (also called a working prototype) will, to the
greatest extent practical, attempt to simulate the final design, aesthetics,
materials and functionality of the intended design. The functional prototype may
be reduced in size (scaled down) in order to reduce costs. The construction of a
fully working full-scale prototype and the ultimate test of concept is the engineers'
final check for design flaws and allow last-minute improvements to be made
before larger production runs are ordered.
It is possible to use prototype testing to reduce the risk that a design may not
perform acceptably, however prototypes generally cannot eliminate all risk. There
are pragmatic and practical limitations to the ability of a prototype to match the
intended final performance of the product and some allowances and engineering
judgement are often required before moving forward with a production design.
Building the full design is often expensive and can be time-consuming, especially
when repeated several times—building the full design, figuring out what the
13
problems are and how to solve them, then building another full design. As an
alternative, "rapid-prototyping" or "rapid application development" techniques are
used for the initial prototypes, which implement part, but not all, of the complete
design. This allows designers and manufacturers to rapidly and inexpensively
test the parts of the design that are most likely to have problems, solve those
problems, and then build the full design.
This counter-intuitive idea —that the quickest way to build something is, first to
build something else— is shared by scaffolding and the telescope rule
Advantages of prototyping
May provide the proof of concept necessary to attract funding
Early visibility of the prototype gives users an idea of what the final system looks
like
Encourages active participation among users and producer
Enables a higher output for user
Cost effective (Development costs reduced).
Increases system development speed
Assists to identify any problems with the efficacy of earlier design, requirements
analysis and coding activities
Helps to refine the potential risks associated with the delivery of the system being
developed
Various aspects can be tested and quicker feedback can be got from the user
Helps to deliver the product in quality easily
User interaction available during development cycle of prototype
14
Disadvantages of prototyping
Producer might produce a system inadequate for overall organization needs
User can get too involved whereas the program cannot be to a high standard
Structure of system can be damaged since many changes could be made
Producer might get too attached to it (might cause legal involvement)[verification
needed]
Not suitable for large applications
Over long periods, can cause loss in consumer interest and subsequent
cancellation due to a lack of a market (for commercial products).
There are several steps in the Prototyping Model:
1. The new system requirements are defined in as much detail as possible. This
usually involves interviewing a number of users representing all the departments
or aspects of the existing system.
2. A preliminary design is created for the new system.
3. A first prototype of the new system is constructed from the preliminary design.
This is usually a scaled-down system, and represents an approximation of the
characteristics of the final product.
4. The users thoroughly evaluate the first prototype, noting its strengths and
weaknesses, what needs to be added, and what should to be removed. The
developer collects and analyzes the remarks from the users.
5. The first prototype is modified, based on the comments supplied by the users,
and a second prototype of the new system is constructed.
15
6. The second prototype is evaluated in the same manner as was the first
prototype.
7. The preceding steps are iterated as many times as necessary, until the users
are satisfied that the prototype represents the final product desired.
8. The final system is constructed, based on the final prototype.
9. The final system is thoroughly evaluated and tested. Routine maintenance is
carried out on a continuing basis to prevent large-scale failures and to minimize
downtime.
INCREMENTAL MODEL
The Incremental model combines elements of the linear sequential model with
the iterative philosophy of the prototyping. This model has been explicitly
designed to accommodate a product that evolves over time.
When an incremental model is used, the first increment is often a core product.
The core product is used by the customer or undergoes a detailed review. As a
result of use and/or evaluation a plan is developed for the next increment. The
plan addresses the modification to the core product to better meet the needs of
the customer and delivery of additional features and functionality. Software is
constructed in a step-by-step manner. While a software product is being
developed, each step adds to what has already been completed.
Advantages of Incremental Model
•System is developed and delivered in increments after establishing an overall
architecture.
•Requirements and specifications for each increment may be developed.
16
•Users may experiment with delivered increments while others are being
developed.
•Intended to combine some of the advantages of prototyping but with a more
manageable process and better system structure.
•Incremental development is especially useful when staffing us unavailable for a
complete implementation by the business deadline.
•Early increments can be implemented with fewer people.
When you encounter a difficult deadline that cannot be changed the incremental
model is a good paradigm to consider.
WATERFALL MODEL
The waterfall model is a popular version of the systems development life cycle
model for software engineering. Often considered the classic approach to the
systems development life cycle, the waterfall model describes a development
method that is linear and sequential. Waterfall development has distinct goals for
each phase of development. Imagine a waterfall on the cliff of a steep mountain.
Once the water has flowed over the edge of the cliff and has begun its journey
down the side of the mountain, it cannot turn back. It is the same with waterfall
development. Once a phase of development is completed, the development
proceeds to the next phase and there is no turning back.
The advantage of waterfall development is that it allows for departmentalization
and managerial control. A schedule can be set with deadlines for each stage of
development and a product can proceed through the development process like a
car in a carwash, and theoretically, be delivered on time. Development moves
from concept, through design, implementation, testing, installation,
17
troubleshooting, and ends up at operation and maintenance. Each phase of
development proceeds in strict order, without any overlapping or iterative steps.
The disadvantage of waterfall development is that it does not allow for much
reflection or revision. Once an application is in the testing stage, it is very difficult
to go back and change something that was not well-thought out in the concept
stage. Alternatives to the waterfall model include joint application development
(JAD), rapid application development (RAD), synch and stabilize, build and fix,
and the spiral model.
V MODEL
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.
Requirements analysis
In the Requirements analysis phase, the requirements of the proposed system
are collected by analysing 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.
18
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. See also Functional
requirements. 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.
19
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.
The unit test design is developed in this stage.
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
20
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 test1.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.
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.
21
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.
2.2 METHODOLOGY OF CHOICE
After a critical analysis of the available methodologies for developing software,
and the ones described above, the V- model of software development has been
chosen for this project. This demonstrates the relationships between each phase
of the development life cycle and its associated phase of testing. Its Components
can be easily tested and debug during smaller iterations of development and
finally it is easier to manage risk because all risky pieces can be identified early
and are handled during iteration.
Why not the other methodologies
The Spiral model is not the appropriate methodology for this project because it is
risk-oriented. There is also no clear end point to the implementation of the
system. This will therefore lead to unnecessary work being done. Prototyping is
22
not appropriate for this project because it would involve the end user to give up
their time to review and feedback on the system. The waterfall model can also
not be used because there is no feedback between the phases. Once analysis is
finished, work on analysis is finished, once design is done it is done and so on.
There are no completion criteria for either analysis or design within this
methodology.
2.3 SOFTWARE REQIUREMENTS
The Graphical interface (Front End) of the application is prepared by the usage of
PHP. The back end of the application is maintained in MySQL database server.
Information Source is Management Information System
PHP
PHP is a general-purpose scripting language originally designed for web
development to produce dynamic web pages. For this purpose, PHP code is
embedded into the HTML source document and interpreted by a web server with
a PHP processor module, which generates the web page document. It also has
evolved to include a command-line interface capability and can be used in
standalone graphical applications. PHP can be deployed on most web servers
and as a standalone interpreter, on almost every operating system and platform
free of charge. PHP was originally created by Rasmus Lerdorf in 1995. The main
implementation of PHP is now produced by The PHP Group and serves as the
de facto standard for PHP as there is no formal specification. PHP is free
software released under the PHP License which is incompatible with the GNU
General Public License (GPL) due to restrictions on the usage of the term PHP.
While PHP originally stood for "Personal Home Page", it is now said to stand for
"PHP: Hypertext Pre-processor. PHP is mainly focused on server-side scripting,
so you can do anything any other CGI program can do, such as collect form data,
23
generate dynamic page content, or send and receive cookies. But PHP can do
much more.
There are three main areas where PHP scripts are used.
 Server-side scripting. This is the most traditional and main target field for
PHP. You need three things to make this work. The PHP parser (CGI or
server module), a web server and a web browser. You need to run the
web server, with a connected PHP installation. You can access the PHP
program output with a web browser, viewing the PHP page through the
server. All these can run on your home machine if you are just
experimenting with PHP programming.
 Command line scripting. You can make a PHP script to run it without any
server or browser. You only need the PHP parser to use it this way. This
type of usage is ideal for scripts regularly executed using cron (on *nix or
Linux).These scripts can also be used for simple text processing tasks
ADVANTAGES OF PHP
PHP (Hypertext Pre-Processor) is a server-side web programming language that
is widely used for web development. However, here are many languages which
are used for web development or web programming. But among all of them PHP
is the most popular web scripting language. So, PHP is widely used for web
development…
 PHP language has its roots in C and C++. PHP syntax is most similar to C
and C++ language syntax. So, programmers find it easy to learn and
manipulate.MySQL is used with PHP as back-end tool.
 MySQL is the popular online database and can be interfaced very well
with PHP. Therefore, PHP and MySQL are excellent choice for
webmasters looking to automate their web sites.
24
 PHP can run on both UNIX and Windows servers.
 PHP also has powerful output buffering that further increases over the
output flow.
 PHP internally rearranges the buffer so that headers come before
contents.
 PHP is dynamic. PHP works in combination of HTML to display dynamic
elements on the page. PHP only parses code within its delimiters, such as.
Anything outside its delimiters is sent directly to the output and not parsed
by PHP.
 PHP can be used with a large number of relational database management
systems, runs on all of the most popular web servers and is available for
many different operating systems.
 PHP5 a fully object oriented language and its platform independence and
speed on Linux server helps to build large and complex web applications.
 In general PHP is cheap, secure, fast and reliable for developing web
applications.
2.4 HARDWARE REQUIREMENT
Hardware is also referred to as computing potential. In this project, three
hardware categories have been considered during software planning:
 DEVELOPMENT SYSTEM, which is a computer and related peripherals
that will be used during the software development hase. The development
system has been used because it can accommodate multiple users,
maintain large volumes of information and support a rich assortment of
software tools.
 TARGET MACHINE on which the software will eventual is executed.
 OTHER HARDWARE ELEMENTS OF THE NEW SYSTEM.
25
SYSTEM SPECIFICATION
Software Specification
Operating platform : windows NT/2000/XP/2003/Vista/7
DBMS :MySQL
Programming platform: PHP
Software : Microsoft Visio 2000 .
Browser : Internet Explorer
WEBSERVER: Wamp
Hardware requirement specification: Personal Computer, Intel Pentium
(tm), Dual Core - 2.00GHz Processor, 2GB of Ram, 320gb Hard disk Drive
2.5 Database Management System
A database management system (DBMS), sometimes just called a database
manager, is a program that lets one or more computer users create and access
data in a database. The DBMS manages user requests (and requests from other
programs) so that users and other programs are free from having to understand
where the data is physically located on storage media and, in a multi-user
system, who else may also be accessing the data. In handling user requests, the
DBMS ensures the integrity of the data (that is, making sure it continues to be
accessible and is consistently organized as intended) and security (making sure
only those with access privileges can access the data). The interactions catered
for by most existing DBMS falls into four main groups”. These are:
26
 Data definition: This aspect of the DBMS defines new data structures for a
database, removing data structures from the database, modifying the
structure of existing data.
 Data maintenance: this defines how new data is inserted into an existing
data structure, updating data in existing data structures and deleting data
from existing data structure.
 Data retrieval: this aspect defines how users query existing data structures
and also extracting data for use by application programs.
 Data control: this aspect deals with creating and monitoring users of a
database, restricting access to the database and the monitoring of
performance of databases.
Examples of database management systems:
Access
Access is a personal database system from Microsoft. It is a visually oriented
software product, making it easy for non-programmers to develop useful
databases. While the Access database structure can scale up to serve corporate
needs, the most common use for this database is for small individual databases
or limited-use multiuser programs. It integrates the Visual Basic for Applications
language, making it a complete development environment.
Visual FoxPro
FoxPro is a relational database system, also produced by Microsoft, that is tightly
coupled to its programming language. FoxPro is less friendly as an end-user
database, requiring more technical expertise then Access. This database system
is known for its fast processing engine and the ability to handle numerous
simultaneous transactions.
27
MySQL Database
MySQL is a server-based database that enables multiple users to access
multiple databases. The software runs on multiple platforms, including most
varieties of UNIX and Windows. It offers limited front-end usability, and is
designed as a back-end database server. MySQL separates from other database
products and their costs; the non-enterprise version is distributed for free.
MySQL is the world most popular open source database management system
(RDBMS). MySQL stands for “My Structured Query language”. It runs as a server
and provides a multi user accesses to a number of databases (Wikipedia, n.d). It
is compatible with many operating systems including Windows, Linux, and Mac
and. It also handles large amounts of data and provides security through user
authorization and access privileges. MySQL is own and developed by Sun
Microsystems, one of the world’s largest contributors to open source software
and finally all programming languages with language-specific APIs include
libraries for accessing MySQL databases
SQL Server
SQL Server is an enterprise-level scalable database server. This product differs
from the personal database in that it doesn't provide the front-end tools that an
individual database product would provide. The database engine focuses on
quickly responding to client requests in the form of SQL queries. These queries
can be generated directly in SQL Server, or through a separate user interface
developed in a multitude of programming languages. SQL Server is designed to
handle databases with millions of records.
Oracle
The Oracle database is another enterprise-level scalable database. The SQL-
based database supports distributed corporate databases, enabling the user to
access data locally or from remote databases in a transparent transaction.
28
Distributed databases help to overcome the physical limitations of a physical
computing environment. The maximum database size for an Oracle database is
8 million terabytes, requiring physical storage beyond the capacity of most single
installations.
Choice of DBMS for the new system
I have decided to use MySQL for the design of the database for Kumo Consult
Intra Mailing System development.
29
CHAPTER THREE
ANALYSIS AND DESIGN
3.1 Fact Finding
Most times, fact finding is carried out by system analyst. This is aimed at
producing a description of the current system and using this together with the
requirements, to build the logical required system model. The first stage of fact
finding and analysis of current system is referred to as investigation.
During fact finding the analyst is often verifying data collected by one method
against similar collected data by another method, and if these data agree, these
probably has a fact. One major problem of fact finding is perception. One person
may perceive a situation in one way whereas another may perceive the same
information in a completely different way.
Useful information a system analyst should consider during fact finding will
include:
 How is the organization structured? Who holds key responsibilities in
these areas, their style of management and the interest in the current
investigation?
 Previous studies that may have been carried out and their outcome: were
the results accepted or turned down, and why?
3.2 Investigation
Investigation would be started at KUMO Consults head office and then to the site
offices to research on the system to understand what is done, how it is done and
who does what.
30
Methods Chosen For Investigation
Observation:
Observation can be both formal and informal. Formal observation involves a
planned and conscious approach of watching an operation or procedure for a
specific period. Informal observation is not a planned observation therefore
requires the analyst to be alert all the time to be able to gather information.
In the cause of this project I adopted the formal way of observation. I spent some
time in the construction sites of the KUMO Consults and observed information is
passed from one site office to the other, I observed how communication is carried
out between departments, one staff member to another.
Enquires
 Interviewing: The staff members will have one on one question and
answer session with the development team.
Example:
 What kind of function do they expect the system to perform?
 Their various views about how the problem of the existing system can
be fixed.
 Questionnaires: Question to be asked during interviews can be bulleted
on a question form and submitted to the site manager or staff member to
answer and return to the developments team.
Some problems faced during fact finding
 Some persons were not ready to answer questions asked them
 Some did not embrace the idea of building a new system because they
were scared they will lose their jobs
 Many of the Questionnaires were not returned
 Some employees were not there on their interview dates
31
3.3 DESCRIPTION OF CURRENT SYSTEM:
The existing mailing communication system at Kumo consults is a
traditional 2-tier architecture where there is only the server and the client. In this
case, the server was only a data base server that can only offer data. Therefore
most of the business logic and validations had to be placed on the clients
system. This process therefore makes the maintenance of this system very
expensive. This also means that every client has to be trained as to how to use
the application.
REQUEST
RECEIVE (TEXT OR GRAPHICS)
1ST TIER 2ND TIER
3.4 ANALYSIS OF CURRENT SYSTEM:
This traditional 2-tier architecture has only the server and the client, in
which the server was only a data base server that can only offer data. Since the
actual processing of the data takes place on the remote client the data has to be
transported over the network. As a rule this leads to increased network stress
(Load). The conduct of transactions is controlled by the client. Advanced
techniques like two-phase-committing can’t be run. Personal computers are
considered to be "un-trusted" or “unsafe” in terms of security, i.e. they are
relatively easy to crack or hacked into. Nevertheless, sensitive data is transferred
to the PC, for lack of an alternative.
CLIENT http SERVER
32
Application logic can’t be re-used because it is bound to an individual PC-
program. The 2-tier-model implies a complicated software-distribution-procedure:
as all of the application logic is executed on the PC, all those machines (maybe
thousands) have to be updated in case of a new release. This can be very
expensive, complicated, prone to error and time consuming. Distribution
procedures include the distribution over networks (perhaps of large files) or the
production of an adequate media like floppies or CDs. Once it arrives at the
user’s desk, the software first has to be installed and tested for correct execution.
Due to the distributed character of such an update procedure, system
management cannot guarantee that all clients work on the correct copy of the
program. To offset the above mentioned problems, 3-tier architecture is
proposed. A middle ties called as the application server is introduced. This is also
known as the Web server. And in turn these short comings of the traditional two-
design have given rise for the need for mailing system.
3.5 SOFTWARE AND HARDWARE REQUIREMENT SPECIFICATION:
Software Requirements Specification plays an important role in creating quality
software solutions. Specification is basically a representation process.
Requirements are represented in a manner that ultimately leads to successful
software implementation.
Requirements may be specified in a variety of ways. However there are some
guidelines worth following: -
• Representation format and content should be relevant to the problem
• Information contained within the specification should be nested
• Diagrams and other notational forms should be restricted in number and
consistent in use. • Representations should be revisable.
33
3.6 RESOURCES NEEDED FOR THE DEVELOPMENT OF AN INTRA
MAILING SYSTEM
The project is expected to make use of hardware and software that is freely
available to me at all times.
 Hardware
Personal Computer, Intel Pentium (tm), Dual Core - 2.00GHz Processor, 2
GB of Ram, 320 Gb Harddisk Drive
 Software
Operating platform : windows NT/2000/XP/2003/Vista/7
DBMS :MySQL
Programming platform: PHP
Software : Microsoft Visio 2000 .
Browser : Internet Explorer
Hardware requirement specification:
PROCESSOR : Pentium IV
WEB SERVER : WAMP
Possible Risk that could be faced during the design of the new system
 Clients may be difficult to manage.
 Certain entities such as users may try to sabotage the development of the
system
 Virus attacks can cause the loss of data.
 Power failure will result in hardware and software failure.
34
3.7 REQUIREMENT SPECIFICATION OF THE NEW SYSTEM
FUNCTIONAL REQUIREMENTS:
 ADMINISTRATOR:
In administrator module, we have five options:
Generate User: Creating a new User account.
Input: user id and password.
Output: User added to database.
Edit User Information: Changing Login and Password.
Input: ID, New Password, Confirm Password.
Output: Changed Information.
Delete User: Removing a user entry from the database.
Input: User Id, and Password of the user to be
deleted from the database.
Output: User entry removed.
Check Mail: Shows mail stored.
Input: Request from user to check his mail.
Output: Mails of the user.
Sendl: Send mail to the appropriate user.
Input: User Id.
Output: Mail sent.
Login: to check the authenticate administrator.
Input: Login Id and Password.
35
Output: Valid or invalid message.
 USER:
In administrator module, we have
Send Mail: Send mail to user in organization.
Input: user id to whom he wants to send mail.
Output: Mail sent.
Check Mail: Shows mail stored.
Input: Request from user to check his mail and delete the
Read the read mail.
Output: mails to the users after checking or deleting his Mail.
USER CHARACTERISTICS
ADMINISTRATOR:
WHO
ADMINISTRATOR
WHAT  Creating a new user account.
 Delete a user account.
 Change the password of the
user.
WHEN  Whenever there is a request
from the user to
 Change password
 To create a new user
account.
36
 And delete the user account
whenever he thinks to be
necessary
HOW By just clicking on the appropriate
option on the form.
WHERE From his current location, on his PC.
USER:
WHO USER/CLIENT
WHAT
 Can check his mail
 Can send mail to another user
whose user id is there in the
organization.
 Can delete the unnecessary
mails.
HOW
By selecting the appropriate option
on the form.
WHERE
From his on PC, sitting at his on
location
37
3.8 DESIGN AND IMPLEMENTATION
System design is the process of planning a new system to complement or
altogether replace old systems. System design can be defined to have three
different activities in it. They are
• External Design
• Architectural design
• Detailed Design
Architectural design and detailed design collectively called as internal design.
EXTERNAL DESIGN: External design of a software involves conceiving,
planning and specify the external observably characteristics of the software
products. External design includes user report format, external data sources and
data links. This design begins during analyze phase and continuous to the design
phase. The external design gives the actual data flow from one system to other
system. It also shows the relation of the current system to outside the world. It
shows what the inputs, outputs are. Here the external design is conveyed to the
user by using the browser. The external design also includes user responses,
report format, data source and data links. Errors are easily traced out during the
external design. Once external design in completed a more detailed explanation
of the parts identified, as part of external design will lead to easy understanding
of the internal working of the system. Avoiding errors in the external design will
not lead to the hard failures during the time interval design.
INTERNAL DESIGN: Internal design activities are actually constituted in two
different activities.
• Architectural Design
• Detailed Design
38
Internal design involves planning, specifying the internal structure and processing
details of the software product. Architectural design is concerned with the refining
conceptual view of the system, identifying internal processing, functions,
decomposing, high level functions into sub overall performance of the software
products. Use of objects in the "Electronic Mail Service" leaves you with a more
comfortable programming technique. Designing of an object for each identified
entity results in reducing, repetitive coding and increases efficiency.
3.9 INTRA MAILING SYSTEM DESCRIPTION
This project deals with the Mailing System. This project is having two (2) different
modules which are
 Administrator
 Users.
Administrator
In administrator module we have four options.
1. Generate User.
2. Delete User.
3. Check Mail.
4. Send Mail.
When the administrator select the option generate user, he will creates a
new user id and password for the new user. When the administrator selects the
option Delete User, he will delete an existing user if not necessary.
When the administrator selects the send mail option, then the form will be
opened for sending mail. Then the admin send mail to any other user who has a
user id in the organization. In check mail option, the admin check for the mails. If
39
the user has any mails, then the mails are displayed. He will check the mails and
delete the unnecessary mails. If the user has no mails then the message “No
Mails” is displayed. When the admin selects the show user’s option,
Fig 1: showing the general login page
40
Fig 2: showing administrator’s interface for creating new employee ID
Fig 3: Administrator’s Interface for Composing Mail
41
User:
In user module we have two options.
1. Send Mail.
2. Check Mail.
When the user selects the send mail option, then the form will be opened for
sending mail. Then the user can send mail to any other user who has a user id in
the organization. In check mail option, the user can check for the mails. If the
user has any mails, then the mails are displayed. He will check the mails and can
delete the unnecessary mails. If the user has no mails then the message No
Mails is displayed.
User Menu: Provides a way to give any commands to the mail server. The
options include in the menu are
Compose Inbox
Sent Messages Logout
Fig 4: showing user Mail interface
42
Compose Screen: This screen is obtained when the user selects the compose
option from the mail folder. The fields in this screen are:
To: Here the primary receiver's address is to be selected
Subject: Here the primary receiver's address is to be entered.
Fig 5: showing the compose screen
Mail text to be sent: This is the text area where the actual mail data has to be
sent. Send:This is a button, used to send the mail.
Inbox: If the user selects this option on the user menu the corresponding inbox of
the user will be displayed. To read the different mails one option is provided as a
subject by clicking on the subject place the corresponding mail will be displayed.
Sent Messages: Using these options user can select different messages which
are all ready sent earlier. This is for the purpose to know which message is sent
to whom.
43
Delete: Can be selected to delete the current address.
User name: Here User id of the address holder is to be entered.
Logout: By clicking this option the login session of the user will expire. If you
want to re-enter in to the site one more option is to be provided, if u want sign out
completely one more option is provided to sign out completely that is to logout
the use completely from the site.
Advantages:
The user of Intranet Mailing System is given a unique login id and must give the
correct password. It gives total security for us. So, unauthorized users can be
prevented to see our messages. Even if the user forgets his/her password
reminding facility by which the user can recollect the password and log into the
system.
The advantage of the Intra mail system is its security feature allowing only
registered users to access the system and preventing any hackers, unauthorized
users.
44
DATA AND SYSTEM DESIGN
Data Dictionary
a. EMPLOYEE INFORMATION:
Fig 6: showing the data design of Employee information
b. LOGIN INFO
Fig 7: showing the login information data design
45
c. RECEIVED MAIL
Fig 8: showing the Received Mail data design
d. SENT MAIL
Fig 9: showing the sent mail data design
46
DESIGN PHASE:
Context Level DFD
LOGIN INFO OF USERS
SEND
MAIL
RECEIVE MAIL
SEND MAIL
CREATE ACCOUNT/
CHANGE PASSWORD
/DELETE ACCOUNT
Fig 10: Showing a context level DFD of the intra mailing system
ADMINISTRATOR
INTRA
MAILING
SYSTEM
USER
47
Case Diagram
Fig 11: A case diagram of the intra mailing system
User
Validate User
Admin
Create New User
Grant Access
Check Mail
Send Mail
Logout
Delete Mail
Reply Mail
Edit Profile
Validation
48
DFD Level 1: (Administrator)
Fig 12: DFD Level 1
Login info
Login info
Validating
User
Successful
Fetching info
Userid
Userid
New
user
request
Updating DB
Savinginto DB
Create
New
Account
Edit
Profile
Delete
User
Reques
t
Validate
Login
Administrator
UserAccepting
Request
Transferringrequest
DATABASE(User_info)
49
DATA FLOW DIAGRAMS OF THE MAILING SYSTEM
Client ClientMail Server
0.0
Request HTML page
Context Diagram ( Zero Level Diagram).
Mail SERVER
Client
Level 1 Diagram.
Process
Request
Analyze
Request
1.0 2.0
Req Req O/P
Client
Prepare
response
3.0
Html
page
50
Client
Level 2 Diagram.
Retrieve
Req headers
Start a
Child proc.
1.1 1.2
Req Req Header
Client
Send the
Request
Type
1.3
File
Client Web Server
Identify the
Request Type
1.3.1
Header GET Req
Level 3 Diagram.
Client Web Server
Identify the
Request Type
1.3.2
Header POST Req
Level 3 Diagram.
51
Client Web Server
Identify the
Request Type
1.3.3
Header HTML Page
Req
Level 3 Diagram.
Client Web Server
Identify the
Request Type
1.3.4
Header CGI Req
Level 3 Diagram.
Client Web Server
Level 2 Diagram.
Set Env.Analyze
Request
2.1 2.2
Get
Request
Query
String
Q.S.
52
Client Web Server
Level 2 Diagram.
Set Env.Read from
STDIN
2.3 2.4
Post
Request
Data Data
Client Web Server
Level 2 Diagram.
Read FileOpen File
2.5 2.6
HTML
Request
File
Header
Data
Cache File
53
Client Web Server
Start Req
Process
2.7
CGI Req Output Data
Level 3 Diagram.
CGI File
Mail Server
Level 2 Diagram.
Retrieve
Req headers
Prepare
Response
3.1 3.2
O/P Data
Client
S
end the
Request
Type
3.3
File
Send the
Request
Type
3.4
O/P
Data
O/P
Data
O/P
Data
54
E-R DIAGRAM
USER_INFO
MAIL_INFO
Address
sss
DEPART
MENT
passwo
rd
LoginI
d
Designati
on
Contact
no.
User
Grant
Permissi
on
Administrat
or
Address
sss
passwo
rd
LoginI
d
Contact
no.
Designati
on
DEPART
MENT
Login
Id
Depart
ment
Designati
on
AddressName Passwor
d
Contact
No.
MailNo. Checke
d
Date Tim
e
To From Msg/M
ail
Subj
ect
Size
55
DESIGN INTERFACE
Login
Forgotten password
56
User interface
Compose mail
57
CHAPTER FOUR
IMPLEMENTATION AND TESTING
4.1 Code samples
Login Form code sample
<?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
session_start();
$errormessage = 'Enter your Login Information';
if (isset($_POST['username']) && isset($_POST['password']))
{
$username = $_POST['username'];
$password = $_POST['password'];
include('connect.php');
$sql = "SELECT em.emp_id, em.lname, em.fname, lg.login_id, lg.username,
lg.password, lg.priv_level FROM employee_info AS em
JOIN login_info AS lg ON lg.emp_id = em.emp_id
WHERE lg.username = '$username' AND lg.password = '$password'";
$result = mysql_query($sql)
58
or die ('Could not execute query');
$row = mysql_fetch_array($result);
if (mysql_num_rows($result) == 1)
{
if ($row['priv_level'] == 1)
{
$_SESSION['admin_logged_in'] = true;
$_SESSION['emp_id'] = $row['emp_id'];
$_SESSION['password'] = $_POST['password'];
$_SESSION['lastname'] = $row['lname'];
$_SESSION['firstname'] = $row['fname'];
header('Location: admin.php');
exit;
}elseif($row['priv_level'] == 5)
{
$_SESSION['employee_logged_in'] = true;
$_SESSION['emp_id'] = $row['emp_id'];
$_SESSION['password'] = $_POST['password'];
$_SESSION['lastname'] = $row['lname'];
$_SESSION['firstname'] = $row['fname'];
header('Location: checkmail-01.php');
exit;}
}
else
{
$errormessage = 'Sorry, Wrong Username/Password';
59
}
}
?>
4.2 TESTING
Testing is any activity aimed at evaluating an attribute or capability of a program
or system and determining that it meets its required results. Although crucial to
software quality and widely deployed by programmers and testers, software
testing still remains an art, due to limited understanding of the principles of
software. The difficulty in software testing stems from the complexity of software:
one cannot completely test a program with moderate complexity. Testing is more
than just debugging. The purpose of testing can be quality assurance, verification
and validation, or reliability estimation. Testing can be used as a generic metric
as well. Correctness testing and reliability testing are two major areas of testing.
60
Testing Log Samples:
Testing the Login form
Testing with an invalid user name or password
Purpose of test this test is to check if the login form of the application will
allow access to the system if a wrong user name or password
is used to login to the system.
Test Data An invalid user name or password or both will be used.
Test Condition a user name and password must be entered into the fields on
the form
Expected
Outcome
Denial of access, a message box should pop out telling the
use he or she has entered a wrong user name or password
Actual
Outcome
On entering a wrong user name or password into the login
form, the system displayed a message box prompting the user
“sorry, wrong username or password” .
Remark: this means the test was successful
61
Fig 13: showing the invalid username or password test
Testing with a valid Username and Password
Purpose of test this test is to check if the login form of the application will allow a
user to have access to the system if she provides a valid
Username and password
Test Data A valid user name or password will be used
Test Condition a user name and password must be entered into the fields on the
form
Expected
Outcome
User should have access to the system once a valid user name
and password is entered
Actual
Outcome
On entering a valid Username and Password into the login form,
the system gave access to the user into the system
62
Fig 14: showing login with valid username and password
Test Analysis and Conclusion
Since the main aim of testing is to check for errors, few error were found and
fixed. However, fixing these errors was to improve the efficiency of the system.
I will therefore conclude by saying test was satisfactory and successful
4.3 Training
The aim of Systems training is to give users the specific skills they will be required
in using a new information system in doing their jobs. During training of the users
it is necessary that user must be made familiar with new tasks and
documentations.
It is very necessary that people identified to undergo training are available for
training.
Remark: this means the test was successful
63
There are various methods used for user training. The choice of training for a user
usually, will depend on the nature and complexity of the system, the number of
people to train, their location, their level of expertise in computer systems and
also the budget allocated for the training.
64
CHAPTER FIVE
CONCLUSION AND RECOMMENDATIONS
CONCLUSION
The efficiency of any system designed to suit the requirement depends on
cooperation during the implementation stage and also flexibility of the system to
adopt itself to the client and system requirements. “Intranet Mailing System” has
been developed to overcome the problems with traditional 2-tier Architecture.
As an evidence of this, by using the system developed one can
communicate with the other valid users of the Intra Mailing System. This is
allowing the Users to view the mails coming from different branches and
departments, allowing replies to them. In every endeavour a wealth of
experiences and lessons are learnt. During the duration of this project, diverse
lessons were learnt that helped improved my skills both as a developer and a
project manager.
During the cause of the project I realized that software development projects
cannot be treated like any ordinary task or academic assignment for that matter.
It is necessary to tackle software development with a full project approach with
adequate management style if success is to be achieved. Effective resources
and especially time management will go a long way to tell if a project will be
successful or not. This Intra Mailing System has also enabled me to practically
use much skill that I have acquired over the years of study.
65
REFERENCES
Allen G.Taylor SQL For Dummies®, 5th Edition Published byWiley
Publishing, Inc. Copyright © 2003
Demarco & Plauge (1979) Structured Analysis and Systems
Specification.
Facsimile edition. Prentice Hall PTR.
ISBN-10: 0138543808
JANET VALADE PHP & MySQL For Dummies, 3rd Edition byWiley
Publishing, Inc. Copyright © 2006
Mark Maslakowski Sam's Teach Yourself MySQL in 21 Days (2004)
ISBN: 0672319144
Nandish P. 2004. Systems Analysis and Design: A Persona
Framework Approach. Routledge. ISBN: 0-415-
33216-
NCC Education Limited 2001. Structured Programming Methods.
ISBN: 1-90234-345-X
Paul Beynon-Davies Database Systems Third Edition, NCC Education (2004)
Yeates, D., & Wakefield T. 2004. System Analysis and Design. 2nd edition,
Pearson
Education Limited, ISBN: 0273 65536 1.

Contenu connexe

Tendances

Mail Server Project Report
Mail Server Project ReportMail Server Project Report
Mail Server Project ReportKavita Sharma
 
Internet mail system java project
Internet mail system java projectInternet mail system java project
Internet mail system java projectTutorial Learners
 
INTERNAL MAILING SYSTEM-Project report
INTERNAL MAILING SYSTEM-Project reportINTERNAL MAILING SYSTEM-Project report
INTERNAL MAILING SYSTEM-Project reportKULDEEPSINGH CHAUHAN
 
Mail server PPT By Mukesh
Mail server PPT By MukeshMail server PPT By Mukesh
Mail server PPT By MukeshMukesh Kumar
 
Final year project report on Internet And Interanet Emailing server
Final year project report on Internet And Interanet Emailing serverFinal year project report on Internet And Interanet Emailing server
Final year project report on Internet And Interanet Emailing serversachin993
 
Mail server_Synopsis
Mail server_SynopsisMail server_Synopsis
Mail server_SynopsisManmeet Sinha
 
Webmail and Mail Clients
Webmail and Mail ClientsWebmail and Mail Clients
Webmail and Mail ClientsSomeone Else
 
Client server chat
Client server chatClient server chat
Client server chatFreelancer
 
OTechs Mail system proposal
OTechs Mail system proposalOTechs Mail system proposal
OTechs Mail system proposalOsman Suliman
 
email clients and webmail (presentation)
email clients and webmail   (presentation)email clients and webmail   (presentation)
email clients and webmail (presentation)kay2
 
International Journal of Engineering Research and Development
International Journal of Engineering Research and DevelopmentInternational Journal of Engineering Research and Development
International Journal of Engineering Research and DevelopmentIJERD Editor
 
Mail Server with Filter for organization or school--Project Presentation_(Eng...
Mail Server with Filter for organization or school--Project Presentation_(Eng...Mail Server with Filter for organization or school--Project Presentation_(Eng...
Mail Server with Filter for organization or school--Project Presentation_(Eng...Sorawit Paiboonrattanakorn
 
Khude Barta - Online Messaging Application
Khude Barta - Online Messaging ApplicationKhude Barta - Online Messaging Application
Khude Barta - Online Messaging ApplicationArman Hossain
 
Mail tracker mini
Mail tracker miniMail tracker mini
Mail tracker minipendyam
 
Client server based computing
Client server based computingClient server based computing
Client server based computingMohammad Affan
 
Sending the data already gathered from the client to the Server
Sending the data already gathered from the client to the ServerSending the data already gathered from the client to the Server
Sending the data already gathered from the client to the Serverhussam242
 
Alternative Methods Of Communication To Consumer
Alternative Methods Of Communication To ConsumerAlternative Methods Of Communication To Consumer
Alternative Methods Of Communication To Consumerguestf9788dc7
 

Tendances (20)

Mail Server Project Report
Mail Server Project ReportMail Server Project Report
Mail Server Project Report
 
Internet mail system java project
Internet mail system java projectInternet mail system java project
Internet mail system java project
 
INTERNAL MAILING SYSTEM-Project report
INTERNAL MAILING SYSTEM-Project reportINTERNAL MAILING SYSTEM-Project report
INTERNAL MAILING SYSTEM-Project report
 
Mail server PPT By Mukesh
Mail server PPT By MukeshMail server PPT By Mukesh
Mail server PPT By Mukesh
 
Final year project report on Internet And Interanet Emailing server
Final year project report on Internet And Interanet Emailing serverFinal year project report on Internet And Interanet Emailing server
Final year project report on Internet And Interanet Emailing server
 
Mail server_Synopsis
Mail server_SynopsisMail server_Synopsis
Mail server_Synopsis
 
Chat application
Chat applicationChat application
Chat application
 
Mail server
Mail serverMail server
Mail server
 
Webmail and Mail Clients
Webmail and Mail ClientsWebmail and Mail Clients
Webmail and Mail Clients
 
Client server chat
Client server chatClient server chat
Client server chat
 
OTechs Mail system proposal
OTechs Mail system proposalOTechs Mail system proposal
OTechs Mail system proposal
 
email clients and webmail (presentation)
email clients and webmail   (presentation)email clients and webmail   (presentation)
email clients and webmail (presentation)
 
International Journal of Engineering Research and Development
International Journal of Engineering Research and DevelopmentInternational Journal of Engineering Research and Development
International Journal of Engineering Research and Development
 
Mail Server with Filter for organization or school--Project Presentation_(Eng...
Mail Server with Filter for organization or school--Project Presentation_(Eng...Mail Server with Filter for organization or school--Project Presentation_(Eng...
Mail Server with Filter for organization or school--Project Presentation_(Eng...
 
Khude Barta - Online Messaging Application
Khude Barta - Online Messaging ApplicationKhude Barta - Online Messaging Application
Khude Barta - Online Messaging Application
 
Mail tracker mini
Mail tracker miniMail tracker mini
Mail tracker mini
 
Client server based computing
Client server based computingClient server based computing
Client server based computing
 
Sending the data already gathered from the client to the Server
Sending the data already gathered from the client to the ServerSending the data already gathered from the client to the Server
Sending the data already gathered from the client to the Server
 
Alternative Methods Of Communication To Consumer
Alternative Methods Of Communication To ConsumerAlternative Methods Of Communication To Consumer
Alternative Methods Of Communication To Consumer
 
Aisha Email System
Aisha Email SystemAisha Email System
Aisha Email System
 

En vedette

mail server presentation
mail server presentationmail server presentation
mail server presentationaisadhsa
 
Final Msm black book Final
Final  Msm black book Final Final  Msm black book Final
Final Msm black book Final Dinesh Jogdand
 
2014-25. Mail server menggunakan zimbra
2014-25. Mail server menggunakan zimbra2014-25. Mail server menggunakan zimbra
2014-25. Mail server menggunakan zimbraSyiroy Uddin
 
2014-37. Membangun mail server dengan zimbra pada linux
2014-37.  Membangun mail server dengan zimbra pada linux2014-37.  Membangun mail server dengan zimbra pada linux
2014-37. Membangun mail server dengan zimbra pada linuxSyiroy Uddin
 
Panduan praktis membangun web server dan web mail lokal
Panduan praktis membangun web server dan web mail lokalPanduan praktis membangun web server dan web mail lokal
Panduan praktis membangun web server dan web mail lokalAbas Djumadi
 
Presentasi MSDK Mail Server
Presentasi MSDK Mail ServerPresentasi MSDK Mail Server
Presentasi MSDK Mail ServerApradiz Newcyber
 
Client Server System Development
Client Server System DevelopmentClient Server System Development
Client Server System DevelopmentManjuShanmugam1593
 
Email server system1.ppt
Email server system1.pptEmail server system1.ppt
Email server system1.pptPooja Ladda
 
Proxy servers
Proxy serversProxy servers
Proxy serversKumar
 
Email Ppt
Email PptEmail Ppt
Email PptDyern
 
Mail server on linux
Mail server on linux Mail server on linux
Mail server on linux Roshni17
 
Introduction to Email
Introduction to EmailIntroduction to Email
Introduction to EmailMade Aditya
 
project
projectproject
projectdnraj
 
All about email
All about emailAll about email
All about emailestefana4
 

En vedette (19)

mail server presentation
mail server presentationmail server presentation
mail server presentation
 
Mail server
Mail serverMail server
Mail server
 
Final Msm black book Final
Final  Msm black book Final Final  Msm black book Final
Final Msm black book Final
 
2014-25. Mail server menggunakan zimbra
2014-25. Mail server menggunakan zimbra2014-25. Mail server menggunakan zimbra
2014-25. Mail server menggunakan zimbra
 
2014-37. Membangun mail server dengan zimbra pada linux
2014-37.  Membangun mail server dengan zimbra pada linux2014-37.  Membangun mail server dengan zimbra pada linux
2014-37. Membangun mail server dengan zimbra pada linux
 
Panduan praktis membangun web server dan web mail lokal
Panduan praktis membangun web server dan web mail lokalPanduan praktis membangun web server dan web mail lokal
Panduan praktis membangun web server dan web mail lokal
 
Presentasi MSDK Mail Server
Presentasi MSDK Mail ServerPresentasi MSDK Mail Server
Presentasi MSDK Mail Server
 
Client Server System Development
Client Server System DevelopmentClient Server System Development
Client Server System Development
 
Mail server
Mail serverMail server
Mail server
 
Email server system1.ppt
Email server system1.pptEmail server system1.ppt
Email server system1.ppt
 
mail server with zimbra
mail server with zimbramail server with zimbra
mail server with zimbra
 
Proxy servers
Proxy serversProxy servers
Proxy servers
 
Mail server
Mail serverMail server
Mail server
 
Email Ppt
Email PptEmail Ppt
Email Ppt
 
E Mail Basic
E Mail BasicE Mail Basic
E Mail Basic
 
Mail server on linux
Mail server on linux Mail server on linux
Mail server on linux
 
Introduction to Email
Introduction to EmailIntroduction to Email
Introduction to Email
 
project
projectproject
project
 
All about email
All about emailAll about email
All about email
 

Similaire à PROJECT ARRANGED (FINAL)

online news portal system
online news portal systemonline news portal system
online news portal systemArman Ahmed
 
Mca(.net & java) application projects abstracts(v)
Mca(.net & java) application projects abstracts(v)Mca(.net & java) application projects abstracts(v)
Mca(.net & java) application projects abstracts(v)S3 Infotech IEEE Projects
 
44478167 hospital-management-system
44478167 hospital-management-system44478167 hospital-management-system
44478167 hospital-management-systemAkshay Iliger
 
Online compliant response system for corporation
Online compliant response system for corporationOnline compliant response system for corporation
Online compliant response system for corporationDhavamani Prakash
 
235429094 jobportal-documentation
235429094 jobportal-documentation235429094 jobportal-documentation
235429094 jobportal-documentationsireesha nimmagadda
 
IRJET- Voice based Email Application for Blind People
IRJET-  	  Voice based Email Application for Blind PeopleIRJET-  	  Voice based Email Application for Blind People
IRJET- Voice based Email Application for Blind PeopleIRJET Journal
 
OS Password-Manager-Report.docx
OS Password-Manager-Report.docxOS Password-Manager-Report.docx
OS Password-Manager-Report.docxrinim85726
 
Ignou MCA 6th Semester Synopsis
Ignou MCA 6th Semester SynopsisIgnou MCA 6th Semester Synopsis
Ignou MCA 6th Semester SynopsisHitesh Jangid
 
According To The Author Of “Build A Streamlined Refinery”,
According To The Author Of “Build A Streamlined Refinery”,According To The Author Of “Build A Streamlined Refinery”,
According To The Author Of “Build A Streamlined Refinery”,Jill Lyons
 
Chapter_1_INTRODUCTION.pdf
Chapter_1_INTRODUCTION.pdfChapter_1_INTRODUCTION.pdf
Chapter_1_INTRODUCTION.pdfKamal Acharya
 
Chapter_1_INTRODUCTION.pdf
Chapter_1_INTRODUCTION.pdfChapter_1_INTRODUCTION.pdf
Chapter_1_INTRODUCTION.pdfKamal Acharya
 
Kamal report file
Kamal report fileKamal report file
Kamal report fileEr Kamal G
 
J2ee project lists:-Mumbai Academics
J2ee project lists:-Mumbai AcademicsJ2ee project lists:-Mumbai Academics
J2ee project lists:-Mumbai AcademicsMumbai Academisc
 
Instant message
Instant  messageInstant  message
Instant messagekplshrm222
 
Documentation project of college management [1]
Documentation project of college management [1]Documentation project of college management [1]
Documentation project of college management [1]Priyaranjan Verma
 

Similaire à PROJECT ARRANGED (FINAL) (20)

online news portal system
online news portal systemonline news portal system
online news portal system
 
11.online library management system
11.online library management system11.online library management system
11.online library management system
 
Mca(.net & java) application projects abstracts(v)
Mca(.net & java) application projects abstracts(v)Mca(.net & java) application projects abstracts(v)
Mca(.net & java) application projects abstracts(v)
 
44478167 hospital-management-system
44478167 hospital-management-system44478167 hospital-management-system
44478167 hospital-management-system
 
Online compliant response system for corporation
Online compliant response system for corporationOnline compliant response system for corporation
Online compliant response system for corporation
 
235429094 jobportal-documentation
235429094 jobportal-documentation235429094 jobportal-documentation
235429094 jobportal-documentation
 
IRJET- Voice based Email Application for Blind People
IRJET-  	  Voice based Email Application for Blind PeopleIRJET-  	  Voice based Email Application for Blind People
IRJET- Voice based Email Application for Blind People
 
Job portal
Job portalJob portal
Job portal
 
OS Password-Manager-Report.docx
OS Password-Manager-Report.docxOS Password-Manager-Report.docx
OS Password-Manager-Report.docx
 
Ignou MCA 6th Semester Synopsis
Ignou MCA 6th Semester SynopsisIgnou MCA 6th Semester Synopsis
Ignou MCA 6th Semester Synopsis
 
MIS330FinalReport
MIS330FinalReportMIS330FinalReport
MIS330FinalReport
 
According To The Author Of “Build A Streamlined Refinery”,
According To The Author Of “Build A Streamlined Refinery”,According To The Author Of “Build A Streamlined Refinery”,
According To The Author Of “Build A Streamlined Refinery”,
 
Chapter_1_INTRODUCTION.pdf
Chapter_1_INTRODUCTION.pdfChapter_1_INTRODUCTION.pdf
Chapter_1_INTRODUCTION.pdf
 
Chapter_1_INTRODUCTION.pdf
Chapter_1_INTRODUCTION.pdfChapter_1_INTRODUCTION.pdf
Chapter_1_INTRODUCTION.pdf
 
Kamal report file
Kamal report fileKamal report file
Kamal report file
 
J2ee project lists:-Mumbai Academics
J2ee project lists:-Mumbai AcademicsJ2ee project lists:-Mumbai Academics
J2ee project lists:-Mumbai Academics
 
ESB Overview
ESB OverviewESB Overview
ESB Overview
 
Bright copy
Bright   copyBright   copy
Bright copy
 
Instant message
Instant  messageInstant  message
Instant message
 
Documentation project of college management [1]
Documentation project of college management [1]Documentation project of college management [1]
Documentation project of college management [1]
 

PROJECT ARRANGED (FINAL)

  • 1. 1 CHAPTER ONE BACKGROUND INFORMATION AND PROBLEM SETTINGS 1.1 BACKGROUND TO THE STUDY An Intranet Mailing system is designed to provide a communication channel inside an organization between different clients (Organization staff) on the network. The main objective of the project is to develop a fully functional Intranet Mailing System that enhances communications among the members of the organization in a reliable, cost-effective and secure way. Thus it helps the organization to improve the performance of its teams in the corporate sector. Intra Mailing system allows organizations with intranet to exchange emails internally without the need of an Internet connection, in which text is usually transmitted, users are allowed to communicate under specified conditions, messages are held in storage until called for by addressee. Operations include sending, storing, processing, and receiving information. 1.2 STATEMENT OF PROBLEM (PROBLEM DEFINITION) The existing mailing communication system at Kumo consults is a traditional 2- tier architecture where there is only the server and the client. In this case, the server was only a data base server that can only offer data. Therefore most of the business logic and validations had to be placed on the clients system. This process therefore makes the maintenance of this system very expensive. This also means that every client has to be trained as to how to use the application. Some of the problems identified with the current system include: a. It is expensive to maintain b. It performs logic on client system
  • 2. 2 c. It increases stress on network (load) d. Logic application cannot be re-used because it is bound to an individual system e. It is highly prone to error f. It is time consuming g. Data stored on client can easily be hacked or accessed by unauthorized user. 1.3 MOTIVATION For Kumo Consult to fully achieve its vision as the most preferred construction company and to compete globally, it has to fully harness the use of technology, and in this case, it’s mailing system. But the mailing system the company currently uses cannot help them to achieve the vision. And so the need for this research, that communication can flow freely and timely among the work force, which will result to quick performance and high result. 1.4 AIMS & OBJECTIVES The main advantage of the Intra mail system will be its security feature allowing only registered users to access the system and preventing any hackers, unauthorized users. As the access is only restricted to the people registered within the organization itself and information is transferred within the organization itself, and all this transformation will be up to some limit so the data transformation will be fast. The user of Intra Mailing System will be given a unique login id and must give the correct password by the administrator. It will give total security for the company, so unauthorized user won’t have access to the messages.
  • 3. 3 The main objective of the Intra mail system is to create security feature allowing only members of the organization to access the system and preventing any hackers, unauthorized users. It is also aimed to send the mails spontaneously without requiring the parties be available at the same instant. It is much safer than the traditional 2-tier system. Therefore, the system is designed  To provide a communication channel inside an organization between different clients on the network.  To accept the mails from authorized users providing security.  To enhances communications among the members of the organization in a reliable, cost-effective and secure way 1.5 PURPOSE OF THE STUDY These days the organization is growing rapidly and is increasing in size also. So the organization is divided into departments. In the fast growing world the information is needed as fast as possible. This can be accomplished by passing the information quickly and securely. The security of information is not guaranteed in the traditional 2 tier systems, because the mails or information are stored in the clients. But it takes much time and risk also. So we need a system which is quick, accurate, secured and less expensive. This can be achieved by mailing system. Intra mailing system sends the mails spontaneously without requiring the parties be available at the same instant. Furthermore mails can be sent to more people at the same time. It also leaves a written copy of the sending mails that can file away. It is much cheaper than the traditional 2 tier system.
  • 4. 4 1.6 SIGNIFICANCE OF THE STUDY In the new mailing system, each employee can Log-in himself/herself and send mails to any other employee and they can establish communication and perform the assigned tasks in less time. Also the employees do not have to pay for the mails but can avail this facility free of cost. The mail that the employee sends reaches the destination in little or no time. Although the Intranet mailing system works in similar fashion as that of an Internet mailing system, but here there is no need to get an Internet connection for this mailing system. The various branches of the organization can be connected to a single host server and then an employee of one branch can send a message to the employee of another branch through the server. 1.7 ORGANIZATION OF THE WORK Project Modules The Intranet Mailing System is applicable to this fast growing world where every qualified person is in urgent need of job, they join places, working at odd times. The organization have shift systems and it becomes difficult for an employee of one shift to communicate with another employee on a different shift. In these circumstances the Intranet Mailing System proves its worth, if the organization has an Intranet Mailing facility available to all its employees then each employee can send mails to any other employee and thus making the communication easier. No necessity of paying money for the mailing facility (i.e. free of cost). The mails that the employees send reach the destination with less time than internet. Although the intranet Mailing System works in a similar fashion as that of an Internet Mailing System, there is no need to get an Internet connection for our mailing system. The various branches of the organization can be connected to a single host server and then an employee of within organization can only use
  • 5. 5 this facility. In one branch can send a message to an- employee of another branch through the server. Project Plan A project plan is a view of a whole project. It is the fundamental plan which provides a statement of how and when a project’s objective is to be achieved, by showing the major products, activities and resources required on a project. ACTIVITY REFERENCE DEPENDENT ON DURATION IN DAYS Orientation and Selection of client A None 14 Study the current system B A 12 Choosing a programming language C B 1 Learning a programming language D C 10 Choosing a compatible database E B,C 1 Designing the databases and system various systems interface F B, C 10 Coding for the new system G C, F 12 Testing and Debugging H G 7 Launch I H 1
  • 6. 6 CHAPTER TWO LITERATURE REVIEW 2.1 SYSTEMS DEVELOPMENT METHODOLOGIES Before this system is built, one crucial step would be deciding which software development approach is the most appropriate to use. In this section different methodologies were analysed and the one which is most appropriate for this project was chosen. SPIRAL MODEL The spiral model is a software development process combining elements of both design and prototyping-in-stages, in an effort to combine advantages of top-down and bottom-up concepts. Also known as the spiral lifecycle model (or spiral development), it is a systems development method (SDM) used in information technology (IT). This model of development combines the features of the prototyping model and the waterfall model. The spiral model is intended for large, expensive and complicated projects. This should not be confused with the Helical model of modern systems architecture that uses a dynamic programming (mathematical not software type programming!) approach in order to optimise the system's architecture before design decisions are made by coders that would cause problems. The spiral model combines the idea of iterative development (prototyping) with the systematic, controlled aspects of the waterfall model. It allows for incremental releases of the product, or incremental refinement through each time around the spiral. The spiral model also explicitly includes risk management within software development. Identifying major risks, both technical and managerial, and determining how to lessen the risk helps keep the software development process under control.
  • 7. 7 The spiral model is based on continuous refinement of key products for requirements definition and analysis, system and software design, and implementation (the code). At each iteration around the cycle, the products are extensions of an earlier product. This model uses many of the same phases as the waterfall model, in essentially the same order, separated by planning, risk assessment, and the building of prototypes and simulations. Documents are produced when they are required, and the content reflects the information necessary at that point in the process. All documents will not be created at the beginning of the process, nor all at the end (hopefully). Like the product they define, the documents are works in progress. The idea is to have a continuous stream of products produced and available for user review. The spiral lifecycle model allows for elements of the product to be added in when they become available or known. This assures that there is no conflict with previous requirements and design. This method is consistent with approaches that have multiple software builds and releases and allows for making an orderly transition to a maintenance activity. Another positive aspect is that the spiral model forces early user involvement in the system development effort. For projects with heavy user interfacing, such as user application programs or instrument interface applications, such involvement is helpful. Starting at the center, each turn around the spiral goes through several task regions determine the objectives, alternatives, and constraints on the new iteration. Evaluate alternatives and identify and resolve risk issues. Develop and verify the product for this iteration. Plan the next iteration. The requirements activity takes place in multiple sections and in multiple iterations, just as planning and risk analysis occur in multiple places. Final design, implementation, integration, and test occur in iteration 4. The spiral can be repeated multiple times for multiple builds. Using this method
  • 8. 8 of development, some functionality can be delivered to the user faster than the waterfall method. The spiral method also helps manage risk and uncertainty by allowing multiple decision points and by explicitly admitting that all of anything cannot be known before the subsequent activity starts. APPLICATIONS For a typical shrink-wrap application, the spiral model might mean that you have a rough-cut of user elements (without the polished / pretty graphics) as an operable application, add features in phases, and, at some point, add the final graphics. The Spiral model is used most often in large projects and needs constant review to stay on target. For smaller projects, the concept of agile software development is becoming a viable alternative. Advantages Estimates (i.e. budget, schedule, etc.) get more realistic as work progresses, because important issues are discovered earlier. It is more able to cope with the (nearly inevitable) changes that software development generally entails. Software engineers (who can get restless with protracted design processes) can get their hands in and start working on a project earlier. The steps in the spiral model can be generalized as follows: The new system requirements are defined in as much detail as possible. This usually involves interviewing a number of users representing all the external or internal users and other aspects of the existing system. A preliminary design is created for the new system.
  • 9. 9 A first prototype of the new system is constructed from the preliminary design. This is usually a scaled-down system, and represents an approximation of the characteristics of the final product. A second prototype is evolved by a fourfold procedure: (1) evaluating the first prototype in terms of its strengths, weaknesses, and risks; (2) defining the requirements of the second prototype; (3) planning and designing the second prototype; (4) constructing and testing the second prototype. At the customer's option, the entire project can be aborted if the risk is deemed too great. Risk factors might involve development cost overruns, operating-cost miscalculation, or any other factor that could, in the customer's judgment, result in a less-than-satisfactory final product.  The existing prototype is evaluated in the same manner as was the previous prototype, and, if necessary, another prototype is developed from it according to the fourfold procedure outlined above.  The preceding steps are iterated until the customer is satisfied that the refined prototype represents the final product desired.  The final system is constructed, based on the refined prototype.  The final system is thoroughly evaluated and tested. Routine maintenance is carried out on a continuing basis to prevent large-scale failures and to minimize downtime. PROTOTYPE MODEL A prototype is an early sample or model built to test a concept or process or to act as a thing to be replicated or learned from. The word prototype derives from the Greek prototypon. The Prototyping Model is a systems development method (SDM) in which a prototype (an early approximation of a final system or product)
  • 10. 10 is built, tested, and then reworked as necessary until an acceptable prototype is finally achieved from which the complete system or product can now be developed. This model works best in scenarios where not all of the project requirements are known in detail ahead of time. It is an iterative, trial-and-error process that takes place between the developers and the users. In many fields, there is great uncertainty as to whether a new design will actually do what is desired. New designs often have unexpected problems. A prototype is often used as part of the product design process to allow engineers and designers the ability to explore design alternatives, test theories and confirm performance prior to starting production of a new product. Engineers use their experience to tailor the prototype according to the specific unknowns still present in the intended design. For example, some prototypes are used to confirm and verify consumer interest in a proposed design whereas other prototypes will attempt to verify the performance or suitability of a specific design approach. In general, an iterative series of prototypes will be designed, constructed and tested as the final design emerges and is prepared for production. With rare exceptions, multiple iterations of prototypes are used to progressively refine the design. A common strategy is to design, test, evaluate and then modify the design based on analysis of the prototype. In many products it is common to assign the prototype iterations Greek letters. For example, a first iteration prototype may be called an "Alpha" prototype. Often this iteration is not expected to perform as intended and some amount of failures or issues are anticipated. Subsequent prototyping iterations (Beta, Gamma, etc.) will be expected to resolve issues and perform closer to the final production intent. In many product development organizations, prototyping specialists are employed - individuals with specialized skills and training in general fabrication
  • 11. 11 techniques that can help bridge between theoretical designs and the fabrication of prototypes. Basic prototype categories There is no general agreement on what constitutes a "prototype" and the word is often used interchangeably with the word "model" which can cause confusion. In general, "prototypes" fall into five basic categories: Proof-of-Principle Prototype (Model) (in electronics sometimes built on a breadboard). A Proof of concept prototype is used to test some aspect of the intended design without attempting to exactly simulate the visual appearance, choice of materials or intended manufacturing process. Such prototypes can be used to "prove" out a potential design approach such as range of motion, mechanics, sensors, architecture, etc. These types of models are often used to identify which design options will not work, or where further development and testing is necessary. Form Study Prototype (Model). This type of prototype will allow designers to explore the basic size, look and feel of a product without simulating the actual function or exact visual appearance of the product. They can help assess ergonomic factors and provide insight into visual aspects of the product's final form. Form Study Prototypes are often hand-carved or machined models from easily sculpted, inexpensive materials (e.g., urethane foam), without representing the intended colour, finish, or texture. Due to the materials used, these models are intended for internal decision making and are generally not durable enough or suitable for use by representative users or consumers. User Experience Prototype (Model). A User Experience Model invites active human interaction and is primarily used to support user focused research. While intentionally not addressing possible aesthetic treatments, this type of model does more accurately represent the overall size, proportions, interfaces, and
  • 12. 12 articulation of a promising concept. This type of model allows early assessment of how a potential user interacts with various elements, motions, and actions of a concept which define the initial use scenario and overall user experience. As these models are fully intended to be used and handled, more robust construction is key. Materials typically include plywood, REN shape, RP processes and CNC machined components. Construction of user experience models is typically driven by preliminary CAID/CAD which may be constructed from scratch or with methods such as industrial CT scanning. Visual Prototype (Model) will capture the intended design aesthetic and simulate the appearance, colour and surface textures of the intended product but will not actually embody the function(s) of the final product. These models will be suitable for use in market research, executive reviews and approval, packaging mock- ups, and photo shoots for sales literature. Functional Prototype (Model) (also called a working prototype) will, to the greatest extent practical, attempt to simulate the final design, aesthetics, materials and functionality of the intended design. The functional prototype may be reduced in size (scaled down) in order to reduce costs. The construction of a fully working full-scale prototype and the ultimate test of concept is the engineers' final check for design flaws and allow last-minute improvements to be made before larger production runs are ordered. It is possible to use prototype testing to reduce the risk that a design may not perform acceptably, however prototypes generally cannot eliminate all risk. There are pragmatic and practical limitations to the ability of a prototype to match the intended final performance of the product and some allowances and engineering judgement are often required before moving forward with a production design. Building the full design is often expensive and can be time-consuming, especially when repeated several times—building the full design, figuring out what the
  • 13. 13 problems are and how to solve them, then building another full design. As an alternative, "rapid-prototyping" or "rapid application development" techniques are used for the initial prototypes, which implement part, but not all, of the complete design. This allows designers and manufacturers to rapidly and inexpensively test the parts of the design that are most likely to have problems, solve those problems, and then build the full design. This counter-intuitive idea —that the quickest way to build something is, first to build something else— is shared by scaffolding and the telescope rule Advantages of prototyping May provide the proof of concept necessary to attract funding Early visibility of the prototype gives users an idea of what the final system looks like Encourages active participation among users and producer Enables a higher output for user Cost effective (Development costs reduced). Increases system development speed Assists to identify any problems with the efficacy of earlier design, requirements analysis and coding activities Helps to refine the potential risks associated with the delivery of the system being developed Various aspects can be tested and quicker feedback can be got from the user Helps to deliver the product in quality easily User interaction available during development cycle of prototype
  • 14. 14 Disadvantages of prototyping Producer might produce a system inadequate for overall organization needs User can get too involved whereas the program cannot be to a high standard Structure of system can be damaged since many changes could be made Producer might get too attached to it (might cause legal involvement)[verification needed] Not suitable for large applications Over long periods, can cause loss in consumer interest and subsequent cancellation due to a lack of a market (for commercial products). There are several steps in the Prototyping Model: 1. The new system requirements are defined in as much detail as possible. This usually involves interviewing a number of users representing all the departments or aspects of the existing system. 2. A preliminary design is created for the new system. 3. A first prototype of the new system is constructed from the preliminary design. This is usually a scaled-down system, and represents an approximation of the characteristics of the final product. 4. The users thoroughly evaluate the first prototype, noting its strengths and weaknesses, what needs to be added, and what should to be removed. The developer collects and analyzes the remarks from the users. 5. The first prototype is modified, based on the comments supplied by the users, and a second prototype of the new system is constructed.
  • 15. 15 6. The second prototype is evaluated in the same manner as was the first prototype. 7. The preceding steps are iterated as many times as necessary, until the users are satisfied that the prototype represents the final product desired. 8. The final system is constructed, based on the final prototype. 9. The final system is thoroughly evaluated and tested. Routine maintenance is carried out on a continuing basis to prevent large-scale failures and to minimize downtime. INCREMENTAL MODEL The Incremental model combines elements of the linear sequential model with the iterative philosophy of the prototyping. This model has been explicitly designed to accommodate a product that evolves over time. When an incremental model is used, the first increment is often a core product. The core product is used by the customer or undergoes a detailed review. As a result of use and/or evaluation a plan is developed for the next increment. The plan addresses the modification to the core product to better meet the needs of the customer and delivery of additional features and functionality. Software is constructed in a step-by-step manner. While a software product is being developed, each step adds to what has already been completed. Advantages of Incremental Model •System is developed and delivered in increments after establishing an overall architecture. •Requirements and specifications for each increment may be developed.
  • 16. 16 •Users may experiment with delivered increments while others are being developed. •Intended to combine some of the advantages of prototyping but with a more manageable process and better system structure. •Incremental development is especially useful when staffing us unavailable for a complete implementation by the business deadline. •Early increments can be implemented with fewer people. When you encounter a difficult deadline that cannot be changed the incremental model is a good paradigm to consider. WATERFALL MODEL The waterfall model is a popular version of the systems development life cycle model for software engineering. Often considered the classic approach to the systems development life cycle, the waterfall model describes a development method that is linear and sequential. Waterfall development has distinct goals for each phase of development. Imagine a waterfall on the cliff of a steep mountain. Once the water has flowed over the edge of the cliff and has begun its journey down the side of the mountain, it cannot turn back. It is the same with waterfall development. Once a phase of development is completed, the development proceeds to the next phase and there is no turning back. The advantage of waterfall development is that it allows for departmentalization and managerial control. A schedule can be set with deadlines for each stage of development and a product can proceed through the development process like a car in a carwash, and theoretically, be delivered on time. Development moves from concept, through design, implementation, testing, installation,
  • 17. 17 troubleshooting, and ends up at operation and maintenance. Each phase of development proceeds in strict order, without any overlapping or iterative steps. The disadvantage of waterfall development is that it does not allow for much reflection or revision. Once an application is in the testing stage, it is very difficult to go back and change something that was not well-thought out in the concept stage. Alternatives to the waterfall model include joint application development (JAD), rapid application development (RAD), synch and stabilize, build and fix, and the spiral model. V MODEL 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. Requirements analysis In the Requirements analysis phase, the requirements of the proposed system are collected by analysing 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.
  • 18. 18 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. See also Functional requirements. 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.
  • 19. 19 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. The unit test design is developed in this stage. 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
  • 20. 20 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 test1.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. 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.
  • 21. 21 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. 2.2 METHODOLOGY OF CHOICE After a critical analysis of the available methodologies for developing software, and the ones described above, the V- model of software development has been chosen for this project. This demonstrates the relationships between each phase of the development life cycle and its associated phase of testing. Its Components can be easily tested and debug during smaller iterations of development and finally it is easier to manage risk because all risky pieces can be identified early and are handled during iteration. Why not the other methodologies The Spiral model is not the appropriate methodology for this project because it is risk-oriented. There is also no clear end point to the implementation of the system. This will therefore lead to unnecessary work being done. Prototyping is
  • 22. 22 not appropriate for this project because it would involve the end user to give up their time to review and feedback on the system. The waterfall model can also not be used because there is no feedback between the phases. Once analysis is finished, work on analysis is finished, once design is done it is done and so on. There are no completion criteria for either analysis or design within this methodology. 2.3 SOFTWARE REQIUREMENTS The Graphical interface (Front End) of the application is prepared by the usage of PHP. The back end of the application is maintained in MySQL database server. Information Source is Management Information System PHP PHP is a general-purpose scripting language originally designed for web development to produce dynamic web pages. For this purpose, PHP code is embedded into the HTML source document and interpreted by a web server with a PHP processor module, which generates the web page document. It also has evolved to include a command-line interface capability and can be used in standalone graphical applications. PHP can be deployed on most web servers and as a standalone interpreter, on almost every operating system and platform free of charge. PHP was originally created by Rasmus Lerdorf in 1995. The main implementation of PHP is now produced by The PHP Group and serves as the de facto standard for PHP as there is no formal specification. PHP is free software released under the PHP License which is incompatible with the GNU General Public License (GPL) due to restrictions on the usage of the term PHP. While PHP originally stood for "Personal Home Page", it is now said to stand for "PHP: Hypertext Pre-processor. PHP is mainly focused on server-side scripting, so you can do anything any other CGI program can do, such as collect form data,
  • 23. 23 generate dynamic page content, or send and receive cookies. But PHP can do much more. There are three main areas where PHP scripts are used.  Server-side scripting. This is the most traditional and main target field for PHP. You need three things to make this work. The PHP parser (CGI or server module), a web server and a web browser. You need to run the web server, with a connected PHP installation. You can access the PHP program output with a web browser, viewing the PHP page through the server. All these can run on your home machine if you are just experimenting with PHP programming.  Command line scripting. You can make a PHP script to run it without any server or browser. You only need the PHP parser to use it this way. This type of usage is ideal for scripts regularly executed using cron (on *nix or Linux).These scripts can also be used for simple text processing tasks ADVANTAGES OF PHP PHP (Hypertext Pre-Processor) is a server-side web programming language that is widely used for web development. However, here are many languages which are used for web development or web programming. But among all of them PHP is the most popular web scripting language. So, PHP is widely used for web development…  PHP language has its roots in C and C++. PHP syntax is most similar to C and C++ language syntax. So, programmers find it easy to learn and manipulate.MySQL is used with PHP as back-end tool.  MySQL is the popular online database and can be interfaced very well with PHP. Therefore, PHP and MySQL are excellent choice for webmasters looking to automate their web sites.
  • 24. 24  PHP can run on both UNIX and Windows servers.  PHP also has powerful output buffering that further increases over the output flow.  PHP internally rearranges the buffer so that headers come before contents.  PHP is dynamic. PHP works in combination of HTML to display dynamic elements on the page. PHP only parses code within its delimiters, such as. Anything outside its delimiters is sent directly to the output and not parsed by PHP.  PHP can be used with a large number of relational database management systems, runs on all of the most popular web servers and is available for many different operating systems.  PHP5 a fully object oriented language and its platform independence and speed on Linux server helps to build large and complex web applications.  In general PHP is cheap, secure, fast and reliable for developing web applications. 2.4 HARDWARE REQUIREMENT Hardware is also referred to as computing potential. In this project, three hardware categories have been considered during software planning:  DEVELOPMENT SYSTEM, which is a computer and related peripherals that will be used during the software development hase. The development system has been used because it can accommodate multiple users, maintain large volumes of information and support a rich assortment of software tools.  TARGET MACHINE on which the software will eventual is executed.  OTHER HARDWARE ELEMENTS OF THE NEW SYSTEM.
  • 25. 25 SYSTEM SPECIFICATION Software Specification Operating platform : windows NT/2000/XP/2003/Vista/7 DBMS :MySQL Programming platform: PHP Software : Microsoft Visio 2000 . Browser : Internet Explorer WEBSERVER: Wamp Hardware requirement specification: Personal Computer, Intel Pentium (tm), Dual Core - 2.00GHz Processor, 2GB of Ram, 320gb Hard disk Drive 2.5 Database Management System A database management system (DBMS), sometimes just called a database manager, is a program that lets one or more computer users create and access data in a database. The DBMS manages user requests (and requests from other programs) so that users and other programs are free from having to understand where the data is physically located on storage media and, in a multi-user system, who else may also be accessing the data. In handling user requests, the DBMS ensures the integrity of the data (that is, making sure it continues to be accessible and is consistently organized as intended) and security (making sure only those with access privileges can access the data). The interactions catered for by most existing DBMS falls into four main groups”. These are:
  • 26. 26  Data definition: This aspect of the DBMS defines new data structures for a database, removing data structures from the database, modifying the structure of existing data.  Data maintenance: this defines how new data is inserted into an existing data structure, updating data in existing data structures and deleting data from existing data structure.  Data retrieval: this aspect defines how users query existing data structures and also extracting data for use by application programs.  Data control: this aspect deals with creating and monitoring users of a database, restricting access to the database and the monitoring of performance of databases. Examples of database management systems: Access Access is a personal database system from Microsoft. It is a visually oriented software product, making it easy for non-programmers to develop useful databases. While the Access database structure can scale up to serve corporate needs, the most common use for this database is for small individual databases or limited-use multiuser programs. It integrates the Visual Basic for Applications language, making it a complete development environment. Visual FoxPro FoxPro is a relational database system, also produced by Microsoft, that is tightly coupled to its programming language. FoxPro is less friendly as an end-user database, requiring more technical expertise then Access. This database system is known for its fast processing engine and the ability to handle numerous simultaneous transactions.
  • 27. 27 MySQL Database MySQL is a server-based database that enables multiple users to access multiple databases. The software runs on multiple platforms, including most varieties of UNIX and Windows. It offers limited front-end usability, and is designed as a back-end database server. MySQL separates from other database products and their costs; the non-enterprise version is distributed for free. MySQL is the world most popular open source database management system (RDBMS). MySQL stands for “My Structured Query language”. It runs as a server and provides a multi user accesses to a number of databases (Wikipedia, n.d). It is compatible with many operating systems including Windows, Linux, and Mac and. It also handles large amounts of data and provides security through user authorization and access privileges. MySQL is own and developed by Sun Microsystems, one of the world’s largest contributors to open source software and finally all programming languages with language-specific APIs include libraries for accessing MySQL databases SQL Server SQL Server is an enterprise-level scalable database server. This product differs from the personal database in that it doesn't provide the front-end tools that an individual database product would provide. The database engine focuses on quickly responding to client requests in the form of SQL queries. These queries can be generated directly in SQL Server, or through a separate user interface developed in a multitude of programming languages. SQL Server is designed to handle databases with millions of records. Oracle The Oracle database is another enterprise-level scalable database. The SQL- based database supports distributed corporate databases, enabling the user to access data locally or from remote databases in a transparent transaction.
  • 28. 28 Distributed databases help to overcome the physical limitations of a physical computing environment. The maximum database size for an Oracle database is 8 million terabytes, requiring physical storage beyond the capacity of most single installations. Choice of DBMS for the new system I have decided to use MySQL for the design of the database for Kumo Consult Intra Mailing System development.
  • 29. 29 CHAPTER THREE ANALYSIS AND DESIGN 3.1 Fact Finding Most times, fact finding is carried out by system analyst. This is aimed at producing a description of the current system and using this together with the requirements, to build the logical required system model. The first stage of fact finding and analysis of current system is referred to as investigation. During fact finding the analyst is often verifying data collected by one method against similar collected data by another method, and if these data agree, these probably has a fact. One major problem of fact finding is perception. One person may perceive a situation in one way whereas another may perceive the same information in a completely different way. Useful information a system analyst should consider during fact finding will include:  How is the organization structured? Who holds key responsibilities in these areas, their style of management and the interest in the current investigation?  Previous studies that may have been carried out and their outcome: were the results accepted or turned down, and why? 3.2 Investigation Investigation would be started at KUMO Consults head office and then to the site offices to research on the system to understand what is done, how it is done and who does what.
  • 30. 30 Methods Chosen For Investigation Observation: Observation can be both formal and informal. Formal observation involves a planned and conscious approach of watching an operation or procedure for a specific period. Informal observation is not a planned observation therefore requires the analyst to be alert all the time to be able to gather information. In the cause of this project I adopted the formal way of observation. I spent some time in the construction sites of the KUMO Consults and observed information is passed from one site office to the other, I observed how communication is carried out between departments, one staff member to another. Enquires  Interviewing: The staff members will have one on one question and answer session with the development team. Example:  What kind of function do they expect the system to perform?  Their various views about how the problem of the existing system can be fixed.  Questionnaires: Question to be asked during interviews can be bulleted on a question form and submitted to the site manager or staff member to answer and return to the developments team. Some problems faced during fact finding  Some persons were not ready to answer questions asked them  Some did not embrace the idea of building a new system because they were scared they will lose their jobs  Many of the Questionnaires were not returned  Some employees were not there on their interview dates
  • 31. 31 3.3 DESCRIPTION OF CURRENT SYSTEM: The existing mailing communication system at Kumo consults is a traditional 2-tier architecture where there is only the server and the client. In this case, the server was only a data base server that can only offer data. Therefore most of the business logic and validations had to be placed on the clients system. This process therefore makes the maintenance of this system very expensive. This also means that every client has to be trained as to how to use the application. REQUEST RECEIVE (TEXT OR GRAPHICS) 1ST TIER 2ND TIER 3.4 ANALYSIS OF CURRENT SYSTEM: This traditional 2-tier architecture has only the server and the client, in which the server was only a data base server that can only offer data. Since the actual processing of the data takes place on the remote client the data has to be transported over the network. As a rule this leads to increased network stress (Load). The conduct of transactions is controlled by the client. Advanced techniques like two-phase-committing can’t be run. Personal computers are considered to be "un-trusted" or “unsafe” in terms of security, i.e. they are relatively easy to crack or hacked into. Nevertheless, sensitive data is transferred to the PC, for lack of an alternative. CLIENT http SERVER
  • 32. 32 Application logic can’t be re-used because it is bound to an individual PC- program. The 2-tier-model implies a complicated software-distribution-procedure: as all of the application logic is executed on the PC, all those machines (maybe thousands) have to be updated in case of a new release. This can be very expensive, complicated, prone to error and time consuming. Distribution procedures include the distribution over networks (perhaps of large files) or the production of an adequate media like floppies or CDs. Once it arrives at the user’s desk, the software first has to be installed and tested for correct execution. Due to the distributed character of such an update procedure, system management cannot guarantee that all clients work on the correct copy of the program. To offset the above mentioned problems, 3-tier architecture is proposed. A middle ties called as the application server is introduced. This is also known as the Web server. And in turn these short comings of the traditional two- design have given rise for the need for mailing system. 3.5 SOFTWARE AND HARDWARE REQUIREMENT SPECIFICATION: Software Requirements Specification plays an important role in creating quality software solutions. Specification is basically a representation process. Requirements are represented in a manner that ultimately leads to successful software implementation. Requirements may be specified in a variety of ways. However there are some guidelines worth following: - • Representation format and content should be relevant to the problem • Information contained within the specification should be nested • Diagrams and other notational forms should be restricted in number and consistent in use. • Representations should be revisable.
  • 33. 33 3.6 RESOURCES NEEDED FOR THE DEVELOPMENT OF AN INTRA MAILING SYSTEM The project is expected to make use of hardware and software that is freely available to me at all times.  Hardware Personal Computer, Intel Pentium (tm), Dual Core - 2.00GHz Processor, 2 GB of Ram, 320 Gb Harddisk Drive  Software Operating platform : windows NT/2000/XP/2003/Vista/7 DBMS :MySQL Programming platform: PHP Software : Microsoft Visio 2000 . Browser : Internet Explorer Hardware requirement specification: PROCESSOR : Pentium IV WEB SERVER : WAMP Possible Risk that could be faced during the design of the new system  Clients may be difficult to manage.  Certain entities such as users may try to sabotage the development of the system  Virus attacks can cause the loss of data.  Power failure will result in hardware and software failure.
  • 34. 34 3.7 REQUIREMENT SPECIFICATION OF THE NEW SYSTEM FUNCTIONAL REQUIREMENTS:  ADMINISTRATOR: In administrator module, we have five options: Generate User: Creating a new User account. Input: user id and password. Output: User added to database. Edit User Information: Changing Login and Password. Input: ID, New Password, Confirm Password. Output: Changed Information. Delete User: Removing a user entry from the database. Input: User Id, and Password of the user to be deleted from the database. Output: User entry removed. Check Mail: Shows mail stored. Input: Request from user to check his mail. Output: Mails of the user. Sendl: Send mail to the appropriate user. Input: User Id. Output: Mail sent. Login: to check the authenticate administrator. Input: Login Id and Password.
  • 35. 35 Output: Valid or invalid message.  USER: In administrator module, we have Send Mail: Send mail to user in organization. Input: user id to whom he wants to send mail. Output: Mail sent. Check Mail: Shows mail stored. Input: Request from user to check his mail and delete the Read the read mail. Output: mails to the users after checking or deleting his Mail. USER CHARACTERISTICS ADMINISTRATOR: WHO ADMINISTRATOR WHAT  Creating a new user account.  Delete a user account.  Change the password of the user. WHEN  Whenever there is a request from the user to  Change password  To create a new user account.
  • 36. 36  And delete the user account whenever he thinks to be necessary HOW By just clicking on the appropriate option on the form. WHERE From his current location, on his PC. USER: WHO USER/CLIENT WHAT  Can check his mail  Can send mail to another user whose user id is there in the organization.  Can delete the unnecessary mails. HOW By selecting the appropriate option on the form. WHERE From his on PC, sitting at his on location
  • 37. 37 3.8 DESIGN AND IMPLEMENTATION System design is the process of planning a new system to complement or altogether replace old systems. System design can be defined to have three different activities in it. They are • External Design • Architectural design • Detailed Design Architectural design and detailed design collectively called as internal design. EXTERNAL DESIGN: External design of a software involves conceiving, planning and specify the external observably characteristics of the software products. External design includes user report format, external data sources and data links. This design begins during analyze phase and continuous to the design phase. The external design gives the actual data flow from one system to other system. It also shows the relation of the current system to outside the world. It shows what the inputs, outputs are. Here the external design is conveyed to the user by using the browser. The external design also includes user responses, report format, data source and data links. Errors are easily traced out during the external design. Once external design in completed a more detailed explanation of the parts identified, as part of external design will lead to easy understanding of the internal working of the system. Avoiding errors in the external design will not lead to the hard failures during the time interval design. INTERNAL DESIGN: Internal design activities are actually constituted in two different activities. • Architectural Design • Detailed Design
  • 38. 38 Internal design involves planning, specifying the internal structure and processing details of the software product. Architectural design is concerned with the refining conceptual view of the system, identifying internal processing, functions, decomposing, high level functions into sub overall performance of the software products. Use of objects in the "Electronic Mail Service" leaves you with a more comfortable programming technique. Designing of an object for each identified entity results in reducing, repetitive coding and increases efficiency. 3.9 INTRA MAILING SYSTEM DESCRIPTION This project deals with the Mailing System. This project is having two (2) different modules which are  Administrator  Users. Administrator In administrator module we have four options. 1. Generate User. 2. Delete User. 3. Check Mail. 4. Send Mail. When the administrator select the option generate user, he will creates a new user id and password for the new user. When the administrator selects the option Delete User, he will delete an existing user if not necessary. When the administrator selects the send mail option, then the form will be opened for sending mail. Then the admin send mail to any other user who has a user id in the organization. In check mail option, the admin check for the mails. If
  • 39. 39 the user has any mails, then the mails are displayed. He will check the mails and delete the unnecessary mails. If the user has no mails then the message “No Mails” is displayed. When the admin selects the show user’s option, Fig 1: showing the general login page
  • 40. 40 Fig 2: showing administrator’s interface for creating new employee ID Fig 3: Administrator’s Interface for Composing Mail
  • 41. 41 User: In user module we have two options. 1. Send Mail. 2. Check Mail. When the user selects the send mail option, then the form will be opened for sending mail. Then the user can send mail to any other user who has a user id in the organization. In check mail option, the user can check for the mails. If the user has any mails, then the mails are displayed. He will check the mails and can delete the unnecessary mails. If the user has no mails then the message No Mails is displayed. User Menu: Provides a way to give any commands to the mail server. The options include in the menu are Compose Inbox Sent Messages Logout Fig 4: showing user Mail interface
  • 42. 42 Compose Screen: This screen is obtained when the user selects the compose option from the mail folder. The fields in this screen are: To: Here the primary receiver's address is to be selected Subject: Here the primary receiver's address is to be entered. Fig 5: showing the compose screen Mail text to be sent: This is the text area where the actual mail data has to be sent. Send:This is a button, used to send the mail. Inbox: If the user selects this option on the user menu the corresponding inbox of the user will be displayed. To read the different mails one option is provided as a subject by clicking on the subject place the corresponding mail will be displayed. Sent Messages: Using these options user can select different messages which are all ready sent earlier. This is for the purpose to know which message is sent to whom.
  • 43. 43 Delete: Can be selected to delete the current address. User name: Here User id of the address holder is to be entered. Logout: By clicking this option the login session of the user will expire. If you want to re-enter in to the site one more option is to be provided, if u want sign out completely one more option is provided to sign out completely that is to logout the use completely from the site. Advantages: The user of Intranet Mailing System is given a unique login id and must give the correct password. It gives total security for us. So, unauthorized users can be prevented to see our messages. Even if the user forgets his/her password reminding facility by which the user can recollect the password and log into the system. The advantage of the Intra mail system is its security feature allowing only registered users to access the system and preventing any hackers, unauthorized users.
  • 44. 44 DATA AND SYSTEM DESIGN Data Dictionary a. EMPLOYEE INFORMATION: Fig 6: showing the data design of Employee information b. LOGIN INFO Fig 7: showing the login information data design
  • 45. 45 c. RECEIVED MAIL Fig 8: showing the Received Mail data design d. SENT MAIL Fig 9: showing the sent mail data design
  • 46. 46 DESIGN PHASE: Context Level DFD LOGIN INFO OF USERS SEND MAIL RECEIVE MAIL SEND MAIL CREATE ACCOUNT/ CHANGE PASSWORD /DELETE ACCOUNT Fig 10: Showing a context level DFD of the intra mailing system ADMINISTRATOR INTRA MAILING SYSTEM USER
  • 47. 47 Case Diagram Fig 11: A case diagram of the intra mailing system User Validate User Admin Create New User Grant Access Check Mail Send Mail Logout Delete Mail Reply Mail Edit Profile Validation
  • 48. 48 DFD Level 1: (Administrator) Fig 12: DFD Level 1 Login info Login info Validating User Successful Fetching info Userid Userid New user request Updating DB Savinginto DB Create New Account Edit Profile Delete User Reques t Validate Login Administrator UserAccepting Request Transferringrequest DATABASE(User_info)
  • 49. 49 DATA FLOW DIAGRAMS OF THE MAILING SYSTEM Client ClientMail Server 0.0 Request HTML page Context Diagram ( Zero Level Diagram). Mail SERVER Client Level 1 Diagram. Process Request Analyze Request 1.0 2.0 Req Req O/P Client Prepare response 3.0 Html page
  • 50. 50 Client Level 2 Diagram. Retrieve Req headers Start a Child proc. 1.1 1.2 Req Req Header Client Send the Request Type 1.3 File Client Web Server Identify the Request Type 1.3.1 Header GET Req Level 3 Diagram. Client Web Server Identify the Request Type 1.3.2 Header POST Req Level 3 Diagram.
  • 51. 51 Client Web Server Identify the Request Type 1.3.3 Header HTML Page Req Level 3 Diagram. Client Web Server Identify the Request Type 1.3.4 Header CGI Req Level 3 Diagram. Client Web Server Level 2 Diagram. Set Env.Analyze Request 2.1 2.2 Get Request Query String Q.S.
  • 52. 52 Client Web Server Level 2 Diagram. Set Env.Read from STDIN 2.3 2.4 Post Request Data Data Client Web Server Level 2 Diagram. Read FileOpen File 2.5 2.6 HTML Request File Header Data Cache File
  • 53. 53 Client Web Server Start Req Process 2.7 CGI Req Output Data Level 3 Diagram. CGI File Mail Server Level 2 Diagram. Retrieve Req headers Prepare Response 3.1 3.2 O/P Data Client S end the Request Type 3.3 File Send the Request Type 3.4 O/P Data O/P Data O/P Data
  • 57. 57 CHAPTER FOUR IMPLEMENTATION AND TESTING 4.1 Code samples Login Form code sample <?php header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); session_start(); $errormessage = 'Enter your Login Information'; if (isset($_POST['username']) && isset($_POST['password'])) { $username = $_POST['username']; $password = $_POST['password']; include('connect.php'); $sql = "SELECT em.emp_id, em.lname, em.fname, lg.login_id, lg.username, lg.password, lg.priv_level FROM employee_info AS em JOIN login_info AS lg ON lg.emp_id = em.emp_id WHERE lg.username = '$username' AND lg.password = '$password'"; $result = mysql_query($sql)
  • 58. 58 or die ('Could not execute query'); $row = mysql_fetch_array($result); if (mysql_num_rows($result) == 1) { if ($row['priv_level'] == 1) { $_SESSION['admin_logged_in'] = true; $_SESSION['emp_id'] = $row['emp_id']; $_SESSION['password'] = $_POST['password']; $_SESSION['lastname'] = $row['lname']; $_SESSION['firstname'] = $row['fname']; header('Location: admin.php'); exit; }elseif($row['priv_level'] == 5) { $_SESSION['employee_logged_in'] = true; $_SESSION['emp_id'] = $row['emp_id']; $_SESSION['password'] = $_POST['password']; $_SESSION['lastname'] = $row['lname']; $_SESSION['firstname'] = $row['fname']; header('Location: checkmail-01.php'); exit;} } else { $errormessage = 'Sorry, Wrong Username/Password';
  • 59. 59 } } ?> 4.2 TESTING Testing is any activity aimed at evaluating an attribute or capability of a program or system and determining that it meets its required results. Although crucial to software quality and widely deployed by programmers and testers, software testing still remains an art, due to limited understanding of the principles of software. The difficulty in software testing stems from the complexity of software: one cannot completely test a program with moderate complexity. Testing is more than just debugging. The purpose of testing can be quality assurance, verification and validation, or reliability estimation. Testing can be used as a generic metric as well. Correctness testing and reliability testing are two major areas of testing.
  • 60. 60 Testing Log Samples: Testing the Login form Testing with an invalid user name or password Purpose of test this test is to check if the login form of the application will allow access to the system if a wrong user name or password is used to login to the system. Test Data An invalid user name or password or both will be used. Test Condition a user name and password must be entered into the fields on the form Expected Outcome Denial of access, a message box should pop out telling the use he or she has entered a wrong user name or password Actual Outcome On entering a wrong user name or password into the login form, the system displayed a message box prompting the user “sorry, wrong username or password” . Remark: this means the test was successful
  • 61. 61 Fig 13: showing the invalid username or password test Testing with a valid Username and Password Purpose of test this test is to check if the login form of the application will allow a user to have access to the system if she provides a valid Username and password Test Data A valid user name or password will be used Test Condition a user name and password must be entered into the fields on the form Expected Outcome User should have access to the system once a valid user name and password is entered Actual Outcome On entering a valid Username and Password into the login form, the system gave access to the user into the system
  • 62. 62 Fig 14: showing login with valid username and password Test Analysis and Conclusion Since the main aim of testing is to check for errors, few error were found and fixed. However, fixing these errors was to improve the efficiency of the system. I will therefore conclude by saying test was satisfactory and successful 4.3 Training The aim of Systems training is to give users the specific skills they will be required in using a new information system in doing their jobs. During training of the users it is necessary that user must be made familiar with new tasks and documentations. It is very necessary that people identified to undergo training are available for training. Remark: this means the test was successful
  • 63. 63 There are various methods used for user training. The choice of training for a user usually, will depend on the nature and complexity of the system, the number of people to train, their location, their level of expertise in computer systems and also the budget allocated for the training.
  • 64. 64 CHAPTER FIVE CONCLUSION AND RECOMMENDATIONS CONCLUSION The efficiency of any system designed to suit the requirement depends on cooperation during the implementation stage and also flexibility of the system to adopt itself to the client and system requirements. “Intranet Mailing System” has been developed to overcome the problems with traditional 2-tier Architecture. As an evidence of this, by using the system developed one can communicate with the other valid users of the Intra Mailing System. This is allowing the Users to view the mails coming from different branches and departments, allowing replies to them. In every endeavour a wealth of experiences and lessons are learnt. During the duration of this project, diverse lessons were learnt that helped improved my skills both as a developer and a project manager. During the cause of the project I realized that software development projects cannot be treated like any ordinary task or academic assignment for that matter. It is necessary to tackle software development with a full project approach with adequate management style if success is to be achieved. Effective resources and especially time management will go a long way to tell if a project will be successful or not. This Intra Mailing System has also enabled me to practically use much skill that I have acquired over the years of study.
  • 65. 65 REFERENCES Allen G.Taylor SQL For Dummies®, 5th Edition Published byWiley Publishing, Inc. Copyright © 2003 Demarco & Plauge (1979) Structured Analysis and Systems Specification. Facsimile edition. Prentice Hall PTR. ISBN-10: 0138543808 JANET VALADE PHP & MySQL For Dummies, 3rd Edition byWiley Publishing, Inc. Copyright © 2006 Mark Maslakowski Sam's Teach Yourself MySQL in 21 Days (2004) ISBN: 0672319144 Nandish P. 2004. Systems Analysis and Design: A Persona Framework Approach. Routledge. ISBN: 0-415- 33216- NCC Education Limited 2001. Structured Programming Methods. ISBN: 1-90234-345-X Paul Beynon-Davies Database Systems Third Edition, NCC Education (2004) Yeates, D., & Wakefield T. 2004. System Analysis and Design. 2nd edition, Pearson Education Limited, ISBN: 0273 65536 1.