Agile development with DSLs

Size: px
Start display at page:

Download "Agile development with DSLs"

Transcription

1 Alan Cameron Wills Agile development with DSLs Wizard sample Visual Studio SDK is supplied with a set of examples. We ll look at a DSL that helps developers design wizards. 1

2 Wizard sample The code in this project defines an editor for a diagrammatic domain-specific language. This file is the DSL definition. Most of the code for the DSL editor is generated from it. Wizard sample Build and start the project this starts a new instance of Visual Studio, containing code for a wizard. Most of the code in this project is generated from the DSL. 2

3 Wizard sample Build and start the wizard project this runs the sample wizard. Normally the wizard project would be part of a larger application solution. Roles After debugging the DSL, its author will create and publish an installer enabling other developers to use it. Designing Wizard framework and DSL Architect The developers create applications with wizards in them. Wizard DSL & framework helps with wizard Developer Designing an app containing a wizard Hotel booking using an app with a wizard 3

4 Build model The DSL author has to create the DSL definition, the templates for turning it into code, and the framework code in which the generated code runs. Application FeatureDSL definition templates Feature Framework MyFeature Model Graphical Editor feature = wizard in the case of our example. generator code Code Config files Serialized model <xxx><y yy title= xx ><zzz> The application developer has to create an instance of the DSL (and the parts of the application that the DSL doesn t deal with, of course.) Templates Model Wizard Namesp= UIPSample Page Name= MyFirstWiza rdpage Field Name= MyFirstField Page Field Field Parameterized template code: namespace <#= wizard.namesp #> <# foreach (Page page in wizard.pages) #> public partial class <#= page.name #> public <#= page.name #>() InitializeComponent(); InitializeDelegates(); } public object GetFieldValue(string fieldname) switch(fieldname) <# foreach (Field field in page.fields) #> case <#= field.name #> ": In MS DSL Tools, generation is done with templates. The DSL author creates code that queries the developer s model. In the template, the query code and material being generated are mixed. The generated material need not be code. Generated code: namespace UIPSample public partial class MyFirstWizardPage public MyFirstWizardPage() InitializeComponent(); InitializeDelegates(); } public object GetFieldValue(string fieldname) switch(fieldname) case MyFirstField": 4

5 Combining generated and handwritten code Local modifications templates Inevitably, the DSL author cannot anticipate every application, and developers will want to adapt it. Feature Framework My Model generator Generated stuff What if I don t like all of the generated stuff? And there s some of the Framework I don t like either 5

6 Local modifications templates So there has to be some way of providing for handwritten material to be combined with generated material. My Model generator Generated stuff Feature Framework + Combined stuff Handwritten stuff? One-off generation templates One approach is just to edit the generated material. Unless you have a round-trip mechanism (which only works in some cases) you ve lost the connection, and so the generated material can only be a start. My Model generator Generated stuff Generate first time only Feature Framework Model initial design Hand edit afterwards Hand edited stuff Edit the framework too Not recommended 6

7 Combining generated and hand code One-off generation Only get the advantage of prewritten framework and initial code from model Model useless after code is edited Customizable generation Developer never edits generated code Generated code designed for customization Hooks and overridable code Customizable generation templates My Model generator superclasses Feature Framework compile Combined code Subclass overrides Event definitions Rule definitions More superclasses Generation gap pattern 7

8 Generation Gap Generate Methods to superclass Constructors to subclass Add handwritten code to subclass Can override generated methods Partial classes Generated public partial class FoundRoom private System.ComponentModel.IContainer components = null; protected override void Dispose(bool disposing) Handwritten public partial class FoundRoom public override void InitializeDelegates() base.initializedelegates(); 8

9 Postprocess composition Works for general files templates For material other than C#, post-processing is the answer. A variant of this approach allows the generator to edit only certain marked-out parts of a file. My Model generator Generated config file Feature Framework Postprocess Combined config file Handwritten config file Edit the templates Good for mass changes Edit My Model templates generator Generated Generated Generated files files files Feature Framework Less easy to debug 9

10 Round-tripping templates My Model edit generator parser rules Generated file edit Much more difficult to generalize Much more difficult to write than templates Round-trip tools keep model close to code MS DSL Tools currently don t do round-trip Diff templates My Model generator Old version Generated file Highlight changes and flag need for review! edit occasional edit 10

11 Dynamic configuration Direct API Application Wizard DSL definition MyWizard Model templates Feature Framework Graphical Editor translator API Serialized model <wizard ><state title= xx ><transit ion> 11

12 DSL embedded in bigger application Workflow Server Edits work item state chart Evolving a DSL and Framework 12

13 Template parameters Original unparameterised code: Parameterized template code: Wizard namespace Fabrikam.DSL.WizardUIP.UIPSample public partial class MyFirstWizardPage public MyFirstWizardPage() InitializeComponent(); InitializeDelegates(); } public object GetFieldValue(string fieldname) switch(fieldname) case MyFirstField": namespace <#= wizard.namespace#> <# foreach (Page page in wizard.pages) #> public partial class <#= page.name #> public <#= page.name #>() InitializeComponent(); InitializeDelegates(); } public object GetFieldValue(string fieldname) switch(fieldname) <# foreach (Field field in page.fields) #> case <#= field.name #> ": page field page field field Evolving a framework Original code Templatized code Model Syntax <wizard ><state title= xx ><transit ion> 13

14 Separation of variability Fixed Wizard DSL definition MyWizard Model templates generator Application Patterns of implementation in this domain Wizard Framework MyWizard Code Hand code Language of requirements in this domain Config files Variable Architectural refactoring Generalize to framework, templat es and DSL Enhance Develop instance solutions Use in further instances 14

15 Development feedback loops Architect Wizard framework Developer Application (uses Wizards) Customer Summary Domain-specific language provides a means to express the variable requirements in a domain Framework represents the patterns of implementation in the domain DSL and Framework are developed Together By evolution from instances 15

16 Software factories Benefits of Domain Specific Language = Benefits of clean API: separation of concerns opportunity for clearly-defined contract + Benefits of good language: Communication and comprehension Focus on domain abstractions Readability Clear mental model Communication with customers Explicit grammar Constraint validation + Benefits of suitable modern editor: - Prompting and contextual guidance what s [not] allowed - Navigation and search - Holophraxis collapse/expand, zoom 16

17 Stabilizing the architecture sys 1 sys 2 sys 3 architects developers sys 11 framework patterns guidelines little languages templates tools recipes sys 12 developers developers developers sys 13 sys14 Software Factory Architecture Patterns, Guidance, & Recipes Process and roles Framework, Components domain model Tools Languages and Editors Call base rate: /s Record <CallRecord> <caller><number> </number> call store call length class Magnox : NuclearPowerStation public void droprods () 17

18 Domain-specific Framework, Components, Architecture Implements design patterns in this domain Language Use to understand or define requirements; or design (of some aspect) And maybe generate (some of) solution Tools and Recipes Common refactorings, patterns, in this domain Style guideline conformance Process and roles e.g.: Customer-facing vs framework developers Methods for creating and verifying models in DSLs Nouns and verbs; legacy mining; client doc mining; genetic evolution; consistency tests; reviews; prototyping; run-it-and-see; Sync of hardware and software deployment Patterns and Guidance Written by lead developers to guide implementation of choices Software Factories 19 th Century sweatshop Thousands of people doing repetitive backbreaking labour from scratch with primitive tools 21 st Century Mass Customization Repetitive stuff done by automatic tools People do the interesting stuff that varies between instances 18

19 Software Factory = Domain-specific Languages Guidance Tools Recipes Patterns Templates Frameworks Relationships/constraints between viewpoints Templates Template = Parameterised structure of source files Skeleton source code in Java, C#, Resource files (icons etc) make / config / build control files Debug info IDE parameters Recipes Template defines a type of solution Instantiated template Wizard Template fill in template parameters 19

20 Recipes Recipe = operation on a type of solution item arguments gathered from context and user Add command Add web command Validate command set --- Add Item New Rename --- Build Debug --- Delete new toolbox icon skeleton for new command Skeleton code for command coupling MyNewToolIcon.bmp Summary An integrated domain-specific package of DSLs Tools accelerates development in that area But requires development good for repeated tasks Repeated development tasks if you do a lot of work with The same vertical domain The same horizontal technology 20

21 DSLs in the software development process Brainstorm Requirements 21

22 Refine requirements model Many ways of modeling requirements, depending on domain... 22

23 Use factories to define project backlog Actual Predicte d Jan Feb Mar Apr May Interact with architecture models 23

24 Trace architecture to requirements Software Factory window, allowing users to select from all of the products being worked on. Each view has an editing experience optimized for the problem domain Logical view of the product being developed, constrained by the factory schema and a standard way of viewing the work products belonging to each view. 24

25 Each activity has a number of associated assets The factory guides the Detail pane shows the user through the activities associated sequence of activities with the selected viewrequired to build the product Summary DSLs can be used at several stages in the software development process And in planning 25

26 Bibliography 26

Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools

Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools Jack Greenfield Keith Short WILEY Wiley Publishing, Inc. Preface Acknowledgments Foreword Parti Introduction to

More information

TeamCompanion Solution Overview. Visual Studio

TeamCompanion Solution Overview. Visual Studio TeamCompanion Solution Overview Visual Studio Information in this document, including URL and other Internet Web site references, is subject to change without notice. Unless otherwise noted, the example

More information

Programming with the Microsoft.NET Framework Using Microsoft Visual Studio 2005 (VB)

Programming with the Microsoft.NET Framework Using Microsoft Visual Studio 2005 (VB) Programming with the Microsoft.NET Framework Using Microsoft Visual Studio 2005 (VB) Course Number: 4995 Length: 5 Day(s) Certification Exam There are no exams associated with this course. Course Overview

More information

Visual Basic. murach's TRAINING & REFERENCE

Visual Basic. murach's TRAINING & REFERENCE TRAINING & REFERENCE murach's Visual Basic 2008 Anne Boehm lbm Mike Murach & Associates, Inc. H 1-800-221-5528 (559) 440-9071 Fax: (559) 440-0963 murachbooks@murach.com www.murach.com Contents Introduction

More information

To introduce software process models To describe three generic process models and when they may be used

To introduce software process models To describe three generic process models and when they may be used Software Processes Objectives To introduce software process models To describe three generic process models and when they may be used To describe outline process models for requirements engineering, software

More information

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53 Preface xvi Part I Introduction and System Engineering 1 Chapter 1 Introduction 2 1.1 What Is Software Engineering? 2 1.2 Why Software Engineering? 3 1.3 Software Life-Cycle Activities 4 1.3.1 Software

More information

Firewall Builder Architecture Overview

Firewall Builder Architecture Overview Firewall Builder Architecture Overview Vadim Zaliva Vadim Kurland Abstract This document gives brief, high level overview of existing Firewall Builder architecture.

More information

Xcode Project Management Guide. (Legacy)

Xcode Project Management Guide. (Legacy) Xcode Project Management Guide (Legacy) Contents Introduction 10 Organization of This Document 10 See Also 11 Part I: Project Organization 12 Overview of an Xcode Project 13 Components of an Xcode Project

More information

Table of Contents. CHAPTER 1 Web-Based Systems 1. CHAPTER 2 Web Engineering 12. CHAPTER 3 A Web Engineering Process 24

Table of Contents. CHAPTER 1 Web-Based Systems 1. CHAPTER 2 Web Engineering 12. CHAPTER 3 A Web Engineering Process 24 Table of Contents CHAPTER 1 Web-Based Systems 1 The Web 1 Web Applications 2 Let s Introduce a Case Study 3 Are WebApps Really Computer Software? 4 Are the Attributes of WebApps Different from the Attributes

More information

An Eclipse Plug-In for Visualizing Java Code Dependencies on Relational Databases

An Eclipse Plug-In for Visualizing Java Code Dependencies on Relational Databases An Eclipse Plug-In for Visualizing Java Code Dependencies on Relational Databases Paul L. Bergstein, Priyanka Gariba, Vaibhavi Pisolkar, and Sheetal Subbanwad Dept. of Computer and Information Science,

More information

Requirements Management

Requirements Management REQUIREMENTS By Harold Halbleib Requirements Management Identify, Specify, Track and Control Requirements Using a Standard Process About the author... Harold Halbleib has a degree in Electrical Engineering

More information

Chapter 13: Program Development and Programming Languages

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

More information

Using GitHub for Rally Apps (Mac Version)

Using GitHub for Rally Apps (Mac Version) Using GitHub for Rally Apps (Mac Version) SOURCE DOCUMENT (must have a rallydev.com email address to access and edit) Introduction Rally has a working relationship with GitHub to enable customer collaboration

More information

InfoSphere Master Data Management operational server v11.x OSGi best practices and troubleshooting guide

InfoSphere Master Data Management operational server v11.x OSGi best practices and troubleshooting guide InfoSphere Master Data Management operational server v11.x OSGi best practices and troubleshooting guide Introduction... 2 Optimal workspace operational server configurations... 3 Bundle project build

More information

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements Questions? Assignment Why is proper project management important? What is goal of domain analysis? What is the difference between functional and non- functional requirements? Why is it important for requirements

More information

Nick Ashley TOOLS. The following table lists some additional and possibly more unusual tools used in this paper.

Nick Ashley TOOLS. The following table lists some additional and possibly more unusual tools used in this paper. TAKING CONTROL OF YOUR DATABASE DEVELOPMENT Nick Ashley While language-oriented toolsets become more advanced the range of development and deployment tools for databases remains primitive. How often is

More information

Model-Driven Development of a Biosignal Analysis Framework: Benefits and Impacts on Processes. Nikolas Hofmann 08.11.2012

Model-Driven Development of a Biosignal Analysis Framework: Benefits and Impacts on Processes. Nikolas Hofmann 08.11.2012 Model-Driven Development of a Biosignal Analysis Framework: Benefits and Impacts on Processes Nikolas Hofmann Introduction Biosignal analysis has versatile applications in medicine Mobile devices allow

More information

This section provides a 'Quickstart' guide to using TestDriven.NET any version of Microsoft Visual Studio.NET

This section provides a 'Quickstart' guide to using TestDriven.NET any version of Microsoft Visual Studio.NET Quickstart TestDriven.NET - Quickstart TestDriven.NET Quickstart Introduction Installing Running Tests Ad-hoc Tests Test Output Test With... Test Projects Aborting Stopping Introduction This section provides

More information

Implementing reusable software components for SNOMED CT diagram and expression concept representations

Implementing reusable software components for SNOMED CT diagram and expression concept representations 1028 e-health For Continuity of Care C. Lovis et al. (Eds.) 2014 European Federation for Medical Informatics and IOS Press. This article is published online with Open Access by IOS Press and distributed

More information

SavvyDox Publishing Augmenting SharePoint and Office 365 Document Content Management Systems

SavvyDox Publishing Augmenting SharePoint and Office 365 Document Content Management Systems SavvyDox Publishing Augmenting SharePoint and Office 365 Document Content Management Systems Executive Summary This white paper examines the challenges of obtaining timely review feedback and managing

More information

Getting Started with Telerik Data Access. Contents

Getting Started with Telerik Data Access. Contents Contents Overview... 3 Product Installation... 3 Building a Domain Model... 5 Database-First (Reverse) Mapping... 5 Creating the Project... 6 Creating Entities From the Database Schema... 7 Model-First

More information

Model-Driven Development - From Frontend to Code

Model-Driven Development - From Frontend to Code Model-Driven Development - From Frontend to Code Sven Efftinge sven@efftinge.de www.efftinge.de Bernd Kolb bernd@kolbware.de www.kolbware.de Markus Völter voelter@acm.org www.voelter.de -1- Model Driven

More information

A Rules Engine Experiment: Lessons Learned on When and How to use a Rules-Based Solution

A Rules Engine Experiment: Lessons Learned on When and How to use a Rules-Based Solution Approved for Public Release; Distribution Unlimited. Case Number 14-1985 A Rules Engine Experiment: Lessons Learned on When and How to use a Rules-Based Solution June 24, 2014. 2 Agenda Discuss BRMS Rules

More information

.NET and J2EE Intro to Software Engineering

.NET and J2EE Intro to Software Engineering .NET and J2EE Intro to Software Engineering David Talby This Lecture.NET Platform The Framework CLR and C# J2EE Platform And Web Services Introduction to Software Engineering The Software Crisis Methodologies

More information

Catalog Web service and catalog commerce management center customization

Catalog Web service and catalog commerce management center customization Copyright IBM Corporation 2008 All rights reserved IBM WebSphere Commerce Feature Pack 3.01 Lab exercise Catalog Web service and catalog commerce management center customization What this exercise is about...

More information

Developing Apps with the ArcGIS Runtime SDK for Android. Ben Ramseth Esri Inc. Instructor Technical Lead

Developing Apps with the ArcGIS Runtime SDK for Android. Ben Ramseth Esri Inc. Instructor Technical Lead Developing Apps with the ArcGIS Runtime SDK for Android Ben Ramseth Esri Inc. Instructor Technical Lead Ben Ramseth Instructor Technical Lead Esri Inc USA, Charlotte, NC bramseth@esri.com @EsriMapNinja

More information

YouTrack MPS case study

YouTrack MPS case study YouTrack MPS case study A case study of JetBrains YouTrack use of MPS Valeria Adrianova, Maxim Mazin, Václav Pech What is YouTrack YouTrack is an innovative, web-based, keyboard-centric issue and project

More information

Application Developer s Guide

Application Developer s Guide TIBCO BusinessEvents Extreme Application Developer s Guide Software Release 1.0.0 May 2012 The Power to Predict Important Information SOME TIBCO SOFTWARE EMBEDS OR BUNDLES OTHER TIBCO SOFTWARE. USE OF

More information

Scriptless Test Automation. Next generation technique for improvement in software testing. Version 1.0 February, 2011 WHITE PAPER

Scriptless Test Automation. Next generation technique for improvement in software testing. Version 1.0 February, 2011 WHITE PAPER Scriptless Test Automation Next generation technique for productivity improvement in software testing Version 1.0 February, 2011 WHITE PAPER Copyright Notice Geometric Limited. All rights reserved. No

More information

Authoring for System Center 2012 Operations Manager

Authoring for System Center 2012 Operations Manager Authoring for System Center 2012 Operations Manager Microsoft Corporation Published: November 1, 2013 Authors Byron Ricks Applies To System Center 2012 Operations Manager System Center 2012 Service Pack

More information

EMC Documentum Composer

EMC Documentum Composer EMC Documentum Composer Version 6.5 User Guide P/N 300 007 217 A02 EMC Corporation Corporate Headquarters: Hopkinton, MA 01748 9103 1 508 435 1000 www.emc.com Copyright 2008 EMC Corporation. All rights

More information

IBM Operational Decision Manager Version 8 Release 5. Getting Started with Business Rules

IBM Operational Decision Manager Version 8 Release 5. Getting Started with Business Rules IBM Operational Decision Manager Version 8 Release 5 Getting Started with Business Rules Note Before using this information and the product it supports, read the information in Notices on page 43. This

More information

Course Information Course Number: IWT 1229 Course Name: Web Development and Design Foundation

Course Information Course Number: IWT 1229 Course Name: Web Development and Design Foundation Course Information Course Number: IWT 1229 Course Name: Web Development and Design Foundation Credit-By-Assessment (CBA) Competency List Written Assessment Competency List Introduction to the Internet

More information

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed. CS 389 Software Engineering Lecture 2 Chapter 2 Software Processes Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed. Topics covered Software process models Process activities Coping

More information

Microsoft s new database modeling tool: Part 1

Microsoft s new database modeling tool: Part 1 Microsoft s new database modeling tool: Part 1 Terry Halpin Microsoft Corporation Abstract: This is the first in a series of articles introducing the Visio-based database modeling component of Microsoft

More information

zen Platform technical white paper

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

More information

Terms and Definitions for CMS Administrators, Architects, and Developers

Terms and Definitions for CMS Administrators, Architects, and Developers Sitecore CMS 6 Glossary Rev. 081028 Sitecore CMS 6 Glossary Terms and Definitions for CMS Administrators, Architects, and Developers Table of Contents Chapter 1 Introduction... 3 1.1 Glossary... 4 Page

More information

LearnFromGuru Polish your knowledge

LearnFromGuru Polish your knowledge SQL SERVER 2008 R2 /2012 (TSQL/SSIS/ SSRS/ SSAS BI Developer TRAINING) Module: I T-SQL Programming and Database Design An Overview of SQL Server 2008 R2 / 2012 Available Features and Tools New Capabilities

More information

Umbrello UML Modeller Handbook

Umbrello UML Modeller Handbook 2 Contents 1 Introduction 7 2 UML Basics 8 2.1 About UML......................................... 8 2.2 UML Elements........................................ 9 2.2.1 Use Case Diagram.................................

More information

SQL SERVER TRAINING CURRICULUM

SQL SERVER TRAINING CURRICULUM SQL SERVER TRAINING CURRICULUM Complete SQL Server 2000/2005 for Developers Management and Administration Overview Creating databases and transaction logs Managing the file system Server and database configuration

More information

The Recipe for Sarbanes-Oxley Compliance using Microsoft s SharePoint 2010 platform

The Recipe for Sarbanes-Oxley Compliance using Microsoft s SharePoint 2010 platform The Recipe for Sarbanes-Oxley Compliance using Microsoft s SharePoint 2010 platform Technical Discussion David Churchill CEO DraftPoint Inc. The information contained in this document represents the current

More information

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

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

More information

Welcome to the Force.com Developer Day

Welcome to the Force.com Developer Day Welcome to the Force.com Developer Day Sign up for a Developer Edition account at: http://developer.force.com/join Nicola Lalla nlalla@saleforce.com n_lalla nlalla26 Safe Harbor Safe harbor statement under

More information

Lab 0 (Setting up your Development Environment) Week 1

Lab 0 (Setting up your Development Environment) Week 1 ECE155: Engineering Design with Embedded Systems Winter 2013 Lab 0 (Setting up your Development Environment) Week 1 Prepared by Kirill Morozov version 1.2 1 Objectives In this lab, you ll familiarize yourself

More information

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville Software Engineering Software Processes Based on Software Engineering, 7 th Edition by Ian Sommerville Objectives To introduce software process models To describe three generic process models and when

More information

Overview of Generative Software Development

Overview of Generative Software Development Overview of Generative Software Development Krzysztof Czarnecki University of Waterloo Overview Motivation Generative Software Development Examples Summary & Outlook 2 Scaling Up Software Development New

More information

Jamcracker Web Services. David Orchard Standards Architect

Jamcracker Web Services. David Orchard Standards Architect Jamcracker Web Services Web Services Position April 12, 2001 David Orchard Standards Architect 1 Web Services Vision Provide an ecosystem of web services Integrate XML interfaces/web Services together

More information

A Visual Language Based System for the Efficient Management of the Software Development Process.

A Visual Language Based System for the Efficient Management of the Software Development Process. A Visual Language Based System for the Efficient Management of the Software Development Process. G. COSTAGLIOLA, G. POLESE, G. TORTORA and P. D AMBROSIO * Dipartimento di Informatica ed Applicazioni, Università

More information

J j enterpririse. Oracle Application Express 3. Develop Native Oracle database-centric web applications quickly and easily with Oracle APEX

J j enterpririse. Oracle Application Express 3. Develop Native Oracle database-centric web applications quickly and easily with Oracle APEX Oracle Application Express 3 The Essentials and More Develop Native Oracle database-centric web applications quickly and easily with Oracle APEX Arie Geller Matthew Lyon J j enterpririse PUBLISHING BIRMINGHAM

More information

How to Build Successful DSL s. Jos Warmer Leendert Versluijs

How to Build Successful DSL s. Jos Warmer Leendert Versluijs How to Build Successful DSL s Jos Warmer Leendert Versluijs Jos Warmer Expert in Model Driven Development One of the authors of the UML standard Author of books Praktisch UML MDA Explained Object Constraint

More information

Composite.Community.Newsletter - User Guide

Composite.Community.Newsletter - User Guide Composite.Community.Newsletter - User Guide Composite 2015-11-09 Composite A/S Nygårdsvej 16 DK-2100 Copenhagen Phone +45 3915 7600 www.composite.net Contents 1 INTRODUCTION... 4 1.1 Who Should Read This

More information

Chapter 1. Introduction to ios Development. Objectives: Touch on the history of ios and the devices that support this operating system.

Chapter 1. Introduction to ios Development. Objectives: Touch on the history of ios and the devices that support this operating system. Chapter 1 Introduction to ios Development Objectives: Touch on the history of ios and the devices that support this operating system. Understand the different types of Apple Developer accounts. Introduce

More information

Top 10 Considerations for Enterprise Agile Tools. www.versionone.com

Top 10 Considerations for Enterprise Agile Tools. www.versionone.com Top 10 for Enterprise Agile Tools Which Enterprise Agile Tool is Right for You? With more than a decade of experience helping organizations scale their agile initiatives, we ve seen first-hand most of

More information

Difference Between Model-Driven and Traditional Iterative Software Development

Difference Between Model-Driven and Traditional Iterative Software Development Process Implications of Model-Driven Software Development Author: Jorn Bettin Version 1.0 September 2004 Copyright 2003, 2004 SoftMetaWare Ltd. SoftMetaWare is a trademark of SoftMetaWare Ltd. All other

More information

Developing Mapping Applications with ArcGIS Runtime SDK for Windows Mobile. Jay Chen Justin Colville

Developing Mapping Applications with ArcGIS Runtime SDK for Windows Mobile. Jay Chen Justin Colville Developing Mapping Applications with ArcGIS Runtime SDK for Windows Mobile Jay Chen Justin Colville Agenda What is ArcGIS Runtime for Windows Mobile Software Development Kit Application SDK - Introduction

More information

Developing Microsoft SharePoint Server 2013 Advanced Solutions

Developing Microsoft SharePoint Server 2013 Advanced Solutions Course 20489B: Developing Microsoft SharePoint Server 2013 Advanced Solutions Course Details Course Outline Module 1: Creating Robust and Efficient Apps for SharePoint In this module, you will review key

More information

Application Development

Application Development Thomas Schneider SAP' Business ByDesign Studio Application Development Foreword 15 About This Book 17 Introduction 21 1.1 Introducing Site Management 37 1.2 Introducing SAP Business ByDesign Studio 42

More information

Modernized and Maintainable Code. Frank Weil, Ph.D. UniqueSoft, LLC

Modernized and Maintainable Code. Frank Weil, Ph.D. UniqueSoft, LLC Modernized and Maintainable Code Frank Weil, Ph.D. UniqueSoft, LLC UniqueSoft is a provider of next-generation software development tools and services specializing in modernizing legacy software using

More information

50439B: Basics of Transact SQL with SQL Server 2008 R2

50439B: Basics of Transact SQL with SQL Server 2008 R2 50439B: Basics of Transact SQL with SQL Server 2008 R2 Duration: 3 days Class Description This instructor-led course provides students with the necessary knowledge to work with the data in SQL Server 2008R2.

More information

InRule. The Premier BRMS for the Microsoft Platform. Benefits THE POWER OF INRULE. Key Capabilities

InRule. The Premier BRMS for the Microsoft Platform. Benefits THE POWER OF INRULE. Key Capabilities InRule The Premier BRMS for the Microsoft Platform THE POWER OF INRULE InRule empowers technical and business users to change rules and calculations in applications with less effort, cost, and risk than

More information

Web Services API Developer Guide

Web Services API Developer Guide Web Services API Developer Guide Contents 2 Contents Web Services API Developer Guide... 3 Quick Start...4 Examples of the Web Service API Implementation... 13 Exporting Warehouse Data... 14 Exporting

More information

Microsoft Data Warehouse in Depth

Microsoft Data Warehouse in Depth Microsoft Data Warehouse in Depth 1 P a g e Duration What s new Why attend Who should attend Course format and prerequisites 4 days The course materials have been refreshed to align with the second edition

More information

Rational Team Concert. Guido Salvaneschi Dipartimento di Elettronica e Informazione Politecnico di Milano salvaneschi@elet.polimi.

Rational Team Concert. Guido Salvaneschi Dipartimento di Elettronica e Informazione Politecnico di Milano salvaneschi@elet.polimi. Rational Team Concert Guido Salvaneschi Dipartimento di Elettronica e Informazione Politecnico di Milano salvaneschi@elet.polimi.it Project Areas The project area is the system's representation of a software

More information

This course provides students with the knowledge and skills to develop ASP.NET MVC 4 web applications.

This course provides students with the knowledge and skills to develop ASP.NET MVC 4 web applications. 20486B: Developing ASP.NET MVC 4 Web Applications Course Overview This course provides students with the knowledge and skills to develop ASP.NET MVC 4 web applications. Course Introduction Course Introduction

More information

Business Portal for Microsoft Dynamics GP. Key Performance Indicators Release 10.0

Business Portal for Microsoft Dynamics GP. Key Performance Indicators Release 10.0 Business Portal for Microsoft Dynamics GP Key Performance Indicators Release 10.0 Copyright Copyright 2007 Microsoft Corporation. All rights reserved. Complying with all applicable copyright laws is the

More information

INTERNET PROGRAMMING AND DEVELOPMENT AEC LEA.BN Course Descriptions & Outcome Competency

INTERNET PROGRAMMING AND DEVELOPMENT AEC LEA.BN Course Descriptions & Outcome Competency INTERNET PROGRAMMING AND DEVELOPMENT AEC LEA.BN Course Descriptions & Outcome Competency 1. 420-PA3-AB Introduction to Computers, the Internet, and the Web This course is an introduction to the computer,

More information

from Microsoft Office

from Microsoft Office OOoCon 2003 Migrating from Microsoft Office to OpenOffice.org/StarOffice by Frank Gamerdinger frank.gamerdinger@sun.com 1 Who needs migration? OpenOffice.org & StarOffice - only the brave!(?) 2 Agenda

More information

Extensibility. vcloud Automation Center 6.0 EN-001328-00

Extensibility. vcloud Automation Center 6.0 EN-001328-00 vcloud Automation Center 6.0 This document supports the version of each product listed and supports all subsequent versions until the document is replaced by a new edition. To check for more recent editions

More information

M-Files Gantt View. User Guide. App Version: 1.1.0 Author: Joel Heinrich

M-Files Gantt View. User Guide. App Version: 1.1.0 Author: Joel Heinrich M-Files Gantt View User Guide App Version: 1.1.0 Author: Joel Heinrich Date: 02-Jan-2013 Contents 1 Introduction... 1 1.1 Requirements... 1 2 Basic Use... 1 2.1 Activation... 1 2.2 Layout... 1 2.3 Navigation...

More information

Microsoft Dynamics GP Release. Workflow Administrator s Guide

Microsoft Dynamics GP Release. Workflow Administrator s Guide Microsoft Dynamics GP Release Workflow Administrator s Guide December 10, 2012 Copyright Copyright 2012 Microsoft. All rights reserved. Limitation of liability This document is provided as-is. Information

More information

Requirements Analysis Concepts & Principles. Instructor: Dr. Jerry Gao

Requirements Analysis Concepts & Principles. Instructor: Dr. Jerry Gao Requirements Analysis Concepts & Principles Instructor: Dr. Jerry Gao Requirements Analysis Concepts and Principles - Requirements Analysis - Communication Techniques - Initiating the Process - Facilitated

More information

There are numerous ways to access monitors:

There are numerous ways to access monitors: Remote Monitors REMOTE MONITORS... 1 Overview... 1 Accessing Monitors... 1 Creating Monitors... 2 Monitor Wizard Options... 11 Editing the Monitor Configuration... 14 Status... 15 Location... 17 Alerting...

More information

Managing Third Party Databases and Building Your Data Warehouse

Managing Third Party Databases and Building Your Data Warehouse Managing Third Party Databases and Building Your Data Warehouse By Gary Smith Software Consultant Embarcadero Technologies Tech Note INTRODUCTION It s a recurring theme. Companies are continually faced

More information

IBM WebSphere ILOG Rules for.net

IBM WebSphere ILOG Rules for.net Automate business decisions and accelerate time-to-market IBM WebSphere ILOG Rules for.net Business rule management for Microsoft.NET and SOA environments Highlights Complete BRMS for.net Integration with

More information

Chapter 3: Data Mining Driven Learning Apprentice System for Medical Billing Compliance

Chapter 3: Data Mining Driven Learning Apprentice System for Medical Billing Compliance Chapter 3: Data Mining Driven Learning Apprentice System for Medical Billing Compliance 3.1 Introduction This research has been conducted at back office of a medical billing company situated in a custom

More information

Generation and Handcoding

Generation and Handcoding Farbe! Generative Software Engineering 3. Integrating Handwritten Code Prof. Dr. Bernhard Rumpe University http://www.se-rwth.de/ Page 2 Generation and Handcoding Not everything shall and can be generated

More information

DBA xpress Product Overview

DBA xpress Product Overview DBA xpress Product Overview provides next-generation SQL tools specifically tailored for performance and ease of use when architecting or administering large microsoft SQL Server database systems. Key

More information

Oracle Siebel CRM 8 Developer's Handbook

Oracle Siebel CRM 8 Developer's Handbook P U B L I S H I N G professional expertise distilled Oracle Siebel CRM 8 Developer's Handbook Alexander Hansal Chapter No.13 "User Properties" In this package, you will find: A Biography of the author

More information

Business Insight Report Authoring Getting Started Guide

Business Insight Report Authoring Getting Started Guide Business Insight Report Authoring Getting Started Guide Version: 6.6 Written by: Product Documentation, R&D Date: February 2011 ImageNow and CaptureNow are registered trademarks of Perceptive Software,

More information

Remote Desktop Services with Vijeo Citect 2015

Remote Desktop Services with Vijeo Citect 2015 Remote Desktop Services with Vijeo Citect 2015 August 2015 Rev1 - Whitepaper Jacky Lang Martin Lalanne Warwick Black Summary 1. Remote Desktop Services (RDS) 3 1.1. Benefits at a glance 3 1.2. Supported

More information

Chapter 2 Software Processes

Chapter 2 Software Processes Chapter 2 Software Processes Chapter 2 Software Processes Slide 1 Topics covered Software processes and process models Generic models: Waterfall Incremental development Reuse-oriented software engineering

More information

Using Application Insights to Monitor your Applications

Using Application Insights to Monitor your Applications Using Application Insights to Monitor your Applications Overview In this lab, you will learn how to add Application Insights to a web application in order to better detect issues, solve problems, and continuously

More information

For Introduction to Java Programming, 5E By Y. Daniel Liang

For Introduction to Java Programming, 5E By Y. Daniel Liang Supplement H: NetBeans Tutorial For Introduction to Java Programming, 5E By Y. Daniel Liang This supplement covers the following topics: Getting Started with NetBeans Creating a Project Creating, Mounting,

More information

Top 10 Oracle SQL Developer Tips and Tricks

Top 10 Oracle SQL Developer Tips and Tricks Top 10 Oracle SQL Developer Tips and Tricks December 17, 2013 Marc Sewtz Senior Software Development Manager Oracle Application Express Oracle America Inc., New York, NY The following is intended to outline

More information

6 th Annual EclipseCon Introduction to BIRT Report Development. John Ward

6 th Annual EclipseCon Introduction to BIRT Report Development. John Ward 6 th Annual EclipseCon Introduction to BIRT Report Development John Ward BIRT and Us Who am I? Who are you? Who am I? John Ward, BIRT user Independent BIRT Enthusiast Author: Practical Data Analysis and

More information

Lab Manual: Using Rational Rose

Lab Manual: Using Rational Rose Lab Manual: Using Rational Rose 1. Use Case Diagram Creating actors 1. Right-click on the Use Case View package in the browser to make the shortcut menu visible. 2. Select the New:Actor menu option. A

More information

Release Document Version: 1.4-2013-05-30. User Guide: SAP BusinessObjects Analysis, edition for Microsoft Office

Release Document Version: 1.4-2013-05-30. User Guide: SAP BusinessObjects Analysis, edition for Microsoft Office Release Document Version: 1.4-2013-05-30 User Guide: SAP BusinessObjects Analysis, edition for Microsoft Office Table of Contents 1 About this guide....6 1.1 Who should read this guide?....6 1.2 User profiles....6

More information

Programming in C# with Microsoft Visual Studio 2010

Programming in C# with Microsoft Visual Studio 2010 Introducción a la Programación Web con C# en Visual Studio 2010 Curso: Introduction to Web development Programming in C# with Microsoft Visual Studio 2010 Introduction to Web Development with Microsoft

More information

Migration from SharePoint 2007 to SharePoint 2010

Migration from SharePoint 2007 to SharePoint 2010 Migration from SharePoint 2007 to SharePoint 2010 Summary This paper provides an overview of the SharePoint 2007 to SharePoint 2010 migration and highlights the KPIT- SYSTIME migration approach. The document

More information

Visionet IT Modernization Empowering Change

Visionet IT Modernization Empowering Change Visionet IT Modernization A Visionet Systems White Paper September 2009 Visionet Systems Inc. 3 Cedar Brook Dr. Cranbury, NJ 08512 Tel: 609 360-0501 Table of Contents 1 Executive Summary... 4 2 Introduction...

More information

DigitalPersona Pro Server for Active Directory v4.x Quick Start Installation Guide

DigitalPersona Pro Server for Active Directory v4.x Quick Start Installation Guide DigitalPersona Pro Server for Active Directory v4.x Quick Start Installation Guide 1 of 7 DigitalPersona Pro Server for Active Directory v4.x Quick Start Installation Guide Process Overview Step Description

More information

Visual Studio Team Edition for Database Professionals. Woody Pewitt Developer Evangelist woodyp@microsoft.com

Visual Studio Team Edition for Database Professionals. Woody Pewitt Developer Evangelist woodyp@microsoft.com Visual Studio Team Edition for Database Professionals Woody Pewitt Developer Evangelist woodyp@microsoft.com Process and Architecture Guidance Visual Studio Industry Partners Visual Studio Team System

More information

Using the Query Analyzer

Using the Query Analyzer Using the Query Analyzer Using the Query Analyzer Objectives Explore the Query Analyzer user interface. Learn how to use the menu items and toolbars to work with SQL Server data and objects. Use object

More information

Enterprise Portfolio Management

Enterprise Portfolio Management Enterprise Portfolio Management Managing large volumes of structured data Through its powerful capabilities as a structural modeling tool, ABACUS Summary provides of whitepaper a ready-to-go Summary solution

More information

Tutorial: Mobile Business Object Development. SAP Mobile Platform 2.3 SP02

Tutorial: Mobile Business Object Development. SAP Mobile Platform 2.3 SP02 Tutorial: Mobile Business Object Development SAP Mobile Platform 2.3 SP02 DOCUMENT ID: DC01927-01-0232-01 LAST REVISED: May 2013 Copyright 2013 by Sybase, Inc. All rights reserved. This publication pertains

More information

1 File Processing Systems

1 File Processing Systems COMP 378 Database Systems Notes for Chapter 1 of Database System Concepts Introduction A database management system (DBMS) is a collection of data and an integrated set of programs that access that data.

More information

Salesforce Mobile Push Notifications Implementation Guide

Salesforce Mobile Push Notifications Implementation Guide Salesforce.com: Summer 14 Salesforce Mobile Push Notifications Implementation Guide Last updated: May 6, 2014 Copyright 2000 2014 salesforce.com, inc. All rights reserved. Salesforce.com is a registered

More information

Agile Software Development

Agile Software Development Agile Software Development Lecturer: Raman Ramsin Lecture 13 Refactoring Part 3 1 Dealing with Generalization: Pull Up Constructor Body Pull Up Constructor Body You have constructors on subclasses with

More information

Choosing a Development Tool

Choosing a Development Tool Microsoft Dynamics GP 2013 R2 Choosing a Development Tool White Paper This paper provides guidance when choosing which development tool to use to create an integration for Microsoft Dynamics GP. Date:

More information

Cleo Communications. CUEScript Training

Cleo Communications. CUEScript Training Cleo Communications CUEScript Training Introduction RMCS Architecture Why CUEScript, What is it? How and Where Scripts in RMCS XML Primer XPath Pi Primer Introduction (cont.) Getting Started Scripting

More information