A K V P U BL I C S C H O O L SENIOR S E C O N D A R Y - C B S E SURIYAGOUNDAMPALAYAM, M A L L A S A M U D R A M – 6 3 7 5 0 3 , NAMAKKAL(Dt.) A P R O J E C T REPORT ON MALL MANAGEMENT SYSTEM s UBMITTED BY N A M E & REGISTER. NO : …………………………………………………… N A M E & REGISTER. NO : …………………………………………………… N A M E & REGISTER. NO : …………………………………………………… C L A S S - XII C O M P U T E R S C I E N C E - C O D E NO. 0 8 3 A I S S C E P R A C T I C A L EXAMINATION 2 0 2 3 -2024 A K V P U BL I C S C H O O L SENIOR S E C O N D A R Y - C B S E SURIYAGOUNDAMPALAYAM, M A L L A S A M U D R A M – 6 3 7 5 0 3 , NAMAKKAL(Dt.) A I S S C E P R A C T I C A L EXAMINATION PROJECT REPORT CO M P UTER S C I E N C E - C O D E NO. 0 8 3 2023 – 2024 CLASS - xII MALL MANAG E MENT SYSTEM REGISTER. NO : ……………………………………………………… NAME : ……………………………………………………… CLASS : ……………………………………………………… S U B J E C T NAME : ……………………………………………………… A K V P U BL I C S C H O O L SENIOR S E C O N D A R Y - C B S E SURIYAGOUNDAMPALAYAM, M A L L A S A M U D R A M – 6 3 7 5 0 3 , 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. M. ARUMUGAM 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 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 PAGE NO 1.INTRODUCTION Shopping Cart is an online store that enables website owners to sell their product online. It is a web shopping cart that web enables the day-day sales functions. The System helps the Customer to purchase the products with and without Credit – Card Information. It includes sophisticated product and customer management modules. This website will be useful to anyone who wants to purchase items using internet. Generates the Reports related to the system. This system is developed as our company requirements. Shopping Cart is a very important feature used in e-commerce to assist people making purchases any products online. This project deals with developing an e-commerce website for online different types of products. It provides the user with a catalog of different types of products available for purchase in the store. In order to facilitate online purchase a shopping cart is provided to the user. The Shopping Cart project has been developed to allow business grows larger and faster. This site will let customers to view and order products online from any part of the world. The site sells different types of. Under this website many products and services can be ordered. The Shopping Cart is expanded permanently through new products and services in order to offer a product portfolio corresponding to the market. Private customer and business customers can order the selected products of the Shopping Cart Service online quickly and comfortably 2. OBJECTIVES OF THE PROJECT The objective of this project is to let the students apply the programming knowledge into a realworld situation/problem and exposed the students how programming skills helps in developing a good software. 1. Write programs utilizing modern software tools. 2. Apply object-oriented programming principles effectively when developing small to medium sized projects. 3. Write effective procedural code to solve small to medium sized problems. 4. Students will demonstrate a breadth of knowledge in computer science, as exemplified in the areas of systems, theory and software development. 5. Students will demonstrate ability to conduct a research or applied Computer Science project, requiring writing and presentation skills which exemplify scholarly style in computer science. 3.SYSTEM ANALYSIS Systems analysis is a process of collecting factual data, understand the processes involved, identifying problems and recommending feasible suggestions for improving the system functioning. This involves studying the business processes, gathering operational data, understand the information flow, finding out bottlenecks and evolving solutions for overcoming the weaknesses of the system so as to achieve the organizational goals. System Analysis also includes sub dividing of complex process involving the entire system, identification of data store and manual processes. The major objectives of systems analysis are to find answers for each business process: What is being done, how is it being done, who is doing it, when is he doing it, why is it being done and how can it be improved? It is more of a thinking process and involves the creative skills of the System Analyst. It attempts to give birth to a new efficient system that satisfies the current needs of the user and has scope for future growth within the organizational constraints. The result of this process is a logical system design. Systems analysis is an iterative process that continues until a preferred and acceptable solution emerges. System analysis and design is a process that many companies use toevaluate particular business situations and develop ways to improve them through more optimal methods. Companies may use this process to reshape their organization or meet business objectives related to growth and profitability. System analysis and design also typically emphasize how systems act, their relationships to other subsystems and the ability of both to meet a specific goal. This often involves analyzing a system's performance and the quality of its output. System analysis refers to the process of gathering data, interpreting information, identifying issues and using the results to recommend or develop possible system improvements. During this stage, companies may also evaluate future business needs and how improvements may answer them. System design involves the process in which an organization, in an appropriate situation, develops a newer system or strategy to complement or replace an existing one. This design and development cycle includes planning, analysis, design, implementation and maintenance. The most common benefit of system analysis and design is improving upon a previous system and enjoying increased operational efficiency. Here's a list of other benefits you and your employing organization may enjoy from this practice: • 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 • Reducing costs in certain areas, saving the organization money and use in other departments • Identifying potential risks and threats to the processes before they arise • Improving the overall quality of the system • Improving the usability of the system by employees • Increasing productivity and customer satisfaction resources for 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 associated with proposed project development. 5. PROPOSED SYSTEM The proposed system for Mall Management System designed Python with MySQL project helps them to understand the different techniques of database but also helps them to understand the business rules, software needs to follow. The Mall Management System project as simple as we can. Whole Database is divided and stored in two main tables, They are Bill and Product, MySQL tables – Bill and Product Table mysql.connector is used to make connection between Python and MySQL. The whole code is divided into user-defined Python functions. These functions have been called from the main menu to generated the initial menu system. Module of MALL MANAGEMENT SYSTEM Module Details 1. Add New Item modules used to add items • Enter Product Code • Enter Product Category [ MEN/WOMEN/KIDS ] • Enter Brand Name • Enter Product Name 2. Module used Women, Men, Kid section • ENTER 1 TO BUY ➢ Enter Product CODE ➢ Enter BILL Number ➢ Enter Customer Identification No. ➢ Enter Customer Name ➢ Enter Price ➢ Enter Quantity ➢ Enter Discount Amount ,if any • ENTER 0 RETURN TO MAIN MENU 3. MODIFY ITEM module used to modify item • Enter Product Code ➢ PRODUCT NAME ➢ PRODUCT CATEGORY ➢ PRODUCT BRAND • Enter Your choice 4. SEARCH ITEM module used to Search item • Enter Product Code 5. REMOVE ITEM module used to Remove item • Enter Product Code 1. Product Table Description: 2. Bill Table Description: Advantages of Proposed System The system is very simple in design and to implement. The system requires very low system resources and the system will work in almost all configurations. It has got following features • Ensure data accuracy. • Minimize manual data entry. • Minimum time needed for the various processing • Greater efficiency • Better Service • Minimum time required • It would also help in providing adequate data to the corporation, particularly with • regard to inventory details and important points • This would help the corporation prepare and organize its schedules more • efficiently on the basis of traffic demand. It would provide data on concessions given to various sections. 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 the process that decomposes a system into its component pieces for the purpose of defining how well those components interact to accomplish the set requirements. 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. A combination of the modules makes up the system. • Components - This provides a particular function or group of related functions. They are made up of modules. • Interfaces - This is the shared boundary across which the components of the system exchange information and relate. • Data - This the management of the information and data flow. 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 and their physical interfaces. • 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. • Document the design definition strategy, including the need for and requirements of any enabling systems, products, or services to perform the design. 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 element. 3. Assess alternatives for obtaining system elements • Assess the design options • 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. Module of MALL MANAGEMENT SYSTEM Module Details 1. Add New Item modules used to add items • Enter Product Code • Enter Product Category [ MEN/WOMEN/KIDS] • Enter Brand Name • Enter Product Name 2. Module used Women, Men, Kid section • ENTER 1 TO BUY ➢ Enter Product CODE ➢ Enter BILL Number ➢ Enter Customer Identification No. ➢ Enter Customer Name ➢ Enter Price ➢ Enter Quantity ➢ Enter Discount Amount, if any • ENTER 0 RETURN TO MAIN MENU 3. MODIFY ITEM module used to modify item • Enter Product Code ➢ PRODUCT NAME ➢ PRODUCT CATEGORY ➢ PRODUCT BRAND • Enter Your choice 4. SEARCH ITEM module used to Search item • Enter Product Code 5. REMOVE ITEM module used to Remove item • Enter Product Code Library used in Mall Management System • MySQL.Connector module is responsible for making is responsible for making connection between Python and MySQL MySQL Tables structures This project is divided into following main tables: 1.Product, 2. Bill 1. 2. • Product table contains the details of product in the mall. • Bill table contains the bill information along with its customers. Product Table Description: Bill Table Description: 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. systems implementation as the fifth major step in the development of an Information System. Complete essential the design contained in the systems design document. Module of MALL MANAGEMENT SYSTEM Module Details 1. Add New Item modules used to add items • Enter Product Code • Enter Product Category [ MEN/WOMEN/KIDS] • Enter Brand Name • Enter Product Name 2.Module used Women, Men, Kid section • ENTER ➢ ➢ ➢ ➢ ➢ ➢ ➢ • ENTER 0 RETURN TO MAIN MENU 1 TO BUY Enter Product CODE Enter BILL Number Enter Customer Identification No. Enter Customer Name Enter Price Enter Quantity Enter Discount Amount, if any 3.MODIFY ITEM module used to modify item • • Enter Product Code ➢ PRODUCT NAME ➢ PRODUCT CATEGORY ➢ PRODUCT BRAND Enter Your choice 4.SEARCH ITEM module used to Search item • Enter Product Code 5.REMOVE ITEM module used to Remove item • Enter Product Code Library used in Mall Management System • MySQL.Connector module is responsible for making is responsible for making connection between Python and MySQL MySQL Tables structures This project is divided into following main tables: 1.Product, 2. Bill • Product table contains the details of product in the mall. • Bill table contains the bill information along with its customers. 1. Product Table Description: 2. Bill Table Description: 8. SYSTEM DEVELOPMENT LIFE CYCLE (SDLC) The systems development life cycle is a project management technique that divides complex projects into smaller, more easily managed segments or phases. Segmenting projects allows managers to verify the successful completion of project phases before allocating resources to subsequent phases. 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, requirementsdefinition, 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 projects support strategic business objectives and resources are effectively implemented into an organization's enterprise architecture. 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 is to: • Determine the feasibility and appropriateness of the alternatives. • Identify system interfaces and Assess project risks. • Identify basic functional and data requirements to satisfy the business need. • Establish system boundaries, identify goals, objectives, critical success factors, and performance measures. • Evaluate costs and benefits of alternative approaches to satisfy the basic functional requirements • 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. • 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. • 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 SDLC: 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 ANALYSISPHASE 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. Contemporary design techniques often use prototyping tools that build designs of items such as application screens, 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 potential risks and defining mitigating design 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: • Testing at the development facility by the contractor and possibly supported by end users • Testing as a deployed system with end users working together with contract personnel • 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 contemporaryday 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 #*************** AKV PUBLIC SCHOOL ****************** #***************WELCOME TO THE MALL OF EMIRATES*************** ################## THE MALL OF EMIRATESI ##################### #*******Designed and Maintained By: #*******ARVINDARAJ - CLASS XII A - [ 2023-2024] #*******RITHEESHKAR - CLASS XII A - [ 2023-2024] import mysql.connector # GLOBAL VARIABLES DECLARATION myConnnection ="" cursor="" userName="" password ="" pcode="" #MODULE TO CHECK MYSQL CONNECTIVITY def MYSQLconnectionCheck (): global myConnection global userName global password userName = input("\n ENTER MYSQL SERVER'S USERNAME : ") password = input("\n ENTER MYSQL SERVER'S PASSWORD : ") myConnection=mysql.connector.connect(host="localhost",user=userName,passwd=password , auth_plugin='mysql_native_password' ) if myConnection: print("\n CONGRATULATIONS ESTABLISHED !") cursor=myConnection.cursor() ! YOUR MYSQL CONNECTION HAS BEEN cursor.execute("CREATE DATABASE IF NOT EXISTS EMIRATESI") cursor.execute("COMMIT") cursor.close() return myConnection else: print("\nERROR ESTABLISHING MYSQL CONNECTION CHECK USERNAME AND PASSWORD !") #MODULE TO ESTABLISHED MYSQL CONNECTION def MYSQLconnection (): global userName global password global myConnection global cid global pcode myConnection=mysql.connector.connect(host="localhost",user=userName,passwd=password,da tabase="EMIRATESI", auth_plugin='mysql_native_password' ) if myConnection: return myConnection else: print("\nERROR ESTABLISHING MYSQL CONNECTION !") myConnection.close() #MODULE FOR MEN'S SECTION def menSection(): global pcode if myConnection: cursor=myConnection.cursor() print("ITEMS UNDER THE MENS SECTION ARE : ") sql="SELECT * FROM PRODUCT WHERE PRODUCT_CATEGORY=%s" cursor.execute(sql,("Men",)) data=cursor.fetchall() if data: print(data) while True: print(""" ENTER 1 TO BUY ENTER 0 TO RETURN TO MAIN MENU """) choice = int(input("Please Enter Your Choice : ")) if choice == 1 : item = searchItem() if item: cursor=myConnection.cursor() createTable =""" CREATE TABLE IF NOT EXISTS BILL(BILL_CODE VARCHAR(10) PRIMARY KEY ,PRODUCT_CODE VARCHAR(10),CID VARCHAR(10), CNAME VARCHAR(30), PRICE INT ,QUANTITY INT , DISCOUNT INT ,TOTAL INT ); """ cursor.execute(createTable) bnumber=input("\n Enter BILL Number : ") cid=input("\n Enter Customer Identification No. : ") cname=input("\n Enter Customer Name : ") price=int(input("\n Enter Price : ")) quantity=int(input("\n Enter Quantity : ")) discount=int(input("\n Enter Discount Amount, If any) : ")) total = (price * quantity) - discount sql= "INSERT INTO BILL VALUES(%s,%s,%s,%s,%s,%s,%s,%s)" values= (bnumber,cid,pcode,cname,price,quantity,discount,total) cursor.execute(sql,values) cursor.execute("COMMIT") print("\n ITEM ADDEDD SUCCESSSFULLY IN YOUR CART !") cursor.close() elif choice == 0: break else: print("Sorry ,May Be You Are Giving Me Wrong Input, Please Try Again !!! ") else: print("\nSomthing Went Wrong ,Please Try Again !") #MODULE FOR WOMEN'S SECTION def womenSection(): global pcode if myConnection: cursor=myConnection.cursor() print("ITEMS UNDER THE WOMEN SECTION ARE : ") sql="SELECT * FROM PRODUCT WHERE PRODUCT_CATEGORY=%s" cursor.execute(sql,("Women",)) data=cursor.fetchall() if data: print(data) while True: print(""" ENTER 1 TO BUY ENTER 0 TO RETURN TO MAIN MENU """) choice = int(input("Please Enter Your Choice : ")) if choice == 1 : item = searchItem() if item: cursor=myConnection.cursor() createTable =""" CREATE TABLE IF NOT EXISTS BILL(BILL_CODE VARCHAR(10) PRIMARY KEY ,PRODUCT_CODE VARCHAR(10),CID VARCHAR(10), CNAME VARCHAR(30), PRICE INT ,QUANTITY INT , DISCOUNT INT ,TOTAL INT ); """ cursor.execute(createTable) bnumber=input("\n Enter BILL Number : ") cid=input("\n Enter Customer Identification No. : ") cname=input("\n Enter Customer Name : ") price=int(input("\n Enter Price : ")) quantity=int(input("\n Enter Quantity : ")) discount=int(input("\n Enter Discount Amount, If any) : ")) total = (price * quantity) - discount sql= "INSERT INTO BILL VALUES(%s,%s,%s,%s,%s,%s,%s,%s)" values= (bnumber,cid,pcode,cname,price,quantity,discount,total) cursor.execute(sql,values) cursor.execute("COMMIT") print ("\n ITEM ADDEDD SUCCESSSFULLY IN YOUR CART!") cursor.close() elif choice == 0: break; else: print ("Sorry, Maybe You Are Giving Me Wrong Input, Please Try Again!!! ") else: print ("\nSomthing Went Wrong, Please Try Again!") #MODULE FOR KIDS'S SECTION def kidsSection(): global pcode if myConnection: cursor=myConnection.cursor() print ("ITEMS UNDER THE KIDS SECTION ARE: ") sql="SELECT * FROM PRODUCT WHERE PRODUCT_CATEGORY=%s" cursor.execute(sql,("Kids",)) data=cursor.fetchall() if data: print(data) while True: print (""" ENTER 1 TO BUY ENTER 0 TO RETURN TO MAIN MENU """) choice = int (input ("Please Enter Your Choice: ")) if choice == 1: item = searchItem () if item: cursor=myConnection.cursor() createTable =""" CREATE TABLE IF NOT EXISTS BILL (BILL_CODE VARCHAR (10) PRIMARY KEY, PRODUCT_CODE VARCHAR (10), CID VARCHAR (10), CNAME VARCHAR (30), PRICE INT, QUANTITY INT, DISCOUNT INT, TOTAL INT); """ cursor.execute(createTable) bnumber=input ("\n Enter BILL Number: ") cid=input ("\n Enter Customer Identification No.: ") cname=input ("\n Enter Customer Name: ") price=int (input ("\n Enter Price: ")) quantity=int (input ("\n Enter Quantity: ")) discount=int (input ("\n Enter Discount Amount, If any): ")) total = (price * quantity) - discount sql= "INSERT INTO BILL VALUES(%s,%s,%s,%s,%s,%s,%s,%s)" values= (bnumber,cid,pcode,cname,price,quantity,discount,total) cursor.execute(sql,values) cursor.execute("COMMIT") print ("\n ITEM ADDEDD SUCCESSSFULLY IN YOUR CART!") cursor.close() elif choice == 0: break; else: print ("Sorry, Maybe You Are Giving Me Wrong Input, Please Try Again!!! ") else: print ("\nSomthing Went Wrong, Please Try Again!") #MODULE FOR ADDING NEW ITEM def addItem(): global pcode if myConnection: cursor=myConnection.cursor() createTable =""" CREATE TABLE IF NOT EXISTS PRODUCT (PRODUCT_CODE VARCHAR (10) PRIMARY KEY, PRODUCT_CATEGORY VARCHAR (20), PRODUCT_BRAND VARCHAR (30), PRODUCT_NAME VARCHAR (30))""" cursor.execute(createTable) pcode=input ("\nEnter Product Code: ") pcategory=input ("\nEnter Product Category [ MEN/WOMEN/KIDS]: ") pbrand=input ("\nEnter Brand Name: ") pname=input ("\nEnter Product Name: ") sql= "INSERT INTO PRODUCT VALUES(%s,%s,%s,%s)" values= (pcode,pcategory,pbrand,pname) cursor.execute(sql,values) cursor.execute("COMMIT") print ("\nNEW ITEM ADDEDD SUCCESSSFULLY!") cursor.close() else: print ("\nERROR ESTABLISHING MYSQL CONNECTION!") #MODULE FOR SEARCH AN ITEM def searchItem(): global pcode if myConnection: cursor=myConnection.cursor() pcode=input ("PLEASE ENTER PRODUCT CODE: ") sql="SELECT * FROM PRODUCT WHERE PRODUCT_CODE= %s" cursor.execute(sql,(pcode,)) data=cursor.fetchall() if data: print(data) return True else: return False cursor.close() else: print ("\nSomthing Went Wrong, Please Try Again!") #MODULE FOR MODIFY AN ITEM def modifyItem (): global pcode item = searchItem () if item: if myConnection: cursor=myConnection.cursor() print ("PRESS 1 FOR PRODUCT NAME: ") print ("PRESS 2 FOR PRODUCT CATEGORY: ") print ("PRESS 3 FOR PRODUCT BRAND: ") choice=int (input ("Enter Your Choice: ")) if choice==1: name=input ("ENTER NEW PRODUCT NAME: ") sql="UPDATE PRODUCT SET PRODUCT_NAME= %s WHERE PRODUCT_CODE = %s" cursor.execute(sql,(name,pcode)) cursor.execute("COMMIT") print ("PRODUCT NAME UPDATED SUCCESSFULLY ") elif choice == 2: category=input ("ENTER NEW CATEGORY:") sql="UPDATE PRODUCT SET PRODUCT_CATEGORY= %s WHERE PRODUCT_CODE= %s" cursor.execute(sql,(category,pcode)) cursor.execute("COMMIT") print ("PRODUCT CATEGORY UPDATED SUCCESSFULLY ") elif choice==3: brand=input ("ENTER NEW BRAND NAME:") sql="UPDATE PRODUCT SET PRODUCT_BRAND= %s PRODUCT_CODE = %s" cursor.execute(sql,(brand,pcode)) cursor.execute("COMMIT") print ("BARND UPDATED SUCCESSFULLY ") else: print ("Sorry, maybe You Are Giving Me Wrong Input, Please Try Again!!! ") else: print ("\nSomthing Went Wrong, Please Try Again!") else: print ("Item Record Not Found, Please Try Again!") #MODULE FOR DISPLAY INVENTORY def showInventory (): if myConnection: cursor=myConnection.cursor() sql="SELECT * FROM PRODUCT PRODUCT_CATEGORY" cursor.execute(sql) data=cursor.fetchall() if data: print(data) return True WHERE else: return False cursor.close() else: print ("\nSomthing Went Wrong, Please Try Again!") #MODULE TO REMOVE AN ITEM def removeItem () : global pcode item = searchItem () if item: if myConnection: cursor=myConnection.cursor() sql="SELECT * FROM PRODUCT WHERE PRODUCT_CODE= %s" cursor.execute(sql,(pcode,)) data=cursor.fetchall() if data: print ("\n**** Item Removed Successfully!!! *****") sql="DELETE FROM PRODUCT WHERE PRODUCT_CODE=%s" cursor.execute(sql,(pcode,)) cursor.execute("COMMIT") cursor.close() else: print ("\nSomthing Went Wrong, Please Try Again!") else: print ("Record Not Found, Please Try Again!") #MODULE TO LIST ALL BILLS def allBills (): if myConnection: cursor=myConnection.cursor() sql="SELECT * FROM BILL CID" cursor.execute(sql) data=cursor.fetchall() if data: for bill in data: print(bill) return True else: return False cursor.close() else: print ("\nSomthing Went Wrong, Please Try Again!") #MODULE TO GENERATE PARTICULAR CUSTOMER'S BILL def generateBill (): global pcode if myConnection: cursor=myConnection.cursor() sql="SELECT CNAME,count(TOTAL) AS 'TOTAL AMOUNT' FROM BILL GROUP BY CNAME " cursor.execute(sql) data=cursor.fetchall() if data: print ("###################################") print ("NAME AMOUNT") print(data) return True else: print ("\nCustomer Not Found!") cursor.close() else: print ("\nSomthing Went Wrong, Please Try Again!") #MAIN SCREEN OF THE SOFTWARE print ("#*************** AKV PUBLIC SCHOOL *******") print ("#***************WELCOME TO THE MALL OF EMIRATES****") print ("################## THE MALL OF EMIRATES ##########") print ("#*******Designed and Maintained By:") print ("#*******ARVINDARAJ - CLASS XII A - [ 2023-2024]") print ("#*******RITHEESHKAR - CLASS XII A - [ 2023-2024]") print ("#*******Kamalesh - CLASS XII B - [ 2023-2024]") print ("********************PROUD TO BE AKVIAN ************") # MYSQL CONNECTION CHECK myConnection = MYSQLconnectionCheck () if myConnection: MYSQLconnection () while (True): print (""" 1 --->FOR NEW ITEM 2 --->FOR WOMEN SECTION 3 --->FOR MEN SECTION 4 --->FOR KID SECTION 5 --->FOR MODIFY ITEM 6 --->FOR SEARCH ITEM 7 --->FOR SHOW ALL INVENTORY ITEM WISE 8 --->FOR REMOVE ITEM 9 --->LIST ALL BILLS 10 -->GENERATE CUSTOMER BILL 11 -->EXIT """) choice = int (input ("Please Enter Your Choice: ")) if choice == 1: addItem () elif choice ==2: womenSection () elif choice ==3: menSection () elif choice ==4: kidsSection () elif choice ==5: modifyItem () elif choice ==6: item=searchItem () if item: print ("*******Record Found !!!*******") else: print ("Record Not Found, Please Try Again!") elif choice ==7: showInventory () elif choice ==8: removeItem () elif choice ==9: allBills () elif choice == 10: generateBill () elif choice == 11: print ("Thanks for visitng THE MALL OF EMIRATESI \n ****We are eagerly waititng for your next visit!!! ***") break; else: print ("Sorry, maybe You Are Giving Me Wrong Input, Please Try Again!!! ") else: print ("\nERROR ESTABLISHING MYSQL CONNECTION!") # END OF THE PROJECT print ("֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎ ֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎֎ ֎֎֎֎֎֎֎֎֎") 11. OUTPUT 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. • Tester analyses 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. • Tester develops test cases based on their skills and experience. There is no evidence that they have covered all functions or not. • Test cases cannot be used again. Need to develop separate test cases for each new software. • It does not provide testing on all aspects of testing. 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: • Reusability • Consistency • Running tests anytime (24/7) • Early Bug detection • Less Human Resources 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. o 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. 13. 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 which need to be detected and corrected to make sure that they won’t turn into effective 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. 11. CONCLUTION Using this system, we organize the work in the Hall, also we reduce the time and effort spend to achieve the following task: • Register customer’s information in this system. • Register the relative information of reservation in this system. • Organize the operation of updating the information of reservation. • Organize the confirming and cancelling reservation in this system. • Getting the reports of all reservation done through this system. • Getting the reports of all reservation done through this system according to selected month. Getting the reports of all reservation done through this system according to selected month and year. After using the system, we can say that work of Hall reservation can be organized through this system. As we explain in the body of this report the use of this system is easily and any one with simple knowledge of computer usage can use this system and finish the task without any mistake. there is no perfect system and each system contain some notices either the analyzing or the scenario of work, but in this system, we try to cover the most important task or features of store department work. Before we build the system we have to analyze the system and detect the work flow of working and see what are the rules that control work in Hall reservation operation to start building the tables and see what windows we need and how any windows we must have in our system after that we search for tools enable us to program the system in best way, we find that the easiest tools to do that is PYTHON for program the user interface and MySQL as database management system, these tools are easy to use and easy to be used in developing the system in future. When start to build new system the designer face two types of problem technical and official. The technical problems were to find the suitable and useful tools (programming and database management system) enable the designer to build efficient system and enable the user to store many records in database able to be retrieved in few seconds without any problems. After we choose the programming language and database management system and connect them together and start build the database and table and start writing the code that will be executed while system running in order to achieve the tasks of this system. 11. BIBLIOGRAPHY 1. Computer science With Python - Class XI & Class XII By : Sumita Arora 2. Website: https://www.w3resource.com 3. https://en.wikipedia.org/wiki/E_(mathematical_constant)