You are on page 1of 9

ANALYSIS AND DESIGN OF MOBILE PUBLIC AUCTION

SYSTEM

SE 554 – PROJECT FINAL REPORT


MobileTech: Deniz PEKER, Berkan KURTOĞLU(Team Leader)

Department of Computer Engineering


Middle East Technical University

which shows the item, new offered price and the


ABSTRACT remaining time for auction. In this case, we will
give options to the user as “give a new offer” and
In this report, we will introduce our project’s
“cancel and continue”. If the user chooses “give a
analysis and design phases with an Agile Software
new offer”, he/she enters a new price and continues
Development point of view.
his/her operation from the previous screen before
notification. If the user chooses “cancel”, he/she
NOMENCLATURE continues his/her operation from the previous screen
RAD Rapid Application Development before notification.
is a mobile operating system running on
SOFTWARE DEVELOPMENT STRATEGY
the Linux kernel. It was initially
Android The project’s software development strategy is
developed by Google and later the Open
Handset Alliance. based on Agile Software Development disciplines.
Against the traditional software development
INTRODUCTION methodologies, the leaders of the software
development approaches having similar opinions as
Mobile Public Auction System Extreme Programming (XP), Scrums, Crystal
In our project, we will design a mobile auction Methodologies, Feature-Driven Programming
system which runs on Android platform. This formed an alliance and put out the Agile Manifesto
application cooperates with the well known web on 2001 which is;
based auction system www.gittigidiyor.com and “
gives the capability of attending auction sessions Individuals and interactions over
with mobile devices. Users can search an item, processes and tools
select an item and watch it’s auction session by our Working software over comprehensive
application. After that, users can offer a new price documentation
or see new offers on this item. While the user Customer collaboration over contract
navigates on his/her mobile phone; for example negotiation
surfing on internet with a browser, our application Responding to change over following a
will run in the background as a service. ‘Service’ plan
logic is well defined in Android platform and That is, while there is value in the items on the
services can interrupt other applications by using right, we value the items on the left more.”[3]
platform resources. If a new price is offered to the
watched item during the navigation of the user,
he/she will be able to see a notification popup

1
The main goal is bringing speed and
effectiveness to modeling and documentation of
developing software systems.
After gained an understanding of the major
Teamwork, collaboration, rapid and continuous functionalities of the system, the requirements are
delivery of high-quality software are the main stated as user stories and they are prioritized.
pirinciples laying behind agility.
Then the prototyping phase started. The user
Agile approach does not oppose the design interfaces arised and started to sketch the system.
activities but it is against to design a software at the This prototype enabled us to analyze the
beginning of a software project. At the beginning of requirements in a deeper manner. The design of the
the project, system is pre-designed. The design is system shaped with the development of requirements
evolved with the evolvement of requirements, code and the prototype.
and test results. Design is mentioned as output of the REQUIREMENT ANALYSIS
process, rather than being input.
After the requirements are gathered, they are
prioritized. The first prototype of the system is
According to the agile approach, tasks have to be
developed in the first iteration, due to the user
broken into small increments with minimal planning.
stories. The functional requirements are;
Long-term planning is opposed. All development
1. Customer can login to the web site via his/her
activities have to be done iteratively. Each iteration
mobile phone.
of 3-4 weeks is composed of a full software
2. Customer can search the items, exposed for
development cycle including planning, requirements
sale.
analysis, design, coding, unit testing, and acceptance
3. Customer can select an item and submit a
testing. At the end of an iteration, a working
quote.
software must be delivered to the customer.
4. Customer can watch an item’s auction session.
5. Customer can mark up price for a selected
Stakeholder involvement takes an important
product.
place in agile methods. As stated in the principles of
6. Customer can see new offers for his/her
the Agile Manifesto, “Business people and
selected product.
developers must work together daily throughout the
7. Android application can notify the customer
project.”[3] This method is believed to improve the
when a new price is offered, even if the customer is
requirements analysis and finding the defects earlier,
navigating on his/her mobile phone.
which increases software quality.
8. Customer can see the current status, latest
offered price and picture of items via Android
To gain agility to the process, tool usage is
application.
encouraged. Tools for unit and functional testing and
techniques such as continuous integration, pair
The non-functional requirements are;
programming, test driven development, design
1. Performance:
patterns, domain-driven design, code refactoring are
An Android application should be
often used to improve quality.
fast and efficient. There is a tendency in the
PLANNING PHASE computing world these days to assume that
In this report, only the first iteration is Moore's Law will solve all our problems
ensampled as a crooss cut of the overall system. The related with performance. When it comes to
project plan is prepared with respect to Agile project embedded applications, Moore's Law is a bit
planning approach and listed in Figure 1 more complicated. Then, embedded devices
like phones are increasing in actual, raw
First iteration starts with the raquirement speed much more slowly than desktop
analysis phases. The overall context of the system is systems. It’s important to write efficient
analyzed and represented as the Data Flow Diagram code and by doing this phones will see the
Level 0, Figure 2. same speed increases as desktops and

2
servers. Writing fast code means keeping application during a call) it's a pretty
memory allocations to a minimum, writing safe bet he did it on purpose. That's
tight code, and avoiding certain language why you should avoid spawning
and programming idioms that can cripple Activities except in direct response
performance. In object-oriented terms, most to user input from the current
of this work takes place at the method level, Activity.
on the order of actual lines of code, loops,
and so on. c. Got a Lot to do? Take it to a
Thread:
2. Responsive: If your application needs to
The applications that feel slow, hang perform some expensive or long-
or freeze for significant periods, or take too running computation, you should
long to process input are insufficiently probably move it to a thread. This
responsive and will frequently cause the will prevent the dreaded
system to pop up "Application Not "Application Not Responding"
Responding" (ANR) message. Generally, dialog from being displayed to the
this happens if application cannot respond to user, with the ultimate result being
user input. For example, if application the fiery demise of your application.
blocks on some I/O operation (frequently a
network access), then the main application d. Avoid Huge Activities:
thread won't be able to process incoming Any application worth using
user input events. After a time the system will probably have several different
will conclude that your application has hung, screens. When partitioning your UI,
and give the user the option to kill it. The fix be sure to make effective use of
is usually to create a child thread, and do Activities.
most of your work there. This keeps the
main thread running, and prevents the e. Assume the Network is slow:
system from concluding code has frozen. You should always code
your applications to minimize
3. Seamless: network accesses and bandwidth.
There are some seamless parameters, You can't assume the network is fast,
we should concern while designing and so you should always plan for it to
implementing system. These are: be slow.

a. Do not drop data:


User Characteristics
If the user was editing data
in your application when the other There is one user, “CUSTOMER” of the
Activity appeared, your application system. Customer is the person who carries out the
will likely lose that data when your auction operations from the web site, through out
application is killed. A classic his/her mobile phone.
example of a good use of this PROTOTYPING
behavior is a mail application. If the
user was composing an email when After execute the application, user should log in
another Activity started up, the and authenticate its account. Figure 3- Figure 8
application should save the in- DESIGN
process email as a draft.
The Model of Applications in Android for
b. Do Not Interrupt User When Mobiles
he/she is talking: Android form Google is an operating system for
If the user is running an mobile phones that is based on Linux. The
application (such as the Phone

3
architecture of applications for Android introduces Our application design composes of 3 logical
concepts that go beyond the classical models. layers. These are Notification Layer, Service Layer
and Activity Layer. These 3 layers are designed
The data-view model
according to Android platform specifications which
This is the model used by the library Swing of indicated in development guide of platform web
Java notably. The view is the interface through site[1]. As we mentioned in “The Android Model”
which the user interacts with the software. Data are section, Android application model uses 5
stored separately and can be displayed in different components; Activity, Intent, Service, Content
views. Provider, and Notification. We have used 3
The view may also change the data according to the component types in our application design which are
context, for example, change the text according to activity, service and notification. Also there is an
the user's language. external system which communicates with our
The Android model mobile application. The external system is a web
base application like www.gittigidiyor.com. All
Android extends this views/data model, it business logic runs in this application and our client
provides a new model that is suitable for equipment application uses defined interfaces to communicate
activated at all times. The structure of applications is with external system. For example; users, items and
defined as follows: auctions information are stored in here and our
The views (Class android.view.View) mobile client only communicates with the web
application by using defined interfaces.
The interface of a program for Android is a tree
of views. The image at right shows four views inside Activity layer is composed of 5 activities
a screen (an activity). which are responsible from interaction with user.
The file AndroidManifest.xml Each activity capable of directly communicate with
external system by using defined interface and
It defines the components of the application and protocols. “Login Activity” is start point of
their relationships. It gives the permissions to application. Basically it is a login screen and appears
application as to what it can do with users. It can when application is started. This activity requires 2
also give permission to components of the parameters from user which are username and
application. password. After validate these parameters, client
The components of the application: sends these parameters to external system and waits
Activity: for authentication confirmation. If authentication is
This is something that the user can do, granted, login activity starts service which runs in
translated into program. It corresponds to a background. Then, redirects screen to “User Home
screen, but can have multiple views. Activity”. In user home activity, user can display
Intent: his/her message, bought items, watch items, and bid
Describes an action which must be items. When activity is started it communicates with
performed. external system by sending activity identifier and
Service: external system return user data which will display
Program that operates in background. in home screen. Another important activity is
Content Provider: “Search activity”. User enters some search
It encapsulates data and provides them parameters and activity directly sends these
commonly to several programs. parameters to server and receives results from server.
Notification: Search activity also display result and by selecting
Class which informs the user about what is an item from result list, screen is redirected to “Item
happening. Home Activity”. Item Home Activity directly
communicate with server and send item id and
Mobile Public Auction System Application Design receive item information which contains current
price, remaining time of auction and item photo. If
Application Component Design is shown in user wants to offer new price, he/she can offer by
Figure 9. using this activity by sending data directly to server.

4
Our last activity is “Alert Popup Activity” which is It was a good practice for us, training to analze
used for displaying notification send by server. and design a software system on a mobile platform.
These could be new offers to watched items or finish
of auction results. By using alert popup, user can We followed Agile disciplines in our project
give new offer to item or just cancel it. management activities. If we used Rapid Application
Development, we will not deviate much from this
Server Layer contains only one component planning strategy, because of the time period and the
which is Background Service. This service is started prototyping approach we worked on.
when user successfully logged in application. This
service runs until user log out. This component can REFERENCES
always receive data from server and this is the most
important functionality. These data could be new [1] http://www.android.com/ accessed on
offers given to watch item, auction is short of time or 23/7/2009
auction finish alert. Our application will show these [2] http://www.bonfiremedia.com/ accessed on
alert to user by using Alert Popup Activity. But there 23/7/2009
are some situations which application should pay [3] http://agilemanifesto.org/principles.html
accessed on 28/7/2009
attention. If user is speaking with the phone, service
does not use alert popup. Instead of alert popup, it
uses Notification manager to notify user.

Notification Layer has one component


which is Notification Manager. This component
manages notifications like new SMS is received or
missed calls. These notifications appears one of the
corner of the mobile phone screen which similar to
mail icon in a standard mobile phone. Our
notification Manager is triggered by background
service in case of user is talking with mobile phone
and small icon appears right corner of the screen.
When user clicks this icon, our Alert Popup Activity
is displayed by showing notification which is
received from server.

RESULTS AND DISCUSSIONS


After deciding the subject for our project, we
went on to reveal the requirements. First, we worked
on the functional requirements then the non-
functional requirements’ turn came. Then we
analyzed an applicable design to validate these
requirements. We developed an architecture using
the 3 logical layers supported by Android. These are
Notification Layer, Service Layer and Activity
Layer. We end up with a component level-layered
design

CONCLUSION
Mobile applications are gaining popularity so
mobile operating systems present new design
principles to their users.

5
FIGURES AND TABLES

Figure 1 Project Plan

Figure 2 System Context Diagram

6
Figure 3 Login screen Figure 4 User Home Screen

Figure 5 Item Search Screen Figure 6 Item Detail Screen

7
Figure 7 Item Offer Screen Figure 8 New Offer Display Screen

8
Figure 9 Application Component Design

You might also like