« Research Tips | Main | Modularity »


Thinking in the Abstract

A significant challenge in understanding Information Technology is getting used to thinking in the abstract or, put another way, using abstraction to think about, visualize, and articulate the virtual.

As vast and powerful as it is, software is intangible. It exists only as a series of executed instructions.  A piece of software might be so simple that it's like adding two numbers (x + y = z).  On the other hand a software system might be so sprawling and complex it's like decoding the human genome!    Not surprisingly, it can be very challenging to understand, to discuss, and to troubleshoot software problems.  In order to approach software...that is to design it, to break it down into smaller parts, to discuss with others what the software is doing, and so on, we use conceptual, or visualization, techniques to form an abstract concept of what the software does - what it can be used for.  Abstraction is the thought process wherein ideas are distanced from objects.

In class I used a mathematical formula example to illustrate, in simplistic terms the process of abstraction.  A concrete example of a mathematical forumal might be 2+3=5.  It's a solid formula that we might use for situations calling for adding those two numbers together....but it's a very specific, inflexible formula as well.  If we use x + y = z, an algebraic formula we can see that while we can still use it to add 2+3 we can also use it to add ANY two numbers together and so it is both more abstract and more powerful, more flexible.  We can make it more abstract by saying x ? y = z where ? may equal any mathematical operation (addition, subtraction, division, multiplication, and so on).  Thus this function is even more abstract and more flexible because we can use it to subtract, divide, or multiply two numbers together as well as add.  More power!   As we get too abstract, however, say a function that takes any series of numbers and performs any operation, we can see that it becomes too general, too flexible to abide by logical rules.

In class we also discussed how "machine" is an abstract way of describing an overhead projector.  Pitney Bowes serial number OP24579 is a very concrete specific instance of an overhead projector.  And in between those two extremes we can see classes or subclasses by which an entity, in this case an overhead projector might be described at different degrees of abstraction (i.e translucent overhead projectors, office equipment,  electrical machine, machine).

Abstraction uses a strategy of simplification of detail, wherein formerly concrete details are left ambiguous, vague, or undefined; thus speaking of things in the abstract demands that the listener have an intuitive or common experience with the speaker, if the speaker expects to be understood.abstraction.gif
To design a basketball, a model of the Earth, or an animation of Cartman we might start with an abstract drawing of a sphere. To start to build a house, or an entire sub-division, we might start with an abstract drawing of building plans.

Here's another examle using a characteristic, or property, and a relation. We can talk of the colour red in the abstract. We can describe it vaguely or generally by giving popular varieties of red as in ruby red, fire engine red, maroon, its hue, its RGB colour code, and so on. When we think of something as general and undefined as "red" we can think, visualize, or speak in the abstract. This can be quite useful. Lots of different things have the property of redness. We can use the idea of redness to think of, visualize, and articulate all sorts of things. We can apply the concept of redness in myriad directions. Now apples, tomatoes, wine, and other objects that possess red as a property are specific. The indivdual cases of these objects have a unique and specific, or concrete brand of redness. When we speak of them we speak about individual instances.

Likewise we can speak of relations, action words, and processes in the abstract or the concrete. "Doing something" is an abstract phrase void of detail. "Punching George in the face" is concrete. A sales order process or a procurement process denotes two business processes which virutally every business must manage effectively. In this sense these processes can be thought of in the abstract. But all companies have individual preferences when it comes to managing their business processes. When we talk specifically about how a company implements their processes, what business terms they use, and so on, we would be talking about an instance of that business process. When a customer service representative pulls your file to look over an old sales order they are looking at a concrete instance of that process at work.

Computer software is designed in the abstract. Concurrent, overlapping, and intersecting pieces of software begin as abstract plans. When they are executed the abstract pieces work together, apply templates, and collate specific data to become concrete instances that provide services and results.

Posted by Mark Hemphill on March 8, 2006 | Permalink

Comments

The simplest way to explain the word abstract is: When you are think king how to do something that abstract. Doing what you were thinking is specific.
Abstract is a better way of thinking about software’s; because a piece of software before it is designed and coded the programmers must come with an abstract sample of the software which is the software blue print. This is like a plan of a house; it gives all the details about the software. Then after having a complete blue print of the software the programmers will distinctively design it.

Posted by: Liagu Nkulu | Mar 13, 2006 10:20:14 AM

The idea that software is abstract is an interesting thought. When you think of something being abstract you dont really think of the games and software you use as being intangible because you can actually take the software created and create something concrete and recognizable from just a equation of numbers and instructions. I find it very interesting that softweare can be taken back to such a simple base that most people could figure out quite easily when introduced to the whole concept of the abstract becoming something concrete!

Posted by: Ashley Farrell | Mar 13, 2006 12:31:35 PM

When thinking in the abstract could the class MIS be considered a subclass of a degree (BBA) which would be considered a subclass of a degree in general from a university? If this is true the most specific product of the abstrcat idea of a university degree would be the student. Am I on the right track of thinking with this idea or would that be a far out interpretation?

Posted by: Mark Corney | Mar 13, 2006 1:23:27 PM

Mark, that is a fair comparison. A specific diploma representing your degree would have characteristics of a BBA which would have characteristics of a University degree perhaps. Our class, even each instance of our class, you could say, has characteristics of an MIS course which in turn has characteristics of any business course which has characteristics of any course in general.

Abstraction is really the ability to recognize these characteristics distinctly. That allows us to think of them as active elements which come together to form specific entities. Thus we can develop many smallish software models in the abstract and resuse them in many combinations and contexts to form specific instances.

Posted by: Mark | Mar 13, 2006 1:32:50 PM

Abstraction is an effective tool for explaining a complex concept. By remaining vague, you gain a general understanding of the concept, and from there you can better put into perspective a specific example. This way of thinking is critical when trying to come to grips with concepts such as software.

Posted by: Sean Corcoran | Mar 13, 2006 7:26:07 PM

I also find the idea of thinking of software as being abstract very interesting. I never would have thought of it in that sense before. When I think of "abstract", pictures hanging in a museum come to mind. Abstract art...something that is open to many different interpretations. When you stop and think about it software is kind of like that. It may not be open to many different interpretations as such, but it is open to many different uses.

Posted by: Jen | Mar 14, 2006 3:02:42 PM

If your having a hard time on grasping the concept of abstract think about time itself. Time is a abstract idea we use everyday, and everywhere. A second, a minute, a hour, a day. This are all abstract ways of dealing with the past and the future. How impossible would it be to teach history, with out being able to relate it with time,Our make it to class?

Posted by: Adam | Mar 15, 2006 5:15:08 PM

Whenever I was reading this post, I was immediately thinking about the QuattroPro spreadsheet. The software itself is made up of mathamatical formulas to be used in a variety of ways, for numerous purposes. The software was made knowing that the software needed to be very abstract. It can be used to calculate totals, graphs, and columns. It can involve the same formulas with small changes to do a different job, and therefore, overlapping and intersecting. When the user is done they can just click to design a chart, and the software looks at the information and creates it. The information is all tied together to work with the formulas. Quattro Pro is like you are designing the software as you need it. The program was programmed to do this, however, it also is very versatile.

Posted by: Tiffany | Mar 16, 2006 5:06:13 PM

I really like the comments made so far on this post. Mark Corneys example of a degree at the university really helped my understanding of what abstract really is and Adams example of time and Tiffany's example of Corel QuattroPro really sent it home. Thanks for your insights guys!

Posted by: David McKenna | Mar 20, 2006 3:10:00 PM

When i was reading the post i was thinking about what is an abstraction?After reading the post i got,it is a mechanism which factor out details so one can understand and focus on few concept at a time.So i think it is like the brainstorming and the blue print of that specific things which gives a good overview of what the thing is.It is necessary for the software architecture because it gives the proper design pattern and gives an idea what would be in the software.

Posted by: MD.GOLAM MORTOZA | Mar 21, 2006 11:47:06 PM

I would have to agree with Mr.Corcoran's post above. Abstraction is a very useful tool when attempting to explain your own area of expertise or knowledge. One good example of this would be a doctor giving a patient his diagnosis. The old addage "give it to me straight doc" is a great example of abstraction. When a doctor is trying to explain, he/she will often put it in layman's terms rather than medical jargon.

Posted by: Janson Simmonds | Apr 6, 2006 9:22:23 PM

You're are certainly right Janson. Abstraction is a very useful tool when attempting to explain your own area of expertise or knowledge. I like when mark explains things in lamens terms so they are easier ti understand instaed of using computer jargon all the time.

Posted by: Andre | Apr 6, 2006 9:44:44 PM

Excellent points made by both gentlemen above. I too share the opinion that abstraction is an excellent method to "dumb-down" something in your area of expertise so that others can learn from it. Not all of us are "Techies" in this MIS course, we are business students, and who are we kidding, we're in this class because we have to be. For this reason I agree with Andre in saying the less computer jargon used, the better the overall understanding students will have on most topics, especially the more complex ones.

Posted by: Shane Kelly | Apr 6, 2006 10:17:29 PM

Thinking in the abstract is probably the best advice that a MIS student can receive. This course would be much to difficult if we were forced to learn about every single tiny detail in the world of IT. The best way to grasp the information available in this course is to always think in the abstract. Look at the big picture and try to understand what all of this means in a larger sense. This was a very helpful post.

Posted by: Justin Richard | Apr 7, 2006 10:29:34 AM

Hey if in this world you want to be very good at anything, think in abstract is the way to go. Cause if you take any concept or idea and change it in your own true version that explains the main point! You will understand that idea better and most important you will not forget, and you will be able to explain it clearly to another generation. That why learning never stops. And explaining an concept changes according to time.

Posted by: Patient Nkulu | Apr 7, 2006 11:57:46 AM

Hi Mark,
This is what I get from thinking in the abstract, would this be along the same lines as what you were talking about in this post. Something like, the abstract would be considered the world, then a specific would be Canada, then for the concrete it would be University Avenue, Charlottetown, Prince Edward Island?

Posted by: Chelsey | Apr 10, 2006 1:57:45 PM

Post a comment