Professional Documents
Culture Documents
ABECS Proposal
ABECS Proposal
By
August 2016
Approval
The Project is our own and has not been presented for a degree in any other university with this
functionality and all the sources of material used for the project/thesis have been duly acknowledged.
Name signature
I
2. Jemal Julla ……………………………………………………
3. Kasayanesh Demie ……………………………………………………
4. Tsegaye Tamiru ……………………………………………………
5. Habtamua Yeshidagna ……………………………………………………
This is to certify that I have read this project and that in my opinion it is fully adequate, in scope and
quality, as a project for the degree of Bachelor of Science.
…………………………… ……………………………………….
Acknowledgement
First of all, we would like to thank our God, who gives us love, patience, healthy, wisdom and ability to
walk through all the problems and obstacles during the period of our study. Then we would like to thank
our advisor instructor Henok Ephrem. for their constrictive opinion and willingness to participate in
each part of our project and their effective direction, assistance and guidance for the accomplishing of
Abstract
This is the document of the project for developing an Android Based Ethiopian Calendar System. It
consists of the current back ground of the calendar calculation and problems having due to present
system and how we are going to overcome those matters through our proposal system.
After gathering requirement, we have found that almost all Ethiopian people are using a manual file
based system for calendar calculation except those, who have PC (Personal computer) or some other
who use smart phone. However, the smart phone users do not use the full Ethiopian calendar because
In the system android applications is developed. The application takes most of the activities such as
offline calendar calculation and memorization. The Android Based Ethiopian Calendar System have an
unbelievable capacity to calculate the largest and largest years of fasting and holidays. It can calculate
the calendar of billions of billions years. We called it The Eternal Calendar System based it’s
characteristic.
Key words
Amete Alem Wenber Elete Tebiban
Wengelawi Medeb Phagumie
Metkie Atsife Awurah Hitsets
Abektie Tewusak
VI
Table of Contents
Approval..................................................................................................................................................II
Acknowledgement..................................................................................................................................III
Abstract..................................................................................................................................................IV
Key words...................................................................................................................................................V
List of Acronym and Abbreviations.......................................................................................................VI
Chapter One.................................................................................................................................................1
1.1. Introduction.....................................................................................................................................1
1.2. Background of the Project...........................................................................................................1
1.3. Problem statement.......................................................................................................................1
1.4. Team Composition.......................................................................................................................2
1.5. Objectives of the project..............................................................................................................3
General objective...................................................................................................................................3
Specific objective...................................................................................................................................3
1.6. Scope and Limitation...................................................................................................................3
1.6.1. Scope...................................................................................................................................3
1.6.2. Limitation............................................................................................................................4
1.7. Significance of the project...........................................................................................................4
1.8. Beneficiaries of the project..........................................................................................................4
1.9. Methodologies.............................................................................................................................5
1.10. System analysis and design......................................................................................................5
1.11. Development Tools..................................................................................................................6
Programming language........................................................................................................................6
Additional tools...................................................................................................................................6
Tools used...............................................................................................................................................6
Software tools......................................................................................................................................6
Hardware Tools...................................................................................................................................6
Testing procedures...................................................................................................................................7
1.14 Implementation................................................................................................................................7
1.15 Risks & contingencies.....................................................................................................................7
1.12. Project Plan..............................................................................................................................8
1.13. Team role and responsibilities..............................................................................................8
Page IX of LXXXII
6.3 Hardware Software Acquisition.......................................................................................................58
6.4 User Manual Preparation.................................................................................................................58
6.4.1 The manual for Ethical application....................................................................................58
6.5 Training...........................................................................................................................................61
6.6 Installation Process..........................................................................................................................62
6.8 Coding...........................................................................................................................................62
Android - XML...................................................................................................................................62
Android-Java code............................................................................................................................66
Chapter Seven: Conclusion and Recommendation...............................................................................68
7.1 Conclusion.......................................................................................................................................68
7.2 Recommendation.............................................................................................................................68
Appendix...............................................................................................................................................69
Reference..............................................................................................................................................70
Conclusion.................................................................................................................................................71
Reference...................................................................................................................................................72
Page X of LXXXII
List of Tables
Table 1.1.1 Team composition....................................................................................................................2
Table 1.1.2 Project time line........................................................................................................................8
Table 2.1 Tewusak of days.........................................................................................................................12
Table 2.2 Tewusak of fasting and holidays................................................................................................13
Table 3.1 Scenario.....................................................................................................................................22
Table 3.2 use case description...................................................................................................................26
Table 4.1 Access control and security........................................................................................................49
Table 5.1 interface documentation guidelines..........................................................................................54
Page XI of LXXXII
List of Figures
Figure 1 Team role...........................................................................................................................8
Figure 2 General process of manual Calendar...............................................................................16
Figure 3 Calculate holidays use case.............................................................................................24
Figure 4 use case for Basic information of the year......................................................................25
Figure 5 Use case for Fixed holidays and fasting..........................................................................26
Figure 6Analytical class diagram..................................................................................................30
Figure 7 Sequence Diagram: Basic Information Sequence Diagram............................................31
Figure 8 Sequence Diagram: Fixed Holy and Fasting Days..........................................................31
Figure 9 Sequence Diagram: Holy Days and Fasting Date...........................................................32
Figure 10 Display basic information’s of the year activity diagram.............................................33
Figure 11 Display holy days and fasting days of activity diagram................................................34
Figure 12 Fixed holy days and fasting days’ activity diagram......................................................35
Figure 13 State chart diagram for View Holydays and Fasting.....................................................35
Figure 14 State chart diagram for Display Calendar.....................................................................36
Figure 15 State chart diagram for Display Holy Days and Fasting...............................................36
Figure 16 State chart diagram for Day of the Date........................................................................37
Figure 17 State chart diagram for Display Fixed Holydays and fasting........................................37
Figure 18 State chart diagram for Gregorian Date........................................................................38
Figure 19 User Interface................................................................................................................39
Figure 20 System Software architecture........................................................................................43
Figure 21 Subsystem decomposition.............................................................................................44
Figure 22 Hardware/Software mapping for ABEC.......................................................................47
Figure 23 Persistent data management..........................................................................................48
Figure 24 mapping for ABECS......................................................Error! Bookmark not defined.
Figure 25 Component diagram for ABECS...................................................................................51
Figure 26 Deployment Diagram for ABECS.................................................................................52
1.1. Introduction
Ethiopian has own calendar and the stream of this calendar was Ethiopian Orthodox Tewahido
church. The chronology of the calendar follows the Era of Incarnation that is it dates from our
Lord’s birth; there is a difference of 7 or 8 years between the western and Ethiopian systems.
Because the Ethiopian church holds that our Lord was born 5500 years after the creation of the
world this gives the 7 or 8 years’ difference between the Gregorian and Ethiopian Chronologies.
The church uses the spiritual firmament book called Ethical; It is used to get the Ethiopian
Orthodox Tewahido Church fasting dates & Holidays, basic information in calculating calendar
of the church, specific date in Ethiopian calendar, public holydays and constant holy and fasting
dates. This performs many types of calculations such as finding ametealem (year of creation),
wengelawi, metenerabiet, finding new year (meskerem1 or enkutatash), finding medeb and
wenber; finding abektie and metqi, finding bealemetqi and mebaja hamer. These calculation is
performed by using manually. Those calculation is very ambiguous and time consume.
As we mention above to get different types of fasting and holy days it requires deferent types of
calculation. This calculation must be performed by pops and priests.
Page 1 of 82
Because of the system is manually all of the work performed using pen and paper so this takes a
lot of time to do a calculation in a given period of time. For example, 1wenber is obtained by
subtracting 1 from 2Medeb and is useful for finding 3Metqi and 4Abektie which are used in
calculating fasting dates and holidays.
Inappropriate cost
As we mention the above all calculation performed by pen and paper. This lead the user to
inappropriate cost.
Page 2 of 82
1.5. Objectives of the project
General objective
The general objective is to developed Android Based Ethiopian Calendar mobile application that
is free from any repetitive work, error, confusion, complexity and to give accurate service within
a period of time.
Specific objective
Perform a requirement analysis to find out the system functional and nonfunctional
requirements.
Design the system using object-oriented models for understanding the system and to
make the implementation easy.
Design the proposed System using UML diagram.
Design a user Interface for the proposed system.
Implement the Android application using Eclipse (adt-bundle-windows-x86-20130729).
Test the proposed system using different testing mechanisms.
Page 3 of 82
The application will be developed only for android mobile user.
It does not calculate the Islamic calendar
The application work only in Ethiopian calendar.
The application does not initiate from the system date time.
Accurate and consistent information will be gain about fasting and holy day.
It will minimize inappropriate cost.
Minimize time consumption.
Minimize work load.
Improve self-decision making.
The developers
This project helps our team in developing a host of skills that are increasingly important in the
professional world positive group experiences, moreover, have been shown to contribute to us
learning about Ethiopian Orthodox Tewahido church fasting and holy day calendar. Like: -
Tackle more complex problems by ourselves.
Delegate roles and responsibilities.
Share diverse perspectives.
Pool knowledge and skills.
Hold one another (and be held) accountable.
Receive adviser and teachers support and encouragement to take risks.
Develop new approaches to resolving differences.
Page 4 of 82
Establish a shared identity with group members.
Improves our communication skill and team work.
Improve our knowledge in developing a system.
1.9. Methodologies
The methodology we will follow to gather information is by visiting the existing different books.
The methods that we are going to follow to collect data are as follows:
Interview: we will gather information about the Ethiopian orthodox Tewahido
church fasting and holy day calendar by interviewing different priests and deacons of
the Ethiopian orthodox Tewahido church.
Document analysis: we will try to see different type of Books like Abushaher,
Ethical, Bible, etc…
Maintainable: OOP methods make code more maintainable. Identifying the source of errors
becomes easier because objects are self-contained (encapsulation).
Reusable: Because objects contain both data and functions that act on data, objects can be
thought of as self-contained “boxes” (encapsulation). This feature makes it easy to reuse code in
new systems.
Scalable: OO applications are more scalable then their structured programming roots. As an
object’s interface provides a roadmap for reusing the object in new software, it also provides you
with all the information you need to replace the object without affecting other code. This makes
it easy to replace old and aging code with faster algorithms and newer technology. By this
reasons we choose OOP for the development of the system.
Page 5 of 82
Additional tools
Emulator
Microsoft office word 2016
Adobe Photoshop CS6
Blue stacks application player
Tools used
Software tools
Microsoft office word: - It is very useful because it takes less time to write and format the text,
communicative effectively smart diagram and chart tools, quickly assemble document. By
looking its useful properties, we use Microsoft office word to type our project work to get all the
above benefits of it.
Power point: -use to present the document in abstract forms. We use it to present our
presentation in short and brief way.
E-draw Max application for UML diagrams (for use case diagram, sequence diagram, class
diagram, Activity diagram, State chart diagram, component and deployment diagram).
Hardware Tools
Computer: -computer is a machine capable of doing many things. We use it to type on it and
install all software and programming language. Almost all tasks are done on computer.
Android based devices: - like smart phones and personal digital assistance, emulator, Blue stacks
to test the software we will develop.
Flash Disk and CD Hardware: - used for the movement of data from one machine to another.
We use both of them when we move our data from one machine to another.
Page 6 of 82
Testing procedures
1.14 Implementation
Prototype is divided into one phase: interface implementation, and logical implementation. In
interface implementation, we have tried to implement user- interface
Page 7 of 82
Health problem: One of our group member might sick and we can’t cover his/her
responsibility.
Page 8 of 82
2.1.1. Overview
The Ethiopian Orthodox Tewahido church has its own calendar to perform the following
activity:
The following calculation is performed before to determine different type of fasting and holy
days.
1, then it is Mathewos.
2, then it is Markos .
3, then it is Lukas .
0, then it is Yohannes .
Page 9 of 82
To know the date the new year starts, add AmeteAlem(year of creation) and Metene Rabiet then
divide by 7.The remainder is given the name Tinte Qemer. Tinte Qemer is the first Tuesday at
which the numbers were begun.
If TinteQemer is: -
Note
Page 10 of 82
Multiplying Wenber by 11 and if the product is greater than 30, it is then divided by 30.The
remainder in the division is called Abekte.
Note that for products less than 30 the product itself is taken as the Abekte value.
Similarly Metqi is obtained by multiplying Wenber by 19 and taking the remainder of the
quotient in dividing the product by 30.If the product is less than 30 the product itself will be the
Metqi of the year.
Example:-In 2009 E.C,
(3*11)/30=1 with remainder 3.This implies Abektie=3.
(3*19)/57=1 with remainder 27.This implies Metqi=27.
Note
Always Metqi + Abektie=30
If Abektie is 0 Metqi is 30
Metqi is used to obtain fasting dates and holidays of the Ethiopian Orthodox Tewahido Church.
Beale Metqi is the date assigned by Metqi.
If Metqi is greater than 14, then Beale-Metqi is in Meskerem (from Meskerem 15-30)
If Metqi is less than 14, then Beale-Metqi is in Tikimt (from Tikimt 1-13)
NB: - Metqi cannot be 14. It cannot also be 1, 3, 6, 9, 11, 17, 20, 22, 25 and 28. There are only
19 numbers.
If Beale Metqi is in Saturday, the number of days between the next day of Beale Metqi and
Nineveh is 128. 128 divided by 30 gives remainder 8. This remainder is called Tewsak of the
Saturday (Tewsak of the day). Similarly, the Tewsaks of the week are shown in the following
table:
Page 11 of 82
Table 2.1 Tewusak of days
Sunday 127 7
Monday 126 6
Tuesday 125 5
Wednesda 124 4
y
Thursday 123 3
Friday 122 2
Saturday 128 8
Mebaja Hamer is obtained by adding Beale Metqi and Tewsak of the day of Beale Metqi. If the
result is greater than 30 as usual the remainder is taken.
Example:- In 2009 E.C,
we saw that Metqi is 27.This implies that Beale Metqi is Meskerem 27 Since Meskerem 27 is
Friday, Meskerem 1 is Sunday ,Meskerem 8 is Sunday, Meskerem 15 is Sunday, Meskerem 22 is
Sunday, Meskerem 29 is Monday and, Meskerem 27 is Friday (go back two days).
Mebaja Hamer=27 + Tewsak of Friday=27+2=29.
Finding holy days and fastings
To obtain Fasting dates, first it is necessary to get the date for Neneveh. Neneveh fasting date is
directly the Mebaja Hamer number. The month is obtained by the rules indicated above for Beale
Matqi. i.e.
Tewsak of fasting dates and holydays are the number of days from the next day of Neneveh up to
Page 12 of 82
the date of that fasting (entrance date) or holiday.
If it is greater than 30, it's divided by 30 and the remainder will be Tewsak
Example:-For Debre zeit, the number of days after Neneveh is 41,
41/30=1 with remainder 11.
Therefore, the Tewsak of Debre zeit is 11. Similarly, Tewsaks of the fasting dates and holidays
are shown below.
Table 2.2 Tewusak of fasting and holidays
Abiy Tsome 14
Debre zeit 11
Hosanna 2
Good friday 7
Tinsaye 9
Rkbe Kahnat 3
Ascension 18
Paraclet 28
Weekly fastiner 1
To obtain Neneveh directly take the Mebaja Hamer number as the date and the month as
explained above rule following the rules for Matqi and Beale Matqi.
To obtain Abiy Tsome, Count 14 days after Neneveh.
To obtain Debre zeit, Count 41 days after Neneveh.
To obtain Hosanna, Count 62 days after Neneveh.
Page 13 of 82
To obtain Good Friday, Count 67 days after Neneveh.
To obtain Tinsaye, Count 69 days after Neneveh.
To obtain Rikbe Khahnat, Count 93 days after Neneveh.
To obtain Ascension, Count 108 days after Neneveh.
To obtain Paraclet, Count 118 days after Neneveh.
To obtain Fasting of Holy Apostles, Count 119 days after Neneveh.
To obtain Weekly fastiner, Count 121 days after Neneveh.
Finding TinteOn
TinteOn is the first Wednesday in which Sun, Moon and Stars were created. Add AmeteAlem &
Metene Rabiet and divide the sum by 7. Then remainder minus one gives TinteOn.
If TinteOn is
Page 14 of 82
Generally, the existing system performed the above calculation by using manually.
Ethiopian orthodox Church priests: The professional skilled persons that help people by
calculating and declaring the holydays and fasting at every new year.
The people: People are the main user of the calendar, even Islam and other religious
followers too.
The Bahire-Hsab book: The book of firmament and calendar, that helps to find dates,
holydays, fasting and related fields.
Calendar Seller: the publisher and seller of paper calendar
Calculating calendar –Even if it is manual, the current system provides the calendar
calculation system for public use using the Ethical book. Even if there are some people
who use android base Ethiopian calendar, it is not adequate to depict all intended
calculation.
Declaring new year and other festivals: The priests and the government declares as the
coming festival is a ceremony or public day.
Document collection: Document is being collected from the prepared report according to
their function and submitted time to allocated place (it may be shelf, depends on the
organization).
Printing Service: The calendar of each year is printed in document format.
The general activity of the existing system is depicted bellow. Question Belief Religious
1.Question
1. Paper Calculation Full Calendar
2. Religious
Page 15 of 82
2.3 Business rules
The calendar has their own business rule that shows which actions should be done and which are
forbidden to do for all users.
BR3. Ethiopian calendar is not only for Ethiopian Orthodox Church but for all Ethiopians.
Performance
Doing activities using manual document results week performance
Page 16 of 82
Is time consuming
Information (and Data)
Outputs
Inputs
Stored Data
Economics
Costs
Costs are too high (needs too much employee)
Profits
New Construction who have a system can be explored
Current dealing can be improved to systemized
Page 17 of 82
Control (and Security)
Efficiency
People waste time
Data is redundantly input or copied and processed.
waste holdings and manpower
Effort required for tasks is excessive (too much workers)
Holdings required for tasks is excessive (e.g. paper)
Service
The Existing system produces inaccurate, inconsistent and unreliable results
It is not easy and awkward to use
It is difficult to coordinate with other systems
Page 18 of 82
2.9Alternative solutions
In order to overcome the current system problems that exist in the functioning of ABECS, our
project team members have put down alternative options. These are:
Change manual system and Ethical application in to mobile based system without
affecting the structure of the existing system.
Fetching records from paper or Ethical application to the new system.
Page 19 of 82
Display the fixed holidays and fasting; The system shall display the fixed
holydays and fasting which are not flexible when the user selects the fixed button.
Help option; The Calendar system should provide the help option for the new
users “Hoe they should use?”.
Give Guidance; The system shall provide the written document that helps the new
and doyen users to calculate the calendar system in their own.
Performance:
The system shall minimize errors and should display clear error message that guides
users.
There shall be various ways of retrieving data and it shall take less time.
Usability
The end user shall be use the application easily without ambiguity.
Availability
As far as the users mobile exists the system shall be available for 24 hours and 7
days a week.
Correctness
The results of the calendar system should be correct and accurate.
Flexibility
The operation shall be flexible and reports shall be presented in different ways.
Maintainability
After the deployment of the project if any error occurs then it should be easily
maintained by the software developer, by who knows the android code.
Portability
The software shall work properly in any android smart phones.
Reliability
The performance of the software shall be better which will increase the reliability
of the Service.
Robustness
Page 20 of 82
If there is any error in any window or module, then it should not affect the
remaining part of the software
Design Constraints:
The system shall replace the existing system.
Page 21 of 82
instances:
Flow of events: 1. Ato.Dawit wants to see holy days and fasting days.
He touches the Ethical application.
2. The application provides the user interface to enter
the year, month and date.
3. He enters the year and touch the holy days and fasting
days’ radio button and then touch calculate button.
4. The application calculates and displays the result.
Page 22 of 82
3. He enters the year and touch “To Gregorian” radio
button and touch display button.
4. The application calculates and The Gregorian result.
Flow of events: 1. Ato Dawit wants to see fixed holy days and fasting
days. He touches the Ethical application.
2. The application provides the user the interface to
enter the year, month and date.
3. He enters the year and touch the fixed holy days
and fasting days’ radio button and then touch
calculate button.
4. The application calculates and displays the result.
Page 23 of 82
3.1.2 Use case model
Page 24 of 82
Figure 3.2 use case for Basic information of the year
Page 25 of 82
Figure 3.3 Use case for Fixed holidays and fasting
Description: This use case describes how the user views holy days and
fasting days of the application.
Flow of event: The use case starts when the user wishes to view holy days
and fasting days of the application.
1. The user touches the Ethical application icon.
2. The application provides the user the interface to
enter the year.
3. The user enters the year and touches the holy days
and fasting day’s radio button and then click calculate
Page 26 of 82
button.
4. The application calculates and displays the result.
Exit conditions If the use case was successful, the user views the result the of
application. Otherwise, the application state is unchanged.
Description: This use case describes how the user views See basic
information’s of the year.
Flow of event: The use case starts when the user wishes to view See basic
information’s of the year.
1. User touches the Ethical application icon.
2. The application provides the user the interface to enter
the year.
3. He enters the year select the basic information’s of the
year radio button and touches calculate button.
4. The application calculates and displays the result.
Exit conditions If the use case was successful, the user views the result of the
application. Otherwise, the application state is unchanged.
Description: This use case describes how the user sees the Ethiopian
calendar in Gregorian.
Page 27 of 82
Flow of event: The use case starts when the user wishes to view the Ethiopian
calendar to Gregorian.
1. User touches the Ethical application icon.
2. The application provides the user the interface to enter
the year, month and date.
3. The user enters the required information and selects the
“To Gregorian Calendar” radio button and then touches
calculate button.
4. The application provides the user interface to choose
from one of the following radio button.
5. The user touches the display button.
6. The application calculates and displays the result.
Exit conditions If the use case was successful, the user views the result of the
application. Otherwise, the application state is unchanged.
Use case name: See fixed holy days and fasting days.
Description: This use case describes how the user sees See fixed holy days
and fasting days of the application.
Flow of event: The use case starts when the user wishes to See fixed holy days
and fasting days.
1. User touches the Ethical application icon.
2. The application provides the user the interface to enter
the year.
3. The user enters the year and See fixed holy days and
fasting days’ radio button and touches calculate button.
4. The application calculates and displays the result.
Exit conditions If the use case was successful, the user views the result of the
Page 28 of 82
application. Otherwise, the application state is unchanged.
Holyday_Fasting class:
Performs the following activities:
Display Holydays and fasting
Calendar class
Displays tabular calendar
Basic_Info class
Displays the basic information class
Day class
Displays the day of the date
Fixed_Holidays
Displays the fixed holydays and fasting
Gregorian class
Displays the Ethiopian calendar to Gregorian
User class
Uses the application
Page 29 of 82
3.1.4.2 Analysis level Class Diagram (Conceptual Modeling)
Page 30 of 82
Figure 3.5 Sequence Diagram: Basic Information Sequence Diagram
Page 31 of 82
Figure 3.7 Sequence Diagram: Holy Days and Fasting Date
Page 32 of 82
act display basic information’s of the year activ ity diagr...
Start
enter year
is ? error message
End
Page 33 of 82
act display holy days and fasting days of activ ity diagram
Start
enter year
incorrect
is? error message
correct
End
Figure 3.9 Display holy days and fasting days of activity diagram
Page 34 of 82
act fixed holy days and fasting days activ ity diagram
Start
enter year
is ? error message
correct
End
Figure 3.10 Fixed holy days and fasting days’ activity diagram
Figure 3.11 State chart diagram for View Holydays and Fasting
Page 35 of 82
Figure 3.12 State chart diagram for Display Calendar
Figure 3.13 State chart diagram for Display Holy Days and Fasting
Page 36 of 82
Figure 3.14 State chart diagram for Day of the Date
Figure 3.15 State chart diagram for Display Fixed Holydays and fasting
Page 37 of 82
Figure 3.16 State chart diagram for Gregorian Date
Page 38 of 82
3.2.4 User interface (navigational paths and screen mock-ups)
Page 39 of 82
3.2.5 Supplementary Specifications
1. Functionality
This section lists functional requirements that are common to more than one use case.
Accessibility
All functionality shall be available every time for the mobile user. This may require the user
running on his mobile.
2. Usability
OS Compliance
The user interface of the Ethiopian Calendar System shall be designed for ease-of-use and shall
be appropriate for a mobile user with no additional training on the System.
3. Reliability
Availability
The Ethiopian Calendar Application shall be available 24 hours a day, 7 days a week as far as the
user and his mobile exists. There shall be no more than 1% and less down time.
4. Performance
a. Simultaneous Users
It is designed for single user; Hence the application shall not be busy.
Page 40 of 82
The system shall provide access to ABECS access request with no more than a 2
second latency.
5. Design Constraints
a. Platform Requirements
The Android Based Ethiopian Calendar System shall operate on any mobile with a 4.0 processor
or greater. The Application shall require less than 1GB disk space and 1GB RAM.
Page 41 of 82
Chapter Four: System Design
4.1 Introduction
5. This document provides the details of architectural design and hardware software
mapping of Ethical mobile application.
The main purpose of the proposed system is to improve some activities through mobilized way
that simplifies the workload of the existing system and speedup the operation of the system.
We all know the importance of automation. The application areas for the mbile have been
selected on the basis of following factors:
Minimizing the manual records kept at different circumstance.
There will be more data integrity.
Facilitate desired and quick information display
Facilitating various calendric statistical information
To reduce manual efforts in activities that involved repetitive work.
Because of its portability
Page 43 of 82
4.3.2. Subsystem decomposition
Subsystem decompositions will help reduce the complexity of the system. The subsystems can
be considered as packages holding related classes/objects. During subsystem decomposition of
the system we consider the following issue: -
Divide the system into smaller subsystems with a strong cohesion.
The instruction between subsystems should have a loose coupling.
The Ethical Mobile Application under consideration is decomposed into subsystems as shown in
the figure below.
Page 44 of 82
Description of the subsystems is as follows:
Basic Information management: This subsystem handles to calculate and display the
following basic information on the given year.
Calculate BealeMetqi .
Calculate tint on.
Calculate wengelawi.
Calculate amete alem.
Calculate Medeb.
Calculate mebaja hamer.
Calculate MeteneRabiet.
Calculate abektie.
Calculate Metqi.
Calculate Wenber.
View BealeMetqi .
View tint on.
View wengelawi.
View amete alem.
View Medeb.
View mebaja hamer.
View MeteneRabiet.
View abektie.
View Metqi.
View Wenber.
Holy and fasting day management: This subsystem handles to calculate and display the holy
and fasting day of the given year.
Calculate neneveh.
Calculate fasting and holyApostles.
Calculate scension.
Calculate RikbeKhahnat
Calculate Paraclet.
Calculate meskerem1.
Page 45 of 82
Calculate aby tsome.
Calculate Hosanna.
Calculate goodfriday.
Calculate debrezeit.
View neneveh.
View fastingo fholyApostles.
View scension.
View RikbeKhahnat
View Paraclet.
View meskerem1.
View aby tsome.
View Hosanna.
View goodfriday.
View debrezeit.
Page 46 of 82
4.3.3 Hardware/software mapping
The diagram shown below depicts the outline of the deployment scheme for the Android Based
Ethiopian Calendar System.
The following components make up the Android Based Ethiopian Calendar System:
Users Mobile
Ethical Android Application
The user simply clicks the Ethical Application and fill the required year and then the application
will respond the intended result.
The application will be accessible 24/7 via a mobile. The class included in the system:
Common class
Holydays and fasting
Calendar
BasicInfo
DayofTheDate
FixedHolyDays
Gregorian
Page 47 of 82
The application should be available all time.
Page 48 of 82
4.3.4.1 Mapping
As the calendar system does not need storage(database), the Ethical application needs no
mapping diagram. Because the mapping is the model and visualization of the database.
Action User
Page 49 of 82
Shut Down: Touch close button and close the application.
Error Conditions:
Compatibility
The application cannot have opened.
The application is corrupted.
Data Entry
The system fails when the user is entering information.
Monitor display
The system crashes or the backup also crashes.
The system hangs up.
The application may fail up.
4.4 Sub system services
A. The User Interface (UI) Subsystem
Page 50 of 82
View Holidays and
Fasting
View Calendar
User (Ethical
Application) View Fixed Holidays
and Fasting
View Date in
Gregorian
View Basic
Information of the
Year
Page 51 of 82
Mobile Application
Interface
User
Page 52 of 82
Chapter Five: Object Design
1.1Introduction
It describes object design trade-offs made by developers, guidelines they followed for subsystem
interfaces, the decomposition of subsystems into packages and classes, and the class interfaces.
The ODD (Object Design Decomposition) is used to exchange interface information among
teams and as a reference during testing.
Page 53 of 82
5.2.5 Exception Handling Mechanisms:
The ABECS system is dealing with Android of java programming language construct to ensure
the fact that normal flow of execution takes place constantly. EHM is merely focused about what
are the constraints and raising these exceptions in a useful way to deal with any sort of problem
or semi-predicate problem as listed below:
a. Invalid year:
If the user tries to enters invalid year (string, symbols and special characters), the system should
not accept the input value.
b. Overflow exception:
When the user tries to inter too large number that the application does not perform, the Ethical
app should display overflow exception.
This exception is invoked when any information mismatch to the data type is tried to display the
calculated result.
We identify different constants, packages, and classes-which can be help us in understanding the
code.
This section will give an insight about the Naming Convention. They are described individually
in the table.
Page 54 of 82
is User Interface so as not to make lengthy
package name. We’ve used any top-level
domain names, currently com, one of the
Packages Package BahireHasab;
English two-letter codes identifying
countries as specified in ISO Standard
3166, 1981.
Class names should be nouns, in mixed class MainActivity;
case with the first letter of each internal class Calendar;
word capitalized. We kept our class names
class ContactUs;
simple and descriptive. Nonetheless, we
Classes
used whole words and avoided acronyms
class BasicInfo;
and abbreviations as far as possible (unless
the abbreviation is much more widely used class HolyDays;
than the long form, such as DB for
class Help;
database and UI for User Interface). Some
classes’ names also have numeral as it
makes us to feel the step of execution.
Interface names should be capitalized like
Interfaces interface DataInterface;
class names.
Methods Our Methods are verbs, in mixed case with Calculate();
the first letter lowercase, with the first Diaplay ();
letter of each internal word capitalized.
Show();
Except for variables, all instance, class, int i;
and class constants are in mixed case with char c;
a lowercase first letter. Internal words start long int year;
with capital letters. Variable names have
Variables
no start with underscore _ or dollar sign $
characters, even though both are allowed.
Page 55 of 82
mnemonic- that is, designed to indicate to
the casual observer the intent of its use.
One-character variable names are avoided
except for temporary "throwaway"
variables. Common names for temporary
variables are i, j, k, m, and n for integers;
c, d, and e for characters.
Constants The names of variables declared class Public static final int
constants and of ANSI constants should be meteneRabit = 4;
all uppercase with words separated by
underscores ("_"). (ANSI constants should
be avoided, for ease of debugging.)
5.3 Packages.
The Ethical application has only one package called BahireHasab and encompasses different
classes and interfaces.
1. BahireHasabUI: This package represents the Main User interfaces for the user.
5.5 Class Interfaces.
5.4 Package: BAhireHasabUI:
5.4.1 Class MAinActivityForm
This is the main class of the application. It declares the user interface classes. And accepts input
from the user (The year, month and date)
Page 56 of 82
5.4.4 Class BAsicInfoForm
This class represents the basic information of the year. This information is the base of other
results of the calendar.
6 Design Pattern:
There are two kinds of wrapper patterns namely Object Wrapper Pattern and Class Wrapper
pattern.
Our ABECS system focuses on Object Wrapper design pattern which contains an instance of the
ExtSystem class(Client) it wraps. In this situation, the Ethical (app) makes calculate calendar
instance of the wrapped object. Fundamentally, ExtSystem (Client) is not connected to database.
When the user calculates the calendar using the Display () method on its target object, the
request is translated into the corresponding specific request on the application.
Page 57 of 82
Chapter Six: Implementation and Testing
6.1 Introduction
Now a days every technology and software is being tested before implementing and using inside.
It is one of the obligations of the SW developers. Users also should check and test before buying
any technology results.
As we have seen everything about ABECS system.:. Now we will see the ‘implementation and
testing’ stages as follows.
The system has been checked and tested correctly in team work. There was some errors and
faults during development stage and those errors has been also debugged completely.
Hardware Software
Step-1- Start the application: before use the Ethical calendar any user must open the application
first. In order to start the app, the user should have to press the Ethical application icon.
Page 58 of 82
Figure 5.2 starting the application
Step-2- Entering in to the system: after the application starts, it will provide the Main User
interface as follows:
Page 59 of 82
Afterwards the user can use it by simply entering any year he need.
Inserting Year: You can enter any year you need to see the required information.
1. Choosing Option
After you fill out the year field, then you can choose what you need from the option (from radio
buttons).
Page 60 of 82
5.5 Ethical application UI: Choosing Option
Here there are two types of options in the app; these are:
Options, which does not need date: This options need only year to display calendar
information. These are: “በዓላትና አፅዋማት”, “calendar (ቀን መቁጠሪያ)”, “የአመቱመሰረታዊ
መረጃወች” and “ቋሚ በዓላትና አጽዋማት”.
Options, that need date: This options needs all input field values (Year, month and
date). In this case the you are expected to enter the year and the date. If you ignore
entering(selecting) month, the system automatically set the month at “September” by
default.
6.5 Training
When organization or user buys this application, the training will be given to them at the time of
buying this system. The user manual itself can help them as tutorial about how to use the system.
Page 61 of 82
6.6 Installation Process
After all hardware and software requirements has been fulfilled, you can install simply by long
pressing the Ethical app and select “INSTALL” option.
6.8 Coding
In this phase the team wants to show the project done is turning the physical design specification
into code, the system design needs to be implemented to make it a workable system. Hear is
sample code for Android Based Ethiopian Calendar and display the result to main user interface.
Android - XML
Sample code for MAinActivity
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/ScrollView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/mainEthiorthodox"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#0000FF"
android:gravity="center"
android:text="@string/ethical"
android:textColor="#FFFFFF"
android:textSize="17sp"
android:textStyle="bold" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/mainAmeteMihret"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="left"
android:text="@string/yearTv"
android:textColor="#000000"
android:textSize="18sp"
android:textStyle="bold" />
<EditText
android:id="@+id/YearMainId"
Page 62 of 82
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="right"
android:ems="10"
android:hint="@string/year"
android:inputType="number"
android:textColor="#800080"
android:textSize="18sp"
android:textStyle="bold" >
<requestFocus />
</EditText>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/mainWer"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="left"
android:text="@string/monthTv"
android:textColor="#000000"
android:textSize="18sp"
android:textStyle="bold" />
<Spinner
android:id="@+id/MonthMainId"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:entries="@array/months"
android:prompt="@string/month"
android:textColor="#0000FF"
android:textSize="18sp"
android:textStyle="bold" >
</Spinner>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/mainQen"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="left"
android:text="@string/dateTv"
android:textColor="#000000"
android:textSize="18sp"
android:textStyle="bold" />
<EditText
Page 63 of 82
android:id="@+id/Datemainid"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:hint="@string/date"
android:inputType="number"
android:textColor="#800080"
android:textSize="18sp"
android:textStyle="bold" />
</LinearLayout>
<TextView
android:id="@+id/mainChoose"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#A52A2A"
android:gravity="center"
android:text="@string/option"
android:textColor="#000000"
android:textSize="17sp"
android:textStyle="bold" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<RadioGroup
android:id="@+id/radioGroup1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<RadioButton
android:id="@+id/Radio1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hollyDaysAndFasting" />
<RadioButton
android:id="@+id/Radio2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/calender" />
<RadioButton
android:id="@+id/Radio3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/basicInfo" />
<RadioButton
android:id="@+id/Radio4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/dayOfTheWeek" />
<RadioButton
Page 64 of 82
android:id="@+id/Radio6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/fixed" />
<RadioButton
android:id="@+id/Radio7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/gregorianCalender" />
</RadioGroup>
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:contentDescription="@string/mary"
android:src="@drawable/calendar1" >
</ImageView>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:gravity="center"
android:orientation="horizontal" >
<Button
android:id="@+id/CalculateMainId"
android:layout_width="100dp"
android:layout_height="match_parent"
android:background="@drawable/button_custom"
android:text="@string/button1"
android:textSize="16sp"
android:textStyle="bold" />
<Button
android:id="@+id/ResetMainId"
android:layout_width="100dp"
android:layout_height="match_parent"
android:background="@drawable/button_custom2"
android:text="@string/Reset1"
android:textSize="16sp"
android:textStyle="bold" />
<Button
android:id="@+id/CloseMainId"
android:layout_width="100dp"
android:layout_height="match_parent"
android:background="@drawable/button_custom"
android:text="@string/button2"
android:textSize="16sp"
android:textStyle="bold" />
</LinearLayout>
</LinearLayout>
</ScrollView>
Page 65 of 82
Android-Java code
Sample code for Day of the date
else if(r4.isChecked())
{
//String date=eddate.getText().toString();
if (werIndex == 0)
{
atsfeAwrah = 0;
}
if (eddate.getText().toString().length() <= 0)
{
Toast.makeText(getBaseContext(), "መጀመርያ ቀኑን
ያስገቡ \n You have to Enter date first!",Toast.LENGTH_LONG).show();
}
else
{//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
long date
=Long.parseLong(eddate.getText().toString());
if (date <= 0 || date >= 31)
{
Toast.makeText(getBaseContext(), "እባክዎን
ትክክለኛ ቀን ያስገቡ \n You have to Enter Valid date!",Toast.LENGTH_LONG).show();
}
else if (werIndex == 12 && date > 5 &&
wengielawi != "ሉቃስ" || (werIndex == 12 && date > 6 &&
wengielawi.equals("ሉቃስ")))
{
Toast.makeText(getBaseContext(), "ለጳጉሜ
ትክክለኛ ቀን ያስገቡ \n You have to Enter Valid date for Phagumie!",
Toast.LENGTH_LONG).show();
}
else
{
QbealeMetqee = eleteTebiban + atsfeAwrah +
tinteOn + date;
x = QbealeMetqee % 7;
if (x == 1)
{
elet = "እሁድ";
day="Sunday"; // Sunday
}
else if (x == 2)
{
elet = "ሰኞ";
day="Monday"; //Monday
}
else if (x == 3)
{
elet = "ማክሰኞ";
Page 66 of 82
day="Tuesday";// Tuesday
}
else if (x == 4)
{
elet = "ረቡዕ";
day="Wednesday";//Wednesday
}
else if (x == 5)
{
elet = "ሐሙስ";
day="Thursday"; //Thursday
}
else if (x == 6)
{
elet = "ዓርብ";
day="Friday"; //Friday
}
else if (x == 7 || x == 0 || x < 0)
{
elet = "ቅዳሜ";
day="Saturday"; //Saturday
}
else
{
// Toast.makeText(getBaseContext(), "የፈለጉት
ቀን: " + elet + " ነዉ \n The Day You Need is:" + " " + elet,
Toast.LENGTH_LONG).show();
new AlertDialog.Builder(MainActivity.this)
.setTitle("የፈለጉት ቀን: \n The Day You Need:" )
.setMessage(elet + ", " + weralert + " " +
date + "," + " " + ameteMihret + " ዓ.ም" +"\n" + day + ", " + monthalert + " "
+ date + "," + " " + ameteMihret + " EC " + leapyear)
.setNeutralButton("OK", null)
.setIcon(R.drawable.qen2)
.show();
}
}//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
}
Page 67 of 82
Chapter Seven: Conclusion and Recommendation
7.1 Conclusion
In this project, we developed an Android Based Ethiopian Calendar System that facilitates the
various activities taking place at Calendar Calculation.
The system is Android Based Ethiopian Calendar System and called “Ethical”, named after the
name of Ethiopian calendar. Eth- indicates Ethiopian and Cal-indicates Calendar. The
application is version 1.0 and needs more upgrading. When we update it we will release it
immediately. We wish you a happy year and we are thanking full for you are using our
application.
7.2 Recommendation
To enhance the efficiency of the system, in the following we have listed some recommendations
and future works.
We believe that to increase the performance and efficiency of the Ethical application; adding
some futures like, fetching system date, alarm and diary are good functionalities. We recommend
that the coming developers to add these futures too,
Even if every calendar activity is done by the application, we recommend users to learn the
Ethiopian calendar to know how holydays, fasting days and days of the date calculated.
Page 68 of 82
Appendix
Appendix A: Paper Document in the Existing System
A calendar document of Ethiopian calendar
Page 69 of 82
Reference
Page 70 of 82