An Easier Way for Cross-Platform Data Acquisition Application Development

Size: px
Start display at page:

Download "An Easier Way for Cross-Platform Data Acquisition Application Development"

Transcription

1 An Easier Way for Cross-Platform Data Acquisition Application Development For industrial automation and measurement system developers, software technology continues making rapid progress. Software engineers or system integrators need to change their system, including hardware and software, to fulfill the different requirements of various applications. PC-based programmers can select different operating systems, or different programming tools, depending on their application requirements and their development resource. Therefore, the ability to develop and deploy within different commonly-used operating systems and integrated development environments (IDE) becomes more and more important to build PC-based data acquisition system. To achieve this, data acquisition solution providers need to carefully build it into their design concept. Let s talk about compatibility, the ability to work across multiple operating systems and be known as cross-platform - first. For native code programming such as C/C++ within Visual Studio or BCB, programmers need to implement system call for memory and thread management, UI implement, graph, file management, communication, device management, etc. Each operating system offer different system calls, and corresponding calling flows are also different.

2 Figure 1: Native Code Programming on Different Operating System Programmers need to learn different programming methods on different operating systems. In other words, you cannot execute compiled native code (binary codes) based on system calls from one operating system on another. For example, if you want to change your program from Windows 7 to Windows CE, if you have implemented system calls, you cannot use the existing source code, meaning it needs to be re-written. It forces programmers to learn and become familiar with the different system calls on multiple operating systems, and even may lead to re-defined program architecture. All this extra work takes a lot of time and effort, and will make migration between different operating systems difficult, which may limit the programmer when choosing a suitable operating system. To overcome this obstacle, more developers are choosing to use.net for programming..net technology offers an intermediate architecture and once programmers have completed their source code, the compiler helps to generate an intermediate binary code (aka Common Intermediate Language, CIL), instead of platform-depended binary code.

3 Figure 2:.NET Programming on Different Operating System On different operating systems, different installed runtime engines (Common Language Runtime (CLR)) will be responsible for making sure the intermediate binary code can be executed on that operating system. Actually, it offers one class loader and one JIT compiler, which will include necessary class libraries, as well as translate CIL to platform-depended binary code and execute it. For Microsoft Visual Studio programmers, this runtime engine is called.net framework. For the system developers, their program code for different operating system can be the same, and the CLR engine will take care of execution issues related to OS. Java leverages similar architecture. Java source code will become an intermediate byte code after Java compiler. Then, different Java engines (aka Java Virtual Machine, JVM) are needed for different operating system. These engines also have the same functionality as CLR engines, to execute the same source code on different operating systems. System developers can

4 benefit from a single program code that can be executed on different operating systems (like Windows and Linux), without any modification. Figure 3: Java Programming on Different Operating System Qt is another programming environment which is ideal for deploying on multiple operating systems. It offer a set of standard C++ class libraries, which will take care of many system-related tasks like graphic view, database, network, XML, thread management, etc. For programmers, they don t need to worry about low level system-related programming, that they can leverage Qt unified cross-platform class libraries. Therefore, unlike.net and Java mechanism, programmers include Qt class libraries within their source code. Then, using different compilers, the same source code can be compiled to different execution code on many common OSs. Unlike CLR or JVM there is no virtual machine needed to deploy the binary code on different OSs.

5 Figure 4: Qt Programming on Different Operating System For data acquisition application developers, the most important factor to make their program usable across multiple operating systems is that the DAQ device driver needs to support program languages or environments, which deliver cross-platform mechanism. Advantech s latest driver package, DAQNavi, supports native code compiler such as Visual C/C++, Borland C++, Delphi and VB. To help engineers able to develop cross-platform source code, DAQNavi also supports.net (such as C# and VB.NET), Java (with Eclipse IDE) and Qt programming. It can help programmers to come out with a cross-platform binary code. DAQ functionality implementation usually involves system calls which are affected by the operating system. If the DAQ driver supplier doesn t include related system calls into their DAQ libraries, it might become a nightmare for system developers, who want to use supplier s DAQ driver to develop a cross-platform DAQ program, because programmers need to be familiar with the programming differences between different operating system.

6 Take one example, a Buffered AI library will leverage system calls for memory and thread management, which will vary on different operating system. If the Buffered AI library doesn t take care of memory and thread management by itself, then the programmer needs to handle the programming issues caused by different operating systems. The development will become more complicated and need more programming experience. Based on this, Advantech DAQNavi has been particularly designed to handle system calls by its libraries, making the program calling flow become the same for Windows, Linux, and WinCE. In summary, DAQNavi wants to help engineers concentrate on their domain application development, and not worry about many programming issues relating to cross-platform development.

7 Speed Up Data Acquisition Project Development with Rapid Application Development (RAD) Rapid Application Development (RAD) is a software methodology for application software development, developed in the mid- 1970s. Compared to RAD, there is another well-known software development process called waterfall, which requires programmers to prepare a lot of development planning as well as system or architecture analysis before coding. For mammoth development projects, such as enterprise resource planning (ERP) system establishment or developing a powerful and complicated commercial software such as an office software suite or web browser software, the development needs to be done by a software team. Total development work will be cut out into segments and delegated to different software engineers. Overall software architecture, each segment definition and relationship between segments need to be clarified at the beginning. This will result in the adaption of the waterfall development process. Figure 1: Waterfall Software Development Process

8 For other development projects which have a clear application target and can usually be done by a single or a few software engineers, the RAD process can be adapted to achieve a faster development time. Industrial applications development like factory automation, production line testing system and laboratory measurement are typical examples. RAD involves iterative development and the construction of prototypes. Basically, Programmers will quickly build a draft program with a user interface (UI) as a prototype, and then the prototype program will be evaluated to see what needs to be modified. Then programmers will generate a second generation of prototype program, and the second evaluation is followed. This repeated procedure will continue until the development is done. Therefore, it can be prevented from spending a lot of time performing software architecture analysis at the beginning, and programmers can benefit from the fast development process. Figure 2: RAD Software Development Process Nowadays, for many data acquisition system developers in automation and measurement field, their application development needs to be done in short time, so they don t have too much time for software architecture analysis. In this case, RAD methodology is suitable for them to adapt, which can help them to short development time.

9 During their iterations, data acquisition programmers need to continue modifying their prototype programs. Those engineers need to call many libraries from drivers offered by the data acquisition hardware suppliers within their program. The coupling means the dependency relationship between those libraries. When the coupling increases, it brings more complicated relationship between the libraries, making the programmer more difficult to maintain their program during the iterations. To decrease programming complexity, interfaces of libraries need to be more independent, to make the program low coupling that it can fit in RAD application development methodology. This can be achieved if the libraries and IDE which if programmers choose can support RAD methodology. DAQNavi, Advantech data acquisition driver software, is designed with object-oriented programming (OOP) and component-based development (CBD) concept. It offers many software components with an encapsulated mechanism that hides data acquisition detail behavior (operation process), and only shows data acquisition functionality (operation purpose). These software components are class libraries, which we call it component style class libraries (CSCL). The encapsulated mechanism of these software components will contribute to lower program coupling, helping programmers more easily adapt RAD in their programming. To define the encapsulated mechanism of data acquisition software component, DAQNavi has designed a series of application Scenarios from most popular data acquisition applications, and defined suitable interfaces including properties, methods and events for the corresponding software component. For example, an application scenario Buffered AI means data acquisition devices will acquire a segment of analog input data by a specific sampling rate, and save them into a block of memory. So Advantech designed a dedicated software component, which supports a series encrypted

10 August, 2013 interface for programmers. Programmers can utilize this software component directly without knowing the detailed operations behind it, such as memory allocation, system DMA and interrupt configuration, DAQ device mode configuration, timing initialization, data read operation start and stop, DAQ device reset, system resource release, etc. In summary, using the Buffer AI component, programmers don t need to take care of the operational details, and only need to define the interfaces. Moreover, current data acquisition devices are empowered by more and more functionality, making it more difficult to learn. Programmers may spend a lot of time to get used to these DAQ devices and find the necessary functionality they need. Advantech has design a series of mechanisms, called Design-time Support, to help programmers easily understand how to work with DAQNavi by a series of interactive and user-guided wizard, called DAQNavi wizard. This is extremely important for RAD programming because programmers don t have too much time for program prototyping. It is especially obvious when programmers are handling powerful software components. The DAQNavi wizard will launch a pop-up window when related DAQ libraries are used (as the component BufferedAiCtrl in the figure below), and programmers can intuitively follow the step-by-step instructions to quickly complete the parameters (properties) configuration. Programmers can then concentrate on their expertise domain for their application, helping to achieve RAD development process.

11 August, 2013 Figure 3: DAQNavi Wizard Pop-Up Window for Programming These parameter configurations need to be saved, in order that the program will follow the configurations every time the program executes. It means the configuration results need to become part of the program. This mechanism is called Persistence. There are several ways to do this. The first is to generate a session of code representing the configuration. The second method is using Serialization and Deserialization, to save configuration value into static data (binary data base) within the program, and read the static data when the program launches. DAQNavi has developed the persistence mechanism based on different IDE environment that programmers don t need to take care of it, that it can help to save the program size during development. In summary, to leverage benefits of RAD programming methodology, data acquisition programmers need to choose suitable IDE and components. Advantech DAQNavi is a good

12 August, 2013 example which can achieve this. It helps programmers to decrease program coupling, and easily follow the concept of RAD programming methodology. Many built-in software designs such as component-style class library, scenarios, and persistence mechanism help programmers develop their prototype program in short time, to achieve the shortest time-to-market in their field.

13 August, 2013 Ensured Thread-Safe Programming For Reliable Data Acquisition Development Thread-safety is a computer programming concept used when developing a multi-thread program. It is a computer science methodology. When a program is thread-safe, it can be safely performed from multiple threads, even if the calls happen simultaneously on multiple threads. When you use thread-safety within your programming, it ensures your program can execute multiple threads at the same time without any problems, such as data overwrite, memory conflict and resource allocation mistake. The importance of thread-safety becomes more and more significant with rise of multi-thread software environments and multi-core CPU platform usage. Why Thread-Safe Is Important In DAQ Applications? Without considering thread-safety methodology in your programming, a race condition may occur, which causes unexpected data write/read behavior. Let s take one example, if there are two threads and will access a same memory address, there will be two possible results as below (the integer value may become 1 or 2, which you cannot predict). This kind of phenomenon is called a race condition. Figure 1: Race Condition for Multi-Thread Programming

14 August, 2013 Programmers will always want to avoid race condition because it will make their program out of control. Race conditions are notoriously difficult to reproduce and debug, because the end result is nondeterministic, and highly dependent on the relative timing between interfering threads. So, it will be best to prevent it happening at the begging of the programming. For DAQ applications, if thread-safety is not properly implemented in driver, system will become worse, such as system crashes or shared memory corrupting, when the programmer is designing a multi-thread program. How to Implement Thread-Safety In DAQ Application? For industrial automation and measurement applications, DAQ hardware suppliers, such as Advantech, will offer drivers and an SDK for engineers to develop their program. Multi-thread programming becomes more and more popular because people want to leverage powerful computing ability of latest processor, which significantly enhances control and measurement system performance. With this trend, software developers need to take the thread-safety mechanism into consideration, because of the requirement that system reliability needs to be kept the same, as well as the system processing ability to increase with a multi-core and multi-thread environment. If the hardware driver is not based on thread-safety methodology, then the real users engineers who develop programs with DAQ hardware, need to think about how to implement thread-safety in their programming. We call it doing thread-safety in user mode (or called application level), contrasted against performing thread-safety with a well-designed driver, which called kernel mode (aka kernel level). There are several commonly used ways to perform thread-safety by user mode: 1. Thread-Local Storage Variables in program are localized so that each thread has its own private copy. These variables retain their values across subroutines and other code boundaries. This can make the program thread-safe because variables are local to each thread even the code accessing the variables

15 August, 2013 may be executed simultaneously by another thread. Thread-local storage is to protect the shared data or variables being used. 2. Mutual Exclusion Mutual exclusion means access to shared resources (data or device) is serialized; using programming mechanism that ensures only one thread reads or writes to the shared data or device at any time. Semaphore and mutex are two popular methods of achieving this methodology. Both of them are like traffic lights to monitor the usage of the shared resource, and prevent two threads from accessing a shared resource concurrently. However, programmers need to be experienced and careful, as improper usage can cause side-effects such as deadlocks. 3. Atomic Operations All shared data or variables can only be accessed by atomic operations which cannot be interrupted by other threads. This operation refers to a critical section, which is a piece of code that accesses the shared resource (data or device) that must not be concurrently accessed by more than one thread of execution. What Is The Difference When Implementing Thread-Safety By User Mode And Kernel Mode? For DAQ application developers, it might be a nightmare to create thread-safe programs themselves (through user mode). It s much better that the DAQ hardware supplier can do thread-safety by kernel mode. First, DAQ hardware suppliers are usually more familiar with their own products than the application developers, and suppliers can quickly understand which part of the code is important for thread-safety consideration. Besides, a lot of evaluation testing (for example, the program should be tested on different platforms, or the testing period should be long enough, to ensure reliability) is needed after the thread-safe program is complete, and this is easier for the DAQ hardware supplier to perform the mass testing and verification.

16 August, 2013 For kernel mode implement, it can involve many priority management tasks which can contribute to thread-safety. In general, using kernel mode to implement thread-safety is much easier than using user mode, and will save application developers a lot of programming time. Moreover, using kernel mode to implement thread-safety will have better execution performance than the user mode in most cases. Thread-safe methodology through user mode usually decreases program execution efficiency. Advantech, as a global leader in industrial measurement and automation application, can leverage latest industry technology trend and understand most developers need. To help system developers shorten their programming time and effort, Advantech s DAQNavi driver, has been well designed to guarantee its thread-safety through kernel mode. Developers no longer need to worry about the thread-safe issue using user modes during their development.

Building Applications Using Micro Focus COBOL

Building Applications Using Micro Focus COBOL Building Applications Using Micro Focus COBOL Abstract If you look through the Micro Focus COBOL documentation, you will see many different executable file types referenced: int, gnt, exe, dll and others.

More information

Effective Java Programming. efficient software development

Effective Java Programming. efficient software development Effective Java Programming efficient software development Structure efficient software development what is efficiency? development process profiling during development what determines the performance of

More information

Chapter 12 Programming Concepts and Languages

Chapter 12 Programming Concepts and Languages Chapter 12 Programming Concepts and Languages Chapter 12 Programming Concepts and Languages Paradigm Publishing, Inc. 12-1 Presentation Overview Programming Concepts Problem-Solving Techniques The Evolution

More information

Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming

Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming Java has become enormously popular. Java s rapid rise and wide acceptance can be traced to its design

More information

Full and Para Virtualization

Full and Para Virtualization Full and Para Virtualization Dr. Sanjay P. Ahuja, Ph.D. 2010-14 FIS Distinguished Professor of Computer Science School of Computing, UNF x86 Hardware Virtualization The x86 architecture offers four levels

More information

Intel Application Software Development Tool Suite 2.2 for Intel Atom processor. In-Depth

Intel Application Software Development Tool Suite 2.2 for Intel Atom processor. In-Depth Application Software Development Tool Suite 2.2 for Atom processor In-Depth Contents Application Software Development Tool Suite 2.2 for Atom processor............................... 3 Features and Benefits...................................

More information

Multi-core Programming System Overview

Multi-core Programming System Overview Multi-core Programming System Overview Based on slides from Intel Software College and Multi-Core Programming increasing performance through software multi-threading by Shameem Akhter and Jason Roberts,

More information

Mobile Application Languages XML, Java, J2ME and JavaCard Lesson 04 Java

Mobile Application Languages XML, Java, J2ME and JavaCard Lesson 04 Java Mobile Application Languages XML, Java, J2ME and JavaCard Lesson 04 Java Oxford University Press 2007. All rights reserved. 1 C and C++ C and C++ with in-line-assembly, Visual Basic, and Visual C++ the

More information

1. Overview of the Java Language

1. Overview of the Java Language 1. Overview of the Java Language What Is the Java Technology? Java technology is: A programming language A development environment An application environment A deployment environment It is similar in syntax

More information

evm Virtualization Platform for Windows

evm Virtualization Platform for Windows B A C K G R O U N D E R evm Virtualization Platform for Windows Host your Embedded OS and Windows on a Single Hardware Platform using Intel Virtualization Technology April, 2008 TenAsys Corporation 1400

More information

STLinux Software development environment

STLinux Software development environment STLinux Software development environment Development environment The STLinux Development Environment is a comprehensive set of tools and packages for developing Linux-based applications on ST s consumer

More information

Base One's Rich Client Architecture

Base One's Rich Client Architecture Base One's Rich Client Architecture Base One provides a unique approach for developing Internet-enabled applications, combining both efficiency and ease of programming through its "Rich Client" architecture.

More information

Chapter 13 Computer Programs and Programming Languages. Discovering Computers 2012. Your Interactive Guide to the Digital World

Chapter 13 Computer Programs and Programming Languages. Discovering Computers 2012. Your Interactive Guide to the Digital World Chapter 13 Computer Programs and Programming Languages Discovering Computers 2012 Your Interactive Guide to the Digital World Objectives Overview Differentiate between machine and assembly languages Identify

More information

CA Aion Business Rules Expert 11.0

CA Aion Business Rules Expert 11.0 PRODUCT SHEET: CA Aion Business Rules Expert CA Aion Business Rules Expert 11.0 CA Aion Business Rules Expert r11 (CA Aion BRE) is an industryleading system that automates and streamlines business functions

More information

Dynamic Web Programming BUILDING WEB APPLICATIONS USING ASP.NET, AJAX AND JAVASCRIPT

Dynamic Web Programming BUILDING WEB APPLICATIONS USING ASP.NET, AJAX AND JAVASCRIPT Dynamic Web Programming BUILDING WEB APPLICATIONS USING ASP.NET, AJAX AND JAVASCRIPT AGENDA 1. Introduction to Web Applications and ASP.net 1.1 History of Web Development 1.2 Basic ASP.net processing (ASP

More information

Virtualization Technologies and Blackboard: The Future of Blackboard Software on Multi-Core Technologies

Virtualization Technologies and Blackboard: The Future of Blackboard Software on Multi-Core Technologies Virtualization Technologies and Blackboard: The Future of Blackboard Software on Multi-Core Technologies Kurt Klemperer, Principal System Performance Engineer kklemperer@blackboard.com Agenda Session Length:

More information

Manage Software Development in LabVIEW with Professional Tools

Manage Software Development in LabVIEW with Professional Tools Manage Software Development in LabVIEW with Professional Tools Introduction For many years, National Instruments LabVIEW software has been known as an easy-to-use development tool for building data acquisition

More information

Software Tracing of Embedded Linux Systems using LTTng and Tracealyzer. Dr. Johan Kraft, Percepio AB

Software Tracing of Embedded Linux Systems using LTTng and Tracealyzer. Dr. Johan Kraft, Percepio AB Software Tracing of Embedded Linux Systems using LTTng and Tracealyzer Dr. Johan Kraft, Percepio AB Debugging embedded software can be a challenging, time-consuming and unpredictable factor in development

More information

1/20/2016 INTRODUCTION

1/20/2016 INTRODUCTION INTRODUCTION 1 Programming languages have common concepts that are seen in all languages This course will discuss and illustrate these common concepts: Syntax Names Types Semantics Memory Management We

More information

Kernel comparison of OpenSolaris, Windows Vista and. Linux 2.6

Kernel comparison of OpenSolaris, Windows Vista and. Linux 2.6 Kernel comparison of OpenSolaris, Windows Vista and Linux 2.6 The idea of writing this paper is evoked by Max Bruning's view on Solaris, BSD and Linux. The comparison of advantages and disadvantages among

More information

How To Design An Information System

How To Design An Information System Information system for production and mounting of plastic windows MARCEL, MELIŠ Slovak University of Technology - Faculty of Material Sciences and Technology in Trnava, Paulínska 16 street, Trnava, 917

More information

Tools Page 1 of 13 ON PROGRAM TRANSLATION. A priori, we have two translation mechanisms available:

Tools Page 1 of 13 ON PROGRAM TRANSLATION. A priori, we have two translation mechanisms available: Tools Page 1 of 13 ON PROGRAM TRANSLATION A priori, we have two translation mechanisms available: Interpretation Compilation On interpretation: Statements are translated one at a time and executed immediately.

More information

ANDROID DEVELOPER TOOLS TRAINING GTC 2014. Sébastien Dominé, NVIDIA

ANDROID DEVELOPER TOOLS TRAINING GTC 2014. Sébastien Dominé, NVIDIA ANDROID DEVELOPER TOOLS TRAINING GTC 2014 Sébastien Dominé, NVIDIA AGENDA NVIDIA Developer Tools Introduction Multi-core CPU tools Graphics Developer Tools Compute Developer Tools NVIDIA Developer Tools

More information

Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.

Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont. Objectives To describe the services an operating system provides to users, processes, and other systems To discuss the various ways of structuring an operating system Chapter 2: Operating-System Structures

More information

An Introduction to.net for the J2EE Programmer

An Introduction to.net for the J2EE Programmer An Introduction to.net for the J2EE Programmer Jeroen Frijters Sumatra Software b.v. jeroen@sumatra.nl http://weblog.ikvm.net/ Jeroen Frijters An Introduction to.net for the J2EE Programmer Page 1 Overview.NET

More information

Mobile Application Development Android

Mobile Application Development Android Mobile Application Development Android MTAT.03.262 Satish Srirama satish.srirama@ut.ee Goal Give you an idea of how to start developing Android applications Introduce major Android application concepts

More information

Jonathan Worthington Scarborough Linux User Group

Jonathan Worthington Scarborough Linux User Group Jonathan Worthington Scarborough Linux User Group Introduction What does a Virtual Machine do? Hides away the details of the hardware platform and operating system. Defines a common set of instructions.

More information

System Requirements Table of contents

System Requirements Table of contents Table of contents 1 Introduction... 2 2 Knoa Agent... 2 2.1 System Requirements...2 2.2 Environment Requirements...4 3 Knoa Server Architecture...4 3.1 Knoa Server Components... 4 3.2 Server Hardware Setup...5

More information

Chapter 2: OS Overview

Chapter 2: OS Overview Chapter 2: OS Overview CmSc 335 Operating Systems 1. Operating system objectives and functions Operating systems control and support the usage of computer systems. a. usage users of a computer system:

More information

Agile Business Suite: a 4GL environment for.net developers DEVELOPMENT, MAINTENANCE AND DEPLOYMENT OF LARGE, COMPLEX BACK-OFFICE APPLICATIONS

Agile Business Suite: a 4GL environment for.net developers DEVELOPMENT, MAINTENANCE AND DEPLOYMENT OF LARGE, COMPLEX BACK-OFFICE APPLICATIONS Agile Business Suite: a 4GL environment for.net developers DEVELOPMENT, MAINTENANCE AND DEPLOYMENT OF LARGE, COMPLEX BACK-OFFICE APPLICATIONS In order to ease the burden of application lifecycle management,

More information

Android on Intel Course Introduction. Paul Guermonprez www.intel-software-academic-program.com paul.guermonprez@intel.com Intel Software 2013-02-08

Android on Intel Course Introduction. Paul Guermonprez www.intel-software-academic-program.com paul.guermonprez@intel.com Intel Software 2013-02-08 Android on Intel Course Introduction Paul Guermonprez www.intel-software-academic-program.com paul.guermonprez@intel.com Intel Software 2013-02-08 Mobile development on Android Market In Q4 2012, the Android

More information

Instrumentation Software Profiling

Instrumentation Software Profiling Instrumentation Software Profiling Software Profiling Instrumentation of a program so that data related to runtime performance (e.g execution time, memory usage) is gathered for one or more pieces of the

More information

Successfully managing geographically distributed development

Successfully managing geographically distributed development IBM Rational SCM solutions for distributed development August 2004 Successfully managing geographically distributed development Karen Wade SCM Product Marketing Manager IBM Software Group Page 2 Contents

More information

Take full advantage of IBM s IDEs for end- to- end mobile development

Take full advantage of IBM s IDEs for end- to- end mobile development Take full advantage of IBM s IDEs for end- to- end mobile development ABSTRACT Mobile development with Rational Application Developer 8.5, Rational Software Architect 8.5, Rational Developer for zenterprise

More information

Overview Motivating Examples Interleaving Model Semantics of Correctness Testing, Debugging, and Verification

Overview Motivating Examples Interleaving Model Semantics of Correctness Testing, Debugging, and Verification Introduction Overview Motivating Examples Interleaving Model Semantics of Correctness Testing, Debugging, and Verification Advanced Topics in Software Engineering 1 Concurrent Programs Characterized by

More information

System Structures. Services Interface Structure

System Structures. Services Interface Structure System Structures Services Interface Structure Operating system services (1) Operating system services (2) Functions that are helpful to the user User interface Command line interpreter Batch interface

More information

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture Last Class: OS and Computer Architecture System bus Network card CPU, memory, I/O devices, network card, system bus Lecture 3, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts

More information

Chapter 13: Program Development and Programming Languages

Chapter 13: Program Development and Programming Languages Understanding Computers Today and Tomorrow 12 th Edition Chapter 13: Program Development and Programming Languages Learning Objectives Understand the differences between structured programming, object-oriented

More information

Технологии Java. Android: Введение. Кузнецов Андрей Николаевич. Санкт-Петербургский Государственный Политехнический Университет

Технологии Java. Android: Введение. Кузнецов Андрей Николаевич. Санкт-Петербургский Государственный Политехнический Университет Технологии Java Android: Введение Санкт-Петербургский Государственный Политехнический Университет Кузнецов Андрей Николаевич 1 2 Архитектура ОС Android See http://www.android-app-market.com/android-architecture.html

More information

Java Virtual Machine: the key for accurated memory prefetching

Java Virtual Machine: the key for accurated memory prefetching Java Virtual Machine: the key for accurated memory prefetching Yolanda Becerra Jordi Garcia Toni Cortes Nacho Navarro Computer Architecture Department Universitat Politècnica de Catalunya Barcelona, Spain

More information

Rocket AS v6.3. Benefits of upgrading

Rocket AS v6.3. Benefits of upgrading Rocket AS v6.3 Benefits of upgrading What is Rocket AS? Rocket AS for IBM System z provides query, reporting, data visualization and rapid application development for System z data including DB2. With

More information

Eliminate Memory Errors and Improve Program Stability

Eliminate Memory Errors and Improve Program Stability Eliminate Memory Errors and Improve Program Stability with Intel Parallel Studio XE Can running one simple tool make a difference? Yes, in many cases. You can find errors that cause complex, intermittent

More information

Insurance Company Improves Time-to- Market with Enhanced Rating Engine

Insurance Company Improves Time-to- Market with Enhanced Rating Engine Microsoft Visual Studio 2008 Customer Solution Case Study Insurance Company Improves Time-to- Market with Enhanced Rating Engine Overview Country or Region: United States Industry: Financial services Insurance

More information

Easing embedded Linux software development for SBCs

Easing embedded Linux software development for SBCs Page 1 of 5 Printed from: http://www.embedded-computing.com/departments/eclipse/2006/11/ Easing embedded Linux software development for SBCs By Nathan Gustavson and Eric Rossi Most programmers today leaving

More information

Cloud Computing. Up until now

Cloud Computing. Up until now Cloud Computing Lecture 11 Virtualization 2011-2012 Up until now Introduction. Definition of Cloud Computing Grid Computing Content Distribution Networks Map Reduce Cycle-Sharing 1 Process Virtual Machines

More information

GETTING STARTED WITH ANDROID DEVELOPMENT FOR EMBEDDED SYSTEMS

GETTING STARTED WITH ANDROID DEVELOPMENT FOR EMBEDDED SYSTEMS Embedded Systems White Paper GETTING STARTED WITH ANDROID DEVELOPMENT FOR EMBEDDED SYSTEMS September 2009 ABSTRACT Android is an open source platform built by Google that includes an operating system,

More information

STM32JAVA. Embedded Java Solutions for STM32

STM32JAVA. Embedded Java Solutions for STM32 STM32JAVA Embedded Java Solutions for STM32 What is STM32Java? Solution to develop and to deploy software applications on STM32F0 to STM32F7 microcontrollers using Java Help to reduce the total cost of

More information

Android Development: a System Perspective. Javier Orensanz

Android Development: a System Perspective. Javier Orensanz Android Development: a System Perspective Javier Orensanz 1 ARM - Linux and Communities Linux kernel GNU Tools 2 Linaro Partner Initiative Mission: Make open source development easier by delivering a common

More information

Reminders. Lab opens from today. Many students want to use the extra I/O pins on

Reminders. Lab opens from today. Many students want to use the extra I/O pins on Reminders Lab opens from today Wednesday 4:00-5:30pm, Friday 1:00-2:30pm Location: MK228 Each student checks out one sensor mote for your Lab 1 The TA will be there to help your lab work Many students

More information

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture Last Class: OS and Computer Architecture System bus Network card CPU, memory, I/O devices, network card, system bus Lecture 3, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts

More information

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces Software Engineering, Lecture 4 Decomposition into suitable parts Cross cutting concerns Design patterns I will also give an example scenario that you are supposed to analyse and make synthesis from The

More information

Intel Threading Building Blocks (Intel TBB) 2.2. In-Depth

Intel Threading Building Blocks (Intel TBB) 2.2. In-Depth Intel Threading Building Blocks (Intel TBB) 2.2 In-Depth Contents Intel Threading Building Blocks (Intel TBB) 2.2........... 3 Features................................................ 3 New in This Release...5

More information

Issues of Hybrid Mobile Application Development with PhoneGap: a Case Study of Insurance Mobile Application

Issues of Hybrid Mobile Application Development with PhoneGap: a Case Study of Insurance Mobile Application DATABASES AND INFORMATION SYSTEMS H.-M. Haav, A. Kalja and T. Robal (Eds.) Proc. of the 11th International Baltic Conference, Baltic DB&IS 2014 TUT Press, 2014 215 Issues of Hybrid Mobile Application Development

More information

CA Aion Business Rules Expert r11

CA Aion Business Rules Expert r11 PRODUCT sheet: CA AION BUSINESS RULES EXPERT r11 CA Aion Business Rules Expert r11 CA Aion Business Rules Expert r11 (CA Aion BRE) is an industry-leading system that automates and streamlines business

More information

DIABLO VALLEY COLLEGE CATALOG 2014-2015

DIABLO VALLEY COLLEGE CATALOG 2014-2015 COMPUTER SCIENCE COMSC The computer science department offers courses in three general areas, each targeted to serve students with specific needs: 1. General education students seeking a computer literacy

More information

High Confidence Computing with the New Windows Embedded Compact 7

High Confidence Computing with the New Windows Embedded Compact 7 High Confidence Computing with the New Windows Embedded Compact 7 Windows Embedded Technical Article October 2010 Applies to: Windows Embedded Compact 7 Summary: Windows Embedded Compact 7 raises embedded

More information

Mobile Development Frameworks Overview. Understand the pros and cons of using different mobile development frameworks for mobile projects.

Mobile Development Frameworks Overview. Understand the pros and cons of using different mobile development frameworks for mobile projects. Mobile Development Frameworks Overview Understand the pros and cons of using different mobile development frameworks for mobile projects. Mobile Solution Frameworks One of the biggest technological decisions

More information

How To Develop Android On Your Computer Or Tablet Or Phone

How To Develop Android On Your Computer Or Tablet Or Phone AN INTRODUCTION TO ANDROID DEVELOPMENT CS231M Alejandro Troccoli Outline Overview of the Android Operating System Development tools Deploying application packages Step-by-step application development The

More information

A Path from Windows Desktop to HTML5

A Path from Windows Desktop to HTML5 A Path from Windows Desktop to HTML5 GIZMOX TRANSPOSITION: The path to modern enterprise application code a Reduce Risk, Cost, and Time to Market for Legacy App Conversions GIZMOX TRANSPOSITION Introduction

More information

PRESENTS... Reasons to Switch from SourceSafe: How to Make Your Life Easier with SourceAnywhere Standalone

PRESENTS... Reasons to Switch from SourceSafe: How to Make Your Life Easier with SourceAnywhere Standalone Standalone PRESENTS... Reasons to Switch from SourceSafe: How to Make Your Life Easier with SourceAnywhere Standalone Most developers are familiar with Visual SourceSafe. It's a popular version control

More information

A Modular Approach to Teaching Mobile APPS Development

A Modular Approach to Teaching Mobile APPS Development 2014 Hawaii University International Conferences Science, Technology, Engineering, Math & Education June 16, 17, & 18 2014 Ala Moana Hotel, Honolulu, Hawaii A Modular Approach to Teaching Mobile APPS Development

More information

SOFTWARE TESTING TRAINING COURSES CONTENTS

SOFTWARE TESTING TRAINING COURSES CONTENTS SOFTWARE TESTING TRAINING COURSES CONTENTS 1 Unit I Description Objectves Duration Contents Software Testing Fundamentals and Best Practices This training course will give basic understanding on software

More information

Introduction to the NI Real-Time Hypervisor

Introduction to the NI Real-Time Hypervisor Introduction to the NI Real-Time Hypervisor 1 Agenda 1) NI Real-Time Hypervisor overview 2) Basics of virtualization technology 3) Configuring and using Real-Time Hypervisor systems 4) Performance and

More information

Software Development Kit

Software Development Kit Open EMS Suite by Nokia Software Development Kit Functional Overview Version 1.3 Nokia Siemens Networks 1 (21) Software Development Kit The information in this document is subject to change without notice

More information

PIE. Internal Structure

PIE. Internal Structure PIE Internal Structure PIE Composition PIE (Processware Integration Environment) is a set of programs for integration of heterogeneous applications. The final set depends on the purposes of a solution

More information

Programación de Sistemas Empotrados y Móviles (PSEM)

Programación de Sistemas Empotrados y Móviles (PSEM) Introduction to Windows Embedded Programación de Sistemas Empotrados y Móviles (PSEM) Marco A. Peña marcoa@ac.upc.edu Table of contents Windows XP Embedded vs. Windows CE Windows XP Embedded Windows CE

More information

High Performance or Cycle Accuracy?

High Performance or Cycle Accuracy? CHIP DESIGN High Performance or Cycle Accuracy? You can have both! Bill Neifert, Carbon Design Systems Rob Kaye, ARM ATC-100 AGENDA Modelling 101 & Programmer s View (PV) Models Cycle Accurate Models Bringing

More information

Delivering Quality in Software Performance and Scalability Testing

Delivering Quality in Software Performance and Scalability Testing Delivering Quality in Software Performance and Scalability Testing Abstract Khun Ban, Robert Scott, Kingsum Chow, and Huijun Yan Software and Services Group, Intel Corporation {khun.ban, robert.l.scott,

More information

Compute Cluster Server Lab 3: Debugging the parallel MPI programs in Microsoft Visual Studio 2005

Compute Cluster Server Lab 3: Debugging the parallel MPI programs in Microsoft Visual Studio 2005 Compute Cluster Server Lab 3: Debugging the parallel MPI programs in Microsoft Visual Studio 2005 Compute Cluster Server Lab 3: Debugging the parallel MPI programs in Microsoft Visual Studio 2005... 1

More information

Applications to Computational Financial and GPU Computing. May 16th. Dr. Daniel Egloff +41 44 520 01 17 +41 79 430 03 61

Applications to Computational Financial and GPU Computing. May 16th. Dr. Daniel Egloff +41 44 520 01 17 +41 79 430 03 61 F# Applications to Computational Financial and GPU Computing May 16th Dr. Daniel Egloff +41 44 520 01 17 +41 79 430 03 61 Today! Why care about F#? Just another fashion?! Three success stories! How Alea.cuBase

More information

Mobile Operating Systems Lesson 05 Windows CE Part 1

Mobile Operating Systems Lesson 05 Windows CE Part 1 Mobile Operating Systems Lesson 05 Windows CE Part 1 Oxford University Press 2007. All rights reserved. 1 Windows CE A 32 bit OS from Microsoft Customized for each specific hardware and processor in order

More information

Java and Real Time Storage Applications

Java and Real Time Storage Applications Java and Real Time Storage Applications Gary Mueller Janet Borzuchowski 1 Flavors of Java for Embedded Systems Software Java Virtual Machine(JVM) Compiled Java Hardware Java Virtual Machine Java Virtual

More information

Operating System Structures

Operating System Structures COP 4610: Introduction to Operating Systems (Spring 2015) Operating System Structures Zhi Wang Florida State University Content Operating system services User interface System calls System programs Operating

More information

Fastboot Techniques for x86 Architectures. Marcus Bortel Field Application Engineer QNX Software Systems

Fastboot Techniques for x86 Architectures. Marcus Bortel Field Application Engineer QNX Software Systems Fastboot Techniques for x86 Architectures Marcus Bortel Field Application Engineer QNX Software Systems Agenda Introduction BIOS and BIOS boot time Fastboot versus BIOS? Fastboot time Customizing the boot

More information

Example of Standard API

Example of Standard API 16 Example of Standard API System Call Implementation Typically, a number associated with each system call System call interface maintains a table indexed according to these numbers The system call interface

More information

Mobile Performance Testing Approaches and Challenges

Mobile Performance Testing Approaches and Challenges NOUS INFOSYSTEMS LEVERAGING INTELLECT Mobile Performance Testing Approaches and Challenges ABSTRACT Mobile devices are playing a key role in daily business functions as mobile devices are adopted by most

More information

What is a life cycle model?

What is a life cycle model? What is a life cycle model? Framework under which a software product is going to be developed. Defines the phases that the product under development will go through. Identifies activities involved in each

More information

Eddy Integrated Development Environment, LemonIDE for Embedded Software System Development

Eddy Integrated Development Environment, LemonIDE for Embedded Software System Development Introduction to -based solution for embedded software development Section 1 Eddy Real-Time, Lemonix Section 2 Eddy Integrated Development Environment, LemonIDE Section 3 Eddy Utility Programs Eddy Integrated

More information

Alliance Key Manager A Solution Brief for Technical Implementers

Alliance Key Manager A Solution Brief for Technical Implementers KEY MANAGEMENT Alliance Key Manager A Solution Brief for Technical Implementers Abstract This paper is designed to help technical managers, product managers, and developers understand how Alliance Key

More information

Lecture 1 Introduction to Android

Lecture 1 Introduction to Android These slides are by Dr. Jaerock Kwon at. The original URL is http://kettering.jrkwon.com/sites/default/files/2011-2/ce-491/lecture/alecture-01.pdf so please use that instead of pointing to this local copy

More information

Testing Automation for Distributed Applications By Isabel Drost-Fromm, Software Engineer, Elastic

Testing Automation for Distributed Applications By Isabel Drost-Fromm, Software Engineer, Elastic Testing Automation for Distributed Applications By Isabel Drost-Fromm, Software Engineer, Elastic The challenge When building distributed, large-scale applications, quality assurance (QA) gets increasingly

More information

New Features in XE8. Marco Cantù RAD Studio Product Manager

New Features in XE8. Marco Cantù RAD Studio Product Manager New Features in XE8 Marco Cantù RAD Studio Product Manager Marco Cantù RAD Studio Product Manager Email: marco.cantu@embarcadero.com @marcocantu Book author and Delphi guru blog.marcocantu.com 2 Agenda

More information

Rcore Embedded Software Platform

Rcore Embedded Software Platform Industrial Computing Rcore Embedded Software Platform The high reliability and stability of Moxa s embedded computers give our customers an edge over the competition. Moxa s Rcore embedded software platform

More information

RIA DEVELOPMENT OPTIONS - AIR VS. SILVERLIGHT

RIA DEVELOPMENT OPTIONS - AIR VS. SILVERLIGHT RIA DEVELOPMENT OPTIONS - AIR VS. SILVERLIGHT Oxagile 2010 www.oxagile.com TABLE OF CONTENTS 1 ATTRIBUTION... 3 2 ABOUT OXAGILE... 4 3 QUESTIONNAIRE... 5 3.1 DO YOU THINK AIR AND SILVERLIGHT ARE COMPARABLE

More information

Virtualization for Cloud Computing

Virtualization for Cloud Computing Virtualization for Cloud Computing Dr. Sanjay P. Ahuja, Ph.D. 2010-14 FIS Distinguished Professor of Computer Science School of Computing, UNF CLOUD COMPUTING On demand provision of computational resources

More information

Virtualization and the U2 Databases

Virtualization and the U2 Databases Virtualization and the U2 Databases Brian Kupzyk Senior Technical Support Engineer for Rocket U2 Nik Kesic Lead Technical Support for Rocket U2 Opening Procedure Orange arrow allows you to manipulate the

More information

Chapter 14 Virtual Machines

Chapter 14 Virtual Machines Operating Systems: Internals and Design Principles Chapter 14 Virtual Machines Eighth Edition By William Stallings Virtual Machines (VM) Virtualization technology enables a single PC or server to simultaneously

More information

The Advantages of. Microsoft.NET. a white paper. pin digital. www.pindigital.com

The Advantages of. Microsoft.NET. a white paper. pin digital. www.pindigital.com The Advantages of Microsoft.NET a white paper www.pindigital.com Microsoft.NET is a set of software technologies for connecting information, people, systems, and devices. This new generation of technology

More information

Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives

Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives Introduction to Programming and Algorithms Module 1 CS 146 Sam Houston State University Dr. Tim McGuire Module Objectives To understand: the necessity of programming, differences between hardware and software,

More information

print close Building Blocks

print close Building Blocks print close Machine Design Kim Hartman Wed, 2015-07-15 11:23 Many OEMs strive to maximize plant productivity by allowing machines to perform multiple operations simultaneously. Some of these concurrent

More information

Automation using Selenium

Automation using Selenium Table of Contents 1. A view on Automation Testing... 3 2. Automation Testing Tools... 3 2.1 Licensed Tools... 3 2.1.1 Market Growth & Productivity... 4 2.1.2 Current Scenario... 4 2.2 Open Source Tools...

More information

Special FEATURE. By Heinrich Munz

Special FEATURE. By Heinrich Munz Special FEATURE By Heinrich Munz Heinrich Munz of KUKA Roboter discusses in this article how to bring Microsoft Windows CE and WindowsXP together on the same PC. He discusses system and application requirements,

More information

DB2 Connect for NT and the Microsoft Windows NT Load Balancing Service

DB2 Connect for NT and the Microsoft Windows NT Load Balancing Service DB2 Connect for NT and the Microsoft Windows NT Load Balancing Service Achieving Scalability and High Availability Abstract DB2 Connect Enterprise Edition for Windows NT provides fast and robust connectivity

More information

Cross-Platform Software Considerations for Internet of Things

Cross-Platform Software Considerations for Internet of Things Cross-Platform Software Considerations for Internet of Things Tuukka Ahoniemi Technical Product Marketing Manager tuukka.ahoniemi@theqtcompany.com 10th Central and Eastern European Software Engineering

More information

Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1

Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1 Objectives To explain how an iterative, incremental development process leads to faster delivery of

More information

zen Platform technical white paper

zen Platform technical white paper zen Platform technical white paper The zen Platform as Strategic Business Platform The increasing use of application servers as standard paradigm for the development of business critical applications meant

More information

Overview of CS 282 & Android

Overview of CS 282 & Android Overview of CS 282 & Android Douglas C. Schmidt d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~schmidt Institute for Software Integrated Systems Vanderbilt University Nashville, Tennessee, USA CS 282

More information

Microsoft Dynamics AX 2012 System Requirements. Microsoft Corporation Published: August 2011

Microsoft Dynamics AX 2012 System Requirements. Microsoft Corporation Published: August 2011 2012 System Requirements Microsoft Corporation Published: August 2011 Microsoft Dynamics is a line of integrated, adaptable business management solutions that enables you and your people to make business

More information

Cross-Platform Mobile Apps Solution

Cross-Platform Mobile Apps Solution Cross-Platform Mobile Apps Solution Prepared by Kevin Mullins CEO and Chief Developer Appracatappra, LLC. 709 Gale Street #8 Seabrook, TX 77586 kmullins@appracatappra.com http://appracatappra.com Table

More information