Professional Documents
Culture Documents
210090107052
Practical-1
SDLC MODELS
Waterfall Model :
The waterfall model is a continuous software development model in which development is seen
as flowing steadily downwards (like a waterfall) through the steps of requirements analysis,
design, implementation, testing (validation), integration, and maintenance.
The Waterfall model is the earliest SDLC approach that was used for software development.
The waterfall Model illustrates the software development process in a linear sequential flow.
This means that any phase in the development process begins only if the previous phase is
complete. In this waterfall model, the phases do not overlap.
1
Software Engineering(3150711) 210090107007
210090107052
Advantages :
1. Easy to explain to the users.
2. Structures approach.
3. Stages and activities are well defined.
4. Helps to plan and schedule the project.
5. Verification at each stage ensures early detection of errors/misunderstanding.
6. Each phase has specific deliverables.
Disadvantages :
1. Very difficult to go back to any stage after it finished.
2. Costly and required more time, in addition to the detailed plan.
3. Assumes that the requirements of a system can be frozen.
4. A little flexibility and adjusting scope is difficult and expensive.
5. No working software is produced until late during the life cycle.
6. High amounts of risk and uncertainty.
The waterfall model was used primarily to develop enterprise applications like Human Resource
Management Systems (HRMS), Supply Chain Management Systems, Customer Relationship
Management (CRM) systems, Inventory Management Systems, Point of Sales (POS) systems for
retail chains, etc.
Iterative Model :
2
Software Engineering(3150711) 210090107007
210090107052
Advantages:
1. Testing and debugging during smaller iterations is easy.
2. A Parallel development can be planned.
3. It is easily acceptable to the ever-changing needs of the project.
4. Risks are identified and resolved during iteration.
5. Limited time spent on documentation and extra time on designing.
Disadvantages:
1. It is not suitable for smaller projects.
2. More Resources may be required.
3. Design can be changed again and again because of imperfect requirements.
4. Requirement changes can cause over budget.
5. Project completion date not confirmed because of changing requirements.
Spiral Model :
The spiral model is a risk-driven process model. This SDLC model helps the group to adopt
elements of one or more process models like a waterfall, incremental, waterfall, etc. The spiral
technique is a combination of rapid prototyping and concurrency in design and development
activities.
Each cycle in the spiral begins with the identification of objectives for that cycle, the different
alternatives that are possible for achieving the goals, and the constraints that exist. This is the
first quadrant of the cycle (upper-left quadrant).
The next step in the cycle is to evaluate these different alternatives based on the objectives and
constraints. The focus of evaluation in this step is based on the risk perception for the project.
The next step is to develop strategies that solve uncertainties and risks. This step may involve
activities such as benchmarking, simulation, and prototyping.
3
Software Engineering(3150711) 210090107007
210090107052
Advantages:
1. Changing requirements can be accommodated.
2. Allows extensive use of prototypes.
3. Requirements can be captured more accurately.
4. Users see the system early.
5. Development can be divided into smaller parts and the risky parts can be developed
earlier which helps in better risk management.
Disadvantages:
1. Management is more complex.
2. End of the project may not be known early.
3. Not suitable for small or low risk projects and could be expensive for small projects.
4. Process is complex
5. Spiral may go on indefinitely.
6. Large number of intermediate stages requires excessive documentation.
4
Software Engineering(3150711) 210090107007
210090107052
V Model :
In this type of SDLC model testing and the development, the step is planned in parallel. So, there
are verification phases on the side and the validation phase on the other side. V-Model joins by
Coding phase.
Advantages:
1. This is a highly-disciplined model and Phases are completed one at a time.
2. Works well for smaller projects where requirements are very well understood.
3. Simple and easy to understand and use.
4. Easy to manage due to the rigidity of the model. Each phase has specific deliverables and
a review process.
Disadvantages:
1. High risk and uncertainty.
2. Not a good model for complex and object-oriented projects.
3. Poor model for long and ongoing projects.
4. Not suitable for the projects where requirements are at a moderate to high risk of
changing.
5. Once an application is in the testing stage, it is difficult to go back and change a
functionality.
6. No working software is produced until late during the life cycle.
5
Software Engineering(3150711) 210090107007
210090107052
Agile Model :
● It is difficult to think in advance which software requirements will persist and which will
change. It is equally difficult to predict how user priorities will change as the project
proceeds.
● For many types of software, design and development are interleaved. That is, both
activities should be performed in tandem so that design models are proven as they are
created. It is difficult to think about how much design is necessary before construction is
used to test the configuration.
● Analysis, design, development, and testing are not as predictable (from a planning point
of view) as we might like.
Advantages:
1. Frequent Delivery
2. Face-to-Face Communication with clients.
3. Efficient design and fulfils the business requirement.
4. Anytime changes are acceptable.
5. It reduces total development time.
Disadvantages:
1. Due to the shortage of formal documents, it creates confusion and crucial decisions taken
throughout various phases can be misinterpreted at any time by different team members.
2. Due to the lack of proper documentation, once the project completes and the developers
allotted to another project, maintenance of the finished project can become a difficulty.
6
Software Engineering(3150711) 210090107007
210090107052
FUNCTIONAL REQUIREMENTS:
Functional requirements describe the specific functions and features that a software system,
application or product must have to meet the needs of its users and stakeholders. They typically
include detailed descriptions of the system's functionality, interactions, and the expected
outcomes of various operations.
Some characteristics of Functional Requirements are:
NON-FUNCTIONAL REQUIREMENTS:
1. Performance: They focus on the system’s Response Time, Throughput, Scalability, Load
Testing under various conditions.
2. Reliability: They ensure the system operates consistently and predictably without
unexpected failures. This includes Availability, Fault Tolerance and Redundancy.
3. Security: They address the protection of data and system resources from unauthorized
access and breaches. This provides Authentication, Authorization, Data Encryption,
Audit Trails.
4. Maintainability: They address the ease of maintaining and updating the system over
time i.e. Code Maintainability, Documentation, Version Control.
5. Usability: They focus on the user experience and the system's ease of use such as User
Interface Design, Accessibility, User Training.
7
Software Engineering(3150711) 210090107007
210090107052
6. Compatibility: They ensure that the system works seamlessly with other software,
platforms, and devices.
7. Scalability: They address the system's ability to handle growth and increased usage. This
includes Horizontal Scaling, Vertical Scaling.
8. Legal and Regulatory Compliance: These requirements ensure that the system
complies with relevant laws, regulations, and industry standards. Data Privacy, Security
Standards come in this.
9. Performance Testing: Define the criteria and methodologies for performance testing,
including load testing, stress testing, and benchmarking.
10. Capacity Planning: Specify the need for capacity planning to estimate hardware and
resource requirements as the system scales.
3. Payment Processing:
The system should support various payment methods, such as credit cards, debit cards,
and digital wallets.
Passengers should receive booking confirmations and e-tickets after successful payment.
8
Software Engineering(3150711) 210090107007
210090107052
8. Admin Functions:
Administrators should be able to manage train schedules, seat availability, and user
accounts.
They should be able to generate reports and monitor system performance.
1. Performance:
The system should be responsive, even during peak booking times.
Database queries and transactions should be optimized for speed.
2. Reliability:
The system should have a high uptime and minimal downtime.
Backup and recovery mechanisms should be in place to ensure data integrity.
3. Security:
User data, payment information, and transactions must be encrypted.
Access control and authorization mechanisms should be implemented to prevent
unauthorized access.
4. Scalability:
The system should be able to handle an increasing number of users and transactions over
time.
Scalability should be achieved through load balancing and resource allocation.
5. Usability:
The user interface should be intuitive and user-friendly.
It should be accessible to people with disabilities.
6. Compatibility:
The system should be compatible with various web browsers and mobile devices.
9
Software Engineering(3150711) 210090107007
210090107052
9. Localization:
The system should support multiple languages and currencies to accommodate a diverse
user base.
11. Integration:
The system should integrate with other transportation systems, payment gateways, and
third-party services.
10
Software Engineering(3150711) 210090107007
210090107052
1. Introduction
1.1 Purpose
The motivation behind this source is to portray the railway reservation system, which
gives the train timing subtleties, reservation, charging and wiping out on different kinds
of reservation specifically. Moreover, This Railway reservation administration won't just
upgrade the reservation yet will likewise help the workers in getting backing, discounts
and other constant fixes.
● Confirm Reservation for confirm Seat.
● Reservation against Cancellation.
● Waiting list Reservation.
● Online Reservation.
● Tatkal Reservation.
1.2 Scope
Our project “Railway Reservation System” is an attempt to simulate the basic concept of
an online reservation system. Innovation has changed many parts of our life including the
way we reserve trains. It has helped us to book slots that are preferable to us from the
solace of our own home or anywhere at the instance.
Following are the advantages:
● No more queues
● Safe Payment
● Convenient
● Environment Friendly
● Improved and optimized service
● Cancellation is easy
11
Software Engineering(3150711) 210090107007
210090107052
1.4 References
https://www.scribd.com
https://www.slideshare.net
https://www.intel.com
https://www.academia.edu
http://www.lcglasscenter.com
1.5 Overview
The remaining section of this document provides a general description of this project
including the product’s functions, user characteristics, constraints, assumptions. Further,
it provides user, hardware, software and communications interfaces.
2. General description
2.1 Product perspective
Characteristics:
1 . Public Utility Service:
Railways provide an essential service to the public. It being a public utility service,
requires protection and investments by the government.
2. Monopoly:
Railways have a monopoly in India. The rail transport is managed by the Railways
Department of the Central Government. No private operator is allowed to enter this
transport sector.
3. Huge Investments:
The railways require huge investments for purchase of land, laying of tracks, constructing
railway stations and sheds, buying automobiles, etc. No single individual can afford to
make all these investments.
4. Privileges:
The railways require special privileges to provide efficient transport service. Railways
require special property rights for purchase of land, construction of bridges and railway
lines.
5. Special Rate Fixation:
The railways fix separate rates for passengers and goods traffic. The same rates are
applicable to all persons and all areas of the country. Rail services are available to all
members or the public on equal terms.
12
Software Engineering(3150711) 210090107007
210090107052
6. Non-transferability:
Once the railway lines are laid down then these tracks cannot be used for any other
purpose. So railway services are non- transferable.
Before the automation, the system suffered from the following DRAWBACKS:
● The existing system is highly manual involving a lot of paperwork and calculation
and therefore may be erroneous. This has led to inconsistency and inaccuracy in
the maintenance of data.
● The data, which is stored on the paper only, may be lost, stolen or destroyed due
to natural calamity like fire and water.
● The existing system is sluggish and consumes a lot of time causing inconvenience
to customers and the airline's staff.
● Due to manual nature, it is difficult to update, delete, add or view the data.
● Since the number of passengers have drastically increased therefore maintaining
and retrieving detailed records of passengers is extremely difficult.
● A railway has many offices around the world, an absence of a link between these
offices lead to lack of coordination and communication.
Booking agents with varying levels of familiarity with computers will mostly use this
system. With this in mind, an important feature of this software is that it is relatively
simple to use. The scope of this project encompasses:-
Search: This function allows the booking agent to search for trains that are available
between the two travel cities, namely the "Departure city" and "Arrival city" as desired
by the traveler. The system initially prompts the agent for the departure and arrival city,
the date of departure, preferred time slot and the number of passengers. It then displays a
list of trains available with different airlines between the designated cities on the
specified date and time.
Selection: This function allows a particular train to be selected from the displayed list.
All the details of the train are shown :-
1. Train Number
2. Date, time and place of departure
13
Software Engineering(3150711) 210090107007
210090107052
Review: If the seats are available, then the software prompts for the booking of the train.
The train information is shown. The total fare including taxes is shown and flight details
are reviewed.
Traveler Information: It asks for the details of all the passengers supposed to travel
including name, address, telephone number and e-mail id.
Payment: It asks the agent to enter the various credit card details of the person making
the reservation.
1. Credit card type
2. Credit card number
3. CVC number of the card
4. Expiration date of the card
5. The name on the card
Cancellation : The system also allows the passenger to cancel an existing reservation.
This function registers the information regarding a passenger who has requested a
cancellation of his/her ticket. It includes entries pertaining to the train No., Confirmation
No.,Name, Date of Journey, Fare deducted.
14
Software Engineering(3150711) 210090107007
210090107052
Handicapped Quota:-
● Orthopaedically handicapped persons who cannot travel without escort are
eligible for concession from any station to any station.
● Percentage of concession:
o AC I Class and AC 2 Tier - 50%
o Other classes - 75%
● They are eligible for concession in all classes and by all trains except Rajdhani
and Shatabdi trains.
● Escort is compulsory. Escort is also given the same concession.
● Passengers having this concession ticket found traveling without escort would be
treated as traveling without a ticket.
● A certificate in the prescribed form should be obtained from a Govt. Doctor.
15
Software Engineering(3150711) 210090107007
210090107052
Software constraints:
The system will run under Windows98 or higher platforms of operating system.
3. Specific Requirements
3.1 System Features : Functional requirements
3. Payment Processing:
The system should support various payment methods, such as credit cards, debit
cards, and digital wallets. Passengers should receive booking confirmations and
e-tickets after successful payment.
16
Software Engineering(3150711) 210090107007
210090107052
8. Admin Functions:
Administrators should be able to manage train schedules, seat availability, and
user accounts.They should be able to generate reports and monitor system
performance.
For the hardware requirements the SRS specifies the logical characteristics of each
interface b/w the software product and the hardware components. It specifies the
hardware requirements like memory restrictions, cache size, the processor, RAM size
etc... Those are required for the software to run.
Minimum Hardware Requirements
● Processor Pentium III
● Hard disk drive 40
● GB RAM 128 MB
● Cache 512 kb
Preferred Hardware Requirements
● Processor Pentium IV
● Hard disk drive 80
● GB RAM 256 MB
● Cache 512 kb
17
Software Engineering(3150711) 210090107007
210090107052
Any window based operating system with DOS support are primary requirements for
software development. Windows XP, FrontPage and dumps are required. The systems
must be connected via LAN and connection to the internet is mandatory.
There are a number of factors in the client’s environment that may restrict the choices of
a designer. Such factors include standards that must be followed, resource limits,
operating environment, reliability and security requirements and policies that may have
an impact on the design of the system. An SRS (Software Requirements Analysis and
Specification) should identify and specify all such constraints.
● Standard Compliance : - This specifies the requirements for the standards the
system must follow. The standards may include the report format and accounting
properties.
● Hardware Limitations :- The software may have to operate on some existing or
predetermined hardware, thus imposing restrictions on the design. Hardware
limitations can include the types of machines to be used, operating system
available on the system, languages supported and limits on primary and secondary
storage
● Reliability and Fault Tolerance : - Fault tolerance requirements can place a major
constraint on how the system is to be designed. Fault tolerance requirements often
18
Software Engineering(3150711) 210090107007
210090107052
make the system more complex and expensive. Requirements about system
behavior in the face of certain kinds of faults are specified. Recovery
requirements are often an integral part here, detailing what the system should do if
some failure occurs to ensure certain properties. Reliability requirements are very
important for critical applications.
● Security : - Security requirements are particularly significant in defence systems
and database systems. They place restrictions on the use of certain commands,
control access to data, provide different kinds of access requirements for different
people, require the use of passwords and cryptography techniques and maintain a
log of activities in the system.
6. Other requirements
19
Software Engineering(3150711) 210090107007
210090107052
Use-case diagram
20
Software Engineering(3150711) 210090107007
210090107052
Activity Diagram
21
Software Engineering(3150711) 210090107007
210090107052
Class diagram
22
Software Engineering(3150711) 210090107007
210090107052
E-R Diagram
23
Software Engineering(3150711) 210090107007
210090107052
24
Software Engineering(3150711) 210090107007
210090107052
State Diagram
25
Software Engineering(3150711) 210090107007
210090107052
Sequence Diagram
26
Software Engineering(3150711) 210090107007
210090107052
PRACTICAL-5
5.1 Implementation
27
Software Engineering(3150711) 210090107007
210090107052
28
Software Engineering(3150711) 210090107007
210090107052
5.2 Study various code review tools and prepare a comparative analysis for
same
Code review tools play a crucial role in the software development process, helping teams
maintain code quality, identify and fix issues, and ensure that the codebase is reliable and
maintainable. In the context of a railway reservation system, let's consider two popular code
review tools, GitHub and GitLab, for a comparative analysis.
GitHub:
● Strong Community: GitHub has a large and active community, making it easy to find
answers to questions and resolve issues.
GitLab:
● Comprehensive Solution: GitLab offers an all-in-one solution for code hosting, code
review, CI/CD, issue tracking, and more, making it suitable for end-to-end software
development.
● Strong CI/CD Integration: GitLab's CI/CD pipeline is tightly integrated with code
repositories, simplifying the automation of testing and deployment.
● Self-Hosted and Cloud Options: GitLab provides both self-hosted and cloud-based
solutions, giving teams flexibility in their deployment choice.
● Free and Open Source: GitLab Community Edition is open source and free, making it
an attractive option for small teams or open-source projects.
29
Software Engineering(3150711) 210090107007
210090107052
Comparative Analysis:
● Integration: Both GitHub and GitLab provide robust integration options with various
third-party tools, but GitLab's all-in-one approach might be more appealing if you need a
comprehensive DevOps platform.
● Collaboration: GitHub offers a more user-friendly interface and is known for its
easy-to-use pull request system. GitLab's extensive feature set may be more complex for
users unfamiliar with the platform.
● Cost: GitLab's Community Edition is free, making it an attractive option for small teams
or open-source projects. GitHub has free plans for public repositories but requires
payment for private repositories and additional features.
30
Software Engineering(3150711) 210090107007
210090107052
User/Login: Admin/Student
Sr. Test Case Expected Result Actual Result Status Risk Remarks
No.
3. User is able New users must Signup Pass No Risk Must enter
to create a be able to sign available for valid details to
new account up new User signup
31
Software Engineering(3150711) 210090107007
210090107052
6.2 Study various testing tools (Eg: Win runner, Load runner) and prepare a
comparative analysis.
1. WinRunner:
● Type of Testing: WinRunner is primarily used for functional testing. It is designed for
automating and testing the functionality of Windows-based applications.
● Scripting Language: WinRunner uses its proprietary scripting language called TSL (Test
Script Language).
● User Interface: WinRunner provides a graphical user interface for test script creation
and editing. It also includes a recorder to capture user interactions.
● Test Execution: It supports the execution of test scripts on different versions of Windows
operating systems.
● Support for Various Technologies: WinRunner is known for its broad application
support. It can test applications developed using a variety of technologies, including
Windows, Java, .NET, and more.
● Ease of Use: WinRunner is relatively user-friendly, with a simple scripting language and
an intuitive user interface.
2. LoadRunner:
32
Software Engineering(3150711) 210090107007
210090107052
● Support for Various Technologies: LoadRunner supports a wide range of protocols and
technologies, including web, mobile, database, and more.
● Ease of Use: LoadRunner is powerful but may require a steeper learning curve compared
to functional testing tools like WinRunner due to its focus on performance testing.
● Challenges: LoadRunner is considered a complex and expensive tool, primarily used for
large-scale performance testing. Smaller organizations may find it overkill for their
needs.
Comparison:
● Type of Testing: WinRunner is primarily for functional testing, while LoadRunner is for
performance testing.
● Test Execution: LoadRunner is designed for generating a high volume of virtual users to
test performance, while WinRunner is meant for testing individual functional scenarios.
● Technology Support: LoadRunner has broader technology support due to its focus on
performance testing.
● Ease of Use: WinRunner is easier to get started with, especially for functional testing.
LoadRunner may require more expertise, but it provides advanced performance testing
capabilities.
33