ECO...add creativity.... Capture all the important facts in one place An industry standard format...

25
ECO ...add creativity...
  • date post

    19-Dec-2015
  • Category

    Documents

  • view

    216
  • download

    1

Transcript of ECO...add creativity.... Capture all the important facts in one place An industry standard format...

Page 1: ECO...add creativity....  Capture all the important facts in one place  An industry standard format - UML  Exact and no room for misinterpretation.

ECO...add creativity...

Page 2: ECO...add creativity....  Capture all the important facts in one place  An industry standard format - UML  Exact and no room for misinterpretation.

Model centricity ensures that your documentation remains relevant

Capture all the important facts in one place

An industry standard format - UML Exact and no room for

misinterpretation 10 years after the fact you can still

read it as if you had only written it last week

Page 3: ECO...add creativity....  Capture all the important facts in one place  An industry standard format - UML  Exact and no room for misinterpretation.

DDD brings the correct language to the developers

Do not optimize your language by reducing the number of words

It is a beautiful thing to communicate; why make it harder than it needs to be?

Your developers talking to stakeholders using the their own lingo is essential to avoid misunderstandings

After all you are considered the expert, make sure you are understood; learn the lingo and stick to it throughout the project, in the model, in the code, in the documentation, in the db-mapping

Page 4: ECO...add creativity....  Capture all the important facts in one place  An industry standard format - UML  Exact and no room for misinterpretation.

Database brand is just a flavor, choose one, try many

Database technology is mature As long as you keep in the middle of

the feature stream you can switch as you go along

Database manufacturers want to lock you in – make sure you keep a key to get out when you want

Page 5: ECO...add creativity....  Capture all the important facts in one place  An industry standard format - UML  Exact and no room for misinterpretation.

Do not shy away from reality, embrace change

Changing requirements is not necessarily the sign of an indecisive client, it is you getting more information

Tools like model evolution help you to feel good about new facts

Do not worry, the rapid fluctuation of requirements wears off as you home in on the truth; once there you are robust

Page 6: ECO...add creativity....  Capture all the important facts in one place  An industry standard format - UML  Exact and no room for misinterpretation.

Development is hard enough; focus only on the creative/hardest part

You do not have to maintain the database schema

You do not have to add extra fields to handle ordered relations

You do not have to write the domain objects with all their properties and associations

You do not have to write any persistence code

You only need to solve domain specific issues, more with your brain than with your fingers

Page 7: ECO...add creativity....  Capture all the important facts in one place  An industry standard format - UML  Exact and no room for misinterpretation.

The world consensus: layered architecture

Everyone agrees; keep business logic out of the UI since it makes the logic hard to reuse and maintain

The domain layer is largely maintained for you, just fill in your own behavior code

Where should we place the physical tiers? You are free to choose!

How should we communicate between tiers? Again you are free to choose

Page 8: ECO...add creativity....  Capture all the important facts in one place  An industry standard format - UML  Exact and no room for misinterpretation.

Focus on deliverable verticals, do not waste time on horizontals

Scrum & XP states that building software is a chaotic process and only fools try to predict everything needed to reach the yet to be determined goal

But at the same time you will end up with crap if you do not have a plan or architecture

Trust the framework for architecture and the chaotic process for requirements

Page 9: ECO...add creativity....  Capture all the important facts in one place  An industry standard format - UML  Exact and no room for misinterpretation.

Coding should be as straight forward as possible

Both ends of associations are always maintained

Change state is tracked automatically Lazy & eager load control Association objects with lifetime control Standard .NET model view pattern Search domain layer with OCL Search database with OCL Subscription mechanism to catch and react to

domain layer changes Domain layer transactions clears up ”execute &

verify” code

Page 10: ECO...add creativity....  Capture all the important facts in one place  An industry standard format - UML  Exact and no room for misinterpretation.

Your users expect undo & redo, why not just give it to them?

All professional apps have undo & redo

”It is not a problem to add it, but it will cost you”

Luckily the bluff is seldom called Undo & Redo requires a good domain

layer

Page 11: ECO...add creativity....  Capture all the important facts in one place  An industry standard format - UML  Exact and no room for misinterpretation.

Use the same domain layer for WPF, Silverlight, Winforms & ASP.NET

We make no assumptions regarding UI in the domain layer

We offer clear and easy access from all the UI techniques

Statefull & stateless models are supported

Page 12: ECO...add creativity....  Capture all the important facts in one place  An industry standard format - UML  Exact and no room for misinterpretation.

Reverse engineer an existing database

You have a legacy database already Reverse it to a model Shift focus and develop the model

instead of the database

Page 13: ECO...add creativity....  Capture all the important facts in one place  An industry standard format - UML  Exact and no room for misinterpretation.

Prototype the real thing

You can start a system based on the model alone

Autoforms Debugger with OCL-evaluation

Page 14: ECO...add creativity....  Capture all the important facts in one place  An industry standard format - UML  Exact and no room for misinterpretation.

Instead of hard to read logic use state diagrams

State diagrams enables you to ”draw logic” with triggers, transitions and guards

Transitions can have effects and update properties and create objects

Page 15: ECO...add creativity....  Capture all the important facts in one place  An industry standard format - UML  Exact and no room for misinterpretation.

Derived entities are common in all domains; accept it and grow

Derived attributes and associations give you easy to read code

Ability to use the same data in different aspects while keeping a normalized datamodel

Automatically maintained with subscription and lazy evaluation

Page 16: ECO...add creativity....  Capture all the important facts in one place  An industry standard format - UML  Exact and no room for misinterpretation.

Refactoring is not a big thing, but it is important.

To keep old things fresh you will need to refactor

With less man hours invested in the old code and fewer expected man hours in the new code you are more likely to actually do it

Support for model level refactoring

Page 17: ECO...add creativity....  Capture all the important facts in one place  An industry standard format - UML  Exact and no room for misinterpretation.

Do you really need ”the human factor” in the core of your system?

What is the business value of having the human factor near the things we all agree on and just expect to work? People are lousey at routine tasks; they

will always give it the ”personal touch” = bugs

Page 18: ECO...add creativity....  Capture all the important facts in one place  An industry standard format - UML  Exact and no room for misinterpretation.

Everyone agrees on how to do it right. We just made it for you

Patterns of Enterprise Architecture (Martin Fowler) sums up the basics

There is nothing controversial here There are choices, we expose these

as settings Parent or child map inheritance Optimistic locking or not Type on persisted identity

Page 19: ECO...add creativity....  Capture all the important facts in one place  An industry standard format - UML  Exact and no room for misinterpretation.

Quick unit testing requires aspect orientation and mocking

To speed up unit testing you will want to replace the persistence layer with a mock

The Service design pattern puts you in full control

Add your own services Replace existing implementations

Page 20: ECO...add creativity....  Capture all the important facts in one place  An industry standard format - UML  Exact and no room for misinterpretation.

What kind of bugs should testers expect?

Hand on heart – are you good at endless repetitive tasks? Do you have the same precision as a machine?

No more persistence or association bugs Attributes that do not persist as

expected Associations set and saved, but fail on

load Cascading deletes that do not cascade

Domain bugs are left up to you– not infrastructure bugs

Page 21: ECO...add creativity....  Capture all the important facts in one place  An industry standard format - UML  Exact and no room for misinterpretation.

Is this not true development?

Development should be a creative process

You turn user requirements into tools Stay clear of all the old ways of

working that could keep you busy without knowing what the supposed business value was

Page 22: ECO...add creativity....  Capture all the important facts in one place  An industry standard format - UML  Exact and no room for misinterpretation.

Will it really work?

It works for developers using all .NET languages, but we have templates for the following: C# VB.NET Prism (Delphi.Net)

Persisting their data in one of SQLServer MySQL Oracle Firebird, Nexus, SQLite, Xml An open API to add more

Page 23: ECO...add creativity....  Capture all the important facts in one place  An industry standard format - UML  Exact and no room for misinterpretation.

Will it save time? Is it fast enough?

It will increase quality Your resources can be focused on the

domain issues The gaming industry has accepted game-

engines ; and they live and breath performance. Do you honestly believe we have higher needs?

A normal part of the development cycle is to isolate bottlenecks and deal with them, now you will have more time to spend on this

Page 24: ECO...add creativity....  Capture all the important facts in one place  An industry standard format - UML  Exact and no room for misinterpretation.

There is no way back

Imagine the software developers at the starship Enterprise from Star-Trek. Do you think they hack persistence code by hand?

Good tools are addictive After using ECO you will never consider

using a less competent tool again, let alone no tool at all.

We will give you your money back if you are not satisfied (...Yes we will require the tool back...)

Page 25: ECO...add creativity....  Capture all the important facts in one place  An industry standard format - UML  Exact and no room for misinterpretation.

Your investment is safer than it ever was

Think about it; your investment is creativity and knowledge – kept in the industry standard UML format -> safe

Your behavioral code that uses the terms and facts from the model -> safe

Investments made in UI design – all .NET -> pretty safe

Was the future ever this bright?