ACADEMIA DE STUDII ECONOMICE
FACULTATEA DE CIBERNETICA, STATISTICA SI
INFORMATICA ECONOMICA
Design of Information Systems
Project
Avram Daiana-Emanuella
An III, grupa 1090
Bucuresti
2020
1. Presentation of the computer system
1.1 General description of the information system
1.2 Requirements specification
1.2.1 General and detailed Use case diagrams
1.2.2 Textual description of use cases
2. Analysis of the system
2.1 Activity diagrams
2.2 Class diagram
2.3 State diagrams
2.4 Interaction diagrams
2.5 Refining UML diagrams
2.6 Processes and collaboration diagrams in BPMN
3. Design of the system
3.1 Detailed Class diagram
3.2 Database design
3.3 User interface design
3.4 Component diagram
3.5 Deployment diagram
4. System implementation
4.1 Technologies used in implementation
4.2 Summary of system functionality
1. Presentation of the computer system
1.1 General description of the information system
In today’s world, it is a common practice to interact with the outside world solely with a
smart-phone. Basic everyday tasks as finding a specific location or looking up at the departure
time of a public transportation can be all done by using a single device of a size that allows to be
at disposal in the person’s pocket. Not a long time ago, these actions, so common in our
everyday life, were categorized in the domain of the science-fiction. The mobile phone industry
has been developing and growing rapidly over recent years.
Mobile applications, commonly abbreviated as ‘apps’, are considered to be one of them
fastest growing trends in Information Systems industry. Users enjoy the variety of features that
mobile apps can provide quickly and in a more compact way, without introducing unnecessary
complexity into their designs. As a result, mobile apps have a more popular interface for
interaction with business systems than using web applications via Web Browser.
The motivation behind the ‘EventFinder’ is to create a digital platform that provides the
users with the opportunity of finding events nearby their current location to participate during
their spare time. If, a few years ago, the promotion of an event was made through more
traditional methods, such as newspaper advertising or the distribution of flyers on the street, in
today’s world it is more convenient to find that information through an internet search.
1.2 Requirements specifications
This chapter aims to detail the functional requirements that the mobile application must met
in order to achieve its main objectives and to present the design methodology that will guide it to
achieve the computer system.
The purpose of this application is to help the user to find events to participate in his free time,
near the location where he currently is.
1.2.1 General and detailed Use Case diagrams
Figure 1.2
Figure 1.3
1.2.2 Textual description of use cases
The use case diagram showed in the Figure 1.1 illustrates the Registration and Login processes
which take place when the application is started for the first time. Although the account can be
created later, once created the credentials provided by registering will be retained for future
visits.
Element of the use case Description
Code CU01
State Sketch
Purpose Shows the process of registration and login, via email
Name Use case login and registration
Main actor User
Description The user authenticates using login credentials, which
are added into the database through the registration
process
Preconditions The user has the Android application installed on its
device
Postconditions The user is added in the database and can log in in
order to use the application
Trigger The user starts using the application
Basic flow 1. The user enters the Registration Activity
2. He creates login credentials, providing the
required details (username, password,
email...)
3. The user can authenticate using the
credentials offered in the registration form,
which are sent to a database
Alternate flows The user has an existing account, and he can login by
just enter login credentials, which are checked to
match those in the database
Relationships There is an <<extend>> relationship between Register
and Log In activities, and <<include>> relationships
between Log In and Enter Login Credentials, between
Enter Login Credentials and Authenticate Credentials
and between Create Login Credentials and
Authenticate credentials
Frequency of use Frequent
Business rules
The use case diagram presented in Figure 1.2 illustrates the process of purchasing a ticket for an
event via the application.
Element of the use case Description
Code CU02
State Sketch
Purpose Shows the process of purchasing a ticket
Name Use case purchasing ticket
Main actor User
Description
Preconditions The user has created an account on the platform
Postconditions The transaction will be concluded and the user will
receive what he bought (a ticket)
Trigger The user chooses an event
Basic flow 4. The user logs in
5. The user browses a list of available events
6. He chooses an event
7. The user makes the purchase through a credit
card, and the purchase needs to be authorized
by the bank
Alternate flows -
Relationships There is a <<include>> relationship between choosing
an event and making a purchase, as between making a
purchase and complete the checkout
Frequency of use Frequent
Business rules
Figure 1.3 is a use case diagram that represents the changes that can be made by a user to his
profile page or login credentials, and how these changes are directly linked to the database ( if
user credentials or details such as description are changed by the user, they are sent directly to
the database and modified there too).
Element of the use case Description
Code CU03
State Sketch
Purpose Shows the process of updating the profile photo/
details
Name Use case update profile
Main actor User
Description The use case shows the functionalities of the updating
profile Activity
Preconditions The user has created an account on the platform
Postconditions The user page or his credentials will be modified
Trigger The user accesses the profile update page
Basic flow The user can either change password, change profile
picture, change username or add a short description
about himself. These changes will be then added to the
database.
Alternate flows -
Relationships -
Frequency of use Frequent
Business rules
2. Analysis of the system
2.1 Activity diagrams
I. Log In Activity Diagram
Description of Log In Activity Diagram: Although the menu of the application can be accessed
without a prior registration and then authentication, it is highly recommended that the users
authenticate in order to benefit from a full experience when using the application to find an
event. The first screen after launching the application is a log in form. The user has to input log
in details, which he created by registration. If the data is registered in the system (database) the
user is logged in successfully. Otherwise, he will receive an error message and the possibility to
try again. If he does not want to try again, he can always choose to proceed without
authentication. An activity final node could be added after ‘Log In Successfully’ action.
Description of Registration Activity Diagram: at the first use of the application, the user has to
create an account. Necessary account data for registration can be extracted using the Facebook
platform. If the user does not want to browse through the application using an account, he can
also skip this step. If the registration is chosen to be made via email, a form is opened which, if
the data entered is valid as format, will be sent to the local database of the application. If the user
already exists in the database, it will send an error message.
Description of Order Process Activity Diagram: Requested order is input parameter of the
activity. After order is accepted and all required information is filled in, payment is accepted and
tickets that were purchased are sent via email. Note, that this business flow allows order
shipment before invoice is sent or payment is confirmed.
2.2 Class diagram
2.3 State diagrams
2.4 Interaction diagrams
I Sequence diagram for reserving and purchasing a ticket
II Sequence diagram for creating a new account
2.6 Processes and collaboration diagrams in BPMN
Process diagram for registration and authentication
Collaboration diagram for loading new events
3. Design of information system
3.1 Detailed class diagram
The detailed class diagram shows the classes used, among with their corresponding attributes
and methods. This diagram details the description and behavior of the classes that make up
the software application, to facilitate understanding of the functionality.
3.2 Design of user interfaces
3.4 Component diagram
Android is a software stack for mobile devices that includes an operating system, middleware
and key applications. Android relies on Linux OS for core system services such as security,
memory management, process management, network stack, and driver model. The Linux kernel
also acts as an abstraction layer between the hardware and the rest of the software stack.
Android applications are written in Java. Android SDK tools compile and package the code
along with any required data and resource files into Android application archive file having .apk
suffix. The .apk file represents one Android application to be deployed to the Android-enabled
mobile devices.
3.5 Deployment diagram
The deployment diagram describes the structure of the system at the time of execution. The
purpose of a deployment diagram is to capture the hardware that will be used to implement the
informatic system and the links between different items of hardware. Therefore, the application
for finding an event contains as components that must interact to executed the implemented
program the following:
The mobile devices with Android operating system
Input/output devices
Local database service
Firebase database service
Internet network
GPS location service
4. System implementation
Android is an extensive open source platform designed for mobile devices. In the process of
creating the application, I used Android Studio, one of the most suitable software development
tools for creating Android applications. In order to be able to discuss the modeling and
implementation of the application and its benefits, it is needed to thoroughly understand the
elementary components of an Android project and how the integrated development environment
(IDE) works.
4.1 Technologies used in implementation
Android is a software platform developed by the Google group. It offers a large framework with
which different applications or games can be created, in Java or Kotlin programming languages.
The framework offers numerous libraries, documentation, tutorials, an emulator that simulates a
mobile device on its own development platform, and also an IDE(Integrated Development
Environment) – Android Studio. The integrated development environment is built on JetBrains'
IntelliJ IDEA software and designed specifically for Android development(mobile devices,
smartphones, tablets, GPS, TV).It is available for download on Windows, macOS and Linux
based operating systems and ‘it is a replacement for the Eclipse Android Development Tools
(ADT) as the primary IDE for native Android application development’.
One of the necessities in developing an Android application is the need to program in the Java
programming language. Java is a general-purpose programming language that is class-based,
object-oriented, and designed to have as few implementation dependencies as possible. The
programming language was first developed ‘by James Gosling at Sun Microsystems and released
in 1995 as a core component of Sun Microsystems’s Java platform’. The latest versions are Java
13, released in September 2019, and Java 11, a currently supported long-term support (LTS)
version, released on September 25, 2018. It is intended to let application developers to use the
written code on any device, meaning that compiled Java code can run on all platforms that
support Java without the need for recompilation. Java applications are typically compiled to
bytecode that can run on any Java virtual machine regardless of the underlying computer
architecture. The syntax of Java is similar to C and C++, but it has fewer low-level facilities than
either of them.
Since the mobile application is going to collect data both on the users and on the events found
nearby their location, it is necessary to use a method for storing information so that it can be
easily accessed when needed.
A database is a data structure that stores organized information(records) in form of tables, which
makes it a useful tool for storing information that is related to each other. Most databases are
composed of multiple tables, which may each include several different fields. In this way, the
data can be easily accessed by the table name, respectively by the column and rows names.
There are a lot of databases to choose from. In the following are presented two databases which
are quite different from each other and will be used in different parts of the application.
Early databases were limited to tables only with simple rows and columns, like a spreadsheet.
However, with the emergence of relational databases, users were allowed to access, update, and
search information based on the relationship of data stored in different tables. The term
"relational database" was first introduced by Edgar Frank Codd in 1970, while working at IBM.
In a relational database, tables are created with a logical connection between them, relationships
being established on the basis of interaction among these tables.
MySQL is a widely known open-source relational database management system(RDBSM). Is a
free and open-source software that runs as a server providing multi-user access to a number of
databases.
The Firebase platform was launched in 2011, when its founders, James Tamplin and Andrew
Lee, took the start-up they have evolved, named Envolve, to a new level. Envolve came up with
an API that allow the developers to integrate online chat functionality into their websites.
However, Tamplin and Lee found that it was rather being used to pass application data that were
not chat messages. Therefore, based on the real-time architecture that powered the chat system,
Firebase was founded, offering, besides other functionalities, a real-time database and back-end
as a service. Other features offered by the platform are: user authentication, crash reporting and
push notifications.
It is possible to integrate Firebase into the Android Studio environment, by adding the specific
dependencies in the module Gradle file. Also, a Firebase projects needs to be created, in order to
be linked with the Android app, and a JSON file is added in the module directory. Another
method to use Firebase in Android Studio is through Firebase Assistant. From Assistant pane the
developer can register the app with a Firebase project and adds the necessary Firebase files and
code to your Android project — all from within Android Studio.
4.2 Summary of system functionality
1) The application starts with a login page, although the user can skip this activity and continue
searching for events without an account.
2)
3)