In theory no. Software engineering is the process of getting from
requirements to a detailed description of the implementation. The
output does not have to be code.
In practice yes. 99.999% will have to produce code as output. Producing
documentation outlining details of all data structure and control
structures and then later let somebody else convert it to actual
code rarely make sense.
So let us assume that software engineering requires coding.
Why?
Some given code does not get better or worse depending on whether
the author know those definitions.
The usual reason to know common terms is to be able to communicate
efficiently.
But is those two terms something that is used in communication
as part of software development?
I doubt that.
Arne
I respectfully disagree. Maybe we are arguing at cross-purposes here,
Arne, I can't conceive of a competent developer not understanding scope
and lifetime. Maybe you don't actually use the words in communication
often, but it's part of your thinking. I probably last used the term
"garbage collection" in a conversation last year, but I think about it
at least once a week.
Scope and lifetime are concepts that fall into the larger categories of
resource management and reliability. At a minimum.
A lot of programmers may not use the terms per se, but you can always
tell the difference between the coders who understand those 2 concepts,
and the ones that don't. And the latter always write worse code. So to
me that makes them essential concepts in software engineering.
AHS