Platform Agnostic Approaches for FPCT Development
|
|
- Wilfred Carpenter
- 6 years ago
- Views:
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 Interleaves the activities of specification, development, and validation. The system is developed as a series of versions (increments), with
More informationA 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 informationImproved 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 informationBest 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 informationNext-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 informationCreating 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 informationSystem 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 informationAn 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 informationThe 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 informationBringing 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 informationDigital 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 informationSpecifying 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 informationMigration 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 informationSYSPRO 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 informationThe 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 informationThis 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 * **********************************
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 informationTERMINOLOGY 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 informationXyleme 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 informationThe 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 informationData 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 informationApplication 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 informationRules 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 informationCategorizing 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 informationPlanning 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 informationEvaluation 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 informationThe 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 informationThe 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 informationThree 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 informationThe 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 informationAdvanced 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 informationAccelerate 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 informationThe 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 informationAbout 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 information1. 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 informationComprehensive 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 informationSQL 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 informationDefining 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 informationCA 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 informationIntroduction 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 informationHPE 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 informationPlants 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 informationSoftware 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 informationDefinition: 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 informationGlobal 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 informationTHE 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 informationGROUP 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 informationHow 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 informationPNAMP 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 informationBest 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 informationChapter 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 informationIntegrated 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 informationxiii 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 informationUtilizing 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 informationComposite 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 informationSTAFF 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 informationOHIO. [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 informationbold 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 informationRethinking 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 informationIowa 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 informationITTIA 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 informationParallel 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 informationGetting 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 informationCloud 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 informationHello 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 informationThis 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 informationGame 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 informationSymantec 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 informationMicrosoft 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 informationWorkflow 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 informationFigure 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 informationFull 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 informationKey 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 informationThreat 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 informationBusiness 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 informationIntroduction 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 informationMapping 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 informationSoftware 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 informationArchitecture 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 informationFAQ: 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 informationProDeploy 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 informationBundling 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 informationNetworking 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 informationSystems 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 informationBENEFITS 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 informationXD 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 informationSOFTWARE 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 informationSoftware 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 informationMagento 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 informationAgile 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 informationAdvanced 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 informationGustavo 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 informationIntroduction 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 informationQuantum, 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 informationCloud 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 informationService 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 informationGenomics 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 informationDesign 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 informationRed 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 informationAdapted 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