GENERATOR (FTGen)

NORYASMIN B1NTI AHMAD KHASHIRI

A report submitted in partial fulfilment of the requirements for the award of the degree of Bachelor of Computer Science (Software Engineering)

Faculty of Computer Systems & Software Engineering Universiti Malaysia Pahang

APRIL, 2010 Y

ABSTRACT

This thesis explained about the" family tree and family tree generator. In managing a family or create and generate a family, it is very difficult to manage by individual if still using the traditional way. In the era of technology, recently most of the data is display in digital content. Few years ago, the family tree was created manually. This need more time and cost because needed to draw and write on a large paper if there are big family and might be only the name and picture can put at that paper. Recently, everything come easy, fast and save cost. In digital format, family members data can be edit and manipulate easily. In this thesis, a model of system for genrating family tree called Family Tree Generator (FTGen) are disscussed and developed. This system is used to replace the traditional operations since it can improve and enhances the workflow in managing a family. Suitable software development process models were used in order to produce efficient and effective end product which based on researched result. The analisys comprises of studied on methodologies, tools, requirements and case study. At the end, there will be a computerized family tree system which follows the requirement specification and operates as expectations developed. vi

ABSTRAK

Tesis mi menjelaskan tentang salasilah keluarga dan penjana salasilah keluarga. Dàlam menguruskan keluarga atau membuat dan menghasilkan salasilah keluarga, sangat sulit untuk dikendalikan oleh individu jika masih menggunakan cara tradisionaL Dalam era teknologi kebanyakan data dipapar secara digital. Beberapa tahun yang lalu, salasilah keluarga dibina secara manual. mi memerlukan lebih waktu dan kos kerana perlu melukis dan menulis di atas kertas besar jika ada keluarga besar dan mungkin hanya nama dan gambar sahaja boleh diletakkan pada kertas itu. Sekarang, semuanya dapat dilakukan dengan mudah, cepat dan menjimatkan kos. Dalam format digital, data-data ahli keluarga boleh diubah dan dimanipulasi. Dalam tesis mi, model sistem untuk menjana salasilah keluarga dikenali sebagai 'Family Tree Generator' (FTGen) dibincang dan dibangunkan. Sistem mi digunakan untuk menggantikan operasi tradisional kerana dapat memperbaiki dan meningkatkan alur kerja dalam menguruskan keluarga. Berpadanan model proses pembangunan perisian yang digunakan untuk menghasilkan produk akhir yang cekap dan berkesan berdasarkan hasil kajian. Analisis terdiri daripada metodologi, keperluan peralatan dan kajian kes. Akhirnya, satu sistem penjana salasilah keluarga berkomputer yang mengikut spesifikasi keperluan dan beroperasi seperti yang diharapkan. vii

TABLE OF CONTENTS

CHAPTER TITLE PAGE

ABSTRACT V

ABSTRAK A

TABLE OF CONTENTS VII

LIST OF TABLES x

LIST OF FIGURES xi

INTRODUCTION 1

1.1 Introduction 1 1.2 Problem Statement 2 1.3 Purpose Solution 3 1.4 Objectives 3 1.5 Scopes 4 1.6 Thesis organization 4

2 LITERATURE REVIEW 6

2.1 Introduction 6 2.2 Definition of Family Tree 7 2.2.1 Family Tree Generator 8 2.2.2 Abnentafel, History of Family Tree Roots 9 2.3 Existing System 10 2.3.1 GenePro 10 2.3.2 2009 11 2.4 Development Methodology 11 viii

2.5.1 Adove Dreamweaver 22 2.5.2 Microsoft Expression Web 22 2.5.3 Adobe Flash 23

2.5.4 Microsoft Visual Studio.Net 2008 23 2.6 Database 24 2.6.1 MySQL 5.0 24 2.6.2 Microsoft SQL Server 2005 24 2.7 Scripting Language 25 2.7.1 VBScript 25 2.7.2 JavaScript 26 2.7.3 JScript 27 2.7.4 Hyper Text Markup Language 27

2.7.5 Action Script 3.0 27

3 METHODOLOGY 30

3.1 Introduction 30 3.2 Discussion on Choosen Methodology 30 3.2.1 Feasibility Phase 32 3.2.2 Analysis Phase 32 3.2.3 Design Phase 33 3.2.4 System Design 33

3.2.5 Implementation Phase 43 3.2.6 Testing Phase 43 3.2.7 Maintenance Phase 43 3.3 Project Requirement 44

4 IMPLEMENTATION 46

4.1 Introduction 46 4.2 Result of Family Tree Generator 46 ix

4.2.1 Database Construction 47 4.2.2 Database connector 49 4.2.3 FTGen Database Table 50 4.3 System Interface 51 4.4 The Testing 58

5 RESULT AND DISCUSSION 59

5.1 Introduction 59 5.2 Analysis of Result. 5.3 Project Constraint 62 5.3 System Constraint 62 5.4 Suggestion and Improvement 63

6 CONCLUSION 64

6.1 Summary 64

REFERENCES 66

APPENDICES A-F 69 x

LIST OF TABLES

TABLE NO. TITLE PAGE

3.1 Data dictionary for register 41 3.2 Data dictionary foi news 42 3.3 Data dictionary for login 42 3.4 Data dictionary for tree 42

3.5 Hardware Requirements 44 3.6 Software Requirements 45 xi

LIST OF FIGURES

FIGURE NO. TITLE PAGE

2.1 Display complex families with multiple spouses 10 2.2 Family Tree Maker Pack/ 11 2.3 Software Development Life Cycle 15 2.4 The Waterfall Model 16 2.5 V Model 17 2.6 The Serum Model 19 2.7 The Spiral Model 20 2.8 TheRADModel 21 3.1 Flowchart of FTGen 34 3.2 Use case diagram Family Tree Generator (FTGen) System 36 3.3 Sequence diagram for registration 37 3.4 Sequence diagram for login 38

3.5 Sequence diagram for create family tree 38 3.6 Sequence diagram for fill the required information with viewing the family tree diagram 39 3.7 ER Diagram of FTGen 40 4.1 SQL query for register table 47 4.2 SQL query for news table 48 4.3 SQL query for login table 48 4.4 SQL query for contactus table 49

4.5 Source code connected 49 4.6 Register table 50 XII

4.10 Login page of FTGen 51

4.11 Register page of FTGen 52

4.12 Home page of FTGen 53

4.13 Profile page of FTGen 53 4.14 Update profile page of FTGen 54

4.15 Create Tree Page of FTGen 55

4.16 Admin Home Page of FTGen 55

4.17 Update news Page of FTGen 56 4.18 List of User Page of FTGen 57 4.19 View User's Detail Page of FTGen 57 5.1 Result of Family Tree 60 5.2 Coding of the result 61 5.3 Coding of the fetching usemame in the array 62 I

CHAPTER 1

INTRODUCTION

1.1 Introduction

Family tree is a genealogical data can be represented in several formats, for example as a pedigree or ancestor chart. Family trees are often presented with the oldest generations at the top and the newer generations at the bottom. An ancestry chart, which a tree is showing the ancestors of an individual, will more closely resemble a tree in shape, being wider at the top than the bottom. In some ancestry charts, an individual appears on the left and his or her ancestors appear to the right. A descendancy chart, which depicts all the descendants of an individual, will be narrowest at the top.

Recently family tree was generating in the digital content. Everything builds in one system. Past years ago, people still create the family tree by creating a chart. It need more time because of creating on a paper and cost because they need a large of paper if there is a big family and might be only the name and picture only can put at that paper. But times change, technologies also change. Everything come easy, fast and save cost. 2

No need paper, no need to worry if there have one or more members forgot to put in the family tree data members and no more waste time. Thus, the Family Tree Generator (FTGen) which the systems that will be develop will enhance the current related systems. This future system will have auto generate function to generate the family free, and view the family tree and other user's family tree.

1.2 Problem Statement

The need of Family Tree Generator (FTGen) comes up to overcome the problems that are faced by people who want to create and generate their family tree by manual or improvement from current system that related to the FTGen such as:

i) Need to collect all the data in one time before built the tree ii) Only one person can create the family tree iii) Once the family free has created, no one can change. If they want to change all the tree must change iv) Limited information or data can put in the family tree

3

1.3 Purpose Solution

Based on the problem statement, solutions were made up and design throughout this document. Family Tree Generator (FTGen), will be designs to make easy for people to use it and minimize the difficulties in build the family tree.

FTGen also will enhance with a recommender system that provide the family tree generator in the internet. The user can view other user's family tree that related to them.

1.4 Objective

The objectives of Family Tree Generator(FTGen) are to:

i. Solve the problem for the big family in managing the family members ii. Develop and auto generate the family tree diagram iii. User can view other user's family tree that related to them

4

1.5 Scope

The scopes of this project are:

i. FTGen store family members data; name, father's name, mothers name, phone number, email address, address, status and picture ii. FTGen should be able to: a. view details of each members b. view related family tree to him/her iii. The FTGen might be use for organization for manage the members data; name, phone number, address, email address, status and picture

1.6 Thesis Organization

This thesis organized into six main chapters which consist of Chapter l(Introduction), Chapter 2(Literature Review), Chapter 3(Methodology), Chapter 4(Implementation), Chapter 5(Result and Discussion) and Chapter 6(Conclusion).

Chapter 1 explains about the project background of the system, and identifies the current system problems. The objective and scopes were draft in order to develop a new system which more function and interactive.

In Chapter 2 the background information of the system that related to development of the project is studied and discussed. Review on current examples of family tree generator. 5

Methodology is in Chapter3 which discuss the method that used throughout the project and defined as a guideline in development of the system. During development and implementation of the system, some phases take into consideration such as project planning and requirement analysis, system design, implementation and testing.

The Chapter 4 documented every process involved during the development of the project. Generally, it explains the development of the developed project and give a details on the data dictionary of the database in the system.

In the Chapter 5, the result and discussion are presented in well manner, besides that, it shows the output of the new system after the implementation. The strength and limitations of the system are discussed as well as with the further research technique to enhance the system.

Finally, Chapter 6 explains about the conclusion of the Family Tree Generator(FTGen) development and its future expectations. CHAPTER 2

/ LITERATURE REVIEW.

2.1 Introduction

This section is evaluative report of information found in the literature related to this system. It will include description of Family Tree and Family Tree Generator, explanation about the system which includes recommender system that was implemented and study of the current system related to Family Tree Generators. This section will also include the technology approach, tools and methodology chosen to develop the system. I

2.2 Defmition of Family Tree

Family tree is a genealogical diagram of a family's ancestry or the ancestors and descendants of a family considered as a group. Genealogical data can be represented in several formats, for example as a pedigree or ancestor chart. Family trees are often presented with the oldest generations at the top and the newer generations at the bottom. An ancestry chart, which is a tree showing the ancestors of an individual, will more closely resemble a tree in shape, being wider at the top than the bottom. / Family trees can have many themes. One might encompass all descendants of a single figure, or all known ancestors of a living person. Another might include all members of a particular surname. Yet another approach is to construct a tree including all holders of a certain office, such as kings of Germany. This relies on dynastic marriage to hold together the links between dynasties.

The longest family tree in the world today is that of the Chinese philosopher and educator Confucius. The tree spans more than 80 generations, and includes more than 2 million members. An international effort involving more than 450 branches around the world was started in 1998 to retrace and revise this family tree. The latest findings will be published in 2009 by the Confucius Compilation Committee to coincide with the 2560th anniversary of the birth of the Chinese thinker. This latest edition is expected to include some 1.3 million living members who are scattered around the world today. 2.2.1 Family Tree Generator

Everybody have family, but the size of family depending on how many members of the family, in order to manage a family neither small nor big, we must have a systematic system. Instead of that, one system like family tree generator was created. The generator is like a creator. The input will generate the output. In the term of family tree, we insert the input, which is the family data, then, the data will save in the database and the output is the tree of the family. / Family tree generator is computer software used to record, organize, and publish genealogical data. At a minimum, 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. Additionally, most genealogy programs handle additional events in an individual's life, free-form notes, and photographs and other multimedia, and source citations. Genealogy software programs can produce a variety of graphical charts and text reports, such as pedigree charts, ahnentafel reports, or 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.

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.

Most genealogy software will allow for the export of data in the GEDCOM format[l], which can then be shared with people using different genealogy software. Some genealogy applications (for example GEDitCOM for Macintosh and for Windows) use GEDCOM internally and therefore work directly on GEDCOM data. Certain programs allow the user to restrict what information is shared, usually by removing information about living people for privacy purposes.

2.2.2 Ahnentafel, History of Family Tree Roots

An Ahnentafel (German for ancestor table) or Ahnenreihe (ancestor series) is a genealogical numbering system that allows one to list a person's ancestors in a particular order. It is also known as: the Eytzinger Method, for Michael Eytzinger, the Austrian historian who first published the principles of the system in 1590

Ahnentafel is a construct used in genealogy to display a person's ancestry compactly, without the need for a diagram such as a family tree, which is particularly useful in situations where one may be restricted to using plain text, for example in e- mails or newsgroup articles. This term Ahnentafel is a loan word from the German language, and its German equivalents are Ahnenreihe above and Ahnenliste. In German, Ahnentafel can also mean a genealogical chart or diagram showing the ancestors of one person in the form of a binary tree, or family tree. An Ahnentafel chart may also be called a Kekulé after Stephan Kekulé von Stradonitz.

An Ahnentafel is effectively a method for storing a binary tree in an array by listing the nodes (individuals) in level-order (in generation-order). The subject of the Ahnentafel is listed as #1, their father as #2 and their mother as #3, then their grandparents as #4 to #7, and so on back through the generations. In this scheme, any person's father has double that person's number, and a person's mother has double the person's number plus one. Apart from #1, who can be male or female, all even- numbered persons are male, and all odd-numbered persons are female. Using this knowledge, one can find out some things without having to compile a list. 'U

2.3 Existing System

2.3.1 GenePro

GenoPro is genealogy software for drawing family trees. The software can display a complete graphical representation of your genealogy tree [3]. With GenoPro, you can see both ancestor and descendants at once; you are not limited to either direct descendants or direct ancestors charts. Among all the family tree software, GenoPro is the easiest to learn and to use but, we must download the software before we can use it. If you are a beginner to genealogy, you can learn to use GenoPro and create your family pedigree in a few minutes without needing to consult the online help.

I ULJkJ 51, 884 Few urn PW6Y lode 93dm. 90 - IP± .LijiP; •

Lisas First Lisa Husband 1 Lisa's First Marnage I UOU D 1975 1978G 1 Max Nicole Andrd Hélène -Rebea j Mdres srnamage adoptive parents1 I Mdres first marriage

19fl------1970 ---1971-- 1974— ------1983------

Maxime John Cathy Mary - Mike - 4 I ------.---.---. ---a------.----.2005 -----.-- - -1 ----r------Eliot:

&DOeIiJJ . . LJ - -•------=-=-____ --=NO NO ______NO W > 90 * .+ 4.- 4

Figure 2.1 : Display complex families with multiple spouses. I

2.3.2 Family Tree Maker 2009

Actually the Family Tree Maker 2009 is family tree creator, it help us to create family tree and the end of the result is a family history that yu and your family will treasure for years to come. The ability to add photos and audio and video files to your tree[4]. It not really focus on save data of the family members. The application must buy before used.

/ Family Tree Q Mãkere

N4

Figure 2.2: Family Tree Maker Pack

2.4 Development Methodology

Software engineering is the practice of using selected process techniques to improve the quality of a software development effort. In software engineering, development methodology is a framework that is used to structure, plan, and control the process of developing an information system. This framework consists of multiple tools, models and methods which assist system devethpment. 12

2.4.1 Software Development Life Cycle

The Software Development Life Cycle (SDLC) in software engineering; Figure 2.3 show the SDLC phase and it flow, is the process of creating or altering systems, and the models and methodologies that people use to develop these systems. In software engineering the SDLC concept underpins many kinds of software development methodologies[5]. These methodologies form the framework for planning and controlling the creation of an information system or the software development process. In general, the phrases involved in SDLC are Feasibility/Planning, Analysis, Design, Implementation and Maintenance. Each of these phases is connected in a cycle form starting from Feasibility phases and ends at Maintenance phases.

2.4.1.1 Feasibility

At this stage, the goals of the project are determined. The feasibility study is used to determine if the project should get the go-ahead. If the project is to proceed, the feasibility study will produce a project plan and budget estimates for the future stages of development. 13

2.4.1.2 Requirement Analysis

At this step, analysis gathers the requirements for the system. It will analyze project goals, break down functions that need to be created, and attempt to engage users so that definite requirements can be defined. Requirement gathering sometimes require individual from client as well as service provider side to get a detailed and accurate requirements.

2.4.13 Des'gn

Design focuses on high level design like, what programs are needed and how are they going to interact, low-level design, interface design and data design. During these phases, the software's overall structure is defined. Analysis and Design are very crucial in the whole development cycle. Any glitch in the design phase could be very expensive to solve in the later stage of the software development. Much care is taken during this phase. The logical system of the product is developed in this phase.

2.4.1.4 Implementation

In this phase the designs are translated into code. Computer programs are written using a conventional programming language or an application generator. Programming tools like Compilers, Interpreters, Debuggers are used to generate the code. Different 14 high level programming languages like C, C++, Pascal, Java are used for coding. With respect to the type of application, the right programming language is chosen.

2.4.1.5 Testing

In this phase the system is tested. Normally programs are written as a series of individual modules, these subject to separate and detailed test. The system is then tested as a whole. The separate modules are brought together and tested as a complete system. The system is tested to ensure that interfaces between modules work (integration testing), the system works on the intended platform and with the expected volume of data (volume testing) and that the system does what the user requires (acceptance/beta testing).

2.4.1.6 Maintenance

Maintaining the system is an important aspect of SDLC. Software will definitely undergo change once it is delivered to the customer. There are many reasons for the change. Change could happen because of some unexpected input values into the system. In addition, the changes in the system could directly affect the software operations. The software should be developed to accommodate changes that could happen during the post implementation period. 15

Feasibility

Maintenance Analysis I L I

I Imolementation Design

/ Figure 23: Software Development Life Cycle

2.4.2 Types of Software Development Life Cycle (SDLC)

There are few different types of Software Development Life Cycle (SDLC) model. In this section, explanation about the types of Software Development Life Cycle model will be discussed.

2.4.2.1 Waterfall Model

The waterfall model contains 5 stages that flow from one to the next in order. As with a real waterfall, the progression from stage to stage is one-way only, and a stage, once completed, is not revisited. The waterfall model provides a structured approach; the