Changed 12

Download as pdf or txt
Download as pdf or txt
You are on page 1of 63

1 .

INTRODUCTION

one of the fastest growing industries now a day is mobile industry. There are many competitors
in this area who are doing research and development on new platforms & user experience. One
such technology is Android from Google which is supported for Google phones. These phones
are described as next Generation mobiles [As described by Google]. This application
Personalized voice based task remainder can be used by any Android mobile user. The proposed
application is a tool developed for android platform, which is used to create and organize tasks
or actions one need to get done. This relieves one from the stress of remember everything one
need to do. As this is a mobile application one can easily organize his actions where ever he is
with ease. With this one can add his instant ideas and quickly check the top priority action that
need to be done immediately. This application enables us to categorize actions into projects and
optionally provides a context for that action. This categorization breaks down the projects into
simple achievable actions. As a project evolves around time one can delete old actions which are
performed and new actions which need to get done. We wanted to build Methodiser in Mobile
phone with the latest technology in the market. One such technology is Google Android SDK.

1.1 Existing System


In android mobiles, we do not have any application for writing all your day to day
activities date wise and which can store the text as well as audios.

1.2 Proposed System:


This application is developed for the android users to create a voice based remainder set
as a voice task or remainder on a particular date. Then the application sends it as a notification to
the notification slider at a particular date. If tapped on the notification it enters into app and when
searched on a particular date the voice task is shown and if played it plays the voice and can be
stopped.

1.3 SCOPE OF PROJECT:


One of the fastest growing industries is mobile industry. There are many competitors in this area
who are doing research and development on new platforms & user experience. One such
technology is Android from Google which is supported for Google phones. These phones are
described as next Generation mobiles [As described by Google]. Developing application for such
mobile phones using the open source android SDK is quite interesting. This makes the
application call history quite easy, efficient, flexible and economic.

1.4 PURPOSE:
The Personalized voice based task remainder is an application which helps the user in
used for picking a date and time to particular schedule and save the record in draft folder.at the
set time, it notifies in the notification bar which can be played to listen to the remainder user has
recorded

2.SOFTWARE AND HARDWARE REQUIREMENTS


2.1 SOFTWARE REQUIREMENTS

Java

Android SDK 1.5 or later

Eclipse Ganymede IDE

Operating System can be Windows XP, LINUX and Mac etc.

2.2 HARDWARE REQUIREMENTS


1. PROCESSOR : (min) P2 Processor
2. RAM

: (min) 128

3. HARD DISK

: 100

3.LITERATURE SURVEY
3.1 JAVA:
Java is an object-oriented language, and is very similar to C++. Java is simplified to
eliminate language features that cause common programming errors. Java source code files are
compiled into a format called bytecode, which can then be executed by a Java
interpreter.Features being
FEATURES:
1.Platform Independent
The programs written on one platform can run on any platform provided the platform must
have the JVM.
2.Portable
The feature Write-once-run-anywhere makes the java language portable provided that the
system must have interpreter for the JVM.
3.Simple
Programs are easy to write and debug because java does not use the pointers explicitly. It
also has the automatic memory allocation and deallaocation system.
4.Multithreaded
Multithreading means a single program having different threads executing independently at
the same time.

5.Robust
Java has the strong memory allocation and automatic garbage collection mechanism. It
provides the powerful exception handling and type checking mechanism as compare to other
4

programming languages.
6.Object Oriented
To be an Object Oriented language, any language must follow at least the four
characteristics.

Inheritance

Encapsulation

Polymorphism

Dynamic binding

7.Distributed
The widely used protocols like HTTP and FTP are developed in java. Internet programmers
can call functions on these protocols and can get access to the files from any remote machine
on the internet rather than writing codes on their local system.
8.Secure
All the programs in java are run under an area known as the sand box. Security manager
determines the accessibility options of a class like reading and writing a file to the local disk.
9.High Performance
In the beginning interpretation of byte code resulted in slow performance but the advance
version of JVM uses the adaptive and just in time compilation technique that improves the
performance.

10.Integrated
Java is an interpreted language as well. Programs run directly from the source code

3.2.ANDROID
Android is a software stack for mobile devices that includes an operating system, middleware
and key applications. The android SDK provides the tools and APIs necessary to begin
developing applications on the Android platform using the Java programming language.
3.3Features:
Application framework :enabling reuse and replacement of components
Dalvik virtual machine :optimized for mobile devices
Integrated browser based on the open source WebKit engine
Optimized graphics powered by a custom 2D graphics library; 3D graphics based on the
OpenGL ES 1.0 specification (hardware acceleration optional)
SQLite for structured data storage
Media support for common audio, video, and still image formats (MPEG4, H.264, MP3, AAC,
AMR, JPG, PNG, GIF)
GSM Telephony (hardware dependent)
Bluetooth, EDGE, 3G, and Wi-Fi (hardware dependent)
Camera, GPS, compass, and accelerometer (hardware dependent)
Rich development environment including a device emulator, tools for debugging, memory and
performance profiling, and a plugin for the Eclipse IDE

3.4 ANDROID APPLICATION


Developers have full access to the same framework APIs used by the core applications. The
application architecture is designed to simplify the reuse of components; any application can
publish its capabilities and any other application may then make use of those capabilities (subject
to security constraints enforced by the framework). This same mechanism allows components to
be replaced by the user.

Libraries
Android includes a set of C/C++ libraries used by various components of the Android system.
These capabilities are exposed to developers through the Android application framework. Some
of the core libraries are listed below:
System C library - a BSD-derived implementation of the standard C system library (libc), tuned
for embedded Linux-based devices
Media Libraries - based on Packet Videos OpenCORE; the libraries support playback and
recording of many popular audio and video formats, as well as static image files, including
MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG
Surface Manager - manages access to the display subsystem and seamlessly composites 2D and
3D graphic layers from multiple applications
LibWebCore - a modern web browser engine which powers both the Android browser and an
embeddable web view
SGL - the underlying 2D graphics engine
3D libraries - an implementation based on OpenGL ES 1.0 APIs; the libraries use either
hardware 3D acceleration (where available) or the included, highly optimized 3D software
rasterizer
Free Type - bitmap and vector font rendering

SQLite - a powerful and lightweight relational database engine available to all applications

3.5Android Runtime
Android includes a set of core libraries that provides most of the functionality available in the
core libraries of the Java programming language.
Every Android application runs in its own process, with its own instance of the Dalvik virtual
machine. Dalvik has been written so that a device can run multiple VMs efficiently. The Dalvik
VM executes files in the Dalvik Executable format which is optimized for minimal memory
footprint. The VM is register-based, and runs classes compiled by a Java language compiler that
have been transformed into the .dex format by the included "dx" tool.
The Dalvik VM relies on the Linux kernel for underlying functionality such as threading and
low-level memory management.
an Android code editor that helps you write valid XML for your Android manifest and resource
files.
It will even export your project into a signed APK, which can be distributed to users.
To begin developing Android applications in the Eclipse IDE with ADT, you first need to
download the Eclipse IDE and then download and install the ADT plugin.

Developing in eclipse with ADT:


The Android Development Tools (ADT) plugin for Eclipse adds powerful extensions to the
Eclipse integrated development environment. It allows you to create and debug Android
applications easier and faster. If you use Eclipse, the ADT plugin gives you an incredible boost
in developing Android applications:
It gives you access to other Android development tools from inside the Eclipse IDE. For
example, ADT lets you access the many capabilities of the DDMS tool: take screenshots,
manage port-forwarding, set breakpoints, and view thread and process informationd irectly from
Eclipse.

It provides a New Project Wizard, which helps you quickly create and set up all of the basic files
you'll need for a new Android application.
It automates and simplifies the process of building your Android application.
It provides
Android is a software stack for mobile devices that includes an operating system, middleware
and key applications. The android SDK provides the tools and APIs necessary to begin
developing applications on the Android platform using the Java programming language.
The Android SDK includes a comprehensive set of development tools. These include a
debugger, libraries, a handset emulator (based on QEMU), documentation, sample code, and
tutorials. Currently supported development platforms include x86-architecture computers
running Linux (any modern desktop Linux distribution), Mac OS X 10.4.8 or later, Windows XP
or Vista. The officially supported integrated development environment (IDE) is Eclipse (3.2 or
later) using the Android Development Tools (ADT) Plug in, though developers may use any text
editor to edit Java and XML files then use command line tools to create, build and debug
Android application

About Native code:

Libraries written in C and other languages can be compiled to ARM native code and installed,
but the Native Development Kit is not yet officially supported by Google. Native classes can be
called from Java code running under the Dalvik VM using the System. Load Library call, which
is part of the standard Android Java classes.

3.6 Creating an android project


The ADT plug-in provides a New Project Wizard that you can use to quickly create a new
Android project (or a project from existing code). To create a new project:

Select File > New > Project.

Select Android > Android Project, and click Next.

Select the contents for the project:

Enter a Project Name. This will be the name of the folder where your project is
created.

Under Contents, select Create new project in workspace. Select your project
workspace location.

Under Target, select an Android target to be used as the project's Build Target. The
Build Target specifies which Android platform you'd like your application built
against.

Unless you know that you'll be using new APIs introduced in the latest SDK, you
should select a target with the lowest platform version possible, such as Android 1.1.

Under Properties, fill in all necessary fields :

Enter an Application name. This is the human-readable title for your application the
name that will appear on the Android device.
i.

Enter a Package name. This is the package namespace (following the same
rules as for packages in the Java programming language) where all your source
code will reside.

10

ii.

Select Create Activity (optional, of course, but common) and enter a name for
your main Activity class.

iii.

Enter a Min SDK Version. This is an integer that indicates the minimum API
Level required to properly run your application. Entering this here
automatically sets the min Sdk Version attribute in the <uses-sdk> of your
Android Manifest file. If you're unsure of the appropriate API Level to use,
copy the API Level listed for the Build Target you selected in the Target tab.

iv.

Click Finish.

Once you complete the New Project Wizard, ADT creates the following folders and files in your
new project:
Src/
Includes your stub Activity Java file. All other Java files for your application go here.
<Android Version>/ (e.g., Android 1.1/)
Includes the android.jar file that your application will build against. This is determined by
the build target that you have chosen in the New Project Wizard.
gen/
This contains the Java files generated by ADT, such as your R.java file and interfaces
created from AIDL files.
assets/
This is empty. You can use it to store raw asset files. See Resources and Assets.
res/
A folder for your application resources, such as drawable files, layout files, string values,
etc. See Resources and Assets.

11

AndroidManifest.xml
The Android Manifest for your project. See The AndroidManifest.xml File.

default.properties
This file contains project settings, such as the build target. This files is integral to the project, as
such, it should be maintained in a Source Revision Control system. It should never be edited
manually to edit project properties, right-click the project folder and select "Properties".

3.7 To create an AVD with the AVD manager:

Select Window > Android SDK and AVD Manager, or click the Android SDK and
AVD Manager icon (a black device) in the Eclipse toolbar.

In the Virtual Devices panel, you'll see a list of existing AVDs. Click New to create a
new AVD.

Fill in the details for the AVD.

Give it a name, a platform target, an SD card image (optional), and a skin (HVGA is
default).

Click Create AVD.

When you first run a project as an Android Application, ADT will automatically create a run
configuration. The default run configuration will launch the default project Activity and use
automatic target mode for device selection (with no preferred AVD).

12

3.8 To Create or Modify a Launch Configuration


Follow these steps as appropriate for your Eclipse version:

Open the run configuration manager.

In Eclipse 3.3 ,select Run > Open Run Dialog (or Open Debug Dialog)

In Eclipse 3.4 (Ganymede), select Run > Run Configurations (or Debug Configurations)

Expand the Android Application item and create a new configuration or open an existing
one.

13

4. SOFTWARE REQUIREMENTS ANALYSIS


4.1 PROBLEM DEFINITION:
one of the fastest growing industries now a day is mobile industry. There are
many competitors in this area who are doing research and development on new platforms & user
experience. One such technology is Android from Google which is supported for Google phones.
These phones are described as next Generation mobiles [As described by Google]. This
application Personalized voice based task remainder can be used by any Android mobile user.
The proposed application is a tool developed for android platform, which is used to create and
organize tasks or actions one need to get done. This relieves one from the stress of remember
everything one need to do. As this is a mobile application one can easily organize his actions
where ever he is with ease. With this one can add his instant ideas and quickly check the top
priority action that need to be done immediately. This application enables us to categorize
actions into projects and optionally provides a context for that action. This categorization breaks
down the projects into simple achievable actions. As a project evolves around time one can
delete old actions which are performed and new actions which need to get done. We wanted to
build Methodiser in Mobile phone with the latest technology in the market. One such technology
is Google Android SDK.

4.2 MODULES:
Voice Recording Module : It has a start recording option which allows to and set to the
assigned time.
Separate storage folder : Any application in android generally stores their media files in gallery
, but for specified usage and to avoid ambiguity, it can store in new folder.
Media Player Module: The audio note recorded is played in a private media player which is
designed for this application.
Output : At the set time, it notifies in the notification bar which can be played to listen to the
remainder user has recorded.

14

4.3 FEASIBILITY STUDY:


The next step in analysis is to verify the feasibility of the proposed system. All projects are
feasible given unlimited resources and infinite time. But in reality both resources and time are scarce.
Project should confirm to time bounce and should be optimal in there consumption of resources. This
place a constant is approval of any project.

Feasibility has applied to VNC viewer pertains to the following areas:

Technical feasibility

Operational feasibility

Economic feasibility

TECHNICAL FEASIBILITY:
To determine whether the proposed system is technically feasible, we should take into
consideration the technical issues involved behind the system.
VNC viewer uses the web technologies, which is rampantly employed these days worldwide. The
world without the internet is incomprehensible today. That goes to proposed system is technically
feasible.

OPERATIONAL FEASIBILITY:
To determine the operational feasibility of the system we should take into consideration the
awareness level of the users. This system is operational feasible since the users are familiar with the
technologies and hence there is no need to gear up the personnel to use Cell. Also the system (Cell
phones) is very friendly and to use.

ECONOMIC FEASIBILITY:
To decide whether a project is economically feasible, we have to consider various factors as:

Cost benefit analysis

Long-term returns

Maintenance costs

15

5. SYSTEM DESIGN
5.1 ARCHITECTURE DIAGRAM
Architecture diagram is a diagram of a system, in which the principal parts or functions
are represented by blocks connected by lines that show the relationships of the blocks.The block
diagram is typically used for a higher level, less detailed description aimed more at
understanding the overall concepts and less at understanding the details of implementation.

AndroidSDK
Search/
add

Java
program

Get
Voice
record

SQLite

Fig 6.1 Architecture of Task Reminder


A search/add user for who the application looks like an user interface actually consists of a
database called as SQLite that comes along with Android SDK and need no other installation.
This is the database that is used to store and retrieve information. This is an application that is
developed in java and hence all its features apply here as well such as platform independence,
data hiding,

16

5.2 DATA FLOW DIAGRAMS


A data-flow diagram (DFD) is a graphical representation of the "flow" of data through an
information system. DFDs can also be used for the visualization of data processing (structured
design).
On a DFD, data items flow from an external data source or an internal data store to an
internal data store or an external data sink, via an internal process. The idea behind the explosion
of a process into more process is that understanding at one level of detail is exploded into greater
detail at the next level. This is done further explosion is necessary and an adequate amount of
detail is described for analyst to understand the process.
`A DFD is also known as a bubble chart has the purpose of clarifying system
requirements and identifying major transformations that will become programs in system design.
So it is the starting point of the design to the lowest level of detail. A DFD consists of a
series of bubbles joined by data flows in the system.

5.3 DFD Symbols


In the DFD, there are four symbols
1. A Square defines a source or destination of system data.
2. An arrow identifies data flow. It is the pipeline through which the information flows.
3. A circle or a bubble represents a process that transforms incoming data flow into
outgoing data flows.
4. An open rectangle is a data store ,data at rest or a temporary repository of data

17

Process that transforms data flow

Source or destination of data

Data flow

Data store

18

5.4 UNIFIED MODELING LANGUAGE (UML)


UML Concepts
The Unified Modeling Language (UML) is a standard language for writing software blue prints.
The UML is a language for
Visualizing
Specifying
Constructing
Documenting the artifacts of a software intensive system.
The UML is a language which provides vocabulary and the rules for combining words in that
vocabulary for the purpose of communication. A modeling language is a language whose
vocabulary and the rules focus on the conceptual and physical representation of a system.
Modeling yields an understanding of a system.

Building Blocks of the UML:


The vocabulary of the UML encompasses three kinds of building blocks:
Things
Relationships
Diagrams
Things are the abstractions that are first-class citizens in a model; relationships tie these things
together; diagrams group interesting collections of things.

Things in the UML:


There are four kinds of things in the UML:
Structural things
Behavioral things
Grouping things
Annotational things
19

Structural things are the nouns of UML models. The structural things used in the project
design are:
First, a class is a description of a set of objects that share the same attributes, operations,
relationships and semantics.

Window
origin
size
open()
close()
move()
display()

Fig: Classes

Second, a use case is a description of set of sequence of actions that a system performs that
yields an observable result of value to particular actor.

Fig: Use Cases

20

Third, a node is a physical element that exists at runtime and represents a computational
resource, generally having at least some memory and often processing capability.

Fig: Nodes

Behavioral things are the dynamic parts of UML models. The behavioral thing used is:
Interaction:
An interaction is a behavior that comprises a set of messages exchanged among a set of objects
within a particular context to accomplish a specific purpose. An interaction involves a number of
other elements, including messages, action sequences (the behavior invoked by a message, and
links (the connection between objects).

Fig: Messages
Relationships in the UML:

There are four kinds of relationships in the UML:


Dependency
Association
Generalization
Realization
A dependency is a semantic relationship between two things in which a change to one thing may
affect the semantics of the other thing (the dependent thing).

21

Fig: Dependencies
An association is a structural relationship that describes a set links, a link being a connection
among objects. Aggregation is a special kind of association, representing a structural relationship
between a whole and its parts.

Fig: Association

A generalization is a specialization/ generalization relationship in which objects of the


specialized element (the child) are substitutable for objects of the generalized element(the
parent).

Fig: Generalization

A realization is a semantic relationship between classifiers, where in one classifier specifies a


contract that another classifier guarantees to carry out.

Fig: Realization

22

5.5 UML DIAGRAMS


5.5.1Class Diagram
An object is any person, place, thing, concept, event, screen, or report applicable to your system.
Objects both know things (they have attributes) and they do things (they have methods).
A class is a representation of an object and, in many ways, it is simply a template from which
objects are created. Classes form the main building blocks of an object-oriented application.
Although thousands of students attend the university, you would only model one class,
called Student, which would represent the entire collection of students.
Responsibilities

Classes are typically modeled as rectangles with three sections: the top section for the name of
the class, the middle section for the attributes of the class, and the bottom section for the methods
of the class. Attributes are the information stored about an object, while methods are the things
an object or class do. For example, students have student numbers, names, addresses, and phone
numbers. Those are all examples of the attributes of a student. Students also enroll in courses,
drop courses, and request transcripts. Those are all examples of the things a student does, which
get implemented (coded) as methods. You should think of methods as the object-oriented
equivalent of functions and procedures.

CLASS DIAGRAM
Date Class
StringDate

Date()

Notification

Record

View Task

String Notifier

String Task

String Recard
String Stop

Notification()

view()
play()

Media Recard()

23

5.5.2INTERACTION DAIGRAMS
Sequence Diagrams:
UML SEQUENCE diagrams are used to represent the flow of messages, events and actions
between the objects or components of a system. Time is represented in the vertical direction
showing the sequence of interactions of the header elements, which are displayed horizontally at
the top of the diagram.
Sequence Diagrams are used primarily to design, document and validate the architecture,
interfaces and logic of the system by describing the sequence of actions that need to be
performed to complete a task or scenario. UML sequence diagrams are useful design tools
because they provide a dynamic view of the system behavior which can be difficult to extract
from static diagrams or specifications
Actor

Represents an external person or entity that interacts with the system

Object
Represents an object in the system or one of its components

Unit

24

Represents a subsystem, component, unit, or other logical entity in the system (may or may not be
implemented by objects)

Separator
Represents an interface or boundary between subsystems, components or units (e.g., air interface,
Internet, network)

Group

Groups related header elements into subsystems or components

Sequence Diagram Body Elements

Action
Represents an action taken by an actor, object or unit

25

Asynchronous Message

An asynchronous message between header elements

Block
A block representing a loop or conditional for a particular header element

Call Message
A call (procedure) message between header elements

Create Message

A "create" message that creates a header element (represented by lifeline going from dashed to solid
pattern)

26

Diagram Link

Represents a portion of a diagram being treated as a functional block. Similar to a procedure or function
call that abstracts functionality or details not shown at this level. Can optionally be linked to another
diagram for elaboration.

Else Block Represents an "else" block portion of a diagram block

Return Message

A return message between header elements

27

SEQUENCE DIAGRAM
U:User

M:Mobile

1 Open Application

1.1 Access for application

2 Search Date

2.1 Shows the task list

3 Record a new task

3.1 Play a recorded task

3.2 Plays the recorded task

4 Notifies the task in notification bar

28

A:App

5.5.3Object diagram

An object diagram in the Unified Modeling Language (UML), is a diagram that shows a
complete or partial view of the structure of a modeled system at a specific time.
An object diagram focus on some particular set of object instances and attributes, and the
links between the instances. A correlated set of object diagrams provides insight into how an
arbitrary view of a system is expected to evolve over time. Object diagrams are more concrete
than class diagrams, and are often used to provide examples, or act as test cases for the class
diagrams. Only those aspects of a model that are of current interest need be shown on an object
diagram.

D:Date Class
StringDate

Date()

N:Notification

V:View Task

String Notifier

String Task

String Recard
String Stop

Notification()

view()
play()

Media Recard()

29

R:Record

5.5.4Use Case Diagram


A use case diagram is a graph of actors set of use cases enclosed by a system boundary,
communication associations between the actors and users and generalization among use cases.
The use case model defines the outside(actors) and inside(use case) of the systems behavior.
use case diagram is quite simple in nature and depicts two types of elements: one representing
the business roles and the other representing the business processes.

Figure 3.1: an actor in a use case diagram


To identify an actor, search in the problem statement for business terms that portray roles in the
system. For example, in the statement "patients visit the doctor in the clinic for medical tests,"
"doctor" and "patients" are the business roles and can be easily identified as actors in the system.
Use case: A use case in a use case diagram is a visual representation of a distinct business
functionality in a system. The key term here is "distinct business functionality." To choose a
business process as a likely candidate for modeling as a use case, you need to ensure that the
business process is discrete in nature.
As the first step in identifying use cases, you should list the discrete business functions in your
problem statement. Each of these business functions can be classified as a potential use case.
Remember that identifying use cases is a discovery rather than a creation. As business
functionality becomes clearer, the underlying use cases become more easily evident. A use case
is shown as an ellipse in a use case diagram (see Figure 3.2).

30

Figure 3.2: use cases in a use case diagramFigure 3.2 shows two uses cases: "Make
appointment" and "Perform medical tests" in the use case diagram of a clinic system. As
another example, consider that a business process such as "manage patient records" can
in turn have sub-processes like "manage patient's personal information" and "manage
patient's medical information." Discovering such implicit use cases is possible only with
a thorough understanding of all the business processes of the system through discussions

Date Search

View Tasks

User
Record Tasks

Play Tasks

Notifications

USECASE DIAGRAM
31

5.5.5Activity Diagram
Activity diagrams represent the business and operational workflows of a system. An Activity
diagram is a dynamic diagram that shows the activity and the event that causes the object to be in
the particular state.
So, what is the importance of an Activity diagram, as opposed to a State diagram? A State
diagram shows the different states an object is in during the lifecycle of its existence in the
system, and the transitions in the states of the objects. These transitions depict the activities
causing these transitions, shown by arrows.
An Activity diagram talks more about these transitions and activities causing the changes in the
object states.

i e

r c

la

t i f i c

t e

r d

t i o

ACTIVITY DIAGRAM

32

Defining an Activity diagram


Let us take a look at the building blocks of an Activity diagram.
Elements of an Activity diagram

An Activity diagram consists of the following behavioral elements:

Initial Activity: This shows the starting point or first activity of the flow. Denoted by a solid
circle. This is similar to the notation used for Initial State.

Activity: Represented by a rectangle with rounded (almost oval) edges.

.
Decisions: Similar to flowcharts, a logic where a decision is to be made is depicted by a
diamond, with the options written on either sides of the arrows emerging from the diamond,
within box brackets.

33

Signal: When an activity sends


ds or receives a message, that activity is called a signal. Signals are
of two types: Input signal (Message receiving activity) shown by a concave polygon and Output
signal (Message sending activity) shown by a convex polygon.

Concurrent Activities: Some activities occur simultaneously or in parallel. Such activities are
called concurrent activities. For example, listening to the lecturer and looking at the blackboard
is a parallel activity.
ivity. This is represented by a horizontal split (thick dark line) and the two
concurrent activities next to each other, and the horizontal line again to show the end of the
parallel activity.

Final Activity: The end off the Activity diagram is shown by a bull's eye symbol, also called as a final
activity.

34

5.5.6Statechart diagram
State chart diagram is used to describe the states of different objects in its life cycle. So the
emphasis is given on the state changes upon some internal or external events. These states of
objects are important to analyze and implement them accurately.State chart diagrams are very
important for describing the states. States can be identified as the condition of objects when a
particular event occurs.
Before drawing a State chart diagram we must have clarified the following points:

Identify important objects to be analyzed.

Identify the states.

Identify the events

S e a r c h D a te

V ie w T a s ks

R e c o rd

P la y T a s k s

N o ti f i c a ti o n

STATE CHART DIAGRAM

35

5.5.7Deployment
Deployment Diagram
Deployment diagrams are used to visualize the topology of the physical components of a system
where the software components are deployed.
So deployment diagrams are used to describe the static deployment view of a system.
Deployment diagrams consist of nodes and their relationships.
The purpose of deployment diagrams can be described as:

The name Deployment itself describes


escribes the purpose of the diagram. Deployment diagrams are
used for describing the hardware components where software components are deployed.

Visualize hardware topology of a system.

Describe the hardware components used to deploy software components.

Describe runtime processing nodes.

Deployment Diagram:

36

5.6 DATABASE DESIGN:


SQLITE
SQLite is an ACID-compliant embedded relational database management system contained in a relatively
small C programming library. The source code for SQLite is in the public domain.

Design

Unlike

client-server database management systems, the SQLite engine is not a standalone process with
which the application program communicates. Instead, the SQLite library is linked in and thus
becomes an integral part of the application program. The library can also be called dynamically.
The application program uses SQLite's functionality through simple function calls, which
reduces latency in database access as function calls within a single process are more efficient
than inter-process communication.

Features

SQLite

implements most of the SQL-92 standard for SQL but it lacks some features. A standalone
program called sqlite3 is provided which can be used to create a database, define tables within it,
insert and change rows, run queries and manage an SQLite database file. SQLite is a popular
choice for local/client SQL storage within a web browser and within a rich internet application
framework. This may be because SQLite's dynamically typed storage matches the web browser's
core languages of Javascript and XML. SQLite uses an unusual type system for an SQLcompatible DBMS. Instead of assigning a type to a column as in most SQL database systems,
types are assigned to individual values; in language terms it is dynamically typed.

37

6.CODING/CODINGTEMPLATES
6.1 JAVA CODE
1.Main Activity.java
package com.example.sampleproject;
import java.util.Calendar;
import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Color;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.Toast;
38

public class MainActivity extends Activity {


// String arrayMonth[] =
{"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sept","Oct","Nov","Dec"};
Button date_button;
static final int DATE_DIALOG_ID = 0;
private int mYear;
private int mMonth;
private int mDay;
EditText date_;
SQLiteDatabase db;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
db=openOrCreateDatabase("record",MODE_PRIVATE,null);
db.execSQL("create table if not exists recordings(rdate varchar,rfile varchar)");
date_ = (EditText)findViewById(R.id.EditText01);
date_.setTextColor(Color.RED);
date_button = (Button)findViewById(R.id.Button01);
date_.setOnTouchListener(new OnTouchListener() {

39

String month=sda[1];
String year=sda[2];
String fdate=dayofdate+"-"+month+"-"+year;
it.putExtra("ss",fdate);
startActivity(it);
}}
});
// get the current date
final Calendar c = Calendar.getInstance();
mYear = c.get(Calendar.YEAR);
mMonth = c.get(Calendar.MONTH);
mDay = c.get(Calendar.DAY_OF_MONTH);
// display the current date (this method is below)
updateDisplay();
}
private void updateDisplay() {
date_.setText(
new StringBuilder()
// Month is 0 based so add 1
.append(mMonth+1).append("-")
.append(mDay).append("-")
40

.append(mYear));
}
private DatePickerDialog.OnDateSetListener mDateSetListener =
new DatePickerDialog.OnDateSetListener() {

public void onDateSet(DatePicker view, int year,


int monthOfYear, int dayOfMonth) {
mYear = year;
mMonth = monthOfYear;
mDay = dayOfMonth;
updateDisplay();
}
};
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case DATE_DIALOG_ID:
return new DatePickerDialog(this,
mDateSetListener,
mYear, mMonth, mDay);
}
41

return null;
}

}
2.Recording.java
package com.example.sampleproject;
import java.util.ArrayList;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
42

import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
public class recordlist extends Activity{
ArrayList<String>al=new ArrayList<String>();
String ss;
SQLiteDatabase db;
String S1;
final Context context = this;
// set title
alertDialogBuilder.setTitle("Delete");
// set dialog message
alertDialogBuilder
.setMessage("You Want Delete")
.setCancelable(false)
.setPositiveButton("Yes",new
DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
// if this button is clicked, close
// current activity

43

dialog.cancel();
}
});

3.RecordList.java
package com.example.sampleproject;
import java.util.ArrayList;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
44

import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
public class recordlist extends Activity{
ArrayList<String>al=new ArrayList<String>();
String ss;
SQLiteDatabase db;
String S1;
final Context context = this;
@SuppressWarnings({ "unchecked", "rawtypes" })
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
ArrayAdapter(getApplicationContext(),android.R.layout.simple_list_item_1,al));
}
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
45

// TODO Auto-generated method stub


String S=(String)lv.getItemAtPosition(arg2).toString();
Intent it=new Intent(recordlist.this,song.class);
it.putExtra("dr",S);
startActivity(it);
finish();
}
});
lv.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
S1=(String)lv.getItemAtPosition(arg2).toString();
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
context);
// set title

// current activity
// db.delete("recordings", "rfile=?",null);

46

db.execSQL("DELETE FROM recordings


WHERE rfile='"+S1+"' ");
// db.delete("recordings", "rfile=?", new
String[]{S1,ss});
Intent it=new
Intent(recordlist.this,MainActivity.class);
startActivity(it);
recordlist.this.finish();
finish();
}
})
.setNegativeButton("No",new
DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
// if this button is clicked, just close
// the dialog box and do nothing
dialog.cancel();
}
});
// create alert dialog
AlertDialog alertDialog = alertDialogBuilder.create();
// show it

47

alertDialog.show();
return false;
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
menu.add("Recording");
return super.onCreateOptionsMenu(menu);
}
}
}

48

6.2 XML CODE:


1.Activity Main.Xml
<?xml version="1.0"?>
<RelativeLayout android:layout_height="fill_parent" android:background="@drawable/enter2"
android:layout_width="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"><TextView
android:layout_height="wrap_content" android:layout_width="wrap_content"
android:textStyle="bold" android:textSize="20sp" android:text="Date:"
android:layout_marginTop="89dp" android:layout_centerHorizontal="true"
android:layout_alignParentTop="true" android:id="@+id/textView1"/><EditText
android:layout_height="wrap_content" android:layout_width="wrap_content"
android:id="@+id/EditText01" android:inputType="date" android:hint="Date........" android:ems="10"
android:layout_marginLeft="26dp" android:layout_below="@+id/textView1"
android:layout_alignParentLeft="true"/><Button android:layout_height="wrap_content"
android:layout_width="wrap_content" android:text="Search/Add Tasks"
android:layout_marginTop="72dp" android:id="@+id/Button01"
android:layout_below="@+id/EditText01"
android:layout_alignRight="@+id/EditText01"/></RelativeLayout>

2.Recording.Xml
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout android:orientation="horizontal" android:layout_height="match_parent"
android:background="@drawable/mike5" android:layout_width="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android"><Button
android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="Start
Recording" android:onClick="startRecording" android:id="@+id/start"/><Button
android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="Stop
Recording" android:onClick="stopRecording" android:id="@+id/stop"
android:visibility="gone"/></LinearLayout>

49

3.RecordList.Xml
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout android:orientation="vertical" android:layout_height="match_parent"
android:background="@drawable/enter3" android:layout_width="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android"><ListView
android:layout_height="wrap_content" android:layout_width="match_parent"
android:id="@+id/listView1"> </ListView></LinearLayout>

Method of Implementation
Implementation literally means to put into effect or to carry out. The system implementation phase of the
software deals with the translation of the design specifications into the source code. The ultimate goal of
the implementation is to write the source code and the internal documentation so that it can be verified
easily. The code and documentation should be written in a manner that eases debugging, testing and
modification. System flowcharts, sample run on packages, sample output etc. Is part of the
implementation?
An effort was made to satisfy the following goals in order specified.

Minimization of Response Time.

Clarity and Simplicity of the Code.

Minimization of Hard-Coding.

Various types of bugs were discovered while debugging the modules. These ranged from logical
errors to failure on account of various processing cases.

50

7. TESTING AND VALIDATION


The development of software systems involves of a series of production activities where
opportunities for injection of human fallibilities are enormous. Errors may begin to occur at the
very inception of the process where the objectives may be erroneously or imperfectly specified,
as well as in later design and development stages. Because of human inability to perform and
communicate with perfection, software development is accompanied by a quality assurance
activity.

TESTING TECHNIQUES
Testing is the process of executing a program with the intention of finding errors. The various
test strategies used for testing the software are as follows.

7.1 Unit Testing


Unit testing focuses on verification effort on the smallest unit of the software design module. The
main goal is to make sure that every source statement and logic path has been executed correctly
at least once. The output of this stage is the source code.

7.2 Integration Testing


In Integration testing, we find errors that have occurred during the integration. After testing each
module, which is then integrated into subsystems and then to form the entire system on which
integration testing is performed. The goal of testing is to detect the design errors, while focusing
on the testing the interconnection between modules.

7.3 Validation Testing


This testing concentrates on confirming that the software is error-free in all respects. All the
specified validations are verified and the software is subjected to hard-core testing. It also aims at
51

determining the degree of deviation that exists in the software designed from the specification;
they are listed out and are corrected.

7.4 System Testing


In this testing, the system is tested for the errors after coupling all the modules together The
system is tested against the specified requirements to see if all the requirements are met and the
system performs as specified by the requirements.

7.5 Test Cases:


package com.example.sampleproject;
import android.app.Activity;
import android.media.MediaRecorder;
import android.media.MediaPlayer;
public class recording extends Activity
{
static int i=0;
public static int index=0;
ArrayList ad=new ArrayList();
String ss;
SQLiteDatabase db;
String ss1;
private static final String LOG_TAG = "AudioRecordTest";
52

private static String mFileName = null;


private RecordButton mRecordButton = null;
private MediaRecorder mRecorder = null;
private PlayButton mPlayButton = null;
/* mPlayButton = new PlayButton(this);
ll.addView(mPlayButton, new LinearLayout.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT,
0));*/
setContentView(ll);
}
File folder = new File(Environment.getExternalStorageDirectory() + "/MyRecords");{
boolean success = true;
if (!folder.exists()) {

//unit and Integration Testing

success = folder.mkdir();
}
if (success) {
// Do something on success
} else {
// Do something else on failure
}
53

8.OUTPUT SCREENS

screen shot for search/add tasks

54

screen shot for setting date

55

screen shot for recording

56

screen shot for recording

57

screenshot for start recording/playing

58

screen shot for showing record lists

59

60

screen shot for play/stop recording

61

CONCLUSION
This is a voice based remainder on android which overcomes the legacy of routine textual
remainders and it also allows the user to store the recorded files in a separate folder in an SD
card rather than in the media gallery. Hence this is a very useful application to Android mobile
users.This application can be extended further in future adding few more extensions like
automatic playing of the task at a given time without getting into the applicationThis can also
integrated with mobile messengers to send voice remainders at a given time.

62

10.BIBLOGRAPHY
1.Herbert Schildt.2008 ,Java Complete Reference, Tata McGraw-Hill ,
7th Edition, pp.177-180 .
1. Grady Booch, James Rambaugh.1998,UnifiedModeling Language User Guide,
Publishing, chapter 8-31.

WEBSITES:

REFERRED URLS:

www.android.com

http://developer.android.com/index.html

www.google.com

http://en.wikipedia.org/wiki/SQLite

63

Addison Wesley

You might also like