You are on page 1of 98

AKV PUBLIC SCHOOL

SENIOR SECONDARY - CBSE


SURIYAGOUNDAMPALAYAM,

MALLASAMUDRAM–637 503, NAMAKKAL(Dt.)

PROJECT REPORT
ON
STOCK MANAGEMENT SYSTEM

SUBMITTED BY

MOULIDHARAN R -

KAVIN KUMAR R -

CLASS - xII

COMPUTER SCIENCE - CODE NO. 083

AISSCE PRACTICAL EXAMINATION

2023 - 2024
AKV PUBLIC SCHOOL
SENIOR SECONDARY - CBSE
SURIYAGOUNDAMPALAYAM,

MALLASAMUDRAM–637 503, NAMAKKAL(Dt.)

AISSCE PRACTICAL EXAMINATION

PROJECT REPORT

COMPUTER SCIENCE - CODE NO. 083

2022 – 2023

CLASS - xII

STOCK MANAGEMENT SYSTEM

REGISTER. NO : ………………………………………………………

NAME : ………………………………………………………

CLASS : ………………………………………………………

SUBJECT NAME : ………………………………………………………


AKV PUBLIC SCHOOL
SENIOR SECONDARY - CBSE
SURIYAGOUNDAMPALAYAM,

MALLASAMUDRAM–637 503, NAMAKKAL(Dt.)

CERTIFICATE
REGISTER. NO : ………………………………………………………

NAME : ………………………………………………………

CLASS : ………………………………………………………

Certified that this project report on…………………………………… is the bonafide

work done by the above student of CLASS XII for the fulfillment of AISSCE

PRACTICAL EXAMINATION during the academic year 2023-2024 and

carried out the project work under my supervision.

Date : Signature of The Subject Teacher

Submitted for the Board of Senior Secondary Practical Examination

held on ………………

Internal Examiner External Examiner

Signature of The Principal


ACKNOWLEDGEMENT

The success of the project depends largely on the encouragement and

guidelines of many others. I take this opportunity to express my gratitude

to the people who have been instrumental in the successful completion of

this project.

I express deep sense of gratitude to almighty God for giving me strength

for the successful completion of the project.

I am very much pleased to express my gratitude to our Correspondent

Mr. K.MUTHUSAMY for giving me opportunity to study Senior Secondary –

CBSE in the AKV Public School and their valuable advice, suggestion and

encouragement during the course of the study.

I am very much pleased to express my gratitude to our Principal Mr.

P.PALANIVEL, AKV Public School, Senior Secondary – CBSE, Namakkal,

who has been continuously motivating and extending their helping hand to

us.

I express my thanks to our project guide Mr.F.CHINNAPPAN PREMKUMAR,

PGT Computer Science for guiding us each and every stage of this project.

The guidance and support received from all the members who contributed

and who are contributing to this project, was vital for the success of the

project. i am grateful for their constant support and help.


TABLE OF CONTENTS

S.NO DESCRIPTION PAGE NO

1. INTRODUCTION

2. OBJECTIVES OF THE PROJECT

3. SYSTEM ANALYSIS

4. FEASIBILITY STUDY

5. PROPOSED SYSTEM

6. SYSTEM DESIGN

7. SYSTEM IMPLEMENTATION

8. SYSTEM DEVELOPMENT LIFE CYCLE

9. SYSTEM REQUIREMENTS

10. SOURCE CODE

11. OUTPUT

12. SYSTEM TESTING

13. SOFTWARE MAINTENANCE

14. CONCLUSION AND FUTURE SCOPE

15. BIBLIOGRAPHY
1.INTRODUCTION

A stock management system is a software application that helps


businesses keep track of their inventory. It can be used to manage
stock levels, track orders, and generate reports. A stock
management system can help businesses save time and money by
automating stock management tasks. A stock management system
can help businesses improve accuracy of stock level, reduce costs,
improve customer service, and increase sales.

Here are some of the benefits of using a stock


management system:

Improved stock accuracy: A stock management system can


help businesses keep track of their inventory levels in real time.
This can help prevent stockouts and overstocking.

Reduced costs: A stock management system can help


businesses save money by automating stock management
tasks. This can free up employees to focus on other tasks.

Improved customer service: A stock management system


can help businesses improve customer service by providing
accurate information about inventory levels. This can help
customers find the products they need and avoid
disappointment.

Increased sales: A stock management system can help


businesses increase sales by ensuring that they have the
products that customers want in stock. This can lead to
increased customer satisfaction and loyalty. It can help you
save time, money, and improve customer service.

Stock management is the supervision of noncapitalized assets


or inventory and stock items.
2. OBJECTIVES OF THE PROJECT

This Project is aimed at developing a hardware-based system named


Stock Management System for managing the stock system of any
organization. The Stock Management System (SMS) refers to the
system and processes to manage the stock of organization with the
involvement of Technology system. This system can be used to
store the details of the stock, stock maintenance, update the stock
based on the sales details, and generate sales and stock report daily
or weekly based.

This project is categorized individual aspects for the sales and stock
management system. In this system we are solving different
problem affecting to direct sales management and purchase
management. Stock Management System is important to ensure
quality control in businesses that handle transactions resolving
around consumer goods. Without proper stock control, a large retail
store may run out of stock on an important item.

A good stock management system will alert the wholesaler when it


is time to record. Stock Management System is also on important
means of automatically tracking large shipment. An automated
Stock Management. The students apply the programming knowledge
into a real-world situation/problem and exposed the students how

programming skills helps in developing a good software.

 Write programs utilizing modern software tools.

 Apply object-oriented programming principles effectively when


developing medium sized projects. Write effective procedural
code to solve medium sized problems.
3. SYSTEM ANALYSIS

System analysis is a process of gathering and interpreting facts,


diagnosing problems and the information about the Stock
Management System to recommend improvements on the system.

It is a problem-solving activity that requires intensive


communication between the system users and system developers.
System analysis or study the minutest detail and analyzed.

The system analyst plays the role of the interrogator and dwells
deep into the working of the present system. The system is viewed
as a whole and the input to the system are identified. The outputs
from the organizations are traced to the various processes.

System analysis is concerned with becoming aware of the problem,


identifying the relevant and decisional variables, analyzing and
synthesizing the various factors and determining an optimal or at
least a satisfactory solution or program of action.

A detailed study of the process must be made by various techniques


like interviews, questionnaires etc. The data collected by these
sources must be scrutinized to arrive to a conclusion.

The conclusion is an understanding of how the system functions.


This system is called the existing system. Now the existing system is
subjected to close study and problem areas are identified. The
designer now functions as a problem solver and tries to sort out the
difficulties that the enterprise faces.

The solutions are given as proposals. The proposal is then weighed


with the existing system analytically and the best one is selected.
The proposal is presented to the user for an endorsement by the
user. The proposal is reviewed on user request and suitable changes
are made. This is loop that ends as soon as the user is satisfied with
proposal.
Preliminary study is the process of gathering and interpreting facts,
using the information for further studies on the system. Preliminary
study is problem solving activity that requires intensive
communication between the system users and system developers. It
does various feasibility studies. In these studies a rough figure of
the system activities can be obtained, from which the decision about
the strategies to be followed for effective system study and analysis
can be taken.

We collected a number of requirements for project from our


primitive research, website visits, and interview to the concerned
personnel and their experiences regarding the concepts of its
development.

We then decided to build same type of application with different


logic flow and new language which will be suitable for the small
organization.

 Enabling comprehension of complicated structures.

 Allowing for better management of any business changes.

 Aligning the organization with its environment and strategic


priorities.

 Minimizing IT issues and reducing the workload


of IT employees.

 Identifying potential risks and threats to the processes.

 Improving the overall quality of the system.

 Improving the usability of the system by employees.

 Increasing productivity and customer satisfaction.


4. FEASIBILITY STUDY

Feasibility Study in Software Engineering is a study to evaluate


feasibility of proposed project or system. Feasibility study is one of
stage among important four stages of Software Project Management
Process. As name suggests feasibility study is the feasibility analysis
or it is a measure of the software product in terms of how much
beneficial product development will be for the organization in a
practical point of view.

Feasibility study is carried out based on many purposes to analyze


whether software product will be right in terms of development,
implantation, contribution of project to the organization etc.

TYPES OF FEASIBILITY STUDY

The feasibility study mainly concentrates on below five mentioned


areas. Among these Economic Feasibility Study is most important
part of the feasibility analysis and Legal Feasibility Study is less
considered feasibility analysis.

 Technical Feasibility.

 Operational Feasibility.

 Economic Feasibility.

 Legal Feasibility.

 Schedule Feasibility.

TECHNICAL FEASIBILITY

In Technical Feasibility current resources both hardware software


along with required technology are analyzed/assessed to develop
project.

This technical feasibility study gives report whether there exists


correct required resources and technologies which will be used for
project development.
Along with this, feasibility study also analyzes technical skills and
capabilities of technical team, existing technology can be used or
not, maintenance and up-gradation is easy or not for chosen
technology etc.

OPERATIONAL FEASIBILITY

In Operational Feasibility degree of providing service to


requirements is analyzed along with how much easy product will be
to operate and maintenance after deployment. Along with these
other operational scopes are determining usability of product,
determining suggested solution by software development team is
acceptable or not etc.

ECONOMIC FEASIBILITY

In Economic Feasibility study cost and benefit of the project is


analyzed. Means under this feasibility study a detail analysis is
carried out what will be cost of the project for development which
includes all required cost for final development like hardware and
software resource required, design and development cost and
operational cost and so on. After that it is analyzed whether project
will be beneficial in terms of finance for organization or not.

LEGAL FEASIBILITY

In Legal Feasibility study project is analyzed in legality point of view.


This includes analyzing barriers of legal implementation of project,
data protection acts or social media laws, project certificate, license,
copyright etc. Overall it can be said that Legal Feasibility Study is
study to know if proposed project conforms legal and ethical
requirements.
SCHEDULE FEASIBILITY

In Schedule Feasibility Study mainly timelines/deadlines is analyzed


for proposed project which includes how many times teams will take

to complete final project which has a great impact on the


organization as purpose of project may fail if it can’t be completed
on time.

FEASIBILITY STUDY PROCESS

The below steps are carried out during entire feasibility analysis.

 Information assessment

 Information collection

 Report writing

 General information

Need of Feasibility Study

Feasibility study is so important stage of Software Project


Management Process as after completion of feasibility study it gives
a conclusion of whether to go ahead with proposed project as it is
practically feasible or to stop proposed project here as it is not
right/feasible to develop or to think/analyze about proposed project
again.

Along with this Feasibility study helps in identifying risk factors


involved in developing and deploying system and planning for risk
analysis also narrows the business alternatives and enhance success
rate analyzing different parameters.
5. PROPOSED SYSTEM

The Proposed system for Stock Management System using python


with MYSQL project helps them to understand the different
techniques of database but also helps them to understand the
different techniques of database but also helps them to understand
the business rules, software needs to follows.

The Stock Management System project as simple as we can. Only


few tables have been used throughout the project. Stock
Management System project stores basic information of stock in few
separate MYSQL tables, mysql.connector is used to make a
connection between python and MYSQL.

In MYSQL, this project is divided into four main sub management.

 Purchase Management

 Product Management

 Sales Management

 User Management

 The whole code is divided into user-defined functions. These


functions have been called from the main menu to generate
the initial menu system.

1. The purchase management stores the basic information


of all the purchased items

2. The product management stores all the


required stocks to be stored

3. The sales management stores all


basic information about the sold item

4. The user management stores the


information about the details of the consumers.
ADVANTAGE OF STOCK MANAGEMENT SYSTEM

 Some of the benefits you will get by having a stock control


system in your company are: Increasing the quality level of
customer service, reducing lost sales due to lack of product
and generating greater loyalty to your company. Improving
your company's cash flow and have a higher inventory
turnover.

 A stock management system is a software application that


helps businesses keep track of their inventory.

 It can be used to manage inventory levels, track orders, and


generate reports.

 A stock management system can help businesses save time


and money by automating stock management tasks.

 A stock management system can help such as:

 Businesses improve inventory accuracy

 Reduce costs

 Improve customer service

 Increase sales.

Save cost- A stock management system can help businesses save


money by automating stock management tasks. This can free up
employees to focus on other tasks.

Save time-Stock is able to search record by using few clicks of


mouse and few search keywords thus saving his valuable time.
LIMITATIONS OF STOCK MANAGEMENT SYSTEM

Limitations of stock management system project though the project


is complete in all sense still it has some scope of improvement .Few
of them as follows

 This is a command based python interface. It can be


developed in web interface.

 Field level and form level validations not implemented.

 Restricted to only few activities.


6. SYSTEM DESIGN

System design in Software development is the process of designing


the elements of a system such as the architecture, modules and
components, the different interfaces of those components and the
data that goes through that system.

System analysis is a process of gathering and interpreting facts,


diagnosing problems and the information about the Stock
Management System to recommend improvements on the system.
It is a problem-solving activity that requires intensive
communication between the system users and system developers.

The purpose of the system design process is to provide sufficient


detailed data and information about the system and its system
elements to enable the implementation consistent with architectural
entities as defined in models and views of the system architecture.

Elements of A System

 Architecture- This is the conceptual model that defines the


structure, behavior and more views of a system. We can use
flowcharts to represent and illustrate the architecture.

 Modules-This are components that handle one specific tasks in a


system.

 Components- This provides a particular function or group of


related functions. They are made up of modules.

 Interface –This is the shared boundary across which the


components of the system exchange information and related.
Major Tasks Performed During the System Design
Process

1.Initialize design definition

Plan for and Identify the technologies that will compose and
implement the systems elements.

Determine which technologies and system elements have a risk to


become obsolete, or evolve during the operation stage of the
system. Plan for their potential replacement.

2.Establish design characteristics

Define the design characteristics relating to the architectural


characteristics and check that they are implementable.

Define the interfaces that were not defined by the System


Architecture process or that need to be refined as the design details
evolve.

Define and document the design characteristics of each system


element2.

3. Assess alternatives for obtaining system elements

 Assess the design options

 Select the most appropriate alternatives.

If the decision is made to develop the system element, rest of the


design definition process and the implementation process are used.
If the decision is to buy or reuse a system element, the acquisition

process may be used to obtain the system element.


4. Manage the design

 Capture and maintain the rationale for all selections among


alternatives and decisions for the design, architecture
characteristics.

 Assess and control the evolution of the design characteristics.


MODULE OF STOCK MANAGEMENT SYSTEM

Module Details

1. Purchase Management

 Purchase items

 List purchased items

2. Product Management

 Add purchased items as product to be sold

 List products

 Update product details

 Delete product details

3. Sales Management

 Sale items

 Add user account and sale item

 List sold items

4. User Management

 List user details


 Delete user details

5. Exit application used to close the application


Library Used in STOCK MANAGEMENT SYSTEM

 mysql.connector module is making a


responsible for connection
between python and MYSQL
 datetime module used to fetch the current date from the
system.

 os module provides the facility to establish the interaction


between the user and the operating system

MySQL Tables structures

This Project is divided into following main tables,

1. Orders 2. Product 3. 4. User


Sales
 Or_code is primary key in orders table,
 pcode is primary key in product table.

1.Orders table structures


2.Product table structure

3.Sales table structure

4.User table structure


7. SYSTEM IMPLEMENTATION

Systems implementation is a set of procedures performed to


complete the design (as necessary) contained in the approved
systems design document and to test, install, and begin to use the
new or revised Information System. The fifth step in a system
implementation project is to monitor and control the project scope,
which is the process of measuring and managing the project scope
performance and changes.

MODULE IMPLEMENTATION

Module implementation details.

1. Purchase Management
Module

a. To add purchased item


b. To list purchased item

2. Product Management Module

a. To add purchased item as product


b. To list added products

c. To update product details


d. To delete product details

3. Sales Management Module

a. To add details of sold products


b. To List sold products

4. User Management Module

a. To list user details


b. To delete user details
8. SYSTEM DEVELOPMENT LIFE CYCLE

The systems development life cycle (SDLC) is a conceptual model


used in project management that describes the stages involved in
an information system development project, from an initial
feasibility study through maintenance of the completed application.
SDLC can apply to technical and non-technical systems. In most use
cases, a system is an IT technology such as hardware and
software. Project and program managers typically take part in SDLC,
along with system and software engineers, development teams and
end-users.

Every hardware or software system will go through a development


process which can be thought as an iterative process with multiple
steps. SDLC is used to give a rigid structure and framework to
define the phases and steps involved in the development of a
system.
Software development projects typically include initiation, planning,
design, development, testing, implementation, and maintenance
phases. However, the phases may be divided differently depending
on the organization involved.

For example, initial project activities might be designated as


request, requirements-definition, and planning phases, or initiation,
concept-development, and planning phases. End users of the system
under development should be involved in reviewing the output of
each phase to ensure the system is being built to deliver the needed
functionality.

PHASES OF SYSTEM DEVELOPMENT LIFE CYCLE

INITIATION PHASE

 The Initiation Phase begins when a business sponsor identifies


a need or an opportunity.

 The purpose of the Initiation Phase is to:

 Identify and validate an opportunity to improve business


accomplishments of the organization or a deficiency related to
a business need.

 Identify significant assumptions and constraints on solutions


to that need.

 Recommend the exploration of alternative concepts and


methods to satisfy the need including questioning the need for
technology, i.e., will a change in the business process offer a
solution?

 Assure executive business and executive technical


sponsorship. The Sponsor designates a Project Manager and
the business need is documented in a Concept Proposal.
 The Concept Proposal includes information about the business
process and the relationship to the Agency/Organization.

 Infrastructure and the Strategic Plan. A successful Concept


Proposal results in a Project Management Charter which
outlines the authority of the project manager to begin the
project.

 Careful oversight is required to ensure


strategic business projects support objectives
implemented into an
andorganization's
resources areenterprise
effectivelyarchitecture.
The initiation phase begins when an opportunity to add,
improve, or correct a system is identified and formally
requested through the presentation of a business case.The
business case should, at a minimum, describe a proposal’s
purpose, identify expected benefits, and explain how the
proposed system supports one of the organization’s business
strategies. The business case should also identify alternative
solutions, detail as many informational, functional, and
requirements as possible.

SYSTEM CONCEPT DEVELOPMENT PHASE

The System Concept Development Phase begins after a business


need or opportunity is validated by the Agency/Organization
Program Leadership and the Agency/Organization.

The purpose of the System Concept Development Phase:

1.Determine the feasibility and of the


appropriateness alternatives.

2. Identify system interfaces and Assess project risks.

3. Identify basic functional and data requirements to satisfy the


business need.
4. Establish system boundaries, identify goals,
objectives, critical success factors, and performance measures.

5. Evaluate costs and benefits of alternative


approaches to satisfy the basic functional requirements

6. Identify and initiate risk mitigation actions, and develop


high- level technical architecture, process models, data models,
and a concept of operations. This phase explores potential
technical solutions within the context of the business need.

7. It may include several trade-off decisions such as the


decision to use COTS software products as opposed to
developing custom software or reusing software
components, or the decision to use an incremental delivery
versus a complete, onetime deployment.

8. Construction of executable prototypes is


encouraged to evaluate technology to support the
business process. The System Boundary Document serves as
an important reference document to support the
Information Technology Project Request process.

PICTORIAL REPRESENTATION OF SDL


PLANNING PHASE

The planning phase is the most critical step in completing


development, acquisition, and maintenance projects. Careful
planning, particularly in the early stages of a project, is necessary to
coordinate activities and manage project risks effectively. The depth
and formality of project plans should be commensurate with the
characteristics and risks of a given project. Project plans refine the
information gathered during the initiation phase by further
identifying the specific activities and resources required to complete
a project.

A critical part of a project manager’s job is to coordinate discussions


between user, audit, security, design, development, and network
personnel to identify and document as many functional, security,
and network requirements as possible. During this phase, a plan is
developed that documents the approach to be used and includes a
discussion of methods, tools, tasks, resources, project schedules,
and user input. Personnel assignments, costs, project schedule, and
target dates are established.

A Project Management Plan is created with components related to


acquisition planning, configuration management planning, quality
assurance planning, concept of operations, system security,
verification and validation, and systems engineering management
planning.

REQUIREMENTS ANALYSIS PHASE

This phase formally defines the detailed functional user


requirements using high-level requirements identified in the
Initiation, System Concept, and Planning phases. It also delineates
the requirements in terms of data, system performance, security,
and maintainability requirements for the system.
The requirements are defined in this phase to level of detail
sufficient for systems design to proceed. They need to be
measurable, testable, and relate to the business need or opportunity
identified in the Initiation Phase. The requirements that will be used
to determine acceptance of the system are captured in the Test and
Evaluation Plan.

The purposes of this phase are to:

Further define and refine the functional and data requirements and
document them in the Requirements Document,

Complete business process reengineering of the functions to be


supported (i.e., verify what information drives the business process,
what information is generated, who generates it, where does the
information go, and who processes it),

Develop detailed data and process models (system inputs, outputs,


and the process.

Develop the test and evaluation requirements that will be used to


determine acceptable system performance.

DESIGN PHASE

The design phase involves converting the informational, functional,


and network requirements identified during the initiation and
planning phases into unified design specifications that developers
use to script programs during the development phase. Program
designs are constructed in various ways. Using a top-down
approach, designers first identify and link major program
components and interfaces, then expand design layouts as they
identify and link smaller subsystems and connections. Using a
bottom-up approach,

Designers first identify and link minor program components and


interfaces, then expand design layouts as they identify and link
larger systems and connections.
Database layouts and system architectures. End users, designers,
developers, database managers, and network administrators should
review and refine the prototyped designs in an iterative process until
they agree on an acceptable design. Audit, security, and quality
assurance personnel should be involved in the review and approval
process. During this phase, the system is designed to satisfy the
functional requirements identified in the previous phase. Since
problems in the design phase could be very expensive to solve in
the later stage of the software development, a variety of elements
are considered in the design to mitigate risk.

These include:

 Identifying risks and defining mitigating design


potential
features.
 Performing a security risk assessment.

 Developing a conversion plan to current data to the new


system.

 Determining the operating environment.

 Defining major subsystems and their inputs and outputs.

 Allocating processes to resources.

Preparing detailed logic specifications for each software module. The


result is a draft System Design Document which captures the
preliminary design for the system.

Everything requiring user input or approval is documented and


reviewed by the user. Once these documents have been approved
by the Agency CIO and Business Sponsor, the final System Design
Document is created to serve as the Critical/Detailed Design for the
system.
This document receives rigorous review by Agency technical and
functional representatives to ensure that it satisfies the business
requirements. Concurrent with the development of the system
design, the Agency Project Manager begins development of the
Implementation Plan, Operations and Maintenance Manual, and the
Training Plan.

DEVELOPMENT PHASE

The development phase involves converting design specifications


into executable programs. Effective development standards include
requirements that programmers and other project participants
discuss design specifications before programming begins. The
procedures help ensure programmers clearly understand program
designs and functional requirements.

Programmers use various techniques to develop computer


programs. The large transaction-oriented programs associated with
financial institutions have traditionally been developed using
procedural programming techniques.

Procedural programming involves the line-by-line scripting of logical


instructions that are combined to form a program. Effective
completion of the previous stages is a key factor in the success of
the Development phase.

The Development phase consists of:

 Translating the detailed requirements and design into system


components.

 Testing individual elements (units) for usability.

 Preparing for integration and testing of the IT system.


INTEGRATION AND TEST PHASE

 Subsystem integration, system, security, and user acceptance


testing is conducted during the integration and test phase.

 The user, with those responsible for quality assurance,


validates that the functional requirements, as defined in the
functional requirements document, are satisfied by the
developed or modified system.

 Multiple levels of testing are performed, including:

a. Testing at the development facility by the contractor and


possibly supported by end users

b. Testing as a deployed system with end users working


together with contract personnel

c. Operational testing by the end user alone performing all


functions. Requirements are traced throughout testing;
a final Independent Verification & Validation evaluation
is performed and all documentation is reviewed and
accepted prior to acceptance of the system.

IMPLEMENTATION PHASE

This phase is initiated after the system has been tested and
accepted by the user. In this phase, the system is installed to
support the intended business functions. System performance is
compared to performance objectives established during the planning
phase. Implementation includes user notification, user training,
installation of hardware, installation of software onto production
computers, and integration of the system into daily work processes.

This phase continues until the system is operating in production in


accordance with the defined user requirements.
OPERATIONS AND MAINTENANCE PHASE

The system operation is ongoing. The system is monitored for


continued performance in accordance with user requirements and
needed system modifications are incorporated. Operations continue
as long as the system can be effectively adapted to respond to the
organization’s needs. When modifications or changes are identified,

the system may reenter the planning phase.

The purpose of this phase is to:

 Operate, maintain, and enhance the system.

 Certify that the system can process sensitive information.

 Software Maintenance is the process of modifying a software


product after it has been delivered to the customer. The main
purpose of software maintenance is to modify and update
software applications after delivery to correct faults and to
improve performance.

 Software maintenance is also an important part of the


Software Development Life Cycle (SDLC). To update the
software application and do all modifications in software
application so as to improve performance is the main focus of
software maintenance. Software is a model that run on the
basis of real world. so, whenever any change requires in the
software that means the need of real-world changes wherever
possible.

NEED FOR MAINTENANCE.

Software Maintenance must be performed in order to:

 Correct faults.

 Improve the design.

 Implement enhancements.
 Interface with other systems.

 Accommodate programs so that different hardware, software,


system features, and telecommunications facilities can be
used.

 Migrate legacy software.

 Retire software.

 Requirement of user changes.

 Run the code fast

CHALLENGES IN SOFTWARE MAINTENANCE:

The various challenges in software maintenance are given below:

The popular age of any software program is taken into consideration


up to ten to fifteen years. As software program renovation is open
ended and might maintain for decades making it very expensive.

Older software programs, which had been intended to paintings on


sluggish machines with much less reminiscence and garage ability
cannot maintain themselves tough in opposition to newly coming
more advantageous software program on contemporary-day
hardware.

Changes are frequently left undocumented which can also


additionally reason greater conflicts in future.

As era advances, it turns into high priced to preserve vintage


software program.

Often adjustments made can without problems harm the authentic


shape of the software program, making it difficult for any next
adjustments and There is lack of Code Comments.
CATEGORIES OF SOFTWARE MAINTENANCE.

Maintenance can be divided into the following:

Corrective maintenance:

Corrective maintenance of a software product may be essential


either to rectify some bugs observed while the system is in use, or

to enhance the performance of the system.

Adaptive maintenance:

This includes modifications and updating when the customers need


the product to run on new platforms, on new operating systems, or
when they need the product to interface with new hardware and
software.

Perfective maintenance:

A software product needs maintenance to support the new features


that the users want or to change different types of functionalities of
the system according to the customer demands.

Preventive maintenance:

This type of maintenance includes modifications and updating to


prevent future problems of the software. It goals to attend
problems, which are not significant at this moment but may cause
serious issues in future.
9. SYSTEM REQUIREMENTS

HARDWARE REQUIREMENTS:

Processor : Intel Pentium (Any version) or above

RAM : 512 MB or above

Hard disk : SATA 40 GB or above

SOFTWARE REQUIREMENTS:

Operating System : Windows 7 or later

Front End Tool :Python 2.7.X or Python 3.6.X

Back End Tool :MySQL Workbench 5.0.20 or above


10.SOURCE CODE

# STOCK MANAGEMENT

import os

import mysql.connector

import datetime

now = datetime.datetime.now()

mydb=mysql.connector.connect(host="localhost",user="root",

passwd="rootroot",database
="stock")

mycursor=mydb.cursor()

def product_mgmt( ):

while True :

print('''

1. Add New Product

2. List Products

3. Update Product Details

4. Delete Product Detail

5. Main Menu

''')

p=int (input ("\nEnter Your Choice:"))

if p==1:

add_product()

if p==2:
search_product()

if p==3:

update_product()

if p==4:

delete_product()

if p== 5:

break

def purchase_mgmt( ):

w
hile True :

p
rint('''

1. Add Order

2. List Order

3. Back (Main Menu)

''')

o=int (input("\nEnter Your Choice:"))

if o==1 :

add_order()

if o==2 :

list_order()

if o== 3 :

bre
ak
def sales_mgmt( ):

while True :

print('''

1. Sale Items

2. List Sales

3. Exit

''')

s=int (input("\nEnter Your Choice:"))

if s== 1 :

sale_product()

if s== 2 :

list_sale()

if s== 3 :

br
eak

def user_mgmt( ):

while True :

print('''

1. List User Details

2. Delete User Details

3. Exit

''')
u=int (input("\nEnter Your Choice:"))

if u==1:

code1=int(input("Enter correct user id:"))

password=eval (input ("Enter correct password:"))

user_code(code1,password)

if u==2:

code2=int (input ("Enter correct user id:"))

password1=int (input ("Enter correct password:"))

pr_name=input ("Enter the purchased product name:")

delete_user(code2,password1,pr_name)

if u==3:

break

def add_order():

mydb=mysql.connector.connect(host="localhost",user="root",

passwd="rooroot",database="stoc
k")

mycursor=mydb.cursor()

now = datetime.datetime.now()

sql="INSERT INTO orders(or_code,or_date,or_name,

or_price,or_qty,or_supp,or_cat) values (%s,%s,%s,%s,%s,%s,%s)"

code=int(input("Enter the item code:"))

name=input("Enter the item name:")

qty=int(input("Enter the item quantity: "))


price=float(input("Enter item unit price: "))

cat=input("Enter the category of item: ")

supplier=input("Enter Supplier details: ")

val=(code,now,name,price,qty,supplier,cat)

mycursor.execute(sql,val)

mydb.commit()

def list_order():

mydb=
mysql.connecto
r.connect(host=
"localhost",user
="root",

passwd="rootroot",database="stock")

mycursor=mydb.cur

sor() sql="SELECT * from

orders"

mycursor.execute(sql)

clrscr()

s=mycursor.fetchall()

print (“Or_code,date of Purchase,Or_Name,Or_price,


Or_qty,Or_supp,

Or_Cat ”)

for i in s:

print(i)

def add_product():

m
ydb=mysql.c
onnector.con
nect(host="l
ocalhost",us
ocode="SELECT or_code from orders"

mycursor.execute(ocode)

g=mycursor.fetchall()

l=[]

for i in g:

c=list(i)

l=l+c

if code in
l:

search="SELECT count(*) FROM product WHERE pcode=%s;"

val=(code,)

mycursor.execute(search,val)

for x in mycursor:

cnt=x[0]

if cnt==0:

f="SELECT or_code,or_name,or_qty,or_cat from

orders where or_code=%s"

k1=(code,)

mycursor.execute(f,k1) k=[]

b=mycursor.fetchall() for u in b:

b1=list(u)

k=k+b1
print("The order is,",k)

a1=k[0]

a2=k[1]

a3=k[2]

a4=k[3]

price=int(input("Enter product unit new price :"))

mysql3="INSERT INTO product


values({},'{}',{},{},'{}')".format(a1,a2,price,a3,a4)

mycursor.execute(mysql3)

mydb.commit()

else:

print("Product already
exist")

else:

print("The product is not purchased!")

def update_product():

mydb=mysql.connector.connec
t(host="localhost",user="root",

passwd="rootroot",database="stock")

mycursor=my

db.cursor() while True:

print("1.Update Product

name") print("2.Update product

quantity") print("3.Update product

price") print("4.Update product

category") print("5.Back (Main


ch=int(input("Enter your choice:"))

if ch==1:

code=int(input("Enter the code of the product to be updated:"))

name=input("Enter the new name of the product:")

sql="UPDATE product SET pname=%s WHERE pcode=%s"

val=(name,code)

mycursor.execute(sql,val)

mydb.commit

print("product name
updated")

if ch==2:

code=int(input("Enter the product code that to be updated:"))

qty=int(input("Enter the new quantity :"))

sql="UPDATE product SET pqty=%s WHERE pcode=%s"

val=(qty,code)

mycursor.execute(sql,val)

mydb.commit()

print("Product quantity updated")

if ch==3:

code=int(input("Enter the product code that to be

updated:")) price=int(input("Enter the new price of the

product:"))

sql="UPDATE product SET pprice=%s WHERE pcode=

%s" val=(price,code)

mycursor.execute(sql,val)
mydb.commit()

print("Product price updtated")

if ch==4:

code=int(input("Enter the code of the product to be

updated:")) cat=input("Enter the new category of the product:")

sql="UPDATE product SET pcat=%s WHERE pcode=%s"

val=(cat,code)

mycursor.execute(sql,v

al) mydb.commit()

print("Product category updated")

if ch==5:

break

def delete_product():

m
ydb=mysql.c
onnector.con
nect(host="lo
calhost",user
="root",

p
a
s
s
w
d
=
"
r
o
o
t
r
o
o
t
"
,
while True :

print('''

1. LIST ALL PRODUCT

2. LIST PRODUCT CODE WISE

3. LIST PRODUCT NAME WISE

4. LIST PRODUCT CATEGORY WISE

5. BACK (MAIN MENU)

''')

s=int (input("Enter Your Choice :"))

if s==1 :

print("\n\n\t\t\tPRODUCT
DETAILS")

print("\n\
n(PR_CODE,PR_NAME,PR_P
RICE,PR_QUANTITY

,PR_CATEGORY)")

list_product()

if s==2 :

code=int(input(" Enter product

code :")) print("\n\n\t\t\tPRODUCT

DETAILS")

print("\n\nPR_CODE,PR_NAME,PR_PRICE,

PR_QUANTITY,PR_CATEGORY")

list_prcode(code)
print("\n\n\t\t\tPRODUCT DETAILS")

print("\n\nPR_CODE,PR_NAME,PR_PRICE,

PR_QUANTITY,PR_CATEGORY")

list_prname(name)

if s==4 :

cat=input("Enter category :")

print("\n\n\t\t\tPRODUCT DETAILS")

print("\n\nPR_CODE,PR_NAME,PR_PRICE,

PR_QUANTITY,PR_CATEGO
RY")

list_prcat(cat)

if s==5 :

break

d
e
f

l
i
s
t
_
p
r
o
d
u
c
t
(
)
:

m
ydb=mysq
l.connector
.connect(h
ost="local
host",user
def list_prcode(code):

mydb=mysql.connector.connect(host="localhost",user="root",

passwd="rootroot",database="stock")

mycursor=mydb.cursor()

sql="SELECT pcode from product"

mycursor.execute(sql)

l=[]

for j in mycursor:

p=list(j)

l=l+p

if code in l:

sql1="SELECT * from product WHERE pcode=%s"

val=(code,)

mycursor.execute(sql1,val)

y=mycursor.fetchall()

for i in y:

print(i)

else:

print("Enter correct product code!")

def list_prname(name):

mydb=mysql.connector.con
nect(host="localhost",user="root",

p
assw
d="ro
otroo
t",dat
abase
="sto
sql="SELECT pname from product"

mycursor.execute(sql)

l=[]

for j in mycursor:

p=list(j)

l=l+p

if name in l:

sql1="SELECT * from product WHERE pname=%s"

val=(name,)

mycursor.execute(sql1,val)

y=mycursor.fetchall()

for i in y:

print(i)

else:

print("Enter correct product name!")

def sale_product():

mydb=mysql.connector.conn
ect(host="localhost",user="root",

p
asswd
="root
root",
datab
ase="
stock"
)

mycursor=mydb.cursor()

user1=input("Does the user have account aldready?

yes or no:") if user1=="yes" or user1=="YES":


sql2="SELECT uid from user"

mycursor.execute(sql2)

p=mycursor.fetchall()

l=[]

for h in p:

k1=list(h)

l=l+k1

if user in l:

sql="SELECT count(*) from product WHERE pcode=%s;"

val1=(pcode,)

mycursor.execute(sql,val1)

for x in mycursor:

cnt=x[0]

if cnt !=0 :

sql9="SELECT * from product WHERE

pcode=%s;" val2=(pcode,)

mycursor.execute(sql9,val2)

for x in mycursor:

print(x)

pname=x[1]

price=int(x[2])

pqty=int(x[3])

qty=int(input("
Enter no of
quantity :"))
if qty <= pqty:

d="Select count(salesid) from sales"

mycursor.execute(d)

cnt1=mycursor.fetchall()

cnt2=0

for i in cnt1:

for j in i:

cnt2=j

total=qty*price

sid=int(cnt)+1

dat=datetime.datetime.now()

print ("Collect Rs. ",

total) sql6="INSERT INTO

sales
values({},'{}',
'{}',{},{},{},
{})".format

((j+1),pname,dat,pcode,price,qty,total)

mycursor.execute(sql6)

sql0="UPDATE product SET pqty=pqty-%s WHERE


pcode=%s"

val4=(qty,pcode) mycursor.execute(sql0,val4)

sql20="SELECT uid,uname,upwd from user"

mycursor.execute(sql20)

r=mycursor.fetchall()

u=[]
for b in r:

u1=list(b)

u=u+u1

u2=u[0]

u3=u[1]

u4=u[2]

sql5="INSERT INTO user values({},'{}',


{},'{}','{}')".format(u2,u3,u4, pname,dat)

mycursor.execute(sql5)

mydb.commit()

else:

print("Entered quantity is not


available!")

else:

print(" Product is not avalaible")

else:

print("Invalid user id!")

else:

print("1. Create User Account And Proceed")

print("2. Exit")

ch1=int(input("Enter your choice:"))

if ch1==1:

uid=int(input("Enter user id in
integer type:"))

name=input("Enter Name:")
paswd=input("Enter Password:")

pcode1=int(input("Enter the product code to buy it:"))

sql="SELECT count(*) from product WHERE pcode=%s;"

val1=(pcode1,)

mycursor.execute(sql,val1)

for x in mycursor:

cnt=x[0]

if cnt !=0 :

sql9="SELECT * from product WHERE

pcode=%s;" val2=(pcode1,)

mycursor.execute(sql9,val2)

for x in mycursor:

print

(x)

pname=x[1]

price=int(x[2])

pqty=int(x[3])

qty=int(input("Enter no of quantity:"))

if qty <= pqty:

d="Select
count(salesid) from sales"

mycursor.execute

(d)

cnt1=mycursor.fetchall()

cnt2=0
for i in cnt1:

for j in i:

cnt2=j

total=qty*price;

sid=int(cnt)+1

dat=dateti
me.datetime.no
w()

print ("Collect Rs. ",

total) sql6="INSERT INTO

sales
values({},'{}',
'{}',{},{},{},
{})".format((j+
1),pname,dat,
pcode1,price,qty,tot
al)

mycursor.execute(sql
6)

sql0="UPDATE product SET pqty=pqty-%s

WHERE pcode=%s"

val12=(pcode1,)
val4=(qty,pcode1)
mycursor.execute(sql13,val12)
mycursor.execute(sql0,val4)
for x in mycursor:
sql13="SELECT * from
product WHERE pcode=%s;"
print(x)

pname=x[1]

price=int(x[2])

pqty=int(x[3])
dat=datetime.datetime.now()

sql="INSERT INTO user values

(%s,%s,%s,%s,%s)"

val=(uid,name,paswd,pname,dat)

mycursor.execute(sql,val)

mydb.commit()

print(mycursor.rowcount, " user


account created")
def list_sale():

mydb=mysql.connector.connect(host="localhost",user="root",

passwd="rootroot",database="stock")

mycursor=mydb.cursor()

sql="SELECT * FROM sales"

mycursor.execute(sql)

print(" \n\n\t\t\tSALES
DETAILS")

clrscr()

print("SALE_ID,PR_NAME ,SALES_DATE ,PR_CODE ,PR_PRICE,

PR_QTY,TOTAL")

u=mycursor.fetchall() for i

in u:

print(i)

def list_prcat(cat):

m
ydb=mysql
.connector.
connect(ho
st="localho
st",user="r
mycursor=mydb.cursor()

sql="SELECT pcat from product"

mycursor.execute(sql)

l=[]

for j in mycursor:

p=list(j)

l=l+p

if cat in l:

sql1="SELECT * from product WHERE pcat =%s"

val=(cat,)

mycursor.execute(sql1,val)

clrscr()

z=mycursor.fetchall()

for i in z:

print(i)

else:

print("Enter correct product category!")

def user_code(code1,password):

mydb=mysql.connector.connect(host="localhost",user="root",

passwd="rootroot",database="stock")

mycursor=mydb.cursor()

sql="SELECT uid,upwd from user"


mycursor.execute(sql)

l=[]

for j in mycursor:

p=list(j)

l=l+p

if code1 in l:

if password in l:

sql1="SELECT uid,uname,upwd,pr_name,dateof_purchase from

user where uid=%s and upwd=%s"

val=(code1,password)

mycursor.execute(sql1,val)

h=mycursor.fetchall() print("\n\n\

t\t\t USERS DETAILS") clrscr()

print("(USER_ID,USER_NAME,USER_PASWD,

PR_NAME,PURCHASE_DATE)")

for i in h:

print(i)

else:

print("Entered password is wrong!")

else :

print("Record not found!")


def clrscr():

print("\n")

def delete_user(k,r,m):

mydb=mysql.connector.connect(host="localhost",user="root",

passwd="rootroot",database="stock")

mycursor=mydb.cursor()

sql="SELECT uid,upwd,pr_name from user"

mycursor.execute(sql)

l=[]

for i in mycursor:

p=list(i)

l=l+p

if r in l:

if
m in
l:

s
ql
1=
"d
el
et
e
fro
m
us
er
wh
er
e
ui
d=
{}
an
d
pr
_n
else:

print("Enter Correct Detail!")

if mydb.is_connected():

print("Connected To The

Database") while True:

print('''

------------ STOCK MANAGEMENT SYSTEM -------------

1. PURCHASE MANAGEMENT

2. PRODUCT MANAGEMENT

3. SALES MANAGEMENT

4. USER MANAGEMENT

5. EXIT

''')

n=int(input("\n \nEnter your choice:"))

if n== 1:

os.system('cls')

purchase_mgmt()

if n== 2:

product_mgmt()

if n== 3:

sales_mgmt()
if n== 4:

user_mgmt()

if n== 5:

break

else:

print("Not
Conneceted To The
Database")
11. OUTPUT (SAMPLE)

 Connecting to database

 Purchase Management
 Purchase Management(Buying Items)
 Purchase Management(Listing items)
 Product Management

 Product Management(Adding Products)


 Product Management(Listing Products)

 Product Management(Listing All Products )


 Product Management (Listing Product Code Wise)

 Product Management (Listing product Name Wise)


 Product Management (Listing Product Category Wise)

 Product Management (Updating Product Details)


 Product Management (Updating Product’s Name)

 Product Management (Updating Product’s Quantity)


 Product Management (Updating Product’s Price)

 Product Management(Updating Product’s Category)


 Product Management(Listing Products After Updating)

 Product Management(Deleting Product Details)


 Sales Management(Creating User Account and Selling Product)
 Sales Management(Selling Product For Existing User Account)
 Sales Management(Listing Sold Products)

 Product Management(Listing Products After Selling)


 User Management

 User Management(Listing User Details)


 User Management(Deleting User Details)
 User Management (Listing User Details After Deleting Details)

 Closing the program


12. SOFTWARE TESTING

Software testing is widely used technology because it is compulsory


to test each and every software before deployment.

What is Software Testing

Software testing is a process of identifying the correctness of


software by considering its all attributes (Reliability, Scalability,
Portability, Re-usability, Usability) and evaluating the execution of
software components to find the software bugs or errors or defects.
Software testing provides an independent view and objective of the
software and gives surety of fitness of the software.

It involves testing of all components under the required services to


confirm that whether it is satisfying the specified requirements or
not. The process is also providing the client with information about
the quality of the software.

Testing is mandatory because it will be a dangerous situation if the


software fails any of time due to lack of testing. So, without testing
software cannot be deployed to the end user.

Testing is a group of techniques to determine the correctness of the


application under the predefined script but, testing cannot find all
the defect of application. The main intent of testing is to detect
failures of the application so that failures can be discovered and
corrected. It does not demonstrate that a product functions properly
under all conditions but only that it is not working in some specific
conditions.

Testing furnishes comparison that compares the behavior and state


of software against mechanisms because the problem can be
recognized by the mechanism.

The mechanism may include past versions of the same specified


product, comparable products, and interfaces of expected purpose,
relevant standards, or other criteria but not limited up to these.
Testing includes an examination of code and also the execution of
code in various environments, conditions as well as all the
examining aspects of the code. In the current scenario of software
development, a testing team may be separate from the
development team so that Information derived from testing can be
used to correct the process of software development.

The success of software depends upon acceptance of its targeted


audience, easy graphical user interface, strong functionality load
test, etc.

For example, the audience of banking is totally different from the


audience of a video game. Therefore, when an organization develops
a software product, it can assess whether the software product will
be beneficial to its purchasers and other audience.

Type of Software testing

We have various types of testing available in the market, which are


used to test the application or the software. With the help of below
image, we can easily understand the type of software testing:
Manual testing

The process of checking the functionality of an application as per the


customer needs without taking any help of automation tools is
known as manual testing. While performing the manual testing on
any application, we do not need any specific knowledge of any
testing tool, rather than have a proper understanding of the product
so we can easily prepare the test document. Manual testing can be
further divided into three types of testing, which are as follows:

 White box testing

 Black box testing

 Gray box testing

White-box testing.

The white box testing is done by Developer, where they check every
line of a code before giving it to the Test Engineer. Since the code is
visible for the Developer during the testing, that's why it is also
known as White box testing.

Black box testing.

The black box testing is done by the Test Engineer, where they can
check the functionality of an application or the software according to
the customer / client's needs. In this, the code is not visible while
performing the testing that's why it is known as black-box testing.

Gray Box testing.

Gray box testing is a combination of white box and Black box


testing. It can be performed by a person who knew both coding and
testing. And if the single person performs white box, as well as
black-box testing for the application, is known as Gray box testing.
How to perform Manual Testing.

 First, tester observes all documents related to software, to


select testing areas.

 Testeranalyses requirement documents to


cover all requirements stated by the customer.

 Tester develops the test cases according to the requirement


document.

 All test cases are executed manually by using Black box


testing and white box testing.

 If bugs occurred then the testing team


informs the development team.

 The Development team fixes bugs and handed software to the


testing team for a retest.

 Advantages of Manual Testing.

 It does not require programming knowledge while using the


Black box method.

 It is used to test dynamically changing GUI designs.

 Tester interacts with software as a real user so that they are


able to discover usability and user interface issues.

 It ensures that the software is a hundred percent bug-free.

 It is cost-effective and Easy to learn for new testers.

 Disadvantages of Manual Testing.

 It requires a large number of human resources.

 It is very time-consuming.

 Testerdevelops test cases based on their


skills and experience.
Manual testing tools.

In manual testing, different types of testing like unit, integration,


security, performance, and bug tracking, we have various tools such
as Jira, Bugzilla, Mantis, Zap, NUnit, Tessy, LoadRunner, Citrus,
SonarQube, etc. available in the market. Some of the tools are
open-source, and some are commercial.

Automation testing.

Automation testing is a process of converting any manual test cases


into the test scripts with the help of automation tools, or any
programming language is known as automation testing. With the
help of automation testing, we can enhance the speed of our test
execution because here, we do not require any human efforts. We
need to write a test script and execute those scripts. The execution
of automation testing provides us various advantages, which are as
discussed below:

1. Reusability

We can re-use the test scripts in automation testing, and we don't


need to write the new test scripts again and again. And, we can also
re-create the steps which are detailed as the earlier ones.
2. Consistency

As compared to manual testing, automation testing is more


consistent and way faster than executing the regular monotonous
tests that cannot be missed but may cause faults when tested
manually.

3. Running Tests 24/7

In automation testing, we can start the testing process from


anywhere in the world and anytime we want to. And even we can do
that remotely if we don't have many approaches or the option to
purchase them.

4. Early Bug Detection

We can easily detect the critical bugs in the software development


process's initial phases by executing automation testing. It also
helps us spend fewer working hours to fix these problems and
reduce costs

5. Less Human Resources

To implement the automation test script, we need a test automation


engineer who can write the test scripts to automate our tests, rather
than having several people who are repeatedly performing the
manual tests.

Automation Testing Methodologies

Automation testing contains the following three different


methodologies and approaches, which will help the test engineer to
enhance the software product's quality.

 GUI Testing

 Code-Driven

 Test Automation Framework


Automation Testing Process.

The automation testing process is a systematic approach to organize


and execute testing activities in a manner that provides maximum
test coverage with limited resources. The structure of the test
involves a multi-step process that supports the required, detailed
and inter-related activities to perform the task.

 Automation Testing Tools.

 Automation testing tools can describe in two categories, which


are as follows:

 Functional Testing Tools.

 Non-Functional Testing Tools.

Functional Automation Testing Tools.

The automation test engineer uses the functional automation testing


tool to implement the functional test cases. For example, the
Repetitive Regression tests are automated under the function
automation testing tools. This type of tools can be further divided
into two different parts, which are as below:

 Commercial Tool

 Open-source Tool
Non-functional Automation Testing Tools

The automation test engineer uses the non-functional automation


testing tool to execute the non-functional performance test
cases.For example, testing the application's response time under
significant load, let say, 100 users. Just like functional automation
testing tools, the non-functional automation testing tools divided
into two different categories, which are as below:

 Commercial Tools.

 Open-source Tools.

Advantages of Automation Testing.

 Automation testing takes less time than manual testing.

 A tester can test the response of the software if the execution


of the same operation is repeated several times.

 Automation Testing provides re-usability of test cases on


testing of different versions of the same software.

 Automation testing is reliable as it eliminates hidden errors by


executing test cases again in the same way.

 Automation Testing is comprehensive as test cases cover each


and every feature of the application.

 It does not require many human resources, instead of writing


test cases and testing them manually.

 They need an automation testing engineer to run them.

 The cost of automation testing is less than manual testing


because it requires a few human resources.
Disadvantages of Automation Testing.

 Automation Testing requires high-level skilled testers.

 It requires high-quality testing tools.

 When it encounters an unsuccessful test case, the analysis of


the whole event is complicated.

 Test maintenance is expensive because high fee


license testing equipment is necessary.

 Debugging is mandatory if a less effective error has not been


solved, it can lead to fatal results.
11.SOFTWARE MAINTENANCE

Software maintenance is the process of changing, modifying, and


updating software to keep up with customer needs. Software
maintenance is done after the product has launched for several
reasons including improving the software overall, correcting issues
or bugs, to boost performance, and more.

Software maintenance is a natural part of SDLC (software


development life cycle). Software developers don’t have the luxury
of launching a product and letting it run, they constantly need to be
on the lookout to both correct and improve their software to remain
competitive and relevant. Using the right software maintenance
techniques and strategies is a critical part of keeping any software
running for a long period of time and keeping customers and users
happy.

Software maintenance important

Creating a new piece of software and launching it into the world is


an exciting step for any company. A lot goes into creating your
software and its launch including the actual building and coding,
licensing models, marketing, and more. However, any great piece of
software must be able to adapt to the times.

This means monitoring and maintaining properly. As technology is


changing at the speed of light, software must keep up with the
market changes and demands.

Types of software maintenance

The four different types of software maintenance are each


performed for different reasons and purposes. A given piece of
software may have to undergo one, two, or all types of maintenance
throughout its lifespan.
The four types are:

 Corrective Software Maintenance

 Preventative Software Maintenance

 Perfective Software Maintenance

 Adaptive Software Maintenance

 Corrective Software Maintenance

Corrective software maintenance is the typical, classic form of


maintenance (for software and anything else for that matter).
Corrective software maintenance is necessary when something goes
wrong in a piece of software including faults and errors. These can
have a widespread impact on the functionality of the software in
general and therefore must be addressed as quickly as possible.

Many times, software vendors can address issues that require


corrective maintenance due to bug reports that users send in. If a
company can recognize and take care of faults before users discover
them, this is an added advantage that will make your company
seem more reputable and reliable (no one likes an error message
after all).

Preventative Software Maintenance

Preventative software maintenance is looking into the future so that


your software can keep working as desired for as long as possible.

This includes making necessary changes, upgrades, adaptations and


more. Preventative software maintenance may address small issues
which at the given time may lack significance but may turn into
larger problems in the future. These are called latent faults.
Perfective Software Maintenance

As with any product on the market, once the software is released to


the public, new issues and ideas come to the surface. Users may see
the need for new features or requirements that they would like to
see in the software to make it the best tool available for their needs.
This is when perfective software maintenance comes into play.

Perfective software maintenance aims to adjust software by adding


new features as necessary and removing features that are irrelevant
or not effective in the given software. This process keeps software
relevant as the market, and user needs, change.

Adaptive Software Maintenance

Adaptive software maintenance has to do with the changing


technologies as well as policies and rules regarding your software.
These include operating system changes, cloud storage, hardware,
etc. When these changes are performed, your software must adapt
in order to properly meet new requirements and continue to run
well.

The Software Maintenance Process

The software maintenance process involves various software


maintenance techniques that can change according to the type of
maintenance and the software maintenance plan in place.

Most software maintenance process models include


the following steps:

1.Identification & Tracing – The process of determining


what part of the software needs to be modified (or maintained). This
can be user -generated or identified by the software developer itself
depending on the situation and specific fault.
2. Analysis – The process of analyzing the suggested modification
including understanding the potential effects of such a change. This
step typically includes cost analysis to understand if the change is
financially worthwhile.

3. Design – Designing the new changes using requirement


specifications

4. Implementation – The process of implementing the new


modules by programmers.

5. System Testing – Before being launched, the software and


system must be tested. This includes the module itself, the system
and the module, and the whole system at once.

6. Acceptance Testing- Users test the modification for


acceptance. This is an important step as users can identify ongoing
issues and generate recommendations for more effective
implementation and changes.

7. Delivery – Software updates or in some cases new installation


of the software. This is when the changes arrive at the customers.
12.CONCLUSION

In conclusion, stock management is a critical process for any


business to help ensure that it has the right amount of stock at the
right time. It involves forecasting, ordering, receiving, storing, and
tracking stock levels and can have a major impact on the success or
failure of a business. By integrating effective stock management
processes and techniques, businesses can stay on top of their stock
levels and order the right amount of goods to meet customer
demands.

Stock management includes tracking stock levels, ordering new stock


when needed, controlling costs, tracking product quality, and
managing supplier relationships. By using technology such as bar
code scanning, radio frequency identification (RFID), and software
such as Sellbery, you can streamline their stock processes and reduce
the time spent on manual tasks.

FUTURE SCOPE

Though this project seems to be complete but there are some limitations of
this project. Few of them are as follows.

 This is a command-based Python interface. It can be developed in either


GUI (Graphical User Interface) or web interface using Django.
 The system is directly accessible by anyone.
 Reports can be made more user friendly.
 Searching options can be increased.
13. BIBLIOGRAPHY

1. Computer science With Python - Class XI & Class XII By : Sumita Arora

2. Website:

3. Website: https://en.wikipedia.org/wiki/stockcontrol

4. Website: https://en.wikipedia.org

You might also like