Description Of Bluetooth Technologies Computer Science Essay

Published:

This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.

CHAPTER 3 -LITERATURE REVIEW

When you hear the word "literature" for a piece of research the meaning is more specific .In term of a literature review ,"the literature "means the works you consulted in order to understand and investigate your research problem.

A literature review discuses published information in a particular subject are ,sometimes within a certain time period .The purpose in the context of the propose system is to summarize the information ,arguments and idea of other which are important to back up the information gathered from preliminary investigation and current knowledge of the developer in the domain area.

Research is the key to the success of every invention, especially in IT project it is essential as there are many white papers, services and product may be in the selected topic area. The developer will follow a constructive research approach which is common in computer science because it supports objective argument, definition and a prototype constructed with benchmark tests. This makes an emphasis on the importance of the literature review for detailed research.

DOMAIN RESEARCH

Domain research about the topic is very essential as it provides the base to develop any system. Knowledge of what thing is to develop and how it can be developed can be manipulated here.

It is very important for any application development to have a design structure or iterative model. It proves to be more vital for any product that it has incorporated new or untried features. It is better to have a predefined model so that time can be managed & for smooth flow of work.

And if application got right earlier, then an eleventh-hour change do the trick if enhancements are made. The advantage of a clear design is that, not only does it describe and plan for the mobile application & what all features are possible can be viewed and how the look & feel of the application will be can be visualized. Also it gives a rational framework within which to make any required changes.

Bluetooth Technology

The Bluetooth wireless connectivity technology was originally envisioned in 1994 by the Swedish phone equipment maker Ericsson as a way for mobile devices to communicate with each other at short ranges -- up to 30 feet, or 10 meters. In 1998, Ericsson, IBM, Intel, Nokia, and Toshiba formed the Bluetooth Special Interest Group consortium to develop a royalty-free, open specification for short-range wireless connectivity. Since then, more than 2000 companies have joined the Bluetooth SIG, including virtually all manufacturers of phone, computer, and PDA equipment.

While Bluetooth is positioned as a replacement for cable, infrared, and other connection media, it offers a variety of other services, and creates opportunities for new usage models. For instance, it's also a good technology for synchronizing devices. It works quietly, unconsciously, and automatically in the background.

Bluetooth Applications

Bluetooth wireless technology can be used for these applications:

File transfer.

Ad-hoc networking: Communicating devices can spontaneously form a community of networks that persists only as long as it's needed

Device synchronization: Seamless connectivity among PDAs, computers, and mobile phones allows applications to update information on multiple devices automatically when data on any one device changes.

Peripheral connectivity.

Car kits: Hands-free packages enable users to access phones and other devices without taking their hands off the steering wheel

Bluetooth Network Topology

Bluetooth-enabled devices are organized in groups called piconets. A piconet consists of a master and up to seven active slaves. A master and a single slave use point-to-point communication; if there are multiple slaves; point-to-multipoint communication is used. A master unit is the device that initiates the communication. A device in one piconet can communicate to another device in another piconet, forming a scatternet, as depicted in figure below. Notice that a master in one piconet may be a slave in another piconet:

Scatternet Comprising Three Piconets

Figure 3.1.1.2: showing Scatternet Comprising Three Piconets

Source- http://developers.sun.com/mobility/midp/articles/bluetooth1/fig1.gif

The normal duration of transmission is one slot, and a packet can last up to five time slots in length. In order to support full-duplex communications, Bluetooth uses a time-division multiplexing (TDM) scheme, in which a master device always uses an even-numbered slot when it transmits, and a slave uses an odd-numbered slot.

Bluetooth Protocols Stack

Bluetooth Protocol Stack

Figure 3.1.1.3: showing Bluetooth protocol stack

Source- http://developers.sun.com/mobility/midp/articles/bluetooth1/fig2.gif

The Link Manager Protocol (LMP)-uses the links set up by the baseband to establish connections and manage piconets. Responsibilities of the LMP also include authentication and security services, and monitoring of service quality.

The Host Controller Interface (HCI) -is the dividing line between software and hardware. The L2CAP and layers above it are currently implemented in software, and the LMP and lower layers are in hardware. The HCI is the driver interface for the physical bus that connects these two components.

Logical link control and adaptation protocol (L2CAP)-provides connection-oriented and connectionless data services to upper layer protocols with protocol multiplexing capability, segmentation and reassembly operation, and group abstractions.

Radio frequency communication (RFComm.)- Radio frequency communications (RFCOMM) is the cable replacement protocol used to create a virtual serial data stream.

Service discovery protocol (SDP)-Used to allow devices to discover what services each other support, and what parameters to use to connect to them.

TCP (Telephony Control Protocol)-Used to setup and control speech and data calls between Bluetooth devices.

Audio/visual control transport protocol (AVCTP)-The music control buttons on a stereo headset use this protocol to control the music player

Audio/visual data transport protocol (AVDTP)-Used by the advanced audio distribution profile to stream music to stereo headsets or computer speaker over an L2CAP channel.

Establishing Bluetooth Network Connection

When a device is not connected to a piconet, it is in a standby mode. In this mode, the device listens for messages every 1.28 seconds over 32 hop frequencies. When one device wishes to establish a connection with another, it sends out 16 identical page messages on 16 hop frequencies. If the slave doesn't respond, the master retransmits the page message on the other 16 hop frequencies. If the master doesn't know the slave's address it must precede the page message with an inquiry message, which requires an extra response from the slave unit. When the slave responds to the page message, the master can begin transmitting voice or data.

To understand how Bluetooth-enabled devices establish network connections, let's assume that Sally wishes to access her e-mail messages from her Bluetooth-enabled device as she enters a hotel or a mall. Once Sally taps the email application icon, the following procedures are carried out automatically:

Inquire: In a new environment, the device automatically initiates an inquiry to find an access point. All nearby access points respond with their addresses, and the device picks one.

Page: The paging procedure synchronizes the device with the access point.

Establish a link: The Link Manager Protocol establishes a link with the access point.

Discover services: The LMP uses the Service Discovery Protocol (SDP) to find out what services are available from the access point. Here we assume that the email service is available.

Create an L2CAP Channel: The LMP uses information obtained from the Service Discovery Protocol (SDP) to create an L2CAP channel to the access point. The application may use this channel directly or use a protocol like RFCOMM (Radio Frequency Communications Protocol) that might be running over L2CAP. RFCOMM emulates a serial line.

Create an RFCOMM channel: Depending on the needs of the application, an RFCOMM channel (or another channel) is created over the L2CAP channel. Creating an RFCOMM channel allows an existing application that works with serial ports to work with Bluetooth as well, without any modifications.

Authenticate: This is the only step that requires input from the user. If the access point requires authentication, it will send an authentication request, and the user will be prompted to enter a PIN to access the service. For security reasons, the PIN code itself is not sent over the wireless link, but rather a key generated from it.

Log in: If the devices use the Point-to-Point Protocol (PPP) over RFCOMM, a serial port is emulated, and Sally can log in to her email account.

Send and receive data: The email client and the access point now use standard network protocols like TCP/IP to send and receive data.

HCI Principles

The final product is in the hand of the user, so the user should be able to grasp the interface easily & should be able to navigate & understand the functionalities with ease. For this purpose it was very important for developer to understand the HCI principles while designing the application. Another major constrain is the mobile screen which is very limited in size.

Visibility: All the major controls of the system should be placed on highly visible location. The things which can be needed first or the options which needs to be selected first should be in the front & it should be easily visible & accessible to the user.

Feedback: In the mobile application this functionality plays a very important role. Most of the times people just remember the voice of the song on which the call comes and they can judge who the caller is without even looking at the screen. They just remember the sound they have set for that caller. Also this happens for the messages & other applications. So the proper feedback is very important so as to make the system easily accessible & user friendly. User should know which button or which option he/she has selected it should be highlighted or the music should be played.

Constraints: This is also very important from the developers' point of view. As there are many limitations for the embedded device such as memory constrain, processing constrain & resolution constrain, the application should use the proper constrain. Proper icons should be used to notify proper error or logical constraints should be used for color theme and other things should be taken contemplate of.

Mapping: Mapping naturally takes advantage of physical analogies & cultural standards so that user can understand how the things work.

Usability

Usability provides ease of use with minimum time effort, reducing learning time with user satisfaction for any application. And this is highly required in the mobile application. If the application is not following the any of the usability features than the user can go for other similar application. For the developer, to implement the usability is very important aspect of the designing. For this purpose the developer has done the following things:

Minimum navigation of the screen has been given for the users to go through so that user can remember the path easily & can remember at each stage what he is doing.

The screen designs are made quite simple & easy to use for any kind of user

Consistency has been maintained throughout the application.

Also the HELP instructions are given for the novice users at every application & also the general help is also provided that user's can use.

Minimum & necessary options are given for the user to select.

User Interaction technique on mobile phone

In today's market there are mainly two types of interaction technique through which data entry and operations are performed on mobile phones. These are as follows

Touch screen

Keypad and joystick

Touch screens- A touch screen is a display that can detect the presence and location of a touch within the display area. The term generally refers to touch or contact to the display of the device by a finger or hand. Touch screens can also sense other passive objects, such as a stylus. However, if the object sensed is active, as with a light pen, the term touch screen is generally not applicable. The ability to interact directly with a display typically indicates the presence of a touch screen.

Figure 3.1.4.a showing Mobile phone with touch screen

Source- http://www.mapds.com.au/newsletters/0807/iphone_home.gif

Limitations of Touch Screen

Touch screens can suffer from the problem of fingerprints on the display

The user experience with touch screens without tactile feedback or haptics can be difficult due to latency or other factors.

An ergonomic problem of touch screens is their stress on human fingers when used for more than a few minutes at a time, since significant pressure can be required for certain types of touch screen.

Keypad -A keypad is a set of buttons arranged in a block which usually bear digits and other symbols but not a complete set of alphabetical letters. If it mostly contains numbers then it can also be called a numeric keypad. Keypads are found on many alphanumeric keyboards and on other devices such as calculators, combination locks and telephones which require largely numeric input.

Benefits of Keypad over Touch Screen

It provide better ergonomics

Mobile phones with keypad are cheaper.

It is easy to use

Figure 3.1.4.b showing mobile phone with keypad and joystick

Source- http://www.india-server.com/mobiles/features/images/sony-ericsson-w700i-3.jpg

MARKET RESEARCH

The proposed system was intended to control the personal computer using mobile phone using Bluetooth .Conducted research and investigation reveal that similar system exist mainly for specific mobile phone model or specific mobile operating system .Although some software are very reliable but their cost and platform dependency restrict the number of people using it .Developer has reviewed many existing systems and selected the most identical ones with proposed system .The following section provides the review result.

G Remote PRO

Product Name

G Remote PRO

Description

G Remote Pro is software that lets you to remotely control popular applications on your PC using a mobile phone or PDA with Windows Mobile or Android system on board. Controlling presentations in PowerPoint, using Media Player, listening to Winamp, watching TV on your PC, playing games have never been so easy.

Functionality

Keyboard control

Mouse pointer control

Media player control

Presentation helper

Game Controller

Limitations

High Cost

Only supports windows mobile 6 and android operating system.

Only work with mobile phones with touch screen.

Source

http://gbmsoftware.com/

Aroma

Product Name

Aroma

Description

It is software which allow user to control their pc mouse pointer and Presentation with Linux operating system using their Nokia mobile phones.

Functionality

Mouse pointer control

Presentation helper

Limitations

Only works with Linux operating system

Only works with Nokia high range mobile

Source

http://www.linux.com/archive/feature/122074

Smart Touch

Product Name

Smart Touch

Description

It is new application for S60 5th Edition which allows you to control your PC via bluetooth. All you need is a 5800 XpressMusic and bluetooth enabled computer.

Functionality

Mouse pointer control

Medial player Control

Limitations

Only works with Nokia 5800 model

Requires touch screen in mobile phone to operate

Source

http://symbianworld.org/1395-smarttouch-control-your-pc-using-your-nokia-5800-xpressmusic

TECHNICAL RESEARCH

Selection of Software Development Methodology

Even though, methodologies could be defined by number of authors in various terminologies, it is more appropriate to describe an Information System Methodology as follows: A collection of procedures, techniques, tools, and documentation aids which will help developers in their efforts (both product and process related activities) to implement a new system. (Avison & Fitzgerald, 2003)

For successful implementation, a well-organized and systematic approach is crucial. Therefore, several methodologies were developed to encourage the systematic approach to planning, analysis, design, testing and implementation. Methodologies offer various tools and techniques to assist in analysis, design and testing in terms of detailed design of software, data flowcharts and database design. (Rowley, J.E, 1993)

Methodologies offer development team the ways of thinking, learning and doing to come close to the problem and control the development process. Most methodologies have planning, developing and managing stages in common. These generic stages consist of detailed descriptive steps to guide users with each stage and deliverables produced at each stage. Formalized methodologies are well-tried and often developed by experts. On the other hand, home-grown methodologies are developed inside an organization based on personal experience.

Criteria for selection of methodology

Criteria

Description

Outcomes at each stage

Each phase must have clearly defined either project management or product related deliverables.

Iterative Approach

Requirements will become better if refinements are done. Refinement is performed each iteration.

Incremental

Mobile and Windows applications have to be designed, developed and tested in an incremental approach.

Heavy Documentation

The methodology should support heavy documentation.

Analysis and design Support

Development can be started after completing analysis and design. Clearly defined structure of the methodology will greatly assist in development.

Implementation Support

The system will be implemented as per the specifications. So, the methodology should have implementation phase.

Testing Support

The more testing is done; it becomes more reliable and acceptable by user.

Rapid Application Development

The system will be built component by component. RAD method builds the system more reliable and robust as verification and validation is done in each component.

Degree of Complexity

The methodology should support complex project management activities to meet the requirements.

Object Oriented Programming

Object-oriented design facilitates reusable software components. It will help to build a scalable and structured web application.

Comparison chart of different methodology

Criteria

Waterfall model

Prototyping model

Rational Unified Process

Extreme Programming

Outcomes at each stage

Mobile phone and Windows application development support

Iterative Approach

Incremental

Heavy Documentation

Analysis and design Support

Project Management Support

Implementation Support

Testing Support

Manage risk

Rapid Application Development

Degree of Complexity

Object Oriented Programming

Total

33

54

46

41

Ranking

4th

1st

2nd

3rd

Justification -After the research, methodologies were evaluated against the defined candidate criteria and ranking was given. At the end, total score of each methodology was calculated and final ranking was given. The comparison shows that Prototyping model is the most suitable for a mobile and windows project. It embraces iterative and incremental processes with analysis, design, implementation and testing sub-phases within itself. Apart from that, strong support for object-oriented analysis and design makes it suitable for the proposed system. Furthermore, Prototyping model is heavily supported by industry-standard tools and languages such as UML. Use-Case diagrams help to visually define the requirements and build the blueprint of the system. Based on the study, Prototyping model was finalized to be applied for this project.

Prototyping Model

A prototype is a working model that is functionally equivalent to a component of the product. In many instances the client only has a general view of what is expected from the software product. In such a scenario where there is an absence of detailed information regarding the input to the systemhttp://kona.kontera.com/javascript/lib/imgs/grey_loader.gif, the processing needs and the output requirements, the prototyping model may be employed.

This model reflects an attempt to increase the flexibility of the development process by allowing the client to interact and experiment with a working representation of the product. The developmental process only continues once the client is satisfied with the functioning of the prototype. At that stage the developer determines the specifications of the client's real needs.

The Steps Involved in Prototyping Model:

Requirement Definition/Collection: Initial step in the prototyping model involves definition of the overall objectives of the software, recognition of the system requirements etc.

Design: Once the requirement collection is over a quick design is created which focuses on parts of the software that are visible to the user like input approaches and output formats. Activity diagrams and use-case diagrams are made according to the functionality of proposed system.

Prototype Creation/Modification: The quick design leads to the construction of prototype which provides an overview of the proposed system.

Assessment: The prototype created is evaluated by the user so as to filter the requirements for the software and obtain their suggestions. Once the prototype is created, it is given to the customer for evaluation and to find more requirements, as it would be easier for the developer as prototyping model is used.

Prototype Refinement: After collecting the information from the users in the previous step, the prototype is revised so as to refine the requirements further and to develop the software with highest level of user satisfaction.

System Implementation: Once the assessment phase is successful i.e. the user is satisfied with the generated prototype the implementation phase starts.

Figure 3.3.1.4 showing Prototyping model

Source- http://dssresources.com/papers/features/demarest08/dwlcmodel.jpg

Advantage of Prototyping Model

There are many advantages to using prototyping in software development, some tangible some abstract.

Reduced time and costs: Prototyping can improve the quality of requirements and specifications provided to developers. Because changes cost exponentially more to implement as they are detected later in development, the early determination of what the user really wants can result in faster and less expensive software.

Improved and increased user involvement: Prototyping requires user involvement and allows them to see and interact with a prototype allowing them to provide better and more complete feedback and specifications. The presence of the prototype being examined by the user prevents many misunderstandings and miscommunications that occur when each side believe the other understands what they said. Since users know the problem domain better than anyone on the development team does, increased interaction can result in final product that has greater tangible and intangible quality. The final product is more likely to satisfy the users' desire for look, feel and performance.

Mobile Phone Application Development Methodology

Besides system development developer also require mobile phone application development methodology for effectively making client side application of proposed solution which is a mobile phone application. For mobile application, MIDlet development developer can use the project development lifecycle as shown in the diagram. This involves editing the source code, compiling, pre-verifying then packaging the application, then testing and deploying it. To save time and ease development, application can be tested using a built-in mobile device emulator.

Figure 3.3.2 showing Mobile development Methodology

Source- http://www.docstoc.com/docs/14282677/Table-of-Contents

Edit: The design process is an important aspect of development as devices that run Midlets often have limited memory capabilities. A MIDlet that works on one device may not work on another device if it has less memory; this is a major consideration that will influence the design process

Compile: At the time of Compilation it is important to tell the compiler to over-ride its built in libraries and use the MIDP libraries instead. This is often achieved on the command line by using the -bootclasspath parameter. This is done by itself in Netbeans when the application is run every time it is recompiled & its JAD file & JAR files are created. (Details about Jar file & JAD files are given in further sections)

Preverify: Pre-verification checks the compiled files to ensure they are suitable for packaging up for deployment to a mobile device; this is because resources are limited on a mobile device so it is necessary to ensure that the developed Class files will function in the Java Virtual Machine (JVM). Pre-verification also splits the byte-code verification that is found in the Java runtime security model into two steps. The byte-code verifier is too large for many mobile applications so the Class files during pre-verification are manipulated to run with a small verifier. Fortunately, NETBEANS automates the build and pre-verify phases which can ease development.

Package: Packaging means creation of jar file. JAR file includes the code, any images, and the manifest file. The manifest file is often used by mobile devices and contains a description of what is contained within the .jar file. This is by default created with the NetBeans & every time when the package is created then this file is reviewed.

Test: Testing an application is one of the most important stages of development; however it can become even more important with mobile applications when your application may run on a variety of different devices. Spending time prior to development on analysis and design will help the testing process. Besides that skills of developer also play an important part here. Developer cannot run the application on all the mobile phone available in market, which is where an emulator will come in handy. An emulator replicates the functioning of a physical device in software.

Deploy:This is where some real work is done. After the applicaion is running successfully on the emulator with the desired results. Then finally the developer can go for deploying the application on the embedded systems. For this the two files are required that created JAD file & JAR file.Developer needs to copy this file in the phone memory.Java will recognize the Jar file and will prompt user to install the application om mobile phone . Finally user can use the desired product.

System Architecture

Since the proposed system follows client server architecture also necessary to understand how client server architecture works on the proposed system. The application which will be installed on the mobile phone will act as a client which will give the x, y coordinates for mouse and ascii value for keyboard, media and presentation control to the server which will be pc .Then this server application will process and convert the value passed by client into and commands and accordingly computer will perform action after executing that command .So here J2ME application will act as a client and J2SE application will act as a server application.

Figure3.3.3 showing client server architecture of proposed system

Selection of Development Platform

It is very important to analyze which is the best platform to work upon at the very beginning of the project planning. Developer has gone quite detailed research about what can be the possible platforms on which to develop this mobile application.

So according to the survey & the research work done by the developer following results were obtained related to choosing a platform.

More than 80 % of the cell phones in the market are java enabled.

Mobile application developed on .net will be working on Windows Based Mobile phones only.

Java based application are much secure & robust compared to windows based mobile application.

There are only two major platforms available for developer to choose from to develop mobile application J2ME and .Net Compact Framework. Research has been done on both in quite detail & is specified which is better for this application as below.

J2ME vs. .NET

Multiple Platforms

Net CF supports only the Windows CE and Pocket PC platform. Windows devices consist of only a small part of today's mobile device population. Many of the above-mentioned mobile platforms have built-in Java support because Java allows developers to be productive across many mobile platforms. Symbian is most used OS in Mobile phones & it supports Java applications

Virtual Machine

The CLR environment executes .NET's Microsoft Intermediate Language code. In .NET, managed code always translates into native machine code rather than interpreted. Besides, NET is able to run multiple applications within a single process. That makes it slow in performance. When C# code is executing in an unsafe context, a lot of runtime checking is disabled. Hence, the program must have full trust in the machine it is running on. So security can be issue over here. Java source code is compiled into machine-independent byte code, which is then interpreted by Java Virtual Machine (JVM) at runtime. 

Consumer Application

.NET CF supports direct draw on canvas, double buffering, and device button remapping through its rich Windows Forms User Interface library. The J2ME platforms have strong support for consumer applications. MIDP 2.0 includes animation and game controls in the javax.microedition.lcdui.game package.

However J2ME & .net CF both are excellent platforms for developing mobile applications. Each has its own strengths & weakness. J2ME beats .net CF to the punch when it comes to portability across a variety of devices, & support for mobile databases & server products. Also J2ME vendors offer a wider selection of add-ons & development tools.

And also the developer is trying to make it more generalize so as it can run on maximum number of platforms. For these reasons developer has chosen J2ME for developing this mobile application.

J2ME (Java 2 Micro Edition)

This is a collection of useful API's to enable the creation of Java applications for mobile phones, PDA's and other small handheld devices. API differs to that of the J2SE or J2EE SDK's. It is designed for efficiency as it was first developed to run java applications on an embedded system with limited resources.

Operation:

J2ME utilises Mobile Information Device Profile (MIDP), a specification on the application of java on mobile devices or embedded systems. Applications written for MIDP are called MIDlets.

The core API's are defined on the phone by the Connected Limited Device Configuration (CLDC). MIDP and CLDC when combined provide the java runtime environment on the mobile phone.

The LCDUI (LCD User Interface) package contains classes for displaying data on the device in GUI form.

J2SE (Java2 Standard Edition)

J2SE stands for Java 2 Platform, which is been used by the developer to develop server side application of proposed solution. The collection of Java Programming Language API (Application Programming Interface) is being used in the server application that allows users to deploy Java applications on desktops and servers as well as embedded and real-time environments. J2SE platform is primarily used for writing applets and other Java-based applications. To inherit the platform independency in the project applets are being used as it is a subroutine of Java that is platform independent and performs a variety of functions, large and small, ordinary and dynamic. JavaBeans has emerged as one of the most important functionality that has been made possible by J2SE, so that the developer can develop and assemble the java Beans easily as it works as a reusable application, in order to create more sophisticated applications. With its support for Bluetooth technology for most of the system it becomes tentative development platform for developing the system.

Java Swing

When the developer feels any need to put more sophisticated set of GUI inserver sid application, then Swing would come as a solution, as it can be termed as an extension to Java AWT. Java Swing possesses the following properties, which would make serverside application

It is platform independent.

Extensibility. It allows users to extend the framework by extending the existing classes or providing alternative implementations of core components.

Customizable.

Configurable

Lightweight UI

Loosely Coupled

Writing Services

Essay Writing
Service

Find out how the very best essay writing service can help you accomplish more and achieve higher marks today.

Assignment Writing Service

From complicated assignments to tricky tasks, our experts can tackle virtually any question thrown at them.

Dissertation Writing Service

A dissertation (also known as a thesis or research project) is probably the most important piece of work for any student! From full dissertations to individual chapters, we’re on hand to support you.

Coursework Writing Service

Our expert qualified writers can help you get your coursework right first time, every time.

Dissertation Proposal Service

The first step to completing a dissertation is to create a proposal that talks about what you wish to do. Our experts can design suitable methodologies - perfect to help you get started with a dissertation.

Report Writing
Service

Reports for any audience. Perfectly structured, professionally written, and tailored to suit your exact requirements.

Essay Skeleton Answer Service

If you’re just looking for some help to get started on an essay, our outline service provides you with a perfect essay plan.

Marking & Proofreading Service

Not sure if your work is hitting the mark? Struggling to get feedback from your lecturer? Our premium marking service was created just for you - get the feedback you deserve now.

Exam Revision
Service

Exams can be one of the most stressful experiences you’ll ever have! Revision is key, and we’re here to help. With custom created revision notes and exam answers, you’ll never feel underprepared again.