Project Report on Family Tree Generator in JAVA

Share Embed Donate


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

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF