Tag Info

Hot answers tagged

50

There is no golden hammer. What works well in one domain is pretty useless in another. There is some inherent complexity in software development, and no magic tool will remove it. One might also argue that the generation of code is only useful if the language itself (or the framework) is not high-level enough to allow for powerful abstractions that would ...


29

Well, I'm the academic who posted the original tweet. Tweets are not meant to be scholarly articles. They are advertisements, and I think they can also be controversial. Here are my follow-up tweets: 1) UML was created to model OO designs. It effect you are modeling the code of a system, not the system's behavior. UML is at wrong level. 2) the idea that 7 ...


12

Interesting question! I admit, I'm not a fan, but then I've tried to use model driven development several times in projects that fit some of the issues you just raised. Here's my reason list: learning curve - modeling tools have been evolving so rapidly, that I'm hard pressed to find engineers that deeply understand the tool. I still find you are only ...


11

It's been cited already, but No Silver Bullet addresses the point pretty well: The essence of a software entity is a construct of interlocking concepts: data sets, relationships among data items, algorithms, and invocations of functions. This essence is abstract in that such a conceptual construct is the same under many different representations. It is ...


11

As a researcher and a scientist, I've learned some simple rules, and the most important one is not to let my imagination set boundaries. What I mean is, the fact that I can't imagine a better way to abstract todays problems doesn't mean that one doesn't exist. It doesn't mean that another approach wouldn't completely alter the way we think about programming ...


10

I have no problem with the "level" of current languages, and I was a thorough disciple of Lisp-ism, but this whole conversation really bothers me. It bothers me because the language we're really using is the one that we and others have built on top of whatever the compiler or interpreter provides. The nouns, verbs, syntax, and semantics consist not only of ...


8

Because not all programming is object oriented, which all MDD tools seem to expect. UML itself is based on the presumption of objects. Sure you can use sequence diagrams to model functions, but many times that is clumsy. Because there are programmers like me who get more progress and results from TDD than MDD. Because Modeling != Programming. Because ...


5

UML is the equivalent of taking a screwdriver and a hammer and taping them together and calling it a "Universal Fastening Tool." In theory it can be used to represent a ton of things in great detail, in practice its a bunch of poorly integrated tools claiming to be a single tool, that makes doing any one task far more difficult than having a proper tool to ...


5

Microsoft/Apple/Google isn't pushing it :) What kind of development gets popularized has much to do with tools, backer and evangelism. It's very hard to break through with something without having a big backer (Ruby on rails perhaps being the exception but it's still small compared to Java/C#/Python)


5

Because of a simple law that affected all these modelling tools, you know, CASE, UML and such: Getting between a programmer and his code is very costly. If you do so, you need to build a proper compiler/interpreter, code generators result in terrible workflow and terrible feedback to the programmer (error messages and such). One of the great insights of ...


5

Seems like a gigantic hassle for very little benefit. I always seem to be dinking with edge cases and strange things, the magic stuff never really seems to work right. OO ain't a silver bullet; blobbing a software-generating methodology onto OO doesn't make it silver. But I'm not fond of enterprisey solutions in general.


4

I had the discussion, and would love to do MDA, but the biggest drawback is tool support for now. I am using a derivation of MDA which I like to call "Runtime Model evaluation", but more on that later. The drawbacks of MDA are, as I know: Missing Refactoring Support: Lets guess I want to model the entities of my datamodel with MDA (Typical usecase No. 1). ...


3

I think there's also a case to be made that MDD is the worst thing that happened to UML (why else would we have the UML2 that we have?), but ignoring that for the moment... MDD = Model Driven <Design|Development>. The idea is to be able to develop solutions at a level of abstraction appropriate to the problem domain - that is, it is an attempt to ...


3

I can give you an example of when meta-modeling was useful at my workplace. In the 1990s, the company where I worked grew quickly by acquisition. With each acquisition, new staff, systems, databases and data were added. By 2004, the IT department employed almost 5,000 people and had a yearly budget of 10^9 USD. Many of the smaller companies we merged with ...


3

I think one of the things that his says is right. Programming languages today are at the right level of abstraction. But, I think that although, in the future, we may use the same languages as today, because compilers are getting better and processors are getter faster (as in they can do more computations per second), we may be able to operate a ...


2

I've seen a real-life example of Paul Graham's Blub Paradox on usenet. Lisp programmers were trying to explain to Python programmers what macros were good for. The Python crowd responded to every example with: "You can do the same thing in Python." The point the Lisp crowd was trying to make--that Lisp allows programmers to add their own control ...


2

An Alan Perlis epigram comes to my mind: "A programming language is low level when its programs require attention to the irrelevant." Also, I rather think of programming as complexity management rather than detail management. In so many words, if we can get away with knowing about microcodes and whatnot when writing many softwares (even get away even with ...


2

I feel that most people using Fred Brooks' No Silver Bullet to explain why people aren't doing MDD are missing the point that Brooks makes. Sure, the final conclusion is that the actual, intrinsic complexity in developing software will never go away and so MDD will not solve this. But one reason that Brooks even discusses this intrinsic complexity is to ...


2

In my opinion it's not necessary to describe semantics of diagram elements which are already standardized by UML. Yes, there would be no need to describe the semantics of diagram elements when that semantics would be properly defined somewhere in the UML standard. The problem is that, especially with MDD, the full semantics depends on the code ...


1

To answer your first question, from my own experience with MagicDraw UML (MDUML), you can build a Profile on the DSL Profile, if you do not want to directly modify the DSL you have or it is not editable. Your classes should utilise the same Stereotypes found in the profile, if any or you can make your own and apply them to the new classes you want to add. ...


1

Quote from Ed Seidewitz to this exact question: fUML is the culmination of a long quest of Stephen Mellor's at OMG, so, in that sense, it is targeted at Executable UML. However, since the OMG community interested in UML execution semantics goes beyond just the Shlaer-Mellor community (submitters, for example, included IBM and Care, as well as Mentor ...


1

I don't know of many projects using a completely MDD-oriented approach, but I've often come across projects that use generated sources and artifacts from models of various kind. I've found a few interesting links on this in the past: Here's a wikipedia list of projects based on Eclipse EMF (so, not necessarily consumer products using it, but still ...


1

DDD does not require you to have a class handle it's own storage, in fact DDD has the concept of a repository to handle storage. What you're higher ups are doing is having you implement Active Record, and tieing the implementation to the class, rather then hiding it from the class.


1

I believe that there are several reasons but one is for sure that MDD is not in the curriculum of universities. Typically the closest is a course that teaches modeling and there the models stay as sketches (no checking, code generation, debugging at model level). This “modeling” course often also introduces UML and students are puzzled why to learn such a ...


1

Short answer… because model driven is often related to code generation and code is fragile; what we need is code elimination and model driven is surely the way to go. Some have dismissed the question arguing that there is no golden hammer and that software development is inherently complex. I fully agree with them that there is no golden hammer but I ...


1

Model Driven Development is a non sense because this is a top down model to code approach. It is impossible to create full running application just from a model and therefore MDD is useless!! What I do is to only use UML at higher level of abstraction to create the skeleton of my application. I mean create Packages, classes etc... then start immediately to ...


1

MDD adds another step to the development process, which is a downside in situations where there is no good model and the first unpredictable or nearly broken partial solution to market might well win the most marbles.


1

Any decent Lisp implementation will provide you with all the LOP tools out of box. Languages like Nemerle will do the job just fine too. And there are specialised DSL-building frameworks like mbase or http://www.eclipse.org/Xtext/ that can handle various target platforms.


1

I also think that Language Oriented Programming shows great promise, the possibilities look great and when you follow http://twitter.com/markusvoelter or read his blog http://voelterblog.blogspot.com/ you can see that it is pretty active. For what I have seen so far it isn't production ripe yet even for Java development, the C# part is even less evolved. ...


1

I agree with Uncle Bob that we don't need a MDA on the top of a programming language. I am a java developer and why to have my code generated automatically if the model can not handle detail management information. Saying that I disagree that UML is not the appropriate level of abstraction we need for our project as long as we don't expect UML to lead our ...



Only top voted, non community-wiki answers of a minimum length are eligible