Abstractization as an engineer - Page 1
Forum section: electronics / beginners

author: goldcoin
author_rank: Contributor
timestamp: December 05, 2016, 05:53:08 pm
content: Why do engineers abstractize so much ? Don't they loose touch with the reality of the system ?

author: tggzzz
author_rank: Super Contributor
timestamp: December 05, 2016, 06:01:05 pm
content: Because reinventing the wheel is expensive and boring. We want to do new things, better, faster, and cheaper.

author: T3sl4co1l
author_rank: Super Contributor
timestamp: December 05, 2016, 06:16:36 pm
content: Conversely:Why don't regular people understand abstraction, like, at all?Tim

author: Harrkev
author_rank: Contributor
timestamp: December 05, 2016, 06:18:01 pm
content: I am an engineer. I design chips. There is a fairly decent chance that many people reading this even own a chip that I have worked on.Abstractions are necessary. The human brain can only hold so much and process so much. YouHAVEto abstract things to be able to function.Take something common like a map -- those are abstractions. Does you favorite street map of your favorite town include the potholes? No. Does it have a drawing of ever single building? No. Does it also include a map of your house, including where the bathroom is? No. To have a proper map that included EVERY detail of your town, it would need to be the same size as your town, which makes it inconvenient to carry with you.

author: helius
author_rank: Super Contributor
timestamp: December 05, 2016, 06:59:47 pm
content: Culture is built out of abstractions. Eliminate the irrelevant details and focus on those that are important: that's abstraction. Read sheet music instead of imitating the way the harpist combs his hair. Draw schematics instead of using photographs of breadboards. Not only is the result simpler, but you really had no hope at all to even comprehend the problem without abstracting.In science the most powerful abstractions come from mathematics. Please stop worrying about "reality of the system" as if such a thing even existed. Instead focus on a simple equation.

author: CatalinaWOW
author_rank: Super Contributor
timestamp: December 05, 2016, 07:33:29 pm
content: I like the answers so far, but maybe the OP would expand his question. I'm not sure any of us have answered the question.I will say that the abstract view often has more reality for me than the concrete part. Not actually losing track of reality, but focusing on the part of reality that is important. When I want an amplifier with a particular transfer function the shape of that transfer function is of primary importance. Not so much the height of the packages the ICs come in. When I am laying out the board I may pay attention to the package heights, but the reality for me is layers and colored lines on those layers. Not the strands of fiberglass in the plies, or the adhesive used to glue them.

author: IanB
author_rank: Super Contributor
timestamp: December 05, 2016, 07:34:04 pm
content: Quote from: goldcoin on December 05, 2016, 05:53:08 pmConsider everything that has been written above and bring it back to the definition of abstraction: to extract what is important and leave behind what is not important.Abstraction removes clutter and avoids distraction with irrelevant details.

author: AG6QR
author_rank: Frequent Contributor
timestamp: December 05, 2016, 07:42:19 pm
content: We all do abstractions because we can't know all the details, and most of the details aren't important anyway.The art of engineering is largely in knowing which details to include in a model, and which ones to ignore.Ohm's law is a classic example of an engineering abstraction that most people on this board are familiar with. I have never seen a resistor (or other device) for which ohm's law strictly holds true over all possible voltages and currents. The law says that current through and voltage across a given device are directly proportional, and the constant of proportionality is the resistance -- V=IR. In reality, the plot of current versus voltage may be reasonably straight over a wide range, but there's always a point at which the plot deviates from a straight line (maybe for thermal reasons, maybe something else). Furthermore, there is always shot noise in a resistor. Also, every real-world resistor also has some inductance and some capacitance.Nevertheless, when we assume V=IR, it makes our job much easier than considering all the details of what is going on inside a resistor. And for very many purposes, the assumption is good enough to design very useful circuits.Engineers aren't the only ones who use abstractions. My young daughter has uses an abstraction regarding the light in her room. She believes that turning the switch to the "on" position makes light come out of the lamp, while turning the switch to the "off" position makes the lamp stop producing light. She has no knowledge of the way the wires are routed, nor the voltage on them, nor the currents through them, nor the connections to the electrical distribution system, nor the functional details of the utility power plant, etc. She doesn't know the details of what materials are inside the switch, nor the quantum mechanics that make some of them electrical conductors and others insulators. She doesn't know, she doesn't care, and she doesn't have to. The abstraction is good enough, and it works (or if it doesn't, she calls me and tells me to fix the lamp).

author: danadak
author_rank: Super Contributor
timestamp: December 05, 2016, 08:24:57 pm
content: I always worry about relativity effects on electron motion when Iam trying to design typical embedded circuits. You never knowwhat can happen."A fool and his money are soon parted !"Regards, OneCell.

author: Howardlong
author_rank: Super Contributor
timestamp: December 05, 2016, 09:24:33 pm
content: To add to what's already been said, which I agree with BTW...The term abstraction when applied to engineering, or, in particular, computer science, never seemed to exist until object oriented programming came along, which itself dreamt up a bunch of other new meanings for existing words, or even completely new words. Concepts that already existed were wrapped up in a new lingua franca, and it's a shame that for some time because of that it was voodoo to old fart procedural guys like me. The root in its use in computer science goes back before the emergence of OOP, although it wasn't in common use until OOP became more mainstream in the late 80s.The ill-fated OSI seven layer model is referred to nowadays as a series of abstraction layers, but I don't ever remember it being described as such 35 years ago. Whether calling it that would have made me understand it any better I don't know, but for sure it was nothing but a mind experiment back when I was taught it. Another non-OOP use is in hardware abstraction layers which I remember coming into more common parlance in the early 90s.The problem for me was originally the repurposing of a word in a way that didn't make sense. Abstract art, I know sort of what that is. I know what an abstract is in a paper. But abstracting something sounds like going to the dentist.Message to young players: a lot of people make a lot of nonsense by pompously using big or repurposed words, or acronyms. Always call them out, as the OP has done: in my experience in meetings and presentations if you don't know what a word or term means, don't be afraid to ask. Amazing how many times you'll find out later that most, if not all, didn't know either.

author: tggzzz
author_rank: Super Contributor
timestamp: December 05, 2016, 09:46:35 pm
content: I have minor disagreements with all of that - except the most important last paragraph.Good engineers aren't afraid to admit they don't know something, and they are driven to understand what they don't understand.Never stop asking interesting questions!

author: helius
author_rank: Super Contributor
timestamp: December 05, 2016, 09:56:59 pm
content: The OSI model (networking layers) still seems like a reasonable way to think about the tasks a network performs. Whether each of those tasks is isolated in a separate module with a rigidly specified interface always seemed to be beside the point.More generally, abstraction is a method of analysis, not a blueprint for implementation.

author: tggzzz
author_rank: Super Contributor
timestamp: December 05, 2016, 11:12:42 pm
content: Quote from: helius on December 05, 2016, 09:56:59 pmOnly if you ignore the details of where the boundaries between layers areQuoteJust so. A similar point can be made for requirements specification vs implementation specification.

author: Dave
author_rank: Super Contributor
timestamp: December 06, 2016, 02:16:42 am
content: Quote from: AG6QR on December 05, 2016, 07:42:19 pmYou're thinking of thermal noise (aka Johnson-Nyquist noise). Shot noise occurs in semiconductors, for example, as individual electrons jump over the energy barrier.

author: bson
author_rank: Unknown
timestamp: December 06, 2016, 04:04:33 am
content: You can't see or perceive electrons, voltage, or current - except in the most crude way, and then only when it's too late.These things you can't see or perceive don't behave like anything that does, which makes electrical engineering inherently abstract.

author: julian1
author_rank: Frequent Contributor
timestamp: December 06, 2016, 05:36:58 am
content: There is no fundamental knowable reality - there are just varying mental models at different levels of abstraction. A quantum physicist has one understanding of substance (quarks, leptons), and a chemical engineer another (valence, compounds, alloys). A structural engineer will use materials science as reference (hardness, elasticity, durability), and an architect or artist has another set of references (cultural forms).Choosing the right abstraction allows us to get things done. Dig too deep, and you waste time obsessing about useless details. Conversely, there is also a risk of gliding over the surface of a problem if one chooses only to look at the big picture.Quotehttps://en.wikipedia.org/wiki/Map%E2%80%93territory_relation

author: Howardlong
author_rank: Super Contributor
timestamp: December 06, 2016, 07:53:22 am
content: Quote from: julian1 on December 06, 2016, 05:36:58 amIndeed, however knowing where the boundary should be is a lifetime's work. It's of those subjective things.One facet I see particularly with younger folk is that they tend to be good script followers, and are less interested in why something is done the way it is, being far more accepting of spoon feeding. While this can be valuable in the short term, in the longer term they are at risk of making decisions without context, or having much interest of the bigger picture of what they're trying to achieve.So when, for example, they use an off the shelf software library that works fine in their sandbox, and find it barely functions in the real world it's because they haven't understood, questioned or characterised the behaviour of that library when used in real context. I see that a lot when troubleshooting performance related stuff, and am usually expected to come up with a solution which doesn't mean a new release of code, and I hate throwing tin at a problem.My problem as an old fart is that I tend to swing the other way, I find I procrastinate too much and over-analyse things, wanting to know how things work, it's just my way. If only there was a magic wand to say "enough".

author: Ducttape
author_rank: Regular Contributor
timestamp: December 06, 2016, 03:58:42 pm
content: Quote from: Harrkev on December 05, 2016, 06:18:01 pmI remember a cartoon years back that showed some admirals etc. standing around a war map, and one of the admirals says "But gentlemen, do you think the enemy will be using such tiny ships?"

author: Galenbo
author_rank: Super Contributor
timestamp: December 06, 2016, 04:50:34 pm
content: Quote from: goldcoin on December 05, 2016, 05:53:08 pmDefine engineers, much, touch, reality and system.

author: dmills
author_rank: Super Contributor
timestamp: December 06, 2016, 05:34:56 pm
content: Most of the skill is in knowing how far down the rabbit hole to go on any given question (And the dirty little secret is that usually orders of magnitude will do).Sure 90% of any given design is generally rule of thumb stuff, but correctly identifying the places where the rules of thumb and 'she'l be right' break down and you need to get your math on before you get the prototypes is something that even the old farts do not always get right.Most recently for me it was a 5V regulator (The most mundane bit of "data sheet engineering" in the world you would think), the bloody loop oscillated, I have only been putting 5V regs on boards for the last 30 years or so...Semiconductor device physics for example are mostly irrelevant to what I do, until suddenly they are not (Happens a few times a year).The abstractions allow us to spend the time on what matters while handwaving the irrelevant details.Regards, Dan.

author: tooki
author_rank: Super Contributor
timestamp: December 06, 2016, 05:45:57 pm
content: Quote from: goldcoin on December 05, 2016, 05:53:08 pmAbstraction lets you modularize, so that you can reengineer one part of the system without having to change the rest. Same goes for testing and design, really -- it would be hellishly difficult without modularizing.

author: tatus1969
author_rank: Super Contributor
timestamp: December 06, 2016, 05:56:29 pm
content: abstraction starts much earlier, and we all use them: language.