Interface! It sounds like a word we often use, in software engineering. ![]() ![]() Depending on your needs, if you want to wash white delicate clothes or robust jeans, you’ll set a different washing program thanks to the washing machine interface. I know you always wanted to.Ī bunch of buttons and knobs in order to wash whatever you want to wash. Now, look intensely to your washing machine. That’s great, because we can do some analogies to explain everything! We use abstractions every day, in our daily life. The concept of abstraction is not only for software engineering. That’s Nice and All, But Gimme Some Examples! Wonderful Washing Machines In short, an abstraction will simplify a process or artifact, by providing what you really need, and hiding the useless details you don’t care. This is from a book from the Oregon State University (the cover of this book is fantastic). These three concepts will come back very often in this article.īut wait! Are we software developers? Should we look at the definition in some fancy technical textbook? Let’s do that:Ībstraction is the purposeful suppression, or hiding, of some details of a process or artifact, in order to bring out more clearly other aspects, details, or structure. We have now gathered the three main properties of an abstraction: Let’s look at the etymology of the word abstraction. We progress! The light will come soon answering our thirst of knowledge! You know what? Let’s be crazy. We are confirmed as well that an abstraction is rather an idea than something real. We are here introduced with the idea of generalization ( general idea). The previous definition was a bit vague, so let’s take another one, from another dictionary:Īn abstraction is a general idea rather than one relating to a particular object, person, or situation. Let’s continue our quest of knowledge, casting spells with our keyboard to follow the predictions of the Mighty Oracle Google™. An abstraction is therefore not an event, something real, but something less anchored to reality, belonging in the realm of ideas. We come back to this concept of reality versus idea. The quality of dealing with ideas rather than events. Let’s open the Holy Dictionary to show us the way: There is also a noun, an abstraction, and it’s what we are interested in. We think of it as something very loosely related to reality, and it often conveys the sense of something difficult to understand. In our day-to-day life, as human being speaking to other human beings, we mostly know abstract as an adjective: abstract art, abstract ideas, or abstract concepts, for example. Let’s begin by defining what we are talking about. The General Concept of Abstraction What’s an Abstraction, Exactly? Now, let’s explore how we can understand the world without going crazy, thanks to the magic of abstractions. If you have any question, I’m here for you. Save it somewhere and come back to it with a fresh mind. It’s okay to skip some parts if you don’t get them. Don’t try to read or understand everything at once. Understand the difference between abstraction and indirection, two concepts tightly linked, but still different.Ī word of caution: this article goes in depth.Analyzing the (obvious) benefits of using abstractions, but as well their drawbacks.Cover what are the different sorts of abstraction you can find in software development.Define what an abstraction is, illustrated with examples.Today, I would like to go with you on a deep dive in the world of abstractions. That means we really don’t understand it. I couldn’t reduce it to the freshman level. This was a proof that I had to dig more the concept. However, when I had to explain to a less experienced developer what it was, I couldn’t easily give a precise and simple definition. ![]() It sounds pretty important to understand what it is. Abstraction is attractive, sexy, old and modern at the same time. Authors wrote about it, birds sing about it, its name is whispered all around the kingdoms. Everybody praises its virtues and its power. It’s one of the most important concepts in software engineering and in computer science. A word, I’m sure, you’ve seen (or heard) many times. , updated Twitter #Fundamentals #PHP What Are Abstractions in Software Engineering with ExamplesĪbstraction.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |