Pull to refresh

Comments 16

3) Что вспомнил
Chicago = Windows 95
Vienna = Windows 7
Longhorn = Windows Server
Oslo = SQL Server Modeling
Rosario = VS 2010
Yukon = SQL Server 2005

А вообще это есть в вики, так что нечестно )
Я так понимаю конкурс сводится к «Кто быстрее найдет ответы в интернете?» =)
> 2. Ответьте на вопрос, что такое MDD и каковы его преимущества (оценит Кейт Шорт)

Т.е. отвечать необходимо на английском? Потому что как я понимаю Кейт Шорт не говорит по-русски. Уточните, пожалуйста.
Лучше по-английски, но если что — переведем
Ответ, естественно, на первый вопрос.
#3 не думаю, что стоит парсить страничку вики и выкладывать сюда огромный список с codename'ами )), но все же, может кто-то ее не видел или захочет почитать, почему именно такой codename был выбран для того или иного продукта Microsoft: http://en.wikipedia.org/wiki/List_of_Microsoft_codenames
MDD — Model-Driven Development.
Её двигают и IBM: www.ibm.com/developerworks/ru/library/mdd/ch6/ch6.html
и Microsoft: msdn.microsoft.com/en-us/library/aa964145.aspx

У Microsoft описание интересней и понятней.
Основные преимущества описаны у Microsoft в разделе «Why MDD?» Думаю не имеет смысла копипастить сюда английский текст? Лучше чем там написано я вряд-ли скажу. Плюс в статье примеры есть интересные.
конечно не имеет, вы бы еще RTFM написали под ссылочками
Сорри, почему то два раза отправилось…
Model Driven Development (MDD) is an approach to construction of system model which can then be transformed into the real application automatically. The main goals of this approach are: productivity and quality.

Advantages in a nutshell:

1) Development speed — MDD is a next iteration in the software development. In the MDD program model is represented on the higher abstraction level than in the traditional programming languages. Each logic element in this model can represent more than one algorithmic item. With that approach a model can be automatically transformed to an executable application. So you can do less and get more.

2) Cost-effective — with MDD you can do things at a lower price: less people, lower people skills, etc… Moreover, post-production maintenance and adding new features to product is also cheaper, because an application's architecture in that abstraction level is much clearer, but the changes here are also possible and easy.

3) Quality — as was already mentioned, MDD models are transformed to executable code automatically. Therefore we can use the best code practices in the code generation tools and improve already developed MDD application in the post-production without efforts — we just have to buy the best code generator and apply it to the model. We can concentrate on business problems instead of code ones.
Model driven development is a next abstraction level in software development. First, it was assembler with a pure procedural programming. No abstractions, only linear code from top to bottom, calls and loops. After a years, programing languages has evolved, offered more high level abstractions: functions, variables and control from statements. Years have passed and programs became more complex, counting hundreds of thousands lines of code. The new approach was required — and it was born in flame of object oriented programming. Functions and data merges into another level of abstractions — objects — that was able to act as a building blocks for a programs counting millions lines of code. For years, object oriented programming was the most advanced technique to fight an ultimate enemy: software complexity. The bullet was not silver, but generations of programming languages has changed it the evolutionary way. C++, Java, C#. Different access modifies, package management, anonymous classes, delegates, LINQ. But the complexity problem wasn't dead. Event the most advanced object-oriented language like latest versions of C# requires a millions lines of code to write a program. Of course, with objects and packages this code is well structured and can be easily mantained, but… it's still millions of lines. What will be a next step in software development evolution? It's unclear now, but one of possible ways is the model driven development. Instead of writing a code, programmer creates a model description either using a domain language or a special GUI-like tool. Programmer defines objects in the model, they methods, delegates, properties. And, most importantly, the relationships between objects. And now, with a single click of the button, this objects became code in the specified language. Lots of code. And all that remain is to implement actual methods.

Currently, the idea of model driven development faces a hard challenges that prevents a wide spread of technology. First of all, no good way exists that allows a bullet-proof and failure free synchronization between a model and a code. Available solutions are fragile, easy to fail and can't withstand a complex manual changes in codebase. Second, the best way to represent a model is unclear. People tends to use UML, but UML was not intended for software development at first place, so using it to model a software more complex than 'hello world' ultimately fails. Domain Specific Languages varies a lot and it's completely unclear what is the best choice for what task. Third and finally, it's no 'universal' architecture available that is best fit a software models. MVC, delegates, actor model, different types of aggregation, composition and decomposition. Model can't handle anything — try to model a windows kernel driver via UML :). And it's a choice for a developer to select what to model, how to model and what code must be generated to achieve desired result.

I believe, it's possible for a well-tailored mix of modeling techniques, visual representation, code generation rules and well designed toolset to change a way software is created. Repeatedly entering thousands lines of code to support classes, objects and they interaction cries to be automated in the next level of abstraction. Maybe, i will live long enough to even see this myself.

© Я. Мои извинения за грамматику — никогда не было моей сильной стороной.
Only those users with full accounts are able to leave comments. Log in, please.