Se Lab Manual
Se Lab Manual
                      SOFTWARE ENGINEERING
                              LAB MANUAL
               III-B Tech – I Semester [Branch: CSE(R18)]
CERTIFICATE
BRANCH : CSE
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
Mission
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.
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
Things 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.
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
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.
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.
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.
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.
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
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.
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.
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.
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
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.
Tables
Naming convention
Indexing property
Data Processing
There are two types of Data Processing:
Logical: As user sees it
Physical: As software sees it
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. 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.
Class Diagrams
Class diagrams are the backbone of almost every object oriented method, including UML.
They describe the static structure of a system.
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.
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.
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.
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.
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 {}.
Simple Constraint
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.
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.
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.
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.
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.
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.
Destroying Objects
Objects can be terminated early using an arrow labeled "<< destroy >>" that points to an X.
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 [ ].
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
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.
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.
Final State
An arrow pointing to a filled circle nested inside another circle represents the object's final
state.
Join-Synchronization of control.
Fork-Splitting of control.
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 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.
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
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.
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.
CHAPTER-5:TESTING
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:
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.
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
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
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
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.
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?
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.
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.
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:
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:
• HTML
• JSP
• Javascript
• Java
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.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.
FUNCTIONAL REQUIREMENTS:
This application comprises of six modules. They are
1 . Passport information
2 . Apply for passport
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
4.0 APPENDICES
5.0 INDEX
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:
                            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.
       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
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.
2. USECASEDIAGRAM:
• A use case diagram is a diagram that shows a set of use cases and actors and their
relationships.
• Use cases
• Actors
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.
2. For each actor, consider the behavior that each expects or requires the system to provide.
   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.
6. Model these use cases, actors, and their relationships in a use case diagram.
1.Applicant
2.Officer
3.police
4.bank
5.PAS
Officer:login,verifydetails,updatestatus,process application
Police:login,getdetails,verifydetails,updatestaus
Bank:fee payment
PAS:login,getdetails,updatestaus,processapplication,issue/reject passport.
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.
       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:
       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:
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.
1. Choose the context for the state machine, whether it is a class, a use case, or the system as
a whole.
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.
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
       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.
6.ACTIVITYDIAGRAM:
        Activity diagram inUML is used to describe the dynamic aspects of
        thesystem.
• 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:-
  Object diagrams arederived from class diagrams so object diagrams are dependent
upon class diagrams.
Object diagrams are used to render a set of objects and their relationships as an
instance.
8. COMPONENT DIAGRAM–
9. DEPLOYMENT DIAGRAM:
    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.
LEVEL 0:
Level 1:
UNIT TESTING:
Consider a program which validates the password entered by a user. In order to validate a
{
    //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;
    }
    //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;
    }
        }
    }
}
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
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
                                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.
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
   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.
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
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.
3. Check Status.
The applicant should be able to check the status of his application.
OBJECTIVE: To test the check status procedure.
                                          E-TICKETING
Railway Reservation System
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.
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.
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.
Passenger will come to know their status of application and the date in which they must
subject themselves for manual document verification.
 1.4 REFERENCES
       IEEE Software Requirement Specification format.
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.
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:
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
 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
USE-CASE DIAGRAM:
2. ACTIVITYDIAGRAM:
                                                                 Yes
                                                  Is it valid
                        No                        data?
                                             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
                                            No
                               isitvalid
             Yes               data?
     Print the
      ticket                                                                 No
                                                  Login(username
                                                   ,password)
                                                                       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
No
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
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.
5.SEQUENCE DIAGRAM:
SEQUENCE DIAGRAM:
                                                         cancelTicket
                                                       :ticketReservation
                                                                                  : seatAvailStatus               System
  : Passenger            reserveTicket                                                                            System
                        :ticketReservatio
                        n
       Login(username,password)
Check givendata
Registereduser
Verify givendetails
Update status
Updatedsuccessfully
Displaythecancellationpage
Update status
Updatedsuccessfully
Ticketcancelled
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.
                         4: Display the
                         reservation page 12:
                         Confirm & Display
         :Passen         the ticket
         ger
: seatAvailStatus
         cancelTicket 11:
         ticketReservation                                 9: Store the details 19: Store the
                                                           details
                                         17: Verify given details
                                            18: Update status
COLLABORATION DIAGRAM:
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.
The state chart diagram shows the initial state and final state, Authentication state, Logged in
and Logged out states and transitions.
8.COMPONENTDIAGRAM
        Deployment diagrams are used to visualize the topology of the physical components
 of a system where the software components are deployed.