Id,OwnerUserId,CreationDate,Tags,AnswerCount,CommentCount,FavoriteCount,ViewCount,Score,Title,Body "1026496","126789","2009-06-22 10:43:03","","1","0","1","641","1","Unified Process and UML confusion","

Im a bit uncertain about the relation between the Unified Modeling Language (UML) and the different modelling perspectives (conceptual, specification and impelementation) endorsed by (R)UP among other OOA/D methodologies.

From what I understand the same type of diagram using the same notation can have different meaning depending on the perspective* being used. For instance the class diagram can represent an abstraction of real world systems / phenomena in the conceptual perspective and when perspective is later changed to specification/implementation the class diagram is used to abstract constructs of a computer program.

Questions:

1) It is my understanding that certain rules exist for a UML class diagram in general. For instance that a class can extend another class but that it can't extend an association. Where are the entities of the class diagram and the rules about how they can relate defined? Does it all take place at the M2 layer in the UML metamodeling architecture (see wikipedias illustratio of metamodel architecture)?

2) A related question. The way I see it, the general rules for a specific diagram span the modelling perspectives (again, it is absurd for a class to extend an association), but the different modelling perspectives will superimpose certain meaning to a particular type of diagram. For instance an association in the class diagram of the domain model (conceptual perspective) will inherently be bidirectional whereas it can be either bi- or unidirectional in the class diagram of the design model (specification / implementation perspective).

In the scenario just described the rule superimposed limits the properties of an association. Is it a correct assumption that rules superimposed by perspectives will always be a subset/limitation of the rules defined by the uml metamodel and never a superset?

Are these rules/limitations defined by the perspectives formalized (in a way similar to the metamodel) or are they mere conventions described in the OOA/D litterature?

* Perspectives are explained in paragraph 10.8: http://books.google.co.uk/books?id=r8i-4En_aa4C&printsec=frontcover&hl=da&source=gbs_v2_summary_r&cad=0

" "2485746","280391","2010-03-21 03:05:24","","13","8","7","6764","19","Is UML a programming language?","

Could UML be used to program a computer system on its own, without a supporting implementation language, e.g. diagrams straight to machine code (maybe via C or C++ etc), without human coding intervention.

" "5265897","175399","2011-03-10 21:04:54","","2","2","","264","0","Is implementing a code generator a sort of model driven design/ model driven software developement?","

Is implementing a code generator a sort of model driven design/ model driven software developement or are both methods completely different?

For instance, when you use the Entity Framework code generation. Is this a kind of model driven design?

Does it makes any differents on using a model or a meta model when I use the term model driven design?

No more answers?

" "5897996","649727","2011-05-05 12:53:41","","2","2","4","1477","6","Model-driven Software Development vs. Haskell","

Just reading the (german) Wiki-Article about Model-Driven SW-Development (MDSD). Summing up the Wiki-Definition:

  • MDSD is about the DRY-Principle (Dont repeat youself)
  • MDSD is about the Design of DSLs (Domain Specific Languages) and Generators
  • More concise description of problems (through the higher level of abstraction of the respective DSLs) is possible through MDSD.

Since I know and use higher-order functional programming I wonder, and my actual question is: Is MDSD nothing but a desparate attempt to inject (a part of) the powerful features higher-order functional programming offers into programming languages / paradigms which inherently lack those features?

(Or did I misunderstand and could MDSD even be used to substantially support higher-order functional programming?)

" "5913704","742062","2011-05-06 15:37:19","","3","0","3","1740","3","Model-driven development: What is a transform?","

As I understand it, model-driven development (MDD) allows automation whereby programs/models are automatically generated from their corresponding models via the application of transformations.

All I know about transformations is that they are some way of storing a developer's platform-specific expertise.

But what exactly is a transformation?

" "14040951","536299","2012-12-26 13:01:22","","1","0","","113","0","Generic term for hbm2ddl.auto (entity classes to DDL) capability","

I would like to know what the generic term is for hibernate's Entity classes to DDL (hbm2ddl) capability.

Is it Domain Driven Design or Model Driven Development or something else?

" "14419244","806747","2013-01-19 21:50:00","","1","0","1","1216","3","xtext: Relation between AST, Metamodel and parse tree","

Can someone explain me the relationship between a parse tree, AST and metamodel. I know so far that xtext derive an EMF Ecore metamodel out of the grammar and generate a parser with antlr. But how will it then be parsed: An input goes first trough the lexer and then the parser creates a parse tree out of the parser rules, right? And out of the parse tree, Xtext creates also an AST? For what? And what purpose has the metamodel in this case? I'm a little bit confused of all the definitions.

" "14922826","606726","2013-02-17 15:42:01","","3","0","","579","2","How much is Eclipse EMF related to the OMG MDA standard?","

I am looking for a new MDA tool to try out for modelling and code generation. This is not for any work related project yet, but for testing purposes. I only used the Merode approach until now (using jMermaid for modelling and the accompagnied code generator) but want to try out something new.

Since EMF is integrated in Eclipse I see a lot of positive reasons to try it out. But after reading some documentation and online articles, I wonder how much it adopts the OMG MDA standards and how much it doesn't.

For example I found the following text

If, on the other hand, you have already bought into the idea of modeling, and even the Model Driven Architecture (MDA) big picture,3 you should think of EMF as a technology that is moving in that direction, but more slowly than immediate widespread adoption. You can think of EMF as MDA on training wheels.

on http://www.informit.com/articles/article.aspx?p=1323360&seqNum=2

But I can nowhere find a concise list of what points of the OMG standard are implemented and which ones are left out or interpreted differently. Anyone that can help out with that? (And if there are other, more recommended tools, I'm always open to suggestions.)

" "22513896","3100186","2014-03-19 17:39:34","","4","2","1","750","4","What is the differences between Traditional code-based engineering and model-driven engineering approaches?","

I've found this paragraph in the literature but I didn't understand the meaning of it

Design practice is moving from traditional code-based engineering, with a strong division of work along the development life cycle, to model-driven engineering approaches where all people in the design flow can have their saying on the models.

Any help would be very appreciated

" "25505240","413531","2014-08-26 11:54:47","","1","2","1","245","2","PHP: Generate code from abstraction (xml, json, data base, ...)","

Note Feel free to suggest a better title as I think 'generate code' and 'abstraction' might not be the best expressions for what I want to ask :)

I'm looking for a good pattern/standard way to generate PHP code from some sort of abstraction layer.

Example

I've built a set of classes that act es text-processing filters. These filters can be chained together to transform some input-text into some other output text, e.g.

Input ""Hello 'CRUEL' World"" 
>> RegexFilter('(.*?)') [extract everything between '']
>> ToLowerFilter [lowercase the extracted text]
Output: cruel

Resulting Code

The corresponding source code looks something like this:

$input = ""Hello 'CRUEL' world"";
$pattern = ""#(.*?)#"";
$first = new RegexFilter($pattern);
$second = new ToLowerFilter();
$first->setNextFilter($second);
$ouput = $first->Transform($input);
echo $output; // cruel

I would like to create some sort of abstraction layer, so that the end user (non-programmer) can built his own filter chain without writing code by himself. By ""abstraction"" I mean something like XML, JSON, stored in a database, etc.

XML example (suggestion)

<filters>
 <filter name='Regex'>
  <properties>
   <property name='pattern'>'(.*)'</property>
  </properties>
  <nextfilter name='ToLower'>
   <properties/>
  </filter>
 </filter>
</filters> 

Remark: The example is very simplistic. Think of more advanced things like ""complex objects as properties for filters"", ""inheritance of filters"" (the above filter could get the name ""RegexToLowerFilter"" and can be referenced by other filters), etc.

Approaches / Ideas

Is there standard way to tackle this sort of problem? So far I've thought of building a custom XML, JSON, etc. serializer/deserializer for every filter but that seems like a lot of work and is potentially error prone because it's done individually for every filter. Further I guess that would require to make every possible dependency also serilizable in the same fashion - which can be problematic when using third party libraries (e.g. JsonPath).

I suppose the most elegant way would be the creation of Domain Specific Language. Unfortunately building a compiler is not the easiest task and probably not always appropriate for every problem in that space. (Then again, feel free to correct me :))

TL;DR

I'm looking for a suitable way / pattern to built an abstraction layer between the (non-progammer) end user and my source code. The solution should take the ""simplified"" abstraction and ""generate"" the corresponding code.

" "34046283","4850941","2015-12-02 15:16:50","","1","0","","321","1","Differences between MDSD & MDD","

I would like to know if there is any difference between:

  1. Model-Driven Software Development (MDSD)
  2. Model-Driven Development (MDD)

I always find these two terms in many articles and public literature, but no one highlights the differences.

" "49150984","5385862","2018-03-07 11:37:56","","2","0","","108","1","MDA (Model Driven Architecture)","

I have a doubt about MDA.

And this is my doubt, I can used the MDA concepts in a architecture that is not related to it(e.g ER), ?

" "54517986","7392308","2019-02-04 14:10:23","","2","1","","89","3","UML - Is it possible to add ActivityPartitions to StructuredActivityNodes?","

In the UML Specifications on page 476 there is the following diagram:

If I'm not mistaken, it should not be possible to add ActivityPartions (which are a specialization of ActivityGroups - just like StructuredActivityNodes) to a StructuredActivityNode, right? According to the diagram the only relationship between StructuredActivityNodes and ActivityGroup is a generalization/specialization relationship. There should be a composition relationship as well if Partitions in StructuredActivityNodes would be possible.

Am I wrong? I'm asking because it is possible in some tools (VisualParadigm for example) but not possible in other tools.

" "57792236","11078057","2019-09-04 16:08:38","","2","3","","111","0","Model, Meta-model and Meta-metamodel","

The argument

i'm studying software engineering, and i'm on "model driven engineering" course slides.

The main topic of this slides is, obviously, the model.

the definition for the general concept of a model is:

A model is an abstract representation of a system, wich represent it from certain point of view

then continues defining the meta-model concenpt:

A meta-model is a model used for build and understand a model. every model must conform to a meta-model

my course slides make the example of map of subway (model) and it legend (meta-model)

ok, so far so good.

Then it doesn't stop and continue with meta-metamodel definition

a meta-metamodel is a model used for build and understand meta-model. every meta-model must conform to meta-metamodel.

The doubt

Now i'm thinking about what a designer do in an analysis of a generic problem.

example

pick the problem of mantaining the information of a zoo in wich there are:

  • Animal
  • Cage (in which are stored animal)
  • Workers(that feed animal)

Now, in my mind a model of this "domain" is:

and a meta-model of this model is:

ok, now who/what is the meta-metamodel?

"