Download as pdf
Download as pdf
You are on page 1of 29
TABLE OF CONTENTS CRIP’ Acknowledgement Introduction Objectives of the project Proposed system System Development Life Cycle (SDLC) Phases of SDLC Source Code Output Testing & |B /R|/E |B |/&8 |R |e B Bibliography g& PROPOSED SYSTEM Proposed system is an efficient and fast user management system for social media sites, Through this software, the admin or the database administrator or manager of the site can maintain a large data of their users, store any kind of user information, search users, get user insights, update user information, edit information, retrieve information, user login and sign up, accurate and minutest details of their users in quick time. This proposed system has the following advantages: User Friendly Interface Fast access to Database More Storage Capacity Less Error Complete Data Protection Look and Feel Environment All the difficulties of managing a bulky and complicated user database for social media sites have been rectified through various easiest and simplest database management softwares. PI F SYSTEM DEVELOPMENT LIFE LE Initiation Phase The initiation phase is the beginning of the project. In this phase, the idea for the project is explored and elaborated. The goal of this phase is to examine the feasibility of the project. In addition, decisions are made concerning who is to carry out the project, which party (or parties) will be involved and whether the project has an adequate base of support among those who are involved. In this phase, the current or prospective project leader writes a proposal, which contains a description of the above-mentioned matters. Examples of this type of project proposal include business plans and grant applications. The prospective sponsors of the project evaluate the proposal and, upon approval, provide the necessary financing. The project officially begins at the time of approval. System Concept Development Phase The Concept Development Phase may begin after the approval of the Concept Proposal and Project Charter, the completion of the Initiation project status review, and the approval to proceed to the Concept Development Phase, The focus of the phase is two-fold: 1) evaluate feasibility of alternatives 2) clearly define and approve project scope, including the system, all deliverables, and all required activities. ‘The Concept Development Phase activities are inputs into the development of the ITPR, which is a required output of this phase. Planning Phase ‘The planning stage (also called the feasibility stage) the phase in which developers will plan for the upcoming project. It helps to define the problem and scope of any existing systems, as well as determine the objectives for their new systems. By developing an effective outline for the upcoming development cycle, they'll theoretically catch problems before they affect development. And help to secure the funding and resources they need to make their plan happen. Perhaps most importantly, the planning stage sets the project schedule, which can be of key importance if development is for a commercial product that must be sent to market by a certain time. Analysis Phase ‘The analysis stage includes gathering all the specific details required for a new system as well as determining the first ideas for prototypes. Developers may: + Define any prototype system requirements + Evaluate alternatives to existing prototypes + Perform research and analysis to determine the needs of end-users Furthermore, developers will often create a software requirement specification or SRS document. This includes all the specifications for software, hardware, and network requirements for the system they plan to build. This will prevent them from overdrawing funding or resources when working at the same place as other development teams. Design Phase The design stage is a necessary precursor to the main developer stage. Developers will first outline the details for the overall application, alongside specific aspects, such as its: User interfaces System interfaces Network and network requirements Databases They'll typically turn the SRS document they created into a more logical structure that can later be implemented in a programming language. Operation, training, and maintenance plans will all be drawn up so that developers know what they need to do throughout every stage of the cycle moving forward. Once complete, development managers will prepare a design document to be referenced throughout the next phases of the SDLC. Development Phase The development stage is the part where developers actually write code and build the application according to the earlier design documents and outlined specifications. This is where Static Application Security Testing or SAST tools come into play. Product program code is built per the design document specifications. In theory, all of the prior planning and outlined should make the actual development phase relatively straightforward. Developers will follow any coding guidelines as defined by the organization and utilize different tools such as compilers, debuggers, and interpreters. Programming languages can include staples such as Python, C++, PHP, and. more. Developers will choose the right programming code to use based on the project specifications and requirements. Testing Phase The software must be tested to make sure that there aren't any bugs and that the end-user experience will not negatively be affected at any point. During the testing stage, developers will go over their software with a fine- tooth comb, noting any bugs or defects that need to be tracked, fixed, and later retested. It's important that the software overall ends up meeting the quality standards that were previously defined in the SRS document. Depending on the skill of the developers, the complexity of the software, and the requirements for the end-user, testing can either be an extremely short phase or take a very long time. Implementation and Integration Phase After testing, the overall design for the software will come together. Different modules or designs will be integrated into the primary source code through developer efforts, usually by leveraging training environments to detect further errors or defects. ‘The information system will be integrated into its environment and eventually installed. After passing this stage, the software is theoretically ready for market and may be provided to any end-users. Maintenance Phase The SDLC doesn’t end when software reaches the market. Developers must now move into a maintenance mode and begin practicing any activities required to handle issues reported by end-users. Furthermore, developers are responsible for implementing any changes that the software might need after deployment. This can include handling residual bugs that were not able to be patched before launch or resolving new issues that crop up due to user reports. Larger systems may require longer maintenance stages compared to smaller systems. Disposition Phase ‘The Disposition Phase is the end of an information system's life cycle. The information system is formally retired according to organizational needs, laws and regulations, and the Disposition Plan. The disposition activities ensure that the information system is terminated in an orderly manner and that vital information about the system is preserved according to applicable records management regulations and policies for future access. The decision to proceed with the Disposition Phase is based on recommendations and approvals fram an In-Process Review during the Operations and Maintenance Phase. import pandas as pd import matplotlib.pyplotas plt import datetime import time def menu(): print) pring(rmeesseenescnnesecesssessunsesnueannossstesecssnuecssneatssesssonensaanessnoese") print(" i ent System print(“ereenen resnersnexeneanenensnenses") print(” y print(” a » print() print(*-> Data Analysis:") print(” 1) Reading file without index") print(" 2) Reading file with new calumn names") print(" 3) Sorting the values in ascending order of Names") print("-> Data Visualization:") print(" 4) Line plot") print(” 5) Bar Plot") print(” 6) Horizontal Bar Plot") print(”-> Data Manipulation:") print(” 7) Extracting the middle row from the file ") print(” 8) Reading 4 records from top and 6 from bottom of the file") print(* 9) Duplicate fite with new user-defined name") print(" 10) Replacing NaN values with zeroes") print(" 11) Create a CSV file with data frame ") print(" 12) Read previously created CSV file" ) printQ) print("*teereeenensenesey stenee: teneseensssusssterstersenenees: menu() #For Option (1) df=pd.read_csv("C:\\esv\ \social_media_site_users_data.csv" encodin| def no_index(: pd.set_option (“display.max,rows",None) pd.set_option(“display.max_columns” None) pd.set_option(“display.width"None) pd.set_option (“expand _frame_repr’ False) df['Mobile No.) = df['Mobile No. ].astype(‘Int64") dfheadQ) print("Reading file without index.) timesleep(4) print(dfy #For Option (2) defnew.colnames0: EGISTRATION DATE","ACCOUNT STATUS")) pd set_option("display.max_rows" None) pd.set_option("display.max_calumns",None) pa.set_option("display.width",None) pd.set_option("expand_frame_repr’,False) dl[‘CONTACT NUMBER’) = dff'CONTACT NUMBER ].astype((Int64') dishead() print("Reading file with new column names...") timesleep(4) print(dt) #For Option (3) def sort_val_asc(): d d.read_csv("C:\\csv\ \social_media_site_users_datacsv",encoding="latin-1') pd.set_option(“display.max_rows",None) pa.set_option(“display.max_columns" None) pd.set_option(“display.width",None) pd.set_option(“expand_frame_repr’ False) df['Mobile No.'] = df['Mobile No] astype('Int64") dfhead() dfsort_values(by=['User Name'],inplace="True) print("Sorting the values in ascending ader of Namew.") time.sleep(4) print(df) #For Option (4) def line_plot(): df=pd.read_esv("C:\\csv\ \social_media_site_users_data.csv"encoding='latin-1') di DOR'] = pd.to_datetime(df['DOR'), infer_datetime format=True) df['year'|= pd.Datetimetndex(alf'DOR').year dfp=dEpivot_table(columns = di['year' ,aggfunc size’),plot(kind="line’ color='# 1C86EE’marker='o',markersize=11 label="Users’) pitxlabel(“Years") pitylabel("No. of users”) plttitle("Number of user registration from 2018-2022") plitgrid(True) pltlegend(l per left’) plt.xticks¢ticks allay) print("Creating line chart...” time.sleep(4) print("Line chart created successfully!") time.sleep(1) pit.showQ #For Option (5) def bar_plot(): df=pd.read_csv("C:\\csv\\social_media_site_users_data.csv" encoding="latin-1') |=df.pivot_table(index = [‘Age'],aggfunc ='size') dfl'age_group’] = pd.cut(df[ Age'], [0.25,45,59,70],labels=['15-25','26-45',"46- 59','Above 60'}) df{'age_group’].value_counts().sort_index().plotbar() plttitle("Number of users in different age group") pltxlabel(“Age Groups") pltylabel(*No. of users") print("Creating bar chart...") time-sleep(4) print("Bar chart created suecessfully!") timessleep(1) pltshowQ #For Option (6) def horizon_bar_plot(): f=pd.read_csv("C:\ \csv\\\social_media_site_users_data.csv",encodin Fpivot table(index = ['Country'].aggfunc ='size'}-plot(kind="barh' color='coral’) plt.xlabel("No. of users") pltylabel("Countries") plititle(”Number of users from different countries") print("Creating horizontal bar chart...") time.sleep(4) print("Horizontal bar chart created successfully!" timesleep(1) pltshow() #For Option (7) def middle_row(): df=pd.read_csv("C:\ \csv\ \social_media_site_users_datacsv’ encoding='latin- I nrows=23) pd.set_option("display.max_rows" None) pd.set_option("display.max_columns”,None) pd.set_option(“display.width",None) pd.set_option("expand_frame_repr" False) dff’Mobile No.'] = dif'Mabile No.'). arpa Inté4") dfhead() print(’Fetching the middle row from the file... ") timesleep(4) print(df.tail(1)) #For Option (8) def top_bottom(): df=pd,read_csv("C:\\csv\\social_media_site_users_data.csv".encoding="latin-1') pd.set_option(“display.max_rows".Nane) pd.set_option("display.max_columns" None) pd.set_option("display.width”, None) pd.set_option("expand_frame_repr”,False) df[Mobile No.'} = df[‘Mobile No.'.astype(‘Int64") dihead() print(" Fetching top 4 rows from the file...") time-sleep(4) print(df.head(4)) time.sleep(1) printQ) print(’ Fetching last 6 rows from the file.. time.sleep(4) print(df.tail(6)) #For Option (9) def duplicateQ): at Lread_csv("C:\\csv\\social_media_site_users_data.csv",encoding="latin-1') name_input=eval(input(” -> Enter the file path and file name for your duplicate file (within double quotes and two backslashes): ")) dfto_esv(name_input) splay.max_rows",None) pd.set_option("expand_frame_repr",False) dif'Mobile No.'] = dif['Mobile No“].astype('Int64") print("Please wait... Duplicate file is being created”) timesleep(4) print("Duplicate file with the name",""" os,path.basename(name_input), successfully!”) timesleep(2) print(di) #For Option (10) def fill_nanQ): d.read_csv("C:\\csv\social_media_site_users_data.csv" encoding="latin-1') pd.set_option("display.max_rows",None) pd.set_option("display.max_columns”,None) pd.set_option("display.width",None) pd.set_option("expand_frame_repr”,False) di]'Mobile No] = dif’Mobile No.'].astype("Inté4") dfhead() df[" Mobile No."].fillna(0, inplace = True) print(“Filling NaN values of the file....") time.sleep(4) print(df) print("Successfully replaced NaNs with zeroes!") #For Option (11) def create_csv(): users_df=("Name":["Ada Braun”,"Rakhi Soni","Derek Tyson","Anuj Sharma","Lucas ‘Cabello”," Age":[20,44,29,31,23],"Country”:["Germany”,"India’," Australi Mexica"]} users=pd.DataFrame(users_df) print(users) print() users.to_csv("C:\\csv\\user_details.csv",index=False) time.sleep(1) print("‘Creating csv file of the above dataframe...") timesleep(4) print(“CSV file ‘user_details.csv’ created successfully!") #For Option (12) def reading_prev_esv(): print("Reading the previously created csv file 'user_details.csv’. timesleep(4) print() read_user_details=pd.read_csv("C:\\esv\\user_details.esv") print(read_user_details) #For choosing Options and execution of commands t(input(” -> Enter your choice (1 to 12):")) no_index() elif opt==2: new_colnames() elif opt==3: sort_val_asc() elif opt==4; line_plotQ) elif opt==5: bar,plot() elif opt==6: horizon_bar_plot() elif opt==7; middle_row() clifopt==8: top_bottom() elif opt==9: duplicate() elif opt==10: fill_nanO) elif opt==11 ereate_csv() elif opt==12: reading_prev_csv() else: timesleep(1) print(" Invalid input! Please choose a valid option (1 to 12)") time.sleep(1) continue ch=input(" -> Do you wish to continue? -¥/N") il(ch=='N' or ch=="n’); print("Quitting...") timesleep(4) break if(ch=="¥' or ch=='y'): print("Please wait...") timesleep(2) menu() else: time.sleep(1) print("Invalid input! Press Y fy for 'Yes' or N/n for’No") time.sleep(1) ch=input(" -> Do you wish to continue? -Y/N") if(e print("Quitting...") time.sleep(4) break else: print("Please wait...") time.sleep(2) ‘menu() OUTPUT nding order of Names Data Manipulation Extr eaate ed ews Ran ase Eatst Tm re ur choice (1 to 12): 11 Teme: Country etal Lelie i bites) Ta PRR saa tee) Anuj Sharma step €) Lucas Cabello Mexico Creating csv file of the above dataframe. CSV file ‘user_details.csv' created successfully! -> Do you wish to continue? -Y/N A B Cc I 1 Name Age Country 2 Ada Braun 20 Germany 3 Rakhi Soni 44 India 4 Derek Tyson 29 Australia 5 Anuj Sharma 31 India 6 Lucas Cabello 23 Mexico -> Enter your choice (1 to 12) Reading the previously created cs Ted Liat TL era) Germar i cry India 29 Anuj Sharma 31 India Lucas Cabello 2 Mexico -> Do wish to continue? -Y/N #if opt is invalid (not in 1-12): Enter your choice (1 to 12): 7980 Invalid input! Please choose a valid option (1 to 12) Enter your choice (1 to 12): #if ch is invalid (not Y/y or N/n PES Mao Mae et tae e1) nel) Invalid input! Press Y /y for ‘Yes’ or N/n for ‘No* -> Do you wish to continue? -Y/N #if chis Yes (Y/y): ear y Cr ese CMe eeu ot rae Ca new column name et ee CCUM urea meat od eee ee Pee m ms z e crea otc) rece Tits Sta 6 cde) #if ch is No (N/n): -> Do you wish to continue? -Y/N n Quitting TESTING Software Testing is an empirical investigation conducted to provide stakeholders with information about the quality of the product or service under test, with respect to the context in which it is intended to operate. Software Testing also provides an objective, independent view of the software to allow the business to appreciate and understand the risks at implementation of the software. Test techniques include, but are not limited to, the process of executing a program or application with the intentof finding software bugs. It can also be stated as the process of validating and verifying that a software program/application/product meets the business and technical requirements that guided its design and development, so that it works as expected and can be implemented with the same characteristics. Software ‘Testing, depending on the testing method employed, can be implemented at any time in the development process, however the most test effort is employed after the requirements have been defined and coding process hasbeen completed. TESTING METHODS Software testing methods are traditionally divided into black box testing and white box testing. These two approaches are used to describe the pointof view that a test engineer takes when designing test cases, Black Box Testing Black Box Testing is a testing technique where no knowledge of the internal functionality and structure of the system is available. This testing technique treats the system as a black box or closed box. The tester only knows the formal inputs and expected outputs, but does not know how the program actually arrives at those outputs. As a result, all testing must be based on functional specifications. For this reason black box testing is also considered to be functional testing and is also a form of behavioral testing or opaque box testing or simply closed box testing. Although black box testing is behavioral testing, behavioral test design is slightly different fromblack box test design because internal knowledge may be available in behavioral testing. It provides external perspective of the software under test. Black box testing methods include: equivalence partitioning, boundary value analysis, all-pairs testing, fuzz testing, model-based testing, traceability matrix, exploratory testing and specification-based testing, Specification Based-Testing Specification-based testing aims to test the functionality of software according to the applicable requirements. Thus, the tester inputs data into, and only sees the output from, the test object. This level of testing usually requires thorough test cases to be provided to the tester, who then can. simply verify that for a given input, the output value (or behaviour), either “is” or "is not" the same as the expected value specified in the test case. Specification-based testing is necessary, but it is insufficient to guard against certain risks. Advantages of Black Box Testing Efficient when used on large systems. Since the tester and developer are independent of each other, testing is balanced and unprejudiced. Tester can be non-technical. There is no need for the tester to have detailed functional knowledge of system. Tests will be done from an end user's point of view, because the end user should accept the system. (This testing technique is sometimes also called Acceptance testing.) Testing helps to identify vagueness and contradictions in functional specifications. Test cases can be designed as soon as the functional specifications are complete. Disadvantages of Black Box Testing Test cases are challenging to design without having clear functional specifications. It is difficult to identify tricky inputs if the test cases are not developed based on specifications. It is difficult to identify all possible inputs in limited testing time. As a result, writing test cases may be slow and difficult. There are chances of having unidentified paths during the testing process. ‘There is a high probability of repeating tests already performed by the programmer. White-box testing White-box testing (also known as clear box testing, glass box testing, transparent box testing and structural testing) looks inside the software that is being tested and uses that knowledge as part of the testing process. If, for example, exception is thrown under certain conditions, test might want to reproduce those conditions. White-box testing requires internal knowledge of the system and programming skills. It provides internal perspective of the software under test. ‘Types of white box testing: ‘The following types of white box testing exist: + api testing - Testing of the application using Public and Private APIs. = Code coverage - creating tests to satisfy some criteria of code coverage. For example, the test designer can create tests to cause all statements in the program to be executed at least once. + fault injection methods. * mutation testing methods. « static testing - White box testing includes all static testing. Code Completeness Evaluation White box testing methods can also be used to evaluate the completeness of a test suite that was created with black box testing methods. This allows: the software team to examine parts of a system that are rarely tested and ensures that the most important function points have been tested ‘Two common forms of code coverage are: + Function Coverage: Which reports on functions executed + Statement Coverage: Which reports on the number of lines executed to complete the test. They both return coverage metric, measured as a percentage. Advantages of White Box Testing Testing can commence even before the GUI is ready.0 As internal functionality is considered, all the possible conditions are considered and test cases are generated. Hence all the functionalities are being tested. It identifies the specific procedure accuracy within the application. It minutely verifies whether the program can be successfully executed with other parts of the application. It identifies error in the hidden code and thus makes debuggingprocess swift. It removes extra lines of code which are not required in the program thereby optimizing the program and increases the efficiency. ‘As the internal coding of the application is considered while preparing test cases, it becomes very easy to identify the input and the expected output data, It helps in evaluating all the loops and paths. It can provide stability and usability of the test cases. Thoroughness achieved in white box testing is far more than black box testing. Various hidden defects get unearth while conducting clear box testing. Disadvantages of White Box testing As the internal code of the application has to be considered while preparing the test cases, skilled testers are required who have knowledge of programming also. Hence the cost of the resources is high. It is not possible for the tester to look into every bit of the code and identify the hidden errors. This may result in failure of the application. Sometimes a change in the code may be required and thus all the scenarios may need to be tested again. White box testing is an exhaustive method, It takes time to tester to develop the test cases. Test cases are a waste if changes in the implementation code are done frequently. If the application is large then complete testing through white box techniques is not feasible. BIBLIOGRAPHY Informatics Practices- Class XI By: Sumita Arora Informatics Practices with Python- Class XI By: Preeti Arora Informatics Practices - NCERT Textbook for Class XI Website: https://www.w3resource.com

You might also like