Professional Documents
Culture Documents
LEARN NI-HAO
A Mandarin Chinese Language Learning Software
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 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
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.
This document features some terminologies which reader may be familiar with :
DESC : Description
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.
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.
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.
● 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.
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
● MODULE 1: 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.
This module will provide a way to the learners to interact with other learners.
● MODULE 5 : SKILLS
● The user of the system should be comfortable working with the English language.
● The user must have basic knowledge of computers and the internet.
DEPLOYMENT :
RAM : 16GB
Hard Disk: 500GB
Running Requirement :
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.
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
● 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.
25
Our DFD Contains the following things :
● External Inputs :
1. Learner Login
2. Learner Sign up
3. Lessons Files
4. Result obtained
5. Admin Login
6. Assign key
7. Skills section files
● 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
26
EI 3 4 6
EO 4 5 7
EQ 3 4 6
ILF 7 10 15
EIF 5 7 10
External Inputs 7 3 21
External Outputs 4 4 16
External Inquiries 3 3 9
Count Total 95
Table : Function Point Table
27
2. Are specialized data communications required to transfer information to or 5
from the application?
4. Is performance critical? 3
7. Does the online data entry require the input transaction to be built over 4
multiple screens or operations?
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?
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
= 95*(1.10)
= 104.5
We have used the COCOMO II Model for the cost estimation of our project.
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.
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
points
To derive an estimate of effort based on the computed NOP value, a “productivity rate” must be
derived.
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.
● 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.
● 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.
● 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.
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
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
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
36
Home : Learn and Test section
37
Skill and Community section
38
SCHEDULING :
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
4. IF matches
5. Then
8. Else
10. END IF
11. Else
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:
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
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, 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.
➔ Execute all loops at their boundaries and within their operational bounds.
The White Box Testing has another branch called 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
6 Email not found “No user registered with this Message Pass
email” displayed
Error message should be
displayed
48
VIII. Bibliography :
49
CONCLUSION
50