Professional Documents
Culture Documents
SVVT Lab 2819044
SVVT Lab 2819044
SVVT Lab 2819044
Affiliated to
1
2819044
INDEX
S.No Practical Date Signature
2
2819044
3
2819044
Practical No-1
Aim: To identify role of software in today’s world across a few
significant domains related to day to day life.
Theory:
Computer software, or simply software, is a collection of data or computer instructions
that tell the computer how to work. This is in contrast to physical hardware, from which
the system is built and actually performs the work.
Types of Software:
Application Software
This is software that uses the computer system to perform special functions or
provide entertainment functions beyond the basic operation of the computer itself. There
are many different types of application software, because the range of tasks that can be
performed with a modern computer is so large.
System Software: Software for managing computer hardware behaviour, as to provide
basic functionalities that are required by users, or for other software to run properly, if at
all. System software is also designed for providing a platform for running application
software,[11] and it includes the following:
Operating System
which are essential collections of software that manage resources and provide common
services for other software that runs "on top" of them. Supervisory programs, boot
loaders, shells and window systems are core parts of operating systems. In practice, an
operating system comes bundled with additional software (including application
software) so that a user can potentially do some work with a computer that only has
one operating system.
Device Drivers
which operate or control a particular type of device that is attached to a computer. Each
device needs at least one corresponding device driver; because a computer typically has
at minimum at least one input device and at least one output device, a computer
typically needs more than one device driver.
Utilities
which are computer programs designed to assist users in the maintenance and care
of their computers.
4
2819044
Consider a catastrophe where all the world s computers stop working for just one year.
First problem is that all bank accounts would be frozen. Banks don t make paper
backups of all their transactions, so they don t know how much money is in your
account if they don t have access to their computers. They have the data in multiple
locations to enable them to survive various events, but if they are only held in electronic
format, that doesn t help.
So with no bank accounts, most people are broke. Only those people with actual
currency (those pieces of government issued paper) can buy anything. Physical currency
is a very small percentage of all the money in an economy (the rest is in electronic form
in the banks and other institutions). So the economy immediately shrinks 50% - 90%.
The food companies would have trouble getting food to your local stores. They would
have difficulty paying all the vendors along the food chain and doing the logistics of
moving the food to the stores without computers. This leads inevitably to sporadic food
shortages. And since not everyone has cash to buy food, food riots and looting of stores
will begin no longer than 3 days after the computers stop (there is a lot of historical
evidence that shows food shortages leading to riots within a 3 day window). Gangs will
start looting people s residences to find the food they want. Eventually the government
would have to step in to the control the mobs and distribute the food.
Now multiply the food problem and apply it to electric power, transportation fuel and
water. Those will be disrupted and it would take weeks or months to get alternate
distribution up and running.
If you happen to live to live in a temperate area when the winter comes you will be
lucky. If you live in an area that has brutally cold winters and there is no way to heat
your residences, a lot of your neighbors are going to freeze to death.
This is just a taste of the problems. A full scale computer outage would be much worse.
5
2819044
1. Reduces complexity
Big software are always complex and difficult to develop. Software engineering has a
great solution to decrease the complexity of any project. Software engineering divides
big problems into several small problems. And then start solving each small problem one
by one. All these small problems are solved independently to each other.
Software requires a lot of hard work and software engineers are highly paid
professionals. A lots of man force is requires to develop software with millions of codes.
But in software engineering, programmers plan everything and reduce all those things
that are not required. In turn, cost for software productions becomes less as compared to
any software that does not use software engineering approach.
3. To decrease time
Anything that is not made according to the plan always wastes time. And if you are
making big software then you may need to run many code to get the ultimate running
code. This is a very time consuming process and if it is not well managed then this can
take a lot of time. So if you are making your software according to software engineering
approach then it will reduce a lot of time.
Big projects are not made in few days and they require lots of patience, planning and
management. And to invest six and seven months of any company, it requires lots of
planning, direction, testing and maintenance. No one can say that he has given four
months of company to the project and the program is still in its first stage. Because
company has given many resources to the projects and it should be completed. So to
handle big projects without any problem, company has to go for software engineering
approach.
5. Reliable software
Software should be reliable, means if you have delivered the software then it should
work for at least it s given time span or subscription. And if any bugs come in the
software then company is responsible for solving all these bugs. Because in software
engineering, testing and maintenance is provided so there is no worry of its reliability.
6. Effectiveness
6
2819044
Practical No- 2
AIM: To identify any scenario and identify suitable software
development model for the given scenario.
Scenario:
ABC is a new enterprise recently started by a few young entrepreneurs, intended to
develop robotic systems using IT based solutions. TENZ is a well-established
automobile manufacturing plant, Interested in automating some of the operations of the
plant.
As first step towards automation, TENZ has decided to deploy a robotic arm to pick and
place large number of bolts from one tray of a conveyer belt to another tray of a different
conveyer belt. Moving one bolt at a time. TENZ has asked ABC for demonstration the
robotic arm for the said purpose as a proof of concept. This is the first project being
executed by ABC. TENZ would like to have a first experience of the robotic arm before
signing the MOU (Memorandum of Understanding) with ABC. After MOU sign-off,
TENZ would provide the complete set of requirement of the robot.
Problem Description: Identify the most appropriate SDLC model for this scenario. Also
give reason of selecting the desired model.
Solution:
The most suitable model is incremental model .
Because as ABC is dealing with his first project if the project fails then we can stop at
developing stages in initial stage only.
Otherwise if we came to know that our project is wrong at the end all the infrastructure
and effort is wasted and the projects crosses the budget.
7
2819044
First increment:
COMMUNICATION->PLANNING->MODELLING->CONSTRUCTION-
>DEPLOYMENT
Second increment:
COMMUNICATION->PLANNING->MODELLING->CONSTRUCTION-
>DEPLOYMENT
Third increment:
COMMUNICATION->PLANNING->MODELLING->CONSTRUCTION-
>DEPLOYMENT
.Nth increment:
COMMUNICATION->PLANNING->MODELLING->CONSTRUCTION-
>DEPLOYMENT
8
2819044
Practical No- 3
AIM: To classify the requirement into functional and non-
functional requirements and list four functional and non
functional requirements for any scenario.
SCENARIO:
1.1 The purpose of this document is to build an online system to manage flights and
passengers to ease the flight management.
DB Database
ER Entity Relationship
9
2819044
2. OVERALL DESCRIPTION
2.1 PRODUCT PERSPECTIVE
Flight details:
It includes the originating flight terminal and destination terminal, along with the
stops in between, the number of seats booked/available seats between two destinations
etc.
Customer description:
It includes customer code, name, address and phone number. This information may be
used for keeping the records of the customer for any emergency or for any other kind
of information.
Reservation description:
It includes customer details, code number, flight number, date of booking, date of
travel.
The major features of airline database system as shown in below entity relationship
model (ER model)
1
2819044
The diagram shows the layout of airline database system entity relationship model
Users of the system should be able to retrieve flight information between two given cities
with the given date/time of travel from the database. A route from city A to city B is a
sequence of connecting flights from A to B such that: a) there are at most two connecting
stops, excluding the starting city and destination city of the trip, b) the connecting time is
between one to two hours. The system will support two types of user privileges,
Customer, and Employee. Customers will have access to customer functions, and the
employees will have access to both customer and flight management functions. The
customer should be able to do the following functions:
1
2819044
• Multi-city
• Flexible Date/time
• Confirmation
Cancel an existing reservation
View his itinerary
The Employee should have following management functionalities:
CUSTOMER FUNCTIONS.
• Get all customers who have seats reserved on a given flight.
• Get all flights for a given airport.
• View flight schedule.
• Get all flights whose arrival and departure times are on time/delayed.
• Calculate total sales for a given flight.
ADMINISTRATIVE
• Add/Delete a flight
• Add a new airport
• Update fare for flights.
• Add a new flight leg instance.
• Update departure/arrival times for flight leg instances.
Each flight has a limited number of available seats. There are a number of flights
which depart from or arrive at different cities on different dates and time.
distributed database
client/server system
Operating system: Windows.
database: sql+ database
platform: vb.net/Java/PHP
1
2819044
Let us assume that this is a distributed airline management system and it is used in the
following application:
3. SYSTEM FEATURES
DESCRIPTION and PRIORITY
The airline reservation system maintains information on flights, classes of seats,
personal preferences, prices, and bookings. Of course, this project has a high priority
because it is very difficult to travel across countries without prior reservations.
STIMULUS/RESPONSE SEQUENCES
Search for Airline Flights for two Travel cities
Displays a detailed list of available flights and make a Reservation or Book a
ticket on a particular flight.
Cancel an existing Reservation.
FUNCTIONAL REQUIREMENTS
Other system features include:
DISTRIBUTED DATABASE:
1
2819044
CLIENT/SERVER SYSTEM
A client/server system is a distributed system in which, ▪ Some sites are client sites and
others are server sites.
Description
Software used
1
2819044
Following are the software used for the flight management online application.
This project supports all types of web browsers. We are using simple electronic forms
for the reservation forms, ticket booking etc.
5. NONFUNCTIONAL REQUIREMENTS
5.1 PERFORMANCE REQUIREMENTS
The steps involved to perform the implementation of airline database are as listed below.
A) E-R DIAGRAM
The E-R Diagram constitutes a technique for representing the logical structure of a
database in a pictorial manner. This analysis is then used to organize data as a relation,
normalizing relation and finally obtaining a relation database.
1
2819044
the
diagram shows the ER diagram of airline database
B) NORMALIZATION:
Normalization is the process of breaking down a table into smaller tables. So that each
table deals with a single theme. There are three different kinds of modifications of
anomalies and formulated the first, second and third normal forms (3NF) is considered
sufficient for most practical purposes. It should be considered only after a thorough
analysis and complete understanding of its implications.
If there is extensive damage to a wide portion of the database due to catastrophic failure,
such as a disk crash, the recovery method restores a past copy of the database that was
backed up to archival storage (typically tape) and reconstructs a more current state by
reapplying or redoing the operations of committed transactions from the backed up log,
up to the time of failure.
1
2819044
Security systems need database storage just like many other applications. However, the
special requirements of the security market mean that vendors must choose their
database partner carefully.
AVAILABILITY: The flight should be available on the specified date and specified
time as many customers are doing advance reservations.
CORRECTNESS: The flight should reach start from correct start terminal and should
reach the correct destination.
MAINTAINABILITY: The administrators and flight in chargers should
maintain correct schedules of flights.
USABILITY: The flight schedules should satisfy a maximum number of customers
needs.
1
2819044
Practical No: 4
AIM: Do comparative study of various software development
models.
Introduction
Software development life cycle (SDLC) is a series of phases that provide a common
understanding of the software building process, how the software will be realized and
developed from the business understanding and requirements elicitation phase to convert
these business ideas and requirements into functions and features until its usage and
operation to achieve the business needs. The good software engineer should have enough
knowledge on how to choose the SDLC model based on the project context and the
business requirements.
It may be required to choose the right SDLC model according to the specific concerns
and requirements of the project to ensure its success.
V-Shaped Model
Agile development
Waterfall Model
Description
The Waterfall Model is a linear sequential flow. In which progress is seen as flowing
steadily downwards (like a waterfall) through the phases of software implementation.
1
2819044
This means that any phase in the development process begins only if the previous phase
is complete. The waterfall approach does not define the process to go back to the
previous phase to handle changes in requirement. The waterfall approach is the earliest
approach and most widely known that was used for software development.
The usage
Projects which not focus on changing the requirements, for example, projects initiated
from a request for proposals (RFPs), the customer has a very clear documented
requirements
2. Structures approach.
Disadvantages
1. Very difficult to go back to any stage after it finished
V- Shaped Model
Description
1
2819044
It is an extension of the waterfall model, Instead of moving down in a linear way, the
process steps are bent upwards after the implementation and coding phase, to form the
typical V shape. The major difference between V-shaped model and waterfall model is
the early test planning in the V-shaped model.
The usage
3. Higher chance of success over the waterfall model due to the development of test
plans early on during the life cycle.
Disadvantages
1. Very inflexible, like the waterfall model
4. The model doesn t provide a clear path for problems during testing phases
Prototyping Model
Description
2
2819044
Throwaway prototyping: Prototypes that are eventually discarded rather than becoming a
part of the finally delivered software
Evolutionary prototyping: prototypes that evolve into the final system through an
iterative incorporation of user feedback.
Incremental prototyping: The final product is built as separate prototypes. In the end, the
separate prototypes are merged in an overall design.
Extreme prototyping: used in web applications mainly. Basically, it breaks down web
development into three phases, each one based on the preceding one. The first phase is a
static prototype that consists mainly of HTML pages. In the second phase, the screens
are programmed and fully functional using a simulated services layer. In the third phase,
the services are implemented
The usage
This process can be used with any software developing life cycle model. While this shall
be chosen when you are developing a system has user interactions. So, if the system does
not have user interactions, such as a system does some calculations shall not have
prototypes.
2
2819044
The usage
It is used in the large applications and systems which built-in small phases or segments.
2
2819044
basic idea behind this method is to develop a system through repeated cycles (iterative)
and in smaller portions at a time (incremental), allowing software developers to take
advantage of what was learned during the development of earlier parts or versions of the
system.
The usage
It is used in shrink-wrap application and large system which built-in small phases or
segments. Also, can be used in a system has separated components, for example, ERP
system. Which we can start with the budget module as a first iteration and then we can
start with inventory module and so forth.
Agile Model
Description
The usage
2
2819044
It can be used with any type of the project, but it needs more engagement from the
customer and to be interactive. Also, it can be used when the customer needs to have
some functional requirement ready in less than three weeks and the requirements are not
clear enough.
3. The end result is the high-quality software in the least possible time duration and in
the least possible time duration and satisfied customer.
1. Scalability.
2
2819044
Practical No: 5
There are a set of guidelines to be followed while preparing the software requirement
specification document. This includes the purpose, scope, functional and nonfunctional
requirements, software and hardware requirements of the project. In addition to this, it
also contains the information about environmental conditions required, safety and
security requirements, software quality attributes of the project etc.
2
2819044
The library management system is software, which automates the job of a librarian.
The user can inquire about the availability of a book in which he can search by entering
the author s name or by entering the title of the book.
The user can borrow a book. He must provide the username and the card number, which
is unique and confidential to each user. By confirming the authenticity of a user, the
library management system provides information about the number of books already
borrowed by the user and by referring to the database whether the user can borrow books
or not. The library management system allows the user to enter the title and the author of
the book and hence issues the book if it is available.
By entering the user details and the book details the user can return the borrowed book.
2
2819044
INTRODUCTION
Purpose
The purpose of this SRS is to describe the requirements involved in
developing a Library management system.
Scope
The product is titled Library Management
References
IEEE standard 830-1998 recommended practice for
Software Requirements Specifications-Description.
Overview
The SRS contains an analysis of the requirements necessary to help
easy design.
2
2819044
Memory Constraints
No specific constraints on memory.
Operations
The software allows three modes of operations 2.2.1.4.1.1
2
2819044
2
2819044
Product Functions
Enquire about the availability and status of books.
User characteristics
The intended users of this software need not have specific
knowledge as to what is the internal operation of the system.
Thus the end user is at a high level of abstraction that allows
easier, faster operation and reduces the knowledge
requirement of end user
The product does not expect the user to possess any technical
background. Any person who knows to use the mouse and the
keyboard can successfully use this product.
3
2819044
Constraints
The user has a unique username and password, there are no
options to retrieve a password or username in case it is
forgotten or lost hence the user is requited to remember or
store the username and password.
SPECIFIC REQUIREMENTS
The book details refer to the information such as the title of the
book, author availability status and the number of copies that
is available.
3
2819044
The library management system consists of two tables. One contains the student details
such as the name, card number that is the password, title and the author of the three
books, which could be borrowed. The book details consist of the title of the book,
number of copies, author and the availability status.
DATA STRUCTURES
BOOK DETAILS
FIELD NAME TYPE CONSTRAINTS
REGISTER_NO NUMBER NOT NULL
BOOK_ID NUMBER NOT NULL
ISSUE_DATE DATE/TIME
RETURN_DATE DATE/TIME
BOOK_NAME TEXT
STUDENT DETAILS
FIELD NAME TYPE CONSTRAINTS
REGISTER_NO NUMBER NOT NULL
FNAME TEXT NOT NULL
LNAME TEXT
GENDER TEXT
DEPT TEXT
EMAIL TEXT
PASSWORD TEXT
NO_OF_BOOKS NUMBER
3
28190
Practical No: 6
AIM: To identify the usage of Regression Testing.
Theory:
Regression Testing is a type of testing that is done to verify that a code change in
the software does not impact the existing functionality of the product.
This is to ensure that the product works fine with new functionality, bug fixes or
any changes to the existing feature. Previously executed test cases are re-executed
in order to verify the impact of the change. Regression Testing is a Software
Testing type in which test cases are re-executed in order to check whether the
previous functionality of the application is working fine and the new changes have
not introduced any new bugs.
PROCESS:
In order to do Regression Testing process, we need to first debug the code
to identify the bugs. Once the bugs are identified, required changes are
made to fix it, then the regression testing is done by selecting relevant test
cases from the test suite that covers both modified and affected parts of the
code.
ACTIVITIES:
RETEST ALL:
28190
This is one of the methods for Regression Testing in which all the tests in
the existing test bucket or suite should be re-executed. This is very
expensive as it requires huge time and resources.
Prioritize the test cases depending on business impact, critical & frequently
used functionalities. Selection of test cases based on priority will greatly
reduce the regression test suite.
It was found from industry data that a good number of the defects reported by
customers were due to last minute bug fixes creating side effects and hence
selecting the Test Case for regression testing is not that easy. Effective Regression
Tests can be done by selecting the following test cases -
Test cases of Functionalities which has undergone more and recent changes
Since the software undergoes frequent changes, regression testing costs will
escalate. In such cases, manual execution of test cases increases test execution time
as well as costs. Automation of regression test cases is the requirement in such
cases. The extent of automation depends on the number of test cases that remain re-
usable for successive regression cycles.
Following are the most important tools used for both functional and regression
testing in software engineering:
• Rational Functional Tester (RFT): IBM's rational functional tester is a Java tool
used to automate the test cases of software applications. This is primarily used for
automating regression test cases and it also integrates with Rational Test
Manager.
28190
Practical No-7
AIM: To identify the usage of Agile Testing.
THEORY:
Agile testing begins at the onset of a development project and involves the ongoing
integration between testing and development. Traditionally, testing was a separate
activity that came after the coding phase; in agile, testing is continuous, putting
testers between product owners and developers. This creates an ongoing feedback
loop which helps developers improve their code.
Quadrant 1—tests that relate to code quality, including automated tests like
unit and component tests.
Quadrant 2—tests that focus on the business-related aspect of the product,
typically manual and automated functional tests. These includes prototypes,
functional tests and testing examples of scenarios.
Quadrant 3—this quadrant provides feedback for tests in quadrants 1 and 2.
The team, business owners and even customers use the product in a realistic
way to test the user experience and measure business results.
Quadrant 4—tests of nonfunctional requirements, including security,
compatibility, and stability. Tests used in quadrant 4 include stress,
performance, and infrastructure testing.
28190
Practical No-8
AIM: To understand the importance of SDLC and STLC
process.
THEORY:
Software Development Life Cycle (SDLC) is a process used by the software
industry to design, develop and test high quality softwares. The SDLC aims to
produce a high-quality software that meets or exceeds customer expectations,
reaches completion within times and cost estimates.
Planning for the quality assurance requirements and identification of the risks
associated with the project is also done in the planning stage. The outcome of the
technical feasibility study is to define the various technical approaches that can be
followed to implement the project successfully with minimum risks.
Once the requirement analysis is done the next step is to clearly define and
document the product requirements and get them approved from the customer or
the market analysts. This is done through an SRS (Software Requirement
Specification) document which consists of all the product requirements to be
designed and developed during the project life cycle.
SRS is the reference for product architects to come out with the best architecture for
the product to be developed. Based on the requirements specified in SRS, usually
more than one design approach for the product architecture is proposed and
documented in a DDS - Design Document Specification.
This DDS is reviewed by all the important stakeholders and based on various
parameters as risk assessment, product robustness, design modularity, budget and
time constraints, the best design approach is selected for the product.
A design approach clearly defines all the architectural modules of the product along
with its communication and data flow representation with the external and third
party modules (if any). The internal design of all the modules of the proposed
architecture should be clearly defined with the minutest of the details in DDS.
In this stage of SDLC the actual development starts and the product is built. The
programming code is generated as per DDS during this stage. If the design is
performed in a detailed and organized manner, code generation can be
accomplished without much hassle.
Developers must follow the coding guidelines defined by their organization and
programming tools like compilers, interpreters, debuggers, etc. are used to generate
the code. Different high level programming languages such as C, C++, Pascal, Java
and PHP are used for coding. The programming language is chosen with respect to
the type of software being developed.
This stage is usually a subset of all the stages as in the modern SDLC models, the
testing activities are mostly involved in all the stages of SDLC. However, this stage
refers to the testing only stage of the product where product defects are reported,
tracked, fixed and retested, until the product reaches the quality standards defined
in the SRS.
Once the product is tested and ready to be deployed it is released formally in the
appropriate market. Sometimes product deployment happens in stages as per the
business strategy of that organization. The product may first be released in a limited
segment and tested in the real business environment (UAT- User acceptance
testing).
Then based on the feedback, the product may be released as it is or with suggested
enhancements in the targeting market segment. After the product is released in the
market, its maintenance is done for the existing customer base.
SDLC Models
There are various software development life cycle models defined and designed
which are followed during the software development process. These models are
also referred as Software Development Process Models". Each process model
follows a Series of steps unique to its type to ensure success in the process of
software development.
Following are the most important and popular SDLC models followed in the
industry −
Waterfall Model
Iterative Model
28190
Spiral Model
V-Model
Big Bang Model
STLC Phases
There are following six major phases in every Software Testing Life Cycle
Model (STLC Model):
1. Requirement Analysis
2. Test Planning
3. Test case development
4. Test Environment setup
5. Test Execution
6. Test Cycle closure
Entry Criteria: Entry Criteria gives the prerequisite items that must
be completed before testing can begin.
Exit Criteria: Exit Criteria defines the items that must be completed
before testing can be concluded
28190
RTM
Automation feasibility report. (if applicable)
then created and reviewed and then reworked based on the preconditions. Then
the QA team starts the development process of test cases for individual units.
Test Case Development Activities
Test cases/scripts
Test data
Practical No:9
AIM: To draw a use case diagram for Online Shopping
System.
Theory:
USE CASE DIAGRAM
A use case diagram is a dynamic or behavior diagram in UML. Use case diagrams
model the functionality of a system using actors and use cases. Use cases are a set of
actions, services, and functions that the system needs to perform. In this context, a
"system" is something being developed or operated, such as a web site. The "actors"
are people or entities operating under defined roles within the system.
Use case
Draw use cases using ovals. Label the 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.
28190
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 a certain use case.
28190
Practical No:10
AIM: Draw class diagram for Banking System
Theory:
Class Diagram
A class diagram models the static view of a system. It comprises of the classes,
interfaces, and collaborations of a system; and the relationships between them.
Class Diagram of a System
Let us consider a simplified Banking System.
A bank has many branches. In each zone, one branch is designated as the zonal head
office that supervises the other branches in that zone. Each branch can have multiple
accounts and loans. An account may be either a savings account or a current account.
A customer may open both a savings account and a current account. However, a
customer must not have more than one savings account or current account. A
customer may also procure loans from the bank.
Classes in the system:-
Bank, Branch, Account, Savings Account, Current Account, Loan, and Customer.
Relationships
A Bank “has–a” number of Branches − composition, one–to–many
A Branch with role Zonal Head Office supervises other Branches −
unary association, one–to-many
A Branch “has–a” number of accounts − aggregation, one–to–many
From the class Account, two classes have inherited, namely, Savings
Account and Current Account.
A Customer can have one Current Account − association, one–to–one
A Customer can have one Savings Account − association, one–to–one
A Branch “has–a” number of Loans − aggregation, one–to–many
A Customer can take many loans − association, one–to–many
28190
Practical No:11
AIM: Draw interaction diagram for Library
Management System
Management System
Now to create the Sequence Diagram for Library Management System, you must be
familiarize first with its symbols. This is to know how would you emphasize the
whole content of your Library Management System. With the symbol
familiarization, you’ll then easily understand the ways on the system development