Você está na página 1de 35

1|Page

1. INTRODUCTION On 17/06/2013, I and my group members went to Technovia Info Solutions, a reputed software company in Kakkanad. There we met Mr.Nishanth P.R, Chief Executive Officer of the said Computer Software firm. We discussed our suggestions for our Internship there. We said that because of our mini-project is in Android platform it will be easy for us to take a task related to mobile applications. Mr.Nishanth sir made a friendly relationship with us .On hearing our opinion, he suggested to do a small mobile application in Android platform .We like it and decided to do this. Nishanth sir decided to start the internship on 20th June. On the first day itself ,we decided the main objective of this Internship. 1.1 OBJECTIVE

The objective of this report is to explain what I did and learned during my internship period with the Technovia Info Solutions. The report focuses primarily on the assignments handled, working environment, successes and shortcomings that the intern did encounter when handling various tasks assigned to him by the supervisor. Because the various parts of the report reflect the interns shortcomings, successes, observations and comments, it would be imperative that the recommendations are also given. Therefore the report gives a number of comments and recommendations on the internship programme.

The objective of our app that developed during internship programme is to provide advanced attendance management features that enable the office staff and field staff to mark the attendance with the help of this mobile application. It also allows the admininistrator to view the attendance reports of his staffs.

Dept of IT

K.M.E.A Engineering College

2|Page

2. SYSTEM STUDY Analysis involves the requirement determination and

specification. It involves establishing requirements for all system elements and then mapping these requirements to the software forms. The analysis is intended to make a model that defines the key domain classes in system between developers and the people establishing the requirements. The purpose is to provide an understanding and enable a communication about the system between developers and the people establishing the requirements. Therefore the analysis is typically conducted in cooperation with the staff or customer. The developer should not think in terms of code or programs during this phase. It is the first step towards really understanding the requirements. The basic step of system development life cycle is identification of need. This include the staff request to change improve or enhance an existing system. The basic objective is determined whether the request is valid and feasible. The success of the system depends on accurately the problem is defined, investigated and properly carried out through a choice of solution. This step is intended to help the staff and analyst understand the real problem.

2.1 EXISTING SYSTEM In existing system, we use either swiping cards or biometric attendance systems to checkin/checkout to the office. Mobile phones have no option to register the attendance.

Dept of IT

K.M.E.A Engineering College

3|Page

2.2 PROPOSED SYSTEM

This application provide advanced attendance management features that enable the office staff and field staff to mark the attendance with the help of this mobile application. It also allows the administrator to view the attendance reports of his staffs. It also ensures the updating of current work done by the field staff and office staff. The application also provides provision to mark checkin and checkout in each time (morning, noon, evening). This application also checks whether the staff is- late for check in or early for checkout and make the information visible to the current staff and to the administrator. To provide staffs with more security and care for the attendance management in an office that is necessary in present scenarios. To save time and effort of the staff, by providing advanced features.

2.3 MODULE DESCRIPTION 2.3.1.Register module In this module users can register either as field or office staff to the attendance management application.

2.3.2.Login module In this module users can login to the attendance management application either as field or office staff.It also enables auto login for users.

2.3.3 Info Retrieval module This module is used to retrieve informations which is used to initialise the application.The information consists of office start time/end time,auto-login status,member status(active/suspended),...etc., A server is used in this module.

Dept of IT

K.M.E.A Engineering College

4|Page

2.3.4 Office Staff module Using this module,the office staff can checkin/checkout to his office.Office staffs are users who are working for fixed hours in their office.This module includes a forenoon checkin/checkout and afternoon checkin/checkout feature.This module also checks whether the staff is in his office or not.Only he can checkin/checkout if he is in his office.

2.3.5 Field Staff module Using this module,the field staff can checkin/checkout to various sites he need to go.This module saves the places he visited for his work on to a server.This module allows him to enter the purpose and status of his work on each location.

2.3.4.Attendence report module In this module both office staff and field staff can view their attendence report for the last 7 days/30 days.

Dept of IT

K.M.E.A Engineering College

5|Page

3. SOFTWARE AND HARDWARE REQUIREMENTS It includes two phases. Client side requirements Server side requirements

3.1Client side OS Version CPU Storage Internet Database : Android 2.3 or Above : 500 MHz or higher CPU : 256 MB : Active GPRS/3G Connection : SQLite Database

3.2 Server side CPU Storage RAM : : : 2.26GHz or higher CPU processor 20GB Hard disk space 4GB RAMs

Dept of IT

K.M.E.A Engineering College

6|Page

4. DEVELOPMENT TOOLS 4.1 JAVA Java is a set of several computer software products and specifications from Sun Microsystems (which has since merged with Oracle Corporation), that together provide a system for developing application software and deploying it in a cross-platform computing environment. Java is used in a wide variety of computing platforms from embedded devices and mobile phones on the low end, to enterprise servers and supercomputers on the high end. While less common, Java applets are sometimes used to provide improved and secure functions while browsing the World Wide Web on desktop computers.

Writing in the Java programming language is the primary way to produce code that will be deployed as Java byte code. There are, however, byte code compilers available for other languages such as Ada, JavaScript, Python, and Ruby. Several new languages have been designed to run natively on the Java Virtual Machine (JVM), such as Scala, Clojure and Groovy. Java syntax borrows heavily from C and C++, but object-oriented features are modelled after Smalltalk and Objective-C.[7] Java eliminates certain low-level constructs such as pointers and has a very simple memory model where every object is allocated on the heap and all variables of object types are references. Memory management is handled through integrated automatic garbage collection performed by the JVM. The Java platform consists of several programs, each of which provides a portion of its overall capabilities. For example, the Java compiler, which converts Java source code into Java byte code (an intermediate language for the JVM), is provided as part of the Java Development Kit (JDK). The Java Runtime Environment (JRE), complementing the JVM with a just-in-time (JIT) compiler, converts intermediate byte code into native machine code on the fly. An extensive set of libraries are also part of the Java platform.

The essential components in the platform are the Java language compiler, the libraries, and the runtime environment in which Java intermediate byte code "executes" according to the rules laid out in the virtual machine specification.

Dept of IT

K.M.E.A Engineering College

7|Page

4.1.1 Java Virtual Machine The heart of the Java platform is the concept of a "virtual machine" that executes Java byte code programs. This byte code is the same no matter what hardware or operating system the program is running under. There is a JIT(Just In Time) compiler within the Java Virtual Machine, or JVM. The JIT compiler translates the Java byte code into native processor instructions at run-time and caches the native code in memory during execution.

The use of byte code as an intermediate language permits Java programs to run on any platform that has a virtual machine available. The use of a JIT compiler means that Java applications, after a short delay during loading and once they have "warmed up" by being all or mostly JIT-compiled, tend to run about as fast as native programs.[citation needed] Since JRE version 1.2, Sun's JVM implementation has included a just-in-time compiler instead of an interpreter.

Although Java programs are cross-platform or platform independent, the code of the Java Virtual Machines (JVM) that execute these programs is not. Every supported operating platform has its own JVM.

4.1.2 Java Class Library In most modern operating systems (OSs), a large body of reusable code is provided to simplify the programmer's job. This code is typically provided as a set of dynamically loadable libraries that applications can call at runtime. Because the Java platform is not dependent on any specific operating system, applications cannot rely on any of the pre-existing OS libraries. Instead, the Java platform provides a comprehensive set of its own standard class libraries containing much of the same reusable functions commonly found in modern operating systems. Most of the system library is also written in Java. For instance, Swing library paints the staff interface and handles the events itself, eliminating many subtle differences between how different platforms handle even similar components.

Dept of IT

K.M.E.A Engineering College

8|Page

The Java class libraries serve three purposes within the Java platform. First, like other standard code libraries, the Java libraries provide the programmer a well-known set of functions to perform common tasks, such as maintaining lists of items or performing complex string parsing. Second, the class libraries provide an abstract interface to tasks that would normally depend heavily on the hardware and operating system. Tasks such as network access and file access are often heavily intertwined with the distinctive implementations of each platform. The java.net and java.io libraries implement an abstraction layer in native OS code, and then provide a standard interface for the Java applications to perform those tasks. Finally, when some underlying platform does not support all of the features a Java application expects, the class libraries work to gracefully handle the absent components, either by emulation to provide a substitute, or at least by providing a consistent way to check for the presence of a specific feature.

4.1.3 Java Development Kit The Java platform and language began as an internal Internship at Sun Microsystems in December 110100, providing an alternative to the C++/C programming languages. Engineer Patrick Naughton had become increasingly frustrated with the state of Sun's C++ and C application programming interfaces (APIs) and tools. While considering moving to NeXT, Naughton was offered a chance to work on new technology and thus the Stealth Internship was started.

The Stealth Internship was soon renamed to the Green Internship with James Gosling and Mike Sheridan joining Naughton. Together with other engineers, they began work in a small office on Sand Hill Road in Menlo Park, California. They were attempting to develop a new technology for programming next generation smart appliances, which Sun expected to be a major new opportunity. [11]

Dept of IT

K.M.E.A Engineering College

9|Page

The team originally considered using C++, but it was rejected for several reasons. Because they were developing an embedded system with limited resources, they decided that C++ needed too much memory and that its complexity led to developer errors. The language's lack of garbage collection meant that programmers had to manually manage system memory, a challenging and error-prone task. The team was also troubled by the language's lack of portable facilities for security, distributed programming, and threading. Finally, they wanted a platform that could be easily ported to all types of devices.

Bill Joy had envisioned a new language combining Mesa and C. In a paper called Further, he proposed to Sun that its engineers should produce an object-oriented environment based on C++. Initially, Gosling attempted to modify and extend C++ (that he referred to as "C++ ++ --") but soon abandoned that in favor of creating a new language, which he called Oak, after the tree that stood just outside his office.

By the summer of 110102, they were able to demonstrate portions of the new platform including the Green OS, the Oak language, the libraries, and the hardware. Their first attempt, demonstrated on September 3, 110102, focused on building a personal digital assistant (PDA) device named Star7[1] that had a graphical interface and a smart agent called "Duke" to assist the staff. In November of that year, the Green Internship was spun off to become first person, a wholly owned subsidiary of Sun Microsystems, and the team relocated to Palo Alto, California.[12] The first person team was interested in building highly interactive devices, and when Time Warner issued a request for proposal (RFP) for a set-top box, first person changed their target and responded with a proposal for a set-top box platform. However, the cable industry felt that their platform gave too much control to the staff and first person lost their bid to SGI. An additional deal with The 3DO Company for a set-top box also failed to materialize. Unable to generate interest within the TV industry, the company was rolled back into Sun.

Dept of IT

K.M.E.A Engineering College

10 | P a g e

4.2 Eclipse Eclipse is a multi-language software development environment comprising an integrated development environment (IDE) and an extensible plug-in system. It is written mostly in Java and can be used to develop Attendence Management applications in Java and, by means of various plug-ins, other programming languages including Ado, C, C++, COBOL, Perl, PHP, Python, R, Ruby (including Ruby on Rails framework), Scala, Clojure, Groovy and Scheme. It can also be used to develop packages for the software Mathematica. The IDE is often called Eclipse ADT (Ada Development Toolkit) for Ada, Eclipse CDT for C/C++, Eclipse JDT for Java, and Eclipse PDT for PHP. The initial codebase originated from VisualAge.[1] In its default form it is meant for Java developers, consisting of the Java Development Tools (JDT). Staffs can extend its abilities by installing plug-ins written for the Eclipse software framework, such as development toolkits for other programming languages, and can write and contribute their own plug-in modules. Released under the terms of the Eclipse Public License, Eclipse is free and open source software. It was one of the first IDEs to run under GNU Classpath and it runs without issues under IcedTea. The Eclipse Platform uses plug-ins to provide all functionality within and on top of the runtime system, in contrast to some other applications, in which functionality is hard coded. The Eclipse Platform's runtime system is based on Equinox, an implementation of the OSGi core framework specification.

This plug-in mechanism is a lightweight software component framework. In addition to allowing the Eclipse Platform to be extended using other programming languages such as C and Python, the plug-in framework allows the Eclipse Platform to work with typesetting languages like LaTeX,[13] networking applications such as telnet and database management systems. The plug-in architecture supports writing any desired extension to the environment, such as for configuration management. Java and CVS support is provided in the Eclipse SDK, with support for other version control systems provided by third-party plug-ins.

Dept of IT

K.M.E.A Engineering College

11 | P a g e

With the exception of a small run-time kernel, everything in Eclipse is a plugin. This means that every plug-in developed integrates with Eclipse in exactly the same way as other plug-ins; in this respect, all features are "created equal".[citation needed] Eclipse provides plug-ins for a wide variety of features, some of which are through third parties using both free and commercial models. Examples of plug-ins include a UML plug-in for Sequence and other UML diagrams, a plug-in for DB Explorer, and many others.

The Eclipse SDK includes the Eclipse Java development tools (JDT), offering an IDE with a built-in incremental Java compiler and a full model of the Java source files. This allows for advanced refactoring techniques and code analysis. The IDE also makes use of a workspace, in this case a set of metadata over a flat file space allowing external file modifications as long as the corresponding workspace "resource" is refreshed afterwards.

Eclipse implements widgets through a widget toolkit for Java called SWT, unlike most Java applications, which use the Java standard Abstract Window Toolkit (AWT) or Swing. Eclipse's staff interface also uses an intermediate graphical staff interface layer called JFace, which simplifies the construction of applications based on SWT.

Language packs developing by the "Babel Internship" provide translations into over a dozen natural languages.

4.2.1 ADT Plug-in Android Development Tools (ADT) is a plug-in for the Eclipse IDE that is designed to give you a powerful, integrated environment in which to build Android applications. ADT extends the capabilities of Eclipse to let you quickly set up new Android Internships, create an application UI, add packages based on the Android Framework API, debug your applications using the Android SDK tools, and

Dept of IT

K.M.E.A Engineering College

12 | P a g e

even export signed (or unsigned) .apk files in order to distribute your application. Developing in Eclipse with ADT is highly recommended and is the fastest way to get started. With the guided Internship setup it provides, as well as tools integration, custom XML editors, and debug output pane, ADT gives you an incredible boost in developing Android applications. This document provides step-by-step instructions on how to download the ADT plugin and install it into your Eclipse development environment. Note that before you can install or use ADT, you must have compatible versions of both the Eclipse IDE and the Android SDK installed.

4.3 Android SDK The Android software development kit (SDK) includes a comprehensive set of development tools. These include a debugger, libraries, a handset emulator based on QEMU, documentation, sample code, and tutorials. Currently supported development platforms include computers running Linux (any modern desktop Linux distribution), Mac OS X 10.5.8 or later, Windows XP or later. The officially supported integrated development environment (IDE) is Eclipse using the Android Development Tools (ADT) Plugin, though IntelliJ IDEA IDE (all editions) fully supports Android development out of the box, and NetBeans IDE also supports Android development via a plugin. Additionally, developers may use any text editor to edit Java and XML files, then use command line tools (Java Development Kit and Apache Ant are required) to create, build and debug Android applications as well as control attached Android devices (e.g., triggering a reboot, installing software package(s) remotely). Enhancements to Android's SDK go hand in hand with the overall Android platform development. The SDK also supports older versions of the Android platform in case developers wish to target their applications at older devices. Development tools are downloadable components, so after one has downloaded the latest version and platform, older platforms and tools can also be downloaded for compatibility testing.

Dept of IT

K.M.E.A Engineering College

13 | P a g e

Android applications are packaged in .apk format and stored under /data/app folder on the Android OS (the folder is accessible only to the root staff for security reasons). APK package contains .dex files (compiled byte code files called Dalvik executables), resource files, etc. 4.3.1 NATIVE DEVELOPMENT KIT Libraries written in C and other languages can be compiled to ARM, MIPS or x86 native code and installed using the Android Native Development Kit. Native classes can be called from Java code running under the Dalvik VM using the System.loadLibrary call, which is part of the standard Android Java classes. Complete applications can be compiled and installed using traditional development tools. The ADB debugger gives a root shell under the Android Emulator which allows native ARM, MIPS or x86 code to be uploaded and executed. Native code can be compiled using GCC on a standard PC. Running native code is complicated by Android's use of a non-standard C library (libc, known as Bionic). The underlying graphics device is available as a frame buffer at /dev/graphics/fb0. The graphics library that Android uses to arbitrate and control access to this device is called the Skia Graphics Library (SGL), and it has been released under an open source licence. Skia has backends for both Win32 and Unix, allowing the development of cross-platform applications, and it is the graphics engine underlying the Google Chrome web browser. Unlike Java application development based on the Eclipse IDE, the NDK is based on command-line tools and requires invoking them manually to build, deploy and debug the apps. Several third-party tools allow integrating the NDK into Eclipse and Visual Studio. 4.3.2 ANDROID OPEN ACCESSORY DEVELOPMENT KIT The Android 3.1 platform (also back ported to Android 2.3.4) introduces Android Open Accessory support, which allows external USB hardware (an Android USB accessory) to interact with an Android-powered device in a special "accessory" mode. When an Android-powered device is in accessory mode, the connected accessory acts as the USB host (powers the bus and enumerates devices) and the Android-powered device acts as the USB device. Android USB accessories are specifically designed to attach to Androidpowered devices and adhere to a simple protocol (Android accessory protocol)

Dept of IT

K.M.E.A Engineering College

14 | P a g e

that allows them to detect Android-powered devices that support accessory mode.

4.3.3 APP INVENTOR FOR ANDROID Main article: Google App Inventor On 12 July 2010, Google announced the availability of App Inventor for Android, a Web-based visual development environment for novice programmers, based on MIT's Open Blocks Java library and providing access to Android devices' GPS, accelerometer and orientation data, phone functions, text messaging, speech-to-text conversion, contact data, persistent storage, and Web services, initially including Amazon and Twitter. "We could only have done this because Androids architecture is so open," said the Internship director, MIT's Hal Abelson. Under development for over a year, the block-editing tool has been taught to non-majors in computer science at Harvard, MIT, Wellesley, Trinity College (Hartford,) and the University of San Francisco, where Professor David Wolber developed an introductory computer science course and tutorial book for non-computer science students based on App Inventor for Android.

4.3.5 HYPERNEXT ANDROID CREATOR Main article: HyperNext HyperNext Android Creator (HAC) is a software development system aimed at beginner programmers that can help them create their own Android apps without knowing Java and the Android SDK. It is based on HyperCard that treated software as a stack of cards with only one card being visible at any one time and so is well suited to mobile phone applications that have only one window visible at a time. HyperNext Android Creator's main programming language is simply called HyperNext and is loosely based on Hypercard's HyperTalk language. HyperNext is an interpreted English-like language and has many features that allow creation of Android applications. It supports a growing subset of the Android SDK including its own versions of the GUI control types and automatically runs its own background service so apps can continue to run and process information while in the background.

Dept of IT

K.M.E.A Engineering College

15 | P a g e

4.3.6 SDL The SDL library offers also a development possibility beside Java, allowing the development with C and the simple porting of existing SDL and native C applications. By injection of a small Java shim and JNI the usage of native SDL code is possible, allowing Android ports like e.g. the Jagged Alliance 2 video game.

4.4 SQLite Database SQLite is a relational database management system contained in a small (~350 KB) C programming library. In contrast to other database management systems, SQLite is not a separate process that is accessed from the client application, but an integral part of it. SQLite is ACID-compliant and implements most of the SQL standard, using a dynamically and weakly typed SQL syntax that does not guarantee the domain integrity. SQLite is a popular choice as embedded database for local/client storage in application software such as web browsers. It is arguably the most widely deployed database engine, as it is used today by several widespread browsers, operating systems, and embedded systems, among others. SQLite has many bindings to programming languages. SQLite is an in-process library that implements a self-contained, server less, zero-configuration, transactional SQL database engine. The code for SQLite is in the public domain and is thus free for use for any purpose, commercial or private. SQLite is currently found in more applications than we can count, including several high-profile Internships. SQLite is an embedded SQL database engine. Unlike most other SQL databases, SQLite does not have a separate server process. SQLite reads and writes directly to ordinary disk files. A complete SQL database with multiple tables, indices, triggers, and views, is contained in a single disk file. The database file format is cross-platform - you can freely copy a database between 32-bit and 64-bit systems or between big-endian and little-endian architectures. These features make SQLite a popular choice as an Application

Dept of IT

K.M.E.A Engineering College

16 | P a g e

File Format. Think of SQLite not as a replacement for Oracle but as a replacement for fopen(). SQLite is a compact library. With all features enabled, the library size can be less than 350KiB, depending on the target platform and compiler optimization settings. (64-bit code is larger. And some compiler optimizations such as aggressive function inlining and loop unrolling can cause the object code to be much larger.) If optional features are omitted, the size of the SQLite library can be reduced below 300KiB. SQLite can also be made to run in minimal stack space (4KiB) and very little heap (100KiB), making SQLite a popular database engine choice on memory constrained gadgets such as cellphones, PDAs, and MP3 players. There is a tradeoff between memory usage and speed. SQLite generally runs faster the more memory you give it. Nevertheless, performance is usually quite good even in low-memory environments. 4.4.1 Features Transactions are atomic, consistent, isolated, and durable (ACID) even after system crashes and power failures. Zero-configuration - no setup or administration needed. Implements most of SQL102. (Features not supported) A complete database is stored in a single cross-platform disk file. Supports terabyte-sized databases and gigabyte-sized strings and blobs. (See limits.html.) Small code footprint: less than 400KiB fully configured or less than 250KiB with optional features omitted. Faster than popular client/server database engines for most common operations. Simple, easy to use API. Written in ANSI-C. TCL bindings included. Bindings for dozens of other languages available separately. Well-commented source code with 100% branch test coverage. Available as a single ANSI-C source-code file that you can easily drop into another Internship. Self-contained: no external dependencies.

Dept of IT

K.M.E.A Engineering College

17 | P a g e

Cross-platform: Unix (Linux, Mac OS-X, Android, iOS) and Windows (Win32, WinCE, WinRT) are supported out of the box. Easy to port to other systems. Sources are in the public domain. Use for any purpose. Comes with a standalone command-line interface (CLI) client that can be used to administer SQLite databases.

4.5 Wamp Server WampServer is a Windows web development environment. It allows you to create web applications with Apache2, PHP and a MySQL database. Alongside, PhpMyAdmin allows you to manage easily your database. WAMP installs automatically Apache ,PHP, MySQL database ,PHPmyadmin and SQLitemanager on your computer. It's principal aim is to allow you to easily discover the new version oh PHP : PHP5. WAMP5 comes with a service manager installed as a tray icon. It allows you to manage WAMP and access all services.

When you install WAMP, all the files are copied in the directory you choose. Conf files are then modified to point to that directory. It also installs a "www" directory which will be your Document Root. 4.6 PHP Script PHP is an HTML-embedded scripting language. Much of its syntax is borrowed from C, Java and Perl with a couple of unique PHP-specific features thrown in. The goal of the language is to allow web developers to write dynamically generated pages quickly." This is generally a good definition of PHP. However, it does contain a lot of terms you may not be used to. Another way to think of PHP is a powerful, behind the scenes scripting language that your visitors won't see! When someone visits your PHP webpage, your web server processes the PHP code. It then sees which parts it needs to show to visitors(content and pictures) and hides the other stuff(file operations, math calculations, etc.) then translates your PHP into HTML. After the translation into HTML, it sends the webpage to your visitor's web browser.

Dept of IT

K.M.E.A Engineering College

18 | P a g e

4.7 MySQL MySQL provides all of the essential functionality required for a SQL database service. Although it is most frequently used to provide data storage for Web applications on the same system, MySQL supports replication and clustering across networks.

Dept of IT

K.M.E.A Engineering College

19 | P a g e

5. SYSTEM STUDY 5.1 Feasibility Study The feasibility of the Internship is analysed in this phase and business proposal is put forth with a very general plan for the Internship and some cost estimates. During system analysis the feasibility study of the proposed system is to be carried out. This is to ensure that the proposed system is not a burden to the staff. For feasibility analysis, some understanding of the major requirements for the system is essential.

Three key considerations involved in the feasibility analysis are

5.1.1Economical feasibility Economic analysis is the most frequently used method for evaluating the effectiveness of a new system. The economic feasibility study evaluates the cost of the software development against the ultimate income or benefits gets from the developed system. If benefits outweigh costs, then the decision is made to design and implement the system. An entrepreneur must accurately weigh the cost versus benefits before taking an action. This study is carried out to check the economic impact that the system will have on the organization. Attendance Management application is economically feasible as it only requires a mobile phone with Android operating system and integrated GPS device. The application is free to download once released into Android market. The staffs should be able to connect to internet through mobile phone and this would be the only cost incurred on the Internship.

5.1.2Technical feasibility The technical feasibility study the level of technology available in the software development firm and the level of technology required for the development of the application. Here the level of technology consists of the programming language, the hardware resources, other software tools etc.

Dept of IT

K.M.E.A Engineering College

20 | P a g e

5.1.3Social feasibility The aspect of study is to check the level of acceptance of the system by the staff. This includes the process of training the staff to use the system efficiently. In the Attendance Management application, the UI should simple to use for the common individual. Application flow has to be simple yet flexible enough to showcase functionality to the staff. A complex UI will confuse the staff and will be unable to use the application.

Dept of IT

K.M.E.A Engineering College

21 | P a g e

6. DATAFLOW DIAGRAMS 6.1 LEVEL 0 DFD


Attendance Management System Checkin/ Checkout

Users

Server

6.2LEVEL 1 DFD 6.2.1 Register module

Enter the user name

Enter the password

User
Enter the
confirm password

User registered to attendance management system

Whether field /office staff

6.2.2 Login module

Enter the user name

User

Enter the password

User login to attendance management system

Whether field staff/office staff

Dept of IT

K.M.E.A Engineering College

22 | P a g e

6.2.2 Info retrive module

SERVER

Retrives info

Stores to

Applications Database

6.2.3 Office staff module

USER

checkin checkout

Check whether the user is in office

Attendence Marked

6.2.4 Field staff module


Applications Database

Stores location

Checkin/

USER

checkout

Attendence Marked

Dept of IT

K.M.E.A Engineering College

23 | P a g e

6.2.5.Attendence Report Module

USER

Select

View Report

Dept of IT

K.M.E.A Engineering College

24 | P a g e

7.2 TESTING The primary goal of a test plan is to define testing procedures that will ensure the software is functionally correct from a documentation perspective and will verify application scalability limits. It also proves that reliability and fail over aspects of the system can indeed survive instances of system failure. Test Procedure: The procedure as follows:
1) Prepare the test case. 2) Record the expected results and verify whether in tune with

actual results.
3) If actual results are not in tune expected results do the

necessary rework.
4) Test again and check for the result. 5) If the test results are satisfactory, wind up testing.

Stop Criteria: Testing can be wrapped up when:


1) Actual test results matches with the expected ones. 2) System performance well in the specified environment.

System testing is the stage of implementation, which is aimed at ensuring that the system works accurately and efficiently before live operation commences. Testing is vital to Ethel success of the system. An elaborate testing of data is prepared and the system is tested using this test data. While testing error noted and corrections are made. The staffs are trained to operate the developed system. Both hardware and software securities are made to run the developed system successfully in future.

Dept of IT

K.M.E.A Engineering College

25 | P a g e

Testing steps: 7.2.1 Unit testing: Unit testing focuses verification efforts on the smallest unit of software design, the module. This is also known as "Module Testing". The modules are tested separately. This testing is carried out during programming stage itself. In these testing steps each Module is found to be working satisfactorily as regard to the expected output from the module. All units testing will be done in White Box fashion. Testing will be conducted using Basis Path testing methods, because of its simplicity and high effectiveness. Loop testing will also be conducted to compliment the Basis Path testing. In unit testing, the analyst tests the programs making up a system. This is also called program testing. The s/w units that make up the system are the modules and the routines, which are assembled and integrated to perform a specific function in a large system. Many modules at different levels are needed. Unit testing, independent of one another, focuses on modules to locate errors. This enables the tester to detect errors in coding and logic that are contained within that module alone. Those resulting from the interaction between modules are initially avoided. Unit test comprises the set of tests performed prior to integration of the unit into the entire Internship. Individual application will be tested separately. All parts are tested whether the data inputted is correct and whether it provides the expected results. In the first application we test the staff and staff management is working properly or not. In the second section we test whether calculation is properly done or not. The third section is tested whether all details are sending properly according to the query. 7.2.1.1 Functional Test: The code is exercised with nominal input values for which the expected results are shown, as well as boundary values (Minimum values, Maximum values) and values on and just outside the functional boundaries and special values such as logically related inputs.

7.2.1.2 Performance Test: Performance test is done to determine the amount of execution time spent in various parts of the unit, program throughput, and response time and device utilization by the program unit. Some time is taken initially

Dept of IT

K.M.E.A Engineering College

26 | P a g e

to link to the eclipse and getting connected to the java at the backend. Once the connection is established, records can be retrieved and processed without any delay. If the connection is closed and opened again the same delay will occur before getting the proper connection.

7.2.1.3 Stress Test: Fig 7.2.1.2 Stress Test has been done to intentionally break the unit. This helps in learning about the strength and limitations of the program by examining the manner in which a program unit breaks 7.2.1.4 Structure Test: Structure tests are done to test the internal logic of a program and traversing particular execution paths. The major activity involved in structure test is to decide which paths to exercise, deriving test data to exercise those paths, determining the test coverage criteria to be used. 7.2.2 Integration testing: Integration testing is a systematic technique for constructing tests to uncover errors Associated within the interface. The application has a highly modular design, top-down and bottom up integration will occur simultaneously. However, the system will be integrated incrementally, to control the amount of bugs that need to be fixed at any given time. This is to develop an incremental strategy that will limit the complexity of interactions among components as they

Dept of IT

K.M.E.A Engineering College

27 | P a g e

are added to the system, developing an implementation and integration schedule that will make the modules available when needed. In this test, groups of the program modules are tested together to determine if they interface properly. This is done incrementally as they are developed until the program system is tested, in the integration testing; the product is to conform our view of it at the specification and architectural design stage. The application will be integrated in the following order: first the main application will be tested then the second application and finally the third application. All the application is interconnected by using the same server as sender server .Tests will be conducted in a black box fashion. Initially we are loading the Google map, select the intended location using zoom-in operation and place the icon. After double tapping the icon a dialogue box appears ,which shows two options Alarm set Ok or Alarm set Cancel .When we click the Alarm set-Ok button alarm will be set with the predefined radius and snooze interval .Otherwise it shows the provision for setting the alarm with new radius and snooze interval. After reaching our intended location, a notification will be shown that destination has reached. Then again a dialog box shows snooze and dismiss options. While pressing snooze button alarm get fired again after predefined snooze interval whereas dismiss button makes the application to an end. Testing which was performed module wise in unit testing will be integrated and tested together in integration testing.ie

Two types of Integration Testing are: Top down Integration: This method is an incremental approach to the construction of program structure. Modules are integrated by moving downward through the control hierarchy, beginning with the main program module. The module subordinates to the main program module are incorporated into the structure in either a depth first or breadth first manner. Bottom-up Integration: This method begins the construction and testing with the modules at the lowest level in the program structure. Since the modules are integrated from the bottom up, processing required for

Dept of IT

K.M.E.A Engineering College

28 | P a g e

modules subordinate to a given level is always available and the need for the stubs is eliminated. In this Internship, all the modules combined, and then entire Program is tested as a whole. Thus in the integration testing step, all the errors uncovered are corrected for the next testing steps. 7.2.3 Validation testing: Validation testing is where requirements established as a part of software requirement analysis is validated against the software that has been constructed. This test provides the final assurance that the software meets all functional, behavioural and performance requirements .The errors, which are uncovered during integration testing, are corrected during this phase. To maintain maximum control over the testing criteria, all data files will be made specifically for testing purposes. The level builder will be tested to ensure proper communication between the interface and the database. Testing will be done in a black box fashion. The applications will be closely examined to ensure conformity with the System Requirements Specification. Noted criteria being examined are: ease of use and Principle of Least Astonishment regarding the interface, as well as a reasonable performance level, understandable code, and sufficient. In our application we actually test whether input data is correct or not and also the result produce is correct. 7.2.3.1 Output testing: After performing the validation testing, the next step is output testing of the proposed system since no system could be useful if it does not produce the required output in the specific format. The Output generated or displayed by the system under consideration is tested asking the staffs about the format required by then. Here, the output is considered into two ways: one is on the screen and the other is printed format. The output format on the screen is found to be correct as the format designed according to the staff needs .For the hard copy also, the output comes out as specified by the staff. Hence output testing doesn't result in any connection in the system.

Dept of IT

K.M.E.A Engineering College

29 | P a g e

7.2.3.2 Staff acceptance testing: Staff acceptance of a system is the key factor for the success of any system. The system under consideration is tested for staff acceptance by constantly keeping in touch with the prospective system staffs at time of developing and making for Site Downloader system. The testing of the software began along with coding. Since the design was fully object-oriented, first the interfaces were developed and tested. Then unit testing was done for every module in the software for various inputs, such that each line of code is at least once executed After all modules were coded the integration test were carried out. Some minor errors were found in the output at the earlier stage and each of them was corrected. In the implementation of staff interface part no major errors were found. After the software was completely developed, the testing was done. 7.2.4 System Testing The implementation of a computer based system requires that test data to be prepared and that the system and its elements be tested in a planned structured manner. The computer program

component is a major sub-system of the computer - based information system and particular attention should be given to the testing of this system element as it is developed. In a software development

Internship, errors can be injected at any stage during development. At each we have discussed different techniques for detecting and

eliminating errors that originate in that phase . In software the use of testing is not limited to the testing phase. System testing includes verification and validation, which can be classified as static and dynamic. In static method the behaviour of the

system is not observed by executing the system. In dynamic method the behaviour of the system is observed by executing the system. We have tested all the modules in our Internship separately and run successfully.

Dept of IT

K.M.E.A Engineering College

30 | P a g e

7.3 Test Tools and Environment Eclipse is used as testing tools as well as the testing environment. Test data files will be constructed for unit and integration testing. There are no other special tools or hardware. While in the real life scenario we consider the live environment to determine the overall performance.

7.4Test Schedule Test Phase Test Plan Creation Unit Testing Integration Testing System Testing Performance Testing Validation Testing Alpha Testing Beta Testing Pilot Program Time 2 days 3 days 2 day 2 days 6 days 3 days 2 days 5 days

Dept of IT

K.M.E.A Engineering College

31 | P a g e

7.5 System Maintenance Maintenance of the software is one of major step in the computer animation. Software which is developed by the engineer, should undergo maintenance process in regular interval of time goes on new problems arise and it must be corrected accordingly. Maintenance and enhancement are a long term process. In this Internship, the maintenance is carried over by the staff concern. Since they are the key persons to develop this Internship they know clearly about the Internship and coding structure. So, they will change the coding whenever required. Regarding the Internship maintenance, the changes will occur then and there according to the conditions. Various types of maintenance that can be made are: Corrective maintenance Adaptive maintenance Prefecture maintenance Reverse engineering Re engineering The staff in the concern are parted each and every level of the Internship. So they dont need any training of the software. During the development process they sit and entered each and every entry to test the Internship. They themselves used this is an opportunities to take training in the software so extra training is not needed for the staff.

Dept of IT

K.M.E.A Engineering College

32 | P a g e

8. CONCLUSION AND FUTURE ENHANCEMENT Our application Attendence Management provides staffs to standardize their living and helps them to save their valuable It is simple software that provides path for different applications and various modifications. Applications The Attendance Management has many features which will be very useful to those who are bored with the traditional check in methods. They can view and analyze their attendance reports quickly and easily.

9. BIBILIOGRAPHY www.google.com developer.android.com/

Dept of IT

K.M.E.A Engineering College

33 | P a g e

APPENDICES Screen Shots

Dept of IT

K.M.E.A Engineering College

34 | P a g e

Dept of IT

K.M.E.A Engineering College

35 | P a g e

Dept of IT

K.M.E.A Engineering College

Você também pode gostar