ABSE Logo
Atom-Based Software Engineering

ABSE is Refactorable

Wikipedia's refactoring definition:

"In software engineering, "refactoring" source code means improving it without changing its overall results. The process could be informally referred to as "cleaning up" or "taking out the garbage". Refactoring neither fixes bugs nor adds new functionality, though it might precede either activity. Rather, it improves the understandability of the code, changes its internal structure and design, and removes dead code.
These changes are intended to make the code easier to comprehend, more maintainable, and more amenable to change. Refactoring is usually motivated by the difficulty of adding new functionality to a program or fixing a bug in it."

ABSE is highly refactorable. Because you can refactor at the Atom level, you are refactoring at a higher level than just code. You'll find out that most code refactoring operations can also be done at the Atom level.

Refactoring operations in ABSE range from a simple Atom move up to an entirely new Atom Library.

For instance, transferring some code into another method may just involve moving the affected algorithm Atoms into the new method Atom.

Refactoring Architecture

ABSE metamodels can evolve with your skill, giving you an easy, smooth evolution path towards full Model-Driven Software Development and Domain-Specific Modeling.

ABSE Refactoring Levels

You can start doing just some text transformation, grow up by refactoring metamodels into common patterns. You can continue right up to Software Product Lines.

Example:


Refactoring and Reuse

In the above diagram, a pattern was identified (left). Then, a new Atom Template was created from the identified pattern (center). The pattern is removed from the model and replaced by reusing the new Atom Template (top right).

This specific Atom refactoring operation is similar to the Extract Method code refactoring.

 

 

Learn the Basics
Technical Details
For the Individual
In the Enterprise

Product Site

Twitter
ABSE & AtomWeaver Community
Development At Heart Blog

Isomeris Site
Technology Portfolio

Isomeris Logo