Introduction Of Abb As A Company Computer Science Essay

Published: Last Edited:

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

The research area includes determining requirements and architecture of an information system and involved improving the systems usability, interactivity and methods in order to cultivate new interaction ideas and approaches to assist everyday planning, operation, monitoring and optimization tasks onboard marine vessels. The implementation part of the thesis included the development of a solution prototype for usage onboard marine vessels using Microsoft Surface multi-touch table.

Marine vessels use a big number of different and separated information systems with traditional mouse-and-keyboard interaction developed without considering the context of usage environment. These systems can be improved by integration and using different tools of interaction, adjusted to the needs of the real users and environmental context.

Multi-touch technologies introduce a new way of Human-Machine interaction. As a result, operators can be more effective and efficient in their work process. The goal of the thesis project was to provide a multi-touch solution on the base of Surface touch-table for marine vessels onboard usage. The contribution of the thesis was an attempt to apply the Microsoft Surface multi-touch table technology to industrial usage.


ABB is the world's leading supplier of power and automation technologies with approximately 130000 employees in 100 countries. ABB supports customers in improving the efficiency of they work process. ABB Corporate Research in Västerås, where this master's project was conducted, has approximately 200 employees, provides research studies and innovative solutions for operating companies. ABB's global business includes Marine systems and technologies. It develops automation and control solutions for marine claims, based on ABB's process automation technologies. ABB provides innovative, reliable, safe solutions and services to reduce operational costs and ensure optimum vessel work for its customers.


In the section, the purpose of this thesis is presented, starting with a problem statement and background. The goals are posed as well as scope that is set up in the study.


The new multi-touch technologies, which are presented on devices such as the Microsoft Surface, have a potential to introduce a fundamental change in Human-Machine interaction and enhance interaction experience. It can offer a new natural and intuitive way of how users interact with digital content. Currently, such interaction widely used in customer servicing or entertainment domains. It is time to offer the new technology for industry domain, automation, control and monitoring systems. This can bring benefits to operators to be more effective, efficient and interested in their work process.

Problem Statement

ABB needed to experiment with new multi-touch technologies such as Microsoft Surface touch table that could offer new ideas and approaches for interaction and assist everyday activity planning, task management, monitoring and controlling onboard marine vessels. A comprehensive user study was conducted by ABB before the start of the thesis. User study results were used to investigate how to develop a functional prototype, which can open up new opportunities for enhancing the user experience. The developed application should be simple, reusable, extendable, easy to access and have intuitive and user-friendly interface. Thus, the thesis work should follow a user-centered design process, which concentrated on a real user and his needs.

Therefore, the purpose of the thesis work was to provide a concept and a software prototype to demonstrate the concept, which can help marine crew to perform their tasks more efficiently and effectively as now, they experience lack of usable and integrated tool. According to ABB requirements, the Microsoft Surface touch table should be used for the prototype and possibilities of mobile devices running Android incorporation into such context should be suggested.

The following questions will be answered:

Is it possible to use Microsoft Surface multi-touch technology to support onboard marine vessels maintenance operations, and how to develop a concept suitable for operation in such context using a user centered approach?

How mobile devices can be incorporated into the concept?


The main goal of the master thesis project is to build a functional prototype that assist marine crew to be more effective and efficient in their daily work.

Three stages were included in the project:

Develop a concept based on requirements obtained from user studies and propose an idea how mobile devices can be incorporated into the concept.

Implement a functional prototype for Microsoft Surface multi-touch table and develop a simple mobile device client prototype.

Evaluate the prototype and user experience of the developed concept.


The focus of this project is on the design of a software prototype, as well as the operation structure and function design. The thesis work aims at researching what a future application could look like and which functionalities are important for the end users, but not at producing a complete product. The user study conducted, resulted in a number of user requirements. Not all requirements were covered in the presented concept due to the time limitations of the project. Mostly, maintenance issues of marine vessels operations are covered by the scenarios, use cases, requirements analysis and the final application. No optimization and security issues are explored at this stage.


This part of the thesis provides a detailed description of the methods exploited. The method of data collection, which was conducted prior the thesis project started, is described.

User study

In order to understand the user context and environment, a comprehensive user study was conducted by ABB researches. The study was conducted in the users' natural environment, where the system supposed to be used. This type of a field study helps to obtain tacit knowledge, which is knowledge that can only be obtained in a user's environment. The user study was performed by visiting 4 vessels (RoRo(Roll on, Roll off), LNG carrier, Container ship and Cruise ship) and interviewing 26 relevant crew members (captains, chief engineers and officers, 1st and 2st officers and engineers), and through direct observation of the actual work and usage of computer systems (control systems, loading computers, advisory systems, voyage planning tools). During the user study, researches tried to understand the essence of the job, what it covers and how it is performed. Additionally, such issues as communication, task completion process and tools used are included to the study. The user study was focused on what the requirements are on a future HMI, which can make the work process more effective, and what issues and problems the users of the current system experience.

The user study aimed to answer the following questions:

Which users are involved to the usage of the products?

Which tasks and issues could be supported and resolved by the products?

What requirements users have for the products?

What opinion users have about the future version of the maritime software application?

Obtained information was used to determine topics to identify user requirements. However, due to the time constrains of this thesis, only some of the requirements were selected for further investigation, mainly in Maintenance sphere.

Design concepts

The design concept was generated by a brainstorming session on the base of results from the user study and evaluation of today's HMI. The brainstorming session was conducted with five participants, and it took one hour to finish it.

Design concept supposes to resolve the issues found in the user study.

Design phase

The design phase followed user-centered design approach and included determining use cases and the process of prototyping. The use cases were chosen according to discussions of the project team, with the goal to target the most common issues in the maintenance process.

After determining preliminary requirements and use cases, a throwaway prototype was created in order to refine use cases and requirements. It was used to display how use cases may work in the system by producing simple mockups. It has an advantage of quick creation and obtaining an early feedback concerning functionality and it can be easily modified before any coding. Paper prototypes were chosen for creating the throwaway prototype.

After the throwaway prototype helped to refine the requirements and led to the point of well-understood functionality, the evolutionary prototyping method was used. It was built on a stable and sustainable model, as it is created with the possibility of being turned into the final product, but allows adding features and making changes that could not be considered during the requirements elicitation and design steps. The evolutionary prototype, on its first stage, was created using Balzamiq Mockups tool.

An idea how mobile devices can be incorporated into the concept was proposed. In addition, an analysis of architectural alternatives for integration mobile devises into the prototype was performed.

Implementation phase

The implementation phase was defined by chosen hardware platform. Microsoft Surface touch table was chosen by ABB researches to be the main platform. It defined the choice of software platform. The tool for developing for Microsoft Surface touch table is .Net Framework with using of WPF technology, as it enhances multi-touch support and GUI development. Model-View-ViewModel pattern (MVVM), which is a design pattern developed for .Net applications by Microsoft, was chosen for developing the prototype. For a mobile device, Android platform was chosen.

The following activities were performed during this phase: implementing a prototype for the Surface touch table, and implementing a simple web service and an Android client.

Usability testing phase

Usability testing was conducted using observation of users while performing realistic tasks. Usability testing aims on defining usability weaknesses which can influence the performance and efficiency of tasks completion. The results of the usability testing can be an input to future development in order to improve usability.

The subjects participating in the usability test were five employees and master thesis students at ABB Corporate Research. All of them have experience in multi-touch interfaces. They tried to accomplish 12 tasks, including creation a task/note, delegating it to a crewmember, assigning it to specific equipment, checking performance information. The task performance was evaluated by the users according to four criteria: Effectiveness, Naturalness, Easiness and Clear Presentation.

Think-aloud protocol was used to obtain additional information. Subjects of the usability test were encouraged to speak aloud while accomplishing each task. They talked about their feelings, expectation, comments and frustrations. In addition, after finishing all tasks, they were also asked to give their comments retrospectively. Two interviewers observed test subjects and recorded participants' comments and actions during the test.


The chapter contains initial studies and overview of several areas related to the thesis.

User centered development

The term User-Centered System Design was started to use by Norman and Draper (1986) and currently this framework is widely used. This method focuses human factors within development process and links user requirements, goals, needs and limitations as early as possible into the process; the project is flexible on this early stage and can be changed easily (Salvendy, 2006).

User-centered design can be presented as an iterative process with such stages as recognizing the potential users, their contexts of use and tasks (ISO 13407, 1999). The process leads to developing the requirement specifications and goals of the product. Next important step after development is to obtain a user feedback and evaluate the results against the requirements received earlier. That stage can result in changes of implemented concept. The iterative cycle will be repeated until the goals are achieved and requirements are satisfied.

The purpose of the User-Centered Design is to ensure that a final product satisfies users' requirements. Usability, which is one of the main criteria to evaluate a software product and understand its suitability to meet the real user needs, can be defined as the "extent to which a product can be used by specified users to achieve specified goals with effectiveness, efficiency and satisfaction in a specified context of use" (ISO 9241-11 Guidance on Usability). The characteristics of usability can be efficiency to use and quickness and easiness to learn and remember, usability context appealing (Gulliksen and Goransson, 2002).

PACT (People, Activities, Context, Technologies) analysis - a framework for designing interactive systems (David Benyon et al., 2010) emphasizes the human-centered approach and serves as a tool for User-Centered Design process. Analysis of the key attributes (People, Activities, Context, Technologies) allows developing solutions that are usable in real life practice. Thus, the design process should consider: People, who are supposed to use the solution; Activities, which nature should be reflected; Context, which defines environment where the solution supposed to be used; Technologies, which are focused on how the input and output is handled.

A number of methods can be used in User-Centered design to specify requirements of a future solution: personas, scenarios, use cases. Personas present a set of realistic representative information and show a real world user (Cooper and Reimann, 2003). It is useful to define potential users of the system and their needs. They are created directly from user data. Scenarios present the system in its context and help to understand how user performs tasks currently, and allow prediction of future realization of the task in the future (Granollers et. al., 2005). Uses cases include information about tasks and activities, which should be accomplished by the user and the software product in order to achieve a specific goal (Kulak and Guiney, 2000).

After the design stages, User-centered design approach requires to evaluate the implemented prototype. Evaluation means reviewing, testing design, a piece of a product in order to discover whether it is learnable and effective for intended user population (David Benyon et al., 2010).

Gulliksen and Goransson (2002) offer a number of common methods: Expert evaluation, which suggests expert testing the system; Field study, which can be used after the system is deployed; Observation interview, which is used when the solution is in use; Scenario based evaluation, which suggests a user performing a task presented in a scenario or use case. Scenario based evaluation method is suitable for developing solution and can be used widely for solutions testing.

Questionnaires are widely used to gather information about users. Quantitative data can be captured by measuring of user's performance while execution of a specific tasks. Thinking-aloud protocol is one of the methods used to obtain information about user's thoughts and expectations about accomplishing the tasks (Nielsen, 1993).

The benefits of usage User-Centered Design approach include decrease production, support and usage cost as well as improved product quality (Earthy, 1996).

Functional prototypes in design process

Prototyping provides a powerful tool for applying principles of User-Centered design such as evaluation and user involvement. It allow user testing the developed concept and interact with its components. According to Moggridge (2006), prototype is "a representation of a design made before the final solution exists". Houde and Hill (1997) emphasize two functions of prototypes: exploration and demonstration. Wong (1992) advocates using a simple paper prototype at early stages of development process, rather than creating a software prototype.

According to Nielsen (1993), there are two types of prototypes: horizontal and vertical prototypes. A horizontal prototype defines users interface without presenting any functionality. It is cheap, fast and easy to implement it. A vertical prototype presents a small number of functions, which implemented at a high detail level. It can be used to evaluate a specific part of the product.

Houde and Hill (1997) say that a prototype answers three main questions: the role of the product (the purpose of the product in a given context), its look and feel (sensory experience of a user while using the product), its technical implementation (technologies used to implement a functional prototype).

A prototype is a physical representation of ideas and design concepts, which allows users to interact with it and evaluate satisfaction of requirements. It assists in obtaining a valuable feedback and improves requirements specification for the future development. Moreover, requirements for changes detected later in the process will cost more, thus, it is beneficial to determine them in earlier stage of development.

Surface Computing

Multi-touch interaction and new technologies such as Microsoft Surface have created new concept -Surface computing, where traditional GUI elements are substituted by touchable objects and the user interacts directly with a screen without additional input devices. It supposes to lead to more natural and intuitive Human-Computer Interaction. Direct finger pointing is the most essential feature of Surface Computing. Shneiderman (1983) has presented the notion of "directness" and Hutchins et al. (1986) developed further "Direct Manipulation" concept and presented it as two interface metaphors: the indirect "conversational metaphor" and the direct "model-world metaphor". In the first case, it is "a language medium, in which user and system have a conversation about an assumed, but not explicitly represented world" (Hutchins et al., 1986). In the second case, "the interface is itself a world" (Hutchins et al., 1986). It implies that no any intermediary supposed to be between user and world.

According to Jetter et al. (2009), direct manipulation (Hutchins et al., 1986) in a model-world interface is a preferred decision for Surface Computing design process.

Hutchins et al. (1986) emphasized notion of the qualitative feeling of engagement, "the feeling that one is directly manipulating the objects of interest" (Hutchins et al., 1985). Object-Oriented User Interface (OOUI) is an approach of how content and functionality is visualized for the user and can it be accessed and manipulated by the user (Jetter et al., 2009). According to Collins (1995), users perceive, act on objects and can classify them based in their behavior. Mandel (1994) sees the interface as "collection of cooperating objects and views of objects". OOUI approach is suitable for Surface Computing as even complicated functionality can be provided through creating, dragging, resizing or connecting objects in a "model-world" (Jetter et al., 2009). It allows avoiding rigid application structures and HMI conversations and provides more freedom for the user. Moreover, OOUI techniques such as inheritance and polymorphism achieve a maximum level of consistency in UI objects behavior and allow easy integration of various views and types of objects (Jetter et al., 2009).

Design patterns (MVVM)

There are a number of architectural design patterns which offer interoperability, portability, scalability and interchangeability. Major design patterns such as Model-View-controller (MVC), Model-View-Presentation (MVP) and Presentation Model (PM) have some disadvantages (Haihong P et al., 2011). Usage of MVC and MVP leads to tight coupling of User Interface and business logic and, in turn, to complexity in maintenance. PM does not provide a proper mechanism to couple User Interface presentation and business logic (Haihong P et al., 2011).

MVVM is an architectural design pattern that is suitable for developing WPF applications (Garofalo, 2011). MVVM uses Fowler's (2004) PM pattern, which separates visual presentation from implementation and operational behavior (Fowler 2004). In contrast to the MVC pattern, the MVVM pattern suggests that controller is already realized by default in .NET by DataBinding.

MVVM provides a loosely coupled structure and has three layers architecture: Model, View and the ViewModel.

Model encapsulates data and is responsible for communication with database, hiding the details of this operation to the next layer (Garofalo, 2011; Smith, 2009).

View model encapsulates business logic and state of objects. Its main purpose is to provide collections of objects to the UI, separating the internal logic from the interface (Garofalo, 2011; Smith, 2009).

View encapsulates the UI and any UI logic. Its purpose is to consume the data made available by the view model and show it to the user. The view interacts with the view model through data binding, commands, and change notification events (Garofalo, 2011; Smith, 2009).

Mobile solution

In order to incorporate mobile decision into the solution, it was decided to design a prototype of a mechanism for accessing of database, using a mobile phone (Android OS in this case).

The mechanism is supposed to be easy and uniform and has a possibility to provide security. There are two ways to access developed SQL database: Web Service and the direct database connections.

Figure 6.6: Direct Database Access

According to Dogdu et al. (2006), direct database connection is not feasible considering to scalability, security, performance and reliability issues. It provides tightly coupled architecture and increase cost of changes in the system.

Figure 6.7: Database access via a Web Service

Web Services approach is based on a service-oriented architecture (SOA), which is an architecture where software systems are provided as a set of services.

Web Service provides Interoperability as Web Service platform- and language-independent, better abstraction and looser coupling as the approach adds one additional level of indirection (Newcomer, 2005, Gurugé, 2004). This provides easy reusability of Web Service components. In addition, Web Service approach makes any solution more scalable concerning the number of users as SOA is characterized by statelessness. Web Service also can be used for centralized security, authentication and authorization point as it presents an additional layer. Other advantage of Web Services is the possibility to deploy the approach over standard Internet technologies and use underlying security (SSL). Thus, Web Services approach is better for client-servers architectures where client should not have direct connection to the database.

SOAP and REST are the methods for building Web Services. SOAP (Simple Object Access Protocol) uses XML technologies to envelope different information into messages.

Representational state transfer (REST) is an architectural style for networked applications using HTTP as an application layer protocol. Phd thesis of Roy Thomas Fielding "Architectural Styles and Design of Network-Based Software Architectures" first introduced REST approach. ROA (Resource-Oriented Architecture) is a set of guidelines used to implement RESTful Web Services (Fielding, 2000).

REST aims on transferring data between devices and it uses HTTP requests to read, post, delete data utilizing the standard features of HTTP CRUD (Create, Read, Update, and Delete) operations. REST sees everything as a resource and each resource should have URI (Uniform Resource Identifier) to access/refer to it.

Web services can be built using REST with JSON. JavaScript Object Notation (JSON) is a lightweight and language independent text format, which is used to interchange data in data structures, and can be a good alternative to XML, as it is simpler, and has no namespaces and no attributes (Crockford, 2006).

According to Muehlen et al. (2004), SOAP is a tightly coupled design architecture comparable with RPC (Remote Procedure Call), and REST is a loosely coupled design architecture comparable to navigating Web links. REST has benefit of unified interface, scalability and lightweight access to operations while SOAP has a need for client ports dedicated to different types of notifications and knowing operations by the clients beforehand (Muehlen et al., 2004). Muehlen et al. (2004) conclude that the both approaches are incommensurable, solve problems of machine-to-machine communication differently and are suitable for applying in different circumstances.

The mobile devices on Android OS were chosen for the prototype. Android does not have a standard built-in support for SOAP and may require third party libraries. Moreover, according to Hamad et al. (2010), REST has better response time within a mobile context. One of the main drawbacks of usage SOAP for mobile environment is the need for XML, which is complex in mobile context. In addition, JSON has a built-in support in Android environment, which eases the conversion of JSON object to Java. REST support within WCF (Windows Communication Foundation) is enhanced in .NET Framework 4.0. It is more standardized as uses HTTP operations, has less overhead as there is no need to wrap every message, and it is more human readable.

REST Web Service can be used by iPhone, Android, Windows Mobile, .NET web application, JAVA or PHP, if the system will require it in the future.

The best solution concerning to retrieval of information would be push notifications to mobile devices, so a notification message would be sent by a server to the device whenever new information is available. WCF 4.0 has duplex messaging with callback channel mechanism for supporting push notification of SOAP services. However, WCF does not have any push notification support available for REST services. In WCF 4.0, client notification over HTTP is pulling based. Google's C2DM framework (cloud to device messaging) is a possible solution for implementing pushing mechanism, which is available for Android 2.2 and higher. Android device keeps an open socket with Google's server and a service application has to POST a data to the server, which handles the request and sends it to the mobile device. However, such approach is unacceptable in the industrial application. In WCF 4.5, it will be possible to use WebSockets and callback channel over HTTP, so it would be possible to build the push notification support for REST service.


The chapter contains user studies results, conducted by ABB earlier. Analysis of the studies according to PACT approach is presented.

In order to elicitate the needs and requirements of the user group, the first step of the work was to analyze the user studies conducted by ABB earlier. The planning phase's material included user interviews, generated scenarios and personas.

User study allowed applying PACT (People, Activities, Context, Technologies) framework to the design of the interactive prototype. Environment of the system usage presents Context. Developed Personas represent People, who are supposed to work with the system. Activities can be found in scenarios and use case. Technologies are focused on a multi-touch interaction tool.

User study results


Users of the future system use the current solution, which consists of several separate systems. The systems are used for automating energy consumption onboard, positioning the ship, controlling different onboard operations, monitoring and managing the navigation information and vehicular traffic.

There are three control rooms onboard of vessels. Bridge is used for navigation and ballasting at sea. Engine control room is used for controlling engines and other devices. Cargo control room is used for loading, discharging, and ballasting alongside.

The following systems are used:

Control system: Controlling all the equipment onboard; often there exist several control system

Loading computer: For cargo and balance planning and trim optimization

Voyage planning: Weather information, data from other ships

User study helped to obtain information about the current solution, its problems and limitations.


People: The users of the future systems supposed to be the personnel of Marine Vessels. That can be Captain, Chief Engineer, 1st / 2nd Engineers, Electricians.

Activities: Finding of user studies and defined scenarios provide such activities in Maintenance Area as activity planning, task management, monitoring, and alarm handling.

Context: Onboard Marine Vessel: Bridge, Engine Control Room, Cargo Control Room.

Technology: The prerequisite of ABB was to use Microsoft Surface Multi-touch table. For a mobile device, Android platform should be used.


Requirement analysis determines the expected features of a new product by absorbing future users' needs through a series of processes. Requirements analysis consists of collecting information, extracting, summarizing the needs. It leads to requirement specification, which serves as a base for software development phase.

User study highlighted that the current system has some limitations and problems.

The proposed solution is supposed to narrow the gap between different perspectives of various systems used onboard. Thus, one of the features of the future system is a higher integration of the systems. That means that requirement of combined function and future extension should be considered during requirement, design and implementation phases. The system can be required to be upgraded to include extension of user demands, integrating other systems, for example, loading system and control system. Thus, the system should be designed using module architecture and include clear structure of associated data in database to ensure system scalability.

Overall requirements

The system must provide users with comprehensive and high-quality maintenance management service as there is a need for common communication channel, where users can share information by assigning tasks or notes and to see the most important real-time information.

Functional requirements

Non-functional requirements

Usability Requirements

The system should be well structured, have high usability level and provide high satisfaction of the user experience. The system should be easy to use, fast to learn. The system should be an integration of different systems.

Interface should be simple to avoid redundancy and ambiguity.

User should be able to navigate easily through the system. 

Performance Requirements

The system should have error free information retrieval and be stable.

Process Requirements

The ready to use system should be delivered according to specified schedule.

Implementation Requirements

The system should have module architecture with a possibility of expanding, adding new features and reusability. Developer should follow Object Oriented method.

Technical requirements

Solution should use the following technologies:

The solution should be developed with Microsoft .NET framework, Visual Studio 2010 as the development software, C# as programming languages and Microsoft SQL Server as database software. Solution has to be designed considering modularity and decoupled architecture, which allow future extension and providing additional function and services.

The solution should be used on Microsoft Surface multi touch table as digital tabletops are well suited for usage in public setting and multi-user environment and provide high quality interactive HMI. Thus, Surface SDK 2.0 will be used to developed multi-touch features of the solution.

Mobile devise should be on Android platform. The Android client should be developed with Eclipse as the development software and Java as the programming language.

Design Concept

The proposed solution includes maintenance management service with a common communication channel, where users can share information by assigning tasks or notes to specific onboard areas or specific equipment. Moreover, system should display the most important real-time process information. The system will follow the module architecture and include possibility of future extension and integration of other system, for instance, control system.

According to the requirement specification, the system should be easy to use, fast to learn and have high usability level. Moreover, it should be used on the multi-touch environment. Thus, the direct "model-world metaphor" was used for designing the solution concept, as, according to Jetter et al. (2009), direct manipulation (Hutchins et al., 1986) in a model-world interface is a preferred decision for Surface Computing design process. Additionally, even complicated functionality can be provided through creating, dragging, resizing or connecting objects in a "model-world" by using Object-Oriented User Interface (OOUI) approach (Jetter et al., 2009).

The prototype should use a model-world metaphor and combine it with "direct manipulation" technique in order to build a natural and direct interaction interface.

Thus, the design concept visualizes a vessel (Figure 6.2) in order to represent a world, which will respond to user actions and change its states accordingly. Such visualization supposed to provide overlap between the real and virtual world in order to offer natural, intuitive and logical interface; such mimicking of real world objects will simplify understanding the usage of the system and its individual interface components.

The concept of the real world will help to visualize the content and functionality. Users will access and manipulate objects, which will represent the vessel, tasks, specific areas (for instance, Engine Room (Figure 6.3)) and different equipment and are suitable for direct manipulation with touch and gestures. All the interface objects should fit together into overall context representation.

Objects can be created, resized, dragged and dropped. Such approach of communication is a flexible way of providing HMI without a need to follow strict conversational application structure.

Moreover, such approach allows a flexible and simple integration of other views or objects without the need for major changes.

User needs continuous situation awareness, in order to understand the state and behavior of the work processes. This knowledge should be obtained within a minimal time and minimal distraction. Thus, the most important relevant information should be presented at a first level of process information display hierarchy. Second level of details should be accessible by choosing corresponding area or equipment. This will filter information and improve navigation and orientation.

Database model

The solution used a simple database, which was designed using an Entity - Relationship model (ER) (Figure 6.4). It provides an abstract way to describe a database. ER diagram is presented by entity set, attributes and connections. Entity will present the real world object. Attribute presents properties of entities. Connection presents relationship between entities. The tasks should be connected to items/equipment, which can be a specific area or a device. Each item has data, which can represent its current conditions and monitoring information. This database model will be used only for the prototype with a static monitoring information. In the real operations, the monitoring information as a high frequency time-series data will be kept in a different model.

Functional services

The main purpose of the prototype is to demonstrate the concept of a software tool with a high performance user interface for onboard usage.

The Figure 6.5 displays logical flow of the solution, different parts of the prototype, and its main states and functions.

The idea is that each important area or equipment of a visualized vessel has possibility to assign to it a task, and the icon indicates the most important task assigned to that area. The user should be able to create, assign, delegate to a proper crewmember and track maintenance tasks. The tasks also can be dragged and dropped to an area or equipment. Icons of the tasks should demonstrate the importance of the tasks. That will help to organize the daily work onboard and create an efficient workflow.

Monitoring information is important for operation onboard. Thus, user should be able to see an overflow of specific areas, for example Engine room, its equipment and key performance indicators.

Mobile devices solution

In order to provide a possibility for the crewmembers check tasks assigned to them using personal mobile devices, it was decided to design a prototype of a mechanism, where a crewmember can access the database with tasks, using a mobile phone (Android OS).

Dogdu et al. (2006) consider direct database connection as not feasible considering to scalability, security, performance and reliability issues. It leads to tightly coupled architecture and increase cost of changes in the system.

Web Services provide interoperability, better abstraction and looser coupling (Newcomer, 2005, Gurugé, 2004). This leads to better scalability and easy reusability of Web Service components. Therefore, Web services approach was chosen for the implementing the prototype, as it is better for client-servers architectures where client should not have direct connection to the database.

JSON/REST based approach was selected to implement a lightweight and easy accessible Web Service and a simple Android client, as REST has benefit of unified interface, scalability and lightweight access to operations. JSON has a built-in support in Android environment and REST has support within WCF (Windows Communication Foundation). Additionally, according to Hamad et al. (2010), REST has better response time for mobile devices.

It was found out what currently it is impossible to provide push notification service without using Google's cloud to device messaging (C2DM) framework, thus, it was decided to implement the current prototype, using pull-based information retrieval.


The chapter describes the implementation of the thesis project. It presents used Hardware, Software, and Software architecture.


Multi-touch technology is a quite significant jump from the classical keyboard and mouse as inputs tools to the system. Such technologies require new interaction approaches as users are not needed to learn complicated sequences of keys or functions and all that is required is a touch of a finger or a gesture. That easiness supposed to allow user to focus on his goal as objects on such multi-touch screen can be manipulated directly and intuitively.

Microsoft Surface touch-table was selected to be used as the underlying hardware. It allows easy usage and requires minimal maintenance. It supports multi-touch and allow a user freely interact with the system.

Surface has 40-inch LCD multi-touch display with a high resolution of 1920 x 1080. PixelSense or "Optical Sensor In Pixel", a technology developed by Microsoft, recognizes up to 50 simultaneous touch points on the display. It presents an infrared array: each pixel uses an infrared sensor that identifies its light bouncing off an object. The computer obtains an eight-bit image, from which it can recognize shapes or text.

Surface touch table emphasizes and enhances user experience. The large size of the screen and almost unlimited multi-touch opportunities challenges generating new interaction ideas and approaches.

During implementation it was found out what it has some drawbacks: infrared technology recognizes a touch when the hand is not touching Surface but close to it; it reacts and recognizes a touching if a ray of sunlight is on it; if some Surface controls include a lot of graphics inside, the performance will be slow.


The prototype was developed on the base of Microsoft .Net Framework 4.0. The .Net framework is supposed to be used for software applications created for the Windows platform.

Windows Presentation Foundation (WPF) is a technology for creating graphical user interfaces. WPF uses data binding and dependency properties, which are computes their values based on other input runtime values. WPF provides separation of business logic and user interface by using a declarative XML-based language - Extensible application Markup Language (XAML) in order to define and link UI elements. The language has the hierarchical structure and uses the tags, with which an object is declared and within which objects properties are set. XAML can be split into several .xaml files and jointed together in the end. XAML is used to customize the look of an object, which can be done by applying resources describing the object.

Microsoft Expression Blend 4 was used to create graphical layout of the prototype.

UI elements have built-in events and can use triggers, for example button press, which invokes listeners assigned to the events.

Data Binding feature supports connection between User Interface and business logic by the coupling of an object and its content, which can be varied during the program execution.

Surface SDK 2.0 supports and enhances multi-touch and object interaction development for Surface computing devices or Windows 7 touch-enabled devices. It is built upon Windows 7, NET 4.0 and WPF 4.0 and integrated with Visual Studio 2010. The Presentation layer, which is one of the two development layers of Surface SDK, was used in order to obtain built-in Surface controls.

Microsoft SQL Server Compact Edition (SQLCE) was selected for the data store. SQLCE was chosen since it does not require an additional installation and the additional features, which were unnecessary for the prototype.

For developing the prototype, some external libraries were used: DelegateCommand (enables a View to bind commands to objects that are not part of the element tree), CommandReference (to facilitate a key binding in XAML markup to a command defined in a View Model), Item Selector control.

For web service development, WCF 4.0 (Windows Communication Foundation), which is SDK for developing and deploying services on Windows, was used. WCF REST service was created using 'System.ServiceModel.Web' namespace. JSON was used as an open standard lightweight data interchange format for messages of REST.

For developing an Android client, which consumes WCF REST Web Service, Eclipse development environment with JDK 6 and Android SDK was used.

Software architecture and implementation

System scalability is important when a solution is supposed to be upgraded and extended in the future. The proposed solution also has to follow the principles of scalability in order to anticipated expansion of user demand and including other functions and services to it.

Thus, the application architecture is using the separate layers: Data, Business and Presentation, which was achieved using the Model-View-ViewModel pattern (Figure 7.1). This allows having a modular, easily scalable and flexible application.

The User Interface classes are represented by View classes. Corresponding business logic is implemented in ViewModel classes. Model classes are responsible for providing data to ViewModel classes and communication with databases. Figure 7.2 presents Classes of the prototype, which follows the MVVM pattern.

NoteModel holds task information and is responsible for communication with database. The class implements the INotifyPropertyChanged interface, which allows a target element to be immediately notified if any of the properties changed on the object.

The views of prototype present different UI elements of the prototype, for example, main deck view UI or engine room view UI. It contains behaviors, events, and data-bindings.

ViewModels keep the majority of the code, they expose methods and commands to maintain the state of the view, control the model due to the actions on the view, and trigger events. For example, it contains a method, which executes when an UI element is touched. ViewModels are attached to the View's DataContext; it means Views get references to ViewModels. It binds TextBoxes, Labels or collections of the View to the values of the selected ViewModel. For instance, RoomViewModel is attached to BridgeView's, EngineRoomView's and others rooms views' DataContexts as they have similar functionality.

Converters were used in connection with UI to translate logical states into visual states.

Data binding is used to couple objects or to synchronize a model property with a property of a user interface control, for instance, text field has binding to its content, which is a variable that changes during the execution of the program (Figure 7.3). In other words, data binding defines how the model is linked the view.

There are two major options for the data binding: DependencyProperty and INotifyPropertyChanged.

INotifyPropertyChanged approach is suitable when creating a data object, as it simple and neat solution and there is need to implement only one event (PropertyChanged). It can be used in animation, styles, logical resources and other WPF tools.

DependencyProperties provide databinding, property inheritance within the visual tree, animation support. The values of defined dependency property can be get / set through the GetValue / SetValue methods.

In the prototype, the INotifyPropertyChanged interface was used to notify binding objects about changing of a property value. The source object implements INotifyPropertyChanged interface and a PropertyChanged event automatically raises when a value is changed (Listing 7.2). BindingMode.TwoWay binding was used when it was necessary to propagate changes of target to the source.

Dependency properties were used to communicate between some user controls, for example, one user control should update its content based on another user control (Listing 7.3). The target in such binding must always be a DependencyProperty. The DependencyProperty has to be declared and initialized as a static readonly property, when a regular property with set/get methods should be defined; finally, the property has to be bound to an object in .xaml file.

The inbuilt commands binding were done in XAML code. Custom commands were implemented in ViewModel layers by encapsulating them with ICommand interface. Commands created using ICommand interface (Listing 7.1) was exposed as public properties in order to make them accessible for binding.

For implementing some Surface specific controls built-in controls were used. For example, ScatterView is the XAML container for creating free-floating objects and ScatterViewItem implements all the necessary functionality needed for rotating, moving and scaling.

User Interface of the Prototype

The implemented prototype followed the developed concept. Figure 7.4 demonstrates cargo ship side overview. Cargo holds have indication of how much cargo they have. Each important area has opportunity to assign a task to it. Icons on the area indicate the most important task assigned to that area. Figure 7.5 displays Top View of the cargo ship.

There is also a drawing pad with a slide out navigation, where crewmembers can write by their fingers during meetings and discussion.

The application is also visualizing some important information concerning Navigation information, Weather information, Trim and Heel (Figure 7.4). On the main window, information shortcuts are presented in order to see the key performance indicators, such as pressure and temperate or weight in cargo holds, by touching it, user can see details and trend information (Figure 7.6). In addition, it can be used to display alarms.

By touching an icon, the user can access list of tasks (Figure 7.7). Figure 7.7 displays a task, which can be delegated to a crewmember, and indicated according to the priority (urgent, daily, under process or an accomplished task). The task, in order to be allocated, can be drag and dropped to an area. There is an area with number of tasks indicated with icons; it can slide out and is supposed to have fast accessed list of all tasks.

By touching a specific area on the ship image, the user can see overview of that area, for example, Bridge, Decks, Cargo Holds. If user touches the ballast area on the side view of the ship, he will see ballast system overview and ballast tanks filling level with valves (Figure 7.8). In addition, it is possible to include control functions to the system. For instance, in order to open valves by touching it, or controlling pumps with commands.

Figure 7.9 presents the overview of Engine room, which user can access by touching the Engine room on the Side View of the ship. Here, the user can assign tasks to the specific equipment, for example to the Main engine. In addition, the user can see the performance information of the equipment. In order to see the detailed info, the user should touch corresponding equipment (Figure 7.10).

Web Service Prototype

The solution for the Web Service supposed to be a simple prototype, thus, only GET function was implemented to demonstrate the possibility of utilizing mobile device in the context (Figure 7.11). In the android client application, the user can choose his work position from the list and get a list of tasks assigned to him. By choosing a specific task, the user can see details of the task.

Figure 7.11: REST service sequence diagram

WCF REST service was created using 'System.ServiceModel.Web' namespace. Service contract is an agreement between web service and client. It consists of three parts: Contract, Implementation and Interface. Contract defines the rules of the contract. Implementation presents implementation of the contract rules. Interface defines the connection between client and web service.

Service Contract is presented in Listing 7.4. WebGet, which is HTTP GET operation, was used to retrieve data from the WCF service. At the WebGet attribute UriTemplate was defined, which is set to "getdata/{target}". This means that in order to invoke the GET operation, work position title string should be provided. Data contract, which contains the data supposed to be passed as parameters to an operation and returned by the operation, was also defined.