soft fluent development white paper

Upload: anilchandore

Post on 10-Apr-2018

245 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/8/2019 Soft Fluent Development White Paper

    1/22

    How Model-Drcan help

    CodeFlue

    SoftFluent Marketing Te

    Version 1.0June 2010

    oftFluent

    iven Software Develoyour projects succeed

    t Entities White Pap

    am

    ment

    er

  • 8/8/2019 Soft Fluent Development White Paper

    2/22

    Executive Summary

    The objective of this white paper icauses and show how SoftFluent afactory and associated methodolog

    The first half of the document expla

    In chapter 1, we explain th In chapter 2, we comment In chapter 3, we detail ou

    new technology (whose op In chapter 4, we propose a

    It is interesting to note that thidevelopment at large and not depeit.

    In the second half of the documentchallenge:

    In chapter 5, we presentovercome the limits of past

    In chapter 6, we detail theapproach for modeling, de

    In chapter 7, we list typicalusing the CodeFluent Entiti

    In the end, CodeFluent Entities asuccess. Possibly, this recipe is notcustomers so far.

    SoftFluent, June 2010 - Do not du

    CodeFluent Entities is a registered t trademarks or registered trademar

    The material presented in this docuintended for general information o

    June 2010

    to describe the software development challenge,dresses it through its CodeFluent Entities model-d.

    ins the market challenge and why this is a difficult

    structural nature of the software development ch

    n the common approaches that exist on the markefield observations of project failures, particularlynness bear more risks than traditional constrained

    "Success Equation" as a model for summarizing the

    s part is widely applicable for people interestendent on our offering, and does not require any kn

    we explain the solution we have built to structura

    ur tenets that have been guiding the design of CASE approaches,different steps of our methodology using the Codeloping and industrializing,situations to illustrate the concrete benefits thats approach.

    ims to be a concrete recipe for software develounique, but having one has proved to be of gre

    plicate without permission.

    rademark of SoftFluent. All other company and pros of their respective holders.

    ent is summary in nature, subject to change, not cly and does not constitute a representation.

    clarify its rootriven software

    usiness issue:

    llenge,

    t,frequent withlegacy),

    se elements.

    d in softwareowledge about

    lly address the

    ur solution to

    Fluent Entities

    one will get by

    pment projectt value to our

    uct names are

    ontractual and

  • 8/8/2019 Soft Fluent Development White Paper

    3/22

    Table of Content

    I. The software development c

    II. Common approaches ............A. RAD Tools ----------------B. CASE Tools ---------------C. Off-shore -----------------

    III. Our field experience of failurA. Lack of skills -------------B. Lack of experience andC. Over-engineering and

    IV. A proposed model for the S

    V. SoftFluent Tenets ..................

    VI. CodeFluent Entities Agile MeA. CodeFluent Entities priB. Agility with CodeFluenC. Recommended steps f D. Recommended steps f

    VII. CodeFluent Entities benefits

    June 2010

    allenge .....................................................................

    ...................................................................................------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    s................................................................................--------------------------------------------------------------------geek attitude ----------------------------------------------rameworks ----------------------------------------------------

    ccess Equation ........................................................

    ...................................................................................

    hodology ..................................................................nciples ----------------------------------------------------------Entities --------------------------------------------------------r basic usage -------------------------------------------------r advanced usage -------------------------------------------

    hrough 12 scenarios .................................................

    ...................... 4

    ...................... 5------------------ 5------------------ 5------------------ 5

    ...................... 7------------------ 7------------------ 7------------------ 8

    ....................10

    ....................11

    ....................12---------------- 12---------------- 13---------------- 14---------------- 18

    ....................21

  • 8/8/2019 Soft Fluent Development White Paper

    4/22

    I. The software developme

    Being in charge of a business sof enviable job in the world. On the o

    under increasing constraints.As each business sector is makisophisticated functional requiretechnology and usability expectaticonsumers. The fact that packagedusers with significant investmentexpectations for their business user

    As a matter of fact, the developmto-use solutions for its users. Theinnovation is accelerating, with an i

    Completing the picture by the addand timeframes , everyone canbetween growing functional expect

    Coming to that point, you mightrecommend you do so if you can!continue the reading.

    June 2010

    nt challenge

    tware development team in the 2010 decade ise hand, user expectations keep inflating, whereas

    g progress, this unavoidably translates into ments . Meanwhile, business users have highe

    ons , consistently with what they experience at hosoftware they use in their personal life is producedoes not help much an IT team to argue about l

    s at work.

    nt team must digest technology innovation , andhallenge is getting harder and harder as the pace

    ncreasing complexity which becomes hardly huma

    itional pressure most IT teams face in terms of reuickly understand that developers are structur

    ations and evolving technology.

    be tempted to embrace another career path,But if this is too late for you as this is for us, w

    not the mostmeans are put

    re and morer and higher e as individualfor millions of

    owering those

    provide ready-of technology-manageable.

    uced budgetsally squeezed

    and we mightinvite you to

  • 8/8/2019 Soft Fluent Development White Paper

    5/22

    II. Common approaches

    Software development is a 50 yetoday. Let us comment on the diffemain limits.

    A. RAD Tools

    As developer time reveals costly,accelerating this process through v

    Some popular RAD tools, such as Papplications within quite shortdemonstrate results that look appe

    However, if the application reachetools is not able to deal with featuhas been designed for, but totally clit.

    The main issue for customers is trequirements for their applications

    B. CASE Tools

    Computer Aided Software Enginepopularized during the client/serve

    Tools such as Powerbuilder, Progrtime. These tools had invested a lo

    and encountered real success in tthese tools hid the complexityprogramming language at that time

    But those CASE tools lost popularitmodel with the emergence of thelevel languages such as Java or C#,gains that had been achieved so far

    Another reason is the fear of somtools usually provide their own pro

    In the end, the main issue for cu

    technology , as the footprint of thethere is no real efficient CASE toacceptable situation for customers.

    C. Off-shore

    Another approach that many compthe issue by lowering the cost of re

    June 2010

    r-old discipline, so one can wonder why solutionrent common approaches that have been tried and

    here is a long history of software engineering toorious means, especially the one known as code gen

    Soft Windev or 4D, have actually provided a goodimeframes. Different prototyping or RAD tool

    aling with a simple process.

    s a certain level of complexity, it is often found tre sophistication, as the tool is very efficient in dellosed to additional added-value if it has not been p

    hen to be stuck with not being able to answer. This is usually not an acceptable risk for customer

    ering tools have existed for long, and have ber wave of the 1990s.

    ss, Magic, NS-DK or Centura gained a lot of moin providing a programming model for client/serv

    rms of both market reach and productivity gainsf languages such as C++ which was a standa.

    , mostly because of the emergence of a totally neeb. As a consequence, numerous customers refopushed by platform software vendors, losing in tby these higher abstraction tools.

    customers of being locked in the vendor environramming language.

    stomers is the fact of not being able to keep u

    se offerings make them very slow to evolve. As aol to date for web applications. This, again, is

    anies have tried especially during the 2000s decadources through moving development off-shore.

    s do not existhighlight their

    ling focused ateration.

    way to delivers can quickly

    at this kind of ivering what ite-designed for

    the functional.

    n numerously

    entum at thatr applications,

    . In particular,rd lower-level

    programmingused on lower

    he process the

    ment, as these

    -to-date with

    matter of fact,sually not an

    e is to address

  • 8/8/2019 Soft Fluent Development White Paper

    6/22

    Though it might look economicallacross geographies, this solution

    In fact - when it works - it does nocosts on development resources, w

    Complete books could be (and hastory short, putting the team furthour challenging equation.

    On the contrary, experienced peapplication will encompass the coslast longer than the initial develop

    And what might look like savings iagility over the long term. Any expdesigned application is weak and e

    The main issue with off-shore is th

    the expense of industrialization an

    In our views, those 3 approaches btimeframe, scope and cost.

    All those three parameters need tmethodology to address the softwa

    June 2010

    appealing initially, with labor costs varying of ahas been far from delivering on its promises.

    fundamentally address the challenge, as it just lohile adding a lot of new difficulties and risks on the

    e been) written on off-shore development, but, tr away does not increase its know-how and is not

    ple in software development know that the tos incurred during the maintenance phase. This phent phase.

    n the short term often turns out to be additionalrienced developer knows that the evolution capabch minor evolution becomes more and more costly

    at it is often driven by cost reduction, with a proje

    d maintenance .

    ear intrinsic limits putting an excessive emphasis

    o be balanced appropriately, and this is why were development challenge.

    1 to 10 factor

    ers perceivedproject.

    o make a longthe answer to

    tal cost of anse will usually

    costs and lostility of a poorly.

    ct delivered at

    espectively on

    favor another

  • 8/8/2019 Soft Fluent Development White Paper

    7/22

    III. Our field experience of f

    Because we are experienced in sof .NET developments to analyze tscalability, its manageability in prod

    First of all, it is worth mentioning tthe amount of inefficiencies. We hquite common to conclude that at lthe appropriate libraries, most of t

    An interesting point to note is adevelopment teams, that we sum u

    A. Lack of skills

    The first reason for failure is the lac

    In some cases, even experienced dtechnical layers used to be propeadditional challenge of a great ope

    In this situation, we observe thatperimeter or in capacity. Since codtime, maintenance is getting hardeteam eventually meets a wall.

    In the mentioned failure case, this f

    B. Lack of experience and ge

    In other cases, we have observed ytechnologies. But they may lack enadopt a geek attitude, a behavior

    In those situations, developers havits beauty, like writing a complex ithe developer but does not bear ait may increase maintenance costs.

    These profiles often lose sight of thof interest, and they do not havemanageability and the necessity for

    Because of this lack of experience,applications they design perform p

    Applications developed this way aredesign in areas where performan

    This case of failure is in fact a lack o

    June 2010

    ilures

    ware development, we are often asked to lead aue quality level of an application, its evolutionuction.

    at we are amazed by the great proportion of projave often met failures in the several million dollarleast half of the produced code could have been ae time in the .NET framework itself!

    lso the existence of typical syndromes we havep hereunder.

    k of skills.

    evelopers may lack skills in new technology. As thly hidden in CASE tools, it is not the case any loness of environments, leading to many more pote

    he code usually works until the project gets me is produced manually, with heterogeneous stylesr and harder and the cost of incremental change in

    ailure is due to the first factor: skills .

    ek attitude

    oung developers that are rather clever and comforterprise experience and many of them have a strowhere people focus on each and every new piece o

    e a strong technology bias and concentrate only onstruction within a single line of code, which satisy intrinsic value. In fact, it even holds potential ne

    e functional objectives, because users are not theithe proper level of experience to understand thcode instrumentation.

    they commonly underestimate some challenges of orly with high volumes of data or numerous users.

    e usually hard to maintain and require targetedce is needed.

    f a proven method .

    dit missions oncapability, its

    ct failures andrange and it isoided by using

    observed for

    complexity of nger, with thetial pitfalls.

    re complex inchanging overflates until the

    able with newg tendency tof technology.

    the code andfies the ego of gative value as

    primary pointchallenges of

    scalability and

    ptimization or

  • 8/8/2019 Soft Fluent Development White Paper

    8/22

    C. Over-engineering and fra

    The last case often leads to the mon large accounts.

    In this third syndrome, a genius so-

    solution for the development teabecause he often believes he willstarts writing - potentially with aoptimal recipe for the project but t

    Setting the appropriate abstractionthe schema hereunder:

    The Where to stop? on the left iswrong, even though the idea of buil

    Experience shows that:

    Building a flexible framewtechnology is hard and risk

    The risk of simply failingtunnel effect during frame

    In most favorable cases, thwill not resist the next watechnology, and another ris

    In almost all cases, the fra

    June 2010

    eworks

    st costly situations. And in fact, it is the most obs

    called architect (or several) has been hired to inven

    . Usually, this architect is smart, and this is parbe able to invent all relevant solutions for the prteam of developers - a framework that is suppoat often goes too far.

    level for a project requires placing the cursor at th

    a critical question, as in our experience, this is whding a framework could look great.

    ork that can face all needed situations with ne,ith a framework that does not work is huge, witork development, a phase that can last forever,

    e framework will provide value for a certain technve, with the necessity of big reinvestment to keek of failure,ework cannot be maintained by someone else tha

    rved situation

    t a customized

    t of the issue,oject. He thensed to be the

    right place on

    ere things turn

    and evolving

    h potentially a

    logy wave andp up with new

    the architect.

  • 8/8/2019 Soft Fluent Development White Paper

    9/22

    Though not always admitted, this si

    If sometimes CASE Tools were percin syndrome described here is mperceived as much more worrisom

    This case of failure is an over-invwhose complexity proves to always

    June 2010

    tuation leads to significant economic failures.

    eived as a problem because of vendor lock-in, theuch worse. The risk of depending on an individthan depending on any third-party.

    stment in tooling , a factor which is quite hard tbe under-estimated.

    architect lock-ual should be

    address, and

  • 8/8/2019 Soft Fluent Development White Paper

    10/22

    IV. A proposed model for th

    Many studies about software ddevelopment projects. In a recent iof software development projects a

    In fact, we could put the success prsimple formula such as:

    If the global Know-how is abovesimple to understand.

    Additionally, introducing the elemcould consider that:

    Noting that each component is egrowing faster and faster by a cubi

    Simplified this way, it gets crystal can approach that allows Know-ho

    As a matter of fact, without a meteams to succeed over the long-ter

    This is consistent with our observacosts are often exploding and themaintenance burden on developm

    So is there any hope to keep up wit

    Let us consider the know-how as bto us to be the major success factor

    Our equation becomes sustainablethe method and the tools .

    This is basically what we proposemodel-driven method, supportedDevelopment team responsibility isapproach, as part of the complexity

    June 2010

    Success Equation

    evelopment confirm a high degree of failureternational study quoted by AFDEL, it is recognizere considered as successes, and only 13% are deliv

    obability of a project into an equation that we woul

    %

    the Ambition, the project will be successful. This

    nts mentioned above about expectations in the in

    olving in an unfavorable direction, this means tc factor !

    lear that software development projects cannot s to grow fast enough to keep up with the ambitio

    thodological shift, there is not even a chance fom .

    ions in the field, where in reality although somevolume of legacy obsolete code keeps growing,nt teams.

    h the ambition or is this a lost battle?

    eing the combination of 3 key components, the ons for development projects:

    , at the imperative condition of perpetually impro

    ith our software development approach, basedby a tool that improves the development

    then to focus on maintaining the skills, a simplifiedof underlying technologies is hidden.

    s in softwarethat only 30%red on time.

    ld simplify by a

    sounds pretty

    troduction, we

    he ambition is

    cceed withoutn.

    development

    times hidden -increasing the

    es that appear

    ving the skills,

    on an iterativeprocess itself.process in our

  • 8/8/2019 Soft Fluent Development White Paper

    11/22

    V. SoftFluent Tenets

    Because at SoftFluent, we have spexperience to define a new recipe t

    Our development approach is builcouple of structural differences tar

    The way we address the key historithe heart of our model-driven deve

    1. Business entities have lonthat will survive technoloapplication.

    2. Business rules and processcontinuous maintenance sc

    3. Efficient coupling of data,must be guaranteed by des

    4. Coding patterns need tomaintenance can be perfor

    1 SoftFluent founders are former Micro

    June 2010

    nt many years on development projects 1, we havehat will ensure project success, even with evolving

    t on the success of past recipes, such as CASE toeted at addressing the limitations observed with th

    al drawbacks of CASE tools are formalized into ourlopment methodology:

    er lifecycles than technology and should be defiy shifts and allow supporting them without ree

    changes need to occur through short cycles that caheme.model, and presentation layers including customiign .e standardized and their implementation autom

    ed by standardized skills .

    soft employees with a long track record in software deve

    leveraged ourechnology.

    ols, but with aose tools.

    keys tenets, at

    ed in formatsngineering the

    n fit into a lean

    ed code parts

    ted to ensure

    lopment.

  • 8/8/2019 Soft Fluent Development White Paper

    12/22

    VI. CodeFluent Entities Agil

    Now that we have introduced our twill explain in this chapter how one

    A. CodeFluent Entities princiCodeFluent Entities builds on SoftFl

    Design of functional eleme Development of customiz

    template customization for

    As described in the schema hereun

    Beyond the process itself, which isof CodeFluent Entities automated p

    Model analysis and inferpowerful as this is what allthe combination of comple

    Generation : the producerstotal consistency in the wa

    Execution : the runtime librcomponents to make the d

    June 2010

    Methodology

    enets and the key drivers that we have built our off works with CodeFluent Entities to design and deliv

    les

    uent tenets by proposing to concentrate the effort

    nts in a manner that is mostly independent from ted code , mainly in the business layer for businesgenerated UIs or reports.

    er, all other phases of the application life cycle are

    concentrating the effort into two focused areas, thases is embedded at 3 different levels:

    ence : though not visible, this automated phasows the extremely advanced generation process t

    behaviors,generate ready-to-use components on all layersthose components integrate with each other,

    aries provide advanced services that are leveragevelopment process more productive for the devel

    ering upon, wer software.

    on two areas:

    chnology,s code and in

    automated:

    e added-value

    is extremelyat follows and

    chosen, with a

    by generatedper.

  • 8/8/2019 Soft Fluent Development White Paper

    13/22

    B. Agility with CodeFluent En

    CodeFluent Entities is not strictlyleverage the product using a classicbeen delivered with CodeFluentspecification phase.

    However, CodeFluent Entities is pamethodology. Agile methodologierequires delivering software thatthe scope is extended until the soproduction or released to the mark

    CodeFluent Entities proposes sevconjunction with an agile methodol

    Functional elements desigcomponents ,

    Specifications do not needregenerated as necessary

    Technical target architectproducers and layer-specifi

    By design, CodeFluent Entities offemodeling and development integra

    At many customers, business modfirst version of model thanks to the

    June 2010

    tities

    ependent on following an agile methodology, asal V-Cycle methodology. As a matter of fact, severaEntities using traditional approaches based on

    rticularly efficient in supporting projects driven ths are based on the principle of iterative develorks at the end of each iteration. One iteration aftware presented to users is satisfactory enought.

    ral attributes that prove to be very interestingogy:

    ned into CodeFluent Entities immediately gener

    to be defined upfront because the model can bithout losing any customized code,res can be chosen later in the cycle by simply

    c customized code.

    rs an iterative process for development because of ed process.

    eling is started directly with users and quickly traopportunity of showing them generated user interf

    one can easilyl projects havea preliminary

    rough an agilepment, whichfter the other,to be put into

    when used in

    te executable

    enriched and

    changing the

    its continuous

    nsforms into aaces.

  • 8/8/2019 Soft Fluent Development White Paper

    14/22

    C. Recommended steps for b

    In this chapter, we describe the ususing CodeFluent Entities.

    The first three steps are focused o

    can be quickly presented to users f

    The second series of steps is morework, and which might be more de

    Important note: As explained in thmethodologies, which means thoslevel. Instead, these steps are uconcentrating mostly on the Mode

    June 2010

    sic usage

    al steps that we recommend for delivering best cla

    n working at model level, allowing generation of p

    r validation.

    focused on developing custom code that will requiendent on target platform.

    previous paragraph, CodeFluent Entities is very f e steps are not intended to be sequential at thesually sequential within an iteration, with theling steps.

    ss applications

    rototypes that

    re a little more

    iendly to agileoverall projectfirst iterations

  • 8/8/2019 Soft Fluent Development White Paper

    15/22

    1. Designing a first version

    The first step with CodeFluent EntiIn this initial version, most entitiidentified.

    This step formalizes the key businmajor structural elements for yoinheritance, one can describe any k

    It is also worth noting that even duseful as it is often needed to have

    Usually, these elements are very st

    2. Generating components

    Once business entities have beenspecific architecture relevant to thserver or even cloud.

    Thanks to the CodeFluent Entitiesfirst executable version of the appl

    This version can then be presented

    Additionally, as CodeFluent Entitiepossible to use these early prototy

    It is quite often that in customer sirelevant target architecture, espeversion.

    Doing pure web is the natural trparticular the investment that is neapplication. So going for a web vera failure of acceptance test by user

    When fully investigating the expeccombine :

    A full web version broadldeployment challenges,

    A smart client application f data and manipulate them

    A mobile application with a

    This is why we see very high valuemodel-driven approach.

    Note: Similarly, a storage system ca

    June 2010

    of model

    t ies consists in building an initial version of the fus and major relevant properties , including enu

    ss entities relevant for your domain, their relatior application. Using a classical Entity-Relations

    ind of business with simple concepts.

    ta instances can be defined in the model. This prsome specific records in the database.

    ble over periods of time that can last more than a

    towards a first architecture

    odeled in CodeFluent Entities, the architect usualbusiness: web, smart client, Office, SharePoint, tra

    odel-Driven approach, the architect can immediaication that will implement the functional model.

    to users so as to validate the functional elements

    s allows maximum flexibility with target architectes to guide the architecture choice (or choices).

    tuations, we see a relatively important challenge iially when those applications are intended to re

    end, but usually the consequences are not fullyeded to reach the same level of ergonomics than aion without measuring the readiness of users, ma, which is the last thing a development team needs

    tations of our customers, we often find that opti

    y proposed to occasional users with the merit

    or advanced users who need to work every day onith maximum flexibility and visual tools,

    specific reduced feature set within identified scena

    in being able to show results quickly with the Cod

    n be chosen at this stage and possibly changed late

    ctional model.erations, are

    nships and theip model and

    ves to be very

    decade.

    ly chooses theditional client-

    ely generate a

    f the model.

    ures, it is also

    n choosing theplace a legacy

    measured, inreal Windowstranslate into

    .

    al target may

    of minimizing

    some business

    rios.

    Fluent Entities

    r in the cycle.

  • 8/8/2019 Soft Fluent Development White Paper

    16/22

    3. Defining rules and custo

    Once the major elements of the apcan be used to define the major rul

    This mainly includes the ones th

    advanced set of options to describe Existence rules, Basic format rules, More advanced format rule Integrity rules with options Computed properties.

    At the end of this step, the busiincludes an important part of its co

    Because the format used for storinresistant to future technology tren

    4. Customizing data and le

    Beyond the modeling of methods,data-access methods through:

    Simple and intuitive CodeFl Custom views, Possibility to use native sto

    Optionally, it is also possible to leve

    Map naming to preserve ex Connect to legacy compon

    5. Customizing business co

    CodeFluent Entities embeds numeallows a significant level of definitio

    Still, the philosophy of the productto introduce over-complicated mowhy CodeFluent Entities is designethe different layers. In particular,

    custom rules or behaviors in the bSo this key step in implementing athe generated business object mo

    June 2010

    m methods

    plication have been validated by users, the seconds and custom methods of the model.

    t can be declaratively designed. CodeFluent Ent

    :

    s such as email for example,like Cascading updates or delete,

    ess model , formalized as a CodeFluent Entitiese value , while being totally independent from tech

    g this model is plain and simple XML, this makes its.

    acy integration

    odeFluent Entities proposes advanced mechanism

    uent Query Language,

    red procedure language where necessary.

    rage particular options to:

    isting legacy database schemas,nts instead of the generated database.

    de

    rous modeling concepts that simplify software den for custom methods and rules.

    is that it is not possible (or should we say economeling concepts to deal with the most advanced usd to allow the classical implementation of custodeFluent Entities based applications usually con

    siness object model, the central layer, to ensurepplications consists in developing the partial classel , in order to ensure the fulfillment of business re

    agile iteration

    ities offers an

    odel, alreadynology.

    very open and

    s to customize

    elopment and

    ically relevant)e cases. This ismized code incentrate many

    onsistency.s to completeuirements.

  • 8/8/2019 Soft Fluent Development White Paper

    17/22

    6. Customizing UI and repo

    Though CodeFluent Entities comesinterfaces that can be used to maniscreens or pages that optimize the

    CodeFluent Entities facilitates thispluggable to user interface contstandard controls delivered by MicInfragistics, DevExpress, Telerik or

    Designing an optimal user interf flexibility , and this is why Codcomponents, while leveraging a sethe different supported architectur

    Though customized user interfacsignificant portion of the screens"advanced usage scenarios", we wiusing templates.

    CodeFluent Entities comes with anfile based on the principle of mixinServer Pages used to work before .this element is comparable to man

    But it is even more powerful becaumodel available as an API, allowingin the graphical designer.

    Additionally, the CodeFluent Entitiescape sequences, allowing an easperformance.

    The Microsoft Office list producer Microsoft Excel and Microsoft Acce

    June 2010

    rts

    with standard producers that directly produce opulate data, business applications usually require cusiness processes.

    process by building a business layer and objectsrols available on the market. This approach wrosoft in the platform as well as all classical third-omponentArt.

    ce for frequently used business processes requeFluent Entities developers usually assemblet of useful runtime services provided by CodeFlues (Web, rich-client, Silverlight, SharePoint).

    s are generally needed, in many projects weonly require standard behavior and structure.

    ll describe how one can automate the creation of

    ntegrated template engine that allows the producthe text output with instructions that are execu

    NET). Though being a relatively small part of Codecode generators that actually provide only this me

    se the template engine is aware of the CodeFluentan easy leverage of all the elements modeled by

    es template engine is RTF-friendly , as it deals corstrategy for Word reporting in your projects with

    also provides a solution for integrated user interfass.

    erational userustom-tailored

    that are easilyrks well with

    parties such as

    ires maximumhe generatednt Entities for

    see, usually ahis is why, in

    user interfaces

    ion of any textted (like ActiveFluent Entities,chanism.

    Entities objectthe developer

    rectly with thea high level of

    ces in classical

  • 8/8/2019 Soft Fluent Development White Paper

    18/22

    D. Recommended steps for a

    Though easy to start with, CodeFludemanding development projectsindustrialize the production of code

    Though we recommend to implemwith the model-driven approach aachieved through advanced usage.

    Most advanced usage scenarios incl

    Multi-architecture scenario Dynamic modeling and patt User Interface automated g

    June 2010

    vanced usage

    ent Entities actually includes very advanced featur. As it is a complete software factory, it offerat an unprecedented level.

    nt the first project through a basic usage scenariod the product, on large projects, a huge leverag

    ude:

    s,erns,eneration.

    s for the mosts solutions to

    to get familiareffect can be

  • 8/8/2019 Soft Fluent Development White Paper

    19/22

    1. Defining multi-architect

    Today, applications are usually desweb or rich web. Sometimes, thermobility. It is then often seen as an

    In our view of software developmthrough our model-driven approaarchitectures, at least for part of th

    For example, one could imagine for

    Specialized business userflexibility,

    All users in the enterprise Some scenarios will be dire

    be deployed.

    This kind of scenarios will be moversions if we anticipate a bit the fu

    Using CodeFluent Entities, adding t

    Adding new producers to g Completing only the code

    2. Implementing dynamic

    As explained in chapter 3, setting tThe good news with CodeFluent Eof powerful concepts at a later stag

    The product being completely dtemplate-based approach explaineleverage effect: dynamic modeling .

    Applying the template principlespatterns , an industrial way of adlocalization, tracking, text-based se

    Whereas purely template-based gto templates of such a level of spaghetti code effect in Active SEntities for the production of t

    hereunder.

    June 2010

    re target

    igned for a specific architecture, such as client-serare specific extensions to support a particular scther version of the application.

    ent, and also because it is made possible at a rch, future successful applications may often inm.

    an HR ERP that:

    will use a smart-client to manipulate data

    ill access their data through a pure web-based self ctly integrated on mobile devices where the releva

    e and more frequent, as well as their combinatiture.

    ose new architecture scenarios is just a matter of:

    enerate relevant components,arts concerned, especially customized UI .

    odeling through patterns

    e appropriate abstraction level requires to find thtities is that you can start very simple while gettie.

    signed as an API , giving developers maximumd earlier can be applied to the model itself, bring

    to the model itself, CodeFluent Entities allowsing behaviors to your entities. This includes behrch or any other custom need.

    nerators are unable to combine these behaviorsomplexity that they are not maintainable (wellerver Pages), the different approach proposede business object model makes it industrial, a

    er, rich client,nario, such as

    asonable costlude different

    ith maximum

    -service portal,nt features will

    on with cloud

    right balance.g the benefits

    flexibility, theing a powerful

    you to defineviors such as:

    ithout leadingknown as theby CodeFluents represented

  • 8/8/2019 Soft Fluent Development White Paper

    20/22

    Basic usage of the product alrea(which is not the case of manual ausage with dynamic modeling prowork with large models that compr

    3. Defining UI templates fo

    In many projects we see, thougsignificant portion of the screenstrue for back-office user interfaces

    In that case, it is relevant to invest iUI and the common behaviors.interfaces as the one delivered in t

    This way, the development and ma

    For projects dealing with hundredwhole application cycle.

    Thanks to the great flexibility of Cfor all user interfaces, using advatemplates. However, for complex sboth approaches, the architect bein

    June 2010

    y provides an economically viable solution overnd framework mode that we observe on the fieldide an even greater ROI for large projects that ase hundreds of entities.

    r automated UI generation

    customized user interfaces are generally neenly require standard behavior and structure. This

    or management of reference date.

    n a user interface template that will factorize the shis template will serve as a basis for the genee product.

    intenance costs will not be correlated to the num

    s of entities, this can provide major savings, espe

    deFluent Entities architecture, this approach cannced product features, custom renderers and creens, it might be harder to maintain and this is wg able to balance the two at the optimal level for t

    the long-termand advanced

    re intended to

    ed, usually ais particularly

    tructure of theration of user

    ber of entities .

    cially over the

    lso be appliedstom code in

    hy we proposee project.

  • 8/8/2019 Soft Fluent Development White Paper

    21/22

    VII. CodeFluent Entities ben

    Now that you understand why weusing CodeFluent Entities, let us givbenefit from it.

    Scenario Without Co

    Productmanagement orusers haveforgotten animportant propertyin an entity

    You will needatabase scprocedures,business, seinterface la

    Your application hasbecome successful.But the issue is thatyou now need tosupport 10,000concurrent userswith billions of records

    You will neeadvanced pmechanismscreens andto propagatacross the l

    Legal departmentnow requires you totrack all datachanges made bythe application

    You will neespecific proplaces in thwhile evolvischema to sdata.

    Users want to enterdata in a list modedirectly inside Excel

    You will neespecific impintegrate M

    All of your objectsnow need to respectcertain standardssuch as propertynames starting bythe entity name

    You will neeelements ma tool to autprocess andthat your w100% right.

    Your application hasbeen sold abroad,you need to support10 languages

    You will neerespect of internationand find wadata in the

    June 2010

    fits through 12 scenarios

    build CodeFluent Entities and how you can delive some classical example scenarios that will illustra

    eFluent Entities With CodeFluent Entities

    d to change theema, the storedmodify the

    rvices and userers.

    You just add the property tothe model and youregenerate. If your userinterface is custom, you simplyadd the property.

    d to implementging and sortingon relevant

    figure out howe the approachyers.

    Leveraging built-in paging andsorting mechanisms of CodeFluent Entities, your workis limited to configuring themappropriately on relevantparts of the application.

    d to hookessing at variousapplication

    ng the databaseore the relevant

    You just need to model thetracking data you need andimplement a pattern that willbe hooked in the businesslayer for all components onceand for all.

    d to develop aort process toicrosoft Excel.

    Using the Excel producer, youcan immediately generateupdateable lists that includechecking business rules.

    d to rename allanually, or buildomate thetest it. It is likelyrk will not be

    You can directly use namingconventions proposed byCodeFluent Entities and youwill get 100% compliance bydesign.

    d to check the

    lization ruless to localizingatabase.

    Using Unicode types,messages for resources andthe CodeFluent Entitiesembedded localizationpattern, you will have asolution for allinternationalizationrequirements.

    er applicationse how you will

    Keywords

    Model-DrivenConsistencyLayers

    ScalabilityBest practicesConsistency

    PatternsDynamicmodelingConsistency

    OfficeproducerErgonomics

    ConsistencyConventionQuality

    LocalizationBest practicesPatterns

  • 8/8/2019 Soft Fluent Development White Paper

    22/22

    As part of apartnership withMicrosoft you nowneed to supportSilverlight

    You will neeyour applicaarchitecturepoints suchcalls.

    The application nowneeds to bedeployed onanother databasesystem

    You will neewhat part ocode is speccurrent datreengineer tand potentimechanism(if needed).

    Users want todeliver letters to

    customers with dataextracted from theapplications

    You will neeMicrosoft

    a specific codeliver this

    A new policychanges the rulechecking made on aproperty

    You will neerule wherevpossibly botand the ser

    Your last applicationhas been sosuccessful that youhave been asked toreengineer the 20year-old applicationto provide the sameergonomicsstandard

    You will neeapplicationthough thebuilt over arepresentswork.

    Investors haverequired yourapplication tosupport a cloudarchitecture withinthe next weeks

    You will neethe differenavailable cloand possibldifferent veapplication.

    June 2010

    d to reengineertion for this new, including hardas asynchronous

    Using CodeFluent Entitiessmart client object model,your work will be limited toconfiguring a new producerand adjusting UI elements.

    d to figure outthe data access

    ific to yourbase system,hose elementslly find a

    to support both

    CodeFluent Entities have beendesigned in a way to allowdifferent databasedeployment scenarios, whileoptimizing coding for eachRDBMS system. Only rawmethods that can be used foroptimizing specific processingneed to be revisited.

    d to automateord or integrate

    mponent toeature.

    Using the Template producerwith RTF templates, you have

    an immediate solution withcustomers being able to editletter templates in MicrosoftWord.

    d to change thiser applicable,h on the clienter.

    You add the constraint in themodel and regenerate. It ispossible to have rules checkedboth on client and server forbetter user experience.

    d to redesign therom scratch,

    odel has beendecade. This

    huge amount of

    Using CodeFluent Entitiesimporter on the databaseused for the existingapplication, you immediatelyhave a first model to startwith, that you can generate toquickly provide modernizedscreens for your application.You can reengineer theapplication progressively, byimproving the functionalmodel and working on thenew target architecture.

    d to figure outcomponents of

    ud architecturewrite a whollysion of your

    Using CodeFluent Entities, youwill be able to generate themodel towards futureplatforms including cloudwithout writing a differentversion of the application.

    ArchitectureSilverlightInnovation

    Model-DrivenArchitectureOracle/SQL

    RTF producerTemplates

    Model-DrivenRuleArchitecture

    LegacyImporterModernization

    InnovationCloudArchitecture