Archive for Software Modeling

Article: Developing a Complex External DSL

Developing a Complex External DSL by Vaughn Vernon

I have provided a high-level overview of what DSLs are in general and a bit more specifically what internal and external DSLs are. I also cover the main challenges and patterns involved in developing a complex external DSL. This provides a brief but firm foundation for doing meaningful DSL development. Obtaining the proper tools to define and generate parsers and metamodels will help you make rapid progress, but there is no tool that will replace the thought and design that goes into your language's formal grammar, metamodel, and code generation.

Comments

Article: Writing A Textual DSL Using ‘OSLO

Writing A Textual DSL Using 'OSLO by Dilip Krishnan

Microsoft unveiled the building blocks of their “OSLO” vision during the PDC event in Los Angeles. Oslo has three main components:
* A modeling language M for textual DSLs
* Quadrant a design surface for graphical DSLs
* A relational database repository that stores these models.

Comments

Article: UML Profiles for Real-Time Systems and their Applications

UML Profiles for Real-Time Systems and their Applications by Abdelouahed Gherbi and Ferhat Khendek, Electrical and Computer Engineering Department, Concordia University, Canada from Journal of Object Technology

Abstract
Real-time systems (RTS) have strict timing constraints and limited resources. The satisfaction of RTS timing constraints is required for their correction. In order to reduce the cost due to late discovery of design flaws and/or violations of timing constraints of RTS as well as to speed up their development to cope with time-to-market requirements, it is important to validate, at early stages of the development process, the functional and nonfunctional properties of RTS. In addition, RTS complexity is continuously increasing which makes their design very challenging. UML, a graphical object-oriented modeling language, is suitable to deal with this complexity. UML also supports predictive, quantitative analysis through its real-time profiles. The objective of this paper is to review the most important UML profiles for real-time from the academia, the industry and/or standard organizations; and the research activity that revolves around these profiles.

Comments

Article: Anything You Can Do, I Can Do Meta

Anything You Can Do, I Can Do Meta 

Space tourist and billionaire programmer Charles Simonyi designed Microsoft Office. Now he wants to reprogram software published in MIT Technology Review, Jan 8, 2007 by Scott Rosenberg

Simonyi believes he can solve a host of stubborn problems that have always plagued computers by offering everyone who uses them, and the coders who program them, a higher-order view of software.

Studies regularly report that two-thirds of such projects encounter major delays, significant cost overruns, or both. … Every year, according to a 2002 study by the National Institute of Standards and Technology, software failures cost $59.5 billion. But the price of bad software can also be measured in human misery–and even in lives lost. … One formulation of this problem is known as Wirth's Law, after programming expert Niklaus Wirth: "Software gets slower faster than hardware gets faster."

Simonyi's ambition is to unstop that software bottleneck–characteristically, by going meta. He's developed an approach he calls intentional programming (or, more recently, intentional software), which he hopes will overturn programming. If Simonyi has his way, programmers will stop trying to manage their clients' needs. Instead, for every problem they're asked to tackle–whether inventory tracking or missile guidance–they will create generic tools that the computer users themselves can modify to guide the software's future evolution.

The difficulty of coördinating a team's work inspired software engineering's most famous dictum, known as Brooks's Law: "Adding manpower to a late software project makes it later."

This was the backdrop for Simonyi's 1977 dissertation, "Meta-Programming: A Software Production Method." Simonyi proposed a new approach to "optimizing productivity," in which one lead programmer, or "meta-­programmer," designed a product and defined all its terms, then handed off a blueprint to "technicians," worker-bee programmers who would do the implementation.

In 1981, Simonyi moved to Seattle to start the new-­applications group at Microsoft, which until then had sold programming languages and operating systems. He was 33, but that made him a grown-up among Microsoft's striplings (Gates was then 26 years old, Steve Ballmer 25).

Moving to a position at Microsoft Research, Simonyi began to define the concept of intentional programming, or IP for short. Intentional programming would add an entirely new layer of abstraction to the practice of writing software. It would enable programmers to express their intentions without sinking in the mire of so-called implementation details that always threatened to swallow them. … [I]ntentional programming called for a sort of code factory called a "generator," a program that takes in a set of relatively high-level commands and spits out more-detailed working code. The goal wasn't so much to ease the labor of programming as to let programmers clear their brains of trivialities so they could actually be creative.

Simonyi had been a company man for more than 20 years. But in 2002, he left Microsoft and launched an independent company. He walked out with a patent-cross-­licensing agreement that let him use the concepts and ideas of his intentional-programming research but did not permit him to take any of his old code with him. He would have to start writing a new code base from scratch.

Intentional Software's strategy borrows from a trend in programming known as "domain-specific languages" or DSLs–little programming dialects tuned to the needs of specific disciplines. Simonyi praises DSLs but says they don't go far enough. They're hard to create and therefore costly; you end up needing more than one (for a medical billing system, you'd need at least a medical and a financial language); and they're incompatible with one another. Intentional Software's system is like a factory for multiple DSLs that can talk to one another.

Here's how it might work: Suppose an international bank wanted to develop a new system for managing transactions in multiple currencies. First, the bank's own domain experts would define the system's functionality, using their customary terms and symbols and identifying the most important variables ("time" or "value" or "size of transaction") and the most common procedures ("convert holdings from one currency to another" or "purchase hedge against falling value"). Then the programmers would take that information and build a "domain specific" program generator that embodies that information. A separate software tool would allow the domain experts to experiment with different sets of data and ways to view that data as easily as business­people today rearrange their spreadsheets.

We should be able to design functions and data structures–which intentional programming represents as "intentional trees"–and let the generator modify the code accordingly.

The visible fruit of Intentional's work to date is a nifty tool called the Domain Workbench, which stores a program's vital information in an intentional-tree database and then offers you many different "projections" of that information. In a demonstration Intentional gave at two conferences last fall, the Workbench–using a feature called the Kaleidoscope–took a series of code fragments and displayed them in a dizzy­ing variety of formats. It didn't matter how the syntax of the code had been specified; you could view it, and change it, using whatever notation you preferred. You could edit your program as traditional bracketed and indented code, or switch to outline form, or make it look like a schematic electrical-wiring diagram, or choose something called a "railroad diagram," a kind of flowchart notation derived from old-fashioned train maps. Each view is a translation of the underlying tree–which you can also examine and edit.

Comments

News: Free Modeling Tool Aims for Small Companies

Seeking to bring Unified Modeling Language (UML) capabilities to a new generation of embedded-software developers, Telelogic AB this week will introduce Telelogic Modeler, a free UML design environment. It provides a subset of the capabilities in Telelogic's commercial Tau and Rhapsody UML modeling tools.

Read full news at http://www.ddj.com/dept/architect/196800522?cid=RSSfeed_DDJ_ArchitectDebug .  Free software Telelogic Modeler website is at http://www.ilogix.com/sublevel.aspx?id=1756

Comments

Article: Can Domain-Specific Modeling Replace UML?

Can Domain-Specific Modeling Replace UML? By Mario Morejon from Dr. Dobb's Portal – Architecture & Design

With DSM, complete code generation directly from business models is possible as long as code fulfills narrow application tasks. In an ideal model-centric approach, models generate all the code needed to build applications without even knowing what programming technologies were used. Essentially, architects use MetaEdit+ to define language concepts and rules that make sense for specific business domains. In addition, the objects in the MetaEdit+ models do not have a one-to-one correspondence to specific classes. Therefore, software architects do not have to know anything about the code generated.

Comments

Eclipse Modeling Symposium 2006

Eclipse Modeling Symposium at Eclipse Summet Europe 2006 Oct 11-12, Esslingen, Germany.

Selected Position Papers
Eclipse BPMN Modeler ? Introducing Intalio|Designer
Arnaud Blandin, Ismael Ghalimi, Hugues Malphettes, Intalio Inc, USA & Switzerland

Weaving Models with the Eclipse AMW plugin
Marcos Didonet del Fabro, Jean Bézivin, Patrick Valduriez, ATLAS Group (INRIA & LINA), France

Best Practices for Model-to-Text Transformations
Markus V?er, Bernd Kolb, oAW, Germany

On the Specification of Textual Syntaxes for Models
Frédéric Jouault, Jean Bézivin, ATLAS Group (INRIA & LINA), France

MDE for Large projects: Today Needs and Tomorrow Standards
Etienne Juliot, St?ane Lacrampe, OBEO Company, France

The "Usine Logicielle" Project in the French System@tic Cluster
Philippe Mils, Thales Research and Technology

The VIATRA2 Transformation Framework: Model transformation by Graph Transformation
Daniel Varro, Andras Balogh, Andras Pataricza, Budapest University of Technology and Economics

The new Gentleware Eclipse Modeling Tool Based on GMF, EMF and UML2
Marko Boger, Gentleware AG

Eclipse Development Tools for Epsilon
Dimitrios Kolovos, Richard Paige, Fiona Polack, University of York, UK

Presentation of EMF Compare Utility
Antoine Toulme, Intalio Inc., USA

Towards Structured Revisions of Metamodels and Semi-Automatic Model Migration
Boris Gruschko, SAP Research, Germany

oAW xText: a framework for textual DSLs
Sven Efftinge, Markus Voelter, oAW, Germany

Eclipse Modeling Project and OMG(tm) Standards
Richard C. Gronback, Borland Software Corporation

 

Comments

SysML: OMG Systems Modeling Language

OMG SysML 

a general-purpose graphical modeling language for specifying, analyzing, designing, and verifying complex systems that may include hardware, software, information, personnel, procedures, and facilities. In particular, the language provides graphical representations with a semantic foundation for modeling system requirements, behavior, structure, and integration with a broad range of engineering analysis.

Read OMG SysML Tutorial and Final Adopted OMG SysML Specification (ptc/06-05-04) May 2006

Comments