An Introduction to XFB 1 XFB There's a fine line between genius and insanity. I have erased this line. Oscar Levant.

Slides:



Advertisements
Similar presentations
Use-Cases.
Advertisements

Fusebox & CFCs Barney Boisvert 2004 Fusebox Conference.
Lecture 4 Basic Scripting. Administrative  Files on the website will be posted in pdf for compatibility  Website is now mirrored at:
IIT Kanpur Web Based Land Records Management System Prof. P.K.Kalra Developed by Department of Electrical Engineering Indian Institute.
Apache Struts Technology
Error Handling With Fusebox Presentation By Eron Cohen.
Conversation Form l One path through a use case that emphasizes interactions between an actor and the system l Can show optional and repeated actions l.
Copyright © 2001 Bolton Institute Dept. of Computing & Electronic Technology Multimedia Integration and Applications Lecture 7: Main Build Management.
Prototyping. Horizontal Prototyping Description of Horizontal Prototyping A Horizontal, or User Interface, Prototype is a model of the outer shell of.
Introduction To System Analysis and Design
Fast Track to ColdFusion 9. Getting Started with ColdFusion Understanding Dynamic Web Pages ColdFusion Benchmark Introducing the ColdFusion Language Introducing.
James Tam Introduction To Design Patterns You will learn about design techniques that have been successfully applied to different scenarios.
Lecture 4: Main Build Management Damien Markey. Lecture 4: Main Build Management How to start a build Assembling the team –Designer –Developer –Database.
UNIT-V The MVC architecture and Struts Framework.
Fusebox 3.0 The Framework, The Methodology, The Community Nat Papovich, Fusium.
Introduction To System Analysis and design
1/48 Real World FLiP Fusebox Life-cycle Process Michael Smith, TeraTech, Inc
March 12 & 13, 2007 Using FLiP as a sole developer Christian Ready Christian Ready Web Services.
The Art of Debugging Shlomy Gantz 02/13/01MDCFUG.
Don’t Be Q-less Expanding Fusebox Functionality with FuseQ John Quarto-vonTivadar FutureNow, Inc.
E-Learning Material Web Application Design 2. Web Application Design Use cases Guidelines Exceptions Interaction Sequence diagrams Finding objects.
© 2012 IBM Corporation Rational Insight | Back to Basis Series Chao Zhang Unit Testing.
Self Guided Tour for Query V8.4 Basic Features. 2 This Self Guided Tour is meant as a review only for Query V8.4 Basic Features and not as a substitute.
More on Fusebox at Fusebox Development Methodology : More on Fusebox at Fusebox Development Methodology.
An Introduction to Fusebox 3.0 Fusebox 3.0. An Introduction to Fusebox 3.0 The Fusebox Philosophy There are two ways of constructing a software design:
Software Engineering 2003 Jyrki Nummenmaa 1 CASE Tools CASE = Computer-Aided Software Engineering A set of tools to (optimally) assist in each.
Integrating with UCSF’s Shibboleth system
Building Your First Fusebox 4 Application Jeff Peters
PHP meets MySQL.
Multi-Part Requests/ Parent & Child Service Items.
Nested Layouts in Fusebox 3 John Quarto-vonTivadar FutureNow, Inc.
Introduction to Model-Glue Rachel Lehman Perpetual Intermediate Designer-Developer Introduction to Model-Glue.
©2003 The Fusebox Corporation Fusebox MX Hal Helms.
©2003 TeraTech, Inc Fusebox 4 Michael Smith, TeraTech, Inc x110 Copyright TeraTech 2003.
Use Cases 1. Last week  Introduction to software engineering  How is it different from traditional engineering?  Introduction to specification  Operational.
Chapter 14 Part II: Architectural Adaptation BY: AARON MCKAY.
University of Sunderland COM 220 Lecture Six Slide 1 Building Interactive Forms Applications using Oracle.
FlexElink Winter presentation 26 February 2002 Flexible linking (and formatting) management software Hector Sanchez Universitat Jaume I Ing. Informatica.
More on Fusebox at Fusebox Development Methodology : More on Fusebox at Fusebox Development Methodology.
More on Fusebox at Fusebox 3 Development Methodology : Fusebox 3.0 With thanks to David Laing, Hal.
BlackBox Methodology A means of creating efficient and flexible reusable ColdFusion code.
CSD 340 (Blum)1 Starting JavaScript Homage to the Homage to the Square.
Model View Controller MVC Web Software Architecture.
Converting to Fusebox: asking an old CF app to FLiP * Challenges Methods Results Mark Wimer USGS Patuxent Wildlife Research Center,
Fusebox Conference 2001 Out with the old in with the new An introduction to Fusebox 3.0 for current Fusebox developers By Erik Voldengen
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
Advanced Fusebox: Securing a Fusebox Application By Steve Nelson SecretAgents.com.
1) PHP – Personal Home Page Scripting Language 2) JavaScript.
Event Handling (the right way). A Simple Web Page Events - Summary The web page looks like this:
The Need for Speed! Steve Nelson. Internet Startup Failure 2000 More Internet startups failed this year than ever before Why did this happen? How can.
1 Object-Oriented Analysis and Design with the Unified Process Figure 13-1 Implementation discipline activities.
JavaScript Introduction and Background. 2 Web languages Three formal languages HTML JavaScript CSS Three different tasks Document description Client-side.
Design CS 470 – Software Engineering I Sheldon X. Liang, PH.D.
DITA TOPICS - ADVANCED. Session Results Topic Types Review Format/Layout Separated from Content DITA Concept Elements Using DITA Concept Elements - Advanced.
CF_Underground III 1 Architecting Applications with Mindmapping Tools Can anything save me time when designing an application? How can my visual brain.
Fusebox Not Just For Breakfast Anymore! An Introduction to Fusebox Author: Fred T. Sanders, Instant Knowledge Some Content unscrupulously taken from Steve.
Paperless Class Room -By Brainyway Solutions. Paperless Class Room It contains the three modules mainly. Admin, Teacher & Student Lessen the burden on.
 Project Team: Suzana Vaserman David Fleish Moran Zafir Tzvika Stein  Academic adviser: Dr. Mayer Goldberg  Technical adviser: Mr. Guy Wiener.
FOS Fusebox Open Source. Standards GOOD Built to match needs of an environment Proven Solutions BAD Environments change Solutions change.
Advanced Higher Computing Science The Project. Introduction Worth 60% of the total marks for the course Must include: An appropriate interface using input.
1 Using FLiP as a sole developer Christian Ready Christian Ready Web Services.
Web Application Development Process
Advanced Higher Computing Science
Working in the Forms Developer Environment
OGSA Data Architecture Scenarios
…and web frameworks in general
Brian Kotek INDUS Corporation
Introduction of Week 11 Return assignment 9-1 Collect assignment 10-1
…and web frameworks in general
Wells Fargo Toolkit – CreativeBuilder Reference Guide
Presentation transcript:

An Introduction to XFB 1 XFB There's a fine line between genius and insanity. I have erased this line. Oscar Levant

An Introduction to XFB 2 Origins of XFB XFB (Extended Fusebox) grew out of a desire to tip the scale of project success. XFB combines technical innovations (XFAs, query sims, nested circuits, nested layouts, integrated security, etc.) with project management features.

An Introduction to XFB 3 70% Failure

An Introduction to XFB 4 Requirements Design Coding Testing Delivery Time Expended Nike Method Architecture

An Introduction to XFB 5 Requirements/Design Architecture Testing Delivery Time Expended Extended Fusebox Method Coding

An Introduction to XFB 6 Main Points of XFB Project Management – wireframes – prototypes – devnotes Technical – xfas – fusedocs – nested circuits – nested layouts – query sims – security – assertions

An Introduction to XFB 7 Wireframe

An Introduction to XFB 8 Wireframe Wireframes provide a "booster rocket" to help us escape the gravitational pull of our prejudices and assumptions about what clients want.

An Introduction to XFB 9 Wireframe The wireframe is a skeleton-model of an application. It is meant to help clients and developers discuss what an application should do.

An Introduction to XFB 10 Wireframe

An Introduction to XFB 11 Wireframe

An Introduction to XFB 12 Wireframe Download available at

An Introduction to XFB 13 Prototype w/DevNotes

An Introduction to XFB 14 Why a prototype? "Requirements gathering" doesn't work The Musee d'Orsay in Paris wants to hire you to reproduce a famous painting: Arrangement in Black and Grey No. 1 Specification: "The work shall be oil on canvas, 56-1/4" x 63-1/4"..."

An Introduction to XFB 15 Is this what they want?

An Introduction to XFB 16 Is this what they want?

An Introduction to XFB 17 Is this what they want?

An Introduction to XFB 18 Is this what they want?

An Introduction to XFB 19 Is this what they want?

An Introduction to XFB 20 THIS is what they want!

An Introduction to XFB 21 Why the prototype? Clients can only tell you what they want after they see it

An Introduction to XFB 22 What is the prototype?

An Introduction to XFB 23 Leaving no "wiggle room" The prototypeThe deployed application

An Introduction to XFB 24 An iterative process The wireframe forms the basis for the first cut of the prototype Prototypes have minimal code—and are often best handled by non-programmers The prototype is refined through interaction with client and developer using DevNotes

An Introduction to XFB 25 What is DevNotes? DevNotes is a simple, threaded message system that sits below each individual prototype page. All issues related to the application are recorded as DevNotes

An Introduction to XFB 26 What are DevNotes used for? Client direction: "Move the buttons to the left/Make the blue a little more like cornflower and less like slate" Developer questions: "Where will the product information come from?/Is there an existing database or file with authorized users?" Client answers: "I think the IT people have a spreadsheet or something with users."

An Introduction to XFB 27 What are DevNotes used for? Developer self-notes: "Use JavaScript for client processing of this procedure"

An Introduction to XFB 28 Prototype freeze We are done with the prototype when both client and developer are confident that – all questions regarding functionality have been resolved – all content has been received from client – graphical interface/look and feel has been approved – any changes occurring after this point will either become a new release or will be exorbitantly expensive

An Introduction to XFB 29 Fusebox architecture

An Introduction to XFB 30 Unplanned program flow Module A Module B Module D Module E Module F Module C

An Introduction to XFB 31 Architected program flow Module AModule BModule D Module EModule FModule C

An Introduction to XFB 32 A Fusebox request Fusebox loginUser validateLogin newUser qryValidateLogin.cfm validateLogin actValidateLogin.cfm the fuseaction the fusebox fuseactions fuses

An Introduction to XFB 33 Fuses always make requests of the fusebox <input type=“hidden” name=“fuseaction” value=“validateUser”> Fusebox the fusebox a fuse

An Introduction to XFB 34 The fusebox copies all URL and form variables into attributes scope url.productID = 1027 form.lastName = ‘Helms’ attributes.productID = 1027 attributes.lastName = ‘Helms’

An Introduction to XFB 35 The fusebox …

An Introduction to XFB 36 Fuseactions The fuseaction is the motivating force in an application. Suggestion: use name is form of verbNounPhrase such as: – addItemToCart – getUserInfo – showProductInfo

An Introduction to XFB 37 The fusebox ….

An Introduction to XFB 38 Including a fuse The fusebox …. anotherFuse.cfm yetAnotherFuse.cfm aFuse.cfm “doSomething” The fuseaction The fuses

An Introduction to XFB 39 Nested circuits

An Introduction to XFB 40 Benefits of nested circuits More and easier code reuse Independent, concurrent development of code modules Descendant modules inherit variables from parents Variables from parents are inherited by children Layout files can be nested Exceptions bubble upwards

An Introduction to XFB 41 XFB nested circuits

An Introduction to XFB 42 Conflicting circuit names

An Introduction to XFB 43 Resolving circuit naming conflicts Create a Circuits.cfm file Alias name conflicts bpcf/completed/circuits.cfm

An Introduction to XFB 44 FB3: nested circuits Fusebox 2 worked with the concept of a federation of circuits,each having to know of the existence of each other Fusebox 3 works with the concept of interchangeable circuits that can be reused in different applications

An Introduction to XFB 45 Inheritance

An Introduction to XFB 46 Bubbling exceptions Lets architect determine where certain exception types will be handled Lets coder write fuses without worrying about handling certain classes of exceptions

An Introduction to XFB 47 alert( Example: Bubbling exceptions <cf_LogException message=“#cfcatch.message#”>

An Introduction to XFB 48 XFAs

An Introduction to XFB 49 XFAs A typical Fusebox 2 page has fuseactions hardcoded in place. Examples: –

An Introduction to XFB 50 XFAs XFAs are variables that lets fuseactions be resolved at run time Examples –

An Introduction to XFB 51 Identifying XFAs Mark up the prototype for any exit points – any point at which the user or the system can make another fuseaction request

An Introduction to XFB 52 Identifying XFAs

An Introduction to XFB 53 Assigning values to XFAs Login XFA.submitForm  validateUserLogin Login Validation XFA.success  showMainCatalogPage Product Detail XFA.buyItem  addItemToCart Cart XFA.adjust quantities  adjustCartQuantities Cart XFA.removeItem  removeItemFromCart Registered User XFA.editInfo  editUserInfo Registered User XFA.saveInfoUpdate  saveUser Admin Page XFA.newUser  newUser Identifying common nouns

An Introduction to XFB 54 Identifying circuit and fuseaction

An Introduction to XFB 55 Identifying needed fuses

An Introduction to XFB 56 Fusedoc

An Introduction to XFB 57 Fusedocs Provide documentation/PDL (program design language) for each fuse Tells coder what they need to know to write a fuse without knowledge of the application XML-based with DTD for validation

An Introduction to XFB 58 Nested layouts

An Introduction to XFB 59 tag Used to capture the output of code and save as a request-scoped variable Replaced in ColdFusion release 5 with

An Introduction to XFB 60 Example I am the left side I am the right side

An Introduction to XFB 61 Example td{ background-color : #thebg#; color : #thefg#; } #request.me# XMLSpy/FD4 validateLogin.cfm

An Introduction to XFB 62 Nested layouts Nested circuits Parent Child GrandChild UKDAXF/SampleFB3/

An Introduction to XFB 63 Post-processing decision making Because the child is returned to the parent as a variable (rather than simply output onto the screen), the parent can make decisions based on the results of the child's processing

An Introduction to XFB 64 Implementing nested layouts Wrap the code in index.cfm with (version 5) or (version 4) using the circuit's alias as the name of the variable (Illustration next)

An Introduction to XFB 65 Implementing nested layouts <!--- I'm going to get one (and only one) fuseaction at a time. Fuseactions correspond to methods or messages in OO languages. ---> I am the #GetDirectoryFromPath( GetCurrentTemplatePath())# fusebox and I received a fuseaction called "#attributes.fuseaction#" that I don't have a handler for.

An Introduction to XFB 66 Implementing nested layouts If the child is to display something, call the layout file after the tag

An Introduction to XFB 67 Query sims

An Introduction to XFB 68 Query sims Provides a simulated query to work with code Allows code architecture to be done before all database decisions have been finalized Provides instruction to SQL coders on what information is needed Lets architect determine data variable names test/QSimSample

An Introduction to XFB 69 Test harnesses Provides an easy-to-implement way of unit- testing fuses Should accompany all completed fuses

An Introduction to XFB 70 Example: test harness

An Introduction to XFB 71 Proving the concept We all agree that your theory is crazy, but is it crazy enough? Niels Bohr

An Introduction to XFB 72