wecreate

18
Y OU C REATE C O L L A B O R A T I V E W E B A P P L I C A T I O N D E V E L O M E N T SUMMARY YouCreate is a Collaborative Software Development Environment for the Web Application Market. The production of a web site requires more than just artistic input and the use of pre-defined drag-and-drop functions—it demands system-strategic development. The need to develop functionality on the server side is pushing website building into the area of high-level software development. Required competencies for web site building are shifting—from aesthetics to functionality, from static to dynamic content. The focus is less on client-side issues, and more on server-side demands. Thus, new rules and financial realities are involved: whereas static web pages are made by designers, the largest portion of man hours is spent by developers. Further, web applications are built by a team, each member possessing different competencies. Additionally, once a team is involved, one needs a project manager and/or team leader to manage all competencies toward project success. This requires a communication overhead which, in turn, makes the use of common language to build and view applications essential. YouCreate implements a platform that unites all people involved in this process in a manner whereby all project participants can understand all aspects of the project: the project manager has to be able to see how the project evolves as a whole; the graphic designers must have an input on the look and feel of user interfaces; the developer writes needed code, and testers and documenters each have their specific role. Our mission is to become the market leader in this upcoming and lucrative segment. The underlying idea is to structure a market that has never received the attention and care it deserves. Requirements of a human interface to technology A language that can be understood by all project parties. A user hierarchy that reflects their authority and access rights. A visualization layer that enable everyone to view all, or parts of the project. A possibility to involve the client on a continuous basis. A communication bridge for everyone. Code is too important to be viewed and understood only by its creator. Y OU C REATE P AGE 1

Upload: jos-de-roeck

Post on 16-Jul-2015

45 views

Category:

Business


0 download

TRANSCRIPT

Page 1: Wecreate

Y O U C R E A T E

C O L L A B O R A T I V E W E B A P P L I C A T I O N D E V E L O M E N T

SUMMARY

YouCreate is a Collaborative Software Development Environment for the Web Application Market.

The production of a web site requires more than just artistic input and the use of pre-defined drag-and-drop functions—it demands system-strategic development.

The need to develop functionality on the server side is pushing website building into the area of high-level software development. Required competencies for web site building are shifting—from aesthetics to functionality, from static to dynamic content. The focus is less on client-side issues, and more on server-side demands.

Thus, new rules and financial realities are involved: whereas static web pages are made by designers, the largest portion of man hours is spent by developers. Further, web applications are built by a team, each member possessing different competencies. Additionally, once a team is involved, one needs a project manager and/or team leader to manage all competencies toward project success. This requires a communication overhead which, in turn, makes the use of common language to build and view applications essential.

YouCreate implements a platform that unites all people involved in this process in a manner whereby all project participants can understand all aspects of the project: the project manager has to be able to see how the project evolves as a whole; the graphic designers must have an input on the look and feel of user interfaces; the developer writes needed code, and testers and documenters each have their specific role.

Our mission is to become the market leader in this upcoming and lucrative segment. The underlying idea is to structure a market that has never received the attention and care it deserves.

Requirements of a human interface to technology

A language that can be understood by all project parties. A user hierarchy that reflects their authority and access rights. A visualization layer that enable everyone to view all, or parts of the project. A possibility to involve the client on a continuous basis. A communication bridge for everyone.

Code is too important to be viewed and understood only by its creator.

Y O U C R E A T E P A G E 1

Page 2: Wecreate

Y O U C R E A T E

C O L L A B O R A T I V E W E B A P P L I C A T I O N D E V E L O M E N T

The Demand

The demand for web-based applications is being fuelled by the adoption of new portable devices and users who are eschewing their traditional desktops for the benefits of work anywhere portability. However, demands for new web-based applications are outstripping the supply - creating the question – Can today’s programmers find alternative development environments to build applications that are mobile and multi-platform?

The answer to that question lies with rapid application development (RAD) tools, which bring new tools and processes to the development table that change the fundamentals of building applications. RAD tools can replace the laborious manual coding processes with automated design and coding. That automation delivers a number of benefits, including expediting application development to improving the agility of change management. That agility will prove to be important for those developers looking to build web applications and desktop applications at the same time, as part of a transformation from legacy applications. From a coder’s perspective, write once, run anywhere is going to be a critical capability.

Automation further speeds application development and delivery by eliminating archaic waterfall methodologies, which are dependent on the skills of isolated individuals. What’s more, RAD tools embrace the Spiral method of application development, which unlike the Waterfall method, emphasize an iterative approach and can involve the end user in the development process.

Spiral development allows a project to be broken up into smaller pieces, which can be developed concurrently and prototyped in manageable pieces. Each part of the solution can then be tested independently and then wrapped together to complete the project. The Spiral development methodology goes hand in hand with RAD to reduce the time needed to develop applications, while increasing flexibility.

While the market penetration of RAD tools has grown significantly over the last few years, the biggest catalyst for growth likely comes from changes in how applications are delivered to end users. Recently, there has been a significant shift from desktop applications to web applications, which has created a new subset of tools and development methodologies. Those newer tools allow developers to focus on delivering applications via the web using AJAX (asynchronous JavaScript and XML). AJAX is a collection of technologies that allow developers to web-enable applications and run those applications in a web browser.

For developers, choosing a development suite that incorporates RAD capabilities is the first step for moving applications to the web in a cost effective fashion. A suitable RAD environment should incorporate methodologies for creating web-enabled applications, interaction with databases, and should feature an Integrated Development Environment (IDE).

Y O U C R E A T E P A G E 2

Page 3: Wecreate

Y O U C R E A T E

C O L L A B O R A T I V E W E B A P P L I C A T I O N D E V E L O M E N T

The product

Development Server

YouCreate adds 1 unique component to the traditional software stack: the Development Server

(DevServer). It can be compared with a database server that accepts specific commands via a

communication layer from users, and replies with actions.

Instead of working with databases and tables, the DevServer works with projects, flows and more

granulated elements that make up an application.

The application layer visualises all elements stored in the repository.

Project :

A Repository that holds all the elements of a Web Application. Participants of the project are

defined here, and their respective access rights to elements of the project are set.

Y O U C R E A T E P A G E 3

Development ServerApplication Server

Segment

Segment

Flow

Repository

Project

Flow

UserUser

User

Code Generator

Application

Page 4: Wecreate

Y O U C R E A T E

C O L L A B O R A T I V E W E B A P P L I C A T I O N D E V E L O M E N T

Flow:A flow is a distinct set of methods, resources and user interface elements forming one logical

unit. It can be executed and deployed independently,

Segment:Within a flowchart, each segment holds similar behaviour. Segmentation allows fast and

consistent flowchart changes by multiple users working on the same project or flow.

User:

Each user can log into the server using a standard web browser, without additional installations. The

development server allows users to add or change elements of the project. It also keeps all elements

consistent--an aspect which is difficult to achieve in a text-based (source code) environment. A brief

example illustrates the principle:

Developer (user 1) works on code to verify a user name and a password. The variables involved (2 string variables) are used to check against the content of a database.

Designer (user 2) creates a user interface component that uses the above-mentioned variables. He is allowed to change the appearance of the components, but the DevSever will not allow him to remove any of the variables.

This illustrates also the MVC (Model-View-Controller) approach

Repository:

Unlike other IDEs the semantics of the repository elements can be checked at any moment in the

development and design process, which speeds up the development process, and guarantees that the

code generators deliver error-free compilation results.

At any moment in the project process, any user can execute the application for test purposes. The test

environment has the same non-technical approach: it represents debugging on a high level (no java

code involved). Here, the functionality AND the look-and-feel can be tested. Traditional debugging

features are implemented such as breakpoints, stepping, and variable viewing.

Code Generators:

The use of different code generators makes it possible to create applications for different platforms. Until

now, web applications have been the most popular, but the momentum of new devices, (such as iPads,

Chrome) creates demand for other platforms.

For JEE :

Dependent of its definition, flowchart(s) are translated into Java Beans, or Javascript. The user interface components are translated into JSF (Java Server Faces, XHTML) with AJAX support. The Java source

Y O U C R E A T E P A G E 4

Page 5: Wecreate

Y O U C R E A T E

C O L L A B O R A T I V E W E B A P P L I C A T I O N D E V E L O M E N T

is automatically compiled into a set of classes, and together with other resources (like images) compressed into a file (technically a WAR file) that can be deployed on the target platform.

For C :

Target : Windows This generator translates flowcharts for the Windows OS.

Target : MAC & iXXX : Objective-C & IOS Mac development (in preparation) This generator translates flowcharts for all Apple devices.

Y O U C R E A T E P A G E 5

Page 6: Wecreate

Y O U C R E A T E

C O L L A B O R A T I V E W E B A P P L I C A T I O N D E V E L O M E N T

Infrastructure

DevServer requires a 4-tier network :

Web server Application Server Development Server Database server

The Cloud

This complex stack of system layers needs a highly technical knowledge to install and maintain, lots of

disk space, a high-bandwidth, secured environment, high availability--elements which are available at

datacenters of mid-to-large corporations, or recently also available as services in the CLOUD.

Companies like Amazon, Oracle, IBM and Apple offer these already-installed components on a pay-as–

you-use basis. Adding the DevServer to this infrastructure is easy, and the resulting applications can

also be deployed in the same environment (although this is technically not necessary)

Software As A Service(SaaS)

DevServer is one of the few system components (or maybe the only one) that can offer a Development

Environment as a service. This offers great commercial advantages. Clients can start simply by buying a

user name/login for each of the team members, and will only be charged for the period for which they

use the system (or other conditions to be defined). In turn, they can deploy the developed application of

their clients in the same, or another Cloud, eliminating the need for them to service an entire

environment. They can concentrate on the application and its performance.

What makes YouCreate Unique

1. Flowcharting as Code

CODE is no longer a four letter word

Flowcharts are used to define the methods and interfaces of a project. Working with such intense visual tools has many advantages: comprehensive code, a shielding away from all technicalities of the target platform. It dramatically reduces development time, makes maintenance more efficient and gives more and accurate data for support people.

YouCreate aims at a growing community of web site builders who need to offer more functionality, performance and rich interfaces for their clients, without the in-depth technical knowledge of the target platform. The built-in WYSIWYG approach deals with semantics and shows instantly the program logic. It allows the user to drill down from general program structure to specific functionality, even to the level of source code.

Y O U C R E A T E P A G E 6

Page 7: Wecreate

Y O U C R E A T E

C O L L A B O R A T I V E W E B A P P L I C A T I O N D E V E L O M E N T

2. Collaborative.

A platform that guards the integrity of all components of a project in such a way that it allows a group of people to work simultaneously on the same elements of the same project. This effects continuous, real-time collaboration.

3, Code generation

The smart code generators translate the elements of a project into various types of interrelated source code, to be treated for the specific environment. “Smart” here, stands for ‘with no generated overhead in a readable form for developers.’

Y O U C R E A T E P A G E 7

Page 8: Wecreate

Y O U C R E A T E

C O L L A B O R A T I V E W E B A P P L I C A T I O N D E V E L O M E N T

Market

The market YouCreate aims at is the development of database-driven web applications. The

development of such sites requires substantially more time and investment, and another breed of

people than conventional web sites. There is a need to cope with the increasing level of technicality, and

the ability to prototype fast.

Since we advocate cooperative development, and our product can be reached everywhere by browser

interface, our market is not geographically limited. YouCreate is complementary to all tools and facilities

that people use to create websites, but not all web designers can start programming using our system.

In order to be able to use the coding aspect, one should have at least a level of being able to write a

macro in excel so to speak. The high end of developers can also be served, since one can import

existing C or JAVA code, to be used by more junior types of developers. Designers can use the system

to paint user interfaces, or produce graphics that can be imported into the repository.

It is difficult to asses the total size of the market. The scope of this venture at this moment in time is to

reach a minimal number of people and organisations. Once a critical mass is reached, the operation

should take a different form in order to reach our goal : to be the market leader of this specific segment.

During the development of the DevServer, a new and lucrative segment popped up: server development

for specific applications, which can be used as backend processing. Apps have their own protocol to

communicate with the server, and this needs to be programmed as a protocol on the server side. It also

needs a much higher skill level than the average programmer possesses. Also, the possibility to deliver

Server protocols Support for different environments in a different language is unprecedented with this

system: one can generate a version in Java, or in C language with the same functionality. It is

implemented in such a manner that both versions can communicate the same way with web

applications, iPad , iPhone or Android Apps, and HTML5 Websocket scripts. Result? Write once, deploy

everywhere.

Y O U C R E A T E P A G E 8

Page 9: Wecreate

Y O U C R E A T E

C O L L A B O R A T I V E W E B A P P L I C A T I O N D E V E L O M E N T

How to achieve our goals.

First, we must obtain technical credibility. This can only be achieved if the product set:

Is technically stable. Fulfills the promise of productivity gain.

The product is available in beta test. All components work as described, the heavy lifting is done. But to launch

it, it needs 3+3 man/months of additional development and design (1mm). This means an additional minimal

investment of $350,000.

We must have an aggressive sales strategy:

For Single User

30 days free trial. Good documentation and support. Relevant sample programs. Large set of internal / external libraries.

For Project Support Free prototyping for the first project clients.

Take opportunities

Build ourselves applications for paying customers using our own platform. The two projects are already defined, one of them has the required database on line. Amazon and Google offer extensive support for development platforms.

Create a networkIt is possible to extend the internal communication elements of YouCreate in such a way that it can

reach all people using YouCreate. People can pass information, ideas and even libraries. For certain

individuals or groups, it becomes possible to advertise their skills and achievements to other members

of the ‘community’. Additional support to link with the known social networks is easy to achieve and can

have a large impact on the market penetration.

Y O U C R E A T E P A G E 9

Page 10: Wecreate

Y O U C R E A T E

C O L L A B O R A T I V E W E B A P P L I C A T I O N D E V E L O M E N T

Competition

Since there is no comparable collaborative development platform (as far as we know), we mention here a few products that concentrate on web development with no or minimal source code editing involved.

Source : http://www.itworld.com/

Alpha 5 V10.5 www.alphasoftware.comstarts at $349

pros:o Offers comprehensive tool set for developing applications for windows or web

o Drag and drop simplicity for populating forms with database fields

o Integrated debugger

cons:o web development and desktop application development use different paradigms

o upgrade bundles and/or application server software purchases required for larger deployments

Alpha5 V10.5 offers a good foundation for creating applications for the web, extensive help, demos and wizards

simplify the basics, while not preventing the creation of complex applications.

FileMaker Pro 11 Advanced

www.filemaker.com$499

pros:o Develop applications with no coding needed

o fastest way to get a database on the web

o simple to learn and use

cons:o Need to buy server versions to support additional users

o Limited Web application scripts

FileMaker Pro 11 Advanced is probably the best tool to use to get databases up on the web and be quickly

accessible - this is particularly true with data that is stored in spreadsheets and needs to be converted to web

accessible data.

Real Studio

http://www.realsoftware.com/realstudio/Real Studio Enterprise $995

pros:o develop applications for linux, mac, windows and the web

o Sophisticated IDE

o Reasonable priced

cons:

Y O U C R E A T E P A G E 10

Page 11: Wecreate

Y O U C R E A T E

C O L L A B O R A T I V E W E B A P P L I C A T I O N D E V E L O M E N T

o some manual coding required

o complex to master

Real Studio Enterprise is a true programmers tool and is not meant for the hobbyist or occasional programmer,

but for those that live and breathe application development.

Y O U C R E A T E P A G E 11

Page 12: Wecreate

Y O U C R E A T E

C O L L A B O R A T I V E W E B A P P L I C A T I O N D E V E L O M E N T

Business Model

DevServer can be sold to a range of possible clients. It is the purpose to setup and manage a number of targets

that are potentially interested in our offering:

Single User developer.

Project team

Ability to deliver a platform that Increases substantially productivity. Let all project members communicate, using a unified and comprehensive language Avoidance of all pitfalls of application deployment. Offers an instant view of the state of the application for the client. Unprecedented tools for the service management once the application is available.

Cloud provider

The development Platform is composed of the 4 tier network, which all have to be installed at the

provider space. Cloud providers sell disk space, CPU time and bandwidth. YouCreate fits nicely into all

services the provider offers: JEE platform (maintained by them), Database services (a choice between

all popular ones) with all the backup/restore/maintenance they provide, and an additional Development

server.

For each application the team develops, a new set of services has to be hired by our client at the cloud

provider. The probability is high that the application will be deployed at the same provider. The more

successful our client is, the more space will be hired from the same provider. Cloud providers, like

Amazon, offer mark-ups for each additional space, so it is beneficial for us as well as for them. Our

client (the application developer) has also the choice to resell the space via us, making an additional

profit on his development.

System reseller

The Development server can be resold as a separate product. The system is such that the product can

be copied and installed to a location of choice.

We can distinguish here two types of installations: one that can communicate with the outside world,

and one that is installed in a private environment. The first type can be monitored for the number of

users and time, the latter not. A different pricing should be applied for these two products.

In the long run, YouCreate should only resell to these kind of VARs, to avoid distribution conflicts. This

is also the right way to create a distribution network.

Y O U C R E A T E P A G E 12

Page 13: Wecreate

Y O U C R E A T E

C O L L A B O R A T I V E W E B A P P L I C A T I O N D E V E L O M E N T

Library or functional providers YouCreate offers a platform to structure libraries from different companies into a comprehensive set that can be

dragged and dropped into a flowchart.

Google code Paypal Facebook Sun

For Component BuildersCompanies like Exadel are specialised in the creation of specialised User Interface components.

YouCreate can incorporate external UI components in the Designer, and Code generators to support

those components. Cooperation with these suppliers can extend our market reach.

YouCreate can operate with a minimal number of staffing. For the development, people can be hired on a time/material basis. Remains sales, support and documentation people.

Our target Users could generate the real money. The minimum goal (after 6 month lead time):

Single users : 100License : 50 $ per months

Project teams 20, 4 users on averageLicence : 50$ per month per user. Project licence : 250 $/month

This 14.000 $ / month is not ambitious, but it should cover our overhead at that moment. The real goal is far more ambitious than that. At the time of this document’s editing it might even be senseless to put these figures down. The only certitude is that YouCreate will draw a lot of attention by the very nature of its form. This attention must be converted into licenses.

Y O U C R E A T E P A G E 13

Page 14: Wecreate

Y O U C R E A T E

C O L L A B O R A T I V E W E B A P P L I C A T I O N D E V E L O M E N T

Future

You-Create wants to expand its technical offering in 2 directions:

Horizontally:

Using the contemporary means (hard/software) to enrich the platform in order to address a broader audience that will further reconcile content and form of future websites.

Vertically:

Community driven environment for more predefined functionality and components that enable more functional web applications.

The development attention was concentrated on functionality. Now, it is time to concentrate on the look and feel of the product :

All icons must be conform the contemporary standards. (cfr iphone icons) There are enough sources available on the net to provide YouCreate with nice function icons.

All other elements that gives the flowcharter a more ‘engineer’ look. The generated UI components must be more ‘rich’. The flowchart can be generated in 3D. the future pc’s support this feature, and it is a big help

to even more insight in the program logic.

3D game-like development environment

In order to attract the different players, each should have his own familiar view. We can imagine that developers want a gaming interface, where they can view the actions of collaborators on their browser while they are working on the same project.

New hardware interfaces (like 3D view devices and sensors) can be used to improve productivity, and are close to the world of its users. (Gamification)

Y O U C R E A T E P A G E 14

Page 15: Wecreate

Y O U C R E A T E

C O L L A B O R A T I V E W E B A P P L I C A T I O N D E V E L O M E N T

Appendix

Server side programming

The concept of YouCreate makes server-side application development accessible and transparent, while maintaining its primary task--enabling people to answer their client request: making applications from idea to application.

YouCreate with its JEE Engine allows the developer to build complete web applications, test them, and deploy them on a server.

The engine does not only generate efficient Java code, it also builds the support files and the User Interface that is automatically linked with the code using the JSF technology.

This technology (JSF) supports all standard UI components, and also enables component and library developers to build their own. Manufacturers like Exadel have a complete and far-reaching component library, like sliders, data tables and even maps. Most user Interface elements build using YouCreate are automatically generated into richFaces components. This results in rich and skinnable web pages, and has the ability to satisfy both the functional and artistic approach towards web development.

Since databases are an essential building block of most applications, YouCreate has integrated support to include all needed manipulations (technically, all databases with JDBC 2.0 compliant drivers). All major database suppliers deliver these needed interfaces, which eases the choice for our client’s major concern: scalability. Using the drop-down functionality of YouCreate, the choice between, for example, Oracle or MySQl becomes only a matter of licenses, with no impact to the chosen functionality.

Feature summary

Smart Code Generation Sophisticated UI element design 2-D Flowcharts as development ‘language’ Direct support for all popular databases (Oracle, MySQL) Independent of target platform (Linux, MS Windows) Integration between UI and Backing Java Beans No technical platform knowledge needed Instant interface for project management Complete test and simulation environment

Y O U C R E A T E P A G E 15

Page 16: Wecreate

Y O U C R E A T E

C O L L A B O R A T I V E W E B A P P L I C A T I O N D E V E L O M E N T

Flowchart Editor

This is the kernel of the development system. Programming is no longer text-based, it is done by drag-and-drop of functions and conditions or statements. The result-- after filling in the appropriate values or variables-- shows changes instantly, even for complex nested structures. The flowchart editor is built in such a way that it enforces structured programming. This means that at no point can the developer make a semantic mistake.

A flowchart is easier to manipulate than code text which is still used in all development environments. Copy, move, delete, mark or comment, it is all there, but in a visual way.

Each method has its own display window, which makes it easy to view and manipulate the business logic.

All team members have an overview of the program logic, and can drill down to all business logic.

At every step in the development process, the flowchart can be executed for test purposes. The standard debugging elements are available, but also in a visual way: breakpoints, marking where the code has passed, variable value evaluation, etc..

Each flowchart window can be independently zoomed and panned, and the overall visual elements can be customized (background, line and element colors, fonts, etc..

UI composer

Integrated with the flowchart.Drag-and-drop definition of background and foreground UI elementsInput / Output UI components :

• Text elements• Number elements (word, int, float) in various formats(regular, spinner, slider)• Date and time with calendar support.• Lists of the above elements (edit list, selection, dropdown, ..)• Checkbox.• Radiobuttons• Action buttons (submit, ajax, ..) in all formats (text, picture, transparent)• Link elements..) in all formats (text, picture, transparent)• Matrix of all above elements.• Picture elements, both static and dynamic.• Video support for various formats, streaming and non-streaming.• Background elements like text, pictures, lines and squares in all forms and colors.

The composition of UI elements is translated into jsf pages, and where applicable, they are translated into RICHFACES components.

Each individual component can have various attributes like display only, invisible, user ’ must enter’ (with warning message if not), and tooltip.

All foreground components are directly linked with variables or methods of the flowchart.

JEE generator

This generator builds all necessary components to build and deploy the application:

Y O U C R E A T E P A G E 16

Page 17: Wecreate

Y O U C R E A T E

C O L L A B O R A T I V E W E B A P P L I C A T I O N D E V E L O M E N T

Managed JAVA beans. Backing JAVA beans Java Server Pages for UI Style sheets Batch and xml files for compilation and deployment. Automatically launches the compile, build and deploy processes.

Access Manager

Controls the authority of users of a project or module. Each user can have a different access level over parts of the project.

Take the case of a web designers, for example: they can have authority over the UI components, but no write access over the code, while they can still see the functionality of the code.

The highest level of authority is the Project Manager. He or she can create users like Architects, group leaders, developers and designers, and assign different levels of access to the UI components, code, documentation and libraries.

The Access Manager can handle groupings, assign competences and handles all aspects of security for the project.

Deployment Controller

• Automated deployment of the generated application.• Specific deployment for Cloud Computing infrastructure.• No technical knowledge required.

Document generator

The repository can hold different types of documentation and relates directly to the flow elements. Doing so, the document generator can extract 2 different types of documents from the repository:

• documentation for the user of the application• documentation for the maintenance of the program itself.

Both are delivered in html formats. They can be integrated in the generated program.

The documentation can be completed with flowchart views that can be used to solve support issues. The support person can follow and understand the logic of the application and it gives him more insight in order to trace the support request.

Y O U C R E A T E P A G E 17

Page 18: Wecreate

Y O U C R E A T E

C O L L A B O R A T I V E W E B A P P L I C A T I O N D E V E L O M E N T

Actual status of the product

We have stopped distributing YouCreate from the moment the development started for the JEE Engine. The cooperative model of YouCreate is the stand-alone model, but implemented as Application Development Server. The following table shows the status of the development work.

Module Stand-alone status Cooperative Model Status

Flowchart Editor 100% 80%

J2EE generator 100% 100%

Document generator 100% 100%

Access Manager N/A 50%

UI composer 100% 60%

Deployment 100% 100%

Project Management N/A 100%

Class Viewer 100% 80%

.

Y O U C R E A T E P A G E 18