Life cycle Application Generation Peter Bell Chief Technology Officer SystemsForge Peter Bell Chief Technology Officer SystemsForge.

Slides:



Advertisements
Similar presentations
Tridion 5.3 Templates.
Advertisements

Component Development for the Component Description Framework (CDF) Training Dr.-Ing. Ulrich Dinger.
DIGIDOC A web based tool to Manage Documents. System Overview DigiDoc is a web-based customizable, integrated solution for Business Process Management.
Business Development Suit Presented by Thomas Mathews.
ARIADNE V4 Filip Neven, Stefaan Ternier & Erik Duval Dept. Computerwetenschappen, Katholieke Universiteit Leuven, Belgium
Apache Struts Technology
HTML 5 and CSS 3, Illustrated Complete Unit L: Programming Web Pages with JavaScript.
Enterprise Content Management Departmental Solutions Enterprisewide Document/Content Management at half the cost of competitive systems ImageSite is:
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
© 2010 Bennett, McRobb and Farmer1 Use Case Description Supplementary material to support Bennett, McRobb and Farmer: Object Oriented Systems Analysis.
Developing an XBRL Reporting Architecture Rafael Valero Arce Fujitsu España Services es.fujitsu.com.
Introduction to the ABAP Data Dictionary
DEV392: Extending SharePoint Products And Technologies Through Web Parts And ASP.NET Clint Covington, Program Manager Data And Developer Services - Office.
Building Enterprise Applications Using Visual Studio ®.NET Enterprise Architect.
Software Factory Assembling Applications with Models, Patterns, Frameworks and Tools Anna Liu Senior Architect Advisor Microsoft Australia.
Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department.
Simple Web SQLite Manager/Form/Report
Microsoft Office Word 2013 Expert Microsoft Office Word 2013 Expert Courseware # 3251 Lesson 4: Working with Forms.
UNIT-V The MVC architecture and Struts Framework.
A detailed guide on how to set-up your printing storefront. Please Note: Storefronts are compatible with all browsers, however for optimal use of the admin.
Windows.Net Programming Series Preview. Course Schedule CourseDate Microsoft.Net Fundamentals 01/13/2014 Microsoft Windows/Web Fundamentals 01/20/2014.
Dataface API Essentials Steve Hannah Web Lite Solutions Corp.
Adagio4 Web Content Management EP Information Offices.
REFACTORING Lecture 4. Definition Refactoring is a process of changing the internal structure of the program, not affecting its external behavior and.
ArtClinica Address: 1175 Marlkress Rd, #2632, Cherry Hill, NJ 08034, USAPhone: Fax: ARTClinica.
A Practical High Volume Software Product Line Peter Bell CEO/CTO SystemsForge ooPLSA ‘07 Peter Bell CEO/CTO SystemsForge ooPLSA ‘07.
Overview of Previous Lesson(s) Over View  ASP.NET Pages  Modular in nature and divided into the core sections  Page directives  Code Section  Page.
1 A Web Specific Language for Content Management Systems Viðar Svansson, Roberto E. Lopez-Herrejon Computing Laboratory University of Oxford.
Todd Snyder Development Team Lead Infragistics Experience Design Group.
London April 2005 London April 2005 Creating Eyeblaster Ads The Rich Media Platform The Rich Media Platform Eyeblaster.
London April 2005 London April 2005 Creating Eyeblaster Ads The Rich Media Platform The Rich Media Platform Eyeblaster.
Introducing Reporting Services for SQL Server 2005.
March 12 & 13, 2007 Practical Code Generation Peter Bell SystemsForge.
© 2006 IBM Corporation IBM WebSphere Portlet Factory Architecture.
Practical Code Generation with CF Template Peter Bell SystemsForge Peter Bell SystemsForge CF United 2008.
Aspect-Oriented Refactoring of the Apache Cocoon Shared-Object Resource Allocation System Jeff Dalton February 28th, 2003 Advisor: David G. Hannay Client:
11 CORE Architecture Mauro Bruno, Monica Scannapieco, Carlo Vaccari, Giulia Vaste Antonino Virgillito, Diego Zardetto (Istat)
L10 - April 12, 2006copyright Thomas Pole , all rights reserved 1 Lecture 10: Software Assets and Text: Ch. 8: Language Anatomy and Ch 9: Families.
L9 - April 5, 2006copyright Thomas Pole , all rights reserved 1 Lecture 9: Reuse Driven Processes and Text Ch. 7: Programming with Models.
Office Business Applications Workshop Defining Business Process and Workflows.
Roles in Software Development using Domain Specific Modelling Languages Holger Krahn, Bernhard Rumpe, Steven Völkel Software Systems Engineering Technische.
Microsoft Dynamics NAV 2009 and Architecture Overview Name Title Microsoft Corporation.
Automated Transformation of Statements Within Evolving Domain Specific Languages Peter Bell CEO/CTO, SystemsForge 7th OOPSLA Workshop on Domain-Specific.
1 Partial Domain Specific Models Jos WarmerOrdina Anneke KleppeUniversity of Twente OOPSLA Workshop on Domain Specific Modeling,
Copyright © 2012 UNICOM Systems, Inc. Confidential Information z/Ware Product Overview illustro Systems International A Division of UNICOM Global.
Model View Controller MVC Web Software Architecture.
An approach for Framework Construction and Instantiation Using Pattern Languages Rosana Teresinha Vaccare Braga Paulo Cesar Masiero ICMC-USP: Institute.
Software Product Lines Peter Bell CEO/CTO, SystemsForge cf.Objective() 2008 Peter Bell CEO/CTO, SystemsForge cf.Objective() 2008.
Reading Flash. Training target: Read the following reading materials and use the reading skills mentioned in the passages above. You may also choose some.
Presented by Vishy Grandhi.  Architecture (Week 1) ◦ Development Environments ◦ Model driven architecture ◦ Licensing and configuration  AOT (Week 2)
Workforce Scheduling Release 5.0 for Windows Implementation Overview OWS Development Team.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
CS562 Advanced Java and Internet Application Introduction to the Computer Warehouse Web Application. Java Server Pages (JSP) Technology. By Team Alpha.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
JavaScript Overview Developer Essentials How to Code Language Constructs The DOM concept- API, (use W3C model) Objects –properties Methods Events Applications;
® IBM Software Group © 2007 IBM Corporation Module 1: Getting Started with Rational Software Architect Essentials of Modeling with IBM Rational Software.
Declarative Languages and Model Based Development of Web Applications Besnik Selimi South East European University DAAD: 15 th Workshop “Software Engineering.
Requirements and Estimating Scotch on the Rocks ‘08 Peter Bell SystemsForge Peter Bell SystemsForge.
RAD OO Web Maniacs 2008 Peter Bell SystemsForge Peter Bell SystemsForge.
Integrating and Extending Workflow 8 AA301 Carl Sykes Ed Heaney.
Live. learn. work. play Superior Avenue Suite 310 Cleveland Ohio Tel: Fax:
Application generation Peter Bell SystemsForge Peter Bell SystemsForge Beyond Scaffolding.
What’s New in Microsoft Dynamics NAV 2017?
Building Enterprise Applications Using Visual Studio®
Essentials of UrbanCode Deploy v6.1 QQ147
CMPE419 Mobile Application Development
JavaScript Introduction
Execute your Processes
CMPE419 Mobile Application Development
Presentation transcript:

Life cycle Application Generation Peter Bell Chief Technology Officer SystemsForge Peter Bell Chief Technology Officer SystemsForge

Overview Introducing SystemsForge Lifecycle Solutions Core Concepts Anatomy of a Generator Outstanding Problems

Where We Fit Five types of features Rocket Science Lab experiment (non-functional) New to me With a twist - sweet spot == 80% Here we go again...

What we do Generate custom web apps CMS, E-comm, Newsletter, etc. Unique: Insurance portal, SPLs, etc. “With a twist” Retail: $5,000 - $50,000 Wholesale providers (usually under $5,000)

Resellers Marketing/design Selling to SMB’s Them: Project management, data entry, support Us: Code, tools, deployment

State of Play 80 clients 4 active resellers Profitable Soft launch this summer “Finishing up”

What We’re Not Vendor Experts Usual

Business Drivers Build Anything Change Everything Rapid Process 80/20 Non technical roles

Lifecycle Solution Quote Specify Generate Manage Deploy Must optimize ALL

Quote Priced features Configure for free Discovery fee if complex (if possible!) Customization heuristics (per object) Named variability (includes only x)

Specify Features and configurators Requirements output => DSL input Agile Fixed Price Reduce (our) cost of most iterations

Generate Layered SPL - iterative approach Choose (feature model) Configure (decision support) Customize (DSLs) Extend (just add code)

Choose - Feature Model N-Features Parent Essential, optional, requires one

What IS A Feature? 1..n statements Essential/optional Config questions/mappings Question specific guidance

Configure Select optional Decision Support Answer: 0..n questions, 0..n statements

Customize (DSLs) Overload or add statements Issue: capturing customizations Intent Driven Design

Business intent Roles (and objectives) Essential tasks Interfaces and actions Infer object model Non non-functional specs

Extend (Just Add Code) Passive generation Protected areas Mixins/Partial Classes Subclass Events AOP

Generate Layered SPL - iterative approach Choose (feature model) Configure (decision support) Customize (DSLs) Extend (just add code)

Domain Specific Languages Three types of languages Abstract grammar vs. concrete syntax In language vs. external DSL

Three Types of Language Declaritive: What to do (requirements) Templating: Where to put (layout) Scripting: How to do (imperative)

Declaritive Name: Password: Required SELECT FullName FROM tbl_User Where UserID = 7

Templating #Title# $#Price#

Scripting For (Count = 1; Count lte listlen(ObjectDependencyList); Count=Count+1) { // Get current object name LoopObjectName = ListGetAt(ObjectDependencyList, Count); If (LoopObjectName NEQ "LightWire") { // Prepend it with ObjectName LoopObjectName=ListAppend(arguments.ObjectName,LoopObjectName,"|"); // Add it to the new object dependency list TempObjectDependencyList=ListAppend(TempObjectDependencyList,LoopObjectName) };

Three Types of Language Declaritive: Statement level reuse Templating: Simplify for designers Scripting: Use to implement

Abstract vs. Concrete grammar vs. Syntax WHAT say vs. HOW say Objects.User.Title = “User”; Objects.User.Attribute.Name = “FirstName”; FirstName Boxes and Arrows

In-Language vs. External DSL In Language: API, Language extension Easy to create No validation Can use core language External: XML/custom file Store in database Harder to create Validation Can limit language

Anatomy of a Generator Grammar Metadata Templates Iterator Orchestrator Extensions

Grammar Context free Concepts 0..n Attributes (optional or required) 0..n Relationships (0/1..1/n) BNF, API, DTD/Schema Example...

Grammar Object 0..n Property 1..1 Relationship Title:string DataType Name:string:required SQLDataType:enum:required

Metadata Scripting XML Custom Syntax Databased

Templates Generating n-Getters: Template: > > Velocity - XSLT - CF Template Generate a File

Templates

Iterator One DAO per business object One template per screen In general: one file per instance of concept Need filter support Generate n-Files

Orchestrator Metadata (get(“ObjectList”)) Template (ObjectDAO.cft) Iterator (Object: All) File name (#ObjectName#DAO.cfc) Generate m-Collections of n-Files

Anatomy of a Generator Grammar Metadata Templates Iterator Orchestrator Extensions

Framework vs. Code Gen Not either/or Language features Intellectual property Performance Can refactor...

Problems Outstanding Handling “dark matter” Evolving DSLs (versioning, refactoring) Pretty pictures(!) Peter Bell SystemsForge

Object Model Objects: Attributes: Relationships Objects and Attributes: Optional: Datetime: Optional: Datetime: Required: Status: approved Page: extends Required: Title Article: extends Optional: HTML Relationships: Page: Article: optional: multiple Article: Page: required: single

Object Model (2) Custom Data Types AsDate StatusList WYIWYG

Interface Model Screens: Actions: Steps = = = 10,25,50,all ArticleAdminList Title