Chapter system effectively and smoothly. It is also

Chapter No: 1
Introduction
Definition

Purpose
Objective
Scopes
Technology and Literature Review

We Will Write a Custom Essay Specifically
For You For Only $13.90/page!


order now

?
S

1.1 Definition:
College bus transportation system helps the transportation department to manage the transportation system effectively and smoothly. It is also helpful for user who use the transportation service of a campus.

1.2 Purpose

The purpose of our system to increase the flexibility of the parent, student and teachers. Making the system faster than the present system. Also facilitate the Administrator so that he can easily access bus location information from anywhere. Also this system reduces complexity of the tracking. Using this system all manually works and paperwork is reduced.

1.3 Objectives

• To provide information in minimum time and also with minimum effort.
• Try to avoid human committed errors and misclassification as far as possible.
• To make the whole process error free, reliable and fast.
• To ensure the avoidance of the duplication of the various process.
• To build up a fully multi user system.

1.4 Scope

Nowadays there is a huge bulk of data and to handle this data is difficult task. It consumes the lot of time. Transportation service will reduce the time as all the data which was handled manually now will handle online. We can help from tracking system for easily track the college for satisfaction.
1.5 Front end and Backend

• Front end: iOS 7 or Later

iOS is the operating system that runs on iPad, iPhone, and iPod touch devices. The operating system manages the device hardware and provides the technologies required to implement native apps.

The iOS Software Development Kit (SDK) contains the tools and interfaces needed to develop, install, run, and test native apps that appear on an iOS device’s Home screen. Native apps are built using the iOS system frameworks and Objective-C language and run directly on iOS. Unlike web apps, native apps are installed physically on a device and are therefore always available to the user, even when the device is in Airplane mode. They reside next to other system apps, and both the app and any user data is synced to the user’s computer through iTunes.

• Freedom of building application with maximum resources and minimum effort.
• iOS provides enterprise level security.
• Most favored app development platform.
• Simple UI.

• Back end: SQLite

SQLite is a software library that implements a self-contained, server less, zero-configuration, transactional SQL database engine. SQLite is the most widely deployed SQL database engine in the world.

1.6 Technology and Literature Review

For developing GMS as described earlier for frontend iOS and for backend MySQL are used respectively.

iOS

iOS comprises the operating system and technologies that develop use to run application natively on every iDevices. Although it shares a common heritage and many underlying technologies with Mac OS X, iOS was designed to meet the need of a mobile environment, where user’s needs are slightly different.

Xcode (iOS SDK) contains the code, information, and tools developer need to develop, test, run, debug, and tune applications for the iOS. In addition to providing the basic editing, compilation, and debugging environment for developer code, Xcode also provides the launching point for testing developer application on iPhone, iPod or iPad.
Xcode also lets developer run applications in iOS simulator, a platform that mimics the basic iOS environment on developer’s local Macintosh Computer.

Followings are reasons to use iOS

Works Great with SQLite
iOS has its own SQLite library framework, which can imported and can be used without any hassle.

Multitasking
Battery life is an important consideration for users of iOS devices and the multitasking model in iOS is designed to maximize battery life while giving apps the time they need to do critical work. When the user presses the Home button, the foreground app shifts to a background execution context. If the app has no more work to do, it is suspended from active execution and put into a “freeze-dried” state, where it remains in memory but does not execute any code. Apps that do need specific types of work can ask the system for background execution time.

Market Share
There is no denying that iOS has one of the largest market share in the mobile market.
With the market share growing, Apple app store grosses revenues of over more than $5 billion, as of April 2014, 41.4% market share is held by Apple.

Flexibility
The IDE supports developing for iPad and iPhone both. It is regularly updated and supports all the latest iOS technologies and new features.

Availability of Resources
By resources, we mean two things. First, thanks to the popularity of iOS, the number of (usually free) resources online and offline is continuously growing. No matter what your needs are, it is very likely that someone has already developed something very similar, be it related to frameworks, apple also has its developers page when everything about iOS can be learned.
SQLite

SQLite is an open source database which provides great features and so it is most used database service in iOS

Followings are reasons to use SQLite

Scalability and Flexibility
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 projects.

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.

Size
SQLite is a compact library. With all features enabled, the library size can be less than 500KiB, depending on the target platform and compiler optimization settings. (64-bit code is larger. And some compiler optimizations such as aggressive function inclining 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 cell phones, PDAs, and MP3 players. There is a trade-off 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.

Stable
SQLite is very carefully tested prior to every release and has a reputation for being very reliable. Most of the SQLite source code is devoted purely to testing and verification. An automated test suite runs millions and millions of test cases involving hundreds of millions of individual SQL statements and achieves 100% branch test coverage. SQLite responds gracefully to memory allocation failures and disk I/O errors. Transactions are ACID even if interrupted by system crashes or power failures. All of this is verified by the automated tests using special test harnesses which simulate system failures. Of course, even with all this testing, there are still bugs. But unlike some similar projects (especially commercial competitors) SQLite is open and honest about all bugs and provides bugs lists and minute-by-minute chronologies of bug reports and code changes.
Worldwide Support
The SQLite code base is supported by an international team of developers who work on SQLite full-time. The developers continue to expand the capabilities of SQLite and enhance its reliability and performance while maintaining backwards compatibility with the published interface spec, SQL syntax, and database file format. The source code is absolutely free to anybody who wants it, but professional support is also available.

Chapter No: 2
Project Management

Project Development model
Project Plan
Milestones and Deliverables
Risk Management

?

Software Project Management is an umbrella activity within software engineering. This chapter provides how to plan, track and estimates this application by managing various phases. It encompasses Project Development Approach’s justification, Schedules, risk analysis, cost and effort estimation.

2.1 Project Development model

The spiral model combines the idea of iterative development with the systematic, controlled aspects of the waterfall model.
Spiral model is a combination of iterative development process model and sequential linear development model i.e. waterfall model with very high emphasis on risk analysis.
It allows for incremental releases of the product, or incremental refinement through each iteration around the spiral.

Fig. 2.1 (a) SPIRAL MODEL

• Why Spiral Model??
The advantage of spiral lifecycle model is that it allows for elements of the product to be added in when they become available or known. This assures that there is no conflict with previous requirements and design.
This method is consistent with approaches that have multiple software builds and releases and allows for making an orderly transition to a maintenance activity. Another positive aspect is that the spiral model forces early user involvement in the system development effort.

2.1.1 Advantages
1. After each iteration, regression testing should be conducted. During this testing, faulty elements of the software can be quickly identified because few changes are made within any single iteration.
2. It is generally easier to test and debug than other methods of software development because relatively smaller changes are made during each iteration. This allows for more targeted and rigorous testing of each element within the overall product.
3. Customer can respond to features and review the product for any needful changes.
4. Initial product delivery is faster and costs lower.

2.1.2 Disadvantages

1. Resulting cost may exceed the cost of the organization.
2. As additional functionality is added to the product, problems may arise related to system architecture which were not evident in earlier prototypes.

Why this model is used

Incremental model is suitable for small projects. This model can be used when the requirements of the complete system are clearly defined and understood. Major requirements must be defined; however, some details can evolve with time. This model can be used when there is a need to get a product to the market early.

• Generates working software quickly and early during the software life cycle.
• This model is more flexible – less costly to change scope and requirements.
• It is easier to test and debug during a smaller iteration.
• In this model client can respond to each built.
• Easier to manage risk because risky pieces are identified and handled during its iteration.

2.2 Project Plan

Project Planning is concerned with identifying and measuring the activities, milestones and deliverables produced by the project. Project planning is undertaken and completed sometimes even before any development activity starts. Project planning consists of following essential activities:

• Scheduling manpower and other resources needed to develop the system.
• Staff organization and staffing plans.
• Risk identification, analysis, and accurate planning.
• Estimating some of the basic attributes of the project like cost, duration and efforts. The effectiveness of the subsequent planning activities is based on the accuracy of these estimations.
• Miscellaneous plans like quality assurance plan, configuration management plan, etc.

Project management involves planning, monitoring and control of the people, process and the events that occurs as the software evolves from a preliminary concept to an operational implementation. Cost estimation is a relative activity that is concerned with the resources required to accomplish the project plan.

2.3 Milestones and Deliverables

Management needs information. As software is tangible, this information can only be provided as documents that describe the state of the software being developed without this information it is impossible to judge progress at different phases and therefore schedules cannot be determined or updated. Milestone is an end point of the software process activity. At each milestone there should be formal output such as report that can be represented to the management

• Milestones are the completion of the outputs for each activity.
• Deliverables are the requirements definition and the requirements specification.
• Milestone represents the end of the distinct, logical stage in the project.
• Milestone may be internal project results that are used by the project manager to check progress.

2.4 Roles and Responsibilities
Software Process Activity Milestone
Feasibility Study Feasibility Report
Project Plan Project schedule
Requirement analysis User and system requirements
Design study Architecture of system design
Data flow analysis DFD, System flow
Design
1.Database design
2.User Interface design System Design Document
Implementation Coding details
Testing Setting validations and error messages

Table 2.4(a): Roles and Responsibilities

Fig. 2.4 (b) Roles
2.5 Project Scheduling
Fig. 2.5 (c) Schedule

2.6 Risk Management

Risk management consists of a series of steps that help a software development team to understood and manage uncertain problems that may arise during the course of software development and can plague a software project.

Risks are the dangerous conditions or potential problems for the system which may damage the system functionalities to very high level which would not be acceptable at any cost. so in order to make our system stable and give its 100% performance we must have identify those risks, analyze their occurrences and effects on our system and must prevent them to occur

2.6.1 Risk Identification

Risk identification is the process of determining risks that could potentially prevent the program, enterprise, or investment from achieving its objectives. It includes documenting and communicating the concern.

Risk Identification Process

The risk identification process begins with the team compiling the project’s risk events. The identification process will vary, depending on the nature of the project and the risk management skills of the team members, but most identification processes begin with an examination of issues and concerns created by the project development team. These issues and concerns can be derived from an examination of the project description, work breakdown structure, cost estimate, design and construction schedule, procurement plan, or general risk checklists. Appendix B contains four examples of risk checklists and table 4 provides a summary of two of these checklists. Checklists and databases can be created for recurring risks, but project team experience and subjective analysis almost always will be required to identify project specific risks.

The team should examine and identify project events by reducing them to a level of detail that permits an evaluator to understand the significance of any risk and identify its causes, (i.e., risk drivers). This is a practical way of addressing the large and diverse numbers of potential risks that often occur on highway design and construction projects. Risks are those events that team members determine would adversely affect the project.

2.6.2 Risk Analysis

Risk analysis is often viewed as a “black art”- part fortune telling, part mathematics. Successful risk analysis, however, is nothing more than a busi- ness-level decision-support tool: it’s a way of gathering the requisite data to make a good judgment call based on knowledge about vulnerabilities, threats, impacts, and probability.

Risk Type Risk Description/Causes Probability

Hardware failure In case of a server crash, there are still the backup tapes of the server. Low
Schedule Slippage If a person who’s responsible for a document notices that he can’t meet the deadline, he should immediately contact his backup person. Medium
Quality not reached The QA-leader has to keep an eye on all documents and code to ensure the quality of the deliverables. Low
Rapidly Change in requirements More number of Changes in customer’s requirements makes great changes in Medium
Table 2.6 (b): Risks

2.6.3 Risk Planning

A Risk Management Plan is a document that a project manager prepares to foresee risks, estimate impacts, and define responses to issues. It also contains a risk assessment matrix.
Risk management plans include a risk strategy. Broadly, there are four potential strategies, with numerous variations. Projects may choose to:

• Avoid risk: Change plans to circumvent the problem.
• Control risk: Reduces impact or likelihood (or both) through intermediate steps;
• Accept risk: Take the chance of negative impact (or auto-insurance), eventually budget the cost (e.g. via a contingency budget line).

Types of Risks

• Performance Risk – The degree of uncertainty that the product will meet its requirements and be fit for its intended use.
Cost Risk – The degree of uncertainty that the project budget will maintained.
• Project Risks – Threaten the project plan. If project risk become real, it is likely that project schedule will slip and that costs will increase.
• Technical Risks – Threaten the quality and timeliness of the s/w to be produced. If technical risk becomes real, implementation may become difficult or impossible.
• Business Risks – Threaten the viability of the s/w to be built.
• Known Risks – Those that can be uncovered after carefully evaluating project plan.
• Detectable Risks – Are extrapolated from past project experience.
?

Chapter No: 3
System Requirement Study

User Characteristics
Hardware and Software Requirements
Constraints

?

In this part users who will be interacting with the system and hardware required for that is described.

3.1 User Characteristics

Main users of this system can be categorized in types
• Admin User
• Students
• Parents
• Etc.,

3.1.1 Tracking System

This type of user will be responsible to manage whole data. These types of users have authority to modify and to control the system. Admin can handle the update, delete, and insert the data.

3.2 Hardware and software Requirement
Hardware

• iPhone
• iPad
• Compatible iOS device’s

Minimum hardware requirement

• iPhone 4 or Later
• iPad 4 or Later
• iOS 7 or Later
Software
For users: Application can be downloaded on the AppStore.
For development:
• System:
o Operating System: Mac OS X Lion or Higher
o RAM: 4 GB or more
o Intel i3 or Later
• Xcode 5 or Later
• MySQL 5 or Later
• Google Web Designer
3.3 Constraints

• With an help of bus tracking system we can find a college bus easily.
• Everyone may not have iOS device’s all the time so instant data access may not possible sometime.
• User can access data from anywhere due to the mobility of device.
• A dishonest user could hack the system and retrieve information.
?

Chapter No: 4
System Analysis

Study of Current/Existing System
Problem and Weaknesses of Current System
Requirements of New System
Feasibility Study
ScreenShot
?

4.1 Study of Current/Existing System
Current system access using the desktop application which is stationary and no mobility is available.

4.2 Problem and Weaknesses of Current System

The current system does not have centralized data, so redundancy may occur or data lose may occur.
In the existing system there is no directly connection between Tracking System and users.
In the current system all the work is done manually so paperwork done is also more.
Existing system is not user friendly.
Offline reports cannot be generated.
Illiterate bus drivers

4.3 Requirements of New System

New system will provide all new interface and. All data is centralized so data handling will be easy.

• New system is time saving and money saving.
• It is faster compared to existing system
• Easily information transmission and information sharing.

4.4 Feasibility Study
Depending on the results of the initial investigation the survey is now expanded to a more detailed feasibility study. “FEASIBILITY STUDY” is a test of system proposal according to its workability, impact of the organization, ability to meet needs and effective use of the resources.

4.4.1 Technical feasibility

It is a study of resource availability that may affect the ability to achieve an acceptable system. This evaluation determines whether the technology needed for the proposed system is available or not.
The GMS is an app which is technically feasible.

4.4.2 Economical feasibility

Economic justification is generally the “Bottom Line” consideration for most systems. Economic justification includes a broad range of concerns that includes cost benefit analysis. In this we weight the cost and the benefits associated with the candidate system and if it suits the basic purpose of the organization i.e. profit making, the project is making to the analysis and design phase.
The financial and the economic questions during the preliminary investigation are verified to estimate the following:

• The cost for whole project.
• Cost of equipment.

4.4.3 Operational Feasibility

The proposed system is beneficial if and only if it can be turned into an information system that will meet the operating requirements of the organization.

• Is the user happy with the new system?
• Have the end users been involved in the development and requirement Design phase?
• Will the user be affected in any undesirable manner after the system is installed?

4.4.4 Schedule Feasibility

Time evaluation is the most important consideration in the development of project. A reliable system can be developed in the considerable amount of time.

4.4.5 Features of new System

The features of the new system are described below.

• Easy user interface
• 24×7 access
• Time saving
• Money saving
• Faster solution
• Easily Track the college bus

• Does the system contribute to the overall objectives of the organization?
Yes it does.

4.4.6 ScreenShot

Chapter No: 5
System Design

Data Flow Diagram
Activity Diagram
ER Diagram
Class Diagram
Sequence Diagram
Use Case Diagram
Data Dictionary

?

5.1 Design Methodology
For developing GMS we have been using following Applications.
• SQLite test file
• iOS Simulator

5.2 Activity Diagram
Activity diagram is UML behaviour diagram which shows flow of control or object flow with emphasis on the sequence and conditions of the flow. The actions coordinated by activity models can be initiated because other actions finish executing, because objects and data become available, or because some events external to the flow occur.

Fig. 5.2 (a) Activity diagram

5.3 Sequence Diagram

A Sequence diagram is an interaction diagram that shows how processes operate with one another and in what order. It is a construct of a Message Sequence Chart. A sequence diagram shows object interactions arranged in time sequence. It depicts the objects and classes involved in the scenario and the sequence of messages exchanged between the objects needed to carry out the functionality of the scenario. Sequence diagrams are typically associated with use case realizations in the Logical View of the system under development. Sequence diagrams are sometimes called event diagrams or event scenarios.
A sequence diagram shows, as parallel vertical lines (lifelines), different processes or objects that live simultaneously, and, as horizontal arrows, the messages exchanged between them, in the order in which they occur. This allows the specification of simple runtime scenarios agraphicalmanner.

Fig. 5.3 (a) Sequence diagram

5.4 Entity Relationship Diagram
An entity–relationship model (ER model) is a data model for describing the data or information aspects of a business domain or its process requirements, in an abstract way that lends itself to ultimately being implemented in a database such as a relational database. The main components of ER models are entities (things) and the relationships that can exist among them, and databases.
• Entity: any object or thing of concern.
• Attribute: properties of entity.
• Relation: connection among entities.

Fig. 5.4 (a) ER Diagram
5.5 Use Case diagram
A use case diagram at its simplest is a representation of a user’s interaction with the system and depicting the specifications of a use case. A use case diagram can portray the different types of users of a system and the various ways that they interact with the system. This type of diagram is typically used in conjunction with the textual use case and will often be accompanied by other types of diagrams as well.

Fig. 5.5(a): Use case diagram
?
5.6 DFD Diagram
A data flow diagram (DFD) is a graphical representation of the “flow” of data through an information system, modelling its process aspects. A DFD is often used as a preliminary step to create an overview of the system, which can later be elaborated. DFDs can also be used for the visualization of data processing (structured design).
A DFD shows what kind of information will be input to and output from the system, where the data will come from and go to, and where the data will be stored. It does not show information about the timing of processes, or information about whether processes will operate in sequence or in parallel (which is shown on a flowchart).
Level – 0

Fig. 5.6 (a): Context Level Data Flow Diagram

5.7 Data Dictionary
Registration_tab
Field name Data type Comment
name Varchar(20) None
last_name Varchar(20) None
Gender Varchar(10) None
email Varchar(35) None
user_id Varchar(20) Primary_key
password Varchar(45) None
address Varchar(60) None
city Varchar(25) None
state Varchar(25) None
contact Varchar(10) None
role Varchar(20) None
Table 5.7(a) Registration Table

student_tab
Field name Data type Constrain
id Int(10) None
name Varchar(20) None
last_name Varchar(20) None
school_id Int(10) None
Table 5.7(c) User Table

driver_tab
Field name Data type Constrain
driver_name varchar(20) None
driver_id Int(10) Primary key
school_id Int(45) None
driver _contact Int(10) None
Table 5.7(d) Retailer Table
School_tab
Field name Data type Constrain
school_id Int(10) Primary key
school_ name Varchar(45) None
Contact Int(10) None
Address Varchar(60) None
Table 5.7(e) Supplier Table

?

Chapter No: 6
System Architecture

Types of architecture
Description of roles of each tier

?

6.1 Types of architecture

In this system we are used MVC Architecture.

MVC Architecture:

MVC Architecture stands for Model View Controller It is a used for software design pattern for developing web applications. A Model View Controller pattern is made up of the following three parts:

Model – The lowest level of the pattern which is responsible for maintaining data.

View – T his is responsible for displaying all or a portion of the data to the user.

Controller – Software Code that controls the interactions between the Model and View.
MVC is popular as it isolates the application logic from the user interface layer and supports separation of concerns.
Here the Controller receives all requests for the application and then works with the Model to prepare any data needed by the View. The View then uses the data prepared by the Controller to generate a final represent able response. The MVC Architecture can be graphically represented as follows.

Fig. 6.1 (a) MVC Architecture
In iOS, MVC is used everywhere. It is the reasonable way to separate your persistent data (note, I used persistent data here to refer the data needs to be stored, not the temporary data used by the application in fly), UI and application logic. It gives your code the maximum re-usability.
From the XCode, you can create the UIViewController subclass that will act as the controller, and from the Interface Builder, you then add the one or multiple Views as the view of your application.
The MVC architecture has the following benefits:
Multiple views using the same model
The separation of model and view allows multiple views to use the same enterprise model. Consequently, an enterprise application’s model components are easier to implement, test, and maintain, since all access to the model goes through these components.
Easier support for new types of clients
To support a new type of client, you simply write a view and controller for it and wire them into the existing enterprise model.
Clarity of design:- By glancing at the model’s public method list, it should be easy to understand how to control the model’s behavior. When designing the application, this trait makes the entire program easier to implement and maintain.

Chapter No: 7
Software Development

Security Features
Coding Standards

?

7.1 Security Features

For security various verification layers will be implemented. Each users will be verified be the admin and will be approved till that user will not have access to the content and functions except general content.
• To protect data security mechanisms will be implemented to prevent attacks like sql injection.
• User data will not be shared to anyone.
• Authentication: each and every user user’s identity will be verified by the admin and fake uses will be blocked.
• Encapsulation: all internal data will be well hidden from users and will not be altered by users.
• Integrity: All the data and databases will regularly backed up so if system failure occur all data can be restored.

7.2 Coding Standards:-
We are using the coding standards provided by Apple Inc., in their Coding Standards Guide
Code conventions are important to programmers for a number of reasons:

• Code conventions improve the readability of the software, allowing engineers to understand new code more quickly and thoroughly.

• Hardly any software is maintained for its whole life by the original author.

Naming Conventions:-

Object:-
Eg. insertObject: atIndex:
removeObjectAtIndex:
removeObject:
Prefixes:
Prefixes are an important part of names in programmatic interfaces. They differentiate functional areas of software. Usually this software comes packaged in a framework or (as is the case of Foundation and Application Kit) in closely related frameworks. Prefixes protect against collisions between symbols defined by third-party developers and those defined by Apple (as well as between symbols in Apple’s own frameworks).
A prefix has a prescribed format. It consists of two or three uppercase letters and does not use underscores or “sub prefixes.” Here are some examples:
Prefix Cocoa Framework
NS Foundation
NS Application Kit
AB Address Book
IB Interface Builder
Table 7(a): Cocoa Framework Prefixes

Use prefixes when naming classes, protocols, functions, constants, and typedef structures. Do not use prefixes when naming methods; methods exist in a name space created by the class that defines them. Also, don’t use prefixes for naming the fields of a structure.

Class:-
The name of a class should contain a noun that clearly indicates what the class (or objects of the class) represent or do.
The Foundation and application frameworks are full of examples; a few are NSString, NSDate, NSScanner, NSApplication, UIApplication, NSButton, and UIButton.
Methods:-
We are using the default method conventions suggested by Apple in their Coding Standard Guide:
Eg.
– (void)invokeWithTarget:(id)target;
– (void)selectTabViewItem:(NSTabViewItem *)tabViewItem
– (NSSize)cellSize;
– (void)setCanHide:(BOOL)flag;
– (BOOL)canHide;
– (void)setShouldCloseDocument:(BOOL)flag;

Header Files:-
How you name header files is important because the convention you use indicates what the file contains:
Eg.
NSLocale.h declares The NSLocale class.
NSString.h declares NSString and NSMutableString classes
?
Declared Properties and Instance Variables:-
A declared property effectively declares accessor methods for a property, and so conventions for naming a declared property are broadly the same as those for naming accessor methods (see Accessor Methods (page 12)). If the property is expressed as a noun or a verb, the format is:
@property (…) type nounOrVerb;
Eg.
@property (strong) NSString *title;
@property (assign) BOOL showsAlpha;
If you synthesize the instance variable using a declared property, specify the name of the instance variable in the @synthesize statement.
Eg.
@implementation MyClass
@synthesize showsTitle=_showsTitle;
?

Chapter No: 8
Testing

Testing Strategy
Testing Methods

?

8.1 Testing Strategy

As shown in the above figure, iOS testing Mind Map shows all the items which is considered in testing.

8.2 Testing Methods
The below figure introduces some common types of iOS testing methods.

Automated Testing:-
Automated testing is the most advantages of iOS testing. It enables you to detect the bug and performance issues quickly. The benefits of automated testing as shown below:
• Automated testing can run on multiple devices, saving your time
• Automated testing can target SDKs. You can run test on different SDK versions
• Automated testing increase your productivity of testing, save your cost of software development
Unit Testing with OCUnit:
When the original iOS SDK was released, it lacked unit testing capabilities. So Apple has brought back the OCUnit unit test solution in iOS SDK version 2.2.
OCUnit is a testing framework for C- Objective in the Mac OS. The biggest advantages of OCUnit framework are the tight integration into XCode development environment as shown below

Some of benefits of OCUnit are shown in below figure.

UI Testing with UIAutomation:
UI Automation is a JavaScript library provided by Apple Inc, which can be used to perform automated test on real devices and on iOS Simulator. This framework is added to iOS SDK4.0. Using UI Automation, you can automate testing the application not only on simulator but also real device.
UIAutomation bring you these benefits:
• Reduce effort on manual testing
• Use less your memory to execute all your tests
• Simplify your UI testing procedure ( just push one or three buttons and run full your test suites)
UIAutomation instrument works from scripts, which are written in JavaScript. It simulates user events on target iOS application.
Manual Testing:-
Exploratory Testing:
It is a testing without a formal test plan. Exploratory Testing is low cost testing method, but it can miss the potential bugs in your iOS application

?
User Testing:
User testing is a type of manual testing on iOS. The purpose of this testing is to create a better apps, not only bug-free apps. Below figure shows 4 types of User Testing

Concept Testing:
Evaluate user response to an application idea before release to the market. Procedures of concept testing on iOS are described as below

?
Usability Testing:
Usability testing is a test how easy to use your iOS application. In iOS testing, usability test could be recorded to remember or to share with others.
There is some tools support usability testing on iOS.
Magitest, a simple iOS usability testing for sites and apps.
Delight.io, this tool can capture real user interaction on your iOS apps
Beta Testing:
Beta testing is the integration testing with real data to get final feedback from users. To distribute your apps for beta testing, you have to follow steps below.

Pre-condition: If you are beta testing a final candidate for a release, be sure to validate the app before distributing it to testers.
Find tester via service: you collect device IDs from testers and add them to Member Centre
Create ad-hoc distribution: Ad Hoc distribution allows the tester to run your app on their device without need Xcode. This step includes 2 sub-steps
• Create distribution certificates
• Create Ad hoc provisioning profiles
Solicit feedback from tester: Tester conduct testing and send bug reports to you. After your app is released, you can get the reports from iTunes connect.
?
Beta Testing:
A/B testing is one of the most powerful ways to evaluate the effectiveness of your iOS app. It uses randomized experiments with two devices, A and B.

A/B testing includes 3 main steps
• Configure a test: Prepared 2 versions of your iOS app (A ; B) and test metric
• Test: Test 2 iOS apps versions above on devices simultaneously.
• Analyse: Measure and select better version to release
Following tools support A/B testing on iOS.
• Arise : A/B testing for both iOS and Android. It can be integrated into your iOS app and make the testing process more quickly.
Best practices for A/B testing
• Define the target of your test. Any test is useless without a target.
• Watch end users use your app the first time
• Run one test only per update. It saves your time when conduct testing
• Monitor your test carefully. You can learn experiences from your test by monitoring it.

?
8.2.1 Test Cases
• Install and Launch
• Memory Use
• Connectivity
• Event Handling
• External Influence
• User Interface
• Language
• Performance
• Menu
• Functionality
• Device Specific Tests
• Stability
• Data Handling
• Security
• Metadata
• Privacy and User Permissions
• Platform compliance: In app purchasing, ads
• Performance: Network and Battery usage

?

Chapter No: 10
Conclusion
Conclusion

11.1 Conclusion
College bus transportation system helps the transportation department to manage the transportation system effectively and smoothly. It is also helpful for user who use the transportation service of a campus.
The purpose of our system to increase the flexibility of the parent, student and teachers. Making the system faster than the present system. Also facilitate the Administrator so that he can easily access bus location information from anywhere. Also this system reduces complexity of the tracking. Using this system all manually works and paperwork is reduced.

References
• www.raywenderlich.com
• www.adobelabs.com
• www.w3school.com
• www.stackoverflow.com
• developer.apple.com

BUSINESS MODEL CANVAS

BUSINESS MODEL REPORT
Key partners
Key partners are the external companies or suppliers that we would need to perform our key activities and deliver value to the customers. Buyer-seller relationships are necessary to optimize operations and reduce the risks associated with our business.

• Transportation Tracking Management Department
• Student
• Faculty

Key activities
These include our product distribution, research and development-strategy etc.

• Transportation Information
• Seat Allocation
• Payment
Key resources
It includes what key resources do our value propositions require? These can be things like our used software, hosting requirements, human resources etc. These resources should be
mapped to the key activities.

• Information about Bus Transportation
• Student Requirements
• Transportation Services

Value proposition
It includes what value are we going to deliver to the customer? The value propositions can either be quantitative or qualitative. The output should be a list of value propositions arranged by priority, which are then linked to the applicable personas.
Provide Bus Information to student ; faculty
• Seat allocation
• Daily payment

Customer relationship
It includes what type of relationship do we maintain with each customer segment? What are the expectations of our customers? How to establish? them? We can decide
? What relationship we should have with the customers.
• Notification ?
• Mail notification?
? ?

Channels
It includes which channels are to be focused on to reach the desired customer segments? A company can reach its clients either through its own channels or partner channels. The?
? output should be a list of all channels that are then linked to the corresponding segments.

• Advertisement?
• Seminar?
• Blog
?? ? ?

Customer segments
It includes for whom are we creating value? What products and services are we offering to each customer segment? The output should be a list of personas according to the customer segment.
` Student
Faculty
Institute

Revenue streams
It includes what are the customers willing to pay and for what value? There are various ways to generate a revenue stream for our company such as marketing, advertising etc. These revenue?streams should be linked to the personas or segments and the value
? propositions.

By Selling?
By Contract-based/Maintenance ?

Cost Structure
It includes what are the most important cost drivers? in our business model? Which
? key resources and activities are most expensive?

? • Notification

? •?Transportation

PATENT DRAFTING EXERSICE