200 likes | 303 Views
Domain Models Are Aspect Free. Friedrich Steimann Fernuniversität in Hagen @ MoDELS 2005. Outline. motivation presentation as scientific work modelling and aspect orientation. Motivation. aspects are a new concept that is useful offers something unavailable before
E N D
Domain Models Are Aspect Free Friedrich Steimann Fernuniversität in Hagen @ MoDELS 2005
Outline • motivation • presentation as scientific work • modelling and aspect orientation
Motivation • aspects are a new concept • that is useful • offers something unavailable before • or something that had to simulated • that is generally useful in SE • that is useful in domain modelling • everything must become aspect ready • including domain modelling
Scientific approach • observation • explanation (hypothesis) • theory • proof or • falsification • falsifiable(theory) scientific(theory) • says Karl Popper
Observation • monotony of examples • usually some technicality or programming issue • seldom concepts that I would expect in a domain model • if domain-level, reason for it being an aspect is typically lacking (or informally argued) • e.g. interest rates in a banking application • e.g. card verification in a transportation system • e.g. give crystals in a game
Explanation why is this so? • domain aspects are so obvious that there is no need to talk about them? • do you think so? • why then recurrence to technical aspects in examples? • there are no aspects in domain modelling? • maybe
Theory Domain modelsareaspect free.
Problems Domain models are aspect free. • What is a domain model? • (formal) description of that part of the world that hosts a particular programming problem • What is an aspect? • concept involving obliviousness + quantification
Proof attempt This sentence is false. • a language is logically unsound if above sentence may refer to itself (says Tarski) • introduction of orders to separate levels • FOPL is standard semantics for data models • e.g. relational data model • e.g. entity relationship model • they admit no propositions over propositions • sufficient for domain modelling
Proof attempt • obliviousness: every aspect has a where/when clause • quantification: not based on an enumeration of targets • set of targets unpredictable (potentially infinite) • no natural translation to FOPL • aspects are second order • and not first order m(x, …): s(m(x, …)) (m(x, …) a(x, …)) m(x, …): s(m(x, …)) (m(x, …) a(x, …)) m(x, …): s(m(x, …)) (m(x, …) a(x, …))
firstOrder(domainModels) secondOrder(aspects) aspectFree(domainModels) q.e.d.
Refutation • falsification of theory is methodically simple: provision of counterexamples • but: where are they? • “pseudo aspects” to be excluded from refutation • roles are no aspects • subroutine calls (or even annotations) are no aspects • everything coming without obliviousness + quantification is not an aspect • (everything that can be expressed without aspects)
Pseudo aspects “roles” • a role specifies context-specific properties and behaviour • objects of different types (classes) can play the same role • roles classify objects • classification crosscuts class hierarchy • but: role implementation differs per class
Role named type definition depends on (collaboration with) other roles implementation is polymorphic Aspect not a type (not today) definition is isolated (independent of other aspects) implementation is the same throughout Roles Aspects
Concrete pseudo aspects • interest rate seems to be a POSC • validate card seems to be a sub use case • give crystal seems to be a subroutine that is called in certain conditions of a game • Personalization (e.g., car convenience scenario) is a role Personalizable (it’s polymorphic!)
Aspects and modelling • aspects break with locality principle • graphical modelling lives on locality(n-dimensional neighbourhood through lines) • aspects difficult to depict graphically • as subroutines before • as design patterns
Aspects and modelling • modelling itself is perhaps aspect oriented • different views = different aspects? • AOP concepts and techniques may be useful in defining a modelling langauge • weaving is certainly needed • the metamodelling language is aspect oriented, but not the language it models! • in line with second orderedness of aspects
Prove me wrong! Send me aspects • that are not pseudo • that are part of a domain model • that need aspects as a modelling concept • one is not enough! steimann@acm.org
Thank You! Questions?