Platform Agnostic Approaches for FPCT Development

Size: px
Start display at page:

Download "Platform Agnostic Approaches for FPCT Development"

Transcription

1 Platform Agnostic Approaches for FPCT Development Ramon Novales, Kyle Marple, Gopal Gupta Department of Computer Science The University of Texas at Dallas {rnovales, kbm072000, Marjorie Zielke Arts and Technology The University of Texas at Dallas Introduction This paper examines different options for platform agnostic development of the First Person Cultural Trainer (FPCT). FPCT is a high-fidelity, game-based simulation, which trains cross-cultural decisionmaking within a 3D representation of a Middle-Eastern society. The current version of FPCT is a computer-based video game built in Unreal Engine 3. The project is currently in its second year, or spiral, of development. FPCT is part of the Hybrid Irregular Warfare Improvised Explosive Device Network Defeat Toolkit (HI2NT), sponsored by TRADOC G2 Intelligence Support Activity. HI2NT is a federation of virtual, constructive, and gaming models, providing a combat training center (CTC)-like experience for individuals through brigade-staff training audiences. The overall HI2NT program is also in its second year of development. FPCT functions as a stand-alone cultural trainer, or as part of the federation. 1 The motivation behind platform agnostic development is twofold. First, such an approach allows the development team to take advantage of new development platforms or devices more easily. If FPCT code is tightly coupled with an engine, considerable effort will be required to move to a new engine or platform; existing code will need to be evaluated for portability, and code that is not portable will need to be redone. This rework has the possibility of introducing bugs into previously working functionality, and creating coupling issues that need to be re-addressed if there is a move to another platform. Additional issues arise if development is to take place on two or more platforms concurrently multiple codebases need to be kept in sync, increasing development and software configuration management overhead. The second motivation for this approach can be viewed as a form of risk management. Should external factors mandate a switch to a different engine or platform, the project will be in a better position to make the switch. Further, the project would not be as locked-in to a particular engine, should the vendor end support or not add desired functionality. The ideal is to write code once, and have it run on multiple platforms. 1 "The Game Engine Space for Virtual Cultural Training: Requirements, Devices, Engines, Porting Strategies and a Future Outlook", Technology White Paper, Marjorie Zielke

2 We present a range of possible approaches for platform agnostic development and portability. These approaches are not mutually exclusive, and can be used alone or together on portions of the project or on the project as a whole. For each option, we present a discussion of the relative difficulty and level of effort, as well as the risks and rewards. Note that the approaches in this paper only cover project code, not other project assets such as art and models. Multi-Platform Capability via Game Engine Certainly the most straightforward approach is to use the game engine itself to provide multi-platform capability. Currently, Unreal Engine 3 officially supports the PC, Playstation 3, and XBox 360 platforms. At the 2010 Game Developers Conference, Epic Games gave a presentation demonstrating Unreal Engine 3 running on an iphone 3GS. Further, the presentation slides 2 showed that, although unsupported, Unreal Engine 3 was running on Linux, Mac, and Tegra2 (mobile system-on-a-chip) platforms. If the anticipated lifespan of FPCT coincides with the lifespan of Unreal Engine 3, and Epic Games commits to supporting the anticipated platforms for FPCT, then this approach is attractive, even more so if budget or schedule constraints preclude the other approaches. A true platform agnostic approach can then be designed and implemented on the successor to FPCT. Advantages Multi-platform capability with no additional cost. Low risk and minimal schedule impact, as developers do not need to learn a new engine and tools. Avoids the disruption of switching to a new approach midstream. Disadvantages This approach is dependent on Epic Games supporting the desired platforms. End-of-life may occur when Unreal Engine 4 is released. There is still the risk of a mandated platform switch away from Unreal Engine 3. This is not a true platform agnostic approach code is still specific to Unreal Engine 3. Libraries and Application Programming Interfaces (APIs) In this approach, FPCT code that can be shared between platforms is identified and packaged into libraries. An API is then created that provides access to library functionality from different platforms. This approach can be viewed as a step towards platform agnostic development libraries provide a means for developing and sharing code between platforms, but application development is done native to the target platform, and functionality that cannot be packaged into a library must be replicated across platforms. Creating Libraries and APIs Developers work to identify existing FPCT code that can be easily decoupled from Unreal Engine 3 and reused on other engines or platforms. This code is then extracted, modified to decouple it from the 2

3 engine, and packaged into a library. Typically, code is segregated into different libraries based on similar functionality; the desired granularity of the libraries will control the number of libraries created. For each library, an associated API is created to provide a uniform method for calling library functionality. New development of shared code would follow a similar process. These libraries and APIs will not be static; they will need to be refined and maintained, both to address any deficiencies in the original design and to adapt to use with a new engine or platform. Typically, it is not feasible to extract all project code into libraries; some code will need to be rewritten for each new platform. Figure 1 shows an example of FPCT code being refactored into libraries. Libraries 1 and 3 contain FPCT code that could be decoupled from Unreal Engine 3. Library 2 contains FPCT code as well as modifications to Unreal Engine 3 that could be converted into stand-alone code. Note that in this example, some FPCT code cannot be extracted to libraries, and no engine code is packaged into libraries. FPCT Unreal Engine 3 API 1 API 2 API 3 Library 1 Library 2 Library 3 Platform-specific FPCT code, unable to decouple Game engine code Modified game code, able to decouple Figure 1: Extracting FPCT code to libraries. Using the Libraries and APIs In the Unreal Engine 3 version of FPCT, code that has been extracted to libraries is replaced with calls to those new libraries. Further development of FPCT on Unreal Engine 3 and subsequent development on different platforms takes place in the native language and using the native tools of those platforms. It is important to remember that any functionality not contained in the libraries will need to be developed and maintained separately for each target platform. Developers will make calls to library functionality

4 using the mechanisms of that particular platform. The libraries themselves, however, will be maintained using a generic, non-platform-specific set of tools. It is to be expected that these libraries and APIs will evolve over time, as features are added, bugs are eliminated, and interfaces are adapted to new target platforms. Figure 2 shows an example of how the libraries created in Figure 1 would be used with Unreal Engine 3 and with a new engine, Engine B. API calls for library 1, 2, and 3 replace the original code in the Unreal Engine 3 version of FPCT. For each new engine, it is possible that existing library APIs will need to be modified. It is also possible that libraries will be incompatible with the new engine (perhaps due to language or architecture differences), and will need to be either rewritten or modified. In this example, the API for library 3 was modified to work with Engine B, and moved to version 3.1. Similarly, library 1 was incompatible with Engine B, and the functionality needed to be redone in a completely new library, library 4. FPCT FPCT Unreal Engine 3 Engine B API 1 API 2 API 3.1 API 4 Library 1 Library 2 Library 3 Library 4 Unreal Engine 3-specific FPCT code Engine B-specific FPCT code New library, Engine B unable to use Library 1 Figure 2: Calling libraries from multiple engines. Advantages Creating libraries and APIs is a generally understood approach, with many resources and professional books available. It would not require extensive retraining for program personnel. Library and API development can be done in parallel with main FPCT development, reducing schedule impact. A small period of time for integration and test of the library code back into main FPCT development will be needed.

5 Development is done natively with the target engine, with no layer of abstraction in between. This makes it easier for developers to take advantage of the unique features and strengths of each platform. Developers can use the native tools and IDE of the target platforms, which are presumably robust. With proper maintenance, the libraries and APIs can be reused across multiple engines and platforms. Any updates or new functionality will be available anywhere the libraries are used. Disadvantages This approach addresses the portability of discrete portions of code, not FPCT as a whole. Each move to a new platform can be viewed as a porting effort, barring the code that has been packaged into libraries. Integration and test activities must be repeated for each engine. If development is done for multiple platforms at once, having multiple implementations of the same functionality could lead to increased software configuration management (SCM) effort, as any fixes or features added to one version may need to be mirrored back across all implementations. There is the risk of significant integration effort with future unknown engines and platforms. While there are guidelines to follow for creating libraries and APIs, this is to some extent an educated guess with respect to future technologies. Language or architecture incompatibilities may reduce or eliminate the gains hoped for by creating libraries and APIs. Middleware FPCT API In this approach, a middleware API (say, FPCTAPI) is created which acts as a layer of abstraction between the developers and the target platform or engine. Instead of writing code directly for the target engine or platform, developers write code for FPCTAPI. Developers working on FPCT proper are shielded from platform details, and rely on an interface layer (written by other project developers) to implement their FPCTAPI calls on the target platform(s). Creating FPCT API Developers first identify the objects, operations, and functionality required in order to create FPCT essentially the kinds of things that need to be done, and the types of operations that FPCTAPI needs to support. From this, the interface exposed to the developers is designed. Design of the API itself is very important the research challenge is to create an interface that is generic enough for use across multiple platforms or engines, yet expressive enough to allow for complex functionality in FPCT. This will likely take place across several iterations, incorporating feedback from FPCT developers. The API itself may be implemented in one or more languages, depending upon compatibility with target platforms. Code in the current implementation of FPCT that can be reused across platforms is identified and packaged into libraries as described in the previous section. For each target platform, an interface layer is created which resides between FPCTAPI and the target engine. These interface layers take the

6 FPCTAPI calls, and make the appropriate target platform calls to achieve the desired result. Care must be taken during the design and implementation of the interface layers to ensure not only correctness, but also adequate run-time performance. Using FPCT API In the library/api approach detailed in the previous section, developers write code in the native language of the target platform that interacts directly with the API of the target platform. Switching engines meant familiarizing themselves with a new API (and possibly language), and then rewriting the old code using the API and language of the new engine. The FPCTAPI, however, insulates developers from engine API details. In this approach, FPCT development is done using the language and functions of the FPCTAPI. If the FPCTAPI is expressive and powerful enough, developers on FPCT proper will not need to interact with the engine APIs at all. If a new target platform is desired, a new interface layer for that engine is designed and implemented; since all interface layers are required to support the same interface and functions, existing FPCT code will run on the new platform without modification. It should be expected that FPCTAPI and the interface layers will evolve and require maintenance (particularly when adding a new target platform) during the course of FPCT development. Figure 3 shows a block diagram of how FPCTAPI would be used across multiple platforms. FPCT code is written to the FPCTAPI (which also contains portable library code), while the interface layers connect it to their respective engines. Figure 3: Using FPCTAPI across multiple engines.

7 Advantages This approach fully addresses platform agnostic development. If FPCTAPI is sufficiently comprehensive, FPCT developers make no platform or dependent API calls. Switching from one engine to another means switching interface layers, without needing to change any FPCT code. FPCT developers are shielded from the implementation details of particular platforms; the same code will be able to run unmodified on future platforms and engines, provided an equivalent interface layer can be created. When preparing to add or switch to another platform/engine, a separate team can work on creating the new interface layer, while development on FPCT proper can continue uninterrupted. The majority of program developers only need to learn how to use FPCTAPI. Only a subset of program personnel (those working on the interface layers) need to be trained for a particular engine or platform. For concurrent development on multiple platforms, SCM will be greatly simplified. There is only one version of FPCT proper under development, which means that different versions for different platforms will not need to be kept in sync with each other. Interface layers can also be developed independently from each other. Disadvantages Development of FPCTAPI is a technical challenge and would add technical, schedule, and budget risk to the project. If current development is switched to FPCTAPI, it would need to be recoded and retested. A complete set of tools will need to be developed for use with FPCTAPI, as the tools provided with a particular platform are typically only useful with that platform. It may be a significant effort to create development tools on par with the tools provided by engines. Run-time performance of a generic solution such as FPCTAPI may not be as good as something that has been hand-coded and optimized for a particular platform or engine. Similarly, a more generic approach may make it more difficult to take advantage of the strengths of one platform versus another. Creating functionally equivalent interface layers for different platforms requires that the target platforms be roughly equivalent in terms of adaptability and capability. The interface layer needs to be able to direct the target engine to perform certain tasks, whether through its API, the ability to access and modify engine source code, or the ability to run scripts or external code. Similarly, the interface layer cannot give a target platform functionality that it simply does not have. Creation of a Domain Specific Language The use of FPCTAPI would also open up other options for making multi-platform games easier to design. One of these options is the creation of a domain specific language (DSL). Traditional programming languages, such as C++ and Java, are designed to allow users to solve a wide range of problems. In addition to their general approach, such languages typically require significant expertise, which a subject

8 matter expert may not possess. DSLs, however, are constructed at a higher level of abstraction and are focused on solving a problem in a specific domain. This allows a developer to focus on what they want done as opposed to how it is to be done. Such a DSL could be developed for multi-platform game design using FPCTAPI. A developer would write code in the DSL, and it would be translated into code which accessed FPCTAPI to create either portable games or their components. UnrealScript, currently used in FPCT development, is a DSL. It is tailored to solve problems typically found in first-person-shooter game types. Unfortunately, it is specific to the Unreal engine, and cannot be used directly for other engines, such as Unity. In order to support the platform agnostic goals of the project, another DSL would need to be developed. Different usage scenarios may involve different degrees of DSL adoption. One case would be the development of a more general DSL for developing FPCT using FPCTAPI. Another option would be the use of multiple DSLs for different portions of the project. In this case, DSLs that are more specialized could be used for specific aspects of development. This could include allowing subject matter experts to input cultural data or design scenarios without the need to worry about other components of FPCT. Other potential targets for separate DSLs are the emotion and conversation components of the software. Moreover, these cases are not mutually exclusive. A more general DSL could be developed for overall game design using FPCTAPI, along with more specific DSLs for use by domain experts. In any of the above cases, the DSL or DSLs would almost certainly require significant maintenance in addition to the initial design and implementation efforts. This could be due to a future desire for additional features, deficiencies in the original design, or any number of other reasons. Full adoption of a DSL-based solution would be a large-scale project, with significant potential impact to schedule and manpower requirements. DSL adoption is by no means a trivial activity. Additionally, these increases would be directly affected number and scope of the DSLs used. Figure 4 contains a block diagram showing how FPCTDSL would be used in conjunction with FPCTAPI across multiple engines. FPCT code is written in FPCTDSL, which in turn calls the FPCTAPI described in the previous section. Andre Furtado, a Ph.D. student at the Federal University of Pernambuco in Brazil, has developed a visual domain specific language and toolset called SharpLudus 3 that can be used to create two-dimensional games of moderate complexity. While the games created by this framework are clearly orders of magnitude simpler than FPCT, it can be viewed as a sort of proof of concept. SharpLudus uses the FlatRedBall game engine, along with Visual Studio and Microsoft's XNA framework. The latter two show that this approach can make use of widely used production-level tools, as opposed to custom-built academic research software. While DSL(s) developed for the FPCT project would be designed to interface with FPCTAPI rather than a specific target platform, the SharpLudus case demonstrates that such integration is indeed feasible. 3

9 Figure 4: Using FPCTDSL in conjunction with FPCTAPI across multiple engines. Advantages DSLs allow for rapid prototyping. Furtado's results show that, once implemented, he was able to use SharpLudus to produce fully working game prototypes in a fraction of the time and lines of code that it would take doing it manually. This could allow FPCT to both react quickly to customer changes, as well as present more choices to the customer up front. The DSL approach allows flexibility, as tasks that are not easily done in a DSL can still be done by using FPCTAPI directly. Software configuration management tasks will be simplified, as developers will not need to keep code changes consistent across different versions of the project. Only one codebase will need to be maintained. DSLs also provide a lower barrier for developer entry. A sufficiently high level of abstraction would allow developers and subject matter experts not fluent in C++ or UnrealScript to contribute directly to the code. DSLs could also be used to aid in the development of graphic tools for working with the API. Development tools target the DSL, or target the API directly, to simplify development. In particular, tools for more specialized DSLs could be developed to allow domain experts to add content more easily.

10 Disadvantages Development of one or more DSLs and the associated framework would require a significant commitment of project resources, and would be a research challenge. Program personnel would need to learn to develop in FPCTDSL, and DSLs would need to be maintained. Additionally, a degree of uncertainty would be introduced into the project. A DSL would need tools designed or modified for use with it, which would add to the resources necessary for development. Conclusion In this paper we have presented a variety of approaches that can be used to move FPCT towards platform agnostic development. Each approach has advantages and disadvantages which must be considered in conjunction with project priorities. A short project lifespan with few projected engine changes may dictate using the library approach. A longer project lifespan targeting many platforms might be better served with the middleware API approach, due to the ability to amortize the significant development costs across several platforms. A desire for an enterprise-level solution may result in the development of a middleware API as well as an associated domain specific language. An incremental approach may also be adopted. For example, the library/api approach could be used for current development of FPCT proper, a DSL solution adopted for tools used to import cultural data, and a middleware API developed for future FPCT development. The need for cultural training is ongoing, and is certain to outlast the current generation of engines and platforms. Given the current assumptions, the recommendation is to create a middleware API as part of a long-term cultural trainer strategy. This will facilitate the adoption of new technologies, engines, and platforms without sacrificing FPCT work-in-progress. The use of FPCT-centric domain specific languages would complement the middleware API, increasing productivity and allowing subject matter experts to participate more directly in development.

Incremental development A.Y. 2018/2019

Incremental development A.Y. 2018/2019 Incremental development A.Y. 2018/2019 Incremental development Interleaves the activities of specification, development, and validation. The system is developed as a series of versions (increments), with

More information

A number of optimizations are already in use by the majority of companies in industry, notably:

A number of optimizations are already in use by the majority of companies in industry, notably: 1 Abstract Mechatronics products contain significant amounts of software. Most advances in embedded software development focus on specific phases of the development process. However, very little emphasis

More information

Improved Database Development using SQL Compare

Improved Database Development using SQL Compare Improved Database Development using SQL Compare By David Atkinson and Brian Harris, Red Gate Software. October 2007 Introduction This white paper surveys several different methodologies of database development,

More information

Best practices for OO 10 content structuring

Best practices for OO 10 content structuring Best practices for OO 10 content structuring With HP Operations Orchestration 10 two new concepts were introduced: Projects and Content Packs. Both contain flows, operations, and configuration items. Organizations

More information

Next-Generation Architecture for Virtual Prototyping

Next-Generation Architecture for Virtual Prototyping Next-Generation Architecture for Virtual Prototyping Dr. Bipin Chadha John Welsh Principal Member Manager Lockheed Martin ATL Lockheed Martin ATL (609) 338-3865 (609) 338-3865 bchadha@atl.lmco.com jwelsh@atl.lmco.com

More information

Creating Enterprise and WorkGroup Applications with 4D ODBC

Creating Enterprise and WorkGroup Applications with 4D ODBC Creating Enterprise and WorkGroup Applications with 4D ODBC Page 1 EXECUTIVE SUMMARY 4D ODBC is an application development tool specifically designed to address the unique requirements of the client/server

More information

System Development Life Cycle Methods/Approaches/Models

System Development Life Cycle Methods/Approaches/Models Week 11 System Development Life Cycle Methods/Approaches/Models Approaches to System Development System Development Life Cycle Methods/Approaches/Models Waterfall Model Prototype Model Spiral Model Extreme

More information

An Integrated Test Framework to Reduce Embedded Software Lifecycle Costs

An Integrated Test Framework to Reduce Embedded Software Lifecycle Costs White Paper An Integrated Test Framework to Reduce Embedded Software Lifecycle Costs Version 1.0: August 23, 2012 Presented by: Chris Domin, Business Dev. Mgr. Engineering Services, sales@danlawinc.com

More information

The Migration/Modernization Dilemma

The Migration/Modernization Dilemma The Migration/Modernization Dilemma By William Calcagni www.languageportability.com 866.731.9977 Approaches to Legacy Conversion For many years businesses have sought to reduce costs by moving their legacy

More information

Bringing OpenStack to the Enterprise. An enterprise-class solution ensures you get the required performance, reliability, and security

Bringing OpenStack to the Enterprise. An enterprise-class solution ensures you get the required performance, reliability, and security Bringing OpenStack to the Enterprise An enterprise-class solution ensures you get the required performance, reliability, and security INTRODUCTION Organizations today frequently need to quickly get systems

More information

Digital Library on Societal Impacts Draft Requirements Document

Digital Library on Societal Impacts Draft Requirements Document Table of Contents Digital Library on Societal Impacts Draft Requirements Document Eric Scharff Introduction... 1 System Description... 1 User Interface... 3 Infrastructure... 3 Content... 4 Work Already

More information

Specifying and Prototyping

Specifying and Prototyping Contents Specifying and Prototyping M. EVREN KIYMAÇ 2008639030 What is Specifying? Gathering Specifications Specifying Approach & Waterfall Model What is Prototyping? Uses of Prototypes Prototyping Process

More information

Migration to Service Oriented Architecture Using Web Services Whitepaper

Migration to Service Oriented Architecture Using Web Services Whitepaper WHITE PAPER Migration to Service Oriented Architecture Using Web Services Whitepaper Copyright 2004-2006, HCL Technologies Limited All Rights Reserved. cross platform GUI for web services Table of Contents

More information

SYSPRO s Fluid Interface Design

SYSPRO s Fluid Interface Design SYSPRO s Fluid Interface Design Introduction The world of computer-user interaction has come a long way since the beginning of the Graphical User Interface, but still most application interfaces are not

More information

The TMS320 DSP Algorithm Standard

The TMS320 DSP Algorithm Standard White Paper SPRA581C - May 2002 The TMS320 DSP Algorithm Standard Steve Blonstein Technical Director ABSTRACT The TMS320 DSP Algorithm Standard, also known as XDAIS, is part of TI s expressdsp initiative.

More information

This tutorial also elaborates on other related methodologies like Agile, RAD and Prototyping.

This tutorial also elaborates on other related methodologies like Agile, RAD and Prototyping. i About the Tutorial SDLC stands for Software Development Life Cycle. SDLC is a process that consists of a series of planned activities to develop or alter the Software Products. This tutorial will give

More information

*ANSWERS * **********************************

*ANSWERS * ********************************** CS/183/17/SS07 UNIVERSITY OF SURREY BSc Programmes in Computing Level 1 Examination CS183: Systems Analysis and Design Time allowed: 2 hours Spring Semester 2007 Answer ALL questions in Section A and TWO

More information

TERMINOLOGY MANAGEMENT DURING TRANSLATION PROJECTS: PROFESSIONAL TESTIMONY

TERMINOLOGY MANAGEMENT DURING TRANSLATION PROJECTS: PROFESSIONAL TESTIMONY LINGUACULTURE, 1, 2010 TERMINOLOGY MANAGEMENT DURING TRANSLATION PROJECTS: PROFESSIONAL TESTIMONY Nancy Matis Abstract This article briefly presents an overview of the author's experience regarding the

More information

Xyleme Studio Data Sheet

Xyleme Studio Data Sheet XYLEME STUDIO DATA SHEET Xyleme Studio Data Sheet Rapid Single-Source Content Development Xyleme allows you to streamline and scale your content strategy while dramatically reducing the time to market

More information

The CESAR Project using J2EE for Accelerator Controls

The CESAR Project using J2EE for Accelerator Controls EUROPEAN ORGANIZATION FOR NUCLEAR RESEARCH CERN AB DIVISION CERN-AB-2004-001 (CO) The CESAR Project using J2EE for Accelerator Controls V. Baggiolini, P. Bailly, B. Chauchaix, F. Follin, J. Fullerton,

More information

Data Virtualization Implementation Methodology and Best Practices

Data Virtualization Implementation Methodology and Best Practices White Paper Data Virtualization Implementation Methodology and Best Practices INTRODUCTION Cisco s proven Data Virtualization Implementation Methodology and Best Practices is compiled from our successful

More information

Application Modernisation

Application Modernisation Application Modernisation KFA Management Report - Application Modernisation The modernisation of applications has been an important topic for many years. The technology which our industry is founded on

More information

Rules for Archival Description and Encoded Archival Description: Competing or Compatible Standards?

Rules for Archival Description and Encoded Archival Description: Competing or Compatible Standards? Rules for Archival Description and Encoded Archival Description: Competing or Compatible Standards? University of Saskatchewan Archives tim.hutchinson@usask.ca Annual Meeting of the Society of American

More information

Categorizing Migrations

Categorizing Migrations What to Migrate? Categorizing Migrations A version control repository contains two distinct types of data. The first type of data is the actual content of the directories and files themselves which are

More information

Planning the Repackaging Project

Planning the Repackaging Project Chapter 11 Planning the Repackaging Project Good planning is essential in many of life s endeavors, and application repackaging is no exception. This chapter discusses the various parts of planning a repackaging

More information

Evaluation Guide for ASP.NET Web CMS and Experience Platforms

Evaluation Guide for ASP.NET Web CMS and Experience Platforms Evaluation Guide for ASP.NET Web CMS and Experience Platforms CONTENTS Introduction....................... 1 4 Key Differences...2 Architecture:...2 Development Model...3 Content:...4 Database:...4 Bonus:

More information

The Joint Live Virtual Constructive Data Translator Framework Interoperability for a Seamless Joint Training Environment

The Joint Live Virtual Constructive Data Translator Framework Interoperability for a Seamless Joint Training Environment Framework Interoperability for a Seamless Joint Training Environment Warren Bizub Technical Division Chief US Joint Forces Command Joint Warfighting Center warren.bizub@jfcom.mil Derek Bryan Experimentation

More information

The Top Five Reasons to Deploy Software-Defined Networks and Network Functions Virtualization

The Top Five Reasons to Deploy Software-Defined Networks and Network Functions Virtualization The Top Five Reasons to Deploy Software-Defined Networks and Network Functions Virtualization May 2014 Prepared by: Zeus Kerravala The Top Five Reasons to Deploy Software-Defined Networks and Network Functions

More information

Three Key Considerations for Your Public Cloud Infrastructure Strategy

Three Key Considerations for Your Public Cloud Infrastructure Strategy GOING PUBLIC: Three Key Considerations for Your Public Cloud Infrastructure Strategy Steve Follin ISG WHITE PAPER 2018 Information Services Group, Inc. All Rights Reserved The Market Reality The race to

More information

The IDN Variant TLD Program: Updated Program Plan 23 August 2012

The IDN Variant TLD Program: Updated Program Plan 23 August 2012 The IDN Variant TLD Program: Updated Program Plan 23 August 2012 Table of Contents Project Background... 2 The IDN Variant TLD Program... 2 Revised Program Plan, Projects and Timeline:... 3 Communication

More information

Advanced Operations Research Prof. G. Srinivasan Department of Management Studies Indian Institute of Technology, Madras

Advanced Operations Research Prof. G. Srinivasan Department of Management Studies Indian Institute of Technology, Madras Advanced Operations Research Prof. G. Srinivasan Department of Management Studies Indian Institute of Technology, Madras Lecture 16 Cutting Plane Algorithm We shall continue the discussion on integer programming,

More information

Accelerate Your Enterprise Private Cloud Initiative

Accelerate Your Enterprise Private Cloud Initiative Cisco Cloud Comprehensive, enterprise cloud enablement services help you realize a secure, agile, and highly automated infrastructure-as-a-service (IaaS) environment for cost-effective, rapid IT service

More information

The requirements engineering process

The requirements engineering process 3 rd Stage Lecture time: 8:30-12:30 AM Instructor: Ali Kadhum AL-Quraby Lecture No. : 5 Subject: Software Engineering Class room no.: Department of computer science Process activities The four basic process

More information

About 1. Chapter 1: Getting started with odata 2. Remarks 2. Examples 2. Installation or Setup 2. Odata- The Best way to Rest 2

About 1. Chapter 1: Getting started with odata 2. Remarks 2. Examples 2. Installation or Setup 2. Odata- The Best way to Rest 2 odata #odata Table of Contents About 1 Chapter 1: Getting started with odata 2 Remarks 2 Examples 2 Installation or Setup 2 Odata- The Best way to Rest 2 Chapter 2: Azure AD authentication for Node.js

More information

1. i. What are the 3 major components of a information system and show their relationship input output

1. i. What are the 3 major components of a information system and show their relationship input output Higher National Diploma in Information Technology First Year, Second semesterexamination-2011 IT2005: System Analysis and Design Answer Script No. of pages: 11 1. i. What are the 3 major components of

More information

Comprehensive Guide to Evaluating Event Stream Processing Engines

Comprehensive Guide to Evaluating Event Stream Processing Engines Comprehensive Guide to Evaluating Event Stream Processing Engines i Copyright 2006 Coral8, Inc. All rights reserved worldwide. Worldwide Headquarters: Coral8, Inc. 82 Pioneer Way, Suite 106 Mountain View,

More information

SQL Server 2008 Consolidation

SQL Server 2008 Consolidation Technology Concepts and Business Considerations Abstract The white paper describes how SQL Server 2008 consolidation provides solutions to basic business problems pertaining to the usage of multiple SQL

More information

Defining Domain-Specific Modeling Languages

Defining Domain-Specific Modeling Languages Defining Domain-Specific Modeling Languages 1 st Oct 2008 Juha-Pekka Tolvanen MetaCase 1 Relevant language classifications to start with General-Purpose / Domain-Specific Narrow area of interest Often

More information

CA Security Management

CA Security Management CA Security CA Security CA Security In today s business environment, security remains one of the most pressing IT concerns. Most organizations are struggling to protect an increasing amount of disparate

More information

Introduction to Software Engineering

Introduction to Software Engineering Introduction to Software Engineering Gérald Monard Ecole GDR CORREL - April 16, 2013 www.monard.info Bibliography Software Engineering, 9th ed. (I. Sommerville, 2010, Pearson) Conduite de projets informatiques,

More information

HPE Data Replication Solution Service for HPE Business Copy for P9000 XP Disk Array Family

HPE Data Replication Solution Service for HPE Business Copy for P9000 XP Disk Array Family Data sheet HPE Data Replication Solution Service for HPE Business Copy for P9000 XP Disk Array Family HPE Lifecycle Event Services HPE Data Replication Solution Service provides implementation of the HPE

More information

Plants can improve mood and health. Many people want to have plants in their home or workplace, but struggle with properly caring for their plants.

Plants can improve mood and health. Many people want to have plants in their home or workplace, but struggle with properly caring for their plants. plantr. Team Jen Jianfen Zhang: project manager; user interface design Jory Rice: interactive prototype Paul Bartell: ideation; writing; prototype integration Whitney Schmidt: ideation; writing; website

More information

Software Engineering

Software Engineering Software Engineering chap 4. Software Reuse 1 SuJin Choi, PhD. Sogang University Email: sujinchoi@sogang.ac.kr Slides modified, based on original slides by Ian Sommerville (Software Engineering 10 th Edition)

More information

Definition: A data structure is a way of organizing data in a computer so that it can be used efficiently.

Definition: A data structure is a way of organizing data in a computer so that it can be used efficiently. The Science of Computing I Lesson 4: Introduction to Data Structures Living with Cyber Pillar: Data Structures The need for data structures The algorithms we design to solve problems rarely do so without

More information

Global Headquarters: 5 Speen Street Framingham, MA USA P F

Global Headquarters: 5 Speen Street Framingham, MA USA P F WHITE PAPER Support for Virtualized Environments: HP's Critical Advantage Sponsored by: HP Matt Healey February 2011 Rob Brothers Global Headquarters: 5 Speen Street Framingham, MA 01701 USA P.508.872.8200

More information

THE GLOBUS PROJECT. White Paper. GridFTP. Universal Data Transfer for the Grid

THE GLOBUS PROJECT. White Paper. GridFTP. Universal Data Transfer for the Grid THE GLOBUS PROJECT White Paper GridFTP Universal Data Transfer for the Grid WHITE PAPER GridFTP Universal Data Transfer for the Grid September 5, 2000 Copyright 2000, The University of Chicago and The

More information

GROUP FINAL REPORT GUIDELINES

GROUP FINAL REPORT GUIDELINES GROUP FINAL REPORT GUIDELINES Overview The final report summarizes and documents your group's work and final results. Reuse as much of your past reports as possible. As shown in Table 1, much of the final

More information

How Turner Broadcasting can avoid the Seven Deadly Sins That. Can Cause a Data Warehouse Project to Fail. Robert Milton Underwood, Jr.

How Turner Broadcasting can avoid the Seven Deadly Sins That. Can Cause a Data Warehouse Project to Fail. Robert Milton Underwood, Jr. How Turner Broadcasting can avoid the Seven Deadly Sins That Can Cause a Data Warehouse Project to Fail Robert Milton Underwood, Jr. 2000 Robert Milton Underwood, Jr. Page 2 2000 Table of Contents Section

More information

PNAMP Metadata Builder Prototype Development Summary Report December 17, 2012

PNAMP Metadata Builder Prototype Development Summary Report December 17, 2012 PNAMP Metadata Builder Prototype Development Summary Report December 17, 2012 Overview Metadata documentation is not a commonly embraced activity throughout the region. But without metadata, anyone using

More information

Best practices in IT security co-management

Best practices in IT security co-management Best practices in IT security co-management How to leverage a meaningful security partnership to advance business goals Whitepaper Make Security Possible Table of Contents The rise of co-management...3

More information

Chapter 1: Distributed Information Systems

Chapter 1: Distributed Information Systems Chapter 1: Distributed Information Systems Contents - Chapter 1 Design of an information system Layers and tiers Bottom up design Top down design Architecture of an information system One tier Two tier

More information

Integrated Access Management Solutions. Access Televentures

Integrated Access Management Solutions. Access Televentures Integrated Access Management Solutions Access Televentures Table of Contents OVERCOMING THE AUTHENTICATION CHALLENGE... 2 1 EXECUTIVE SUMMARY... 2 2 Challenges to Providing Users Secure Access... 2 2.1

More information

xiii A. Hayden Lindsey IBM Distinguished Engineer and Director, Studio Tools Foreword

xiii A. Hayden Lindsey IBM Distinguished Engineer and Director, Studio Tools Foreword Foreword Business applications are increasingly leveraging Web technologies. Naturally this is true for Internet applications, but it is also true for intranet and extranet applications applications that

More information

Utilizing Linux Kernel Components in K42 K42 Team modified October 2001

Utilizing Linux Kernel Components in K42 K42 Team modified October 2001 K42 Team modified October 2001 This paper discusses how K42 uses Linux-kernel components to support a wide range of hardware, a full-featured TCP/IP stack and Linux file-systems. An examination of the

More information

Composite Software Data Virtualization The Five Most Popular Uses of Data Virtualization

Composite Software Data Virtualization The Five Most Popular Uses of Data Virtualization Composite Software Data Virtualization The Five Most Popular Uses of Data Virtualization Composite Software, Inc. June 2011 TABLE OF CONTENTS INTRODUCTION... 3 DATA FEDERATION... 4 PROBLEM DATA CONSOLIDATION

More information

STAFF REPORT. January 26, Audit Committee. Information Security Framework. Purpose:

STAFF REPORT. January 26, Audit Committee. Information Security Framework. Purpose: STAFF REPORT January 26, 2001 To: From: Subject: Audit Committee City Auditor Information Security Framework Purpose: To review the adequacy of the Information Security Framework governing the security

More information

OHIO. [white paper] Understanding the Web-to-Host Application Programming Interface. Jacinthe Paradis. Eugène Aresteanu. eicon technology corporation

OHIO. [white paper] Understanding the Web-to-Host Application Programming Interface. Jacinthe Paradis. Eugène Aresteanu. eicon technology corporation eicon technology corporation Understanding the Web-to-Host Application Programming Interface November 1999 Jacinthe Paradis Senior Program Manager, SNA Access Business Unit Eugène Aresteanu Senior Architect,SNA

More information

bold The requirements for this software are: Software must be able to build, debug, run, and col ect data from Discrete Event Simulation models

bold The requirements for this software are: Software must be able to build, debug, run, and col ect data from Discrete Event Simulation models The following items in bold are requirements specified by an experienced simulation user who was evaluating new products. The Simio narrative responses are the parts not in bold. The requirements for this

More information

Rethinking VDI: The Role of Client-Hosted Virtual Desktops. White Paper Virtual Computer, Inc. All Rights Reserved.

Rethinking VDI: The Role of Client-Hosted Virtual Desktops. White Paper Virtual Computer, Inc. All Rights Reserved. Rethinking VDI: The Role of Client-Hosted Virtual Desktops White Paper 2011 Virtual Computer, Inc. All Rights Reserved. www.virtualcomputer.com The Evolving Corporate Desktop Personal computers are now

More information

Iowa Department of Transportation Statewide Coordinated GIS

Iowa Department of Transportation Statewide Coordinated GIS 1998 TRANSPORTATION CONFERENCE PROCEEDINGS 187 Iowa Department of Transportation Statewide Coordinated GIS WILLIAM G. SCHUMAN, TIM STRAUSS, DAN GIESEMAN, AND REGINALD R. SOULEYRETTE This paper details

More information

ITTIA DB SQL Em bedded Dat abase and VxWorks

ITTIA DB SQL Em bedded Dat abase and VxWorks ITTIA DB SQL Em bedded Dat abase and VxWorks Copyright 2017 ITTIA L.L.C. An ITTIA White Paper, August 2017 ITTIA DB SQL TM is a small-footprint, high-performance relational database engine for embedded

More information

Parallel Programming Models. Parallel Programming Models. Threads Model. Implementations 3/24/2014. Shared Memory Model (without threads)

Parallel Programming Models. Parallel Programming Models. Threads Model. Implementations 3/24/2014. Shared Memory Model (without threads) Parallel Programming Models Parallel Programming Models Shared Memory (without threads) Threads Distributed Memory / Message Passing Data Parallel Hybrid Single Program Multiple Data (SPMD) Multiple Program

More information

Getting a Quick Start with RUP

Getting a Quick Start with RUP Getting a Quick Start with RUP By: Doug Rosenberg and Jeff Kantor, ICONIX Software Engineering, Inc. Abstract Many people want the rigor of an industrial-strength process like the RUP but aren't quite

More information

Cloud Computing: Making the Right Choice for Your Organization

Cloud Computing: Making the Right Choice for Your Organization Cloud Computing: Making the Right Choice for Your Organization A decade ago, cloud computing was on the leading edge. Now, 95 percent of businesses use cloud technology, and Gartner says that by 2020,

More information

Hello everyone, how are you enjoying the conference so far? Excellent!

Hello everyone, how are you enjoying the conference so far? Excellent! 1 Hello everyone, how are you enjoying the conference so far? Excellent! I m Andy Sutton, the e-builder User Experience Lead, and I m here to talk to you about User Experience. In this session, we re going

More information

This RSC document is a minor revision of its counterpart JSC document (6JSC/Policy/6); only minimal updating of names has occurred.

This RSC document is a minor revision of its counterpart JSC document (6JSC/Policy/6); only minimal updating of names has occurred. RSC/Policy/6 Page 1 of 6 To: From: Subject: RDA Steering Committee Gordon Dunsire, Chair, RSC Translation Policy for RDA and RDA Toolkit Related document This RSC document is a minor revision of its counterpart

More information

Game Production: reuse

Game Production: reuse Game Production: reuse Fabiano Dalpiaz f.dalpiaz@uu.nl 1 Outline Lecture contents 1. Introduction to software reuse 2. Patterns 3. Application frameworks 4. Software product lines 5. Commercial-off-the-shelf

More information

Symantec Data Center Transformation

Symantec Data Center Transformation Symantec Data Center Transformation A holistic framework for IT evolution As enterprises become increasingly dependent on information technology, the complexity, cost, and performance of IT environments

More information

Microsoft Core Solutions of Microsoft SharePoint Server 2013

Microsoft Core Solutions of Microsoft SharePoint Server 2013 1800 ULEARN (853 276) www.ddls.com.au Microsoft 20331 - Core Solutions of Microsoft SharePoint Server 2013 Length 5 days Price $4290.00 (inc GST) Version B Overview This course will provide you with the

More information

Workflow Modeling for Implementing Complex, CAD-Based, Design Methodologies

Workflow Modeling for Implementing Complex, CAD-Based, Design Methodologies Workflow Modeling for Implementing Complex, CAD-Based, Design Methodologies J. Stavash and J. Wedgwood M. Forte Lockheed Martin Advanced Technology Laboratories Rockwell International Corporation Camden,

More information

Figure 1: Typical output of condor q -analyze

Figure 1: Typical output of condor q -analyze 1 Introduction The Condor high throughput distributed system is underpinned by the matchmaking process which performs distributed resource allocation. While the implementation of matchmaking is quite robust,

More information

Full file at

Full file at Chapter 2 Data Warehousing True-False Questions 1. A real-time, enterprise-level data warehouse combined with a strategy for its use in decision support can leverage data to provide massive financial benefits

More information

Key Ideas. OO Analysis and Design Foundation. Objectives. Adapted from slides 2005 John Wiley & Sons, Inc.

Key Ideas. OO Analysis and Design Foundation. Objectives. Adapted from slides 2005 John Wiley & Sons, Inc. Slide 1 Information Systems Development COMM005 (CSM03) Autumn Semester 2009 Dr. Jonathan Y. Clark Email: j.y.clark@surrey.ac.uk Course Website: www.computing.surrey.ac.uk/courses/csm03/isdmain.htm Course

More information

Threat and Vulnerability Assessment Tool

Threat and Vulnerability Assessment Tool TABLE OF CONTENTS Threat & Vulnerability Assessment Process... 3 Purpose... 4 Components of a Threat & Vulnerability Assessment... 4 Administrative Safeguards... 4 Logical Safeguards... 4 Physical Safeguards...

More information

Business Process Testing

Business Process Testing Business Process Testing Software Version: 12.55 User Guide Go to HELP CENTER ONLINE http://admhelp.microfocus.com/alm/ Document Release Date: August 2017 Software Release Date: August 2017 Legal Notices

More information

Introduction to Software Architecture. The top level... (and design revisited)

Introduction to Software Architecture. The top level... (and design revisited) Introduction to Software Architecture The top level... (and design revisited) 1 What are we doing? System Software Architecture Top-level design software system architecture We use system architecture

More information

Mapping Your Requirements to the NIST Cybersecurity Framework. Industry Perspective

Mapping Your Requirements to the NIST Cybersecurity Framework. Industry Perspective Mapping Your Requirements to the NIST Cybersecurity Framework Industry Perspective 1 Quest has the solutions and services to help your organization identify, protect, detect, respond and recover, better

More information

Software Defined Storage for the Evolving Data Center

Software Defined Storage for the Evolving Data Center Software Defined Storage for the Evolving Data Center Petter Sveum Information Availability Solution Lead EMEA Technology Practice ATTENTION Forward-looking Statements: Any forward-looking indication of

More information

Architecture and Design Evolution

Architecture and Design Evolution Architecture and Design Evolution Pradyumn Sharma pradyumn.sharma@pragatisoftware.com www.twitter.com/pradyumnsharma 1 What is Software Architecture? Structure of a system, comprising software elements,

More information

FAQ: Database Development and Management

FAQ: Database Development and Management Question 1: Are normalization rules followed exclusively in the real world? Answer 1: Unfortunately, the answer to this question is no. Database design and development do not have hard and fast rules,

More information

ProDeploy Suite. Accelerate enterprise technology adoption with expert deployment designed for you

ProDeploy Suite. Accelerate enterprise technology adoption with expert deployment designed for you Accelerate enterprise technology adoption with expert deployment designed for you 1 Shift resources to innovate and drive better business outcomes The landscape faced by IT managers and business leaders

More information

Bundling Arrows: Making a Business Case for Adopting an Incident Command System (ICS) 2012 The Flynt Group, Inc.; All Rights Reserved. FlyntGroup.

Bundling Arrows: Making a Business Case for Adopting an Incident Command System (ICS) 2012 The Flynt Group, Inc.; All Rights Reserved. FlyntGroup. Bundling Arrows: Making a Business Case for Adopting an Incident Command System (ICS) 2012 The Flynt Group, Inc.; All Rights Reserved FlyntGroup.com Flynt Group White Paper Bundling Arrows: Making a Business

More information

Networking for a smarter data center: Getting it right

Networking for a smarter data center: Getting it right IBM Global Technology Services October 2011 Networking for a smarter data center: Getting it right Planning the network needed for a dynamic infrastructure 2 Networking for a smarter data center: Getting

More information

Systems Analysis and Design in a Changing World, Fourth Edition

Systems Analysis and Design in a Changing World, Fourth Edition Systems Analysis and Design in a Changing World, Fourth Edition Systems Analysis and Design in a Changing World, 4th Edition Learning Objectives Explain the purpose and various phases of the systems development

More information

BENEFITS OF INTRA-VEHICLE DISTRIBUTED NETWORK ARCHITECTURE

BENEFITS OF INTRA-VEHICLE DISTRIBUTED NETWORK ARCHITECTURE 2011 NDIA GROUND VEHICLE SYSTEMS ENGINEERING AND TECHNOLOGY SYMPOSIUM VEHICLE ELECTRONICS AND ARCHITECTURE (VEA) MINI-SYMPOSIUM AUGUST 9-11 DEARBORN, MICHIGAN BENEFITS OF INTRA-VEHICLE DISTRIBUTED NETWORK

More information

XD Framework (XDF) Overview. For More Information Contact BlueSpace at Tel: (512) Web:

XD Framework (XDF) Overview. For More Information Contact BlueSpace at Tel: (512) Web: XD Framework (XDF) Overview For More Information Contact BlueSpace at Tel: (512) 366-3940 Email: info@bluespace.com Web: www.bluespace.com Contents 1 INTRODUCTION... 3 2 CASE STUDY... 4 2.1 PROBLEM STATEMENT...

More information

SOFTWARE ENGINEERING. To discuss several different ways to implement software reuse. To describe the development of software product lines.

SOFTWARE ENGINEERING. To discuss several different ways to implement software reuse. To describe the development of software product lines. SOFTWARE ENGINEERING DESIGN WITH COMPONENTS Design with reuse designs and develops a system from reusable software. Reusing software allows achieving better products at low cost and time. LEARNING OBJECTIVES

More information

Software Localisation and Software Localisation Testing: An Overview and Case Study. Dr. Mark Rice

Software Localisation and Software Localisation Testing: An Overview and Case Study. Dr. Mark Rice Software Localisation and Software Localisation Testing: An Overview and Case Study Dr. Mark Rice This Presentation Will Explore the high-level processes of software localisation and software localisation

More information

Magento Enterprise Edition Customer Support Guide

Magento Enterprise Edition Customer Support Guide Magento Enterprise Edition Customer Support Guide April 2017 magento.com/support 2017 Magento, Inc. All rights reserved. Thank You for using Magento Enterprise Edition Customer support is a vital part

More information

Agile Manifesto & XP. Topics. Rapid software development. Agile methods. Chapter ) What is Agile trying to do?

Agile Manifesto & XP. Topics. Rapid software development. Agile methods. Chapter ) What is Agile trying to do? Topics 1) What is trying to do? Manifesto & XP Chapter 3.1-3.3 2) How to choose plan-driven vs? 3) What practices go into (XP) development? 4) How to write tests while writing new code? CMPT 276 Dr. B.

More information

Advanced Cyber Risk Management Threat Modeling & Cyber Wargaming April 23, 2018

Advanced Cyber Risk Management Threat Modeling & Cyber Wargaming April 23, 2018 Advanced Cyber Risk Management Threat Modeling & Cyber Wargaming April 23, 2018 The Homeland Security Systems Engineering and Development Institute (HSSEDI ) is a trademark of the U.S. Department of Homeland

More information

Gustavo Alonso, ETH Zürich. Web services: Concepts, Architectures and Applications - Chapter 1 2

Gustavo Alonso, ETH Zürich. Web services: Concepts, Architectures and Applications - Chapter 1 2 Chapter 1: Distributed Information Systems Gustavo Alonso Computer Science Department Swiss Federal Institute of Technology (ETHZ) alonso@inf.ethz.ch http://www.iks.inf.ethz.ch/ Contents - Chapter 1 Design

More information

Introduction to Software Reuse

Introduction to Software Reuse DCC / ICEx / UFMG Introduction to Software Reuse Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Software Reuse The use of existing software or software knowledge to build new software In the last

More information

Quantum, a Data Storage Solutions Leader, Delivers Responsive HTML5-Based Documentation Centers Using MadCap Flare

Quantum, a Data Storage Solutions Leader, Delivers Responsive HTML5-Based Documentation Centers Using MadCap Flare A Customer Success Story in Technical Communication Best Practices Quantum, a Data Storage Solutions Leader, Delivers Responsive HTML5-Based Documentation Centers Using MadCap Flare GOALS Reinvent product

More information

Cloud Computing the VMware Perspective. Bogomil Balkansky Product Marketing

Cloud Computing the VMware Perspective. Bogomil Balkansky Product Marketing Cloud Computing the VMware Perspective Bogomil Balkansky Product Marketing Cloud Computing - the Key Questions What is it? Why do you need it? How do you build (or leverage) one (or many)? How do you operate

More information

Service Oriented Architecture

Service Oriented Architecture SO est Practices What is SO? SO or Oriented rchitecture has rapidly gained status as a buzzword among the IT community, particularly over the last three years. The demand for greater simplicity of reuse

More information

Genomics on Cisco Metacloud + SwiftStack

Genomics on Cisco Metacloud + SwiftStack Genomics on Cisco Metacloud + SwiftStack Technology is a large component of driving discovery in both research and providing timely answers for clinical treatments. Advances in genomic sequencing have

More information

Design and deliver cloud-based apps and data for flexible, on-demand IT

Design and deliver cloud-based apps and data for flexible, on-demand IT White Paper Design and deliver cloud-based apps and data for flexible, on-demand IT Design and deliver cloud-based apps and data for flexible, on-demand IT Discover the fastest and easiest way for IT to

More information

Red Hat Application Migration Toolkit 4.2

Red Hat Application Migration Toolkit 4.2 Red Hat Application Migration Toolkit 4.2 Getting Started Guide Learn how to use the Red Hat Application Migration Toolkit to migrate and modernize Java applications and components. Last Updated: 2019-03-26

More information

Adapted from: The Human Factor: Designing Computer Systems for People, Rubinstein & Hersh (1984) Designers make myths. Users make conceptual models.

Adapted from: The Human Factor: Designing Computer Systems for People, Rubinstein & Hersh (1984) Designers make myths. Users make conceptual models. User Interface Guidelines UI Guidelines 1 Adapted from: The Human Factor: Designing Computer Systems for People, Rubinstein & Hersh (1984) Know your users - they are not you Designers make myths. Users

More information