1.1 Rationale 1.2 Problem Definition and Proposed Solution 1.3 Functionality Set
1.1 Rationale 1.2 Problem Definition and Proposed Solution 1.3 Functionality Set
1. INTRODUCTION
1.1 Rationale
1.2 Problem Definition and Proposed Solution
1.3 Functionality Set
1.1 Rationale:
The basic need why our project required is the lack of time because it is time only
which makes people to visit any matrimonial site and thousands of profiles are
available to access and help people in finding their right spouse.
RIT, INDORE 1
SPOUSAL
Distributed
Flexible
Usable
Extensible
Secured
RIT, INDORE 2
SPOUSAL
2. LITERATURE SURVEY
The UML is the standard language for visualizing, specifying, constructing and
documenting the artifacts of a software-intensive system. It can be used with all
processes, throughout the development life cycle, and across different
implementation technology.
UML can also be used to Forward Engineer i.e. to generate code from the model
you have built. It can generate Visual Basic code, Power Builder code, and C++
code with numerous more. Similarly we can use it for Backward engineering i.e.
Generating Model from the code.
RIT, INDORE 3
SPOUSAL
Idea
Analysis
Design
Development
Test
Final Product
RIT, INDORE 4
SPOUSAL
As a Front End tool I am using Java. Java is a general purpose class based, object
oriented programming language. It is designed to be the simple enough that many
programmers can achieve fluency in the language. The main advantage of Java is its
platform independent property; this has made Java a powerful tool.
RIT, INDORE 5
SPOUSAL
• Portability
Because servlets are written in Java and conform to a well defined and widely accepted
API, they are highly portable across operating systems and server implementations. With
servlets you can truly say “write once, serve everywhere” reason being a class file is
made which is nothing but machine-independent byte codes. We can develop a servlet on
Windows NT machine running the Java Web Server and later deploy it effortlessly on a
Unix server running Apache.
• Safety
The servlet API is designed to be easily extensible. The API includes classes that are
optimized for HTTP servlets but at a later date it could be extended and optimized for
another type of servlets by a third party. Servlets are also quite flexible. An HTTP servlet
can be used to generate a complete webpage it can be added to a static page using a
<SERVLET> tag in what is known as a server-side include and it can be used in
cooperation with any number of servlets to filter the content in something known as
servlet chain.
RIT, INDORE 6
SPOUSAL
The Java Server Pages technology is platform independent, both in its dynamic Web
pages, its Web servers, and its underlying server components. You can author JSP pages
on any platform, run them on any Web server or Web enabled application server, and
access them from any Web browser. You can also build the server components on any
platform and run them on any server.
The Write Once, Run Anywhere properties of JSP allows the user to choose best-of-
breed
tools. Additionally, an explicit goal of the Java Server Pages design is to enable the
creation of high quality portable tools.
• SEPARATION OF ROLES
JSP supports the separation of roles: developers write components that interact with
server-side objects; authors put static data and dynamic content together to create
presentations best suited for their intended audiences. Each of these roles emphasizes
different types of abilities and, although these abilities may all be present in the same
individual, they most commonly will not. A subset of the developer community may be
focused on creating reusable components intended to be used by authors.
The Java Server Pages technology emphasizes the use of reusable components such as:
JavaBeans™ components, Enterprise JavaBeans™ components and tag libraries. These
components can be used in interactive tools for component development and page
composition. This saves considerable development time while giving the cross-platform
power and flexibility of the Java programming language and other scripting languages.
The Java Server Pages technology enables the separation of static content from dynamic
content that is inserted into the static template. This greatly simplifies the creation of
content. This separation is supported by beans specifically designed for the interaction
RIT, INDORE 7
SPOUSAL
The Java Server Pages technology supports scripting elements as well as actions. Actions
permit the encapsulation of useful functionality in a convenient form that can also be
manipulated by tools; scripts provide a mechanism to glue together this functionality in a
Per-page manner.
The Java Server Pages technology is an integral part of the Java 2 Platform Enterprise
Edition (J2EE), which brings Java technology to enterprise computing. You can now
develop powerful middle-tier server applications, using a Web site that uses Java Server
Pages technology as a front end to Enterprise JavaBeans components in a J2EE compliant
environment.
2.3.2 MYSQL:
MySQL, the most popular Open Source SQL database management system, is
developed, distributed, and supported by MySQL AB. MySQL AB is a commercial
company, founded by the MySQL developers.
A relational database stores data in separate tables rather than putting all the data in one
big storeroom. This adds speed and flexibility. The SQL part of 'MySQL' stands for
'Structured Query Language. 'SQL is the most common standardized language used to
access databases and is defined by the ANSI/ISO SQL Standard.
Open Source means that it is possible for anyone to use and modify the software.
Anybody can download the MySQL software from the Internet and use it without paying
anything. If you wish, you may study the source code and change it to suit your needs.
The MySQL software uses the GPL (GNU General Public License), to define what you
may and may not do with the software in different situations. If you feel uncomfortable
with the GPL or need to embed MySQL code into a commercial application, you can buy
a commercially licensed version.
• The MySQL Database Server is very fast, reliable, and easy to use.
RIT, INDORE 8
SPOUSAL
MySQL Server has a practical set of features developed in close cooperation with our
users. It was originally developed to handle large databases much faster than existing
solutions and has been successfully used in highly demanding production environments
for several years. It offers a rich and useful set of functions. Its connectivity, speed, and
security make MySQL Server highly suited for accessing databases on the Internet.
The MySQL database server provides the ultimate in scalability, sporting the capacity to
handle deeply embedded applications with a footprint of only 1MB to running massive
data warehouses holding terabytes of information. Platform flexibility is a stalwart
feature of MySQL with all flavors of Linux, UNIX, and Windows being supported. And,
of course, the open source nature of MySQL allows complete customization for those
wanting to add unique requirements to the database server.
Platforms
MySQL works on many different platforms — including AIX, BSDi, FreeBSD, HP-UX,
i5/OS, Linux, Mac OS X, NetBSD, Novell NetWare, OpenBSD, OS/2 Warp, QNX,
IRIX, Solaris, SunOS, SCO OpenServer, SCO UnixWare, Tru64, Windows 95, Windows
98, Windows ME, Windows NT, Windows 2000, Windows XP, and the 32-bit version of
Windows Vista (but not the 64-bit version). A port of MySQL to OpenVMS is also
available.
RIT, INDORE 9
SPOUSAL
Uses
MySQL is popular for web applications and acts as the database component of the
LAMP, MAMP, and WAMP platforms (Linux/Mac/Windows-Apache-MySQL-
PHP/Perl/Python), and for open-source bug tracking tools like Bugzilla. Its popularity for
use with web applications is closely tied to the popularity of PHP and Ruby on Rails,
which are often combined with MySQL. PHP and MySQL are essential components for
running popular content management systems such as Joomla!, e107, Word Press,
Drupal, and some BitTorrent trackers. Wikipedia runs on MediaWiki software, which is
written in PHP and uses a MySQL database.
RIT, INDORE 10
SPOUSAL
Os used:
RIT, INDORE 11
SPOUSAL
UML is largely process-independent; meaning that you can use it with a number
of software engineering processes. The Rational Unified Process is one such life
cycle approach that is especially well suited to the UML.
To come to an agreement with the customer and the users on what the
system should do.
To give system developers a better understanding of the requirements of
the system.
To define a user interface of the system.
Understand the basic Requirements concepts and how they affect Analysis
and Design.
Functional Requirement
Non-Functional Requirement
RIT, INDORE 12
SPOUSAL
Class Diagram:
A class diagram shows a set of classes, interfaces, collaboration
and their relationships.
Sequence Diagram:
A sequence diagram is an interaction diagram that emphasizes the
time ordering of the message. Sequence diagram shows a set of objects and the
message sent and received by those objects.
Collaboration Diagram:
A collaboration diagram is an interaction that emphasizes the
structural organization of the object that sends and receive message.
RIT, INDORE 13
SPOUSAL
Architecture is all about managing complexity by dividing the solution into small
pieces and then combining the small system into large more coherent structure.
Set goals
Grouping classes
Show technology
Evaluate against guideline and goals
Extract modules
Set Goals
Functionality
Multi user is able to perform its work, ie. Many at a time.
Usability
The user interface used is very simple to use, response will be fast,
and navigation will be easy.
Maintainability
Maintenance will be one limitation of project because of
architecture used and lots of constraints, but still I tried to use
modules which are quiet cohesive within and less coupled to out.
Reliability
It depends on the user requirements.
Security
The system is password protected.
Scalability
The application is a Web Application.
Grouping classes
RIT, INDORE 14
SPOUSAL
Boundary Entity
Control
Clarity:
Strong cohesion within modules and weak coupling between
modules is target of entire design.
Reuse Potential:
Classes kept small and well focused.
RIT, INDORE 15
SPOUSAL
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.
The spiral model, also known as the spiral lifecycle model, 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.
The steps in the spiral model can be generalized as follows:
RIT, INDORE 16
SPOUSAL
1. 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.
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. 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.
5. 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.
6. 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.
7. The preceding steps are iterated until the customer is satisfied that the refined
prototype represents the final product desired.
8. The final system is constructed, based on the refined 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.
RIT, INDORE 17
SPOUSAL
A use case diagram is a type of behavioral diagram defined by the Unified Modeling
Language (UML). Its purpose is to present a graphical overview of the functionality
provided by a system in terms of actors, their goals—represented as use cases—and any
dependencies between those use cases.
The two main components of a use case diagram are use cases and actors.
4.2 Actors
An actor defines a coherent set of roles that user of an entity can play when
interacting with the entity. An actor may be considered to play a separate role
with regard to each Use Case with which it communicates.
In developing the project “www.Spousal.com” following actors is identified:
Registered user
Unregistered user
RIT, INDORE 18
SPOUSAL
This is a comprehensive picture for all actors and use cases involved in the
project, partially demonstrate interaction/relation among them.
RIT, INDORE 19
SPOUSAL
This diagram shows interaction between actors and use cases which takes place
during Registration of users
REGISTER
«include»
REGISTRATION
FORM
ADMINISTRATOR UNREGISTERED
USER
USECASE DIAGRAM::
REGISTRATION FORM
RIT, INDORE 20
SPOUSAL
1. Description →
This use case will allow user to register them for browsing profile.
2. Precondition →
A) The user should have logged in by giving correct user name and password.
B) Personal Information should be uploaded by user for further usage as other can browse
there profile accordingly.
3. Primary Flow →
A) The use case begins when the user enters his user name and password correctly
B) Then it check whether the user is registered or unregistered so according to that
functionality is provided to them
C) System checks whether the password is correct. If it is incorrect then alternate flow A1
executes.
System prompts the user that password entered is incorrect & that the user should re-enter
it.
RIT, INDORE 21
SPOUSAL
This diagram shows interaction between actors and use cases which takes place
during job through quick search
COMMUNITY LOOKING
AGE
«include»
«include»
«include»
VIEW LIST
«include»
QUICK SEARCH
RIT, INDORE 22
SPOUSAL
1. Description →
2. Precondition →
A) The user should have logged in by giving correct user name and password.
B) If available then only user can interact with other user.
3. Primary Flow →
A) The use case begins when the user enters his user name and password correctly
B) Then it check whether the user is registered or unregistered so according to that
functionality is provided to them
C) System checks whether the password is correct. If it is incorrect then alternate flow A1
executes.
System prompts the user that password entered is incorrect & that the user should re-enter
it.
RIT, INDORE 23
SPOUSAL
RIT, INDORE 24
SPOUSAL
1. Description →
2. Precondition →
A) The user should have logged in by giving correct user name and password.
3. Primary Flow →
A) The use case begins when the user enters his user name and password correctly
B) Then it check whether the user is registered or unregistered so according to that
functionality is provided to them
C) System checks whether the password is correct. If it is incorrect then alternate flow A1
executes.
System prompts the user that password entered is incorrect & that the user should re-enter
it.
RIT, INDORE 25
SPOUSAL
UENCE DIAGRAM
6.1 Sequence Diagram Model
5. SEQUENCE DIAGRAM
5.1 Sequence Diagram Model
5.2 Sequence Diagrams
Sequence diagrams model the flow of logic within your system in a visual manner,
enabling you both to document and validate your logic, and are commonly used for both
analysis and design purposes.
Sequence diagrams are typically used to model:
1. Usage scenarios
A usage scenario is a description of a potential way your system is used. The logic of a
usage scenario may be part of a use case, perhaps an alternate course. It may also be one
entire pass through a use case, such as the logic described by the basic course of action or
a portion of the basic course of action, plus one or more alternate scenarios. The logic of
a usage scenario may also be a pass through the logic contained in several use cases. For
example, a student enrolls in the university, and then immediately enrolls in three
seminars.
Sequence diagrams can be used to explore the logic of a complex operation, function, or
procedure. One way to think of sequence diagrams, particularly highly detailed
diagrams, is as visual object code.
Search
Browse profile
Quick search
RIT, INDORE 26
SPOUSAL
:USER
:MAIN FORM :VALIDATE :SEARCHLIST_FORM :DATABASE
ENTER_USERTYPE
OPEN()
PROMT_FOR_PASSWORD()
ENTER_PASSWORD()
OPEN_SEARCH_LIST()
SEARCH_LIST_LOAD()
CMD_BACK()
RETURN_TO_USER()
RIT, INDORE 27
SPOUSAL
ENTER_USERTYPE
OPEN()
PROMT_FOR_PASSWORD()
ENTER_PASSWORD()
OPEN_BROWSE_LIST()
ENTER CHOICE
BROWSE_LIST_LOAD()
CMD_BACK()
RETURN_TO_USER()
RIT, INDORE 28
SPOUSAL
6. COLLABORATION DIAGRAM
6.1 Collaboration Diagram Model
6.2 Collaboration Diagram
6.1 COLLABORATION DIAGRAM MODELS
UML Collaboration diagrams (interaction diagrams) illustrate the relationship and
interaction between software objects. They require use cases, system operation contracts,
and domain model to already exist. The collaboration diagram illustrates messages being
sent between classes and objects (instances). A diagram is created for each system
operation that relates to the current development cycle (iteration).
When creating collaboration diagrams, patterns are used to justify relationships. Patterns
are best principles for assigning responsibilities to objects and are described further in the
section on patterns. There are two main types of patterns used for assigning
responsibilities which are evaluative patterns and driving patterns.
Each system operation initiates a collaboration diagram.
RIT, INDORE 29
SPOUSAL
7.CMD_BACK
6.SEARCHLIST
LOAD
4.ENTER
PASSWORD
:USER
5.OPEN
SEARCH
3.PROMPT FOR LIST
PASSWORD
1.ENTER
USER
:VALIDATE
2.OPEN
:MAIN FORM
RIT, INDORE 30
SPOUSAL
7.CMD BACK
8.RETURN :BROWSE_FORM
TO USER
:DATABASE
6.BROWSELIST
LOAD
4.ENTER
PASSWORD
:USER
3.PROMPT FOR
PASSWORD 5.OPEN BROWSE
LIST
1.ENTER USERTYPE
:VALIDATE
2.OPEN
:MAIN FORM
COLLABRATION
COLLABRATION DIAGRAM
DIAGRAM :: BROWSE
:: BROWSE PROFILE
7. Component Diagram
RIT, INDORE 31
SPOUSAL
welcome home
login
RIT, INDORE 32
SPOUSAL
RIT, INDORE 33
SPOUSAL
RIT, INDORE 34
SPOUSAL
8. DEPLOYMENT DIAGRAM
The Deployment diagram models the hardware used in implementing a system and the
association between those hardware components. Components can also be shown on a
Deployment diagram to show the location of their deployment. Deployment diagrams can
also be used early on in the design phase to document the physical architecture of a
system.
The elements used in Deployment diagrams are Components, as we have seen in
Component diagrams, Nodes, which represent the physical processing resources in the
system, and Associations.
RIT, INDORE 35
SPOUSAL
RIT, INDORE 36
SPOUSAL
A data model is an abstract model that describes how data is represented and accessed.
The term data model has two generally accepted meanings:
1. A data model theory, i.e. a formal description of how data may be structured
and accessed.
2. A data model instance, i.e. applying a data model theory to create a practical
data model instance for some particular application.
RIT, INDORE 37
SPOUSAL
RIT, INDORE 38
SPOUSAL
RIT, INDORE 39
SPOUSAL
RIT, INDORE 40
SPOUSAL
Work Tasks aug’07 sep’07 oct’07 nov’07 dec’07 jan’08 feb’08 mar’08 apr’08
1. Problem Definition
Gathering the
requirements
Obtaining the list of
tasks to be performed
Preparation of the
problem definition
MILESTONE: writing
problem definition
2. Preparation of
Functional
Specification
Make a brief overview of
the system
Prepare a list of the
objectives, goals,
anticipated benefits and
scope.
MILESTONE: Defining
the functional
specification.
3. Decide on the process
model to be used
Considered the
alternative process
models available for
use.
Deciding the relevant
model on the basis of
requirements.
RIT, INDORE 41
SPOUSAL
Work Tasks aug’07 sep’07 oct’07 nov’07 dec’07 jan’08 feb’08 mar’08 apr’08
Writing the
description of the
process model
MILESTONE: process
Model Chosen.
4. Perform the
Requirement Analysis
Write out the
requirement
documentation including
the requirement,
definition and the
requirement
specification.
MILESTONE:
Completion of the
requirement analysis
phase.
5. Planning the Project
Determine the project
scope.
Determine the project
resources.
MILESTONE: Plan of
the project completed.
6. Identify the sub-
system
Separation module-wise
information.
Modularize software.
MILESTONE: Back end
modularized.
7. Design Modules
Designing of Login Form
module.
Designing of Search
Form Module
RIT, INDORE 42
SPOUSAL
Work Tasks aug’07 sep’07 oct’07 nov’07 dec’07 jan’08 feb’08 mar’08 apr’08
Designing of Advance
search module.
Designing of Photo
Gallery search
Designing of Personal
profile page module.
Designing of Database
MILESTONE:
Completion of the design
of System Modules.
8. Deciding Tools &
Database System
Comparison of available
tools.
Evaluate the selected
tool. Decide the
architecture to be used.
Choose Database System.
MILESTONE: Tool &
Architecture decided.
9. Implementation of
the Project Modules
Coding the login form
module.
Coding the Search
module.
Coding the Photo Gallery
search module.
Coding the Advance
search module.
Coding the Personal
profile page module.
Coding the up gradation
Submodule.
MILESTONE:
Completion of Coding
the System Modules.
10. Testing
Perform White Box &
Black Box Testing
Test each individual
function and the entire
system as a unit
MILESTONE:
Completion of Testing.
RIT, INDORE 43
SPOUSAL
COCOMO
Boehm derived a cost model called COCOMO (Constructive Cost Model) using data
from a large set of projects at TRW, a consulting firm based in California (Fenton, 1997).
COCOMO is a relatively straightforward model based on inputs relating to the size of the
system and a number of cost drivers that affect productivity. The original COCOMO
model was first published in 1981 (Boehm, 1981). Boehm and his colleagues have since
defined an updated COCOMO, called COCOMO II, which accounts for recent changes in
software engineering technology (Fenton, 1997).
Original COCOMO
RIT, INDORE 44
SPOUSAL
The effort adjustment factor (EAF) is calculated using 15 cost drivers. The cost drivers
are grouped into four categories: product, computer, personnel, and project. Each cost
driver is rated on a six-point ordinal scale ranging from low to high importance. Based on
the rating, an effort multiplier is determined using Table 5 (Boehm, 1981). The product
of all effort multipliers is the EAF.
Current Semester Project
Sr Measurement Count Weighting Factor Total
.No. parameter
Simple Average Complex Weighting
Factor*Count
1 Number of input 8 3 4 6 24
2 Number of output 11 4 5 7 44
3 Number of files 10 3 4 6 40
RIT, INDORE 45
SPOUSAL
4 Number of inquiry 4 7 10 15 40
5 Number of interfaces 3 5 7 10 15
Total: - 43
FP = UFP*(0.65+0.01*∑F)
=176.04
≈176
1FP=32LOC in VB
176*32=5632LOC
=5.6KLOC
≈6KLOC
RIT, INDORE 46
SPOUSAL
Our system is organic because of less complexity of the system and understanding of the
functionality of the system was easy. Also the project length is 6 KLOC which comes
under the category of organic systems.
Effort = A1*(KLOC)^A2
=2.4 * 6 ^ 1.05
≈16 PM
Tdev=B1 * (Effort) ^ B2
=7.16
≈ 7 months
13. CONCLUSION
RIT, INDORE 47