Sunteți pe pagina 1din 61

1

CHAPTER-1

Galgotias College of Engineering and Technology, Greater noida

1.1.1 Company Profile:Ajani InfoTech Pvt. Ltd. is: Founded in 2008. Ranked 1st in major Online Outsourcing Marketplaces. Backed by investors from the prestigious Harvard Business School and esteemed Indian Institute of Technology. Developed over 200+ mobile applications for mobile platforms like Blackberry, iPhone, Google Android, Symbian, J2ME, Windows Mobile. Served over 50 early-stages and established technology companies in Mobile Application Development. High ROI on investments of our clients due to our unique Hybrid Extreme Programming Concept. Over 100% YoY growth since incorporation. Grew at 152% YoY in 2010 in-spite of recession. 85% repeat business. Headquarter in New Delhi, India. Global Delivery Center in Noida, NCR, New Delhi, India.

1.1.2 About Company


Founded in November 2008, Ajani InfoTech today is one of the fastest growing product companies in the Blackberry mob space. The founding members includes IIT'ians with rich experience at world's premier technology and services organizations including Bank of America, US and Headstrong Inc, US. Within a short span, Ajani InfoTech has seen a phenomenal rise to global prominence with four industry leading products and a rich client list that includes some of the worlds largest firms - in defence, law and finance. Today, some of the worlds largest Telecom VAS providers license our products.

Galgotias College of Engineering and Technology, Greater noida

3 Ajani InfoTech is privately funded with centres in Noida and research partnership with IITK. An early stage start up, we are empowering organizations around the world to transform their business in bold and exciting ways.

1.1.3 Products
Remote Data Capture & Analytics BlackBerry is a terrific device. Our solution, Empower InstaReports, builds on top of BlackBerry infrastructure to turn it into an efficient remote data capture and analysis tool. Using InstaReports, Companies can create form templates for almost any type of survey based data gathering. These surveys can be pushed to all your employees where they type their responses. InstaReports automatically generates analytics and reports on different parameters. A number of Companies have successfully replaced all paper based surveys making huge savings on time and material costs. Instant information at your fingertips! BES Mailbox for a simplified work life BlackBerry, despite being a great device for mobilizing your business, does not support a separate work-only mailbox. For enterprise users on BlackBerry, the only option is to sift & search through heaps of personal emails from all your internet email accounts, SMS, PIN and Browser Messages to locate their work-emails. Not anymore! BES Mailbox is the industry first and only solution that provides a dedicated access to your work emails. Never have your employees miss an important corporate mail again. HTML Email on BlackBerry Just when over 10 million BlackBerry users had almost given up all hopes of ever seeing rich emails (remember, BlackBerry only does text-emails), we shook the world! Our flagship product, Empower, brought HTML emails back on BlackBerry right inside the native application. Complete with images; web Links, email addresses, and even Smiles in all their glory! The latest release is a fully loaded Outlook-style client boasting PIM Integration, Wi-Fi support, Image Cache, System Fonts, Auto-updates and a number of other advanced options along with integration with leading 3rd party products like Pocket Day. Device-based in-Line Spell Check And just when the BlackBerry world was satisfied with lame spellchecker; products that submitted private data to public servers, wait for spell check to complete on the server and results sent back to you, and worked for just a couple of applications, we did the unthinkable. We shook the peace and launched InstaSpell, the world's first fully ondevice, in-line universal spellchecker that worked not only for emails, but also for SMS, Notes, Tasks, Memo, Calendar, Galgotias College of Engineering and Technology, Greater noida

CHAPTER-2

Galgotias College of Engineering and Technology, Greater noida

2. INTRODUCTION OF PROJECT 2.1 About Project


We think that we have a sharp memory then lets see how good we are or we can improve our memorization capability with this simple game. Its a game of tiles arranged in matrix and all we have to do is remember the tiles. Sounds simple but it will get you on your nerves. The game has exiting levels and with each level up you have to face with more difficulty The main objective for developing the game is to fulfilling the requirements of the user and to entertain the player of this game and the main objective of this game is to improve the concentration of the player. Another objective of the game is that it is created for the person of any age means player of this game can be anybody of any age, the player can be a child or he can be an aged or a young person or anyone. This game has many levels ; at each higher level the difficulty of the game will also be increased. So for making it interesting its look and graphics will be attractive so by doing so it can attract many people and different age groups. Memory Matrix works your memory for shapes, spatial layouts and pattern recall. You must take a quick mental "snapshot" of the grid so you can select the correct squares. In this game having a levels and each levels increase no of tiles in the board and no of the rotation tiles and according to these rotation remember its and find its in the board if you correctly select all rotation tiles than you go on the next level otherwise you go on the previous level. And for the selection of the correct tiles you have only three chances if select correctly than you go on the next level otherwise you cant complete the levels of the game and next time try for it. In this game use best graphical layout for the user interaction and each level increase difficulty level. And this game best for the any age player because with the help of this game improve your concentration power and memorization power.

2.2 Application Features


Complete stages with attractive graphics Galgotias College of Engineering and Technology, Greater noida

6 Easy to use Enhance memorisation power Enhance the concentration power of the user Reliable and accurate No need of connecting to the network. Once download and installed its and use it any time.

2. 3MY ROLE IN THE PROJECT This application is completely designed and executed by my own with the support of my mentor and project manager. . User Interface Design . Designing of all modules . Managing of levels to which the choices are offered to the user. . Designing of module like serialization and playing module.

Galgotias College of Engineering and Technology, Greater noida

CHAPTER-3

Galgotias College of Engineering and Technology, Greater noida

3. SYSTEM ANALYSIS

3.1 Proposed System The aim of proposed system is to develop a system of good quality. The system provides a good GUI for the user to play games . The proposed system will help the user to reduce stress by playing game with good background sounds. The proposed system helps the user to work user friendly. The proposed system used good animation that not affect on the player eyes. And easy to find matched tiles.

3.2 Expected Advantages of Proposed System The system is very simple in design and to implement. The system requires very low system resources and the system will work in almost all configurations. It has got following features: Good and customizable GUI. Single player can play with system player as AI is implemented and can also play with other players as well. Free as well as paid versions are available to capture more audience.

3.3 Feasibility study Feasibility study is made to see if the project on completion will serve the purpose of the organization for the amount of work, effort and the time that spend on it. Feasibility study lets the developer foresee the future of the project and the usefulness. A feasibility study of a system proposal is according to its workability, which is the impact on the organization, ability to meet their user needs and effective use of resources. Thus when a new application is proposed it normally goes through a feasibility study before it is approved for development. The document provide the feasibility of the project that is being designed and lists various areas that were considered very carefully during the feasibility study of this project such as Technical, Economic and Operational feasibilities. The following are its features: Galgotias College of Engineering and Technology, Greater noida

3.3.1 Technical feasibility The system must be evaluated from the technical point of view first. The assessment of this feasibility must be based on an outline design of the system requirement in the terms of input, output, programs and procedures. Having identified an outline system, the investigation must go on to suggest the type of equipment, required method developing the system, of running the system once it has been designed. Technical issues raised during the investigation are: Does the existing technology sufficient for the suggested one? Can the system expand if developed?

The project should be developed such that the necessary functions and performance are achieved within the constraints. The project is developed within latest technology. Through the technology may become obsolete after some period of time, due to the fact that newer version of same software supports older versions, the system may still be used. So there are minimal constraints involved with this project. The system has been developed using Java the project is technically feasible for development.

3.3.2 Economical feasibility The developing system must be justified by cost and benefit. Criteria to ensure that effort is concentrated on project, which will give best, return at the earliest. One of the factors, which affect the development of a new system, is the cost it would require.

The following are some of the important financial questions asked during preliminary investigation: The costs conduct a full system investigation. The cost of the hardware and software. The benefits in the form of reduced costs or fewer costly errors. Galgotias College of Engineering and Technology, Greater noida

10 Since the system is developed as part of project work, there is no manual cost to spend for the proposed system. Also all the resources are already available, it give an indication of the system is economically possible for development.

3.3.3 Behavioural feasibility This includes the following questions: Is there sufficient support for the users? Will the proposed system cause harm? The project would be beneficial because it satisfies the objectives when developed and installed. All behavioural aspects are considered carefully and conclude that the project is behaviourally feasible.

Galgotias College of Engineering and Technology, Greater noida

11

CHAPTER-4

Galgotias College of Engineering and Technology, Greater noida

12 4. SOFTWARE REQUIREMENT SPECIFICATIONS 4.1 Human Machine interface Android based interface: Memory matrix Game provides rich user interface. The success and failure of any product depends not only on the functionality of application but also on the GUI (Graphics User Interface), because if user is not able to use application in convenient manner then application cannot complete their objective. 4.2 Functional requirements Since the users of the application are of very discrete communities so we must provide the facility to each user. Here we are discussing some of the important features: Add new levels in the List. Add new graphics design which has been more convenient for user interaction. It provides all functionality in graphics manner. As it is offline so network is not needed every time only once you download it than its available at any time on your device. 4.3Non functional requirements Execution qualities: Security: Android Memory Matrix game is secure because it is brought in market through trusted persons. Usability: Android Memory Matrix game is usable in market because it help in the memory sharpness and better graphics use in its for better interaction between user and machine. Evolution qualities: Maintainability: Android Memory Matrix game can very easily maintain. Extensibility: We can extend the functionality of Android Memory Matrix game application. Simplicity: this game is very simple to use. And not taking a more time in loading Scalability: We can add more modules in this game but game cannot effect. Galgotias College of Engineering and Technology, Greater noida

13

CHAPTER-5

Galgotias College of Engineering and Technology, Greater noida

14 5. DESIGN

5.1 Introduction: Design is the first step into the development phase for any engineered product or system. Design is a creative process. A good design is the key to effective system. The term design is defined as the process of applying various techniques and principles for the purpose of defining a process or a system in sufficient detail to permit its physical realization. It may be defined as a process of applying various techniques and principles for the purpose of defining a device, a process or a system in sufficient detail to permit its physical realization. Software design sits at the technical kernel of the software engineering process and is applied regardless of the development paradigm that is used. The system design develops the architectural detail required to build a system or product. As in the case of any systematic approach, this software too has undergone the best possible design phase fine tuning all efficiency, performance and accuracy levels. The design phase is a transition from a user oriented document to a document to the programmers or database personnel. System design goes through two phases of development: Logical and Physical Design.

5.2 Logical design:


The logical flow of a system and define the boundaries of a system. It includes the following steps: Reviews the current physical system its data flows, file content, volumes, Frequencies etc. Prepares output specifications that is, determines the format, content and Frequency of reports. Prepares input specifications format, content and most of the input functions. Prepares edit, security and control specifications. Specifies the implementation plan. Prepares a logical design walk through of the information flow, output, input, Controls and implementation plan. Reviews benefits, costs, target dates and system constraints.

Galgotias College of Engineering and Technology, Greater noida

15 5.3 Physical design: Physical system produces the working systems by define the design specifications that tell the programmers exactly what the candidate system must do. It includes the following steps. Design the physical system. Specify input and output media. Design physical information flow through the system and a physical design Plan system implementation. Prepare a conversion schedule and target date. Determine training procedures, courses and timetable. Devise a test and implementation plan and specify any new hardware/software. Update benefits , costs , conversion date and system constraints

Design/Specification activities: Concept formulation. Problem understanding. High level requirements proposals. Feasibility study. Requirements engineering. Architectural design.

5.4 Input design The input design is the link between the information system and the user. It comprises the developing specification and procedures for data preparation and those steps are necessary to put transaction data in to a usable form for processing can be achieved by inspecting the computer to read data from a written or printed document or it can occur by having people keying the data directly into the system. The design of input focuses on controlling the amount of input required, controlling the errors, avoiding delay, avoiding extra steps and keeping the process simple. The input is

Galgotias College of Engineering and Technology, Greater noida

16 designed in such a way so that it provides security and ease of use with retaining the privacy. Input Design considered the following things: What data should be given as input? How the data should be arranged or coded? The dialog to guide the operating personnel in providing input. Methods for preparing input validations and steps to follow when error occur.

Objective Input Design is the process of converting a user-oriented description of the input into a computer-based system. This design is important to avoid errors in the data input process and show the correct direction to the management for getting correct information from the computerized system. It is achieved by creating user-friendly screens for the data entry to handle large volume of data. The goal of designing input is to make interaction easier and to be free from errors. The screen is designed in such a way that all the data manipulates can be performed. It also provides scores record viewing facilities.

5.5 Modular Design New Game: this module design for the start new game from 1st level Help: this module design for the user help in this module having all information regards to playing this game. Score: this module design for the save score of the user but for this module require network connection because in for this module score save on the network. Game Completion: on the game completion require a user name and save its on network and user having an only three chances for the game completion otherwise game over Level Design: in this module designing of the level in each level increase the board size and number of the rotation tiles 5.6 Data Flow Diagram

Galgotias College of Engineering and Technology, Greater noida

17 0 Level Memory Matrix

Start Game Generated Game

Memory matrix

Player

Play Game

1 Level DFD Memory Matrix

Request Game 1 Generate Game

Game Generator

Player

Play Game

Play Game

4 Request To Change Settings

Change Settings

Changed Settings

2 Level DFD Memory Matrix

Request to Turn Sound On/Off 4.2

Player
Sound Turned On/Off

Turn Sound On/Off

Galgotias College of Engineering and Technology, Greater noida

18 5.7 USECASE DIAGRAM

Use Case Diagram Of Memory Matrix

Galgotias College of Engineering and Technology, Greater noida

19

CHAPTER-6

Galgotias College of Engineering and Technology, Greater noida

20 6. HARDWARE AND SOFTWARE REQUIREMWNT

6.1 Operating system Requirements:


Linux (Ubuntu 12.04) Android 2.3.3 or above

6.2 Hardware requirements: Processor RAM HDD 6.3 Software requirements: Compatibility Operating System Front End Tools Java (jdk1.6 or above. ) Jre(6.0 or above) Android (avd 4.2.0 or above.) Back End Tools : SQLite 3.0 : Window xp,7 and Linux : Linux (Ubuntu 12.04) : Eclipse as an IDE : : : 500MHz 256 MB* 40GB*

Galgotias College of Engineering and Technology, Greater noida

21

CHAPTER-7

Galgotias College of Engineering and Technology, Greater noida

22

7. SOFTWARE ENVIRONMENT

7.1. JAVA Java is a small, simple, safe, object oriented, interpreted or dynamically optimized, byte coded, architectural, garbage collected, multithreaded programming language with a strongly typed exception-handling for writing distributed and dynamically extensible programs. Java is an object oriented programming language. Java is a high-level, third generation language like C, FORTRAN, Small talk, Pearl and many others. You can use Java to write computer applications that crunch numbers, process words, play games, store data or do any of the thousands of other things computer software can do. Special programs called applets that can be downloaded from the internet and played safely within a web browser. Java a supports this application and the follow features make it one of the best programming languages. It is simple and object oriented It helps to create user friendly interfaces. It is very dynamic. It supports multithreading. It is platform independent It is highly secure and robust. It supports internet programming Java is a programming language originally developed by Sun Microsystems and released in 1995 as a core component of Sun's Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities. Java applications are typically compiled to byte code which can run on any Java virtual machine (JVM) regardless of computer architecture. The original and reference implementation Java compilers, virtual machines, and class libraries were developed by Sun from 1995. As of May 2007, in compliance with the specifications of the Java Community Process, Sun made available most of their Java technologies as free software under the GNU General Public License. Others have Galgotias College of Engineering and Technology, Greater noida

23 also developed alternative implementations of these Sun technologies, such as the GNU Compiler for Java and GNU Class path. The Java language was created by James Gosling in June 1991 for use in a set top box project. The language was initially called Oak, after an oak tree that stood outside Gosling's office - and also went by the name Green - and ended up later being renamed to Java, from a list of random words. Gosling's goals were to implement a virtual machine and a language that had a familiar C/C++ style of notation. goals There were five primary goals in the creation of the Java language: It should use the object-oriented programming methodology. It should allow the same program to be executed on multiple operating systems. It should contain built-in support for using computer networks. It should be designed to execute code from remote sources securely. It should be easy to use by selecting what were considered the good parts of other object-oriented languages.

MVC Architecture

Galgotias College of Engineering and Technology, Greater noida

24 It is common to think of an application as having three main layers: presentation (UI), application logic, and resource management. In MVC, the presentation layer is split into controller and view. The most important separation is between presentation and application logic. The View/Controller split is less so. MVC encompasses more of the architecture of an application than is typical for a design pattern. Hence the term architectural pattern may be useful, or perhaps an aggregate design pattern.

Model: The domain-specific representation of the information on which the application operates. The model is another name for the application logic layer (sometimes also called the domain layer). Application (or domain) logic adds meaning to raw data (e.g., calculating if today is the users birthday, or the totals, taxes and shipping charges for shopping cart items).Many applications use a persistent storage mechanism (such as a database) to store data. MVC does not specifically mention the resource management layer because it is understood to be underneath or encapsulated by the Model.

View: Renders the model into a form suitable for interaction, typically a user interface element. MVC is often seen in web applications, where the view is the HTML page and the code which gathers dynamic data for the page.

Controller: Processes and responds to events, typically user actions, and may invoke changes on the model and view.

Though MVC comes in different flavours, the control flow generally works as follows: The user interacts with the user interface in some way (e.g., user presses a button) A controller handles the input event from the user interface, often via a registered handler or call-back. The controller accesses the model, possibly updating it in a way appropriate to the users Galgotias College of Engineering and Technology, Greater noida

25 action (e.g., controller updates users shopping cart). Complex controllers are often structured using the command pattern to encapsulate actions and simplify extension. A view uses the model to generate an appropriate user interface (e.g., view produces a screen listing the shopping cart contents). The view gets its own data from the model. The model has no direct knowledge of the view. (However, the observer pattern can be used to allow the model to indirectly notify interested parties, potentially including views, of a change.) The user interface waits for further user interactions, which begins the cycle anew.

7.2. Android (operating system)

Android is a Linux-based operating system designed primarily for touch screen mobile devices such as smartphones and tablet computers. Initially developed by Android, Inc., which Google backed financially and later bought in 2005, Android was unveiled in 2007 along with the founding of the Open Handset Alliance: a consortium of hardware, software, and telecommunication companies devoted to advancing open standards for mobile devices. The first Android-powered phone was sold in October 2008. Android is open source and Google releases the code under the Apache License. This open source code and permissive licensing allows the software to be freely modified and distributed by device manufacturers, wireless carriers and enthusiast developers. Additionally, Android has a large community of developers writing applications ("apps") that extend the functionality of devices, written primarily in a customized version of the Java programming language. In October 2012, there were approximately 700,000 apps available for Android, and the estimated number of applications downloaded from Google Play, Android's primary app store, was 25 billion. Galgotias College of Engineering and Technology, Greater noida

26 Since 2008, Android has seen numerous updates which have incrementally improved the operating system, adding new features and fixing bugs in previous releases. Each major release is named in alphabetical order after a dessert or sugary treat; for example, version 1.5 Cupcake was followed by 1.6 Donut. The latest release is Ice cream sandwich. Android has a growing selection of third party applications, which can be acquired by users either through an app store such as Google Play or the Amazon Appstore, or by downloading and installing the application's APK file from a third-party site. The Play Store application allows users to browse, download and update apps published by Google and third-party developers, and is pre-installed on devices that comply with Google's compatibility requirements. The app filters the list of available applications to those that are compatible with the user's device, and developers may restrict their applications to particular carriers or countries for business reasons. Purchases of unwanted applications can be refunded within 15 minutes of the time of download, and some carriers offer direct carrier billing for Google Play application purchases, where the cost of the application is added to the user's monthly bill. As of September 2012, there were more than 675,000 apps available for Android, and the estimated number of applications downloaded from the Play Store was 25 billion. Applications are developed in the Java language using the Android software development kit (SDK). The SDK includes a comprehensive set of development tools, including a debugger, software libraries, a handset emulator based on QEMU, documentation, sample code, and tutorials. The officially supported integrated development environment (IDE) is Eclipse using the Android Development Tools (ADT) plugin. Other development tools are available, including a Native Development Kit for applications or extensions in C or C++, Google App Inventor, a visual environment for novice programmers, and various cross platform mobile web applications frameworks.

Galgotias College of Engineering and Technology, Greater noida

27

7.3. Application Development in Android The Android SDK provides you the API libraries and developer tools necessary to build, test, and debug apps for Android. If you're a new Android developer, we recommend you download the ADT Bundle to quickly start developing apps. It includes the essential Android SDK components and a version of the Eclipse IDE with built-in ADT (Android Developer Tools) to streamline your Android app development. With a single download, the ADT Bundle includes everything you need to begin developing apps:

Eclipse + ADT plugin Android SDK Tools Android Platform-tools The latest Android platform Galgotias College of Engineering and Technology, Greater noida

28

The latest Android system image for the emulator.

Application Fundamentals
Android applications are written in the Java programming language. The Android SDK tools compile the codealong with any data and resource filesinto an Android package, an archive file with an .apk suffix. All the code in a single .apk file is considered to be one application and is the file that Android-powered devices use to install the application. Once installed on a device, each Android application lives in its own security sandbox:

The Android operating system is a multi-user Linux system in which each application is a different user.

By default, the system assigns each application a unique Linux user ID (the ID is used only by the system and is unknown to the application). The system sets permissions for all the files in an application so that only the user ID assigned to that application can access them.

Each process has its own virtual machine (VM), so an application's code runs in isolation from other applications.

By default, every application runs in its own Linux process. Android starts the process when any of the application's components need to be executed, then shuts down the process when it's no longer needed or when the system must recover memory for other applications.

In this way, the Android system implements the principle of least privilege. That is, each application, by default, has access only to the components that it requires to do its work and no more. This creates a very secure environment in which an application cannot access parts of the system for which it is not given permission. However, there are ways for an application to share data with other applications and for an application to access system services:

Galgotias College of Engineering and Technology, Greater noida

29

It's possible to arrange for two applications to share the same Linux user ID, in which case they are able to access each other's files. To conserve system resources, applications with the same user ID can also arrange to run in the same Linux process and share the same VM (the applications must also be signed with the same certificate).

An application can request permission to access device data such as the user's contacts, SMS messages, the mountable storage (SD card), camera, Bluetooth, and more. All application permissions must be granted by the user at install time.

That covers the basics regarding how an Android application exists within the system. The rest of this document introduces you to:

The core framework components that define your application. The manifest file in which you declare components and required device features for your application.

Resources that are separate from the application code and allow your application to gracefully optimize its behaviour for a variety of device configurations.

Application Components
Application components are the essential building blocks of an Android application. Each component is a different point through which the system can enter your application. Not all components are actual entry points for the user and some depend on each other, but each one exists as its own entity and plays a specific roleeach one is a unique building block that helps define your application's overall behavior. There are four different types of application components. Each type serves a distinct purpose and has a distinct lifecycle that defines how the component is created and destroyed. Here are the four types of application components:

Galgotias College of Engineering and Technology, Greater noida

30

Activities
An activity represents a single screen with a user interface. For example, an email application might have one activity that shows a list of new emails, another activity to compose an email, and another activity for reading emails. Although the activities work together to form a cohesive user experience in the email application, each one is independent of the others. As such, a different application can start any one of these activities (if the email application allows it). For example, a camera application can start the activity in the email application that composes new mail, in order for the user to share a picture. An activity is implemented as a subclass of Activity and you can learn more about it in the Activities developer guide.

Services
A service is a component that runs in the background to perform long-running operations or to perform work for remote processes. A service does not provide a user interface. For example, a service might play music in the background while the user is in a different application, or it might fetch data over the network without blocking user interaction with an activity. Another component, such as an activity, can start the service and let it run or bind to it in order to interact with it. A service is implemented as a subclass of Service and you can learn more about it in the Services developer guide.

Content providers
A content provider manages a shared set of application data. You can store the data in the file system, an SQLite database, on the web, or any other persistent storage location your application can access. Through the content provider, other applications can query or even modify the data (if the content provider allows it). For example, the Android system provides a content provider that manages the user's contact information. As such, any application with the

Galgotias College of Engineering and Technology, Greater noida

31 proper permissions can query part of the content provider (such as ContactsContract.Data) to read and write information about a particular person. Content providers are also useful for reading and writing data that is private to your application and not shared. For example, the Note Pad sample application uses a content provider to save notes. A content provider is implemented as a subclass of ContentProvider and must implement a standard set of APIs that enable other applications to perform transactions. For more information, see the Content Providers developer guide.

Broadcast receivers
A broadcast receiver is a component that responds to system-wide broadcast announcements. Many broadcasts originate from the systemfor example, a broadcast announcing that the screen has turned off, the battery is low, or a picture was captured. Applications can also initiate broadcastsfor example, to let other applications know that some data has been downloaded to the device and is available for them to use. Although broadcast receivers don't display a user interface, they may create a status bar notification to alert the user when a broadcast event occurs. More commonly, though, a broadcast receiver is just a "gateway" to other components and is intended to do a very minimal amount of work. For instance, it might initiate a service to perform some work based on the event. A broadcast receiver is implemented as a subclass of Broadcast Receiver and each broadcast is delivered as an Intent object. For more information, see the Broadcast Receiver class.

The Manifest File


Before the Android system can start an application component, the system must know that the component exists by reading the application's AndroidManifest.xml file (the "manifest" file). Your application must declare all its components in this file, which must be at the root of the application project directory. Galgotias College of Engineering and Technology, Greater noida

32 The manifest does a number of things in addition to declaring the application's components, such as: Identify any user permissions the application requires, such as Internet access or read-access to the user's contacts. Declare the minimum API Level required by the application, based on which APIs the application uses. Declare hardware and software features used or required by the application, such as a camera, Bluetooth services, or a multitouch screen. API libraries the application needs to be linked against (other than the Android framework APIs), such as the Google Maps library. And more

Declaring application requirements


There are a variety of devices powered by Android and not all of them provide the same features and capabilities. In order to prevent your application from being installed on devices that lack features needed by your application, it's important that you clearly define a profile for the types of devices your application supports by declaring device and software requirements in your manifest file. Most of these declarations are informational only and the system does not read them, but external services such as Google Play do read them in order to provide filtering for users when they search for applications from their device. For example, if your application requires a camera and uses APIs introduced in Android 2.1 (API Level 7), you should declare these as requirements in your manifest file. That way, devices that do not have a camera and have an Android version lower than 2.1 cannot install your application from Google Play. However, you can also declare that your application uses the camera, but does not require it. In that case, your application must perform a check at runtime to determine if the device has a camera and disable any features that use the camera if one is not available.

Galgotias College of Engineering and Technology, Greater noida

33 Here are some of the important device characteristics that you should consider as you design and develop your application: Screen size and density In order to categorize devices by their screen type, Android defines two characteristics for each device: screen size (the physical dimensions of the screen) and screen density (the physical density of the pixels on the screen, or dpidots per inch). To simplify all the different types of screen configurations, the Android system generalizes them into select groups that make them easier to target. The screen sizes are: small, normal, large, and extra large. The screen densities are: low density, medium density, high density, and extra high density. By default, your application is compatible with all screen sizes and densities, because the Android system makes the appropriate adjustments to your UI layout and image resources. However, you should create specialized layouts for certain screen sizes and provide specialized images for certain densities, using alternative layout resources, and by declaring in your manifest exactly which screen sizes your application supports with the <supports-screens> element. For more information, see the Supporting Multiple Screens document.

Input configurations
Many devices provide a different type of user input mechanism, such as a hardware keyboard, a trackball, or a five-way navigation pad. If your application requires a particular kind of input hardware, then you should declare it in your manifest with the <uses-configuration>element. However, it is rare that an application should require a certain input configuration.

Device features
There are many hardware and software features that may or may not exist on a given Android-powered device, such as a camera, a light sensor, bluetooth, a Galgotias College of Engineering and Technology, Greater noida

34 certain version of OpenGL, or the fidelity of the touchscreen. You should never assume that a certain feature is available on all Android-powered devices (other than the availability of the standard Android library), so you should declare any features used by your application with the <uses-feature> element.

Platform Version
Different Android-powered devices often run different versions of the Android platform, such as Android 1.6 or Android 2.3. Each successive version often includes additional APIs not available in the previous version. In order to indicate which set of APIs are available, each platform version specifies an API Level (for example, Android 1.0 is API Level 1 and Android 2.3 is API Level 9). If you use any APIs that were added to the platform after version 1.0, you should declare the minimum API Level in which those APIs were introduced using the <uses-sdk> element. It's important that you declare all such requirements for your application, because, when you distribute your application on Google Play, the store uses these declarations to filter which applications are available on each device. As such, your application should be available only to devices that meet all your application requirements. For more information about how Google Play filters applications based on these (and other) requirements, see the Filters on Google Play document.

Application Resources
An Android application is composed of more than just codeit requires resources that are separate from the source code, such as images, audio files, and anything relating to the visual presentation of the application. For example, you should define animations, menus, styles, colors, and the layout of activity user interfaces with XML files. Using application resources makes it easy to update various characteristics of your application without modifying code andby providing sets of alternative resourcesenables you to optimize your application for a variety of device configurations (such as different languages and screen sizes).

Galgotias College of Engineering and Technology, Greater noida

35 For every resource that you include in your Android project, the SDK build tools define a unique integer ID, which you can use to reference the resource from your application code or from other resources defined in XML. For example, if your application contains an image file named logo.png (saved in the res/drawable/ directory), the SDK tools generate a resource ID named R.drawable.logo, which you can use to reference the image and insert it in your user interface. One of the most important aspects of providing resources separate from your source code is the ability for you to provide alternative resources for different device configurations. For example, by defining UI strings in XML, you can translate the strings into other languages and save those strings in separate files. Then, based on a language qualifier that you append to the resource directory's name (such as res/valuesfr/ for French string values) and the user's language setting, the Android system applies the appropriate language strings to your UI. Android supports many different qualifiers for your alternative resources. The qualifier is a short string that you include in the name of your resource directories in order to define the device configuration for which those resources should be used. As another example, you should often create different layouts for your activities, depending on the device's screen orientation and size. For example, when the device screen is in portrait orientation (tall), you might want a layout with buttons to be vertical, but when the screen is in landscape orientation (wide), the buttons should be aligned horizontally. To change the layout depending on the orientation, you can define two different layouts and apply the appropriate qualifier to each layout's directory name. Then, the system automatically applies the appropriate layout depending on the current device orientation. For more about the different kinds of resources you can include in your application and how to create alternative resources for various device configurations, see the Application Resources developer guide.

Galgotias College of Engineering and Technology, Greater noida

36

CHAPTER-8

Galgotias College of Engineering and Technology, Greater noida

37

8. CODE DETAILS
The purpose of code is to facilitate the identification, retrieval of the items and information. A code is an oriented collection of symbols design to provide unique identification of an entry or attribute. Code is built with manually exclusive features. Codes in all cases specify object which are physical or on performance characteristics. They are used to give optimal distraction and other information. Codes are used for identifying, accessing, storing and matching records. The codes insure that only one value of the code with a single meaning is correctly applied to give entity or attribute as described in various ways. Code can also be design in a manner easily understood and applied by the user.

8.1 Coding standards The standard used in the development of the system is Sun Microsystems Programming standards. it includes naming conversions of variables, constants and objects, standardized formats or labelling and commenting code, spacing, formatting and indenting.

8.2 Naming convention Classes names and interface names will start with capital letter. The function names will start with small letters and the first letter of each word in the function name will be in capital letter.

8.3 labels and comments Sufficient labels and comments are included in the description of it for the benefits if the developer and other programmers who might examine it later. User Interface Standard actions are used for standard actions. Same font is related properties are used for similar screens.

Galgotias College of Engineering and Technology, Greater noida

38

CHAPTER-9

Galgotias College of Engineering and Technology, Greater noida

39 9. TESTING INTRODUCTION

Software Testing is the process of executing software in a controlled manner, in order to answer the question - Does the software behave as specified?. Software testing is often used in association with the terms verification and validation. Validation is the checking or testing of items, includes software, for conformance and consistency with an associated specification. Software testing is just one kind of verification, which also uses techniques such as reviews, analysis, inspections, and walkthroughs. Validation is the process of checking that what has been specified is what the user actually wanted.

Validation Verification

: Are we doing the right job? : Are we doing the job right?

Software testing should not be confused with debugging. Debugging is the process of analyzing and localizing bugs when software does not behave as expected. Although the identification of some bugs will be obvious from playing with the software, a methodical approach to software testing is a much more thorough means for identifying bugs. Debugging is therefore an activity which supports testing, but cannot replace testing. Other activities which are often associated with software testing are static analysis and dynamic analysis. Static analysis investigates the source code of software, looking for problems and gathering metrics without actually executing the code. Dynamic analysis looks at the behaviour of software while it is executing, to provide information such as execution traces, timing profiles, and test coverage information. Testing is a set of activity that can be planned in advanced and conducted systematically. Testing begins at the module level and work towards the integration of entire computers based system. Nothing is complete without testing, as it vital success of the system testing objectives, there are several rules that can serve as testing objectives. They are Testing is a process of executing a program with the intend of finding an error. Galgotias College of Engineering and Technology, Greater noida

40 A good test case is one that has high possibility of finding an undiscovered error. A successful test is one that uncovers an undiscovered error.

If a testing is conducted successfully according to the objectives as stated above, it would uncovered errors in the software also testing demonstrate that the software function appear to be working according to the specification, that performance requirement appear to have been met.

There are three ways to test program. For correctness For implementation efficiency For computational complexity

Test for correctness are supposed to verify that a program does exactly what it was designed to do. This is much more difficult than it may at first appear, especially for large programs.

9.1 Test Plans A test plan implies a series of desired course of action to be followed in accomplishing various testing methods. The Test Plan acts as a blue print for the action that is to be followed. The software engineers create a computer program, its documentation and related data structures. The software developers is always responsible for testing the individual units of the programs, ensuring that each performs the function for which it was designed. There is an independent test group (ITG) which is to remove the inherent problems associated with letting the builder to test the thing that has been built. The specific objectives of testing should be stated in measurable terms. So that the mean time to failure, the cost to find and fix the defects, remaining defect density or frequency of occurrence and test work-hours per regression test all should be stated within the test plan. The levels of testing include: Unit testing Galgotias College of Engineering and Technology, Greater noida

41 Integration Testing Data validation Testing Output Testing

9.1.1 Unit testing Unit testing focuses verification effort on the smallest unit of software design the software component or module. Using the component level design description as a guide, important control paths are tested to uncover errors within the boundary of the module. The relative complexity of tests and uncovered scope established for unit testing. The unit testing is white-box oriented, and step can be conducted in parallel for multiple components. The modular interface is tested to ensure that information properly flows into and out of the program unit under test. The local data structure is examined to ensure that data stored temporarily maintains its integrity during all steps in an algorithms execution. Boundary conditions are tested to ensure that all statements in a module have been executed at least once. Finally, all error handling paths are tested.

Tests of data flow across a module interface are required before any other test is initiated. If data do not enter and exit properly, all other tests are moot. Selective testing of execution paths is an essential task during the unit test. Good design dictates that error conditions be anticipated and error handling paths set up to reroute or cleanly terminate processing when an error does occur. Boundary testing is the last task of unit testing step. Software often fails at its boundaries.

Unit testing was done in Sell-Soft System by treating each module as separate entity and testing each one of them with a wide spectrum of test inputs. Some flaws in the internal logic of the modules were found and were rectified.

9.1.2 Integration testing Integration testing is systematic technique for constructing the program structure while at the same time conducting tests to uncover errors associated with interfacing. The objective is to take unit tested components and build a program structure that has Galgotias College of Engineering and Technology, Greater noida

42 been dictated by design. The entire program is tested as whole. Correction is difficult because isolation of causes is complicated by vast expanse of entire program. Once these errors are corrected, new ones appear and the process continues in a seemingly endless loop.

After unit testing in Sell-Soft System all the modules were integrated to test for any inconsistencies in the interfaces. Moreover differences in program structures were removed and a unique program structure was evolved.

9.1.3 Validation testing or system testing This is the final step in testing. In this the entire system was tested as a whole with all forms, code, modules and class modules. This form of testing is popularly known as Black Box testing or System tests. Black Box testing method focuses on the functional requirements of the software. That is, Black Box testing enables the software engineer to derive sets of input conditions that will fully exercise all functional requirements for a program. Black Box testing attempts to find errors in the following categories; incorrect or missing functions, interface errors, errors in data structures or external data access, performance errors and initialization errors and termination errors.

9.1.4 output testing or user input testing


The system considered is tested for user acceptance; here it should satisfy the firms need. The software should keep in touch with perspective system; user at the time of developing and making changes whenever required. This done with respect to the following points Input Screen Designs, Output Screen Designs, Online message to guide the user and the like.

The above testing is done taking various kinds of test data. Preparation of test data plays a vital role in the system testing. After preparing the test data, the system under study is tested using that test data. While testing the system by which test data errors Galgotias College of Engineering and Technology, Greater noida

43 are again uncovered and corrected by using above testing steps and corrections are also noted for future use.

Validation Checking:
At the culmination of integration testing, software is completely assembled as a package; interfacing errors have been uncovered and corrected, and a final series of software test-validation checks may begin. Validation can be defined in many ways, but a simple definition (Albeit Harsh) is that validation succeeds when software functions in a manner that can be reasonably expected by a customer. Software validation is achieved through a series of black-box tests to be conducted and a test procedure defines specific test cases that will be used in attempt to uncover errors in conformity with requirements. Both the plan and procedure are designed to ensure that all functional requirements are satisfied; all performance requirements are achieved; documentation is correct and human Engineered and other requirements are met. Once the application was made free of all logical and interface errors , inputting dummy data to ensure that the software developed satisfied all the requirements of the user did validation checks .However , the data are created with the intent of determining whether the system will process them correctly . In the proposed system, if the clients click the send button after selecting a file from his file list, then the system will show the confirmation message for sending files. Similarly if a client makes an attempt to download a file from the server file list, then also the system will show the confirmation message for downloading. This is how the data validations were made in the proposed system.

Galgotias College of Engineering and Technology, Greater noida

44

CHAPTER-10

Galgotias College of Engineering and Technology, Greater noida

45

10. IMPLEMENTATION
Implementation is the stage of the project where the theoretical design is turned into a working system. It can be considered to be the most crucial stage in achieving a successful new system gaining the users confidence that the new system will work and will be effective and accurate. It is primarily concerned with user training and documentation. Conversion usually takes place about the same time the user is being trained or later. Implementation simply means convening a new system design into operation, which is the process of converting a new revised system design into an operational one. Implementation is the stage of the project where the theoretical design is tuned into a working system. At this stage the main work load, the greatest upheaval and the major impact on the existing system shifts to the user department. If the implementation is not carefully planned and controlled it may create chaos and confusion. Implementation includes all those activities that take place to convert from the existing system to the new system. The new system may be a totally new, replacing an existing manual or automated system or it may be a modification to an existing system. Proper implementation is essential to provide a reliable system to meet organization requirements. The process of putting the developed system in actual use is called system implementation. This includes all those activities that take place to convert from the old system to the new system. The system can be implemented only after through testing is done and if it is found to be working according to the specifications. The system personnel check the feasibility of the system. The more complex the system being implemented, the more involved will be the system analysis and design effort required to implement the three main aspects: education and training, system testing and changeover. The implementation state involves the following tasks: Careful planning. Investigation of system and constraints. Design of methods to achieve the changeover.

Galgotias College of Engineering and Technology, Greater noida

46

10.1 Implementation Procedures


Implementation of software refers to the final installation of the package in its real environment, to the satisfaction of the intended uses and the operation of the system. In many organizations someone who will not be operating it, will commission the software development project. In the initial stage people doubt about the software but we have to ensure that the resistance does not build up, as one has to make sure that The active user must be aware of the benefits of using the new system. Their confidence in the software is built up.

Proper guidance is imparted to the user so that he is comfortable in using


the application. Before going ahead and viewing the system, the user must know that for viewing the result, the server program should be running in the server. If the server object is not up running on the server, the actual process wont take place.

10.1.1 User Training


User training is designed to prepare the user for testing and converting the system. To achieve the objective and benefits expected from computer based system, it is essential for the people who will be involved to be confident of their role in the new system. As system becomes more complex, the need for training is more important. By user training the user comes to know how to enter data, respond to error messages, interrogate the database and call up routine that will produce reports and perform other necessary functions.

10.1.2 Training on the Application Software


After providing the necessary basic training on computer awareness the user will have to be trained on the new application software. This will give the underlying philosophy of the use of the new system such as the screen flow, screen design type of help on the screen, type of errors while entering the data, the corresponding validation check at each entry and the ways to correct the date entered. Galgotias College of Engineering and Technology, Greater noida

47 It should then cover information needed by the specific user/ group to use the system or part of the system while imparting the training of the program on the application. This training may be different across different user groups and across different levels of hierarchy.

10.1.3 Operational Document


Once the implementation plan is decided, it is essential that the user of the system is made familiar and comfortable with the environment. Education involves right atmosphere and motivating the user. A documentation providing the whole operations of the system is being developed in such a way that the user can work with it in well consistent way. The system is developed user friendly so that the user can work the system from the tips given in the application itself. Useful tip and guidance is given inside the application itself to help the user. Users have to be made aware that what can be achieved with the new system and how it increases the performance of the system. The user of the system should be given a general idea of the system before he uses the system.

10.1.4 System Maintenance


Maintenance is the enigma of system development. The maintenance phase of the software cycle is the time in which a software product performs useful work. After a system is successfully implemented, it should be maintained in a proper manner. System maintenance is an important aspect in the software development life cycle. The need for system maintenance is for it to make adaptable to the changes in the system environment. Software maintenance is of course, far more than "Finding Mistakes". Maintenance may be defined by describing four activities that are undertaken after a program is released for use.

Galgotias College of Engineering and Technology, Greater noida

48

CHAPTER-11

Galgotias College of Engineering and Technology, Greater noida

49 11. SCREEN SHOTS.

Galgotias College of Engineering and Technology, Greater noida

50

Galgotias College of Engineering and Technology, Greater noida

51

Galgotias College of Engineering and Technology, Greater noida

52

Galgotias College of Engineering and Technology, Greater noida

53

Galgotias College of Engineering and Technology, Greater noida

54

Galgotias College of Engineering and Technology, Greater noida

55

Galgotias College of Engineering and Technology, Greater noida

56

Galgotias College of Engineering and Technology, Greater noida

57

Galgotias College of Engineering and Technology, Greater noida

58

Galgotias College of Engineering and Technology, Greater noida

59

CHAPTER-12

Galgotias College of Engineering and Technology, Greater noida

60 12. SCOPE FOR FUTURE INHANCEMENTS Although all the main objectives according to SRS document have been achieved but still there is room for enhancement. User can create its own profile which will be unique. Scores database will maintained. Using mobile web other players can also play. Cross platform apps.

REFERENCES

BOOKS:
Herbert Schildt Java Complete Reference John M. Wargo Android Development Fundamentals Anthony Rizk Beginning Android Development Chris King Advanced Android Development

Roger S. Pressman Software engineering ONLINE REFERENCE:


http://www.roseindia.com http://www.java.sun.com http://us.android.com/developers/ http://www.google.com

Galgotias College of Engineering and Technology, Greater noida

61

Galgotias College of Engineering and Technology, Greater noida

S-ar putea să vă placă și