Bpms Project Report
Bpms Project Report
CHAPTER-01
Introduction to Project
I am doing my project on Beauty parlor Management System. There is the need for efficient
management of a network-based system for handling customer orders.
This project is an endeavor to provide a solution to this. The proposed system enables an
administrator to keep track of customer orders and maintaining records of the customers. He can
view the submitted requirements made by the customer. He can also view the reports generated by
him and can also sent approvals or rejections instantly.
Thus the project is a sincere effort in simplifying the task of administrators in an easily usable
format.
I finalized to make this project and hence planned to develop this system using PHP for front end and
MySQL as the Back End.
In this project we use PHP and MySQL database. It has two modules admin and user.
Admin
1. Dashboard: In this section admin can see all detail in brief like total number of customers,
Total number of appointments, Rejected Appointment, Accepted Appointment, Total
Services, Today’s sales, yesterday’s sale, Last seven days sales and total sales.
2. Services: In this section admin can manage services of parlor (add and update).
3. Pages: In this section admin can manage about us and contact us pages.
4. Appointment: In this section admin can view the detail of appointments and have right to
reject and select appointment.
5. Enquiry:In this section admin can read the enquiry which is received by the users.
6. Customer List: In this section admin can view customer list and assign services and make
invoices of services which is taken by customer.
7. Reports: In this section admin can view users’ detail and sales in particular periods
8. Invoice: In this section there is the list of total invoices which is viewed by admin
9. Search Appointment: In this section admin can search appointment with the help of his/her
appointment number and contact number.
10. Search Invoice: In this section admin can search invoices with the help of his/her invoice
number.
Admin can also update his profile, change password and recover password.
User
One time registration is required for an appointment.
Before starting the project we have to study its limitations and objective some of them are:-
All the processes of this management are done manually in the form of paper work and the
records are stored in the registers. In such cases there are frequent chances of data
redundancy and data is ease to lose.
All the introductions related to the customer and others printed on the papers, this activity
generates the chances of data lost.
All the bills structures are done by hand written; sometimes it produces mistakes in
calculation.
This system is very time consuming and require loss of manpower
Avoid the ‘Hardware approach’ i.e. getting a computer first and then deciding how to use it.
TECHNICAL FEASIBILITY
ECONOMIC FEASIBILITY
OPERATIONAL FEASIBILITY
ECONOMIC FEASIBILITY
Economic analysis is most frequently used for evaluation of the effectiveness of the system.
More commonly known as cost/benefit analysis the procedure is to determine the benefit and saving
that are expected from a system and compare them with costs, decisions is made to design and
Implement the system.
This part of feasibility study gives the top management the economic justification for the new
system. This is an important input to the management the management, because very often the top
management does not like to get confounded by the various technicalities that bound to be associated
with a project of this kind. A simple economic analysis that gives the actual comparison of costs and
benefits is much more meaningful in such cases.
In the system, the organization is most satisfied by economic feasibility. Because, if the
organization implements this system, it need not require any additional hardware resources as well as
it will be saving lot of time.
TECHNICAL FEASIBILITY
Technical feasibility centers on the existing manual system of the test management process
and to what extent it can support the system.
According to feasibility analysis procedure the technical feasibility of the system is analyzed and
the technical requirements such as software facilities, procedure, inputs are identified. It is also one
of the important phases of the system development activities.
The system offers greater levels of user friendliness combined with greater processing speed.
Therefore, the cost of maintenance can be reduced. Since, processing speed is very high and the
work is reduced in the maintenance point of view management convince that the project is
operationally feasible.
BEHAVIOURAL FEASIBILITY
People are inherently resistant to change and computer has been known to facilitate changes. An
estimate should be made of how strong the user is likely to move towards the development of
computerized system. These are various levels of users in order to ensure proper authentication and
authorization and security of sensitive data of the organization.
The mode is used for developing the “Exam Tool” is the prototyping model.
Prototyping Model is based on the idea of developing an initial implementation, exposing this to user
comment and defining this through many until an adequate system has been developed.
The prototyping paradigm begins with requirements gathering. Developers and customers
meet and define the overall objective for the software, identify the requirements and outline the areas
where further definitions are necessary.
The prototype design, is often, quite different from that of the final system. The benefits of
developing a prototype early in the software process are:
Misunderstanding between software developers and users may be identified, as the functions are
demonstrated.
Software development staff may find incompleteness and inconsistency in requirement as the
prototype is developed.
A working albeit limited systems is available quickly to demonstrate the feasibility and
usefulness of the application to the management.
The prototype serves as a basis for writing the specification for a production quality system.
Though the principle purpose of prototyping is to validate software requirements, software
prototype also has other uses.
A prototype system can be used for training users before the formal system has been delivered.
Prototype can be run back-to-back tests. This reduces the need for tedious manual checking of
test run. The same test is given to both the prototype and the system under test to look for
differences in the final results and thereby making necessary changes. Thus prototype serves as a
technique of risk reduction.
CHAPTER -02
REQUIREMENT ANALYSIS
Database :MySQL.
Documentation :MS-Office
CHAPTER -03
PROPOSED SYSTEM
Validation of data will ensure only accurate, valid and complete data is stored in the
database.
The objectives of the proposed system are to overcome the major limitation of existing
system enabling effective management of the customer details thereby improving the
performance of SHOP ADMINISTRTION.
The system will store all the basic data processing needs the shop management.
CHAPTER -04
DESIGN AND ARCHIETECTURE
The entire system is projected with a physical diagram which specifics the actual storage
parameters that are physically necessary for any database to be stored on to the disk. The
overall systems existential idea is derived from this diagram.
The relation upon the system is structure through a conceptual ER-Diagram, which not only
specifics the existential entities but also the standard relations through which the system
exists and the cardinalities that are necessary for the system state to continue.
The content level DFD is provided to have an idea of the functional inputs and outputs that
are achieved through the system. The system depicts the input and output standards at the
high level of the systems existence.
A DFD does not show a sequence of steps. A DFD only shows what the different process in a system
is and what data flows between them.
The following are some DFD symbols used in the project
External entities
A process is required for all the data transformation and transfers. Therefore, never
connect a data store to a data source or the destinations or another data store with just
a data flow arrow.
Do not indicate hardware and ignore control information.
Make sure the names of the processes accurately convey everything the
process is done.
There must not be unnamed process.
Indicate external sources and destinations of the data, with squares.
Number each occurrence of repeated external entities.
Identify all data flows for each process step, except simple Record retrievals.
Label data flow on each arrow.
Use details flow on each arrow.
Use the details flow arrow to indicate data movements.
There can’t be unnamed data flow.
A data flow can’t connect two external entities.
LEVELS OF DFD:
The complexity of the business system means that it is a responsible to represent the operations of
any system of single data flow diagram. At the top level, an Overview of the different systems in an
organization is shown by the way of context analysis diagram. When exploded into DFD
They are represented by:
LEVEL-0 : SYSTEM INPUT/OUTPUT
LEVEL-1:SUBSYSTEM LEVEL DATAFLOW FUNCTIONAL
LEVEL-2: FILE LEVEL DETAIL DATA FLOW.
The input and output data shown should be consistent from one level to the next.
0 Level Diagram
0.0
1stLevelDiagram
1.1
Appointment / Invoice
Records
Administrator Administrator
1.2
User
View Dashboard
View About us
View Services
View Contact Us
Signup/sign in
Book Parlor
Update Profile
Change Password
Login
Dashboard
Manage Services
Add/ update
Manage Pages
Manage Appointment
(Accept / reject)
View Enquiry
Generate Reports
Generate invoices
Search Appointment/Invoice
Change Password
Entity-Relationship Diagram
CHAPTER -05
DATABASE DESIGN
The data in the system has to be stored and retrieved from database. Designing the database is part of
system design. Data elements and data structures to be stored have been identified at analysis stage.
They are structured and put together to design the data storage and retrieval system.
A database is a collection of interrelated data stored with minimum redundancy to serve many users
quickly and efficiently. The general objective is to make database access easy, quick, inexpensive and
flexible for the user. Relationships are established between the data items and unnecessary data items
are removed. Normalization is done to get an internal consistency of data and to have minimum
redundancy and maximum stability. This ensures minimizing data storage required, minimizing
chances of data inconsistencies and optimizing for updates. The MySQL database has been chosen
for developing the relevant databases.
Beauty Parlor Management System (BPMS) contains 7 MySQL tables :
tbladmin table Structure : This table store the admin personal and login details
tblbook table Structure : This table store the user appointment details.
tblusertable Structure : This table store the customer details which are registered
itself.
tblcontact table Structure : This table store the enquires details of users.
Class Diagram:
The class diagram shows a set of classes, interfaces, collaborations and their
relationships.
CHAPTER -06
DEVELOPMENT AND CODING
5.1 TECHNOLOGY DESCRIPTION
5.1.1.Php
PHP is a server-side scripting language designed primarily for web development but also used as
a general-purpose programming language. Originally created by RasmusLerdorf in 1994,the
PHP reference implementation is now produced by The PHP Development Team. PHP originally
stood for personal home page but it now stands for the recursive acronym PHP: Hypertext
Preprocessor.
PHP code may be embedded into HTML or HTML5 code, or it can be used in combination with
various web template systems, web content management systems and web frameworks. PHP code is
usually processed by a PHP interpreter implemented as a module in the web server or as a Common
Gateway Interface (CGI) executable. The web server combines the results of the interpreted and
executed PHP code, which may be any type of data, including images, with the generated web page.
PHP code may also be executed with a command-line interface (CLI) and can be used to
implement standalone graphical applications.
The standard PHP interpreter, powered by the Zend Engine, is free software released under the PHP
License. PHP has been widely ported and can be deployed on most web servers on almost
every operating system and platform, free of charge.
The PHP language evolved without a written formal specification or standard until 2014, leaving the
canonical PHP interpreter as a de facto standard. Since 2014 work has gone on to create a formal
PHP specification.PHP development began in 1995 when RasmusLerdorf wrote several Common
Gateway Interface (CGI) programs in C, which he used to maintain his personal homepage. He
extended them to work with web forms and to communicate with databases, and called this
implementation "Personal Home Page/Forms Interpreter" or PHP/FI.
PHP/FI could help to build simple, dynamic web applications. To accelerate bug reporting and to
improve the code, Lerdorf initially announced the release of PHP/FI as "Personal Home Page
Tools(PHPTools)version1.0"onthe Usenet discussiongroup comp.infosystems.www.authoring.cgi on
June 8, 1995. This release already had the basic functionality that PHP has as of 2013. This
included Perl-like variables, form handling, and the ability to embed HTML. The syntax resembled
that of Perl but was simpler, more limited and less consistent.
Lerdorf did not intend the early PHP to become a new programming language, but it grew
organically, with Lerdorf noting in retrospect. A development team began to form and, after months
of work and beta testing, officially released PHP/FI 2 in November 1997.
The fact that PHP lacked an original overall design but instead developed organically has led to
inconsistent naming of functions and inconsistent ordering of their parameters. In some cases, the
function names were chosen to match the lower-level libraries which PHP was "wrapping",while in
some very early versions of PHP the length of the function names was used internally as a hash
function, so names were chosen to improve the distribution of hash values.
Php 3 and 4
ZeevSuraski and AndiGutmans rewrote the parser in 1997 and formed the base of PHP 3, changing
the language's name to the recursive acronym PHP:Hypertext Preprocessor. Afterwards, public
testing of PHP 3 began, and the official launch came in June 1998. Suraski and Gutmans then started
a new rewrite of PHP's core, producing the Zend Engine in 1999. They also founded Zend
Technologies in Ramat Gan, Israel. On May 22, 2000, PHP 4, powered by the Zend Engine 1.0, was
released. As of August 2008 this branch reached version 4.4.9. PHP 4 is no longer under
development nor will any security updates be released.
Php 5
On July 13, 2004, PHP 5 was released, powered by the new Zend Engine II. PHP 5 included new
features such as improved support for object-oriented programming, the PHP Data Objects (PDO)
extension (which defines a lightweight and consistent interface for accessing databases), and
numerous performance enhancements. In 2008 PHP 5 became the only stable version under
development. Late static binding had been missing from PHP and was added in version 5.3.
Many high-profile open-source projects ceased to support PHP 4 in new code as of February 5, 2008,
because of the GoPHP5 initiative, provided by a consortium of PHP developers promoting the
transition from PHP 4 to PHP 5. Over time, PHP interpreters became available on most existing 32-
bit and 64-bit operating systems, either by building them from the PHP source code, or by using pre-
built binaries. For the PHP versions 5.3 and 5.4, the only available Microsoft Windows binary
distributions were 32-bit x86 builds, requiring Windows 32-bit compatibility mode while
using Internet Information Services (IIS) on a 64-bit Windows platform. PHP version 5.5 made the
64-bit x86-64 builds available for Microsoft Windows.
Php 6 and Unicode
PHP has received criticism due to lacking native Unicode support at the core language level, instead
only supporting byte strings. In 2005, a project headed by Andrei Zmievski was initiated to bring
native Unicode support throughout PHP, by embedding the International Components for
Unicode (ICU) library, and representing text strings as UTF-16 internally. Since this would cause
major changes both to the internals of the language and to user code, it was planned to release this as
version 6.0 of the language, along with other major features then in development.
However, a shortage of developers who understood the necessary changes, and performance
problems arising from conversion to and from UTF-16, which is rarely used in a web context, led to
delays in the project. As a result, a PHP 5.3 release was created in 2009, with many non-Unicode
features back-ported from PHP 6, notably namespaces. In March 2010, the project in its current form
was officially abandoned, and a PHP 5.4 release was prepared containing most remaining non-
Unicode features from PHP 6, such as traits and closure re-binding. Initial hopes were that a new
plan would be formed for Unicode integration, but as of 2014 none have been adopted.
Php7
During 2014 and 2015, a new major PHP version was developed, which was numbered PHP 7. The
numbering of this version involved some debate. While the PHP 6 Unicode experiment had never
been released, several articles and book titles referenced the PHP 6 name, which might have caused
confusion if a new release were to reuse the name. After a vote, the name PHP 7 was chosen.The
foundation of PHP 7 is a PHP branch that was originally dubbed PHP next generation (phpng). It
was authored by Dmitry Stogov, XinchenHui and Nikita Popov, and aimed to optimize PHP
performance by refactoring the Zend Engine to use more compact data structures with
improved cache locality while retaining near-complete language compatibility. As of 14 July
2014, WordPress-based benchmarks, which served as the main benchmark suite for the phpng
project, showed an almost 100% increase in performance. Changes from phpng are also expected to
make it easier to improve performance in the future, as more compact data structures and other
changes are seen as better suited for a successful migration to a just-in-time (JIT) compiler. Because
of the significant changes, the reworked Zend Engine is called Zend Engine 3, succeeding Zend
Engine 2 used in PHP 5. Because of major internal changes in phpng, it must receive a new major
version number of PHP, rather than a minor PHP 5 release, according to PHP's release
process. Major versions of PHP are allowed to break backward-compatibility of code and therefore
PHP 7 presented an opportunity for other improvements beyond phpng that require backward-
compatibility breaks, including wider use of exceptions, reworking variable syntax to be more
consistent and complete, and the deprecation or removal of various legacy features. PHP 7 also
introduced new language features, including return type declarations for functions,which
complement the existing parameter type declarations, and support for the scalar types (integer, float,
string, and boolean) in parameter and return type declarations.
Data Types
PHP stores integers in a platform-dependent range, either a 64-bit or 32-bit signed integer equivalent
to the C-language long type. Unsigned integers are converted to signed values in certain situations;
this behavior is different from that of other programming languages. Integer variables can be
assigned using decimal (positive and negative), octal, hexadecimal, and binary notations.Floating
point numbers are also stored in a platform-specific range. They can be specified using floating point
notation, or two forms of scientific notation. PHP has a native Boolean type that is similar to the
native Boolean types in Java and C++. Using the Boolean type conversion rules, non-zero values are
interpreted as true and zero as false, as in Perl and C++.The null data type represents a variable that
has no value; NULL is the only allowed value for this data type.
Variables of the "resource" type represent references to resources from external sources. These are
typically created by functions from a particular extension, and can only be processed by functions
from the same extension; examples include file, image, and database resources.
Arrays can contain elements of any type that PHP can handle, including resources, objects, and other
arrays. Order is preserved in lists of values and in hashes with both keys and values, and
the two can be intermingled. PHP also supports strings, which can be used with single quotes, double
quotes, nowdoc or heredoc syntax. The Standard PHP Library (SPL) attempts to solve standard
problems and implements efficient data access interfaces and classes.
Functions
PHP defines a large array of functions in the core language and many are also available in various
extensions,these functions are well documented in the online PHP documentation. However, the
built-in library has a wide variety of naming conventions and associated inconsistencies, as described
under history above.
In lieu of function pointers, functions in PHP can be referenced by a string containing their name. In
this manner, normal PHP functions can be used, for example, as callbacks or within function
tables. User-defined functions may be created at any time without being prototyped. Functions may
be defined inside code blocks, permitting a run-time decision as to whether or not a function should
be defined. There is a function_exists function that determines whether a function with a given name
has already been defined. Function calls must use parentheses, with the exception of zero-argument
class constructor functions called with the PHP operator new, in which case parentheses are optional.
Until PHP 5.3, support for anonymous functions and closures did not exist in PHP.
While create_function() exists since PHP 4.0.1, it is merely a thin wrapper around eval() that allows
normal PHP functions to be created during program execution. PHP 5.3 added syntax to define an
anonymous function or "closure"which can capture variables from the surrounding scope. In the
example above, getAdder() function creates a closure using passed argument $x (the
keyword use imports a variable from the lexical context), which takes an additional argument $y ,
and returns the created closure to the caller. Such a function is a first-class object, meaning that it can
be stored in a variable, passed as a parameter to other functions, etc.
Unusually for a dynamically typed language, PHP supports type declarations on function parameters,
which are enforced at runtime. This has been supported for classes and interfaces since PHP 5.0, for
arrays since PHP 5.1, for "callables" since PHP 5.4, and scalar (integer, float, string and boolean)
types since PHP 7.0. PHP 7.0 also has type declarations for function return types, expressed by
placing the type name after the list of parameters, preceded by a colon.For example,
the getAdder function from the earlier example could be annotated with types like so in PHP 7.
5.1.2 Html
Hypertext Markup Language (HTML) is the standard markup language for creating web
pages and web applications. With Cascading Style Sheets (CSS) and JavaScript it forms a triad of
cornerstone technologies for the World Wide Web. Web browsers receive HTML documents from
a web server or from local storage and render them into multimedia web pages. HTML describes the
structure of a web page semantically and originally included cues for the appearance of the
document.HTML elements are the building blocks of HTML pages. With HTML
constructs, images and other objects, such as interactive forms, may be embedded into the rendered
page. It provides a means to create structured documents by denoting structural semantics for text
such as headings, paragraphs, lists, links, quotes and other items. HTML elements are delineated
by tags, written using angle brackets. Tags such as <img /> and <input /> introduce content into the
page directly. Others such as <p>...</p> surround and provide information about document text and
may include other tags as sub-elements. Browsers do not display the HTML tags, but use them to
interpret the content of the page.HTML can embed programs written in a scripting language such
as JavaScript which affect the behavior and content of web pages. Inclusion of CSS defines the look
and layout of content. The World Wide Web Consortium (W3C), maintainer of both the HTML and
the CSS standards, has encouraged the use of CSS over explicit presentational HTML.
5.1.3 MySQL
MySQL is an open-source relational database management system (RDBMS). Its name is a
combination of "My", the name of co-founder Michael Widenius' daughter, and "SQL", the
abbreviation for Structured Query Language. The MySQL development project has made its source
code available under the terms of the GNU General Public License, as well as under a variety
of proprietary agreements. MySQL was owned and sponsored by a single for-profit firm,
the Swedish company MySQL AB, now owned by Oracle Corporation.
For proprietary use, several paid editions are available, and offer additional functionality.MySQL is a
central component of the LAMP open-source web application software stack (and other "AMP"
stacks). LAMP is an acronym for "Linux, Apache, MySQL, Perl/PHP/Python". Applications that use
the MySQL database include: TYPO3, MODx, Joomla, WordPress, phpBB, MyBB, and Drupal.
MySQL is also used in many high-profile, large-scale websites, including Google (though not for
searches), Facebook, Twitter, Flickr, and YouTube.
CHAPTER -07
TESTING AND IMPLEMENTATION
6.1 THE TESTING SPECTRUM
The term implementation has different meanings ranging from the conversation of a basic
application to a complete replacement of a computer system. The procedures however, are virtually
the same. Implementation includes all those activities that take place to convert from old system to
new. The new system may be totally new replacing an existing manual or automated system or it
may be major modification to an existing system. The method of implementation and time scale to
be adopted is found out initially. Proper implementation is essential to provide a reliable system to
meet organization requirement.
6.1.1 Unit Testing
In computer programming, unit testing is a software testing method by which individual units
of source code, sets of one or more computer program modules together with associated control data,
usage procedures, and operating procedures, are tested to determine whether they are fit for use.
Intuitively, one can view a unit as the smallest testable part of an application. In procedural
programming, a unit could be an entire module, but it is more commonly an individual function or
procedure. In object-oriented programming, a unit is often an entire interface, such as a class, but
could be an individual method. Unit tests are short code fragmentscreated by programmers or
occasionally by white box testers during the development process. It forms the basis for component
testing. Ideally, each test case is independent from the others. Substitutes such as method
stubs, mock objects, fakes, and test harnesses can be used to assist testing a module in isolation. Unit
tests are typically written and run by software developers to ensure that code meets its design and
behaves as intended.
6.1.1.1 Benefits
The goal of unit testing is to isolate each part of the program and show that the individual parts are
correct. A unit test provides a strict, written contract that the piece of code must satisfy. As a result, it
affords several benefits.
integration test plan to those aggregates, and delivers as its output the integrated system ready
for system testing.
Purpose
The purpose of integration testing is to verify functional, performance, and
reliability requirements placed on major design items. These "design items", i.e., assemblages
(or groups of units), are exercised through their interfaces using black-box testing, success
and error cases being simulated via appropriate parameter and data inputs. Simulated usage of
shared data areas and inter-process communication is tested and individual subsystems are
exercised through their input interface. Test cases are constructed to test whether all the
components within assemblages interact correctly, for example across procedure calls or
process activations, and this is done after testing individual modules, i.e., unit testing. The
overall idea is a "building block" approach, in which verified assemblages are added to a
verified base which is then used to support the integration testing of further
assemblages.Software integration testing is performed according to the software development
life cycle (SDLC) after module and functional tests. The cross-dependencies for software
integration testing are: schedule for integration testing, strategy and selection of the tools
used for integration, define the cyclomatical complexity of the software and software
architecture, reusability of modules and life-cycle and versioning management.Some
different types of integration testing are big-bang, top-down, and bottom-up, mixed
(sandwich) and risky-hardest. Other Integration Patterns[2] are: collaboration integration,
backbone integration, layer integration, client-server integration, distributed services
integration and high-frequency integration.
Big Bang
In the big-bang approach, most of the developed modules are coupled together to form a
complete software system or major part of the system and then used for integration testing.
This method is very effective for saving time in the integration testing process. However, if
the test cases and their results are not recorded properly, the entire integration process will be
more complicated and may prevent the testing team from achieving the goal of integration
testing.A type of big-bang integration testing is called "usage model testing" which can be
used in both software and hardware integration testing. The basis behind this type of
integration testing is to run user-like workloads in integrated user-like environments. In doing
the testing in this manner, the environment is proofed, while the individual components are
proofed indirectly through their use. Usage Model testing takes an optimistic approach to
testing, because it expects to have few problems with the individual components. The
strategy relies heavily on the component developers to do the isolated unit testing for their
product. The goal of the strategy is to avoid redoing the testing done by the developers, and
instead flesh-out problems caused by the interaction of the components in the environment.
For integration testing, Usage Model testing can be more efficient and provides better test
coverage than traditional focused functional integration testing. To be more efficient and
accurate, care must be used in defining the user-like workloads for creating realistic scenarios
in exercising the environment. This gives confidence that the integrated environment will
work as expected for the target customers.
Software Verification: The process of evaluating software to determine whether the products
of a given development phase satisfy the conditions imposed at the start of that phase.
Software Validation: The process of evaluating software during or at the end of the
development process to determine whether it satisfies specified requirements.
In other words, software verification is ensuring that the product has been built according to the
requirements and design specifications, while software validation ensures that the product meets the
user's needs, and that the specifications were correct in the first place. Software verification ensures
that "you built it right". Software validation ensures that "you built the right thing". Software
validation confirms that the product, as provided, will fulfill its intended use.
From testing perspective:
Both verification and validation are related to the concepts of quality and of software quality
assurance. By themselves, verification and validation do not guarantee software quality;
planning, traceability, configuration management and other aspects of software engineering are
required.Within the modeling and simulation (M&S) community, the definitions of verification,
validation and accreditation are similar:
M&S Verification is the process of determining that a computer model, simulation, or federation
of models and simulations implementations and their associated data accurately represent the
developer's conceptual description and specifications.
M&S Validation is the process of determining the degree to which a model, simulation, or
federation of models and simulations, and their associated data are accurate representations of
the real world from the perspective of the intended use(s).
Accreditation is the formal certification that a model or simulation is acceptable to be used for a
specific purpose.
The definition of M&S validation focuses on the accuracy with which the M&S represents the real-
world intended use(s). Determining the degree of M&S accuracy is required because all M&S are
approximations of reality, and it is usually critical to determine if the degree of approximation is
acceptable for the intended use(s). This stands in contrast to software validation.
Classification of Methods
In mission-critical software systems, where flawless performance is absolutely
necessary, formal methods may be used to ensure the correct operation of a system. However,
often for non-mission-critical software systems, formal methods prove to be very costly and
an alternative method of software V&V must be sought out. In such cases, syntactic
methods are often used.
Test Cases
A test case is a tool used in the process. Test cases may be prepared for software verification
and software validation to determine if the product was built according to the requirements of
the user. Other methods, such as reviews, may be used early in the life cycle to provide for
software validation.
6.1.4 Black-Box Testing
Black-box testing is a method of software testing that examines the functionality of an application
without peering into its internal structures or workings. This method of test can be applied virtually
to every level of software testing: unit, integration, system and acceptance. It typically comprises
most if not all higher level testing, but can also dominate unit testing as well.
Test Procedures
Specific knowledge of the application's code/internal structure and programming knowledge
in general is not required. The tester is aware of what the software is supposed to do but is not
aware of how it does it. For instance, the tester is aware that a particular input returns a
certain, invariable output but is not aware of how the software produces the output in the first
place.
Test Cases
Test cases are built around specifications and requirements, i.e., what the application is
supposed to do. Test cases are generally derived from external descriptions of the software,
including specifications, requirements and design parameters. Although the tests used are
primarily functional in nature, non-functional tests may also be used. The test designer selects
both valid and invalid inputs and determines the correct output, often with the help of
an oracle or a previous result that is known to be good, without any knowledge of the test
object's internal structure.
Test Design Techniques
Typical black-box test design techniques include:
White-box testing (also known as clear box testing, glass box testing, transparent box testing,
and structural testing) is a method of testing software that tests internal structures or workings of an
application, as opposed to its functionality (i.e. black-box testing). In white-box testing an internal
perspective of the system, as well as programming skills, are used to design test cases. The tester
chooses inputs to exercise paths through the code and determine the appropriate outputs. This is
analogous to testing nodes in a circuit, e.g. in-circuit testing (ICT). White-box testing can be applied
at the unit, integration and system levels of the software testing process. Although traditional testers
tended to think of white-box testing as being done at the unit level, it is used for integration and
system testing more frequently today. It can test paths within a unit, paths between units during
integration, and between subsystems during a system–level test. Though this method of test design
can uncover many errors or problems, it has the potential to miss unimplemented parts of the
specification or missing requirements.
White-box test design techniques include the following code coverage criteria:
White-box testing is a method of testing the application at the level of the source code. These
test cases are derived through the use of the design techniques mentioned above: control
flow testing, data flow testing, branch testing, path testing, statement coverage and decision
coverage as well as modified condition/decision coverage. White-box testing is the use of
these techniques as guidelines to create an error free environment by examining any fragile
code. These White-box testing techniques are the building blocks of white-box testing, whose
essence is the careful testing of the application at the source code level to prevent any hidden
errors later on.[1] These different techniques exercise every visible path of the source code to
minimize errors and create an error-free environment. The whole point of white-box testing is
the ability to know which line of the code is being executed and being able to identify what
the correct output should be.
6.1.5.1 Levels
1. Unit testing. White-box testing is done during unit testing to ensure that the code is working
as intended, before any integration happens with previously tested code. White-box testing
during unit testing catches any defects early on and aids in any defects that happen later on
after the code is integrated with the rest of the application and therefore prevents any type of
errors later on.
2. Integration testing. White-box testing at this level are written to test the interactions of each
interface with each other. The Unit level testing made sure that each code was tested and
working accordingly in an isolated environment and integration examines the correctness of
the behaviour in an open environment through the use of white-box testing for any
interactions of interfaces that are known to the programmer.
3. Regression testing. White-box testing during regression testing is the use of recycled white-
box test cases at the unit and integration testing levels.
6.1.5.3 Advantages
White-box testing is one of the two biggest testing methodologies used today. It has several major
advantages:
1. Side effects of having the knowledge of the source code is beneficial to thorough testing.
2. Optimization of code by revealing hidden errors and being able to remove these possible
defects.
3. Gives the programmer introspection because developers carefully describe any new
implementation.
4. Provides traceability of tests from the source, allowing future changes to the software to be
easily captured in changes to the tests.
5. White box tests are easy to automate.
6. White box testing give clear, engineering-based, rules for when to stop testing.
6.1.5.4 Disadvantages
Although white-box testing has great advantages, it is not perfect and contains some disadvantages:
1. White-box testing brings complexity to testing because the tester must have knowledge of the
program, including being a programmer. White-box testing requires a programmer with a
high level of knowledge due to the complexity of the level of testing that needs to be done.
2. On some occasions, it is not realistic to be able to test every single existing condition of the
application and some conditions will be untested.
3. The tests focus on the software as it exists, and missing functionality may not be discovered.
the assemblages and the hardware. System testing is a more limited type of testing; it seeks to detect
defects both within the "inter-assemblages" and also within the system as a whole.
Testing The Whole System
System testing is performed on the entire system in the context of a Functional
Requirement Specification(s) (FRS) and/or a System Requirement Specification (SRS).
System testing tests not only the design, but also the behavior and even the believed
expectations of the customer. It is also intended to test up to and beyond the bounds defined
in the software/hardware requirements specification(s).
CHAPTER-08
System Screen
Home Page
About Us Page
Contact
Services
User Login
Signup
Book Salon
Profile
Admin Login
Dashboard
Profile
Add Services
Manage Services
All Appointment
Customer List
Assign Services
View Invoice
CHAPTER -09
CODING
INDEX PAGE:
<?php
session_start();
error_reporting(0);
include('includes/dbconnection.php');
?>
<!doctype html>
<html lang="en">
<head>
<?php include_once('includes/header.php');?>
<div class="w3l-hero-headers-9">
<div class="css-slider">
<input id="slide-1" type="radio" name="slides" checked>
<section class="slide slide-one">
<div class="container">
<div class="banner-text">
<h4>Creative Styling</h4>
<h3>beauty salon<br>
fashion for woman</h3>
</section>
<input id="slide-2" type="radio" name="slides">
<section class="slide slide-two">
<div class="container">
<div class="banner-text">
<h4>Creative Styling</h4>
<h3>beauty salon<br>
fashion for woman</h3>
<a href="book-appointment.php" class="btn logo-button top-margin">Get An
Appointment</a>
</div>
</div>
<!-- <nav>
<label for="slide-2" class="prev">❮</label>
<label for="slide-1" class="next">❯</label>
</nav> -->
</section>
<header>
<label for="slide-1" id="slide-1"></label>
<label for="slide-2" id="slide-2"></label>
</header>
</div>
</div>
<section class="w3l-call-to-action_9">
<div class="call-w3 ">
<div class="container">
<div class="grids">
<div class="grids-content row">
</div>
<div class="col-lg-6 about-right-faq align-self">
<h3 class="title-big"><a href="about.html">Clean and Recommended Hair
Salon</a></h3>
<p class="mt-3 para"> Their array of beauty parlour services include haircuts,
hair spas, colouring, texturing, styling, waxing, pedicures, manicures, threading, body spa,
natural facials and more.</p>
<div class="hair-cut">
<div >
<ul class="w3l-right-book">
<li><span class="fa fa-check" aria-hidden="true"></span><a
href="about.html">Hair cut with Blow dry</a></li>
<li><span class="fa fa-check" aria-hidden="true"></span><a
href="about.html">Color & highlights</a></li>
<li><span class="fa fa-check" aria-hidden="true"></span><a
href="about.html">Shampoo & Set</a></li>
<li><span class="fa fa-check" aria-hidden="true"></span><a
href="about.html">Blow Dry & Curl</a></li>
<li><span class="fa fa-check" aria-hidden="true"></span><a
href="about.html">Advance Hair Color</a></li>
</ul>
</div>
<div class="image-right">
<ul class="w3l-right-book">
<li><span class="fa fa-check" aria-hidden="true"></span><a
href="about.html">Back Massage</a></li>
<li><span class="fa fa-check" aria-hidden="true"></span><a
href="about.html">Hair Treatment</a></li>
<li><span class="fa fa-check" aria-hidden="true"></span><a
href="about.html">Face Massage</a></li>
<li><span class="fa fa-check" aria-hidden="true"></span><a
href="about.html">Skin Care</a></li>
<li><span class="fa fa-check" aria-hidden="true"></span><a
href="about.html">Body Therapies</a></li>
</ul>
</div>
</div>
</div>
</section>
<?php include_once('includes/footer.php');?>
<!-- move top -->
<button onClick="topFunction()" id="movetop" title="Go to top">
<span class="fa fa-long-arrow-up"></span>
</button>
<script>
// When the user scrolls down 20px from the top of the document,
show the button
window.onscroll = function () {
scrollFunction()
};
function scrollFunction() {
if (document.body.scrollTop > 20 ||
document.documentElement.scrollTop > 20) {
document.getElementById("movetop").style.display =
"block";
} else {
document.getElementById("movetop").style.display =
"none";
}
}
// When the user clicks on the button, scroll to the top of the
document
function topFunction() {
document.body.scrollTop = 0;
document.documentElement.scrollTop = 0;
}
</script>
<!-- /move top -->
</body>
</html>
ABOUT PAGE:
<?php
session_start();
error_reporting(0);
include('includes/dbconnection.php');
?>
<!doctype html>
<html lang="en">
<head>
</div>
<div class="hair-left">
<h5>Massage</h5>
</div>
<div class="hair-left">
<h5>Menicure</h5>
</div>
<div class="hair-left">
<h5>Pedicure</h5>
</div>
<div class="hair-left">
<h5>Hair Cut</h5>
</div>
<div class="hair-left">
<h5>Body Spa</h5>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section class="w3l-recent-work">
<div class="jst-two-col">
<div class="container">
<div class="row">
<div class="my-bio col-lg-6">
<div class="hair-make">
<?php
?>
<h5><a href="blog.html"><?php echo
$row['PageTitle'];?></a></h5>
<p class="para mt-2"><?php echo
$row['PageDescription'];?></p><?php } ?>
</div>
</div>
</div>
</div>
</div>
</section>
<?php include_once('includes/footer.php');?>
<!-- move top -->
<button onClick="topFunction()" id="movetop" title="Go to top">
<span class="fa fa-long-arrow-up"></span>
</button>
<script>
// When the user scrolls down 20px from the top of the document,
show the button
window.onscroll = function () {
scrollFunction()
};
function scrollFunction() {
if (document.body.scrollTop > 20 ||
document.documentElement.scrollTop > 20) {
document.getElementById("movetop").style.display =
"block";
} else {
document.getElementById("movetop").style.display =
"none";
}
}
// When the user clicks on the button, scroll to the top of the
document
function topFunction() {
document.body.scrollTop = 0;
document.documentElement.scrollTop = 0;
}
</script>
<!-- /move top -->
</body></html>
LOGIN PAGE:
<?php
session_start();
error_reporting(0);
include('includes/dbconnection.php');
error_reporting(0);
if(isset($_POST['login']))
{
$emailcon=$_POST['emailcont'];
$password=md5($_POST['password']);
$query=mysqli_query($con,"select ID from tbluser where (Email='$emailcon' ||
MobileNumber='$emailcon') && Password='$password' ");
$ret=mysqli_fetch_array($query);
if($ret>0){
$_SESSION['bpmsuid']=$ret['ID'];
header('location:index.php');
}
else{
echo "<script>alert('Invalid Details.');</script>";
}
}
?>
<!doctype html>
<html lang="en">
<head>
Login Page
</h3>
</div>
</div>
</div>
<div class="breadcrumbs-sub">
<div class="container">
<ul class="breadcrumbs-custom-path">
<li class="right-side propClone"><a href="index.php" class="">Home <span class="fa fa-
angle-right" aria-hidden="true"></span></a> <p></li>
<li class="active ">
Login</li>
</ul>
</div>
</div>
</div>
</section>
<!-- breadcrumbs //-->
<section class="w3l-contact-info-main" id="contact">
<div class="contact-sec ">
<div class="container">
?>
<div class="cont-top">
<div class="cont-left text-center">
<span class="fa fa-phone text-primary"></span>
</div>
<div class="cont-right">
<h6>Call Us</h6>
<p class="para"><a href="tel:+44 99 555 42">+<?php echo
$row['MobileNumber'];?></a></p>
</div>
</div>
<div class="cont-top margin-up">
<div class="cont-left text-center">
<span class="fa fa-envelope-o text-primary"></span>
</div>
<div class="cont-right">
<h6>Email Us</h6>
<p class="para"><a href="mailto:[email protected]" class="mail"><?php
echo $row['Email'];?></a></p>
</div>
</div>
<div class="cont-top margin-up">
<div class="cont-left text-center">
<span class="fa fa-map-marker text-primary"></span>
</div>
<div class="cont-right">
<h6>Address</h6>
<p class="para"> <?php echo $row['PageDescription'];?></p>
</div>
</div>
<div class="cont-top margin-up">
<div class="cont-left text-center">
<span class="fa fa-map-marker text-primary"></span>
</div>
<div class="cont-right">
<h6>Time</h6>
<p class="para"> <?php echo $row['Timing'];?></p>
</div>
</div>
<?php } ?> </div>
</div>
<div style="padding-top: 30px;">
<input type="password" class="form-control" name="password"
placeholder="Password" required="true">
</div>
</div>
<button type="submit" class="btn btn-contact" name="login">Login</button>
</form>
</div>
</div>
</div></div>
</section>
<?php include_once('includes/footer.php');?>
<!-- move top -->
<button onClick="topFunction()" id="movetop" title="Go to top">
<span class="fa fa-long-arrow-up"></span>
</button>
<script>
// When the user scrolls down 20px from the top of the document,
show the button
window.onscroll = function () {
scrollFunction()
};
function scrollFunction() {
if (document.body.scrollTop > 20 ||
document.documentElement.scrollTop > 20) {
document.getElementById("movetop").style.display =
"block";
} else {
document.getElementById("movetop").style.display =
"none";
}
}
// When the user clicks on the button, scroll to the top of the
document
function topFunction() {
document.body.scrollTop = 0;
document.documentElement.scrollTop = 0;
}
</script>
<!-- /move top -->
</body>
</html>
PROFILE PAGE:
<?php
session_start();
error_reporting(0);
include('includes/dbconnection.php');
if (strlen($_SESSION['bpmsuid']==0)) {
header('location:logout.php');
} else{
if(isset($_POST['submit']))
{
$uid=$_SESSION['bpmsuid'];
$fname=$_POST['firstname'];
$lname=$_POST['lastname'];
$query=mysqli_query($con, "update tbluser set FirstName='$fname', LastName='$lname'
where ID='$uid'");
if ($query) {
echo '<script>alert("Profile updated successully.")</script>';
echo '<script>window.location.href=profile.php</script>';
}
else
{
?>
<!doctype html>
<html lang="en">
<head>
</head>
<body id="home">
<?php include_once('includes/header.php');?>
Profile
</h3>
<p class="tiltle-para ">Lorem ipsum dolor sit amet consectetur, adipisicing elit. Hic
fuga sit illo modi aut aspernatur tempore laboriosam saepe dolores eveniet.</p>
</div>
</div>
</div>
<div class="breadcrumbs-sub">
<div class="container">
<ul class="breadcrumbs-custom-path">
<li class="right-side propClone"><a href="index.php" class="">Home <span class="fa fa-
angle-right" aria-hidden="true"></span></a> <p></li>
<li class="active ">
profile</li>
</ul>
</div>
</div>
</div>
</section>
<!-- breadcrumbs //-->
<section class="w3l-contact-info-main" id="contact">
<div class="contact-sec ">
<div class="container">
?>
<div class="cont-top">
<div class="cont-left text-center">
<span class="fa fa-phone text-primary"></span>
</div>
<div class="cont-right">
<h6>Call Us</h6>
<p class="para"><a href="tel:+44 99 555 42">+<?php echo
$row['MobileNumber'];?></a></p>
</div>
</div>
<div class="cont-top margin-up">
<div class="cont-left text-center">
<span class="fa fa-envelope-o text-primary"></span>
</div>
<div class="cont-right">
<h6>Email Us</h6>
<p class="para"><a href="mailto:[email protected]" class="mail"><?php
echo $row['Email'];?></a></p>
</div>
</div>
<div class="cont-top margin-up">
<div class="cont-left text-center">
<span class="fa fa-map-marker text-primary"></span>
</div>
<div class="cont-right">
<h6>Address</h6>
<p class="para"> <?php echo $row['PageDescription'];?></p>
</div>
</div>
?>
<div style="padding-top: 30px;">
<label>First Name</label>
<?php }?>
<button type="submit" class="btn btn-contact" name="submit">Save
Change</button>
</form>
</div>
</div>
</div></div>
</section>
<?php include_once('includes/footer.php');?>
<!-- move top -->
<button onClick="topFunction()" id="movetop" title="Go to top">
<span class="fa fa-long-arrow-up"></span>
</button>
<script>
// When the user scrolls down 20px from the top of the document,
show the button
window.onscroll = function () {
scrollFunction()
};
function scrollFunction() {
if (document.body.scrollTop > 20 ||
document.documentElement.scrollTop > 20) {
document.getElementById("movetop").style.display =
"block";
} else {
document.getElementById("movetop").style.display =
"none";
}
}
// When the user clicks on the button, scroll to the top of the
document
function topFunction() {
document.body.scrollTop = 0;
document.documentElement.scrollTop = 0;
}
</script>
</html><?php } ?>
CHAPTER-10
CONCLUSION
The demand of Web application for application is increasing day by day in Software industry, due to
high expectations of client companies.
Hence an attempt of automating an office application had added to our learning experience.
It has also helped in adopting an analytical approach to solving and made us realize that system
development is a step-by-step process,
Thereby appreciating the role of SDLC model in organizing the complex process of system
development into manageable chunks. Indeed, it was a great learning experience.
BIBILOGRAPHY
For PHP
https://www.w3schools.com/php/default.asp
https://www.sitepoint.com/php/
https://www.php.net/
For MySQL
https://www.mysql.com/
http://www.mysqltutorial.org
For XAMPP
https://www.apachefriends.org/download.html