[SystemSafety] State of the art for "safe Linux"
Steve Tockey
steve.tockey at construx.com
Fri Aug 9 20:31:20 CEST 2024
Derek,
The American Engineer’s Council for Professional Development no longer exists. It has not existed since 1980. In fact, it is now known as the Accreditation Board of Engineering and Technology (ABET), see https://www.abet.org/about-abet/history/.
The full ABET definition of “Engineering” is (quote):
“The profession in which a knowledge of the mathematical and natural sciences gained by study, experience, and practice is applied with judgment to develop ways to utilize, economically, the materials and forces of nature for the benefit of mankind.”
I have long proposed a derivative definition for true Software Engineering:
“The profession in which a knowledge of the mathematical and computing sciences gained by study, experience, and practice is applied with judgment to develop ways to utilize, economically, computing systems for the benefit of mankind.”
So first, I take great exception to your assertion of
“minuscule amounts of scientific principles”
Aside from the fact that Computer Science as a field of study is itself non-trivial:
— computer architectures
— data structures and algorithms
— programming fundamentals and languages
— compiler theory
— operating systems
— databases and database management
— computer networks and communication
— computer security
— human-computer interaction
— artificial intelligence and machine learning
— and more
true Software Engineering also depends greatly on Discrete Mathematics:
— set theory
— number theory
— measurement theory
— propositional logic
— predicate logic
— proof techniques
— numerical analysis including accuracy, precision, absolute error, relative error
— and more
Second, a key word in the ABET definition is “economically”. The true engineer strives to create solutions to real-world problems that are the cost-effective. This involves knowledge and application of Engineering Economy concepts such as:
— proposals and mutually-exclusive alternatives
— cash flow streams
— engineering decision process
— interest (time-value of money)
— equivalence
— bases for comparison
— for-profit decision-making including: minimum acceptable rate of return, consequences of income taxes on decisions
— planning horizons and economic life
— replacement and retirement decisions
— inflation and deflation
— depreciation
— general accounting and cost accounting
— not-for-profit decision-making
— present economy: break-even analysis and optimization analysis
— estimation, risk, and uncertainty
— multiple-attribute decision making
The ABET criteria for accrediting an engineering program at a college or university explicitly looks for a course in Engineering Economy in the curriculum.
I posit that the vast majority of those so-called “software engineers” couldn’t even define the term “Internal Rate of Return” to save their life let alone know how to calculate one or understand how to use it to make an actual engineering decision.
Third, in many states in the US (including Texas, Oregon, New York, …) and in several countries (including UK, Canada and Australia), the term “engineer” is a legally-reserved term (well, “Chartered Engineer” in the UK, Canada, and Australia, but still …). Just as one cannot call themselves a medical doctor, a dentist, a nurse, a lawyer, or an airline pilot without having been licensed, these jurisdictions also by law mandate that you cannot call yourself an engineer. You cannot advertise that you are a “Software Engineer” in the state of Texan unless you have been licensed as such by the Texas Board of Professional Engineersand Land Surveyors (TBPELS, https://pels.texas.gov/).
And, while on the topic of licensure, See also https://www.abet.org/about-abet/governance/board-of-directors/policies/#licensure, specifically (quote):
Professional Licensure
We encourage graduates of ABET-accredited programs and other educationally qualified persons who work or practice in the applied science, computing, engineering and engineering technology professions to strive for professional recognition by enhancing their individual credentials through licensure and certification.
Licensure and certification are among the recognized methods of demonstrating to the public an individual’s competency, qualification and expertise in professional practice.
Moreover, licensure and licensure-related certification indicate a practicing professional’s commitment to understanding their professional, ethical and societal responsibilities, and the importance of protecting the public health, safety and welfare within society.
(end quote)
And finally—for now—is the issue of liability. A true engineer is legally (and morally) bound to accept personal liability for mistakes in their work. If you’re a true engineer and you built it wrong, you are personally liable for the damages caused by your mistake.
So, given all of the above background on what true engineering actually is, I will wait patiently for someone, anyone, to explain me how the typical software practitioner comes anywhere close to what true engineering is. Unless and until those so-called “software engineers” actually take on the characteristics of true engineering, do not expect anyone who knows and appreciates what true engineering is to do anything other than scoff at their complete and utter misuse of the term. I grew up in a family of true engineers. My Dad was an Electrical Engineer as is one of my sisters. Another of my sisters is a licensed Civil Engineer. I personally paid for my nephew’s tuition so he could get a degree in Chemical Engineering. Let me just tell you that among the true engineers, they look on so-called “software engineers” as a joke. No kidding. They may not be laughing at you to your face but I guarantee they are surely laughing at you behind your back.
— steve
On Aug 9, 2024, at 10:20 AM, Derek M Jones <derek at knosof.co.uk> wrote:
Andy,
Could it be that…
- most “software engineers” are not actually engineers?!
American Engineers' Council for Professional Development defines
engineering as:
"The creative application of scientific principles to design or develop..."
Software engineering involves lots of creative application
of minuscule amounts of scientific principles.
--
Derek M. Jones Evidence-based software engineering
blog:https://shape-of-code.com
_______________________________________________
The System Safety Mailing List
systemsafety at TechFak.Uni-Bielefeld.DE
Manage your subscription: https://lists.techfak.uni-bielefeld.de/mailman/listinfo/systemsafety
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.techfak.uni-bielefeld.de/pipermail/systemsafety/attachments/20240809/872a29f5/attachment-0001.html>
More information about the systemsafety
mailing list