Bindings, Platforms, and Innovation
This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.
Tracking change and innovation in the enterprise software development community
Posted by Jean-Jacques Dubray on Apr 28, 2008 01:00 AM
Gunther Lenz, a Microsoft Architect, and Christoph Wienands, a Software Engineer working at Siemens undertook the project to evaluate the benefits of establishing a Software Factory based on Microsoft Visual Studio 2005 Domain Specific Languages (DSL) tools.
While it seems obvious that increased reuse, higher level of abstraction, and increased automation provide advantages to today's text-based software-development efforts it is not enough to justify the necessary upfront investment to upper management and other stakeholders. Therefore, we started to look for quantitative data that would clearly show the business case for using this paradigm.
The goal of this analysis was to identify automation and reuse opportunities in the areas of framework and application development. To that effect, the authors developed a Software Factory Template.
The implementation of the Software Factory Template is based on the Software Factory Schema. In our case, we provide multiple T4 templates—for artifact generation, wizards, and a DSL—that are bundled into installer packages to provide the developer with additional tools and context-sensitive automation mechanisms.
Their project has two components:
In this first study, they have found that:
For the developer, instead of entering 320 lines of code per definition and use, only a few strings have to be entered, and some decisions that are based on valid options have to be made. The net result is not only time savings, but also quality increase by providing only valid choices and the ability for validation of input before artifact generation.
Overall, this translate into:
The DSL development increased productivity by a factor of 10 with a ROI of more than 100 percent.
For the guidance package, we could show a ROI of more than 300 percent with minimal investment.
The authors plan to tackle more complex questions in the future:
- How does this approach scale to broader domains?
- How does the tool support work for more complex implementations?
- How much savings will there be on maintenance efforts?
- How do we handle evolution of DSL meta-models and models?
SOAsocial.com - See what the SOA community is Talking About
Achieving Results with Red Hat Integrated Virtualization
The Agile Business Analyst: Skills and Techniques needed for Agile
This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.
This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.
This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.
This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.
This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.
After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.
IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.
Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.
No comments
Watch Thread Reply