challenging bx as a software engineer: what is a problem? how much bx do we need? ekkart kindler

6
Challenging BX as a Software Engineer: What is a problem? How much BX do we need? Ekkart Kindler

Upload: elisabeth-cox

Post on 30-Dec-2015

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Challenging BX as a Software Engineer: What is a problem? How much BX do we need? Ekkart Kindler

Challenging BX as a Software Engineer:What is a problem? How much BX do we need?

Ekkart Kindler

Page 2: Challenging BX as a Software Engineer: What is a problem? How much BX do we need? Ekkart Kindler

Ekkart KindlerMaslow’s hammer

If all we have is a hammer,everything looks like a nail!

2Challenging BX as a Software Engineer

w

Page 3: Challenging BX as a Software Engineer: What is a problem? How much BX do we need? Ekkart Kindler

Ekkart Kindler

3Challenging BX as a Software Engineer

Process / artifacts

PlaceTransition

1 source

1 target

Arc

*

PetriNet

Token

*

Node

PObject

Manifest-Version: 1.0Bundle-ManifestVersion: 2Bundle-Name: %pluginNameBundle-SymbolicName: APetriNetEditorIn15Minutes.diagrBundle-Version: 1.0.0.qualifierBundle-ClassPath: .Bundle-Activator: PetriNets.diagram.part.PetriNetDiagrBundle-Vendor: %providerNameBundle-Localization: pluginExport-Package: PetriNets.diagram.edit.parts,PetriNets.diagram.part,PetriNets.diagram.providersRequire-Bundle: org.eclipse.core.runtime,org.eclipse.core.resources,org.eclipse.core.expressions,org.eclipse.jface,org.eclipse.ui.ide,org.eclipse.ui.views,org.eclipse.ui.navigator,org.eclipse.ui.navigator.resources,org.eclipse.emf.ecore,org.eclipse.emf.ecore.xmi,org.eclipse.emf.edit.ui,org.eclipse.gmf.runtime.emf.core,org.eclipse.gmf.runtime.emf.commands.core,org.eclipse.gmf.runtime.emf.ui.properties,org.eclipse.gmf.runtime.diagram.ui,org.eclipse.gmf.runtime.diagram.ui.properties,org.eclipse.gmf.runtime.diagram.ui.providers,org.eclipse.gmf.runtime.diagram.ui.providers.ide,org.eclipse.gmf.runtime.diagram.ui.render,org.eclipse.gmf.runtime.diagram.ui.resources.edorg.eclipse.gmf.runtime.diagram.ui.resources.eAPetriNetEditorIn15Minutes;visibility:=reexpor

package PetriNets.impl;

public class PetriNetImpl extends EObjectImpl implements PetriNet {protected EList<PetriNets.Object> object;

protected PetriNetImpl() {super();

}

protected EClass eStaticClass() {return PetriNetsPackage.Literals.PETRI_NET;

}

public EList<PetriNets.Object> getObject() {if (object == null) {

object = new EObjectContainmentEList<PetriNets.Object>(Petri}return object;

}

public NotificationChain eInverseRemove(InternalEObject otherEnd, intswitch (featureID) {

case PetriNetsPackage.PETRI_NET__OBJECT:return ((InternalEList<?>)getObject()).basicRemove(otherEn

}return super.eInverseRemove(otherEnd, featureID, msgs);

}

public Object eGet(int featureID, boolean resolve, boolean coreType) {switch (featureID) {

case PetriNetsPackage.PETRI_NET__OBJECT:return getObject();

}return super.eGet(featureID, resolve, coreType);

Manifest-Version: 1.0Bundle-ManifestVersion: 2Bundle-Name: %pluginNameBundle-SymbolicName: APetriNetEditorIn15Minutes.diagrBundle-Version: 1.0.0.qualifierBundle-ClassPath: .Bundle-Activator: PetriNets.diagram.part.PetriNetDiagrBundle-Vendor: %providerNameBundle-Localization: pluginExport-Package: PetriNets.diagram.edit.parts,PetriNets.diagram.part,PetriNets.diagram.providersRequire-Bundle: org.eclipse.core.runtime,org.eclipse.core.resources,org.eclipse.core.expressions,org.eclipse.jface,org.eclipse.ui.ide,org.eclipse.ui.views,org.eclipse.ui.navigator,org.eclipse.ui.navigator.resources,org.eclipse.emf.ecore,org.eclipse.emf.ecore.xmi,org.eclipse.emf.edit.ui,org.eclipse.gmf.runtime.emf.core,org.eclipse.gmf.runtime.emf.commands.core,org.eclipse.gmf.runtime.emf.ui.properties,org.eclipse.gmf.runtime.diagram.ui,org.eclipse.gmf.runtime.diagram.ui.properties,org.eclipse.gmf.runtime.diagram.ui.providers,org.eclipse.gmf.runtime.diagram.ui.providers.ide,org.eclipse.gmf.runtime.diagram.ui.render,org.eclipse.gmf.runtime.diagram.ui.resources.edorg.eclipse.gmf.runtime.diagram.ui.resources.eAPetriNetEditorIn15Minutes;visibility:=reexpor

package PetriNets.impl;

public class PetriNetImpl extends EObjectImpl implements PetriNet {protected EList<PetriNets.Object> object;

protected PetriNetImpl() {super();

}

protected EClass eStaticClass() {return PetriNetsPackage.Literals.PETRI_NET;

}

public EList<PetriNets.Object> getObject() {if (object == null) {

object = new EObjectContainmentEList<PetriNets.Object>(Petri}return object;

}

public NotificationChain eInverseRemove(InternalEObject otherEnd, intswitch (featureID) {

case PetriNetsPackage.PETRI_NET__OBJECT:return ((InternalEList<?>)getObject()).basicRemove(otherEn

}return super.eInverseRemove(otherEnd, featureID, msgs);

}

public Object eGet(int featureID, boolean resolve, boolean coreType) {switch (featureID) {

case PetriNetsPackage.PETRI_NET__OBJECT:return getObject();

}return super.eGet(featureID, resolve, coreType);

Page 4: Challenging BX as a Software Engineer: What is a problem? How much BX do we need? Ekkart Kindler

Ekkart KindlerPurpose of BX techniques

Which SE tasks, practices and development methods should our transformation techniquesbe applied for?

How much formality do they need? How much bi-directionality do they need?

What are the ”degrees” of bi-directionality?

Have lenses, TGGS, whatever the same ”degree” of bi-directionality?

4Challenging BX as a Software Engineer

Actually: how much can we

afford! cost / benefit

Page 5: Challenging BX as a Software Engineer: What is a problem? How much BX do we need? Ekkart Kindler

Ekkart KindlerExamples

”MDA model chain”: CIM, PIM, PSM, (Code)

Code generation / manual changes in code

Model (code) migration/evolution Model & instance co-migration/evolution

Traceability

Representation of ”added or forgotten” stuff(transformational vs. incremental MDA)

5Challenging BX as a Software Engineer

Page 6: Challenging BX as a Software Engineer: What is a problem? How much BX do we need? Ekkart Kindler

Ekkart KindlerMy Challenge

Clarify for your BX technique:Where in the development processdo you propose to use your technique?How much bi-directionality is needed?What is the (extra) cost?What is the (extra) benefit?

Do we have an adequate measure of bi-directionality?

6Challenging BX as a Software Engineer

(Ab)use of the term

case study!