Written by: William Martinez
Published on April 26th, 2008 @ 06:31:45 pm , using 448 words at here
During all these discussions, in this blog and other forums, I have found some semantic dissonance. This means some people use the same word and even the same concept, but actually understand different things from it.
So, words like architecture and design mean paper to some and process to others; they may be normal, unnecessary or even offensive. This is a little post that tries do define some of the words I use, just to be sure anybody that reads me understands what my meaning is.
Design: As a verb, is the process of decision making towards the creation of a solution. As a noun, it is the one word name of Design Description.
Design Description: The description of the decisions taken toward a solution and their rationale. It can be a document, image or even multimedia.
Code: Sentences, written in a particular language, that describe the solution. It can be at any level, and may (or not) be executable.
Strategic Design: Design that focus on architecturally significant issues, whose majority are global decisions described in an intensional way.
Tactical Design: Design that focus on tactical issues, whose majority are local decisions described in an intensional way.
Micro Design: Design that focus on operational issues, whose majority are local decisions described in an extensional way.
Domain: Is the set of concepts and relations that define a reality. It is not a description, since those concepts may be infinite or unbounded.
Abstraction: Is the result of abstracting: process of elimination of detail without loosing the essence of the concept being abstracted.
Model: Abstraction of a reality from an specific domain.
Modeling: Process of describing a possible reality in an abstraction level.
Architecture: System Structures, the externally visible properties and the relations between them. NOT PAPER.
System: Independent structure of components interrelated.
Software Intensive Systems. Systems where the majority of the components are software based ones.
Solution: Part or whole of a system that solves a problem from a domain.
Meta something: Meta means beyond, above of, self-referring. Using those concepts of the suffix, we may say meta-modeling is modeling models. Meta-data is data about the data. Meta-language is a language that allows us to describe languages. Meta-comments are comments about the comment. And so on.
Now some notes: from the above, we can say interesting things. For instance, modeling is not a paper generation process, but a description process. Modeling can be use to describe a solution, thus it can also be interpreted as coding. And code, it is not just writing executable lines (in fact, they are not executable, they need more work).
When time and other discussions require it, I will be posting more glossary terms.