The Model Driven Software Network
Raise your level of abstraction
I have seen some people believe or like the proposition: “software is abstraction of real world.”
Do you agree it?
Tags: abstraction
Permalink Reply by Model Practice on July 13, 2011 at 16:55 Hi |=,
May be, in the futrue, my grandsons will say: “I never heard of a bill needs to reckon its sum manually!” as there are not paper bills in their world. ;-)
Permalink Reply by Rui Curado on July 13, 2011 at 17:28 I don't think that software is an abstraction of the real world. Software usually cooperates with/supports the real world. It usually fills the "missing parts" in a human-defined process or automates a human task.
I am excluding simulation software, of course, which has the exact purpose of replicating a specific aspect of our world.
Because software is abstract, we need to bring the world to the same level as software (that is, to abstract the real world) so that software can cooperate/connect with it.
Hi Rui,
Would you like to explain these
- Software is not (an) abstraction vs. Software is abstract, isn't there some conflict?
- Does an abstraction have certain source/base?
- What (where) are the abstractions of the real world? Are they models?
Permalink Reply by Rui Curado on July 14, 2011 at 10:09 OK, I'll rephrase that.
Excluding simulation software, whose purpose is to simulate the real world, software is not an abstraction of the real world. Software *works with* abstractions of the real world. These two sentences seem to say the same thing, but they don't.
You can abstract over real-world things, but you can also abstract over concepts, math, etc. For instance, a database table is an abstraction of a "non-real-world" thing, Don't confuse a table (a meta-concept) with what it may represent in the real world (a concept).
By definition, an abstraction is a mental *model*. That's the ultimate source. Whether you put that on "accessible media" (paper/file) it's another thing.
So, my final statement should be : "Software *can* be an abstraction of the real world".
A hard topic, nevertheless...
Permalink Reply by Andriy Levytskyy on July 13, 2011 at 17:46 Hi Andriy,
- Do you say that a model is an abstraction?
- What is the 'program' you mentioned? is a program in java, or is a program in machine code at RAM? And,
- If they are models, What are their 'subjects' (originals, or SUS, Systems Under Study)?
Permalink Reply by Andriy Levytskyy on July 14, 2011 at 21:19 Howdy!
It seems quite difficult to have some constructive results if not changing the topic somehow...
(Maybe we should put 'models' aside temporarily, although that topic is more appealing)
I think, the more fundamental questions maybe (in the context such of software engineering):
a. What is an abstraction?
- I think that, at least, it need to be out of the mental range, right?
b. What is the meaning about abstract level or say something is more abstract than other?
- I am very interested in Rui's statement: “Because software is abstract, we need to bring the world to the same level as software (that is, to abstract the real world) so that software can cooperate/connect with it.” so it's necessary that to answer this question.
The programming languages level (machine code, assembly, high-level language...) is the best clues?
Or,
c. We don't need the notion of 'abstraction', it can be removed with Occam's razor?
Permalink Reply by Andreas Leue on July 17, 2011 at 21:44 "Only through the sun-like nature of the eye are we capable of seeing light."
(Goethe, or less poetic Plotinus)
I think software primarily serves some purpose, which is typically (always) related to something concerning the real world. Software manipulates, reflects, simulates, describes etc. the real world. Naturally, software is (should be) structured to serve it's purpose the best possible way. For economical reasons (Occam's razor...), the relation between software and it's domain should be a simple one (isomorphic...), and therefore relevant parts of the real world are reflected within parts of the software.
© 2012 Created by Mark Dalgarno.
Powered by