Contract-First using a custom DSL
June 26, 2010 Leave a comment
Has been while since my last post. There’s nothing easy about doing consulting and keep researching. The fact is, I was misplaced on contract first approach and I know I’ll put forward some conclusions.
- Contract-first approach demands strong organization and standardization.
- You can’t count on off-the-shelf tools. You likely develop your own Domain Specific language.
- I left off-the-shelf code generation tool (I’ll not post it’s name in this case) for Industry Standards. Last approach was about taking tables structure and give life to application by generating all necessary files. I was too coupled to the database platform. Different database versions & vendors, operation systems used to gave a lot of headaches. By Tomas Erl literature I was doing a negatively case of coupling. I started to live all the promisses bad dreams by keep going on this approach. By the next image you can conclude that my code generation tool was really coupling to many different vendors technology, from the source (tables) to the engine (code generation framework) to the assets (text templates).
- I Start work with XML Schema Industry standard. It was need good ideas to be organized and produce high quality code. It increase the need for methodology and standardization.
The economies of reuse was increased because it became a flexible structure.
Change to Industry Standards was a good thing because it is wisdom and experienced approach recommendation from serious institutions which researches are solid results that doesn’t keep changing every year as when we are based on technology platform which we start to accompany their bugs, different versions and releases of trial and error.
Achieving high productivity inside environments is important to understand and improve process. Build a Dialect language or Domain Specific Language based on industry standards instead on technology platform will easy lot of implementation pain as meaning of control but also will demand most talent engineering to help out on conceptions. It is not a easy path but has no better ROI.
- Software Product Lines: Practices and Patterns – Chapter 1,4 – Paul Clements and Linda Northrop/2001
- Software Engineering (7th Edition) – Chapter 18 – Ian Sommerville/2004
- Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools – Chapter 2,7,10,11,14,15 – by Jack Greenfield, Keith Short, Steve Cook, and Stuart Kent (Paperback – Aug. 16, 2004)
- Service-Oriented Architecture (SOA): Concepts, Technology, and Design – Chapter 10,11,14,15 – Thomas Erl/2005
- SOA Principles of Service Design – Chapter 6,7 – Thomas Erl/ 2007
- Domain Specifc Languages – Martin Fowler -http://www.martinfowler.com/bliki/DomainSpecificLanguage.html (at 06/2010)