You are on page 1of 51

Session Year : 2022-2023

LEARN NI-HAO
A Mandarin Chinese Language Learning Software

SOFTWARE ENGINEERING PROJECT REPORT

B.Sc.(Hons.)Computer Science
Submitted By : Submitted to :
Aayush Chauhan : 24907
Dr.Aparna Datt
Sumit Joshi : 24949
ACKNOWLEDGEMENT

The contentment that is achieved on the successful completion of any task is incomplete without
mentioning the names of the people who made it possible with their consistent guidance, support, and
indispensable encouragement. The Project was jointly undertaken by AAYUSH CHAUHAN and
SUMIT JOSHI as their 4th semester Software Engineering Project, under the able guidance and
supervision of DR. APARNA DATT. Our primary thanks to her, who poured over every inch of our
project with painstaking attention and helped us throughout the working of the project. It’s our
privilege to acknowledge our deepest sense of gratitude to her for her inspiration which has helped us
immensely. We are extremely grateful to her for her unstilted support and encouragement in the
preparation of this project.

1
CERTIFICATE

This is to certify that the Software Engineering Project Report entitled, “ Learn Nihao ” is the work
carried out by Aayush Chauhan and Sumit Joshi , students of B.Sc.(hons.)Computer Science during
semester IV from P.G.D.A.V. College (Morning), University of Delhi under the due supervision of
Dr. Aparna Datt .

2
DECLARATION

I hereby declare that this Project Report titled “ Learn Nihao ” submitted to the Department of
Computer Science, P.G.D.A.V. College ( University Of Delhi) is a record of original work done by the
team under the kind guidance of Dr. Aparna Datt.

The information and data given in the report is authentic to the best of the team knowledge. This
Project Report is not submitted to any other university or institution for the award of any degree,
diploma or fellowship or published any time before.

3
INDEX Page no
1. Problem Statement 5
2. Process Model 6
3. Software Requirement Specification (SRS) 9
4. Architectural Design 13
5. User Case Diagram 15
6. Data Flow Diagram 16
7. Entity Relationship Diagram 19
8. Relational Database Mapping 20
9. “Ni-Hao” Database 21
10. Project Management 25
11. Risk Analysis 32
12. Module Screens 36
13. Scheduling & Timeline Chart 39
14. Pseudocode 40
15. Cyclomatic Complexity 42
16. Control Flow Graph(CFG) 43
17. Login Module Implementation 44
18. Testing and Test Cases 47
19. Bibliography 49
20. Conclusion 50

4
I . Problem Statement

Introduction

Exploring new boundaries of a new language is a very fascinating thing and an epic adventure. But
for a person who is totally new to this field and don’t know which path to follow, they often tend to
stop the adventure before it has even started. A language software can help you build your vocabulary,
develop proper grammar, and eventually become fluent through lessons that are easy to digest - all
from the comfort of your smartphone or laptop, especially when compared with formal schooling with
a language expert and hefty price tag.

The Existing System

The existing system don’t contain Proper flow of teaching and one has to jump between different
platforms to get a proper understanding of a concept . They don’t have an interactive “Community
feature” and they don’t provide a proper way to test your understanding on a specific topic and the
functionality is limited to online features.

Proposed System

Our software helps with vocabulary, grammar and basic conversational skills and has speech
output, which is key to ensuring you have proper pronunciation. You can enjoy the interactive
"community feature" and the fact that the program feels like a language course at school. The
premium version of the app also includes flashcards, quizzes, and a skills section useful for
travellers like “ Survival Skills” and “ Polite Phrases. ” Students have opportunities to gain skills in
reading, writing, grammar and speaking in their target language in likely scenarios, especially for
travel. Vocabulary and grammar are taught with activities designed to help people develop reading,
writing, listening and speaking skills.

5
PROCESS MODEL:

Incremental Model:

The Incremental model combines elements of the waterfall model applied in an iterative fashion. In
this model, each module goes through the requirements, design, implementation and testing phases.
When an incremental model is used, the first increment is often a core product. That is, basic
requirements are addressed, but many supplementary features (some known, others unknown) remain
undelivered. The core product is used by the customer (or undergoes detailed evaluation). As a result
of use and/or evaluation, a plan is developed for the next increment. The plan addresses the
modification of the core product to better meet the needs of the customer and the delivery of each
increment, until the complete product is produced.

6
Model Diagram

7
Reasons for using this model :

i. The reason for using this model is that the concept of our software is vast and there area lot of
modules that are required to be built. This increases the chances of an error. Use of an increment
model will allow us to analyze our project completion of each module. Thus, we can change our
requirements at the start.

ii. Moreover, after our first increment, we can launch our core product for the users. After use,
evaluation and feedback by the users we can modify our software and take it to a more advanced
level.

8
I. SOFTWARE REQUIREMENT SPECIFICATIONS

App Name : Learn Nihao


Category : It will be launched both as a Web-based application and a Mobile app for Android.

2.1 INTRODUCTION

This document contains the necessary requirements and some aspects of the analysis of the
requirements.

2.1.1 PURPOSE

The purpose of developing this is to provide a hassle free language learning experience with one’s
own pace.This software is specifically designed to help users learn, increase their knowledge of, or
maintain foreign language skills.It also aims at increasing the efficiency and reducing the
drawbacks of existing software,thus making it more convenient for the learners to learn.

2.1.2 Definitions Acronyms

This document features some terminologies which reader may be familiar with :

SRS : Software Requirement Specifications

DESC : Description

Sign up : Creating New User

Log in : Logging in Existing User

UI : User Interface

9
2.1.3 Intended Audience
This document is intended for any individual learner,developer,project manager or documentation
writer that needs to understand the basic system architecture and its specifications.

The intended readers of the document are current and future developers working on “Learn Nihao”
and the sponsors of the project.

2.1.4 Project Scope and Goals

Unique features and a clear structure make “Learn Nihao” a reliable software place to learn Mandarin
Chinese or sharpen your skills.It is an effective language learning platform that will make it enjoyable
and easy for students to remain motivated and engaged with classmates through “Community feature”.

The application should be free to download from either a mobile phone application store or similar
services.

2.2 PROJECT OVERVIEW

The rest of the document deals with all the main features of this software. It not only describes
various functions but also gives details about how these functions are related to each other. Apart from
the data flow diagrams, the document also contains cost estimates for developing this system.

With this app for language learning, you can learn at your own pace and wherever you're most
comfortable.It works well whether you're a total beginner or already have experience. It is ideal for
anyone new to a language looking to develop a strong base of vocabulary and grammar. It's well-
structured, clear, and moves at a deliberate pace.

2.2.1 FUNCTIONAL REQUIREMENTS

● Users must have valid User ID and Password to login thus creating their individual profiles.
● Content is available for offline study and learning.
● Video references will be provided through youtube.
● Users can select chapters and learn grammar, vocabulary and Kanji.
● Users can generate tests on individual or multiple chapters.
● Proper authentication on mobile number is required to access community services.
● Users can ask and reply to queries posted by other users in the community.
● Premium version will give access to Flashcards, Quizzes and Skill sections.
● Only one skill can be selected at one instance.

10
2.2.2 NON FUNCTIONAL REQUIREMENTS

★ Performance Requirements :

The system should be capable enough to handle thousands of users without affecting its performance.

★ Reliability :
Repeated entry of false username or password will lead to software halt state and software can only be
revived by the admin of the software.

★ Software Quality Attributes :


The software is correct,flexible,maintainable and portable. Minimal and
Clean UI.

2.3 Product Features

The “Learn Nihao” software is an independent web based application. There are various user
interfaces related to this software. These interfaces help the user to interact with the software and
provide the necessary information for learning Mandarin chinese.The entire functionality of this
software can be subdivided into fields/modules. The names of the fields involved in the airline
reservation system are:

1. LESSONS

2. EXERCISE

3. TEST

4. COMMUNITY

5. SKILLS(for paid users only)

● MODULE 1: LESSONS

This includes grammar and vocabulary lessons.

● MODULE 2:EXERCISE

This module will provide practice sessions and revisions to the learner.

11
● MODULE 3 : TEST

This module includes tests of the respective lessons,generates results and maintains the scoreboard.

● MODULE 4 : COMMUNITY FORUM

This module will provide a way to the learners to interact with other learners.

● MODULE 5 : SKILLS

2.3.1 User Characteristics :

● The user of the system should be comfortable working with the English language.
● The user must have basic knowledge of computers and the internet.

2.4 Software Tools :


Database server : SQL Server

Development Tools: MS Visual Studio and Android Studio

Programming Language : Python, SQL, XML, Kotlin

DEPLOYMENT :

Operating system : Android

Hardware Specifications(FOR Development) :

Processor : AMD Ryzen5 2600x and above

RAM : 16GB
Hard Disk: 500GB

Running Requirement :

Android Version : 5.x.x (Lolipop) and above

Ram : 2GB and above

Storage : 150mb and above

12
ARCHITECTURAL DESIGN

Requirements of the software should be transformed into an architecture that describes the
software's top-level structure and identifies its components. This is accomplished through
architectural design (also called system design), which acts as a preliminary 'blueprint' from
which software can be developed.

The architectural design of the software defines every module of the application in detail in a
hierarchical way.

For LNG application:

1. Sign Up : This module takes all the details of the Learner including the personal details.
a) Create Users : This module helps in the registration of the user/Learner into the database of the
organization.

2. Login: This module provides the most important functionality to the application, the security
feature of login module.

13
3 .Premium feature : This feature provides user access to the important sections of lessons like
skills,community forum etc. after the payment.

4. Admin : This module will allow admin to manipulate the database, i.e. ; by adding data, updating
some present data and deleting data from the database.

5 . Learner’s Section :This module contains all the lessons including grammar,vocabulary etc
associated with test feature.

14
Use Case Diagram:

15
Data Flow Diagram :

Level 0

16
Level 1

17
Level 2

18
E-R Diagram :

DFD

19
20
“LEARN NI-HAO” DATABASE

21
22
23
24
II. PROJECT MANAGEMENT

3.1 Size Estimation

● Function-oriented software metrics use a measure of the functionality delivered by the


application as a normalization value. Since ‘functionality’ cannot be measured directly, it must
be derived indirectly using other direct measures.

● Function-oriented metrics were first proposed by Albrecht, who suggested a measure called the
function point. Function points are derived using an empirical relationship based on countable
(direct) measures of software's information domain and assessments of software complexity.

● Function points are computed by completing the table as shown below.Five information
domain characteristics are determined and counts are provided in the appropriate table
location. Information domain values are defined in the following manner:

➢ Number of user inputs : Each user input that provides distinct application oriented data to
the software is counted. Inputs should be distinguished from inquiries, which are counted
separately.

➢ Number of user outputs : Each user output that provides application oriented information to
the user is counted. In this context output refers to reports, screens, error messages, etc.
Individual data items within a report are not counted separately.

➢ Number of User Inquiries : An Inquiry is defined as an on-line input that results in the
generation of some immediate software response in the form of an on-line output. Each distinct
inquiry is counted.

➢ Number of files : Each logical master file(i.e. ,a logical grouping of data that may be one part
of a large database or a separate file) is counted.

➢ Number of External Interfaces : All machine readable interfaces(e.g., data files on storage
media) that are used to transmit information to another system are counted.

Function Point Estimation :

25
Our DFD Contains the following things :

● External Inputs :

1. Login Credentials : Username,Password


2. Sign Up Credentials : Name,E-mail ID
3. Admin Login - Name, Password,Key ● External Output :

1. Test Result - Score,Rank


2. View Learner Details(Admin)
3. View Lessons files(Admin) ● Logical Internal Files :

1. Learner Login
2. Learner Sign up
3. Lessons Files
4. Result obtained
5. Admin Login
6. Assign key
7. Skills section files

● External Interface Files - 0

● External enquiries:

1. Score Obtained
2. Community forum (Learner can interact)
3. Community Forum (Admin can read)

External Inputs = 7
External Outputs = 4
Internal Logical Files = 7
External Inquiries = 3
External Interfaces = 0

Function units Low Average High

26
EI 3 4 6

EO 4 5 7

EQ 3 4 6

ILF 7 10 15

EIF 5 7 10

Table : Unadjusted Functional Point

Information Domain Values Count


Weighing Factor - Weighing
Simple Count

External Inputs 7 3 21

External Outputs 4 4 16

External Inquiries 3 3 9

Internal Logical Files 7 7 49

External Logical Files 0 5 0

Count Total 95
Table : Function Point Table

S.NO. Questions VAF

1. Does the system require reliable backup and recovery? 4

27
2. Are specialized data communications required to transfer information to or 5
from the application?

3. Are there distributed processing functions? 4

4. Is performance critical? 3

5. Will the system run in an existing, heavily utilized operational 3


environment?

6. Does the system require online data entry? 4

7. Does the online data entry require the input transaction to be built over 4
multiple screens or operations?

8. Are the ILFs updated online? 5

9. Are the inputs, outputs, files, or inquiries complex? 2

10. Is the internal processing complex? 1

11. Is the code designed to be reusable? 0

12. Are conversion and installation included in the design? 2

13. 3
Is the system designed for multiple installations in different organizations?

14. 5
Is the application designed to facilitate change and ease of use by the user?

Table : Project Estimators

28
Degree Significance

0 Not Present

1 Insignificant Influence

2 Moderate Influence

3 Average Influence

4 Significant Influence

5 Strong Influence
Total Degree of Influence (TDI) = ∑(fi) = 45

The fi (i = 1 to 14) are “ Complexity Adjustment Values ” based on responses.

Computing Function Points :

FP = Count_total *(0.65 + 0.01 *∑(fi))

where, count total is the sum of all FP entries

FP = 95*(0.65 + 0.01 * 45)

= 95*(1.10)

= 104.5

3.2 COST ESTIMATION

We have used the COCOMO II Model for the cost estimation of our project.

● COCOMO 2 ( COnstructive COst Model 2) is an algorithmic cost estimation technique


proposed by Boehm, which works in a bottom-up manner.

29
● It is designed to provide some mathematical equations to estimate software projects.

● These mathematical equations are based on historical data and use project size in the form of
KLOC.

● The COCOMO model uses a multivariable size estimation model for effort estimation.

Like all estimation models for software, the COCOMO II models require sizing information. Three
different sizing options are available as part of the model hierarchy: object points, function points, and
lines of source code.

Table : Complexity weighting for object types

In our Project,

SCREENS :
1. Login type
2. Login
3. Registration
4. My Profile
5. View lessons
6. Community Forum
7. Skills section
8. Test Section
Total screens 8
Reports :
1. Registered Successfully
2. Transaction Occurred Successfully
3. Learner’s Account Made Premium

30
Total Reports 3

3 GL Models : 0

Considering all of above have Average complexity,we get Object


Points = 8*2 + 3*5 + 0
= 16 + 15
= 31
3.3 EFFORT ESTIMATION

NOP = (object points)*[(100- %reuse) / 100]


= 31 *[(100-0)/100]
= 31 where NOP is defined as new object

points

To derive an estimate of effort based on the computed NOP value, a “productivity rate” must be
derived.

Table : Productivity rate for object points

Now taking the Developer Experience and Skills as Low, we have

PRODUCTIVITY = 4

Efforts = NOP/PRODUCTIVITY
= 31 / 7
= 4.4

31
VI . Risk Analysis :

While deploying a project,several risks are always there with different probability of happening
and different consequences.Risk analysis is a series of steps that help a software team to
understand and manage uncertainty.A risk is a potential problem-it might happen,it might not.

6.1 Risk Identification

● Product Size (PS) : Risk associated with overall size of the product to be built or
modified.

● Business impact (BU) : Risk associated with constraints associated by the management
or the marketplace.

● Customer characteristics (CU) : Risk associated with sophistication of the customer


and developers ability to communicate with the customer in a timely manner.

● Technology to be built (TE) : Risk associated with the complicity of the system. To be
build and new risk of the technology that is packed by the system.

● Development Environment (DE) : Risk associated with the availability and quality of
the tools to be used to build the product.

● Staff size and experiences (ST) : Risk associated with the overall technical and project
experiences of the software engineers who will do the work.

● Process Definition (PD) : Risk associated with degree to which the software process has
been defined and is followed by the developed organization.
6. 2 Risk Projection

Risk projection, also called risk estimation, attempts to rate risk in two ways –the likelihood or
probability that the risk is real and the consequences of the problem associated with the
risk,should it be clear.

Risk always involves two characteristics:

● Uncertainty - The risk may or may not happen. There are no 100% probable risks.
● Loss - If a risk becomes a reality, unwanted consequences or losses will occur.

The goal of the risk mitigation, monitoring and management plan is to identify as
many potential risks as possible. The project will then be analyzed to determine any
project-specific risks.

The quicker the risks can be identified and avoided, the smaller the chances
of having to face that particular risk’s consequence. The fewer
consequences suffered as a result of good RMMM plan, the better the
product, and the smoother the develop-ment process.

A risk table is a simple technique for risk projection.

6.3 Risk Table for our Project :

S.No . Risk Category Probability Impact Mitigation


(%) (1-5)

1. Quality not DE 60 3
Take up the steps to maintain the
maintained
quality at each stage of the
development.

33
2. Loss of database PS 50 1 Carry out necessary back-up of
database data,source code and
documentation.

3. PS 50 2
Size estimates may Detailed analysis to estimate size
be low correctly

4. BU 40 2 Pace of software construction to be


Delivery deadline
checked timely.
will be tightened/
Not met

5. BU 40 3
End user may resist End users terms and conditions
the system should be mentioned in SRS

6. DE 80 3
Lack of training on Staff must be trained to handle
tools working on tools

7. Requirement-s not CU 50 1 Regular interaction with the


properly customer and getting the
documented & requirements verified before
understood finalizing them

8. BU 30 2
Poor Public
Conduct a survey to get information
response to the
about the market trends
software

34
Category full form:
PS Product Size

BU Business Impact

CU Customer Characteristics

DE Development Environment

ST Staff Size

Impact Values :
1 Catastrophic

2 Critical

3 Marginal

4 Negligible

35
Module Screens

Login Page and Registration Page:

36
Home : Learn and Test section

37
Skill and Community section

38
SCHEDULING :

Scheduling is the culmination of a planning activity that is a primary component of Software


project management. When combined with estimation methods and risk analysis, scheduling
establishes a road map for the project manager. The characteristics of the project are used to
adapt an appropriate task set for the work to be done. A task network depicts each engineering
task, its dependency on other tasks, and its projected duration.

GANTT CHART :

When creating a software project schedule,the planner begins with a set of tasks.If automated
tools are used,the work breakdown is input as a task network or task outline.Effort, duration and
start date are then input for each task outline.In addition,tasks may be assigned to specific
individuals.
As a consequence of this input a Timeline Chart also called Gantt Chart is generated.

39
PSEUDOCODE :

1. READ username

2. READ password

3. Scan DB for Username and Password:

4. IF matches

5. Then

6. IF(Premium exists) //Checking for Premium Validity

7. Login with premium privileges

8. Else

9. Login with non-premium privileges

10. END IF

11. Else

12. Error : No Learner found

40
Flowchart

41
Cyclomatic Complexity

Cyclomatic Complexity is a software metric that provides a qualitative measure of the logical
complexity of a program. When used in the context of the basis path testing method, the value
corresponding to cyclomatic complexity defines the number of independent paths in a basis set
of a program and provides us with an upper bound for the number of tests that must be conducted
to ensure that all statements have been executed at least once.

Cyclomatic complexity has a foundation in graph theory and is computed in one of the three
ways:

1. The number of regions corresponds to the cyclomatic complexity.

2. Cyclomatic complexity, V(G), for a flow graph, G, is defined as


V (G) = E-N+2
Where E is the number of flow graph edges, and N is the number of flow graph nodes.

3. Cyclomatic complexity, V(G), for a flow graph, G, is also defined as


V (G) = P+1 where ‘P’ is the number of predicate nodes contained in the
flow graph G

No. of edges = 10
No. of nodes = 9

V{G} = E- N + 2
= 10 - 9 + 2
= 12 - 9
= 3

42
Control Flow Graph(CFG)

43
Login Module Implementation

import tkinter.messagebox
import mysql.connector

#connecting to the database connectiondb =


mysql.connector.connect(host="localhost",user="root",passwd="",database="logindb"
) cursordb = connectiondb.cursor()

def login(): global root2 =


Toplevel(root)
root2.title("Account Login")
root2.geometry("450x300")
root2.config(bg="white")

global username_verification
global password_verification
Label(root2, text='Please Enter your Account Details', bd=5,font=('arial', 12,
'bold'), relief="groove", fg="white", bg="blue",width=300).pack()
username_verification = StringVar() password_verification = StringVar()
Label(root2, text="").pack()
Label(root2, text="Username :", fg="black", font=('arial', 12, 'bold')).pack()
Entry(root2, textvariable=username_verification).pack()
Label(root2, text="").pack()
Label(root2, text="Password :", fg="black", font=('arial', 12, 'bold')).pack()
Entry(root2, textvariable=password_verification, show="*").pack()
Label(root2, text="").pack()
Button(root2, text="Login", bg="blue", fg='white', relief="groove", font=('arial', 12,
'bold'),command=login_verification).pack()
Label(root2, text="")

def logged_destroy():
logged_message.destroy()
root2.destroy()

def failed_destroy():
failed_message.destroy()
def logged():
global logged_message =
Toplevel(root2)
44
logged_message.title("Welcome")
logged_message.geometry("500x100")
Label(logged_message, text="Login Successfully!... Welcome {}
".format(username_verification.get()), fg="green", font="bold").pack()
Label(logged_message, text="").pack()
Button(logged_message, text="Logout", bg="blue", fg='white', relief="groove", font=('arial', 12,
'bold'), command=logged_destroy).pack()

def failed():
global failed_message =
Toplevel(root2)
failed_message.title("Invalid Message")
failed_message.geometry("500x100")
Label(failed_message, text="Invalid Username or Password", fg="red", font="bold").pack()
Label(failed_message, text="").pack()
Button(failed_message,text="Ok", bg="blue", fg='white', relief="groove", font=('arial', 12,
'bold'), command=failed_destroy).pack()

def login_verification():
user_verification = username_verification.get() pass_verification =
password_verification.get() sql = "select * from usertable where
username = %s and password = %s"

cursordb.execute(sql,[(user_verification),(pass_verification)])
results = cursordb.fetchall() if results: for i in results:
logged()
break
else:
failed()

def Exit():
wayOut = tkinter.messagebox.askyesno("Login System", "Do you want to exit the system")
if wayOut > 0:
root.destroy()
return

def main_display():
global root =
Tk()
root.config(bg

45
="white")
root.title("Logi
n System")
root.geometry(
"500x500")
Label(root,text='Welcome to Log In System', bd=20, font=('arial', 20, 'bold'),
relief="groove", fg="white", bg="blue",width=300).pack()
Label(root,text="").pack()
Button(root,text='Log In', height="1",width="20", bd=8, font=('arial', 12,
'bold'), relief="groove", fg="white", bg="blue",command=login).pack()
Label(root,text="").pack()
Button(root,text='Exit', height="1",width="20", bd=8, font=('arial', 12, 'bold'), relief="groove",
fg="white",

bg="blue",command=Exit).pack()
Label(root,text="").pack()
main_display() root.mainloop()

46
TESTING :
Testing is done with an objective of finding most errors with a minimum amount of time and
effort. A good test case is one that has a high probability of finding an as-yet-undiscovered error.

WHITE BOX TESTING

WHITE BOX testing, sometimes called glass-box testing, is a test-case design philosophy that
uses the control structure described as part of component-level design to derive test cases.

Using white-box testing methods, you can derive test cases that :

➔ Guarantee that all independent paths within a module have been exercised at least once.

➔ Exercise all logical decisions on their true and false sides.

➔ Execute all loops at their boundaries and within their operational bounds.

➔ Exercise internal data structures to ensure their validity.

The White Box Testing has another branch called Basis Path Testing.

BASIS PATH TESTING

Basis Path Testing is a White Box testing technique that enables the test designer to derive a
logical complexity and defines basic tests of execution paths. The test cases are prepared so that
each execution path will occur at least once.Test cases derived to exercise the basis set are
guaranteed to execute every statement in the program at least one time during testing.

47
Test Cases for LOGIN Module

S.No Description Expected Output Test Results


Actual
Output

1 User ID and Message Pass


“Enter the User ID and
password are blank displayed
Password” Error message
should be displayed

2 User ID is blank Message Pass


“Enter the User ID”
displayed
Error message should be
displayed

3 Password is blank “Enter the Password” Message Pass


Error message should be displayed
displayed

4 Wrong ID Message Pass


“Invalid ID”
displayed
Error message should be
displayed

5 Wrong Password Message Pass


“Incorrect Password”
displayed
Error message should be
displayed

6 Email not found “No user registered with this Message Pass
email” displayed
Error message should be
displayed

7 Forget Password Pass


Forget password UI should UI
be displayed displayed

48
VIII. Bibliography :

● Software Engineering (3rd ed.), By K.K Aggarwal & Yogesh Singh

● Software Engineering : A Practitioner’s Approach by Roger S. Pressman

● Software Engineering Tutorial - javatpoint

● Software Engineering Tutorial (tutorialspoint.com)

49
CONCLUSION

Conclusion on overall project ,the project had achieved it's


objective .The project is provided with application of
Mandarin Language Learning Software .It provide more
venerable environment of learning language. In view of time
it is less time consuming ,more interesting and can minimise
your effort by best projection of GUI used to help you out
through your learning. Apart from using internet , learning
materials is even accessible offline This make application
more simplistic and robust .The amazing thing about this
software is that incremental model is used in it which can
adapt changes occurring in future and can provide more
easy to use versions in nearby time. PROPER DATABASE
has been made that can link directly to both admin and
learner interface by including GUI that is easy to use by user
as well as server.

50

You might also like