0% found this document useful (0 votes)
28 views112 pages

Se Lab Manual

Uploaded by

srinuyejarla5
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
28 views112 pages

Se Lab Manual

Uploaded by

srinuyejarla5
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 112

SREYAS INSTITUTE OF ENGINEERING & TECHNOLOGY

(Approved by AICTE, Affiliated to JNTUH)


2-50/5, SyNo.107, Tattiannaram(V), G.S.I Bandlaguda, Nagole, Hyderabad – 500 068

DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING

SOFTWARE ENGINEERING
LAB MANUAL
III-B Tech – I Semester [Branch: CSE(R18)]

SREYAS INSTITUTE OF ENGINEERING & TECHNOLOGY


Besides InduAranya, Nagole, Hyderabad.
SREYAS INSTITUTE OF ENGINEERING AND TECHNOLOGY
(Approved by AICTE, Affiliated to JNTUH)
G.S.I. Bandlaguda, Nagole, Hyderabad - 500068

CERTIFICATE

LAB NAME : SOFTWARE ENGINEERING LAB

BRANCH : CSE

YEAR & SEM : III – I

REGULATION : R18
VISION & MISSION OF INSTITUTION

VISION
To be a centre of excellence in technical education to empower the young talent
through quality education and innovative engineering for well being of the society
MISSION
1. Provide quality education with innovative methodology and intellectual human
capital.
2. Provide conducive environment for research and developmental activities.
3. Inculcate holistic approach towards nature, society and human ethics with lifelong
learning attitude.
VISION & MISSION OF DEPARTMENT

Vision

To excel in computer science engineering education with best learning practices,


research and professional ethics.

Mission

1. To offer technical education with innovative teaching, good infrastructure and


qualified human resources.
2. Accomplish a process to advance knowledge in the subject and promote academic
and research environment.
3. To impart moral and ethical values and interpersonal skills to the students.
Program Educational Objectives

Computer Science & Engineering (CSE) is one of the most prominent technical fields in
Engineering. The curriculum offers courses with various areas of emphasis on theory, design
and experimental work. Subject matter ranges from basics of Computers & Programming
Languages to Compiler Design and Cloud Computing. It maintains strong tie-ups with
industry and is dedicated to preparing students for a career in Web Technologies, Object
Oriented Analysis and Design, Networking & Security, Databases, Data Mining & Data
Warehousing and Software Testing.
PROGRAM OUTCOMES(POs)
Engineering Graduates will be able to:
1. Engineering Knowledge: Apply the knowledge of mathematics, science, engineering
fundamentals, and an engineering specialization to the solution of complex engineering
problems.
2. Problem analysis: Identify, formulate, review research literature, and analyze complex
engineering problems reaching substantiated conclusions using first principles of
mathematics, natural sciences, and engineering sciences.
3. Design/development of solutions: Design solutions for complex engineering problems
and design system components or processes that meet the specified needs with appropriate
consideration for the public health and safety, and the cultural, societal, and environmental
considerations.
4. Conduct investigations of complex problems: Use research-based knowledge and
research methods including design of experiments, analysis and interpretation of data, and
synthesis of the information to provide valid conclusions.
5. Modern tool usage: Create, select, and apply appropriate techniques, resources, and
modern engineering and IT tools including prediction and modeling to complex
engineering activities with an understanding of the limitations.
6. The engineer and society: Apply reasoning informed by the contextual knowledge to
assess societal, health, safety, legal and cultural issues and the consequent responsibilities
relevant to the professional engineering practice.
7. Environment and sustainability: Understand the impact of the professional engineering
solutions in societal and environmental contexts, and demonstrate the knowledge of, and
need for sustainable development.
8. Ethics: Apply ethical principles and commit to professional ethics and responsibilities and
norms of the engineering practice.
9. Individual and team work: Function effectively as an individual, and as a member or
leader in diverse teams, and in multidisciplinary settings.
10. Communication: Communicate effectively on complex engineering activities with the
engineering community and with society at large, such as, being able to comprehend and
write effective reports and design documentation, make effective presentations, and give
and receive clear instructions.
11. Project management and finance: Demonstrate knowledge and understanding of the
engineering and management principles and apply these to one’s own work, as a member
and leader in a team, to manage projects and in multidisciplinary environments.
12. Life-long learning: Recognize the need for, and have the preparation and ability to
engage in independent and life-long learning in the broadest context of technological
change.

PROGRAM SPECIFIC OUTCOMES (PSOs)

13. Proficiency on the contemporary skills towards development of innovative apps and
firmware products.
14. Capabilities to participate in the construction of software systems of varying complexity.
DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING
III Year B.Tech CSE- I Sem

SOFTWARE ENGINEERING LAB INSTRUCTIONS TO THE STUDENTS

Things to Do:

1) Students should come in formal dresses.


2) Students must wear their id cards.
3) They have to be in the lab before 10 minutes.
4) They should come up with the observation and the record.
5) Observation should get corrected with the concerned faculty.
6) The programs corrected by the faculty have to copy to record.
7) They should maintain silence in the lab.

Things not to do:

1) Students should not bring any electronic gadgets into the lab.
2) They should not come late.
3) You should not create any disturbances to others.

HOD Lab Incharge


JAWAHARLAL NEHRU TECHNOLOGICAL UNIVERSITY HYDERABAD
III Year B.Tech. CSE. I – Sem L T P C
CourseCode:CS505PC 0 0
3 1.5
SOFTWARE ENGINEERING LAB
Prerequisites
1. A course on “Programming for ProblemSolving”

Co-requisite
1. A Course on “Software Engineering”

Course Objectives
1. To have hands on experience in developing a software project by using various
software engineering principles and methods in each of the phases of software
development.

Course Outcomes
1. Ability to translate end-user requirements into system and softwarerequirements
2. Ability to generate a high-level design of the system from the software
requirements
3. Willhaveexperienceand/orawarenessoftestingproblemsandwillbeabletodevelopa
simple testingreport

List of Experiments
Dothefollowing8exercisesforanytwoprojectsgiveninthelistofsampleprojectsoranyothe
r projects:
1) Development of problemstatement.
2) PreparationofSoftwareRequirementSpecificationDocument,DesignDocumentsa
ndTesting Phase relateddocuments.
3) PreparationofSoftwareConfigurationManagementandRiskManagementrelateddocu
ments.
4) Study and usage of any Design phase CASEtool
5) Performing the Design by using any Design phase CASEtools.
6) Develop test cases for unit testing and integrationtesting
7) Develop test cases for various white box and black box testingtechniques.
Sample Projects:
1. Passport automationSystem
2. BookBank
3. Online Exam Registration
4. Stock MaintenanceSystem
5. Online course reservationsystem
6. E-ticketing
7. Software Personnel ManagementSystem
8. Credit CardProcessing
9. E-book managementSystem.
10. Recruitmentsystem

TEXT BOOKS:
1. SoftwareEngineering,Apractitioner’sApproach-
RogerS.Pressman,6thedition,McGrawHill InternationalEdition.
2. Software Engineering- Sommerville, 7thedition, PearsonEducation.
3. The unified modeling language user guide Grady Booch, James Rambaugh,
Ivar Jacobson, PearsonEducation.
INDEX

S.No Program Name Page No.

1 Introduction to Software Engineering 1- 40


2 Passport automationSystem 41- 82
3 E-Ticketing System 83- 102
VIVA QUESTIONS 103
SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

CHAPTER-1: INTRODUCTION TO SOFTWARE ENGINEERING

Software Engineering is a discipline whose aim is the production of the fault free software that
is delivered on time, and satisfies the user’s needs.
Software engineering is about teams. The problems to solve are so complex or large, that a
single developer cannot solve them anymore. Software engineering is also about
communication. Teams do not consist only of developers, but also of testers, architects,
system engineers, customer, project managers, etc.
Software projects can be so large that we have to do careful planning. Implementation is no
longer just writing code, but it is also following guidelines, writing documentation and also
writing unit tests. But unit tests alone are not enough. The different pieces have to fit together.
And we have to be able to spot problematic areas using metrics. They tell us if our code
follows certain standards. Once we are finished coding, that does not mean that we are
finished with the project: for large projects maintaining software can keep many people busy
for a long time. Since there are so many factors influencing the success or failure of a project.
We also need to learn a little about project management and its pitfalls, but especially what
makes projects successful. There are four fundamental phases in most, if not all,
software engineering methodologies. These phases are analysis, design, implementation, and
testing. These phases address what is to be built, how it will be built, building it, and making it
high quality.
Software is more than just a program code. A program is an executable code, which serves
some computational purpose. Software is considered to be collection of executable
programming code, associated libraries and documentations. Software, when made for a
specific requirement is called software product.
Engineering on the other hand, is all about developing products, using well-defined, scientific
principles and methods.

Department of Computer Science and Engineering, SREYAS Page 1


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

Software engineering is an engineering branch associated with development of software


product using well-defined scientific principles, methods and procedures. The outcome of
software engineering is an efficient and reliable software product.
Definitions:
IEEE defines software engineering as:
(1) The application of a systematic, disciplined, quantifiable approach to the development,
operation and maintenance of software; that is, the application of engineering to software.
(2) The study of approaches as in the above statement.
Fritz Bauer, a German computer scientist, defines software engineering as:
Software engineering is the establishment and use of sound engineering principles in order to
obtain economically software that is reliable and work efficiently on real machines.
Software Evolution:
The process of developing a software product using software engineering principles and
methods is referred to as software evolution. This includes the initial development of software
and its maintenance and updates, till desired software product is developed, which satisfies the
expected requirements.

Department of Computer Science and Engineering, SREYAS Page 2


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

Evolution starts from the requirement gathering process. After which developers create a
prototype of the intended software and show it to the users to get their feedback at the early
stage of software product development. The users suggest changes, on which several
consecutive updates and maintenance keep on changing too. This process changes to the
original software, till the desired software is accomplished.
Even after the user has desired software in hand, the advancing technology and the changing
requirements force the software product to change accordingly. Re-creating software from
scratch and to go one-on-one with requirement is not feasible. The only feasible and
economical solution is to update the existing software so that it matches the latest
requirements.

CHAPTER-2: OVERVIEW OF PROCESS MODEL

Software Development Activities


In the readings on formal process models, and agile process we will see that there are a great
many ways to structure the software development process. All models, however, seem to
agree that the work can be divided into a few basic phases.
Analysis ... figuring out what to build.

Department of Computer Science and Engineering, SREYAS Page 3


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

This includes activities like creating the initial concept, developing product descriptions,
gathering requirements, and negotiating specifications.
Design ... figuring out how to build it.
This includes both technical planning (architecture, designs, modeling, prototypes) and
managerial planning (people, budgets, schedules) and the validation of those plans.
Construction&Testing ... building it.
This includes the coding of both the product and testing tools, unit testing, the development of
content and documentation, integration, whole system testing, and acceptance testing.
Deployment ... is getting it to its users.
This includes activities like release packaging and product manufacturing, early access
programs, distribution, support, bug-fixing, patches, and on-going maintenance and
enhancement.
Exactly what each one of these activities implies may be different for every project, but most
of these activities are (in some form) applicable to most software projects. Where people
differ is on how to structure these phases and activities into a software project.

2.1 Software Process Models:


There are a few basic models, into which the above phases are traditionally organized.
2.1.1 The Waterfall Model:
The first and most primitive development model is the waterfall model .
It is a simple and intuitive model, where each phase is completed (and verified) before the
next phase is begun, and the whole sequence culminates in a finished product.
Experience has shown this model to be a simpler solution than most interesting software
projects will admit of. But, the drawback is all the requirements to solve the problem must be
explicitly stated in the beginning. As a result, very few problems can actually be solved in a
simple one-pass waterfall project.If we cannot solve our problem in one-pass, we will have to
solve it with a series of successive approximations.

Department of Computer Science and Engineering, SREYAS Page 4


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

2.1.2 The Incremental Model:


Often, we have a grand vision, but we clearly understand how to realize only a small subset of
it. If that initial subset would be a useful product in its own right, there is no reason for us to
even try to create the whole grand vision in a single project.
Define, plan, build, and deploy the initial subset that we understand. In this process we will
learn valuable lessons about both the problems to be solved, and how users use the software.
Based on this new information, we can define and plan the next release, with additional
features.
This model of successive releases is employed in most major software projects. Each
successive release is much simpler than the grand vision, and we only build the parts for
which we have a good understanding of the requirements and design. This approach has the
potential to get us to our desired end point, in a series of smaller, simpler, safer steps.
2.1.3 Iterative vs. Incremental :(Research vs. Development)
It is important to recognize the difference between research and development:
A development model is appropriate when we are pretty sure that we know what we want to
build, and how to build it. A development project is expected to culminate in a product..
If we are trying to figure out what we should build, or how to build it, those
are research problems. A research project is expected to culminate in answers to questions,
and usually additional questions.
The difference between Incremental and Iterative models is the difference between a
cascading succession of development projects, and a cascading succession of research
projects.
If our goal is to figure out what to build (or how to build it), we cannot be certain that, at the
end of the next cycle of activities, we will have a product, or that we will even have a clear
definition and plan for a product. We may have go through many iterations of definition,
planning, construction, and evaluation before we are prepared to define and plan a product

Department of Computer Science and Engineering, SREYAS Page 5


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

cycle. Because these models go through an unpredictable succession of development cycles,


they are often referred to as spiral models).
2.1.4 Choosing a Model:
The decision of whether to use a waterfall, incremental, or iterative model is not a matter of
personal choice. It is a characterization of our goals and how confident we are of them:
If we are building a one-time project with clear requirements, and no major problems
anticipated, a simple waterfall model is the right one.
If we are planning to deliver a succession of products, each with incremental capabilities, and
benefiting from lessons learned in prior releases, an incremental model describes our
approach.
If we are investigating potential products or ways of building them, and our goal is to
experiment with and validate alternative approaches, a spiral model is the one that best suits
the problem.
You are not forced to choose one model or the other. You are free to arrange activities and to
create a hybrid model that best fits your problem. But projects often involve building many
different things, some of which are much better understood than others.
2.1.5 Processes Definitions:
The high level models describe a general sequencing of activities, and set expectations for
what kind of a project we are undertaking. They do not actually tell us what we have to do. In
section 2.1 a sample list of activities for each phase are mentioned. But for any given project
any one of those activities (e.g. gathering requirements) could be broken down into a more
detailed list of tasks:
identifying potential stake holders
preliminary requirements elicitation
clarification of unclear requirements
reconciliation of disparate priorities
prioritization of requirements

Department of Computer Science and Engineering, SREYAS Page 6


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

preparation of requirements specification


validation of requirements specification
And for each of these tasks, we could, in turn further enumerate and refine lists of sub-tasks.
Most large software development organizations have such process specifications.

Project phases include activities that are expected to be completed during each phase.Tasks
and sub-tasks are included in each activity,what outputs are expected from each activity,
project approval decision points, and how the decisions are to be made are also mentioned for
each phase.
Many people consider these specifications to be very helpful, as they guide the project team
from one step to the next, and clearly spell out what is expected of them at each point.

Department of Computer Science and Engineering, SREYAS Page 7


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

2.2 SOFTWARE DEVELOPMENT PROCESS

Software Development Activities

1.ANALYSIS PHASE

The analysis phase defines the requirements of the system, independent of how these
requirements will be accomplished. This phase defines the problem that the customer is trying
to solve. The deliverable result at the end of this phase is a requirement document. Ideally, this
document states in a clear and precise fashion what is to be built. This analysis represents the
“what” phase. The requirement document tries to capture the requirements from the
customer’s perspective by defining goals and interactions at a level removed from the
implementation details. The requirement document may be expressed in a formal language
based on mathematical logic.
Traditionally, the software requirement document is written in English language. The
requirement document does not specify the architectural or implementationdetails but

Department of Computer Science and Engineering, SREYAS Page 8


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

specifies information at the higher level of description. The problem statement, the customer’s
expectations, and the criteria for success are examples of high-level descriptions.
2. DESIGN PHASE
The result of the software requirements analysis (SRA) usually is a specification. The design
helps us turning this specification into a working system. As we have seen there are different
kinds of software designs.
Architectural Design:
The process of defining a collection of hardware and software components and their interfaces
to establish the framework for the development of a computer system.
Detailed Design:
The process of refining and expanding the preliminary design of a system or component to the
extent that the design is sufficiently complete to begin implementation
Functional Design:
The process of defining the working relationships among the components of a system.
Preliminary Design:
The process of analyzing design alternatives and defining the architecture, components,
interfaces, and timing/sizing estimates for a system or components. There are many aspects to
consider in the design of a piece of software. The importance of each should reflect the goals
the software is trying to achieve. Some of these aspects are:
Compatibility
- The software is able to operate with other products that are designed for interoperability with
another product. For example, a piece of software may be backward-compatible with an older
version of itself.
Extensibility
- New capabilities can be added to the software without major changes to the underlying
architecture.

Department of Computer Science and Engineering, SREYAS Page 9


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

Fault-tolerance
The software is resistant to and able to recover from component failure.

Maintainability
- The software can be restored to a specified condition within a specified period of time.
Modularity
- The resulting software comprises well defined, independent components that leads to better
maintainability. The components could be then implemented and tested in isolation before
being integrated to form a desired software system. This allows division of work in a software
development project.

3. IMPLEMENTATION / CODING PHASE


On receiving system design documents, the work is divided in modules/units and actual
coding is started. Since, in this phase the code is produced so it is the main focus for the
developer. Implementation is the part of the process where software engineers actually
program the code for the project. The implementation phase deals with issues of quality,
performance, baselines, libraries, and debugging. The end deliverable is the product itself.

4.TESTING
After the code is developed it is tested against the requirements to make sure that the product is actually solving
the needs addressed and gathered during the requirements phase. During this phase unit testing, integration
testing, system testing, acceptance testing are done.

5.DEPLOYMENT
After successful testing the product is delivered / deployed to the customer for their use.

Department of Computer Science and Engineering, SREYAS Page 10


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

Once when the customers starts using the developed system then the problems that ariseneeds
to be solved from time to time. This process where the care is taken for the developed product is known as
maintenance.
CHAPTER-3:DATA MODEL

Data dictionary is the centralized collection of information about data. It stores meaning and
origin of data, its relationship with other data, data format for usage etc. Data dictionary has
definitions of all names in order to facilitate user and software designers.
Data dictionary is often referenced as meta-data (data about data) repository. It is created
along with DFD (Data Flow Diagram) model of software program and is expected to be
updated whenever DFD is changed or updated.
Requirement of Data Dictionary
The data is referenced via data dictionary while designing and implementing software. Data
dictionary removes any chances of ambiguity. It helps keeping work of programmers and
designers synchronized while using same object reference everywhere in the program.
Contents
Data dictionary should contain information about the following:
Data Flow
Data Structure
Data Elements
Data Stores
Data Processing

Department of Computer Science and Engineering, SREYAS Page 11


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

Data Flow is described by means of DFD s as studied earlier and represented in algebraic
form as described.
= Composed of
{} Repetition
() Optional
+ And
[/] Or

Example
Address = House No + (Street / Area) + City + State
Course ID = Course Number + Course Name + Course Level + Course Grades

Data Elements
Data elements consist of Name and descriptions of Data and Control Items, Internal or
External data stores etc. with the following details:
Primary Name
Secondary Name (Alias)
Use-case (How and where to use)
Content Description (Notation etc. )
Supplementary Information (preset values, constraints etc.)

Data Store
It stores the information from where the data enters into the system and exists out of the
system. The Data Store may include -
Files Internal to software.
External to software but on the same machine.
External to software and system, located on different machine.

Department of Computer Science and Engineering, SREYAS Page 12


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

Tables
Naming convention
Indexing property

Data Processing
There are two types of Data Processing:
Logical: As user sees it
Physical: As software sees it

ANALYSIS MODELING: At a technical level, software engineering begins with a series of


modeling tasks that lead to a complete specification of requirement and a comprehensive
design representation for the software to be built. The analysis model, actually a set of
modules, is the first technical representation of a system.
DATA MODELING: The data model consists of three inter related pieces of
information: the data object, the attributes that describe the data object, and the relationships
that connect data objects to one another.Entity Relationship diagram of the project is to be
drawn.
FUNCTIONAL MODELING: Information is transformed as it flows through a
computer-based system. The system accepts in a variety of forms; applies hardware, software,
and human elements to transform it; and produces output in a variety of forms.
DATA FLOW DIAGRAMS: As information moves through software, it is modified by
a series of transformation. A data flow diagram is a graphical representation that depicts
information flow and that are applied as data move from input to output. The basic form of a
data flow diagram, also known as a data flow graph or bubble graph.

CHAPTER-4: INTRODUCTION TOUML (UNIFIED MODELING LANGUAGE)

Department of Computer Science and Engineering, SREYAS Page 13


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

The UML is a language for specifying, constructing, visualizing, and documenting the
software system and its components. The UML is a graphical language with set of rules and
semantics. The rules and semantics of a model are expressed in English in a form known as
OCL (Object Constraint Language). OCL uses simple logic for specifying the properties of a
system.
The UML is intended to be a visual programming language. However it has a much closer
mapping to object-oriented programming languages, so that the best of both can be obtained.
UML is appropriate for modelling systems, ranging from enterprise information system to
distributed web based and to real time embedded systems.
The three major language elements are:

1.UML basic building blocks.


2.Rules that dictate how this building blocks put together
3.Some common mechanism that apply throughout the language.

The primary goals in the design of UML are:


1. Provides users ready to use, expressive visual modelling language as well so they can
develop and exchange meaningful models.
2. Provide extensibility and specialization mechanisms to extend the core concepts.
3. Be independent of particular programming languages and development processes.
4. Provide formal basis for understanding the modelling language.
5. Encourage the growth of the OO tools market.
6. Support higher-level development concepts.
7. Integrate best practices and methodologies. Every complex system is best approached
through a small set of nearly independent views of a model.
The UML defines nine graphical diagrams:

Department of Computer Science and Engineering, SREYAS Page 14


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

1. Class diagram
2. Object diagram
3. Use-case diagram
4. Sequence diagram
5. Collaboration diagram
6. Activity diagram
7. State chart diagram
8. Component diagram
9. Deployment diagram

UML
UML stands for Unified Modeling Language. This object-oriented system of notation has
evolved from the work of Grady Booch, James Rum Baugh, Ivan Jacobson, and the Rational
Software Corporation. These renowned computer scientists fused their respective technologies
into a single, standardized model. Today, UML is accepted by the Object Management Group
(OMG) as the standard for modeling object oriented programs.

Types of UML Diagrams


UML defines nine types of diagrams: class , object, use case, sequence, collaboration, state
chart, activity, component, and deployment.

Class Diagrams
Class diagrams are the backbone of almost every object oriented method, including UML.
They describe the static structure of a system.

Department of Computer Science and Engineering, SREYAS Page 15


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

Package Diagrams
Package diagrams are a subset of class diagrams, but developers sometimes treat them as a
separate technique. Package diagrams organize elements of a system into related groups to
minimize dependencies between packages.

Object Diagrams
Object diagrams describe the static structure of a system at a particular time. They can be used
to test class diagrams for accuracy.

Department of Computer Science and Engineering, SREYAS Page 16


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

Use Case Diagrams:


Use case diagrams model the functionality of system using actors and use cases.

Sequence Diagrams:
Sequence diagrams describe interactions among classes in terms of an exchange of messages
over time.

Collaboration Diagrams:
Collaboration diagrams represent interactions between objects as a series of sequenced
messages. Collaboration diagrams describe both the static structure and the dynamic behavior
of a system.

Department of Computer Science and Engineering, SREYAS Page 17


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

State chart Diagrams:


State chart diagrams describe the dynamic behavior of a system in response to external
stimuli. State chart diagrams are especially useful in modeling reactive objects whose states
are triggered by specific events.

Activity Diagrams:
Activity diagrams illustrate the dynamic nature of a system by modeling the flow of control
from activity to activity. An activity represents an operation on some class in the system that
results in a change in the state of the system. Typically, activity diagrams are used to model
workflow or business processes and internal operation.

Component Diagrams:
Component diagrams describe the organization of physical software components, including
source code, run-time (binary) code, and executables.

Department of Computer Science and Engineering, SREYAS Page 18


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

Deployment Diagrams:
Deployment diagrams depict the physical resources in a system, including nodes, components,
and connections.

Class diagrams are the backbone of almost every object-oriented method including UML.
They describe the static structure of a system.
Basic Class Diagram Symbols and Notations:
Classes represent an abstraction of entities with common characteristics. Associations
represent the relationships between classes.
Illustrate classes with rectangles divided into compartments. Place the name of the class in the
first partition (centered, bolded, and capitalized), list the attributes in the second partition, and
write operations into the third.

Department of Computer Science and Engineering, SREYAS Page 19


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

Active Class:
Active classes initiate and control the flow of activity, while passive classes store data and
serve other classes. Illustrate active classes with a thicker border.

Visibility:
Use visibility markers to signify who can access the information contained within a class.
Private visibility hides information from anything outside the class partition. Public visibility
allows all other classes to view the marked information. Protected visibility allows child
classes to access information they inherited from a parent class.

Associations
Associations represent static relationships between classes. Place association names above, on,
or below the association line. Use a filled arrow to indicate the direction of the relationship.
Place roles near the end of an association. Roles represent the way the two classes see each
Department of Computer Science and Engineering, SREYAS Page 20
SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

other.
Note: It's uncommon to name both the association and the class roles.

Multiplicity (Cardinality)
Place multiplicity notations near the ends of an association. These symbols indicate the
number of instances of one class linked to one instance of the other class. For example, one
company will have one or more employees, but each employee works for one company only.

Constraint
Place constraints inside curly braces {}.

Department of Computer Science and Engineering, SREYAS Page 21


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

Simple Constraint

Composition and Aggregation:


Composition is a special type of aggregation that denotes a strong ownership between Class
A, the whole, and Class B, its part. Illustrate composition with a filled diamond. Use a hollow
diamond to represent a simple aggregation relationship, in which the "whole" class plays a
more important role than the "part" class, but the two classes are not dependent on each other.
The diamond end in both a composition and aggregation relationship points toward the
"whole" class or the aggregate.

Department of Computer Science and Engineering, SREYAS Page 22


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

Generalization
Generalization is another name for inheritance or an "is a" relationship. It refers to a
relationship between two classes where one class is a specialized version of another. For
example, Honda is a type of car. So the class Honda would have a generalization relationship
with the class car.

In real life coding examples, the difference between inheritance and aggregation can be
confusing. If you have an aggregation relationship, the aggregate (the whole) can access only
the PUBLIC functions of the part class. On the other hand, inheritance allows the inheriting
class to access both the PUBLIC and PROTECTED functions of the super class.
Package diagrams organize the elements of a system into related groups to minimize
dependencies among them.

Basic Package Diagram Symbols and Notations

Department of Computer Science and Engineering, SREYAS Page 23


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

Packages
Use a tabbed folder to illustrate packages. Write the name of the package on the tab or inside
the folder. Similar to classes, you can also list the attributes of a package.

Visibility
Visibility markers signify who can access the information contained within a package. Private
visibility means that the attribute or the operation is not accessible to anything outside the
package. Public visibility allows an attribute or an operation to be viewed by other packages.
Protected visibility makes an attribute or operation visible to packages that inherit it only.

Dependency
Dependency defines a relationship in which changes to one package will affect another
package. Importing is a type of dependency that grants one package access to the contents of
another package.

Department of Computer Science and Engineering, SREYAS Page 24


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

Use case diagrams model the functionality of a system using actors and use cases. Use cases
are services or functions provided by the system to its users.

Basic Use Case Diagram Symbols and Notations

System
Draw your system's boundaries using a rectangle that contains use cases. Place actors outside
the system's boundaries.

Use Case
Draw use cases using ovals. Label with ovals with verbs that represent the system's functions.

Department of Computer Science and Engineering, SREYAS Page 25


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

Actors
Actors are the users of a system. When one system is the actor of another system, label the
actor system with the actor stereotype.

Relationships
Illustrate relationships between an actor and a use case with a simple line. For relationships
among use cases, use arrows labeled either "uses" or "extends." A "uses" relationship indicates
that one use case is needed by another in order to perform a task. An "extends" relationship
indicates alternative options under the extended usecase.

Department of Computer Science and Engineering, SREYAS Page 26


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

Sequence diagrams describe interactions among classes in terms of an exchange of messages


over time.

Basic Sequence Diagram Symbols and Notations

Class roles
Class roles describe the way an object will behave in context. Use the UML object symbol to
illustrate class roles, but don't list object attributes.

Activation
Activation boxes represent the time an object needs to complete a task.

Messages
Messages are arrows that represent communication between objects. Use half-arrowed lines to
represent asynchronous messages. Asynchronous messages are sent from an object that will
not wait for a response from the receiver before continuing its tasks.

Department of Computer Science and Engineering, SREYAS Page 27


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

Various message types for Sequence and Collaboration diagrams


Lifelines
Lifelines are vertical dashed lines that indicate the object's presence over time.

Destroying Objects
Objects can be terminated early using an arrow labeled "<< destroy >>" that points to an X.

Department of Computer Science and Engineering, SREYAS Page 28


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

Loops
A repetition or loop within a sequence diagram is depicted as a rectangle. Place the condition
for exiting the loop at the bottom left corner in square brackets [ ].

Basic Collaboration Diagram Symbols and Notations

Department of Computer Science and Engineering, SREYAS Page 29


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

A collaboration diagram describes interactions among objects in terms of sequenced


messages. Collaboration diagrams represent a combination of information taken from class,
sequence, and use case diagrams describing both the static structure and dynamic behavior of
a system.

Class roles
Class roles describe how objects behave. Use the UML object symbol to illustrate class roles,
but don't list object attributes.

Association roles
Association roles describe how an association will behave given a particular situation. You
can draw association roles using simple lines labeled with stereotypes.

Messages
Unlike sequence diagrams, collaboration diagrams do not have an explicit way to denote time
and instead number messages in order of execution. Sequence numbering can become nested
using the Dewey decimal system. For example, nested messages under the first message are
labeled 1.1, 1.2, 1.3, and so on. The a condition for a message is usually placed in square
brackets immediately following the sequence number. Use a * after the sequence number to
indicate a loop

Department of Computer Science and Engineering, SREYAS Page 30


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

A state chart diagram shows the behavior of classes in response to external stimuli. This
diagram models the dynamic flow of control from state to state within a system.

Basic State chart Diagram Symbols and Notations

States
States represent situations during the life of an object.

Transition
A solid arrow represents the path between different states of an object. Label the transition
with the event that triggered it and the action that results from it.

Initial State
A filled circle followed by an arrow represents the object's initial state.

Department of Computer Science and Engineering, SREYAS Page 31


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

Final State
An arrow pointing to a filled circle nested inside another circle represents the object's final
state.

Synchronization and Splitting of Control


A short heavy bar with two transitions entering it represents a synchronization of control. A
short heavy bar with two transitions leaving it represents a splitting of control that creates
multiple states.

Join-Synchronization of control.
Fork-Splitting of control.

Basic Activity Diagram Symbols and Notations

An activity diagram illustrates the dynamic nature of a system by modeling the flow of control
from activity to activity. An activity represents an operation on some class in the system that
results in a change in the state of the system. Typically, activity diagrams are used to model
workflow or business processes and internal operation. Because an activity diagram is a
special kind of state chart diagram, it uses some of the same modeling conventions.

Action states
Department of Computer Science and Engineering, SREYAS Page 32
SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

Action states represent the no interruptible actions of objects.

Action Flow
Action flow arrows illustrate the relationships among action states.

Object Flow
Object flow refers to the creation and modification of objects by activities. An object flow
arrow from an action to an object means that the action creates or influences the object. An
object flow arrow from an object to an action indicates that the action state uses the object.

Initial State
A filled circle followed by an arrow represents the initial action state.

Final State
An arrow pointing to a filled circle nested inside another circle represents the final action
state.

Department of Computer Science and Engineering, SREYAS Page 33


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

Branching
A diamond represents a decision with alternate paths. The outgoing alternates should be
labeled with a condition or guard expression. You can also label one of the paths "else."

Synchronization
A synchronization bar helps illustrate parallel transitions. Synchronization is also called
forking and joining.

Swim lanes
Swim lanes group related activities into one column

Department of Computer Science and Engineering, SREYAS Page 34


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

Basic Component Diagram Symbols and Notations

A component diagram describes the organization of the physical components in a system.

Component
A component is a physical building block of the system. It is represented as a rectangle with
tabs.

Interface
An interface describes a group of operations used or created by components.

Dependencies
Draw dependencies among components using dashed arrows.

Basic Deployment Diagram Symbols and Notations

Department of Computer Science and Engineering, SREYAS Page 35


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

Deployment diagrams depict the physical resources in a system including nodes, components,
and connections.
Component
A node is a physical memory that executes the components.

Association Association refers to a physical connection between nodes, such as Ethernet.

Components and Nodes


Place components inside the node that deploys them.

CHAPTER-5:TESTING

Design test cases for structural testing or white box testing.


White box testing (a.k.a. clear box testing, glass box testing, transparent box testing, and
translucent box testing or structural testing) uses an internal perspective of the system to
design test cases based on internal structure. It requires programming skills to identify all
paths through the software. The tester chooses test case inputs to exercise paths through the
code and determines the appropriate outputs Prepare test data compare the results to test cases
after running the data.
Department of Computer Science and Engineering, SREYAS Page 36
SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

5.1. Unit Testing


Testing of an individual software component or module is termed as Unit Testing. It is
typically done by the programmer and not by testers, as it requires a detailed knowledge of the
internal program design and code. It may also require developing test drive modules or test
harnesses.

5.2. Graphical User Interface (GUI) Testing


The objective of this GUI testing is to validate the GUI as per the business requirement. The
expected GUI of the application is mentioned in Detailed Design Document and GUI screens.
The GUI testing includes size of the buttons and input field present on the screen, alignment
of all text, tables and content in the tables.It also validates the menu of the application, after
selecting different menu and menu items, it validates that the page does not fluctuate and the
alignment remains same after hovering the mouse on the menu or sub-menu.
5.3. Integration Testing
Testing of all integrated modules to verify the combined functionality after integration is
termed so. Modules are typically code modules, individual applications, client and server
applications on a network, etc. This type of testing is especially relevant to client/server and
distributed systems.

5.4. Functional Testing


This type of testing ignores the internal parts and focuses only on the output to check if it is as
per the requirement or not. It is a Black-box type testing geared to the functional requirements
of an application.
System Testing
Under System testing technique, the entire system is tested as per the requirements. It is a
Black-box type testing that is based on overall requirement specifications and covers all the
combined parts of a system.

Department of Computer Science and Engineering, SREYAS Page 37


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

Design test cases to Perform functional or Black box testing.


Black box testing takes an external perspective of the test object to derive test cases. These
tests can be functional or non-functional, though usually functional. The test designer selects
valid and invalid inputs and determines the correct output. There is no knowledge of the test
object's internal structure.

5.5: Test case report

1. Prepare test data


2. Compare the results to test cases after running the data. Values can be filled and compared
in the following table:

Test Case Report No.1:


Test Engineer Name:
Date: --/--/----
Form name:
Test result: Pass/Fail

Module/object name Label Name Input data Expected result Actual result Remark

Reviews
A software review is "A process or meeting during which a software product is [examined by]
project personnel, managers, users, customers, user representatives, or other interested parties
for comment or approval".
Software reviews may be divided into three categories:

Department of Computer Science and Engineering, SREYAS Page 38


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

Software peer reviews are conducted by the author of the work product, or by one or more
colleagues of the author, to evaluate the technical content and/or quality of the work.
Software management reviews are conducted by management representatives to evaluate the
status of work done and to make decisions regarding downstream activities.
Software audit reviews are conducted by personnel external to the software project, to
evaluate compliance with specifications, standards, contractual agreements, or other criteria.

Different types of reviews

Code review is systematic examination (often as peer review) of computer source code.
Pair programming is a type of code review where two persons develop code together at the
same workstation.
Inspection is a very formal type of peer review where the reviewers are following a well-
defined process to find defects.
Walk through is a form of peer review where the author leads members of the development
team and other interested parties through a software product and the participants ask questions
and make comments about defects.
Technical review is a form of peer review in which a team of qualified personnel examines the
suitability of the software product for its intended use and identifies discrepancies from
specifications and standards

Department of Computer Science and Engineering, SREYAS Page 39


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

1. PASSPORT AUTOMATION SYSTEM

PROBLEM IDENTIFICATION AND FEASIBILITY STUDY

AIM: To develop the Passport Automation System.

EXISTING SYSTEM:
The existing system is a manual method where all the details from an applicant are taken as
filled in forms, documents etc. In this system every individual has to personally submit all
the documents at the Passport office. Hence maintaining documents submitted by the
applicants is a tedious work as the number of individuals applying for passport has been
increasing every year. The applicant’s details are verified manually then sent for police
verification. After the verification process the report is manually submitted to the passport

Department of Computer Science and Engineering, SREYAS Page 40


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

office. Basing on all the documents submitted and police verification report the decision to
issue the passport or not is taken by the Passport authority. The same procedure is followed
for Passport Renewal.. Hence the manual system is more time consuming, involves more
manpower. Data security, data confidentiality are not ensured. Data loss is also possible due
to mismanagement of documents.
PROPOSED SYSTEM:
The development of a new system automates the entire process. The passport automation
system is a user friendly, flexible system where users can apply for passport, renewal their
passport; check the status of their application online. Documents are also uploaded avoiding
manual submission. Report generation features to generate different kinds of reports are
provided. Hence the time taken to issue or renewal of passport is reduced. The Man power is
also reduced. Authentication is provided for this application as only registered users can
access.
PROBLEM STATEMENT:

Passport Automation System is used for the effective dispatch of passport to all the applicants.
This system adopts a comprehensive approach to minimize the manual work.

The core of the system is to get the online application form (with details such as name,
address etc.,) filled by the applicant whose statement is verified for its genuineness by the
Passport Automation System with respect to the already existing information in the database.
This forms the first and foremost step in processing passport application.

After the first round of verification done by the system, the information is in turn forwarded to
the regional administrator’s (Ministry of External Affairs) office.The application is then
processed manually based on the report given by the system, and any forfeiting identified can
make the applicant liable to penalty as per the law.The system forwards the necessary details

Department of Computer Science and Engineering, SREYAS Page 41


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

to the police for its separate verification whose report is then presented to the
administrator.After all the necessary criteria have been met, the original information is added
to the database and the passport is sent to the applicant.

The same process is followed for passport renewal also.

FEASIBILITY STUDY:

Preliminary investigation is to examine project feasibility; the likelihood the system will be
useful to the organization.
The main objective of the feasibility study is to test the Technical, Operational and
Economical feasibility for adding new modules and debugging old running system.
Technical Feasibility
Operational Feasibility
Economical Feasibility

TECHINICAL FEASIBILITY:
The technical issues usually raised during the feasibility study include the following:
Does the necessary technology exist to do what is suggested?

Department of Computer Science and Engineering, SREYAS Page 42


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

Do the proposed equipments have the technical capacity to hold the data required to use the
new system?
Will the proposed system provide adequate response to inquiries, regardless of the number or
location of users?
Can the system be upgraded if developed?
Are there technical guarantees of accuracy, reliability, ease of access and data security?

OPERATIONAL FEASIBILITY:

Proposed projects are beneficial only if they can be turned out into information system that
will meet the organization’s operating requirements.
Operational feasibility of a project includes the following:
Is there sufficient support for the management from the users?
Will the system be used and worked properly if it is being developed and implemented?
Will there be any resistance from the user that will undermine the possible application
benefits?
.
The well planned design would ensure the optimal utilization of the computer resources and
would help in the improvement of performance status.

ECONOMICAL FEASIBILITY:
Economic feasibility of a project includes the following:
A system developed technically and installed must be a good investment for the organization.
The development cost in creating the system is evaluated against the ultimate benefit derived
from the new systems.
Financial benefits must equal or exceed the costs.
The system is economically feasible. It does not require any additional hardware or software.

Department of Computer Science and Engineering, SREYAS Page 43


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

If the system is developed using the existing resources and technologies, there is nominal
expenditure and economical feasibility is for certain.
SOFTWARE REQUIREMENTS SPECIFICATION:
The requirements document is the official statement of what is required of the system
developers.
It should include both the definition of user requirements and specification of the system
requirements.

S.NO SOFTWARE REQUIREMENT SPECIFICATION


1.0 INTRODUCTION
1.1 PURPOSE
1.2 SCOPE
1.3 DEFINITION,ACRONYMS,ABBREVIATIONS
1.4 REFERENCE
1.5 TECHNOLOGY TO BE USED
1.6 TOOLS TO BE USED
1.7 OVERVIEW
2.0 GENERAL DESCRIPTION
2.1 PRODUCT DESCRIPTION
2.2 SOFTWARE INTERFACE
2.3 HARDWARE INTERFACE
2.4 SYSTEM FUNCTION
2.5 USER CHARECTERISTICS
2.6 CONSTRAINTS
2.7 ASSUMPTIONS AND DEPENDENCIES
3.0 SPECIFIC REQUIREMENTS
3.1 FUNCTIONAL REQUIREMENTS

Department of Computer Science and Engineering, SREYAS Page 44


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

3.2 NON-FUNCTIONAL REQUIREMENTS


4.0 APPENDICES
5.0 INDEX

1.0 INTRODUCTION:

Passport Automation System is an interface between the Applicant and the Authority
responsible for the Issue of Passport. It aims at improving the efficiency in the Issue of
Passport and reduces the complexities involved in it to the maximum possible extent.

1.1 PURPOSE

If the entire process of ‘Issue of Passport’ is done in a manual manner then it would take
several months for the passport to reach the applicant. Considering the fact that the number of
applicants for passport is increasing every year, an Automated System becomes essential to
meet the demand. So this system uses several programming and database techniques to
elucidate the work involved in this process. As this is a matter of National Security, the
system has been carefully verified and validated in order to satisfy it.

1.2 SCOPE:

Department of Computer Science and Engineering, SREYAS Page 45


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

The System provides an online interface to the user where they can fill in their personal details
The authority concerned with the issue of passport can use this system to reduce his workload
and process the application in a speedy manner.
• Transfer of data between the Passport Issuing Authority and the Local Police for verification
of applicant's information.
1.3 DEFINITIONS, ACRONYMS AND THE ABBREVIATIONS:

Administrator – Refers to the super user who is the Central Authority who has been vested
with the privilege to manage the entire system. It can be any higher official in the Regional
Passport Office of Ministry of External Affairs.
Applicant – One who wishes to obtain the Passport?
PAS – Refers to Passport Automation System.
HTML Markup Language used for creating web pages.
J2EE Java 2 Enterprise Edition is a programming platform java platform for developing and
running distributed java applications.
HTTP Hyper Text Transfer Protocol.
TCP/IP Transmission Control Protocol/Internet Protocol is the communication protocol used
to connect hosts on the Internet.
1.4 REFERENCES:

IEEE Software Requirement Specification format.

1.5 TECHNOLOGIES TO BE USED:

• HTML
• JSP
• Javascript
• Java

Department of Computer Science and Engineering, SREYAS Page 46


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

1.6 TOOLS TO BE USED:

• Eclipse IDE (Integrated Development Environment)


• Rational Rose tool (for developing UML Patterns)

1.7 OVER VIEW:

SRS includes two sections overall description and specific requirements - Overall description
will describe major role of the system components and inter-connections. Specific
requirements will describe roles & functions of the actors.

2.0 OVERALL DESCRIPTION:


2.1 PRODUCT PERSPECTIVE:
The PAS acts as an interface between the 'applicant' and the 'administrator'. This system tries
to make the interface as simple as possible and at the same time not risking the security of
data stored in. This minimizes the time duration in which the user receives the passport.
2.2 SOFTWARE INTERFACE
• Front End Client - The applicant and Administrator online interface is built using JSP and
HTML. The Administrator’s local interface is built using Java.
• Web Server – Apache Tomcat application server (Oracle Corporation).
• Back End – Oracle11g database.
2.3 HARDWARE INTERFACEThe server is directly connected to the client systems. The
client systems have access to the database in the server.
2.4 SYSTEM FUNCTIONS• Secure Registration of information by the Applicants. •
Message box for Passport Application Status Display by the Administrator. • Administrator
can generate reports from the information and is the only authorized personnel to add the
eligible application information to the database.

Department of Computer Science and Engineering, SREYAS Page 47


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

2.5 USER CHARACTERISTICS


• Applicant - They are the people who desires to obtain the passport and submit the
information to the database.
• Administrator - He has the certain privileges to add the passport status and to approve the
issue of passport. He may contain a group of persons under him to verify the documents and
give suggestion whether or not to approve the dispatch of passport.
• Police - He is the person who upon receiving intimation from the PAS, perform a personal
verification of the applicant and see if he has any criminal case against him before or at
present. He has been vetoed with the power to decline an application by suggesting it to the
Administrator if he finds any discrepancy with the applicant. He communicates via this PAS.

2.6 CONSTRAINTS
• The applicants require a computer to submit their information.
• Although the security is given high importance, there is always a chance of intrusion in the
web world which requires constant monitoring.
• The user has to be careful while submitting the information. Much care is required.
2.7 ASSUMPTIONS AND DEPENDENCIES
• The Applicants and Administrator must have basic knowledge of computers and English
Language.
• The applicants may be required to scan the documents and send.

3.0 FUNCTIONAL AND NON FUNCTIONAL REQUIREMENTS:

FUNCTIONAL REQUIREMENTS:
This application comprises of six modules. They are
1 . Passport information
2 . Apply for passport

Department of Computer Science and Engineering, SREYAS Page 48


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

3 . Document uploading
4 . Payment
5 . Verification
6 . Authentication
7. Status verification and feedback/complaints

1. Passport information:
Description: This module is helpful for the people to move to other states or countries
for their needs. There are 2 ways to apply for the passport. They are -New passport and
Renewal passport.
2. Applying for passport:
This module is used for how to apply for the passport and what documents we need to
submit for the particular type of passport.
3. Document uploading:
In this module we have to submit the documents.
4. Payment:
This module is used to pay the fee in different ways
5. Verification module:
In this module different department have to verify all the certification offline and they
change the status.
6. Authentication:
This module is used to check the valid user or not.
7. Status verification and feedback/complaints:
This module is used to check the status of verification process and delivery of passport.

Non-functional Requirements:

Non-functional requirements describe aspects of the system that are not directly related
Department of Computer Science and Engineering, SREYAS Page 49
SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

to the functional behaviour of the system. Non-functional requirements include a broad


variety of requirements as given below:
Usability:
It is the ease with which a user can learn to operate, prepare inputs for, and interpret
outputs of a system or component. Often, clients address usability issues by requiring the
developer to follow user interface guidelines on colour schemes, logos, and fonts.
Reliability:
It is the ability of a system or component to perform its required functions under stated
conditions for a specified period of time. More recently, this category is often replaced by
dependability, which is the property of the computer system such that reliance can justifiably
be place on the service it delivers. Dependability includes reliability robustness, and safety.
Performance:
Performance requirements are concerned with the quantifiable attributes of the system
such as response time, throughput, availability and accuracy
Supportability:
Supportability requirements are concerned with the case of changes to the system after
deployment, including adaptability, maintainability, and internationalization.

4.0 APPENDICES
5.0 INDEX

3.UML-DIAGRAMS OF PASSPORT AUTOMATION SYSTEM

1 . Class Diagram :–
A class diagram in the Unified Modelling Language (UML) is a type of static structure diagram that
describes the structure of a system by showing the system's classes, their attributes, operations
(or methods), and the relationships among objects.
In the diagram, classes are represented with boxes that contain three compartments:

Department of Computer Science and Engineering, SREYAS Page 50


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

Class Name
attributes
operations

The top compartment contains the name of the class.Themiddle compartment contains the
attributes of the class. The bottom compartment contains the operations the class can execute.

Modeling Class diagrams

1. Identify those things that users use to describe the problem .


2. For each abstraction, identify a set of responsibilities.
3. Provide the attributes and operations that are needed to carry out these responsibilities for
each class.
4. Identify a set of classes that work together closely to carryout some behavior.
5. Given a set of classes, look for responsibilities, attributes, and operations that are common
to two or more classes.
6. Elevate these common responsibilities, attributes, and operations to a more general class.
7. Specify that the more-specific classes inherit from the more-general class by placing a
generalization relationship that is drawn from each specialized class to its more-general
parent.
8. For each pair of classes, if objects of one class need to interact with objects of the other
class other than as parameters to an operation, specify an association between the two.
9. For each of these associations, specify a multiplicity (especially when the multiplicity is
not *, which is the default), as well as role names (especially if it helps to explain the model).

Department of Computer Science and Engineering, SREYAS Page 51


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

10. If one of the classes in an association is structurally or organizationally a whole compared


with the classes at the other end that look like parts, mark this as an aggregation by adorning
the association at the end near the whole.

The classes identified for Passport Automation system are –

1. Login
Attributes:username,password
Methods:createlogin(),signin()
2. Passport Automation System(PAS)
Attributes:id,place,state
Methods:store(),update(),delete(),verify()
3. Appointment
Attributes:appointmentid,applicationid,date,time
Methods:getappointment(),getappointmentstatus(),cancel(),modify()
4. Verification
Attributes:verificationid,applicationid,officeid,statusid.
Methods:verify(),update()
5. ApplicantRegistration
Attributes:applicatioid,name,DOB,gender,birthplace,fathername,mothername,addres
s,district,state,country,emailid
Methods:add(),modify(),view()
6. LocalAuthority
Attributes:officeid,empid,empname,designation,password
Methods:verify(),update(),reject()
7. PoliceVerification
Attributes:stationid,area,officerid
Methods:verify(),update()
8. Documentverification
Attributes:empid
Methods:verify(),update(),reject(),pending()

An Applicant logsin/signin into the PAS.The applicant has to register by filling all his details
in the registration form and upload all the relevant documents for verification.An application

Department of Computer Science and Engineering, SREYAS Page 52


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

id is provided to the applicant and his details are stored in the database. He can choose date
and time to fix an appointment for the verification process and pay the required fee .The PAS
directs this request to the local authority.Document verification is done at the local passport
office on the date of appointment.If all the required documents are submitted then the process
proceeds for Police verification and the status is updated in the database otherwise the status
of the application can be rejected or pending.After police verification the status is updated by
the police officer to the local authority, who inturn updates in the PAS.If all the required
criteria is met the PAS issues/dispatches the passport otherwise it is rejected.

Class Diagram of PAS:

2. USECASEDIAGRAM:

Department of Computer Science and Engineering, SREYAS Page 53


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

• A use case diagram is a diagram that shows a set of use cases and actors and their
relationships.

Use case diagrams commonly contain

• Use cases

• Actors

• Dependency, generalization, and association relationships

use cases

The purposes of use case diagram is Used to gather the requirements of asystem,Used to get an
outside view of asystem and to show the interaction among the requirements andactors.

Modeling a Use Case Diagram


1. Establish the context of the system by identifying the actors that surround it.

2. For each actor, consider the behavior that each expects or requires the system to provide.

3. Name these common behaviors as use cases.

Department of Computer Science and Engineering, SREYAS Page 54


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

4. Factor common behavior into new use cases that are used by others; factor variant
behavior into new use cases that extend more main line flows.

5. Organize actors that are similar to one another in a generalization/specialization hierarchy.

6. Model these use cases, actors, and their relationships in a use case diagram.

Usecase Diagram of PAS:


The actors of the PAS are

1.Applicant

2.Officer

3.police

4.bank

5.PAS

The use cases are

Applicant:Login,apply,uploaddocuments,payfee,checkstaus,get appointment date.

Officer:login,verifydetails,updatestatus,process application

Police:login,getdetails,verifydetails,updatestaus

Bank:fee payment

PAS:login,getdetails,updatestaus,processapplication,issue/reject passport.

Department of Computer Science and Engineering, SREYAS Page 55


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

3. SEQUENCE DIAGRAM:

UML Sequence diagrams are used to represent or model the time ordering of
messages, events or action between the objects and components of the system.
Sequence diagrams provide a dynamic view to the system behaviour.

Sequence Diagram contains


• participant: object or entity that acts in the diagram.
• message: communication between participant objects
• the axes in a sequence diagram:
• – horizontal: which object/participant is acting

Department of Computer Science and Engineering, SREYAS Page 56


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

• – vertical: time (down -> forward in time)

Modeling Sequence Diagrams


1. Set the context for the interaction, whether it is a system, subsystem,
operation, or class, or one scenario of a use case.
2. Set the stage for the interaction by identifying which objects play a role in
the interaction.
3. Lay them out on the sequence diagram from left to right, placing the more
important objects to the left and their neighboring objects to the right.
4. Set the lifeline for each object. In most cases, objects will persist through
the entire interaction.
5. For those objects that are created and destroyed during the interaction, set
their lifelines, as appropriate, and explicitly indicate their birth and death
with appropriately stereotyped messages
6. Starting with the message that initiates this interaction, lay out each
subsequent message from top to bottom between the lifelines, showing each
message's properties (such as its parameters), as necessary to explain the
semantics of the interaction.
7. If you need to visualize the nesting of messages or the points in time
when actual computation is taking place, adorn each object's lifeline with its
focus of control.

Sequence Diagram for New User Registration and Appointment:-


1.The applicant creates a new logid and password and these details are
stored in the database of PAS.
2. The applicant signin to his account and his details are verified .
3. The registration form is displayed ,where the applicant fills in all the fields
and the information is saved in the database of PAS.

Department of Computer Science and Engineering, SREYAS Page 57


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

4. The applicant can choose date and time and fix an appointment for
document verification.
5. the details of applicantionid,date,time of appointment slot are returned to
the applicant.

4.COLLABORATION DIAGRAM:

Department of Computer Science and Engineering, SREYAS Page 58


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

A Collaboration diagram is an interaction diagram that emphasizes the structural


organization of the objects that send and receive messages.
Collaboration diagrams contain
• Objects
• Links
• Messages

Modeling collaboration diagrams


1. Set the stage for the interaction by identifying which objects play a role in
the interaction.
2. Lay them out on the collaboration diagram as vertices in a graph, placing
the more important objects in the center of the diagram and their
neighboring objects to the outside.
3. Specify the links among these objects, along which messages may pass.
4. Lay out the association links first; because they represent structural
connections.
5. Lay out other links next, and adorn them with suitable path stereotypes
(such as global and local) to explicitly specify how these objects are related
to one another.
6. Starting with the message that initiates this interaction, attach each
subsequent message to the appropriate link, setting its sequence number, as
appropriate. Show nesting by using Dewey decimal numbering.
7. If you need to specify this flow of control more formally, attach pre- and
post conditions to each message.

Collaboration Diagram for New User Registration and Appointment:-


8. 1.The vertices of the collaraboration diagram are the
UI,loginclass,registration class ,appointment class,database(PAS).

Department of Computer Science and Engineering, SREYAS Page 59


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

9. 2.Links are placed among these objects,along which the messages are
passed.The applicant creates a new logid and password and these details are
stored in the database of PAS.
10. 3.The applicant signin to his account is the initiation of the interaction
.Starting with this message that initiates this interaction, attach each
subsequent message to the appropriate link, setting its sequence number.

5. STATE DIAGRAM:

Department of Computer Science and Engineering, SREYAS Page 60


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

A statechart diagram shows a state machine, emphasizing the flow of control from state to
state. • A state machine is a behavior that specifies the sequences of states an object goes
through during its lifetime in response to events, together with its responses to those events.

• A state is a condition or situation in the life of an object during which it satisfies some
condition, performs some activity, or waits for some event.

Statechart diagrams commonly contain

✓ Simple states and composite states

✓ Transitions, including events and actions

• Astatechart diagram will use to model some dynamic aspect of a system.

Common Modeling Technique

1. Choose the context for the state machine, whether it is a class, a use case, or the system as
a whole.

2. Choose the initial and final states for the object.

3. Decide on the stable states of the object by considering the conditions in which the object
may exist for some identifiable period of time. Start with the high-level states of the object
and only then consider its possible substates.

4. Decide on the events that may trigger a transition from state to state. Model these events as
triggers to transitions that move from one legal ordering of states to another.

5. Attach actions to these transitions and/or to these states.

Statechart diagram for PAS:

The state chart diagram contains the states in the rectangle boxes and starts in

indicated by the dot and finish is indicated by dot encircled. The purpose of state chart

diagram is to understand the algorithm in the performing method.

Department of Computer Science and Engineering, SREYAS Page 61


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

The states of the passport automation system are denoted in the state chart
diagram.
Login state represent authentication for login the passport automation
system.In this state, it checks whether the applicant has provided all the
details that is required in the registration form.
Verification state represents verifying all the documents uploaded by the
applicant and police verification.
Dispatch state represents all the required criteria for passport issue are
satisfied and the passport is printed for dispatch.
Reject state represents the required criteria for passport issue are not
satisfied and is rejected.

Department of Computer Science and Engineering, SREYAS Page 62


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

6.ACTIVITYDIAGRAM:
Activity diagram inUML is used to describe the dynamic aspects of
thesystem.

Activity diagram is basically a flowchartto represent the flow from one


activity to another activity. The activity can be described as an operation of the
system.The control flow is drawn from one operation to another. This flow
can be sequential, branched, or concurrent.
With an activity diagram, we can also model the flow of an object as it moves from
state to state at different points in the flow of control.
Activity diagrams commonly contain
• Activity states
• Transitions
• Objects
Modeling Activity Diagrams
1. Establish a focus for the workflow .
2. Select the business objects that have the high-level responsibilities for parts of the overall workflow.
3. Identify the preconditions of the workflow's, initial state , post conditions of the workflow's and final
state. This is important in helping you model the boundaries of the workflow.
4. Beginning at the workflow's initial state, specify the activities and actions that take place over time
and render them in the activity diagram .
5. Render the transitions that connect these activity and action states.
6. Start with the sequential flows in the workflow first, next consider branching, and only then consider
forking and joining.
7. If there are important objects that are involved in the workflow, render them in the activity diagram,
as well. Show their changing values and state as necessary to communicate the intent of the object
flow.
Activity diagram for PAS:
The activities in the passport automation system are login, registration,
appointment,verification,policeverification,approved,dispatch,reject, issue passport .
• In the login activity applicant give username and password and then login into the passport
automation system after then fill the details that are required for application.
Department of Computer Science and Engineering, SREYAS Page 63
SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

• During the verification procedure if the documents submitted are valid the the control is
passed to the police verification activity and the passport is approved or rejected else if the
documents submitted are not valid then the control goes back to fix an another appointment
with valid documents.

7.OBJECTDAIGRAM:-

Department of Computer Science and Engineering, SREYAS Page 64


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

Object diagrams arederived from class diagrams so object diagrams are dependent
upon class diagrams.

Object diagrams represent an instance of a class diagram. The basic conceptsare


similar for class diagrams and object diagrams. Object diagramsalso represent the
static view of a system but this static view is a snapshot of the system at a
particularmoment.

Object diagrams are used to render a set of objects and their relationships as an
instance.

Object Diagram of PAS:

Department of Computer Science and Engineering, SREYAS Page 65


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

8. COMPONENT DIAGRAM–

It is used to describe the physical artifact of the system and


implementationperspective.
Component diagrams does not describe the functionality of all systems, but it
describes the components used to make thosefunctionalities.
Components diagrams can also be used to describe staticimplementation view of the
system. Static implementation represents the organization of the components at a
particularmoment.
Modeling Component Diagrams.
1. Identify the set of components you'd like to model.
2. Typically, this will involve some or all the components that live

Department of Computer Science and Engineering, SREYAS Page 66


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

on one node, or the distribution of these sets of components across


all the nodes in the system.
3. Consider the stereotype of each component in this set. For most
systems, you'll find a small number of different kinds of
components (such as executables, libraries, tables, files, and
documents).
4. For each component in this set, consider its relationship to its
neighbors.
Component Diagram of PAS:
The components in the passport automation system are passport
automation system, applicant, administrator, and police.
• Applicant , administrator, and police are dependent on passport
automation system are shown by the dotted arrow.

9. DEPLOYMENT DIAGRAM:

Department of Computer Science and Engineering, SREYAS Page 67


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

Deployment diagrams are used to visualize the topology of the physical component their
distribution and association of a system where the software components aredeployed.
The nodes appear as boxes, and the artifacts allocated to each node appear as rectangles
within the boxes. Node may have sub nodes, which appear as nestedboxes.
A node is a physical element that exists at run time and represents a computational resource,
generally having at least some memory and, often, processing capability. Graphically, a node is
rendered as a cube.
Deployment diagrams commonly contain
• Nodes
• Dependency and association relationships
Modeling Deployment Diagrams
1. Identify the nodes that represent your system's client and server processors.
2. Highlight those devices that are germane to the behavior of your system.
For example, if we want to model special devices, such as credit card readers, badge readers,
and display devices other than monitors, because their placement in the system's hardware topology
are likely to be architecturally significant.
3. Provide visual cues for these processors and devices via stereotyping
4. Model the topology of these nodes in a deployment diagram.
5. Specify the relationship between the components in your system's implementation
view and the nodes in your system's deployment view.
Deployment Diagram of PAS:
It is a graph of nodes connected by communication association. It is represented by
a three dimensional box. A deployment diagram in the unified modeling language
serves to model the physical deployment of artifacts on deployment targets.
Dependencies are represented by communication association. The basic element of
a deployment diagram is a node of two types
DEVICE NODE – A physical computing resource with processing and memory
service to execute software, such as a typical computer or a mobile phone.

Department of Computer Science and Engineering, SREYAS Page 68


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

EXECUTION ENVIRONMENT NODE-- This is a software computing resource


that runs within an outer node and which itself provides a service to host an
execute other executable software element.
The device node is passport automation system and execution environment node
are applicant, administrator, and police.

DATA FLOW DIAGRAM:-

A data flow diagram (DFD) is a graphical representation of the "flow" of data


through an information system,modeling its process aspects. A DFD is often used as
a preliminary step to create an overview of the system without going intogreat detail,
which canlaterbeelaborated. DFDs canalso be used for the visualizationof data
processing(structureddesign).

Department of Computer Science and Engineering, SREYAS Page 69


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

LEVEL 0:

Level 1:

Department of Computer Science and Engineering, SREYAS Page 70


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

TESTING: Test Cases

UNIT TESTING:

Sample code for password validation:

Consider a program which validates the password entered by a user. In order to validate a

password we need to check some conditions.

public class PasswordValidation

{
//returns true if the input contains at least two numbers else returns false
staticbooleancheckInt(String st)
{
charch[]=st.toCharArray();
int count=0;
for (inti = 0; i<ch.length; i++)
{
if(ch[i]>=48&&ch[i]<=57)
{
count++;
}
}
if(count>=2)
return true;
else
return false;
}

Department of Computer Science and Engineering, SREYAS Page 71


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

//returns true if the input contains at least one upper case letter else returns false
staticbooleancheckUpperCase(String st)
{
charch[]=st.toCharArray();
int count=0;
for (inti = 0; i<ch.length; i++) {
if(ch[i]>=65&&ch[i]<=90)
{
count++;
}
}
if (count>=1)
return true;
else
return false;
}
}
}
}

Sample Test cases to Validate password:

We have three conditions. If any one of these conditions doesn't satisfies, an error message
should be displayed saying what is wrong with the entered password.
Password should contain:
1.Characters between 8 to 10 only

2.At least one uppercase letter

3.At least two numbers

Department of Computer Science and Engineering, SREYAS Page 72


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

Req.id Testcase- Feature Input Steps to Expected Actual Testcase


id data execute result result status
R1 TC-01 Required Check the 1. Enter User Login Sucess
Fields required username should not failed.
field by 2. Do not log in and Enter a
not filling Enter should valid
any data. password show password.
3. Click on proper
Login error
Button. message

R2 TC-02 Password Check 1. Enter User Login Sucess


Validation When valid should not failed.
passing a username log in and Password
correct 2. Enter should should
username only one show contain at
and only character proper least two
one as error characters.
character password message
as 3. Click on
password Login
Button
R3 TC-03 Password Check 1. Enter User Login Sucess
Validation When valid should not Failed.
passing a username log in and Password
correct 2.Enter should should
username password show contain
and with 8to10 proper two
password characters error Uppercase
with no but no message letters.
uppercase uppercase
letters letters.
3. Click on
Login
Button
R4 TC-04 Password Check 1. Enter User Login Sucess
Validation When valid should not Failed.
passing a username log in and Password
correct 2.Enter should should
username password show contain
and with 8to10 proper atleast one

Department of Computer Science and Engineering, SREYAS Page 73


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

password characters error Uppercase


with no but no message letters and
numbers uppercase two
and no letters and numbers.
uppercase no
letters. numbers.
3. Click on
Login
Button
R5 TC-05 Password Check 1. Enter User Login Sucess
Validation When valid should log success.
passing a username in.
correct 2. Enter
username valid
and password
correct 3. Click on
password Login
Button

INTEGRATION TESTING: Registration and Upload Documents Module:

Department of Computer Science and Engineering, SREYAS Page 74


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

Req.i Testcase Feature Input Steps to Expected Actual Testcas


d -id data execute result result e status
R1 TC-01 Required Check the 1. Do not Man datory Login Sucess
Fields required enter any (*) fields failed.
fields by value in must be
not filling the field. filled
any data. 2. Click
on the
Register
button.

R2 TC-02 Required Check 1. Enter User should Login Success


fields user valid be Sucessful.
should values in registered Menu is
Register the successfully displayed.
by filling required .
all the fields. Successful
required 2. Click registration
fields the message
Register must be
button. displayed.
R3 Tc-03 Documen User is a 1. Enter user Document Success
t Upload Registered User id successfully upload
user and and login and successful
upload password. document .
documents 2.Click upload is
. on login successful.
button.
3.Select
Upload
document
s option.
4. upload
document
s and
click on
submit

White box testing:Basis Path Testing

Consider a flow chart for Login and Registration of an applicant.

Department of Computer Science and Engineering, SREYAS Page 75


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

To find out the no of independent paths that has to exercised at least once,we follow the flow
graph notation.

Consider the above flow chart and convert it into a flow graph.To know the number of basis
paths calculate Cyclomatic Complexity of the program.
The Cyclomatic Complexity defines the number of independent paths in a program and
provides an upper bound for the number of tests that must be conducted to ensure that all
statements have been executed at least once.
The flow graph can be represented as

Department of Computer Science and Engineering, SREYAS Page 76


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

Cyclomatic Complexity can be computed in one of the three ways.


The number of regions correspond to cyclomatic complexity.
The above flow graph has 4 regions .
Therefore the number of test cases to be designed are 4.
Cyclomatic complexity for a flow graph is
V(G)=E-N+2
The above graph has
V(G)=12 EDGES-10 NODES +2
=4
Cyclomatic complexity , V(G) is defined as
V(G) = P +1
Where P is the number of predicate nodes(nodes that contain a condition).
V(G)=3+1=4.
The number of Independent paths in the program are
Path 1: 1-2-3-4-5-6-7-12
Path 2:1-2-8-9-10-11-7-12
Path 3:1-2-8-9-10-2-8-9-10-11-7-12
Path 4:1-2-3-4-5-3-4-5-6-7-12

Department of Computer Science and Engineering, SREYAS Page 77


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

Test cases for Login and Registration


Req.i Testcas feature Req- Steps to Expected Actual Testcas
d e-id descripti execute result result e
on status
R1 TC-01 Login A 1. A Login Menu is Sucess
and Registere registered successful displayed
Registrati d user user login and Menu is
on login . with displayed..
valid
username
and
password.
2. if user
exists
login
successful
.
R2 TC-02 Login and A new 1. A new Login New user Sucess
Registrati user login user login unsuccessful. register is
on by with some Message new displayed.
entering username user register
user name and is displayed.
and password.
password 2. if user
does not
exist.go to
new user
for
registratio
n.
R3 TC=03 Login and A new 1. A new Registration Menu Succes
Registrati user user is Successful page is
on registratio registers and Menu is displayed.
n by with displayed
entering username
username ,emailid
, emailid and
and password.

Department of Computer Science and Engineering, SREYAS Page 78


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

password 2. if
username
does not
exist
display
registratio
n
successful
.
3.Menu is
displayed
R4 TC-04 Login and A new 1.A new Registration Message Succes
Registrati user user un User name
on registratio registers Successful.us already
n by with er name exists and
entering existing already Registrati
existing username exists.Regist on page is
username. ,emailid er again. displayed.
and
password.
2. if
username
already
exist
display
user name
exists and
goto
registratio
n page.

Black Box Testing:

This specification describes testing methods which can be used to ensure that the system
fulfills the requirements indicated in the project brief.
Department of Computer Science and Engineering, SREYAS Page 79
SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

The following are sample procedures described:

1. User Login.
2. Book Appointment.
3. Check Status.

1. User Login
A new user has to register in to the PAS by filling the registration form with all the fields
provided. He can the Login to the system and upload the documents.

OBJECTIVE: To test Successful user Login and document upload.

TEST 1: Enter the correct username and password.


EXPECTED OUTCOME: Login Successful.

TEST 2: Enter 1 time incorrect Password and then the correct Password.
EXPECTED OUTCOME: Login Successful.

TEST 2: Enter 2 times incorrect Passwords and then the correct Password
EXPECTED OUTCOME: Login Successful

TEST 3: Enter 3 times incorrect Password.


EXPECTED OUTCOME: Login Unsuccessful.

2. Book Appointment
The system should allow the applicant to select date and time to book an appointment for
verification.
OBJECTIVE: To test booking of time slot for verification.

TEST 1: Request available dates for appointment.


EXPECTED OUTCOME: Available Free slots are displayed.

TEST 2: Request to select a date, time from available slots.


EXPECTED OUTCOME: Slot allotted and updated in database.

TEST 3: Request to book another slot.


EXPECTED OUTCOME: Unsuccessful. Only one slot is booked for one application id.

Department of Computer Science and Engineering, SREYAS Page 80


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

3. Check Status.
The applicant should be able to check the status of his application.
OBJECTIVE: To test the check status procedure.

TEST 1: Request status of application by typing correct application id.


EXPECTED OUTCOME: The status of application as Dispatched /rejected is displayed on
the screen

TEST 2: Request status of application by typing in correct application id. EXPECTED


OUTCOME: Application id incorrect is displayed on the screen.

E-TICKETING
Railway Reservation System

AIM:To create an automated system to perform E-ticketing.

Department of Computer Science and Engineering, SREYAS Page 81


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

EXISTING SYSTEM:
The existing system is a manual method where the passenger has to personally go to the
Railway station, fill the form which includes all the details of the passengers travelling, train
no, source destination ,date of travel and enquire with the clerk about the availability of
tickets. The same procedure is followed for booking of tickets and cancellation of tickets.
Hence the manual system is more time consuming.

PROPOSED SYSTEM:
The development of a new system automates the entire process. The Railway reservation
system is a user friendly, flexible system where passengers can check availability of seat,
reserve seat, cancel seat, check the status of reservation from home itself.

PROBLEM STATEMENT:

Our project is carried out to develop software for online Railway Reservation System. This
system has various options like reservation, cancellation and to view details about available
seats. Our project mainly simulates the role of a Railway ticket booking officer, in a
computerized way.
The reservation option enables a person to reserve for a ticket at their home itself. All he/ she
has to do is to just login and enter the required details. After this the reservation database is
updated with the person details, train name and also the source and destination place.
The cancellation option enables the passenger to cancel the tickets that has been already
booked by him/her.
The availability option prompts the person to enter train number, train name and date of travel.
After this the availability database is accessed and available positions are produced.

Department of Computer Science and Engineering, SREYAS Page 82


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

SOFTWARE REQUIREMENT SPECIFICATION:

The requirements document is the official statement of what is required from the system
developers.
It should include both the definition of user requirements and specification of the system
requirements.

S.NO SOFTWARE REQUIREMENT SPECIFICATION


1.0 INTRODUCTION
1.1 PURPOSE
1.2 SCOPE
1.3 DEFINITION,ACRONYMS,ABBREVIATIONS
1.4 REFERENCE
1.5 TECHNOLOGY TO BE USED
1.6 TOOLS TO BE USED
1.7 OVERVIEW
2.0 GENERAL DESCRIPTION
2.1 PRODUCT DESCRIPTION
2.2 SOFTWARE INTERFACE
2.3 HARDWARE INTERFACE
2.4 SYSTEM FUNCTION
2.5 USER CHARECTERISTICS
2.6 CONSTRAINTS
2.7 ASSUMPTIONS AND DEPENDENCIES
3.0 SPECIFIC REQUIREMENTS
3.1 FUNCTIONAL REQUIREMENTS

Department of Computer Science and Engineering, SREYAS Page 83


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

3.2 NON-FUNCTIONAL REQUIREMENTS


4.0 APPENDICES
5.0 INDEX

1.0 INTRODUCTION

The manual system of ticket reservation takes more time and the number of reservations per
day is limited. To increase the efficiency of the process, we go for online ticket reservation
system. This system supports online ticket booking.

1.1 PURPOSE

If the entire process of reservation is done in a manual manner it would more time for each
passenger to reserve the tickets. Considering the fact that the number of passenger is
increasing every year, an Automated System becomes essential to meet the demand. So this
system uses several programming and database techniques to elucidate the work involved in
this process. Data consistency and Security is given priority, so the system has been carefully
verified and validated in order to satisfy it.

1.2 SCOPE
The System provides an online interface to the user where they can fill in their personal details
and submit the necessary documents .The authority concerned with the issue of railway can
use this system to reduce his workload and process the application in a speedy manner.
Provide a communication platform between the passenger and the administrator.

Department of Computer Science and Engineering, SREYAS Page 84


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

Passenger will come to know their status of application and the date in which they must
subject themselves for manual document verification.

1.3 DEFINITIONS, ACRONYMS AND THEABBREVIATIONS

• Passenger – The person that who wishes to obtain the railwayticket.


• PNR – Passenger NameRecords
• HTML - Markup Language used for creating webpages.
• J2EE – Java 2 Enterprise Edition is a programming platform java platform for
developingand running distributed javaapplications.
• HTTP - Hyper Text TransferProtocol.
•TCP/IP – Transmission Control Protocol/Internet Protocol is the communication
protocol used to connect hosts on the Internet.

1.4 REFERENCES
IEEE Software Requirement Specification format.

1.5 TECHNOLOGIES TO BEUSED


• HTML
• JSP
• Javascript
• Java

1.6 TOOLS TO BEUSED


• Eclipse IDE (Integrated Development Environment)
• Rational Rose tool (for developing UMLPatterns)
1.7 OVERVIEW
SRS includes two sections overall description and specific requirements –
Overall Description will describe major role of the system components and inter-
connections.

Specific Requirements will describe roles & functions of the actors.

Department of Computer Science and Engineering, SREYAS Page 85


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

2.0 OVERALLDESCRIPTION

2.1 PRODUCTPERSPECTIVE
This system tries to make the interface as simple as possible and at the same time
not risking the security of data stored in. This minimizes the time duration in which the
user receives the ticket.

2.2 SOFTWAREINTERFACE
• Front End Client - The passenger and System online interface is built using
JSP and HTML. The Administrators local interface is built usingJava.
 Web Server – Apache Tomcat Server (OracleCorporation)
 Back End - Oracle 11gdatabase

2.3 HARDWAREINTERFACE
The server is directly connected to the client systems. The client systems have
access to the database in the server.

2.4 SYSTEMFUNCTIONS
• Secure Registration of information by thePassengers.
• System can generate reports from the information and is the only authorized
personnel to add the eligible application information to thedatabase.
• Display the requested pages to theuser.
• Update the database after every successfulprocess.

2.5 USERCHARACTERISTICS
• Passenger - They are the people who desire to obtain the ticket and submit the
information to thedatabase.

2.6 CONSTRAINTS
• The passengers require a computer to submit theirinformation.

Department of Computer Science and Engineering, SREYAS Page 86


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

• Although the security is given high importance, there is always a chance of


intrusion in the web world which requires constantmonitoring.
• The user has to be careful while submitting the information.

2.7 ASSUMPTIONS ANDDEPENDENCIES


• The Passengers must have basic knowledge of computers and English
Language.
• The passengers are required to fill the form with all the required information.

3.0 FUNCTIONAL AND NON FUNCTIONAL REQUIREMENTS

FUNCTIONAL REQUIREMENTS:

The online ticket reservation system comprises of five modules. They are:
1. Enquire seatavailability
2. Reservation
3. Cancellation
4. Checkstatus
5. Printticket
6. Payment

1. Enquire seatavailability: This module enables the passenger to check the trains running
on the date of travel from source to destination and the availability of seats.
2. Reservation: By verifying the availability of seats on the date of travel this module is
used to reserve the seats by the passenger and a PNR number is generated. Payment is
made through bank and this data is updated to the database.
3. Cancellation: This module enables the passenger to cancel the ticket and update the
database. The amount is refunded to the passenger.
4. Checkstatus: The passenger can check the status of reservation online by entering PNR
number.
5. Payment: Passenger pays amount on reservation through bank.
6. Print ticket: The passenger can Print the ticket.

Non-functional Requirements:

Department of Computer Science and Engineering, SREYAS Page 87


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

Non-functional requirements describe aspects of the system that are not directly related
to the functional behaviour of the system. Non-functional requirements include a broad
variety of requirements as given below:
Usability:
It is the ease with which a user can learn to operate, prepare inputs for, and interpret
outputs of a system or component. Often, clients address usability issues by requiring the
developer to follow user interface guidelines on colour schemes, logos, and fonts.
Reliability:
It is the ability of a system or component to perform its required functions under stated
conditions for a specified period of time. More recently, this category is often replaced by
dependability, which is the property of the computer system such that reliance can justifiably
be place on the service it delivers. Dependability includes reliability robustness, and safety.
Performance:
Performance requirements are concerned with the quantifiable attributes of the system
such as response time, throughput, availability and accuracy
Supportability:
Supportability requirements are concerned with the case of changes to the system after
deployment, including adaptability, maintainability, and internationalization.

4.0 APPENDICES
5.0 INDEX

3. UML-DIAGRAMS OF E-TICKETING SYSTEM


1. USE-CASE DIAGRAM

ACTORS INVOLVED:
1) System/railway website
2) Passenger
Department of Computer Science and Engineering, SREYAS Page 88
SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

3) Clerk/admin
4) Bank

The use cases are


Passenger: login, Enquire ticket, Book ticket, cancel ticket, check
status, payment.

Clerk/admin: login, verify details, update status, process application

System/website: Enquire ticket,


Book ticket, cancel ticket, check
details, refund

Bank: Process payment, Refund amount

Department of Computer Science and Engineering, SREYAS Page 89


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

USE-CASE DIAGRAM:

Department of Computer Science and Engineering, SREYAS Page 90


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

2. ACTIVITYDIAGRAM:

Activity diagrams are graphical representations of workflows of stepwise activities and


actions with support for choice, iteration and concurrency. In the Unified Modeling
Language, activity diagrams can be used to describe the business and operational step-by-
step workflows of components in a system. An activity diagram shows the overall flow of
control. An activity is shown as an rounded box containing the name of the operation.

This activity diagram describes the behaviour of the system.


• First state is login where the passenger login to the E-Ticketingsystem.
• The next state is filling details the passenger are used to fill theform.
• Then passenger selects train.

Check seat availablitybased on


date/ train/reservation type

Yes
Is it valid
No data?

Show the Display the required


error page train information

ACTIVITY DIAGRAM [Check Availability]

Department of Computer Science and Engineering, SREYAS Page 91


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

Login(username
,password)

Checkthedata Yes
withdatabase

Isitvaliduser No
Yes
Display form
fill in details Show error message
page toentercorrectdata

Select the
passenger details wantto
proceed

Perform amount Yes


transaction

No
isitvalid
Yes data?

Store &update Asktoenter


the status correctdata

Show the wantto


Confirmation proceed
No

Print the
ticket No

ACTIVITY DIAGRAM [Ticket Reservation]

Department of Computer Science and Engineering, SREYAS Page 92


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

Login(username
,password)

Check thedata Yes


withdatabase

No
Isitvaliduser
Yes
Display the
cancellation page Showerrormessage
toentercorrectdata

Select the
passenger details wantto
proceed

Yes

No
isitvalid
data?
Yes
Store &update Asktoenter
thestatus correct data

Show the wantto


Confirmation proceed
No

No

ACTIVITY DIAGRAM [Ticket Cancellation]

Department of Computer Science and Engineering, SREYAS Page 93


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

3. CLASS DIAGRAM:A class diagram in the Unified Modelling Language (UML) is a type
of static structure diagram that describes the structure of a system by showing the system's
classes, their attributes, operations (or methods), and the relationships among objects.
In the diagram, classes are represented with boxes that contain three compartments:
The top compartment contains the name of the class. The middle compartment contains the
attributes of the class. The bottom compartment contains the operations the class can execute. .
The online ticket reservation system makes use of the following classes:
7. Railway system/database
8. Train
9. Passenger/user
10. Admin
11. Ticket
12. Payment

CLASS DIAGRAM FOR E-TICKETING


Department of Computer Science and Engineering, SREYAS Page 94
SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

4. OBJECT DIAGRAM
Object diagrams arederived from class diagrams so object diagrams are dependent
upon class diagrams. Object diagrams represent an instance of a class diagram. The
basic conceptsare similar for class diagrams and object diagrams. Object
diagramsalso represent the static view of a system but this static view is a snapshot of
the system at a particularmoment. Object diagrams are used to render a set of
objects and their relationships as an instance.

Object diagrams describe the static structure of the system at any instance. In the above
object diagram registered users “Ritesh” and “Rajender”access the database to see the details
of book ticket by selecting the source and destination. Pundlik is the admin with admin id 1.

Department of Computer Science and Engineering, SREYAS Page 95


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

5.SEQUENCE DIAGRAM:

A sequence diagram represents the sequence and interactions of a given USE-


CASE or scenario. Sequence diagrams can capture most of the information about the
system. Most object to object interactions and operations are considered events and
events include signals, inputs, decisions, interrupts, transitions and actions to or from
users or externaldevices.

An event also is considered to be any action by an object that sends information.


The event line represents a message sent from one object to another, in which the “form”
object is requesting an operation be performed by the “to” object. The “to” object
performs the operation using a method that the class contains.

This sequence diagram describes the sequence of steps to show


• Passenger are used to login the form. And then its verify the usernameand
password.
• If the password and username are correct then applicants are used to loginthe
fillingdetails.
• Passenger are used to selecting the train and book thetickets.
• Now the E-Ticketing DataBase verify the fillingDetails.
• And then the E-Ticketing DataBase displays the ticketinformation.
• Incase of any sudden change of the plan, the applicant can cancel theticket.

Department of Computer Science and Engineering, SREYAS Page 96


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

SEQUENCE DIAGRAM:

cancelTicket
:ticketReservation
: seatAvailStatus System
: Passenger reserveTicket System
:ticketReservatio
n
Login(username,password)

Check givendata

Registereduser

Display the reservation page

Enter the passenger details

Perform money transaction

Verify givendetails

Update status

Store the details

Updatedsuccessfully

Confirm & Display the ticket

Print the ticket

request to cancel ticket

Displaythecancellationpage

Select the passengerdetails

Verify given details

Update status

Store the details

Updatedsuccessfully

Ticketcancelled

Department of Computer Science and Engineering, SREYAS Page 97


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

6.COLLABORATION DIAGRAM
A Collaboration diagram is an interaction diagram that emphasizes the structural
organization of the objects that send and receive messages.
The collaboration diagram shows the entire process of user login,booking ticket and
cancelling the ticket.

7: Verify given details


1:
Login(username,pass reserveTicket
word) :ticketReservation
5:Enterthepassenge
2: Check givendata
rdetails
6:Performmoneytra 3: Registered user
nsaction 13: Print
System
theticket

4: Display the
reservation page 12:
Confirm & Display
:Passen the ticket
ger

: seatAvailStatus

14: request to cancel


ticket 15:Displaythecancellationpage
16: Select the 22: Ticketcancelled
passenger details
8: Update status

cancelTicket 11:
ticketReservation 9: Store the details 19: Store the
details
17: Verify given details
18: Update status

COLLABORATION DIAGRAM:

Department of Computer Science and Engineering, SREYAS Page 98


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

7.STATEDIAGRAM:

A statechart diagram shows a state machine, emphasizing the flow of control from state to
state. • A state machine is a behavior that specifies the sequences of states an object goes
through during its lifetime in response to events, together with its responses to those events.

• A state is a condition or situation in the life of an object during which it satisfies some
condition, performs some activity, or waits for some event.

Statechart diagrams commonly contain

✓ Simple states and composite states

✓ Transitions, including events and actions


• Astatechart diagram will use to model some dynamic aspect of a system.

The state chart diagram shows the initial state and final state, Authentication state, Logged in
and Logged out states and transitions.

8.COMPONENTDIAGRAM

Department of Computer Science and Engineering, SREYAS Page 99


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

It is used to describe the physical artifact of the system and


implementationperspective.
Component diagrams does not describe the functionality of all systems, but it
describes the components used to make thosefunctionalities.
Components diagrams can also be used to describe staticimplementation view of the
system. Static implementation represents the organization of the components at a
particularmoment.

Department of Computer Science and Engineering, SREYAS Page 100


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

9.DEPLOYMENT DIAGRAM AND COMPONENTDIAGRAM

Deployment diagrams are used to visualize the topology of the physical components
of a system where the software components are deployed.

Department of Computer Science and Engineering, SREYAS Page 101


SOFTWARE ENGINEERING LABLAB MANUAL
SREYAS

Sample Viva-Voce Questions:


Define Software.
Define Software engineering.
What does requirement gathering and analysis mean?
What is scope of project?
In what circumstances u can change your project scope.
What is Requirement Engineering?
What are Functional and Non Functional Requirements in Software Engineering?
What is SRS?
Phases in software project development?
What do you mean by Size-oriented metrics?
How to do cost estimation for a project?
Explain design phase in software project development?
What are DFD and UML diagrams?
What is testing? When to stop testing?
What is black box testing? What is risk analysis?
What id white box testing? What is unit testing?
Explain integration testing?
What is quality assurance?
What is quality control?
What are the Different types of Architectures in Software Engineering?
What are use case and class diagrams in SE?
What are sequence diagram? What are package diagram? What are collaboration diagram?
What are the characteristics of good design? Name some Design Tools?
What is SDLC? What are the various SDLC models? Explain them
What are the Different types of Testing in software engineering?
How to design a Test Case?

Department of Computer Science and Engineering, SREYAS Page 102

You might also like