TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Software Engineering Body of Knowledge (SWEBOK) v4.0 is out [pdf]

205 点作者 bsoles7 个月前

22 条评论

0xbadcafebee7 个月前
There appears to be a lot of hate towards this in the comments (because it&#x27;s not perfect?), but I feel strongly that we need explicit bodies of knowledge, along with certifications for having been trained on it.<p>Every company I go to, the base of knowledge of all the engineers is a complete crapshoot. Most of them lack fundamental knowledge about software engineering. And they <i>all</i> lack fundamental knowledge about the processes used to do the work.<p>That&#x27;s not how engineering should work. If I hire an architect, I shouldn&#x27;t have to quiz them to find out if they understand Young&#x27;s Modulus, much less teach them about it on the job. But that&#x27;s completely normal in software engineering today, because nobody is expected to have already learned a universal body of knowledge.<p>I get this thing isn&#x27;t perfect. But not being perfect isn&#x27;t a rational argument for not having one at all. And we certainly need to hold people accountable to have learned it before we give them a job. We need a body of knowledge, it needs to be up to date and relevant, and we need to prove people have actually read it and understood it. If this isn&#x27;t it, fine, but we still need one.<p>(this is, by the way, kind of the whole fucking point of a trade school and professional licensing... why the fuck we don&#x27;t have one for software engineers&#x2F;IT, boggles my fucking mind, if this is supposed to be the future of work)
评论 #41910691 未加载
评论 #41910615 未加载
评论 #41911740 未加载
评论 #41910982 未加载
评论 #41909853 未加载
评论 #41910131 未加载
评论 #41910397 未加载
评论 #41927142 未加载
pnathan7 个月前
Swebok is an attempt to look at the whole ox<p>Cook Ding was cutting up an ox for Lord Wenhui. As every touch of his hand, every heave of his shoulder, every move of his feet, every thrust of his knee — zip! zoop! He slithered the knife along with a zing, and all was in perfect rhythm, as though he were performing the dance of the Mulberry Grove or keeping time to the Jingshou music.<p>“Ah, this is marvelous!” said Lord Wenhui. “Imagine skill reaching such heights!”<p>Cook Ding laid down his knife and replied, “What I care about is the Way, which goes beyond skill. When I first began cutting up oxen, all I could see was the ox itself. After three years I no longer saw the whole ox. And now — now I go at it by spirit and don’t look with my eyes. Perception and understanding have come to a stop and spirit moves where it wants. I go along with the natural makeup, strike in the big hollows, guide the knife through the big openings, and following things as they are. So I never touch the smallest ligament or tendon, much less a main joint.<p>“A good cook changes his knife once a year — because he cuts. A mediocre cook changes his knife once a month — because he hacks. I’ve had this knife of mine for nineteen years and I’ve cut up thousands of oxen with it, and yet the blade is as good as though it had just come from the grindstone. There are spaces between the joints, and the blade of the knife has really no thickness. If you insert what has no thickness into such spaces, then there’s plenty of room — more than enough for the blade to play about it. That’s why after nineteen years the blade of my knife is still as good as when it first came from the grindstone.<p>“However, whenever I come to a complicated place, I size up the difficulties, tell myself to watch out and be careful, keep my eyes on what I’m doing, work very slowly, and move the knife with the greatest subtlety, until — flop! the whole thing comes apart like a clod of earth crumbling to the ground. I stand there holding the knife and look all around me, completely satisfied and reluctant to move on, and then I wipe off the knife and put it away.”<p>“Excellent!” said Lord Wenhui. “I have heard the words of Cook Ding and learned how to care for life!”
评论 #41909451 未加载
评论 #41908749 未加载
beryilma7 个月前
&gt; The Guide to the Software Engineering Body of Knowledge (SWEBOK Guide), published by the IEEE Computer Society (IEEE CS), represents the current state of generally accepted, consensus-based knowledge emanating from the interplay between software engineering theory and practice. Its objectives include the provision of guidance for learners, researchers, and practitioners to identify and share a common understanding of “generally accepted knowledge” in software engineering, defining the boundary between software engineering and related disciplines, and providing a foundation for certifications and educational curricula.
epolanski7 个月前
After seeing so much negativity and controversy around this book in the comments, I&#x27;m quite convinced to giving it a read.<p>I&#x27;ve seen so little &quot;engineering&quot; in software world, regardless of the company and how many ivy league devs it hires to be fully convinced that a work of encoding software engineering knowledge is worth the effort, and even attempts like this are valuable reads in such a gigantic vacuum, even just to start a discussion and to be able to disagree on definitions and practices.
评论 #41910170 未加载
评论 #41910029 未加载
tptacek7 个月前
SWEBOK 4 adds a dedicated section for security, but it&#x27;s painfully 2012 (testing, for instance, centers on the old industry-driven &quot;SAST&quot; vs. &quot;DAST&quot; distinction). It also promotes stuff like Common Criteria and CVSS. The &quot;domain-specific&quot; security section could have been pulled out of the OWASP wiki from 2012 as well: &quot;cloud&quot;, &quot;IOT&quot;, &quot;machine learning&quot;.
评论 #41910272 未加载
评论 #41911429 未加载
评论 #41930898 未加载
abtinf7 个月前
A competing and altogether more entertaining and comprehensive body of knowledge: <a href="https:&#x2F;&#x2F;grugbrain.dev&#x2F;" rel="nofollow">https:&#x2F;&#x2F;grugbrain.dev&#x2F;</a>
评论 #41919394 未加载
评论 #41910565 未加载
rhythane7 个月前
This book actually makes some sense to me as a software engineer. We’ve all learned this at school, but they were just scattered pieces of knowledge. This book actually offers a way of systematic organization of useful knowledge in production. Content is actually not for learning, but for quick check and review. The organization might not be perfect, but really is a way of reflecting on our understanding in this field.
评论 #41911238 未加载
kazinator7 个月前
&gt; <i>Popular OOP languages include C++, C#, Cobol 2002, Java, Python, Lisp, Perl, Object Pascal, Ruby and Smalltalk.</i><p>:)
miffy9007 个月前
So at the start of each chapter, the book has a table of abbreviations and their definitions, called &#x27;Acronyms&#x27;. To whoever wrote or edited the book: please lookup the definition of the word &#x27;acronym&#x27;: <i>&quot;an abbreviation formed from the initial letters of other words and pronounced as a word (e.g. NASA).&quot;</i> Not all of the abbreviations listed are acronyms! Most are just plain old initialisms.<p>Since when has anyone ever tried to pronounce &#x27;GPS&#x27; as anything other than G-P-S? Also &quot;ECS&quot; = &quot;Ecosystem&quot;? Maybe I&#x27;m just crazy but I&#x27;ve never heard or read anyone abbreviate ecosystem as &#x27;ECS&#x27;. I&#x27;ve come across ECS as entity component system in video game engines, but never as just &#x27;ecosystem&#x27;. Also it&#x27;s defined exactly once in chapter 5 and then never used again in the book. Why even bother to mention it then?<p>Oh and publish it as a PDF, but then have no actual page numbers?
评论 #41909837 未加载
kragen7 个月前
It&#x27;s so unfortunate that this effort is still alive. The ACM canceled its involvement for excellent reasons which are worth reading: <a href="https:&#x2F;&#x2F;web.archive.org&#x2F;web&#x2F;20000815071233&#x2F;http:&#x2F;&#x2F;www.acm.org&#x2F;serving&#x2F;se_policy&#x2F;bok_assessment.pdf" rel="nofollow">https:&#x2F;&#x2F;web.archive.org&#x2F;web&#x2F;20000815071233&#x2F;http:&#x2F;&#x2F;www.acm.or...</a><p>It&#x27;s probably also worth reading Dijkstra&#x27;s assessment of the &quot;software engineering&quot; field (roughly coextensive with what the SWEBOK attempts to cover) from EWD1036, 36 years ago.<p>&gt; <i>Software engineering, of course, presents itself as another worthy cause, but that is eyewash: if you carefully read its literature and analyse what its devotees actually do, you will discover that software engineering has accepted as its charter &quot;How to program if you cannot.&quot;.</i><p><a href="https:&#x2F;&#x2F;www.cs.utexas.edu&#x2F;~EWD&#x2F;ewd10xx&#x2F;EWD1036.PDF" rel="nofollow">https:&#x2F;&#x2F;www.cs.utexas.edu&#x2F;~EWD&#x2F;ewd10xx&#x2F;EWD1036.PDF</a><p>The ACM&#x27;s criticisms, however, are much harsher and much more closely focused on the ill-conceived SWEBOK project.<p>The IEEE&#x27;s continued involvement calls the IEEE&#x27;s own credibility and integrity into question—as do its continued opposition to open-access publishing and its recent history of publishing embarrassingly incompetent technical misinformation in <i>IEEE Spectrum</i> (cf., e.g., <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=41593788">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=41593788</a>, though there are many other examples). What is going on at IEEE?
评论 #41908654 未加载
评论 #41909589 未加载
评论 #41908554 未加载
评论 #41908778 未加载
评论 #41908088 未加载
评论 #41908468 未加载
评论 #41908044 未加载
评论 #41911466 未加载
评论 #41908727 未加载
jdlyga7 个月前
Yes, there’s been a lot of negativity toward earlier versions of this document. It’s been around for a while and represents a formal, structured, and rigid approach to software development. Historically, it reflects the 1990s era, when waterfall was the preferred method, and there was a push to make software engineering a licensed profession. At the time, we were also in a “software crisis” where large, expensive projects with extensive documentation and formalized planning often failed. Today, we have quicker releases, faster feedback, and more direct user communication (what we now call extreme programming or agile). However, this has also led to too much cowboy programming. So it’s important to maintain some level of standards. Might be worth revisiting?
评论 #41910885 未加载
评论 #41910651 未加载
评论 #41910677 未加载
osigurdson7 个月前
For me &quot;BOK&quot; is correlated with the creation of false industry and certification.
TZubiri7 个月前
Taking a look at the index, a couple of issues which would make it not in my interest:<p>1- very heavy on process management. Not against studying it, but 70% is a lot. Also it isn&#x27;t a very objective area of knowledge, there&#x27;s hundreds of ways to skin the pig, which probably explains why it takes so much space.<p>2- a whole chapter about architecture, which isn&#x27;t a very well regarded as an independent branch of computer science&#x2F;systems engineering knowledge.<p>3- at last, in the technical section, databases shares a section along with fundamentals like processes and operating systems?<p>All in all it looks like a dictionary&#x2F;checkbox built by a comittee rather than a consistent perspective on software.<p>And as a textbook it&#x27;s got problems as well as mentioned, it has a doubtful taxonomy and too heavy on process engineering.<p>Tl;dr: I&#x27;m getting Orange Eating 101 vibes <a href="https:&#x2F;&#x2F;youtu.be&#x2F;pR6z-gm5_cY?t=38&amp;si=F7knCRNcFET7nki7" rel="nofollow">https:&#x2F;&#x2F;youtu.be&#x2F;pR6z-gm5_cY?t=38&amp;si=F7knCRNcFET7nki7</a><p>Anyways, my 2 cents, won&#x27;t be reading it.
jongjong7 个月前
I&#x27;ve noticed that a lot of engineering books cover concepts which are useful in the hands of senior developers but are harmful in the hands of junior developers because they misunderstand the nuance due to lack of experience.<p>It reminds me of the phrase &quot;If all you have is a hammer, you tend to see every problem as a nail..&quot; But in the case of a thick design patterns book, it amounts to giving the junior dev a whole toolbox... The junior dev tends to assume that every problem they&#x27;ll ever face requires them to use one of the tools from that toolbox... But reality isn&#x27;t so neat; you rarely use a specific tool in its native form as it&#x27;s described. They are conceptual tools which need to be adapted to various situations and they are only really useful in highly complex scenarios which can often be avoided entirely.<p>The one piece of advice which is closest to &#x27;universal&#x27; which I can give about software development is this:<p>&quot;You should be able to walk through and describe any feature provided by your code using plain English, in such a way that a non-technical listener would gain a complete understanding of what the code is doing but without having to dive into functions whose implementation details would exceed the listener&#x27;s mental capabilities.&quot;<p>When someone talks me through some feature they developed and they start jumping around 10 different files 80% of which have technical names which they invented and they keep having to define new concepts just to explain what the code is doing at a high level; this is a red flag. It shows that their code is over-engineered and that they haven&#x27;t fully made sense of what they&#x27;re doing in their own mind.<p>My philosophy is basically a variant of &quot;Rubber duck debugging&quot; as proposed in the book &quot;The Pragmatic Programmer&quot; by Andrew Hunt and David Thomas... But you imagine the duck to have the intellect and knowledge of a non-technical middle-manager, and you use the approach during design and development; not just debugging.
rockemsockem7 个月前
I would love to hear someone that actually works in a place that requires credentials like the PE comment on having a course based on this as a credential.<p>There are way too many software engineers with lofty ideas about how physical engineers can magically know all the answers to all the problems they could ever have.
评论 #41921767 未加载
abtinf7 个月前
300 pages* is perhaps not quite the length one would expect for Version 4.0 of such an ambitious undertaking.<p>* Actual page count less front&#x2F;back matter and a rough guess at pages of matrices and references.
elseweather7 个月前
this is a book for people who think the wizard on the cover of SICP is an actual wizard and get scared
mixmastamyk7 个月前
A lot of scathing critiques in here, but they remind me of the parable of the blind folks and the elephant. <a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Blind_men_and_an_elephant" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Blind_men_and_an_elephant</a><p><pre><code> The parable of the blind men and an elephant is a story of a group of blind men who have never come across an elephant before and who learn and imagine what the elephant is like by touching it. Each blind man feels a different part of the animal&#x27;s body, but only one part, such as the side or the tusk. They then describe the animal based on their limited experience and their descriptions of the elephant are different from each other. In some versions, they come to suspect that the other person is dishonest and they come to blows. The moral of the parable is that humans have a tendency to claim absolute truth based on their limited, subjective experience as they ignore other people&#x27;s limited, subjective experiences which may be equally true.[1][2] The parable originated in the ancient Indian subcontinent, from where it has been widely diffused. </code></pre> So section 2 does not jibe with enterprise development, section 3 does not agree with embedded development, and section 8 does not fit well with web startups? These three industries have different requirements, not just from each other but from controllers for skyscrapers and space probes too.<p>This document is trying to find common ground, and so will offend folks in camp X, Y, or Z that their case is not handled well enough. Please be mindful that other sets of requirements exist.
JanSt7 个月前
If you really want someone interested in software development to run away, hand them books like this one.
评论 #41909993 未加载
评论 #41909962 未加载
评论 #41908781 未加载
ofou7 个月前
this is a list of books mentioned<p><a href="https:&#x2F;&#x2F;www.goodreads.com&#x2F;list&#x2F;show&#x2F;121496.SWEBOK_Consolidated_Reference_List" rel="nofollow">https:&#x2F;&#x2F;www.goodreads.com&#x2F;list&#x2F;show&#x2F;121496.SWEBOK_Consolidat...</a>
ctz7 个月前
<p><pre><code> Runtime errors surface when a program runs into an unexpected condition or situation such as dividing by zero, memory overflow, or addressing a wrong or unauthorized memory location or device, or when a program tries to perform an illegitimate or unauthorized operation or tries to access a library, for example. The programs must be thoroughly tested for various types of inputs (valid data sets, invalid data sets and boundary value data sets) and conditions to identify these errors. Once identified, runtime errors are easy to fix. </code></pre> Embarrassing horseshit.
评论 #41908241 未加载
评论 #41909473 未加载
评论 #41919927 未加载
评论 #41909426 未加载
评论 #41910499 未加载
aste1237 个月前
Yes