Software Factories: Assembling Apps with Patterns, Models & more


News: Software Factories: Assembling Apps with Patterns, Models & more

  1. Software Factories are a big deal on the Microsoft side. Jack Greenfield writes a third article on the idea of Software Factories, and the new software development paradigm that they bring to the table.

    Software factories are based on the convergence of key ideas in systematic reuse, model-driven development, development by assembly and process frameworks. Many of these ideas are not new. What is new is their synthesis into an integrated approach that lets organizations with domain expertise implement the software factory pattern, building languages, patterns, frameworks and tools to automate development in narrow domains.

    We think key pieces of the software factory vision will be realized quickly, and some over several years. Commercial tools that can host software factories are available now, including Microsoft Visual Studio .NET and IBM WebSphere Studio. DSL technology is much newer than most of the other technologies, and relies on families of extensible languages. DSL development tools and frameworks are currently under development, however, and have already started to appear in commercial form.

    This article has described a methodology called software factories that integrates critical innovations to promote the transition from craftsmanship to manufacturing. The next article in this series answers frequently asked questions about software factories.

    Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools

    Threaded Messages (16)

  2. New SW Development Paradigm[ Go to top ]


    can anybody tell me how this "New Software Development Paradigm" differs from other product line approaches like Synthesis, FODA, DSSA, ODM, etc. that have been around for 10 or more years?

  3. What's new?[ Go to top ]

    IMHO, theoretically nothing new ;-). But as this comes from Microsoft (and others... IBM, ...) the chance to make this paradigm to reach "normal developers" would be higher.

    So, let's say Microsoft wants to bring this kind of Software Development paradigm to the "crowd". And there is problem with this...

    EJOSA: Enterprise Java Open Source Architecture.
  4. What's new?[ Go to top ]

    ... And there is problem with this...

    I mean: And there is NO problem with this... :-)

  5. Proprietary[ Go to top ]

    Microsoft is in the way to MDA with a proprietary notation language - I didn´t see this language and the new VS .Net with this kind of technology but this is Generative Programming in a proprietary way (this is my opinion for now - I will try to ge more information with some friends form the dark side)


         crew in Redmond seem to trying to downplay the UML
         open standard in lieu of non-UML domain-specific
         languages (DSL). […] There is no doubt that different
         domains and different stakeholders are best served by
         visualizations that best speak their language - the
         work of Edward Tufte certainly demonstrates that...
  6. Proprietary...[ Go to top ]

    Yes, this is true. Typical MS...

    Instead of using UML and MOF they are cooking with their proprietary stuffs. Read on this article:
    "Steve Cook Microsoft"

    I myself agree more with Mr. David S. Frankel and Mr. Michael Guttman, who answered in this article below:
    "Response to Steve Cook"

    Quite interesting to read is that Mr. Steve Cook has worked very actively in OMG and he *was* one of UML supporters before he is working in Microsoft.

    Anyway, who wonders... Microsoft :-)

  7. Where are Part 1 and Part 2?[ Go to top ]

    This is "The third in a four-part series of articales about software factories..."

    Where can I find the first two parts?
  8. Where are Part 1 and Part 2?[ Go to top ]

    Where can I find the first two parts?

    Software Factories
  9. Thanks1[ Go to top ]

    Thanks for provide the pointers to "Software Factories".
  10. maybe?[ Go to top ]

    maybe Microsoft prefers to make the same mistakes everyone else outside of Microsoft world has already made. Nothing quite like making the same mistakes to really learn a lesson well. I fail to see how an offering from Microsoft could be revolutionary in the area of MDA. It's not like this area of research just started and basic research is still needed.

    Enough companies have build UML tools to figure out where UML/XMI breaks and how it might be improved. The only way I can see MS coming out with a UML tool sooner than later is to build on top of their existing Schema tools and tack on a schema editor on top of that.

    That in itself would be a good thing, except that schema is far from agile and flexible enough to model flow/process and complex object structures. I'll reserve judgement until I play with the product once it comes out. I'm gonna guess MS will simply tack on to Visio and attempt to leverage that for MDA.
  11. OMG is slow[ Go to top ]

    We have to admit that MS is fast in pushing tool support to the desktop. Eventually this might make the big difference. OMG is crawling. Still the UML spec. is missing the full set of notations. When will UML 2.0 be standardized ? The only good idea in the efforts of both OMG and MS seem to be the DSL. Anybody agree ? DSL is domain IP. If you have a banking system then your domain knowledge can be codified as DSL. Generation of boilerplate code might be the last step but the most important is transformation of the DSL. Now I don't know if the generated code and model is fully back/forward compatible. MS might win here too. I am a fan of UML 2.0/DSL and don't want to see it losing out just because they took it easy.
  12. slowness[ Go to top ]

    the double edge of being inclusive. on one hand, we have a process that tries to balance the needs of a diverse group of people. On the otherside, MS will most likely decide what they want to implement and hope customers find it usable. Neither approach is perfect obviously, but I don't mind waiting a bit for a better specification. "a bit" being the key word. If a standard body takes 10 years to work something out, then honestly forget about it.

    I know it's hard to write a great spec, but the OMG should stick to the deadlines it sets for itself. I know some people who work with the OMG on standards and it's not easy. Everyone has their own favorite approach, so there's a lot of politics. Hopefully the OMG will remain competative and get a new spec out, even if it's not 95% complete. A solid incremental improvement in many cases is all one can do. Trying to be the "end all" rarely works and usually results in implosion.
  13. slowness[ Go to top ]

    The MS articles are spot on, what a breath of fresh air.

    UML/MOF/XMI is too complex, bloated and incomplete at the
    same time ! Meta-models need to be small expressive kernels
    that don't change much. Many of the problems of MOF arose
    for historical reasons, e.g. UML was born as a complete
    multi-layered stack, but UML was not reduced in scope as
    the MOF was introduced (UML was not specified in the MOF !)
    so the stack is not very strictly layered. UML began as a
    diagram-oriented standard, without a formal semantics
    (e.g. what does that funny empty diamond thing signify !?).
    Other problems include the computational intractability of OCL, and the conflict between sprawling OCL predicates and the design imperative for encapsulation, transactionality and efficiency.

    There are some technical problems with the MOF stack which
    could probably be be fixed given enough time, but the
    resulting standards are taking so long, and are so complex,
    that only large and patient businesses can afford to track
    them. So any resulting products may work technically, but
    they'll be too expensive for all but the slowest, richest,
    most patient and standards-obsessed customers. No doubt
    some OMG-MDA systems will work in the real world, but at
    what cost ? Think EDI. Think Corba,

    The standards are slow to emerge because
    they are so heavy to kick along the beach.

    A meta-modelling system cannot be complete
    until the transformation formalism is in place,
    otherwise there's no way to do any standardized refinement,
    no clean way to bootstrap the metamodelling system,
    and no way to migrate across versions - versions of the
    meta-modelling standards, as well as the applications.
    The MOF stack sans QVT should not be at v1.0.

    When standards are slow to progress, people find
    pseudo-standard ways to subvert the layered structure of
    the stack and relieve the pressure. UML profiles and stereotypes are the hacks of the meta-modelling world.

    The other problem with taking so long is that the OMG-MDA
    gets buffeted by the Next Big Thing, which inevitably
    throws up some charismatic leader, attracts a lot of media
    attention, sells books & conferences, imposes another set of
    requirements on MDA, and causes a lot of delay as the OMG
    committees discuss whether to ignore it, or bend. At the
    moment OMG is being hit by the BPM 'Third Wave' tsunami.

    The OMG has fine visions of spanning all information
    domains, including the Semantic Web. But didn't
    Sergey Melnik map between the MOF and RDF 5 years ago ?
    And where is the Great Sergey now ?
    Oh yes, I forgot:

    The things I like about the MS approach are:
      - 2D refinement/reification grid
      - fine grain steps
      - small domain languages
      - small reversible transformations
      - pattern/aspect as unit of transformation

    Tools should be a separate issue from the modelling core,
    but in the past, Microsoft has not been disciplined enough
    to enforce this separation under the hood
    (remember ATL wizards ?).

    I hope it is more rigorous this time. In fact, I'd like to
    imagine that it will have a sound formal framework
    underlying ideas like the refinement grid, perhaps using
    some of JoGo's important results. If Microsoft cannot bring
    itself to publish a formal semantics, they should still
    have one !

    I would like to see how MS tools handle constraints.
    Constraints and queries (and transfomations) are just
    graph fragments with special semantics, I wonder if they
    portray constraints as visual overlays on their graphs ?

    As to the question of interoperability, MS going it alone
    has killed any idea the OMG might have had of its MDA
    specifying 'platform-independent' models.
    Of course 3rd parties will make MDA products that can
    generate apps for the .NET platform, and of course some
    smart grad student will go one meta better, and produce a
    meta-meta-meta-modelling framework that can output
    MOF or MSMDA. But the schism will still be out there in
    training and experience of developers, manifest in the tools
    they use and the models they build. I predict MS products
    will facilitate a great leap in productivity for their
    customers, with the OMG steam-roller still chugging along
    merrily in the rear view mirror.

    I'm also looking forward to an open non-OMG competitor to
    the MS vision. Anyone know of an agile open meta-modelling
    effort ?

  14. MOF and semantic web[ Go to top ]

    From my understanding, it's not so much that MOF is trying to include semantic web. My understanding is a need for business rule markup. The problem I see with trying to wedge a rule semantic into MOF is the examples look procedural to me. I lean towards a declarative style of rule semantics, so wedging rules into MOF feels hack-ish to me.

    it's still early in the game, and I hope they work things out. within a declarative rule system like Rete rule engine, sequential processing is not gauranteed. What is gauranteed is truth maintenance. The other tricky part about trying to model a process in a sequence or flow diagram is it doesn't necessarily mean the resulting diagram can produce executable rules or well formed rule statements. my bias is a lot of work is still needed to figure out how and why a rule standard should fit into a modeling program. Since I write rule translators and work at the lower levels of rule engines, I don't believe it is desirable to include rules within MOF.

    the OMG should focus on fixing UML and MOF. I see no problem with having a rule standard separate for now.
  15. Proprietary...[ Go to top ]

    Instead of using UML and MOF they are cooking with their proprietary stuffs.

    Sure, UML is far from perfrect. But the beauty of neutral metamodels like MOF and XMI is that DSLs can benefit from general purpose MDA tooling.
  16. Whats interesting in the book?[ Go to top ]

    I have spend a few hours on the book "Software factories" and I'm not very exited.

    To start with the positive points:
    Chapter 8 "Language Anatomy" and chapter 9 "Families of Languages" are worth reading.
    The chapters set the scene for DSL:s, with one examples. They explain the relationship between BNF and MOF based metamodels and show how to annotate MOF based models for graphical visualisation. These concepts are not really new to me, but its the first book I know that goes into some level of detail for this.

    At least in the book MOF is identified as having precise semantics (p618). OCL is used for linking the model with the visualization (p302). So at least in the book MOF/OCL are used, in contrast to what some postings here imply.

    And now the negative parts:
    Do you really want to read (or even browse) a book that explains UML on page 294 or XML on p307? So for me its not clear who really is the audience. That goes in line with the fact that the above explained BNF-MOF and MOF-Visualisation mappings: These are described only superficially. Thus its not clear if these mappings are "untested ideas", intentionally superficial examples or fully backed up by a sound theory and implementation. Or what are their limitations, what can be done and what can't be done.

    * Stefan
  17. Whats interesting in the book?[ Go to top ]

    I have also read the book, and I agree that there is very little to get excited about.

    In terms of this general thread, I do think that MOF, UML and so on are an important starting point for DSL definition. Nevertheless, they are limited. Both enable you to model (metamodel) the domain concepts that underpin a DSL, but that's about it. You also need to be able to model the language's concrete and diagrammatical syntax, the semantics of the language (i.e. how to models in the language run or evaluate), and have technology that can take these rich metamodels and turn them into a fully working tool.

    What is needed is an approach that extends MOF with these capabilities. If people are interested, there is a book on "language driven-development and metamodelling", which can be found at, which describes an approach to achieving this. Basically, MOF is extended with executability to capture semantics and other abstractions are added to allow it to capture language syntax. This can then be used as input to tool generation tools.

    MS have realised a small part of a DSL definition approach - by focusing on the modelling of diagrammatical syntax.
    However, rather than extend MOF with this capability, they have chosen to adopt a proprietary approach, which is a shame.