Project Report on Family Tree Generator in JAVA
Short Description
The project Family Tree Generator gives the user the ability to track back to his ancestral roots, know and preserve the...
Description
A PROJECT REPORT ON Family Tree Generator In partial fulfillment of B. Tech IV Year (Computer Science Engineering)
Session 2012-13 Submitted To:
Submitted by:
Prof. Virendra Soni
Priyanka Rajpurohit
Professor
IV Year / VII Sem Department of Computer Science Engineering
JIET School of Engineering & Technology for Girls Jodhpur
1
Certificate This is to certify that the Major Project entitled Family Tree Generator has been carried out by the student of college JIET School of Engineering & Technology for Girls, Jodhpur under my guidance and supervision in partial fulfillment of the degree of Bachelor
of Technology in Computer Science Engineering of Rajasthan Technical University, Kota during the academic year 2012-13.
Team: Priyanka Rajpurohit Date: 25/10/2012 Place: JIET-SETG, Jodhpur
Signature of Guide --- ---- --- ---- --- ---- --- Name of Guide Assistant Professor Department of CSE JIET-SETG
Signature of HOD --- ---- --- ---- --- ---- --Prof. Mamta Garg Head of Department, Department of CSE, JIET-SETG
2
Certificate This is to certify that the Major Project entitled Family Tree Generator has been carried out by the student of college JIET School of Engineering & Technology for Girls, Jodhpur under my guidance and supervision in partial fulfillment of the degree of Bachelor
of Technology in Computer Science Engineering of Rajasthan Technical University, Kota during the academic year 2012-13.
Team: Priyanka Rajpurohit Date: 25/10/2012 Place: JIET-SETG, Jodhpur
Signature of Guide --- ---- --- ---- --- ---- --- Name of Guide Assistant Professor Department of CSE JIET-SETG
Signature of HOD --- ---- --- ---- --- ---- --Prof. Mamta Garg Head of Department, Department of CSE, JIET-SETG
2
Acknowledgment This project involved the collection and analysis of information from a wide variety of sources and the efforts of many people beyond me. Thus it would not have been possible to achieve the results reported in this document without their help, support and encouragement. I am highly indebted to Prof. Virendra Soni professor of computer science department, for their timely guidance and constant supervision as well as for providing necessary information regarding the minor project & also for their support in completing the minor project.
Priyanka Rajpurohit October 25, 2012
3
Abstract A strong family relationship can make changes in any one’s life!!! Any family has its share of challenges in life – the children grow up, move out, change jobs, and move to different communities. Other routine events are various births, deaths, marriages, and illnesses etc. that restructure restructure the family. It is a fact that families are a major force in the development development of society. But with today’s busy lifestyles, somehow the family members tend to drift apart and these bonds become less strong. Each person that is born is granted the gift of life by their parents. This gift of life is a link to their ancestors who lived before them. From the beginning of time people have sensed a need to belong. It is noteworthy that even the Bible contains lists of genealogy. People felt it was significant to be able to trace their lineage to Adam, Noah, Abraham, David and so on. Genealogy is a unique and personalized form of history. It is passed from one generation to the next via written and oral history. Without this connection to our ancestors we would have little knowledge of our culture or how we fit in. You will also come to understand more about your purpose in life. The project Family Tree Generator gives the user the ability to track back to his ancestral roots, know and preserve the information in the most structured and well organized manner. Information concerning your family history is useful to medical professionals. It helps them determine whether you or other family members have increased risk for various hereditary diseases or genetic illnesses. Doctors monitor medical issues such as heart problems, diabetes, strokes and cancer with this data. As you research your ancestral roots you will increase your skills in a number of areas. Your organizational skills will be sharpened as you take notes in a loose leaf binder and categorize information. Compiling your family tree is a priceless legacy for future generations.
4
Table of Contents
Certificate........................................................................................
2
Acknowledgment............................................................................
3
Abstract...........................................................................................
4
Table of Contents...........................................................................
5
1.
Introduction............................................................................
6
2.
Literature Survey....................................................................
8
3.
Requirement Specification....................................................10
4.
Architectural Design..............................................................13
5.
Test Planning..........................................................................33
6.
Work Distribution...................................................................37
7.
Results....................................................................................38
8.
Conclusion & Future Work.....................................................44
Glossary............................................................................................
45
References......................................................................................... 46
5
1. Introduction A family tree generator or a family tree builder (FTB) is genealogy software that creates family trees. A family tree generator keeps a track of the ancestral hierarchy of the user’s family. The software would generate a family tree that assists family historians in tracking, organizing, and sharing the family history. The software is based on Java programming language, the interfaces are built to be user friendly and simple in nature yet provide with valuable information regarding the user’s family history. It is possible to view three generations at a time. User can save his/her family tree that can be viewed, edited or updated later. So, the user can take his time to build the family tree with all the details leisurely. It is also possible to add not just the basic details like First Name, Last Name, Married Surname, and Gender but also detailed description of that family member- his qualification, interests, current profile, achievements, traits, etc can also be written in the paragraph section. This section provides the user to add as much as details of the person possible. It is exceptionally rewarding to be able to trace your ancestral roots. Through discovering your roots you become aware of who you are as a person. The Java Development Kit (JDK) is an Oracle Corporation product aimed at Java developers. Since the introduction of Java, it has been by far the most widely used Java Software Development Kit (SDK ). The JDK has as its primary components a collection of programming tools, including:
appletviewer – this tool can be used to run and debug Java applets without a web browser apt – the annotation-processing tool[2] extcheck – a utility which can detect JAR-file conflicts idlj – the IDL-to-Java compiler. This utility generates Java bindings from a given Java IDL file. java – the loader for Java applications. This tool is an interpreter and can interpret the class files generated by the javaccompiler. Now a single launcher is used for both development and deployment. The old deployment launcher, jre, no longercomes with Sun JDK, and instead it has been replaced by this new java loader. javac – the Java compiler , which converts source code into Java bytecode javadoc – the documentation generator, which automatically generates documentation from source code comments jar – the archiver, which packages related class libraries into a single JAR file. This tool also helps manage JAR files. javah – the C header and stub generator, used to write native methods javap – the class file disassembler javaws – the Java Web Start launcher for JNLP applications JConsole – Java Monitoring and Management Console jdb – the debugger jhat – Java Heap Analysis Tool (experimental) jinfo – This utility gets configuration information from a running Java process or crash dump. (experimental)
6
jmap – This utility outputs the memory map for Java and can print shared object memory maps or heap memory details of a given process or core dump. (experimental) jps – Java Virtual Machine Process Status Tool lists the instrumented HotSpot Java Virtual Machines (JVMs) on the target system. (experimental) jrunscript – Java command-line script shell. jstack – utility which prints Java stack traces of Java threads (experimental) jstat – Java Virtual Machine statistics monitoring tool (experimental) jstatd – jstat daemon (experimental) keytool – tool for manipulating the keystore pack200 – JAR compression tool policytool – the policy creation and management tool, which can determine policy for a Java runtime, specifying which permissions are available for code from various sources VisualVM – visual tool integrating several command-line JDK tools and lightweight[clarification needed ] performance and memory profiling capabilities wsimport – generates portable JAX-WS artifacts for invoking a web service. xjc – Part of the Java API for XML Binding (JAXB) API. It accepts an XML schema and generates Java classes.
7
2. Literature Survey A family tree, or pedigree chart, doesn't represent family relationships in a conventional tree structure. The more detailed family trees used in medicine and social work are known as genograms. Genealogy software is computer software used to record, organize, and publish genealogical data. Features
At a minimum, genealogy software collects the date and place of an individual's birth, marriage, and death, and stores the relationships of individuals to their parents, spouses, and children. Some programs are more flexible than others in allowing for the input of children born out of wedlock or for varying types of spousal relationships. Additionally, most genealogy programs handle additional events in an individual's life, notes, photographs and multimedia, and source citations. Genealogy software programs can produce a variety of graphical charts and text reports, such as pedigree charts, ahnentafel reports, and Register reports. Some desktop applications generate HTML pages for web publishing; there are stand-alone web applications, as well. Most genealogy programs can import and export using the GEDCOM standard. Some programs include additional fields relevant to particular religions. Others focus on certain geographical regions. For example, having a field for the family's coat of arms is only relevant if the family comes from a part of the world that uses them. While most programs and applications are desktop-based, there are a number of web-based products in the genealogy software market. Many genealogy applications focus on data management in that they allow users to manage all the information they collect on individuals, families, and events. Other tools available to the genealogist include research management tools, mapping tools, charting programs, and web-publishing programs. Sharing
Most genealogy software allows export of data in GEDCOM format, which can then be shared with people using different genealogy software. Some genealogy applications use GEDCOM internally and therefore work directly with GEDCOM data. Certain programs allow the user to restrict what information is shared, usually by removing information about living people for privacy reasons. Abstract Window Toolkit (AWT) A generic Abstract Window Toolkit (AWT) container object is a component that can contain other AWT components. Components added to a container are tracked in a list. The order of the list will define the components' front-to-back stacking order within the container. If no index is specified when adding a component to a container, it will be added to the end of the list (and hence to the bottom of the stacking order).
Class Container
8
java.lang.Object java.awt.Component java.awt.Container All Implemented Interfaces: ImageObserver , MenuContainer , Serializable Direct Known Subclasses: BasicSplitPaneDivider , CellRendererPane, DefaultTreeCellEditor.EditorContainer , JCompo nent, Panel, ScrollPane, Window Swing: User Interfaces in Java
Java has a fairly rich framework for creating user interfaces "out of the box". That framework is called Swing. Before learning Swing, it's worth making sure that you really understand the following: •
• •
the basic concepts of object-oriented programming (e.g. the notion of classes, object creation, inheritance); basic Java syntax: how to call methods, how to create loops etc; interfaces, in the programming sense.
Essentially, because the Swing framework is highly object-oriented. It contains various classes that extend one another, and the notion of extending a base class to add required functionality to that class is key to user interface programming in Java (and indeed in other languages). Another key part of Swing programming is the notion of listeners: classes or components that "listen out for" a particular event happening such as a button being clicked. And listeners are generally implemented as Java interfaces (in the programming sense), so they're also an important notion to understand. In any GUI-based program, a lot of the functionality comes from responding to events: mouse clicks, button clicks, key presses etc. So the first challenge with GUI programming is often turning the program flow that we have in our head into an event-based flow. The basic idea of an event-based approach is that: • •
• • •
most of the time, our program does nothing; the "system" will call routines that we have written when "interesting things" happen (mouse clicks etc). add a button to our window; wait for the user to click the button; when the user clicks a button, pop up a message.
9
3. Requirement Specification GENERAL DESCRIPTION
1. Product perspective: - the software “family tree “enables the user to build his/her family tree. 2. Product features : -the product is so designed so that it can fulfill the following requirements a) Add details like name, birth surname, married surname and gender. b) Adding personal and random details like qualification, interests, current profile, achievements, traits, etc c) Adding father, mother, spouse and children options d) Saving the generated family tree. 3. General constraints:Software –Java JDK Language used Java Disk Space Requirements for JDK JDK
Req.
Development Tools, including Java FX SDK 245 MB Source Code
27 MB
Public Java Runtime Environment
124 MB
And 32 bit platform- Pentium 2 266 MHz processor. 4. Specific function:a) Functional requirement:i. Functional requirement number 1:1) Introduction:-the add feature of family tree is to add a new family member in the family tree with his details- First name, birth surname, married surname, gender , etc. 2) Input, processing, outputs:-when the user uses the add functionality of the software family tree generator he/she will be able to enter the family member in the family tree. The details in the family tree include first name, birth surname, married surname, gender. By using the text boxes in the software the user will be able to save the inserted the details. ii. Functional requirement number 2:1) Introduction:- to be able to add personal details of a family member other than first name, birth surname, married surname, gender.
10
2) Input, processing, outputs: - when the user uses the add functionality of the software family tree he/she will be able to add personal and random details like qualification, interests, current profile, achievements, traits, etc. by using the paragraph field. iii. Functional requirement number 3:1) Introduction:- to be able to add father, mother, spouse and children to a family member 2) Input, processing, outputs: - by using the add father, add mother, add spouse, add child functionalities of the software the user will be able to add father, mother, spouse and children to a family member. iv.
Functional requirement number 4:1) Introduction:-to be able to save the family tree so generated by the user, or open an existing family tree to edit or update it. 2) Input, processing, outputs:- by using save option in the menu and the open option the user will be able to save, edit or update the family tree so created.
b) Performance requirement The performance of our product is at its best when it is working offline, as the response time will be much faster. If the product is accessed via internet, the performance is limited by the connection speed. The only unforeseen limitation is that of web server response. c) Design constraints The software address book undergoes through various framework activities: Communication Planning Modeling Construction Deployment
d) Testing The software will be tested module by module. Each module is integrated and system testing is performed. The software product will be tested for all functionalities.
e) External interface requirement User interface:-the input from the user will be through keyboard or mouse click. The user will navigate from the software by clicking on icons. The icon will give appropriate response to the input. Hardware:-RAM (2GB) Software: - Java JDK
11
Use case diagram: -
Edit current person Add Father
Add Mother
Add Spouse
Add Child
Open existing family tree Make new family tree
12
4. Architectural Design Functional Description
A family tree generator generates a family tree using Graphic User Interface (GUI). To edit any detail the edit mode needs to be selected, and then edit current person option should be clicked. Its takes details of the family members•
•
first name, birth surname,
•
married surname,
•
gender, etc.
Any other miscellaneous detail related to the person can be added in the ‘paragraph’ section. To add a new member related to the ‘current person’, following options are available•
Add Father
•
Add Mother
•
Add Spouse
•
Add Child
A hierarchical family is shown using 3 panels- that means 3 generations can be seen at a time.
13
Functional Block Diagram
SELECT MODE SELECTION BLOCK EDIT
Create new family tree
Edit current person
VIEW
Open an existing family tree
Add Father
Add Mother
Create new tree
Open an existing family tree
Add Spouse
Add Child
MDI
Enter details viz. First name, gender, birth surname, paragraph, etc.
UPDATE
SAVE
EXIT
EXIT BLOCK
14
Functional Partitions
Module Name: 1. SELECTION BLOCK
Functional Block Diagram
Module Dependencies: Input Dependencies: Actionlistener; view is the default mode. • •
Output Dependencies: Swing class to disable or enable the buttons/panel when view or edit mode is selected respectively.
2. EXIT BLOCK
Functional Block Diagram
EXIT
Module Dependencies: Input Dependencies: Actionlistener, click event • •
Output Dependencies: NA
3. MDI
Functional Block Diagram
15
Module Dependencies: Input Dependencies: java.lang.String- to add mother/father/spouse/child, details • entered by the user •
Output Dependencies: class FamilyMember to get all the details entered by the user Data structures and types used
•
Array
•
Int
•
String
•
Boolean
16
Data Description
Data Flow Diagram
Edit/view
Create new family tree Select mode
Open file Edit/view Edit
Open existing tree Edit/view
Edi
Edit Details
Edit
Save/update Edit/view
Exit
17
Flow Chart
Start
Select mode
Edit
Vie
Create Create
Create/ open family tree
Ope
Create/ open family tree
Not found found
View family tree
Enter file name
Ope Not found Enter file name
found
Edit details
View family tree
Update/Save
Stop 18
User Interface Design
User Interface
-File
Mode
Help
Edit Current
Add Father
Add Mother
Add Child
On editing the Current Person
19
Module Description
Module Name: •
Selection Module & GUI
•
Family Member
•
Family Member List
Class Name:
1. FamilyMember- Provide definition of FamilyMember class. 2. FamilyMemberGUI- To demonstrate a family tree using a GUI 3. FamilyMemeberList- Provide definition of FamilyMember class to handle family member arrays.
Class Functions, declaration & returns value
1. Class FamilyMembergetFirstName
public java.lang.String getFirstName () Gets the first name Returns: a String specifying the first name getBirthSurname
public java.lang.String getBirthSurname() Gets the surname at birth Returns: a String specifying the surname at birth getMarriedSurname
public java.lang.String getMarriedSurname () Gets the married surname Returns: a String specifying the married surname getGender
public boolean getGender() Gets the gender Returns: a boolean specifying the gender getParagraph
public java.lang.String getParagraph () 20
Gets the short paragraph Returns: a String specifying the short paragraph about family member setFirstName
public void setFirstName (java.lang.String firstNm) Sets the first name Parameters: firstNm - the first name setBirthSurname
public void setBirthSurname(java.lang.String birthNm) Sets the surname at birth Parameters: birthNm - the surname at birth setMarriedSurname
public void setMarriedSurname (java.lang.String marriedNm) Sets the married surname Parameters: marriedNm - the married surname setGender
public void setGender (boolean fe) Sets the gender (true - if person is a female, false - if person is a male) setParagraph
public void setParagraph (java.lang.String para) Sets the short paragraph Parameters: para - the short paragraph about a family member addSpouse
public void addSpouse (FamilyMember sp) Add a spouse to the family member Parameters: sp - a family member addFather
public void addFather (FamilyMember fa) Add a father to the family member Parameters: fa - a family member addMother
public void addMother (FamilyMember mo) Add a mother to the family member Parameters: mo - a family member getSpouseFirstName
public java.lang.String getSpouseFirstName () Get the first name of the spouse if the spouse exists Returns: the first name of the spouse otherwise an empty string getSpouseBirthName
public java.lang.String getSpouseBirthName () 21
Get the birth surname of the spouse if the spouse exists Returns: the spouse birth surname otherwise an empty string getFatherFirstName
public java.lang.String getFatherFirstName () Get the first name of the father if the father exists Returns: the father first name otherwise an empty string getMotherFirstName
public java.lang.String getMotherFirstName () Get the first name of the mother if the mother exists Returns: the mother first name otherwise an empty string addChild
public void addChild(FamilyMember c) Add a child to the family member Parameters: c - a family member getFullName
public java.lang.String getFullName() Get the full name of the family member Returns: first name and birth surname if married surname's length
View more...
Comments