CodeFluent Entities Modeler hits major RC2 milestone

CodeFluent Entities Modeler reaches Release Candidate 2 milestone, the last step towards the final release this fall. CodeFluent Entities is the first model-driven software factory for the .NET platform, that includes both modeling and generation features in a totally integrated way, leveraging Microsoft development best practices on each target platform: rich-client, smart client, web, rich web, mobile or cloud.

Everyone can download the product by just registering on http://www.codefluententities.com/register_cf.aspx to get the free personal version.

The stability and performance of the visual modeler has significantly improved with this version, while many useful features have been added to the user interface: Shape search, visual navigation based on relations, export as image and much more!

shapesearch

clip_image003                                       saveas

Read more details about these improvements on the product blog. At the same time, we recorded and published the latest online webinar, a very good starting point to get familiar with the product.

Last but not least, we decided to create a crazy pre-launch promotion on http://store.softfluent.com/. If you buy a CodeFluent Entities Enterprise version before June 30th, we will upgrade it to Ultimate! If you buy an Ultimate license, we will upgrade it to an All Inclusive! It is a good timing to save thousands of dollars. Just register and buy normally on the store web site, and we will upgrade your license.

Remember: all of our versions include one year of software assurance, which means you will get all future improvements for free until June 2012.

SoftFluent issues version 2 of its model-driven white paper at Dev Connections

Taking advantage of its presence at Dev Connections event in Karlsruhe (Germany), SoftFluent just released version 2 of its software development white paper “How model-driven can help your projects succeed”.

The first half of the document, applicable independent from SoftFluent technology, describes the market challenge and its huge complexity. The second half of the document explain why and how CodeFluent Entities was designed to structurally addresses the evolution challenge to help reduce legacy application debt.

Read full press release

Karlsruhe

SoftFluent booth at Karlsruhe, just before the opening of the event

Formalizing specifications

What level of formalism should I use for requirements and specifications? This is a very common question I get, and, frankly, the answer might be disappointing, as there is no magical recipe or universal formalism that works.

Working on many projects of different sizes, I was exposed to almost any level of formalism for software specifications from none to extreme formalism. UML was often tried on the formal side, as its name bears a universal objective, but it clearly failed on all projects that I have seen which thought it would be the ultimate solution. It is too complex for end-users, which means developers cannot count on user validation as a real commitment. In best cases, it provided some documentation capabilities for technical people.

This said, should we give up writing specifications and stick to an oral tradition when it has worked in the past? Probably not. This can work for very small projects when there is a clear stakeholder for users and a unique developer, but it does not scale well. For projects that need more cooperation between people, it is critical to have some specification documentation, so the key design decisions are in a centralized document, and requirement change can then get tracked. It is of course even more necessary when teams are distant.

A simple documentation process

If there is a good reason to write specifications, then the reason should apply to maintaining up-to-date specifications. It is like writing software: if you don’t have a maintenance strategy, don’t develop software. So the formalism should be adjusted in a way that allows easy maintenance of the document when change will occur (and for sure it will). This is why it is valuable to have a process and document which really concentrates on the key elements necessary to develop, and not more.

In my view, three elements are necessary:

· As a business analyst, you should write a textual description of what the software does, and a clear explanation of its objective. If you cannot describe in "textual mode" what the program should do, then you are not clear enough about what you expect.

· The business analyst should include in the document the visual representations of what the user interface will look like. It is not just an option, as very often, the user will "see" the user interface as being the software.

· The business analyst should gather an exhaustive list of business rules and behaviors, including what should happen in limit cases, as the developer should not be creative on these points. I noticed that a lot of implicit "rule-related" elements are sometimes forgotten, as they seem obvious or natural to business users. But they cannot be guessed by developers, and it often causes much trouble at application delivery.

image

If you make the effort to integrate those 3 pieces into one document describing the software to be developed, then most of your risk is managed and under control. Beyond the content itself, the fact that information is centralized in a single document gives a global view and bears a lot of value.

A simple example applied to our registration process on the Web

To make things concrete for our readers, here is how we articulate specifications for our web page registration.

Textual part:

A web page allows users to register on our web site. When clicking on the relevant link, the user gets a form with fields to complete, some of them being mandatory. Once completed, the record is created in the database with an inactive status and an email including an activation link is sent to him. A page with an explanation is displayed. When clicking on the activation link, the registered user is set as active, his free CodeFluent Entities license created and a confirmation page is displayed.

User interface part:

Below is how the entry form looks like.

image

Business rules:

1. The fields with a star before the label are mandatory

2. The email should be a string including an @ and a . after it. (another option could be to include here a regular expression)

3. The two entered passwords should match

4. The username should not already exist in the database

5. The country is selected in a dropdown list built using Windows standard country list

6. At registration, the customer can choose between Express and Personal license

7. The license key is created after click on the activation link by calling a web service on our licensing system

Mistakes observed on the field

It might also be worth noting the common mistakes or things that I have seen as not working about writing specifications:

· Using excessive formalism with a language that is hard to understand for users,

· Forgetting about visual representation of user interfaces,

· Not being precise and exhaustive about the description of business rules,

· Splitting specifications into a set of numerous separated documents.

As always, feel free to comment or complete with your own observations.

Daniel COHEN-ZARDI, CEO

Follow

Get every new post delivered to your Inbox.

Join 183 other followers