You are on page 1of 33

Software Engineering(3150711) 210090107007

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.

Phases of Waterfall Model :


1. Requirement analysis
2. Design
3. Implementation
4. Testing
5. Deployment and maintenance

When to use Waterfall Model :


● When requirements are very well known.
● Product definition is stable.
● Technology is understood.
● New version of an existing product.
● Changing an existing product to a new platform.

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 :

It is a particular implementation of a software development life cycle that focuses on an initial,


simplified implementation, which then progressively gains more complexity and a broader
feature set until the final system is complete. In short, iterative development is a way of breaking
down the software development of a large application into smaller pieces.

2
Software Engineering(3150711) 210090107007
210090107052

When to use Iterative Model :


● Requirements of the complete system are clearly defined and understood.
● Major requirements must be defined; however, some functionalities or requested
enhancements may evolve with time.
● There is a time to the market constraint.
● A new technology is being used and is being learnt by the development team while
working on the project.
● Resources with needed skill sets are not available and are planned to be used on contract
basis for specific iterations.
● There are some high-risk features and goals which may change in the future.

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

When to use Spiral Model :


● When there is a budget constraint and risk evaluation is important.
● For medium to high-risk projects.
● Long-term project commitment because of potential changes to economic priorities as the
requirements change with time.
● Customers are not sure of their requirements which is usually the case.
● Requirements are complex and need evaluation to get clarity.
● New product line which should be released in phases to get enough customer feedback.
● Significant changes are expected in the product during the development cycle.

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.

When to use V Model :


● Requirements are well defined, clearly documented and fixed.
● Product definition is stable.
● Technology is not dynamic and is well understood by the project team.
● There are no ambiguous or undefined requirements.
● The project is short

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 :

Agile methodology is a practice which promotes continued interaction of development and


testing during the SDLC process of any project. In the Agile method, the entire project is divided
into small incremental builds. All of these builds are provided in iterations, and each iteration
lasts from one to three weeks.

Any agile software phase is characterised in a manner that addresses several key assumptions
about the bulk of software projects:

● 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.

When to use Agile Models:


1. When frequent changes are required.
2. When a highly qualified and experienced team is available.
3. When a customer is ready to have a meeting with a software team all the time.
4. When project size is small.

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

PRACTICAL-2 : Write about functional and nonfunctional requirements,


identify functional and non-functional requirements for your problem
statement

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:

1. Specificity: They are clear, precise and specific.


2. Action-Oriented: They describe actions, tasks and operations that users can perform.
3. Testable: They are testable to ensure that the system can be verified and validated against
them.
4. Verifiable: They confirm whether each requirement has been met.
5. Complete: They cover all essential functions and features of the system without omitting
any critical aspect.
6. Consistent: They do not conflict with each other rather they are implemented together.

NON-FUNCTIONAL REQUIREMENTS:

Non-functional requirements, often referred to as quality attributes or system qualities, describe


the characteristics or qualities that a software system or product must possess. They specify how
well a system should perform the functions defined by functional requirements. They describe
how a system should behave and what limits are there on its functionality.
Some common categories of non-functional requirements are:

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.

Functional Requirements with respect to our project on RAILWAY


RESERVATION SYSTEM:

1. User Registration and Authentication:


Users should be able to create accounts and log in securely.
Different user roles, such as passengers and administrators, should be supported.

2. Train Availability and Booking:


Passengers should be able to search for trains based on criteria like origin, destination,
date, and class.
Passengers should be able to book tickets for available trains.
The system should provide seat selection and reservation options.

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.

4. Ticket Cancellation and Refunds:


Passengers should be able to cancel their booked tickets, subject to cancellation rules.
Refunds, if applicable, should be processed automatically.

5. Seat Reservation and Allocation:


The system should allocate seats based on passenger preferences (e.g., window, aisle) and
availability.
Seat maps should be displayed during the booking process.

8
Software Engineering(3150711) 210090107007
210090107052

6. Schedule and Route Information:


Passengers should have access to train schedules and route information.
Any changes to schedules or routes should be updated in real-time.

7. Passenger Profile Management:


Passengers should be able to manage their profiles, including contact information and
preferences.

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.

Non-functional Requirements with respect to our project on RAILWAY


RESERVATION SYSTEM:

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

7. Data Privacy and Compliance:


The system must comply with data privacy regulations, such as GDPR or HIPAA,
depending on the jurisdiction.
Passengers should have control over their personal data.

8. Logging and Auditing:


All user actions and system events should be logged for auditing and debugging
purposes.

9. Localization:
The system should support multiple languages and currencies to accommodate a diverse
user base.

10. Response Time:


The system should provide quick responses to user queries and requests.

11. Integration:
The system should integrate with other transportation systems, payment gateways, and
third-party services.

12. Load Testing:


The system should undergo load testing to ensure it can handle a high volume of
concurrent users.

10
Software Engineering(3150711) 210090107007
210090107052

PRACTICAL-3 : Software Requirement Specification

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

1.3 Definitions, Acronyms and Abbreviations

● Administrator: System administrator who is given specific permission for


managing and controlling the system.
● Stakeholder: Any person who has interaction with the system who is not a
developer.
● NTES: National Train Enquiry System
● GPS: Global Positioning System
● IVRS: Interactive Voice Response System
● PRS: Passenger Reservation System

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.

Hence the railways reservation system is proposed with the following:


● The computerization of the reservation system will reduce a lot of paperwork and
hence the load on the airline administrative staff.
● The machine performs all calculations. Hence chances of error are nil.
● The passenger, reservation, cancellation list can easily be retrieved and any
required addition, deletion or updation can be performed.

2.2 Product function summary

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

3. Date, time and place of arrival


4. TRAIN Duration
5. Fare per head
6. Number of stoppages – 0, 1, 2…

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.

2.3 User characteristics

● EDUCATIONAL LEVEL:- At least users of the system should be comfortable


with the English language.
● TECHNICAL EXPERTISE: - User should be comfortable using general
purpose applications on the computer system.
● LADIES QUOTA:- Ladies quota (LD) is generally earmarked in Sleeper class
(SL) and second sitting (2S).
● Ladies who traveling alone or with a child below 12 years of age can make
● reservations under this quota.
● There are only SIX berths available under this quota in the ENTIRE Train.
● As the name suggests, this quota is only open to ladies. However, male children
under the age of 12 can also be booked under this quota. This quota can be
booked online. However, in most trains, the Ladies Quota has six seats or berths
in the lowest reserved class, and these six seats or berths might well be in the
middle of many other berths occupied by men. Only a handful of trains have a
Ladies Quota in their AC classes.

14
Software Engineering(3150711) 210090107007
210090107052

Senior Citizens Reservation & Quota :


● This Quota is available for Male - 60 years and above & Female - 58 years and
above traveling for any purpose.
● Senior Citizens Fare Concession :
● Male 60 years and above - 40% fare concession in all classes.
● Female 58 years and above - 50% fare concession in all classes.
● Traveling for any purpose, Concession also applicable in Rajdhani / Shatabdi and
Duronto trains.
● No concessional tickets allowed for Garib Rath, Gatimaan, Vande Bharat,
Suvidha and Humsafar Train / Quota / Class.

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.

Foreign Tourist Railway Reservation Quota:-


● Special Quota: Several important trains have a special quota for foreign tourists.
This can be availed on payment of US Dollars or Pound Sterling. Tourists without
foreign currency, will be allotted the special quota on production of the exchange
certificates issued by a nationalized bank. At the time of reservation, the passport
number and the country of origin should be mentioned.

Premium Tatkal Quota:-


● In October 2014, Indian railways came up with a new plan to increase their
earnings through tatkal facility by introducing dynamic pricing technique.
It is a technique where ticket price will be decided by its current demand i.e. it
will go up/down accordingly.
1. The dynamic pricing technique will only be levied on half of the tickets
i.e. when half of the tatkal tickets will be sold out!
2. Premium tatkal tickets can be brought through the internet only!

15
Software Engineering(3150711) 210090107007
210090107052

2.4 General constraints

Software constraints:
The system will run under Windows98 or higher platforms of operating system.

2.5 Assumptions and dependencies


● Booking Agents will have a valid username and password to access the software.
● The software needs booking agent to have complete knowledge of railways
● reservation system.
● Software is dependent on access to the internet.

3. Specific Requirements
3.1 System Features : Functional requirements

1. User Registration and Authentication:


Users should be able to create accounts and log in securely.
Different user roles, such as passengers and administrators, should be supported.

2. Train Availability and Booking:


Passengers should be able to search for trains based on criteria like origin,
destination, date, and class. Passengers should be able to book tickets for
available trains. The system should provide seat selection and reservation options.

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.

4. Ticket Cancellation and Refunds:


Passengers should be able to cancel their booked tickets, subject to cancellation
rules. Refunds, if applicable, should be processed automatically.

5. Seat Reservation and Allocation:


The system should allocate seats based on passenger preferences (e.g., window,
aisle) and availability. Seat maps should be displayed during the booking process.

6. Schedule and Route Information:


Passengers should have access to train schedules and route information.
Any changes to schedules or routes should be updated in real-time.

16
Software Engineering(3150711) 210090107007
210090107052

7. Passenger Profile Management:


Passengers should be able to manage their profiles, including contact information
and preferences.

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.

4. External interface requirements


4.1 User Interfaces

The interface requirements of Railway Reservation System include:


● Easy to Navigate.
● Less Graphics.
● Display Error Messages and Relevant Dialogue Boxes
● Providing high security such that not to be modified by irrelevant users.

4.2 Hardware Interfaces

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

4.3 Software Interfaces

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.

5. Other Nonfunctional Requirements


5.1 Performance Requirements

● Satisfaction : - The system is such that it stands up to the user's expectations.


● Response Time: - The response of all the operations is good. This has been made
possible by careful programming.
● Error Handling : - Response to user errors and undesired situations has been taken
care of to ensure that the system operates without halting.
● Safety and Robustness : - The system is able to avoid or tackle disastrous action.
In other words, it should be foul proof. The system safeguards against undesired
events, without human intervention.
● Portable : - The software should not be architecture specific. It should be easily
transferable to other platforms if needed.
● User friendliness : - The system is easy to learn and understand. A native user can
also use the system effectively, without any difficulties.

5.2 Design constraints

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

Software should satisfy following requirements as well:-


● SECURITY
● PORTABILITY
● CORRECTNESS
● EFFICIENCY
● FLEXIBILITY
● TESTABILITY
● REUSABILITY

19
Software Engineering(3150711) 210090107007
210090107052

PRACTICAL-4 : Design Analysis

4.1 Scenario based:

Use-case diagram

20
Software Engineering(3150711) 210090107007
210090107052

Activity Diagram

21
Software Engineering(3150711) 210090107007
210090107052

4.2 Class based :

Class diagram

22
Software Engineering(3150711) 210090107007
210090107052

4.3 Data based :

E-R Diagram

4.4 Flow Based:

Data Flow Diagram (Level 0)

23
Software Engineering(3150711) 210090107007
210090107052

Data Flow Diagram (Level 1)

24
Software Engineering(3150711) 210090107007
210090107052

4.5 Behavior Based:

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:

● User-Friendly Interface: GitHub provides an intuitive and user-friendly interface,


making it easy for developers to create and manage pull requests.

● Integration: It seamlessly integrates with various continuous integration (CI) and


continuous deployment (CD) tools, allowing automated testing and deployment.

● Collaboration: GitHub enables efficient collaboration among team members through


features like inline commenting and discussions within pull requests.

● Extensive Marketplace: The GitHub Marketplace offers a wide range of third-party


apps and integrations, allowing teams to customize their workflow.

● 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.

● Self-Hosting: GitLab offers a strong self-hosting solution, making it suitable for


organizations with specific security or compliance requirements. GitHub Enterprise is an
option for self-hosting but may not be as feature-rich as its cloud counterpart.

● 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

PRACTICAL-6 : Test Cases


6.1
Project Name: Railway Reservation System

Module Name: Login, Signup, Booking

User/Login: Admin/Student

Tested Date: 30/10/2023 Version: 0

Tested By: Muskan Bandaria and Dhruv Contractor

Sr. Test Case Expected Result Actual Result Status Risk Remarks
No.

1. User is able User Id must be Validation is Fail No Risk Unable to


to enter the the valid email not proper validate
User id address because
backend is not
implemented

2. User is able Password must Validation is Pass No Risk Strong


to enter be the Proper password is
Password combination of recommended
letter, alphabet
and symbol

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

4. Contact Us User must be Contact Pass No Risk


able to contact Support is
us provided

5. Departure User must be User is able Pass No Risk Must enter


and Arrival able to select to select available
Location departure and departure and stations
arrival location arrival
location

6. Departure User must be User is able Pass No Risk


Date able to select to select
departure date departure
date

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.

● Challenges: WinRunner is outdated and no longer actively supported by the vendor


(Micro Focus). It may not be suitable for testing modern web applications.

2. LoadRunner:

● Type of Testing: LoadRunner is a performance testing tool used to assess the


performance, scalability, and reliability of applications. It includes various components
for different types of performance testing, such as Load Testing, Stress Testing, and more.

● Scripting Language: LoadRunner uses its proprietary scripting language known as


"VuGen Script."

● User Interface: LoadRunner provides a comprehensive and sophisticated environment


for creating performance test scripts. It's more focused on performance testing than
functional testing.

32
Software Engineering(3150711) 210090107007
210090107052

● Test Execution: LoadRunner supports the simulation of thousands of virtual users to


generate load and assess how an application performs under heavy usage.

● 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.

● Scripting Language: Both tools use their proprietary scripting languages.

● User Interface: WinRunner offers a more user-friendly interface, especially for


functional testers. LoadRunner's interface is more focused on 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.

● Challenges: WinRunner is outdated and no longer supported, while LoadRunner can be


expensive and complex.

33

You might also like