Professional Documents
Culture Documents
CHAPTER 1
INTRODUCTION
1.1. OVERVIEW
This android application provides a platform where a user can search the location by
clicking the picture of a at particular location and uploading it on the application.
It will then show the corresponding address of the particular picture which has been
uploaded.
CLICK-O-PIC is a online local search service that helps quickly and conveniently
find information about the particular location, while helping in improving the
effectiveness of users comforts. User here clicks a picture and then we get the
corresponding address of that particular place if available otherwise only the location
is retrieved over the map.
It is an android app that helps user to find the nearby places of the current location
like hospitals, schools, restaurants, etc.
It also helps user to find the weather of the current place of today and of next three
days.
1.2. FEATURES
2. The user needs to download the application from PlayStore and then install
the application in order to enjoy the services of the CLICK_O_PIC
application.
3. Basic feature of this app is that you can the address just by clicking the
picture of that area.
4. On clicking over the upload button ; the picture gets uploaded on the
application and its corresponding address is retrieved and if its
1.3. PURPOSE
The main purpose of this project is to provide the Mobile User with corresponding
address of the particular location as well as to provide them the accessibility of nearby
location details and weather of the current location.
In other words we can say that the project has the following purposes:-
Provide the Mobile User with different services at anywhere, at any time:
This basically means that an android mobile user can get the benefits of the
application services at anywhere and anytime. The android mobile user just have to
click the picture of the particular area for getting its corresponding address. The
various services are as follows:
Search by voice.
Search by typing.
Audio chatting
Video chatting
This basically means that if we are in a hurry and want to get out of a particular place
but we do not know our exact location then our application can help in many ways.
Like if there a place where someone wants to go but do not know the name of the
location then by uploading the picture he or she can get the corresponding address of
that particular location.
It is very easy to use this application. Just with a few clicks we can find out our not
only our current location but also can search for any place on the map also.
Anybody can use it easily. Just requires an android mobile phone and internet
connectivity.
It means with this app use can get the detailed information about the nearby places in
a very easy and efficient manner.
This app help user to get the details of the current weather plus user can also come to
know about the weather of the next three days.
CHAPTER 2
Our project development life cycle typically involves the following phases:
So our application problem statement is to provide user the flexibility of using one
single app for three different functions which one can find in three different apps, but
not only this but also in such a manner that user finds it easy to use it.
This is the most crucial step in creating a successful system, we have decide the
objectives, the resources such as personnel and costs.
Developing a system is feasible if and only if it is beneficial and removes all the
drawbacks of the existing system and also enhances the way of operation to make the
operation performing easy. The user should be satisfied with its functionality. If
system does not fulfill this requirement then developing that system would be futile.
My basic aim is to develop this system is to improve its functionality and removes all
the drawback of existing system.
The system requires very low system resources and the system will work in
almost all configurations.
o Greater efficiency.
o Better service.
2.3 MOTIVATION
As we know that internet is growing day by day and from small to large enterprise
and as we know that with this increasing work load of people and less time and less
connectivity of one person with person.
When new people who shifted to new places or the tourists who came to explore our
country must find it difficult to move around the place without any knowledge about
it and plus it becomes more difficult if you don’t know anyone who can guide you.
And for all this purpose the user have to go through several different apps.
So, thinking over this, we try to make an app that help people around the world to find
the address of any place without asking anyone and also the nearby places and
weather of that current place.
The user gets all the resources at a single place instead of wandering around for these.
Thus we provide the user the functionality of three different apps in just one app.
This app is effective and saves time and costs of the users.
This app is not only useful for adults but also for the children as when they get lost
somewhere without taking help of any stranger who can misguide them but with our
app they can easily reach their place safely by searching there current place address
plus the nearby places such as police stations or railway stations, etc in a very short
time.
This is also user friendly app with nota very long processing and very easy to interact.
The objective of this phase is to define in more detail the system inputs, processes,
outputs and interfaces. At the end of this phase the system’s processes will be defined
at the functional level, meaning the functions to be performed will be known, but not
necessarily how they will be performed.
Requirements Analysis will identify and consider the risks related to how the
technology will be integrated into the standard operating procedures. Requirements
Analysis will collect the functional and system requirements of the business process,
the user requirements and the operational requirements (e.g., when operational what is
necessary to keep the system up and running).
This phase is also known as feasibility study. In this stage the Requirement is been
gathered for the product to be developed. The gathered requirement is documented in
a simple document which is known as the Software Requirement Specification.
The feasibility study is the important step in any software development process. This
is because it makes analysis of different aspects like cost required for developing and
executing the system, the time required for each phase of the system and so on. If
these important factors are not analyzed then definitely it would have impact on the
organization and the development and the system would be a total failure. So for
running the project and the organization successfully this step is a very important step
in a software development life cycle process.
In the software development life cycle after making an analysis in the system
requirement the next step is to make analysis of the software requirement. In other
words feasibility study is also called as software requirement analysis. In this phase
development team has to make communication with customers and make analysis of
their requirement and analyze the system.
By making analysis this way it would be possible to make a report of identified area
of problem. By making a detailed analysis in this area a detailed document or report is
prepared in this phase which has details like project plan or schedule of the project,
the cost estimated for developing and executing the system, target dates for each
phase of delivery of system developed and so on. This phase is the base of software
development process since further steps taken in software development life cycle
would be based on the analysis made on this phase and so careful analysis has to be
made in this phase.
Though the feasibility study cannot be focused on a single area some of the areas or
analysis made in feasibility study is given below. But all the steps given below would
not be followed by all system developed. The feasibility study varies based on the
system that would be developed.
Feasibility study is made on the system being developed to analyze whether the
system development process require training of personnel. This help in
designing training sessions as required in later stage.
Is the system developed has scope for expanding or scope for switching to new
technology later if needed in ease. In other study is made to find the portability
of the system in future.
Is the cost of developing the system high or does it meet the budgeted costs.
That is a cost benefit analysis is made. In other words an analysis is made on
cost feasibility of the project. This helps in identifying whether the organization
would meet the budgeted costs and also helps the organization in making
earlier and effective plans for meeting extra costs because of the system
development.
Analysis is made on what software to use for developing the system. This study
and analysis would help to choose the best implementation for system and the
organization. This feasibility study includes factors like scalability, how to
install, how to develop and so on. This feasibility study in short includes the
analysis of technical areas. This analysis helps the efficiency of the system
developed to get improved. This is because by choosing the correct technology
by making analysis on the needs of system helps in improving the efficiency of
the system.
The above feasibilities are analysis which helps in development of the system.
But the scope of feasibility study does not end with this. Analysis or feasibility
study also includes the analysis of maintenance stage. In other words feasibility
study is made to analyze how one would maintain the system during
maintenance stage. This helps sin planning for this stage and also helps in risk
analysis. Also the analysis helps in making analysis about what training must
be given and how and what all documents must be prepared to help users and
developers to face maintenance phase.
There are many advantages of making feasibility study some of which are
summarized below:
This study being made as the initial step of software development life cycle has
all the analysis part in it which helps in analyzing the system requirements
completely.
Helps in identifying the risk factors involved in developing and deploying the
system
The feasibility study helps in planning for risk analysis Feasibility study helps
in making cost/benefit analysis which helps the organization and system to run
efficiently.
Thus before developing a product or software it is an essential step that one does
feasibility study in some or all the areas mentioned which would help in developing
and maintaining the software efficiently and effectively within budgeted costs.
CHAPTER 3
SYSTEM DESIGN
Since the emergence of design thinking as a vehicle for business and research
development, many conventionally trained aesthetic designers have wrongly been
called upon to support organizations with workshops pertaining specifically to
business or process development in the incorrect assumption that all design is equal in
this capacity. This has resulted in a large shadow being cast over the role of design in
business and development and questions being asked about the value of design as a
tool for business and research development.
Concept design generally takes place after feasibility studies and options appraisals
have been carried out and a project brief has been prepared. The concept design
represents the design team's initial response to the project brief.
Some designers will differentiate between 'concept design' and 'scheme design'. In this
case, the 'concept' is the initial design idea, whereas the 'scheme' develops the
concept, taking on board more functional and practical considerations. Most project
plans have now combined these two steps into the single stage 'concept design', or
'concept'. Concept design is followed by 'detailed design' or 'developed design' during
which all the main components of the building and how they fit together are
described.
During the concept design stage, the consultant team will develop:
Outline specifications.
Schedules of accommodation.
A planning strategy.
Procurement options.
Descriptions of the design tasks that are performed during this stage can be found at:
Where building information modelling (BIM) is being used, at this stage, the built
asset might be represented by massing diagrams or 2D symbols representing generic
elements, with some critical elements developed in more detail. The project
information model may also include drawings, reports and other structured
information directly related to the built asset and its facilities, floors, spaces, zones,
systems and components It can also be useful at this stage to generate presentation
material such as photo visualisations and 3D walk-throughs that help facilitate
employer assessments and consultations with user panels, champions, and other
stakeholders.
At the end of the stage, the consultant team will prepare a concept design report for
the client which records the basic design concepts for the preferred option that might
be worth further investigation in the detailed design stage. The concept design report
will also identify any instructions required from the client.
The project brief will continue to develop as the concept design is prepared, but is
then frozen at the end of the concept design stage and change control procedures are
introduced.
An application for planning permission might be made during the concept design
stage. This is likely to be an outline planning application if made at the beginning of
the stage or a detailed planning application if made once the concept design is
complete.
DOs are used because applicable systems standards are not in existence.
System design is the process of defining the architecture, modules, interfaces, and
data for a system to satisfy specified requirements. Systems design could be seen as
the application of systems theory to product development. There is some overlap with
the disciplines of systems analysis, systems architecture and systems engineering.
Until the 1990s, systems design had a crucial and respected role in the data processing
industry. In the 1990s, standardization of hardware and software resulted in the ability
to build modular systems. The increasing importance of software running on generic
platforms has enhanced the discipline of software engineering.
Object-oriented analysis and design methods are becoming the most widely used
methods for computer systems design. The UML has become the standard language in
object-oriented analysis and design. It is widely used for modeling software systems
and is increasingly used for high designing non-software systems and organizations.
Architectural design
The architectural design of a system emphasizes the design of the system architecture
that describes the structure, behavior and more views of that system and analysis.
Logical design
The logical design of a system pertains to an abstract representation of the data flows,
inputs and outputs of the system. This is often conducted via modelling, using an
over-abstract (and sometimes graphical) model of the actual system. In the context of
systems, designs are included. Logical design includes entity-relationship diagrams
(ER diagrams).
Physical design
The physical design relates to the actual input and output processes of the system.
This is explained in terms of how data is input into a system, how it is
verified/authenticated, how it is processed, and how it is displayed. In physical design,
the following requirements about the system are decided.
1. Input requirement,
2. Output requirements,
3. Storage requirements,
4. Processing requirements,
Put another way, the physical portion of system design can generally be broken down
into three sub-tasks:
2. Data Design
3. Process Design
User Interface Design is concerned with how users add information to the system and
with how the system presents information back to them. Data Design is concerned
with how the data is represented and stored within the system. Finally, Process Design
is concerned with how data moves through the system, and with how and where it is
validated, secured and/or transformed as it flows into, through and out of the system.
At the end of the system design phase, documentation describing the three sub-tasks is
produced and made available for use in the next phase.
Physical design, in this context, does not refer to the tangible physical design of an
information system. To use an analogy, a personal computer's physical design
involves input via a keyboard, processing within the CPU, and output via a monitor,
printer, etc. It would not concern the actual layout of the tangible hardware, which for
a PC would be a monitor, CPU, motherboard, hard drive, modems, video/graphics
cards, USB slots, etc. It involves a detailed design of a user and a product database
structure processor and a control processor. The H/S personal specification is
developed for the proposed system.
System Design is the solution to the creation of a new system. This is the important
aspect made up of several steps. The complete, efficient and successful system should
provide the following in succession: -
If the project is to be successful, we will need answer these question. The answer of
these questions is schema manner and is known as system design.
system. The design phase is transition from a user oriented to a document oriented to
the programmers.
Software report can be broken into a series of steps starting with the basic ideas and
ending with the finished project.
We should define problem completely and the goals should be known before our
destination
In the next step, we should specify inputs and outputs of our interest
Then the structure of various database should be designed which will be used
during the programming
Next, we should design our programs of user friendly nature and always provide a
way to the user to read back the origin if he/she find any complex problem at any
stage
We should know the function of each and every program which will leads us to or
helps us to read at the specified goal.
Then we write these individual programs which later on joining solve our problem
Next step involve then testing of these programs and correction – if necessary
At last, linking all the programs in a well-specified manner and combining in the
form of a menu, submenu etc. will be our defined problem.
CHAPTER 4
WORKING ENVIRONMENT
Tools/platform
This project is developed using the tools, which are most suited for development of
the Application Package. These tools are as follows: -
JSON, as an intermediate between Android code(Front end) and MySql( Back End )
Database.
Technology Environment
Hardware Used
Software Used
Hardware Requirements.
Software Requirements.
Portability Requirements
CHAPTER 5
TECHNOLOGY USED
Fig 5.1:-Android
Android is a complete set of software for mobile devices such as tablet computers,
notebooks, smartphones, electronic book readers, set-top boxes etc. It contains
a linux-based Operating System, middleware and key mobile applications. It can be
thought of as a mobile operating system. But it is not limited to mobile only. It is
currently used in various devices such as mobiles, tablets, televisions etc.Android is a
software package and linux based operating system for mobile devices such as tablet
computers and smartphones. It is developed by Google and later the OHA (Open
Handset Alliance). Java language is mainly used to write the android code even
though other languages can be used.
The goal of android project is to create a successful real-world product that improves
the mobile experience for end users. There are many code names of android such as
Lollipop, Kitkat, Jelly Bean, Ice cream Sandwich, Froyo, Ecliar, Donut etc.
It’s consortium of several companies. This group of companies are allowed to use
source code of android and develop applications.[1]
1) It is open-source.
3) There are a lot of mobile applications that can be chosen by the consumer.
4) It provides many interesting features like weather details, opening screen, live RSS
(Really Simple Syndication) feeds etc.
5) It provides support for messaging services(SMS and MMS), web browser, storage
(SQLite), connectivity (GSM, CDMA, Blue Tooth, Wi-Fi etc.), media, handset layout
etc.
4) Originally intended for camera but shifted to smart phones later because of low
market for camera only.
5) Android is the nick name of Andy Rubin given by co workers because of his love
to robots.
Let's see the android versions, codenames and API Level provided by Google.
1.5 Cupcake 3
1.6 Donut 4
2.1 Éclair 7
2.2 Froyo 8
4.4 KitKat 19
5.0 Lollipop 21
1. Linux kernel
3. Android Runtime
4. Application Framework
5. Applications[1]
1) Linux kernel
2) Native Libraries
On the top of Linux kernel, their are Native libraries such as Web Kit, OpenGL, Free
Type, SQLite, Media, C runtime library (libc) etc.
The WebKit library is responsible for browser support, SQLite is for database,
FreeType for font support, Media for playing and recording audio and video formats.
3)Android Runtime
In android runtime, there are core libraries and DVM (Dalvik Virtual Machine) which
is responsible to run android application. DVM is like JVM but it is optimized for
mobile devices. It consumes less memory and provides fast performance.[1]
4) Android Framework
On the top of Native libraries and android runtime, there is android framework.
Android framework includes Android API's such as UI (User Interface), telephony,
resources, locations, Content Providers (data) and package managers. It provides a lot
of classes and interfaces for android application development.
5) Applications
On the top of android framework, there are applications. All applications such as
home, contact, settings, games, browsers are using android framework that uses
android runtime and libraries. Android runtime and native libraries are using
linuxkernal.
An android component is simply a piece of code that has a well defined life cycle e.g.
Activity, Receiver, Service etc.
The core building blocks or fundamental components of android are activities, views,
intents, services, content providers, fragments and AndroidManifest.xml.
View: A view is the UI element such as button, label, text field etc. Anything
that you see is a view.
o Launch an activity
o Broadcast a message
For example, you may write the following code to view the webpage.
intent.setData(Uri.parse("http://www.javatpoint.com"));
startActivity(intent);
Service: Service is a background process that can run for a long time. There are two
types of services local and remote. Local service is accessed from within the
application whereas remote service is accessed remotely from other applications
running on the same device.
Content Provider: Content Providers are used to share data between the
applications.
Fragment: Fragments are like parts of activity. An activity can display one or
more fragments on the screen at the same time.
AndroidManifest.xml: It contains information about activities, content
providers, permissions etc. It is like the web.xml file in Java EE.
Android Virtual Device (AVD): It is used to test the android application
without the need for mobile or tablet etc. It can be created in different
configurations to emulate different types of real devices.
By the help of activity, you can place all your UI components or widgets in a
single screen.
Method Description
onResume called when activity will start interacting with the user.
CHAPTER 6
INCREMENTAL MODEL
In incremental model the whole requirement is divided into various builds. Multiple
development cycles take place here, making the life cycle a “multi-waterfall”
cycle. Cycles are divided up into smaller, more easily managed modules. Incremental
model is a type of software development model like V-model, Agile model etc.
In this model, each module passes through the requirements, design, implementation
and testing phases. A working version of software is produced during the first
module, so you have working software early on during the software life cycle. Each
subsequent release of the module adds function to the previous release. The process
continues till the complete system is achieved.
As from the diagram, you can see that there are 5 phases(tasks) which are carried out
in each increment. If you want to see what activity is carried out in each phase, then
check out this post: Phases of waterfall model as the phases are same.
The first increment is often a core product where the necessary requirements are
addressed, and the extra features are added in the next increments. The core product is
used and evaluated by the client. Once the customer assesses the core product, there is
plan development for the next increment. Thus in every increment, the needs of the
client are kept in mind, and more features and functions are added, and the core
product is updated. This process continues till the complete product is produced.
The increments earlier to the main increment are called as “stripped down” versions
of the final product. These increases form a base for customer evaluation. On this
basis, the client can suggest new requirements if required.
If there are less number of employees to work on the project Incremental development
model is very useful to complete the project before the deadline. In a project, early
increments can be done with less number of people. In case if the core product is
well-defined and understood more employees could be added if needed in the future
increments.
One of the benefits of the Incremental process model is that it can be planned to
manage technical risks.
Generates working software quickly and early during the software life cycle.
This model is more flexible – less costly to change scope and requirements.
Easier to manage risk because risky pieces are identified and handled during
it’d biteration.
Needs a clear and complete definition of the whole system before it can be
broken down and built incrementally.
This model can be used when the requirements of the complete system are
clearly defined and understood.
Major requirements must be defined; however, some details can evolve with
time.
CHAPTER 7
TIME SCHEDULING
7.1 DEFINITION
7.2 GENERAL
The choice of tools and techniques used to develop a time schedule depends upon the
level of detail available about the work that needs to be done.
Where the work is well defined, modelling techniques can be used to show the
sequence of working and logical dependencies between each package of work. The
resulting model can be used to predict start and finish times, and identify where there
is flexibility in the schedule.
If requirements are clear but the means to achieve them is less so, or where the
requirements are subject to significant change as the work proceeds, then modelling
techniques are less appropriate.
Each aspect of the process is considered by the team, using subject-matter experts
when appropriate. A schedule agreed by the team is more likely to succeed than one
imposed from above.
The logical model is known as a network diagram. This can be drawn in different
formats. The common format used by scheduling software is activity-on-node, or
precedence networking.
Estimating activity durations needs to consider many factors, such as the effort
required, the efficiency of resources, physical constraints (e.g. restricted working) etc.
Some activities will comprise work that has been done before and is well understood,
others will be new or employ innovative methods.
The simplest form of calculation is critical path analysis. This uses one duration
estimate that encompasses all the factors. Critical path analysis calculates earliest and
latest dates for the performance of each activity and hence the overall duration of the
individual
project. It then calculates the amount that activities can be delayed without
affecting the project finish. This is known as total float. The longest path (or paths)
through the network is called the critical path and is made up of activities with the
lowest total float.
A refinement of the network diagram is the program evaluation and review technique
(PERT). This uses a weighted three-point estimate for each activity’s duration in
place of a single-point estimate. This enables confidence limits to be applied to the
result of the critical path analysis.
The most realistic form of analysis is Monte Carlo. In its simplest form Monte Carlo
analysis uses the three-point estimate for activity durations but then performs multiple
critical path analyses (typically many hundreds) using different activity durations each
time. This results in a statistical model of project duration that can be used to calculate
the probability of achieving a specific completion date, or calculating a date by which
there is an x% probability of finishing.
In Monte Carlo analysis the concept of a critical path is replaced by the criticality of
activities, i.e. how frequently they appear on the critical path in the multiple
calculations.
The results of all these techniques are typically presented as a Gantt chart.
Network analysis is not always the best time-scheduling method. A variety of time-
scheduling methods have been developed to suit various technical environments. For
example:
time is used (typically in IT) on Agile projects. The project is divided into several
discrete periods (or ‘timeboxes’) that typically have durations of between two and six
weeks. The work scope and priorities are changed in order to meet the fixed
timescale.
timechainage is used on linear projects such as roads and tunnels. It shows the timing
of activities combined with the physical location of the work.
So, a Gantt chart shows you what has to be done (the activities) and when (the
schedule).
Basically, A Gantt chart is a type of bar chart, devised by Henry Gantt in the 1910s,
that illustrates a project schedule. Gantt charts illustrate the start and finish dates of
the terminal elements and summary elements of a project. Terminal elements and
summary elements comprise the work breakdown structure of the project. Modern
Gantt charts also show the dependency (i.e., precedence network) relationships
between activities. Gantt charts can be used to show current schedule status using
percent-complete shadings and a vertical "TODAY" line as shown here.
Gantt charts convey this information visually. They outline all of the tasks involved in
a project, and their order, shown against a timescale. This gives you an instant
overview of a project, its associated tasks, and when these need to be finished.
When you set up a Gantt chart, you need to think through all of the tasks involved in
your project. As part of this process, you'll work out who will be responsible for each
task, how long each task will take, and what problems your team may encounter.
This detailed thinking helps you ensure that the schedule is workable, that the right
people are assigned to each task, and that you have workarounds for potential
problems before you start.
They also help you work out practical aspects of a project, such as the minimum time
it will take to deliver, and which tasks need to be completed before others can start.
Plus, you can use them to identify the critical path – the sequence of tasks that must
individually be completed on time if the whole project is to deliver on time.
Finally, you can use them to keep your team and your sponsors informed of progress.
Simply update the chart to show schedule changes and their implications, or use it to
communicate that key tasks have been completed.
Most project scheduling is performed with the aid of computer software. The many
proprietary software packages available enhance the basic scheduling techniques
extensively. They also provide considerable choice in the way that schedules are
presented and reported. As with all computer software, the quality of information
produced is only as good as the quality of the modelling and estimating data input in
the first place.
If you have a repetitive task in your Android app, you need to consider that activities
and services can be terminated by the Android system to free up resources. Therefore
you can not rely on standard Java schedule like the TimerTasks class.
The Android system currently has two main means to schedule tasks:
Modern Android applications should use the JobScheduler API. Apps can schedule
jobs while letting the system optimize based on memory, power, and connectivity
conditions.
The Android 5.0 Lollipop (API 21) release introduces a job scheduler API via
the JobScheduler class. This API allows to batch jobs when the device has more
resources available. In general this API can be used to schedule everything that is not
time critical for the user.
Tasks that should be done once the device is connect to a power supply
Tasks that should be running on a regular basis as batch where the timing is not
critical
CHAPTER 8
TESTING
Testing is a process rather than a single activity. This process starts from test planning
then designing test cases, preparing for execution and evaluating status till the test
closure. So, we can divide the activities within the fundamental test process into the
following basic steps:
iii. To implement the test policy and/or the test strategy. (Test strategy is an outline
that describes the testing portion of thesoftware development cycle. It is created to
inform PM, testers and developers about some key issues of the testing process. This
includes the testing objectives, method of testing, total time and resources required for
the project and the testing environments.).
iv. To determine the required test resources like people, test environments, PCs, etc.
v. To schedule test analysis and design tasks, test implementation, execution and
evaluation.
vi. To determine the Exit criteria we need to set criteria such as Coverage criteria.
(Coverage criteria are the percentage of statements in the software that must be
executed during testing. This will help us track whether we are completing test
activities correctly. They will show us which tasks and checks we must complete for a
particular level of testing before we can say that testing is finished.)
i. To review the test basis. (The test basis is the information we need in order to start
the test analysis and create our own test cases. Basically it’s a documentation on
which test cases are based, such as requirements, design specifications, product risk
analysis, architecture and interfaces. We can use the test basis documents to
understand what the system should do once built.)
ii. To identify test conditions.
iii. To design the tests.
iv. To evaluate testability of the requirements and system.
v. To design the test environment set-up and identify and required infrastructure and
tools.
During test implementation and execution, we take the test conditions into test
casesand procedures and other testware such as scripts for automation, the test
environment and any other test infrastructure. (Test cases is a set of conditions under
which a tester will determine whether an application is working correctly or not.)
(Test ware is a term for all utilities that serve in combination for testing a software
like scripts, the test environment and any other test infrastructure for later reuse.)
1. To develop and prioritize our test cases by using techniques and create test
data for those tests. (In order to test a software application you need to enter
some data for testing most of the features. Any such specifically identified
data which is used in tests is known as test data.)
We also write some instructions for carrying out the tests which is known as test
procedures.
We may also need to automate some tests using test harness and automated tests
scripts. (A test harness is a collection of software and test data for testing a program
unit by running it under different conditions and monitoring its behaviour and
outputs.)
To create test suites from the test cases for efficient test execution.
(Test suite is a collection of test cases that are used to test a software program to
show that it has some specified set of behaviours. A test suite often contains detailed
instructions and information for each collection of test cases on the system
configuration to be used during testing. Test suites are used to group similar test cases
together.)
To implement and verify the environment.
i. To execute test suites and individual test cases following the test procedures
ii. To re-execute the tests that previously failed in order to confirm a fix. This is
known as confirmation testing or re-testing..
iii. To log the outcome of the test execution and record the identities and versions
of the software under tests. The test log is used for the audit trial. (A test log is
nothing but, what are the test cases that we executed, in what order we
executed, who executed that test cases and what is the status of the test case
(pass/fail). These descriptions are documented and called as test log.).
iv. To Compare actual results with expected results.
v. Where there are differences between actual and expected results, it report
discrepancies as Incidents.
When all the information has been gathered which are needed for the testing.
The following are types of testing that may be relevant, depending on the type of
system under development:
Model-based testing
Unit testing
System testing
Integration testing
Black-box testing
White-box testing
Regression testing
Automation testing
1) Model-based testing
2)Test data
Test data is data which has been specifically identified for use in tests, typically of a
computer program.
Some data may be used in a confirmatory way, typically to verify that a given set of
input to a given function produces some expected result. Other data may be used in
order to challenge the ability of the program to respond to unusual, extreme,
exceptional, or unexpected input.
Test data may be produced in a focused or systematic way (as is typically the case in
domain testing), or by using other, less-focused approaches (as is typically the case in
high-volume randomized automated tests). Test data may be produced by the tester, or
by a program or function that aids the tester. Test data may be recorded for re-use, or
used once and then forgotten.
3) Unit Testing
Unit testing is the testing of an individual unit or group of related units. It falls under
the class of white box testing. It is often done by the programmer to test that the unit
he/she has implemented is producing expected output against given input.
4) System Testing
System testing is the testing to ensure that by putting the software in different
environments (e.g., Operating Systems) it still works. System testing is done with full
system implementation and environment. It falls under the class of black box testing.
5) Integration Testing
6)Black-box testing
7) White-box testing
White-box testing (also known as clear box testing, glass box testing, transparent box
testing, and structural testing) is a method of testing software that tests internal
structures or workings of an application, as opposed to its functionality (i.e. black-box
testing). In white-box testing an internal perspective of the system, as well as
programming skills, are used to design test cases. The tester chooses inputs to
exercise paths through the code and determine the appropriate outputs. This is
analogous to testing nodes in a circuit, e.g. in-circuit testing(ICT). White-box testing
can be applied at the unit, integration and system levels of the software testing
process. Although traditional testers tended to think of white-box testing as being
done at the unit level, it is used for integration and system testing more frequently
today. It can test paths within a unit, paths between units during integration, and
between subsystems during a system–level test. Though this method of test design can
uncover many errors or problems, it has the potential to miss unimplemented parts of
the specification or missing requirements.
8) Regression Testing
9) Test automation
In software testing, test automation is the use of special software (separate from the
software being tested) to control the execution of tests and the comparison of actual
outcomes with predicted outcomes.[1] Test automation can automate some repetitive
but necessary tasks in a formalized testing process already in place, or perform
additional testing that would be difficult to do manually.
Acceptance testing is often done by the customer to ensure that the delivered product
meets the requirements and works as the customer expected. It falls under the class of
black box testing.
Performance testing is the testing to assess the speed and effectiveness of the system
and to make sure it is generating results within a specified time as in performance
requirements. It falls under the class of black box testing.
CHAPTER 9
MAINTENANCE
2. Team collaboration
3. Time tracking
4. Project budgeting
In planning phase, plan is made and strategies are set, taking into consideration the
company policies, procedures and rules
Planning provides direction, unifying frame work, performance standards, and helps
to reveal future opportunities and threats
An alternative which is not only consistent with its goals and concept but also
one that can be accomplished with the evaluated resources.
Decision on a Plan
Project Scheduling
Resources in conceptual sense are time & energy but in practical sense are the
time, manpower, equipment applied to material.
Resource Allocation
Create mottoes, symbols, awards, or posters that portray the team as one unit.
Team members must trust each other if they are to work together successfully. Ideas
for creating trust among team members include:
Be honest.
Trust teammates (you must trust them before they will trust you).
Clarify Roles
Knowing everyone's role and being familiar with the responsibility of those roles
create efficiency and flexibility. Ideas for clarifying roles on the team include:
Miscommunication can create hard feelings and undermine the success of the team.
Ideas for improving communication include:
Appreciate Diversity
Team members come from all walks of life, with different backgrounds and
perspectives. Ideas for taking advantage of team diversity include:
Remember that reasonable people can and do differ with each other.
Finally, team members need to recognize that they should measure and monitor the
products and services the team provides as well as the team's internal group dynamics
and relationships. (Sometimes team members get so involved in the process of
becoming a team they forget the reason they were made a team in the first place, or
vice versa.) Ideas for creating that balance include:
Assign certain team members to monitor task needs and others to monitor
relationship needs.
3) Time Tracking
Time tracking is simply the measurement and documenting of hours worked. With
technology businesses can also track additional data such as efficiency and employee
productivity. From project management methodologies and accounting systems to our
collaboration and communication processes, time tracking can allow businesses and
employees to be productive at unprecedented levels.
Stage. The typical budget specifies costs for staff labor, materials procurement,
ongoing operating costs and other direct costs such as travel or training.
The detailed budget provides the project sponsor with a best estimate of how much
the project will cost. The detail budget helps manage expectations and gives the
project sponsor information to develop a cost/benefit for the project.
The budget is also used in the Execute and Control stage to help determine whether
the project is financially on track.
Corrective Maintenance
This type of maintenance is also called bug fixing that may be observed while the
system is in use i.e. Correct reported errors.
Adaptive Maintenance
This type of maintenance is concern with the modification required due to change in
environment. (i.e.External changes like use in different hardware platform or use
different O.S).
Perfective Maintenance
Preventive Maintenance
This type of maintenance is done to anticipate future problems and to improve the
maintainability to provide a better basis for future enhancement or business changes.
CHAPTER 10
SCREENSHOTS
This is the first screen called as the SPLASH SCREEN.Splash Screen gets destroyed
automatically after some seconds.
This is the first screen that displays the welcome screen for the user, when the user
launches the application.
There are two splash screens of our app, the first one is for the internet access and the
second is for loading to the next screen.
In this screen user will have the option to enable the location settings if it is off.
In this screen the user will see the picture that he/she has clicked for finding the
address and the address if available, otherwise an msg written as “ Address not
available!” and three options.
In this user can view near by places from the drop down list on the map.
In this activity the user can view the nearby places in a list with a little detail of each
places.
In this the user can view the current weather as well as the weather of next three days.
CHAPTER 11
CODING
11.1.1 Activity_splash.xml
11.2.1 activity_home.xml
11.2.2 Homeactivity.java
11.3.2 CameraImageActivity.java
11.4.1 current_mapActivity.xml
11.4.2 current_map_activity.java
11.5.1 nearby_mapActivity.xml
11.5.2 nearby_mapActivity.java
11.6 NEARBY_TABACTIVITY
11.6.1 nearby_tab.xml
11.6.2 nearby_tabActivity.java
11.7.1 sd_card_storage.java
11.8 PLACE_DETAILACTIVITY
11.8.1 Place_detailActivity.xml
11.9.2 weatherActivity.java
CHAPTER 12
12.1 CONCLUSION
CLICK-O-PIC
The basic idea behind our app is to helps quickly and conveniently find information
about the particular location, while helping in improving the effectiveness of users
comforts.
The main objective of this project is to provide the Mobile User with corresponding
address of the particular location.
Finding an address of any particular location is one of the most confusing work over
maps.
Our application help user to avoid this overhead by just one click.
User just have to click the picture of their location and upload it in our application and
within few minutes he or she will get the corresponding address.
And also finding an address of a particular location over the google maps of which
you don’t even know the name is not an easy task but our application will help the
user by providing the solution in this case.
So we can say that our application is somewhat an advanced version of google maps.
Nothing is perfect in this world. So, we are also no exception. Although, we have
tried our best to present the information effectively, yet, there can be further
enhancement in the Application. We have taken care of all the critical aspects, which
need to take care of during the development of the Project.
Like the things this project also has some limitations and can further be enhances by
someone, because there are certain drawbacks that do not permit the system to be
100% accurate.
BIBLIOGRAPHY
[1] http://www.javatpoint.com/android-tutorial
[2] http://www.tutorialspoint.com/android/
[3] https://en.wikipedia.org/wiki/Systems_development_life_cycle