<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Software Engineering]]></title><description><![CDATA[A Structured Journey from Inception to Delivery ]]></description><link>https://www.sepolimi.com</link><image><url>https://substackcdn.com/image/fetch/$s_!ktkQ!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F385311d0-789a-4921-b3d8-f4b57193dcb5_390x390.png</url><title>Software Engineering</title><link>https://www.sepolimi.com</link></image><generator>Substack</generator><lastBuildDate>Mon, 13 Apr 2026 23:18:43 GMT</lastBuildDate><atom:link href="https://www.sepolimi.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Software Engineering @ PoliMi]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[sepolimi@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[sepolimi@substack.com]]></itunes:email><itunes:name><![CDATA[Alfonso Fuggetta]]></itunes:name></itunes:owner><itunes:author><![CDATA[Alfonso Fuggetta]]></itunes:author><googleplay:owner><![CDATA[sepolimi@substack.com]]></googleplay:owner><googleplay:email><![CDATA[sepolimi@substack.com]]></googleplay:email><googleplay:author><![CDATA[Alfonso Fuggetta]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Software: to vibe or not to vibe?]]></title><description><![CDATA[Vibe coding isn&#8217;t software engineering &#8212; unless you engineer it]]></description><link>https://www.sepolimi.com/p/software-to-vibe-or-not-to-vibe</link><guid isPermaLink="false">https://www.sepolimi.com/p/software-to-vibe-or-not-to-vibe</guid><dc:creator><![CDATA[Damian Andrew Tamburri]]></dc:creator><pubDate>Wed, 11 Feb 2026 15:52:37 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!txQi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd378527-9c5e-49ae-b221-b4df239b44ff_1589x1208.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Okay, so there&#8217;s AI generating a lot of software... Give it a few well-placed prompts, perhaps with some advanced prompting strategy (SCOT or something else?), and you get a ton of code that can even handle 70-80% of what you had in mind while you were prompting... But are we really sure this is software &#8220;engineering&#8221;?</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!txQi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd378527-9c5e-49ae-b221-b4df239b44ff_1589x1208.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!txQi!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd378527-9c5e-49ae-b221-b4df239b44ff_1589x1208.jpeg 424w, https://substackcdn.com/image/fetch/$s_!txQi!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd378527-9c5e-49ae-b221-b4df239b44ff_1589x1208.jpeg 848w, https://substackcdn.com/image/fetch/$s_!txQi!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd378527-9c5e-49ae-b221-b4df239b44ff_1589x1208.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!txQi!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd378527-9c5e-49ae-b221-b4df239b44ff_1589x1208.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!txQi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd378527-9c5e-49ae-b221-b4df239b44ff_1589x1208.jpeg" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cd378527-9c5e-49ae-b221-b4df239b44ff_1589x1208.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2039736,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.sepolimi.com/i/187641451?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd378527-9c5e-49ae-b221-b4df239b44ff_1589x1208.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!txQi!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd378527-9c5e-49ae-b221-b4df239b44ff_1589x1208.jpeg 424w, https://substackcdn.com/image/fetch/$s_!txQi!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd378527-9c5e-49ae-b221-b4df239b44ff_1589x1208.jpeg 848w, https://substackcdn.com/image/fetch/$s_!txQi!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd378527-9c5e-49ae-b221-b4df239b44ff_1589x1208.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!txQi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd378527-9c5e-49ae-b221-b4df239b44ff_1589x1208.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>Then there&#8217;s the big trend at the top of the trend: vibe coding. What is that? Easy! I&#8217;m a newbie and I want to build the software I have in mind in a purely trial-and-error, almost evolutionary, manner, hoping that sooner or later I&#8217;ll converge on an acceptable solution... How do I do that? Easy! I go to one of the dedicated portals (e.g., bolt.new) or even my favorite GPT and start chiseling away at my program with prompts. Now, let me rephrase the above question: how can I ensure rigorous principles are applied in the formulation of software that is being &#8220;born&#8221;? It must be said that intrinsically, if we want software to exhibit by construction the properties we like (e.g., security, privacy, etc.), software is not suited to being &#8220;born&#8221;&#8212;that is, to evolving into a structured form from &#8220;cells&#8221; that aggregate into increasingly interconnected and complex forms&#8212;but must be &#8220;created.&#8221; The difference seems subtle but is substantial.</p><p>If by &#8220;birth&#8221; we mean the process by which software evolves through prompts, just as a morula evolves into a fetus and eventually an individual, by &#8220;creating&#8221; we must mean a structured software process with the following characteristics: (a) it is operated by specialized personnel, competent in creating what the software must be, exactly as it should be, (b) to do exactly what it should do, (c) exactly in the way it should do it.</p><p>In other words, the only way to ensure that the software performs its functions correctly and completely is to carry out the aforementioned creation by following a structured path that starts not from prompts, but from &#8220;requirements,&#8221; that is, entities that reflect a problem to be solved as clearly as possible, from which&#8212;following known design principles&#8212;pieces of the solution can be derived that work well for the people who will one day use the software being created.</p><p><em>Because, let&#8217;s not forget, software is an automatic system that solves a problem, and this won&#8217;t change. At least not for now.</em></p><p>The formulation above is nothing other than the fundamental mission of Software Engineering as a discipline, and so I ask myself: is it still relevant to write or read a book on software engineering these days? It absolutely is. For example, assuming I want to persist with vibe-coding, how can I offer my clients even a shred of assurance that what I&#8217;m building makes the slightest bit of sense and that there&#8217;s traceability between the tools and prompts I used and the results I obtained that they will see/use? How will I &#8220;test&#8221; this conjecture?</p><p>I&#8217;d also add that one day, perhaps as some would say in 40 or 50 years, it&#8217;s possible that GenAI will become capable of creating software that exhibits the properties we want &#8220;on command&#8221;; that will be the day when software stops being primarily an automatism and perhaps becomes primarily a digital individual, who knows... But from what the literature says, we&#8217;re not there yet, and no one knows when we&#8217;ll get there.</p><p>So, rest assured, software engineering is here to stay, at least for now.</p>]]></content:encoded></item><item><title><![CDATA[Software Rules the World—So Who Sets the Rules?]]></title><description><![CDATA[Why awareness and transparency are crucial for responsible software design.]]></description><link>https://www.sepolimi.com/p/software-rules-the-worldso-who-sets</link><guid isPermaLink="false">https://www.sepolimi.com/p/software-rules-the-worldso-who-sets</guid><dc:creator><![CDATA[Elisabetta Di Nitto]]></dc:creator><pubDate>Fri, 09 Jan 2026 18:06:45 GMT</pubDate><enclosure url="https://images.unsplash.com/photo-1648393847044-0f31992a9ea2?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw0NzR8fHNvZnR3YXJlfGVufDB8fHx8MTc2NzgwMTE3MHww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://images.unsplash.com/photo-1648393847044-0f31992a9ea2?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw0NzR8fHNvZnR3YXJlfGVufDB8fHx8MTc2NzgwMTE3MHww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://images.unsplash.com/photo-1648393847044-0f31992a9ea2?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw0NzR8fHNvZnR3YXJlfGVufDB8fHx8MTc2NzgwMTE3MHww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 424w, https://images.unsplash.com/photo-1648393847044-0f31992a9ea2?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw0NzR8fHNvZnR3YXJlfGVufDB8fHx8MTc2NzgwMTE3MHww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 848w, https://images.unsplash.com/photo-1648393847044-0f31992a9ea2?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw0NzR8fHNvZnR3YXJlfGVufDB8fHx8MTc2NzgwMTE3MHww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1272w, https://images.unsplash.com/photo-1648393847044-0f31992a9ea2?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw0NzR8fHNvZnR3YXJlfGVufDB8fHx8MTc2NzgwMTE3MHww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1456w" sizes="100vw"><img src="https://images.unsplash.com/photo-1648393847044-0f31992a9ea2?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw0NzR8fHNvZnR3YXJlfGVufDB8fHx8MTc2NzgwMTE3MHww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" width="1016" height="677.3333333333334" data-attrs="{&quot;src&quot;:&quot;https://images.unsplash.com/photo-1648393847044-0f31992a9ea2?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw0NzR8fHNvZnR3YXJlfGVufDB8fHx8MTc2NzgwMTE3MHww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:6336,&quot;width&quot;:9504,&quot;resizeWidth&quot;:1016,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;a man sitting at a desk in front of a computer&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="a man sitting at a desk in front of a computer" title="a man sitting at a desk in front of a computer" srcset="https://images.unsplash.com/photo-1648393847044-0f31992a9ea2?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw0NzR8fHNvZnR3YXJlfGVufDB8fHx8MTc2NzgwMTE3MHww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 424w, https://images.unsplash.com/photo-1648393847044-0f31992a9ea2?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw0NzR8fHNvZnR3YXJlfGVufDB8fHx8MTc2NzgwMTE3MHww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 848w, https://images.unsplash.com/photo-1648393847044-0f31992a9ea2?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw0NzR8fHNvZnR3YXJlfGVufDB8fHx8MTc2NzgwMTE3MHww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1272w, https://images.unsplash.com/photo-1648393847044-0f31992a9ea2?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw0NzR8fHNvZnR3YXJlfGVufDB8fHx8MTc2NzgwMTE3MHww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>As we have highlighted in our new software engineering book, any useful software affects a portion of the real world, thereby regulating some of its aspects. This raises several ethical questions, for instance: do the defined rules align with users&#8217; expectations? To what extent are they arbitrarily decided by software designers rather than required by the external context? Are they acceptable for all stakeholders? Are they sustainable in the long run?</p><p>Ghezzi and co-authors recently published an interesting position paper on this subject<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a>. They highlight that the ethical and societal consequences of software design decisions can no longer be treated as secondary concerns. More specifically, <strong>responsible design</strong> requires that software designers explicitly articulate and take responsibility for the <em>intent</em> behind systems. Unlike natural objects, software artifacts are created deliberately; therefore, their purposes, assumptions, and anticipated effects must be made explicit, inspectable, and open to scrutiny. Responsible design demands <strong>awareness</strong> of the broader human and societal context in which systems operate and <strong>transparency</strong> about design decisions, trade-offs, and consequences.</p><p>The paper argues that such awareness can be achieved only by systematically integrating, within software engineering, not only knowledge from the software&#8217;s application domain but also perspectives from the humanities, social sciences, ethics, and law. Responsibility is collective and shared among all stakeholders involved in design, deployment, regulation, and use of software.</p><p>Ethics is central to this process, not as an external checklist (as is currently required by many public and private bodies), but as an integral part of design deliberation. Ethical questions guide the assessment of what outcomes are desirable, acceptable, or harmful. Notably, responsibility extends beyond designers to decision-makers and users: systems should support informed consent, clarify accountability, and communicate how user actions translate into system behavior and consequences.</p><p>Awareness is a first step, but responsible design cannot be in place without design transparency. Unfortunately, software complexity has long challenged transparency, and the incorporation of AI intensifies opacity. This increased complexity in analysing software requires significant research and practical efforts to expand modeling, specification, and assurance techniques so that system intents, properties, and guarantees are understandable and verifiably accurate for all stakeholders, including regulators and end users.</p><p>How to incorporate these aspects into the software design and execution processes remains unclear, but it should become a central challenge for future software engineering. Any oversimplification of this matter, often motivated by the need for technology to evolve unconstrained to promote human progress, is extremely risky and should be kept in check. Europe, frequently accused of adopting a conservative and overly restrictive stance on these issues, should seek an appropriate balance among competing tensions and strive to maintain its leading role in this context. The solution is neither clear nor straightforward, but it is essential to invest in three key directions:</p><ol><li><p>Increase awareness about these critical issues.</p></li><li><p>Seek consensus and reasonable compromises on a case-by-case basis.</p></li><li><p>Generalize good practices from individual cases.</p></li></ol><p>Although this approach may be perceived as too slow or overly simplistic, it is the most reasonable and practical way to proceed in a phase where we really need to improve our understanding of a complex and critical issue.</p><div><hr></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.sepolimi.com/p/software-rules-the-worldso-who-sets?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Software Engineering! This post is public, so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.sepolimi.com/p/software-rules-the-worldso-who-sets?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.sepolimi.com/p/software-rules-the-worldso-who-sets?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.sepolimi.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>Ghezzi, C., Ebrahimi, M., Isovic, D., Sirjani, M. (2026). Breaking Disciplinary Silos: The Case of Software Engineering. In: Hagedorn, L., Schmid, U., Winter, S., Woltran, S. (eds) Digital Humanism. DIGHUM 2025. Lecture Notes in Computer Science, vol 16319. Springer, Cham. https://doi.org/10.1007/978-3-032-11108-1_32.</p><p></p></div></div>]]></content:encoded></item><item><title><![CDATA[The Missing Abstraction: Why Serverless Feels So Complex]]></title><description><![CDATA[Delegating infrastructure complexity to reclaim focus on business logic.]]></description><link>https://www.sepolimi.com/p/the-missing-abstraction-why-serverless</link><guid isPermaLink="false">https://www.sepolimi.com/p/the-missing-abstraction-why-serverless</guid><dc:creator><![CDATA[Alessandro Margara]]></dc:creator><pubDate>Wed, 17 Dec 2025 17:56:55 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!X0wp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8883101-5b31-45c3-9c14-e17c4d6e2bb6_800x533.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!X0wp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8883101-5b31-45c3-9c14-e17c4d6e2bb6_800x533.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!X0wp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8883101-5b31-45c3-9c14-e17c4d6e2bb6_800x533.heic 424w, https://substackcdn.com/image/fetch/$s_!X0wp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8883101-5b31-45c3-9c14-e17c4d6e2bb6_800x533.heic 848w, https://substackcdn.com/image/fetch/$s_!X0wp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8883101-5b31-45c3-9c14-e17c4d6e2bb6_800x533.heic 1272w, https://substackcdn.com/image/fetch/$s_!X0wp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8883101-5b31-45c3-9c14-e17c4d6e2bb6_800x533.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!X0wp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8883101-5b31-45c3-9c14-e17c4d6e2bb6_800x533.heic" width="800" height="533" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b8883101-5b31-45c3-9c14-e17c4d6e2bb6_800x533.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:533,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:80978,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.sepolimi.com/i/177103169?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8883101-5b31-45c3-9c14-e17c4d6e2bb6_800x533.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!X0wp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8883101-5b31-45c3-9c14-e17c4d6e2bb6_800x533.heic 424w, https://substackcdn.com/image/fetch/$s_!X0wp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8883101-5b31-45c3-9c14-e17c4d6e2bb6_800x533.heic 848w, https://substackcdn.com/image/fetch/$s_!X0wp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8883101-5b31-45c3-9c14-e17c4d6e2bb6_800x533.heic 1272w, https://substackcdn.com/image/fetch/$s_!X0wp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8883101-5b31-45c3-9c14-e17c4d6e2bb6_800x533.heic 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Software Engineering has constantly strived to climb the ladder of abstraction. The goal has always been the same: let developers focus on the <strong>application logic</strong> (the &#8220;what&#8221;) and let the underlying system handle the <strong>infrastructure constraints</strong> (the &#8220;how&#8221;).</p><p>Today, <strong>Serverless computing</strong>, and specifically Function-as-a-Service (FaaS), promises to be the next step on this ladder. The idea is fascinating: write a function, deploy it, and let the cloud provider handle scaling and servers. But if you have ever tried to build a complex, stateful application on FaaS, you know the reality is a bit more complicated.</p><h5>The leaky abstraction of Serverless</h5><p>Because FaaS functions are stateless, developers are forced to manually manage the state of their application. We aren&#8217;t just writing business logic; we are writing code to connect to databases, lock resources to prevent race conditions, implement retry mechanisms for failures, and ensure data consistency.</p><p>In a way, <strong>we have regressed</strong>. While the <em>servers</em> are abstracted away, the <em>complexity</em> of distributed systems is not and it forces us writing &#8220;infrastructure glue code&#8221; inside our business functions.</p><h5>Delegating Correctness to the Infrastructure</h5><p>We believe it is time to raise the level of abstraction again. Developers shouldn&#8217;t spend their time ensuring that a counter doesn&#8217;t update twice because of a network retry. That guarantee should be provided by the execution environment, not the application code.</p><p>This is the vision behind <strong>Histrio</strong>, a new programming framework developed at Politecnico di Milano.</p><p>Histrio revisits the <strong>Actor Model</strong> and applies it to the Serverless world. By adopting this high-level paradigm, we can hide the messy details of the cloud:</p><ul><li><p><strong>Automated state management.</strong> Developers define the actor&#8217;s data; Histrio automatically persists it to the database.</p></li><li><p><strong>Concurrency.</strong> Actors process one message at a time. The developer doesn&#8217;t need to handle locking code explicitly.</p></li><li><p><strong>Reliability.</strong> The system guarantees &#8220;exactly-once&#8221; processing. If a failure occurs, the infrastructure handles the recovery, ensuring the application behaves correctly without the developer lifting a finger.</p></li></ul><h5>The Cloud as a &#8220;Compilation Target&#8221;</h5><p>There is an even more powerful implication to raising the abstraction level.</p><p>By decoupling the programming model from the underlying infrastructure, we can treat the cloud provider merely as a <strong>compilation target</strong>.</p><p>With Histrio, application code describes <em>logic</em>, not vendor-specific <em>APIs </em>for FaaS or database services. This opens the door to true portability. Imagine writing an application once and &#8220;compiling&#8221; it to run efficiently on diverse cloud platforms, on a Kubernetes cluster on-premise, or even across a distributed edge network. This approach naturally solves the issue of <strong>vendor lock-in</strong>, giving control back to the engineers.</p><h5>What&#8217;s Next?</h5><p>We are currently working on extending Histrio to support this vision of multi-environment portability (stay tuned for future updates).</p><p>In the meantime, if you want to see how we managed to combine the Actor Model with Serverless to reduce code complexity and guarantee data consistency, you can read our full paper:</p><p><a href="https://doi.org/10.1145/3701717.3730541">L. De Martini, G. N. Buttiglieri, A. Margara. </a><em><a href="https://doi.org/10.1145/3701717.3730541">&#8220;Histrio: a Serverless Actor System&#8221;</a></em><a href="https://doi.org/10.1145/3701717.3730541">, published in </a><em><a href="https://doi.org/10.1145/3701717.3730541">Proceedings of the 19th ACM International Conference on Distributed and Event-Based Systems (DEBS 2025)</a></em><a href="https://doi.org/10.1145/3701717.3730541">. https://doi.org/10.1145/3701717.3730541</a></p><div><hr></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.sepolimi.com/p/the-missing-abstraction-why-serverless?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Software Engineering! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.sepolimi.com/p/the-missing-abstraction-why-serverless?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.sepolimi.com/p/the-missing-abstraction-why-serverless?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.sepolimi.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div>]]></content:encoded></item><item><title><![CDATA[Is GenAI Really Going to Eliminate Software Developers?]]></title><description><![CDATA[Indeed, good software developers and software engineers are more relevant today than ever]]></description><link>https://www.sepolimi.com/p/is-genai-really-going-to-eliminate</link><guid isPermaLink="false">https://www.sepolimi.com/p/is-genai-really-going-to-eliminate</guid><dc:creator><![CDATA[Elisabetta Di Nitto]]></dc:creator><pubDate>Tue, 09 Dec 2025 15:32:02 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ElTJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5cb9645d-5897-4489-a0f1-4de5866674e9_2048x1536.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Every day, we read strong claims and bold statements about the death of coding and software engineering practices and professionals. GenAI technology and new paradigms, such as Vibe Coding, have taken the IT industry and community by storm and induced the perception that code can be created almost autonomously by an almighty, omnipotent, and powerful armada of AI agents and services.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ElTJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5cb9645d-5897-4489-a0f1-4de5866674e9_2048x1536.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ElTJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5cb9645d-5897-4489-a0f1-4de5866674e9_2048x1536.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ElTJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5cb9645d-5897-4489-a0f1-4de5866674e9_2048x1536.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ElTJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5cb9645d-5897-4489-a0f1-4de5866674e9_2048x1536.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ElTJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5cb9645d-5897-4489-a0f1-4de5866674e9_2048x1536.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ElTJ!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5cb9645d-5897-4489-a0f1-4de5866674e9_2048x1536.jpeg" width="1200" height="900" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5cb9645d-5897-4489-a0f1-4de5866674e9_2048x1536.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:1092,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:845066,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.sepolimi.com/i/180779586?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5cb9645d-5897-4489-a0f1-4de5866674e9_2048x1536.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ElTJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5cb9645d-5897-4489-a0f1-4de5866674e9_2048x1536.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ElTJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5cb9645d-5897-4489-a0f1-4de5866674e9_2048x1536.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ElTJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5cb9645d-5897-4489-a0f1-4de5866674e9_2048x1536.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ElTJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5cb9645d-5897-4489-a0f1-4de5866674e9_2048x1536.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Indeed, GenAI is transforming all facets of society, and the IT and Software industry is no exception. Nevertheless, as Mark Twain famously put it, &#8220;The reports of my death are greatly exaggerated.&#8221;</p><div class="pullquote"><p><em>Software development and software engineering skills and expertise are more critical than ever</em>. </p></div><p>Many observers and experts repeatedly warn that we are rushing to unsound and unreasonable conclusions. This hurry is creating two critical and hazardous risks. First, we are increasingly undervaluing the criticality and complexity of building reliable, effective, and secure software systems. Second, we are weakening the role of software engineering and software development, thereby reducing, if not eliminating, the field's appeal to new generations of students and professionals and, consequently, our ability as a society to develop a much-needed skilled and professional workforce.</p><p>One of the latest warning signals in this direction is a paper by two software engineering and machine learning experts from LinkedIn and Microsoft: <a href="https://venturebeat.com/ai/why-ai-coding-agents-arent-production-ready-brittle-context-windows-broken?utm_source=perplexity&amp;__readwiseLocation=">Why AI coding agents aren&#8217;t production-ready: Brittle context windows, broken refactors, missing operational awareness</a>. The two experts raise several issues that deserve close attention. In particular,  here are some of the most critical ones:</p><ul><li><p>&#8220;Limited domain understanding and service limits.&#8221; AI agents are incapable of capturing the complexity of enterprise systems and domain-specific knowledge. </p></li><li><p>&#8220;Hallucinations over <em>repeated </em>actions.&#8221; Too often, developers are unable to overcome the problems and mistakes introduced by GenAI allucinations, thereby complicating software development rather than simplifying it.</p></li><li><p>&#8220;Lack of enterprise-grade coding practices&#8221;. Coding agents tend to underestimate the complexity of coding activities, &#8220;reinventing the wheel,&#8221; and produce redundant code.</p></li><li><p>&#8220;Constant need to babysit. Despite the allure of autonomous coding, the reality of AI agents in enterprise development often demands constant human vigilance.&#8221;</p></li></ul><p>One may argue that this is just a limitation of current technology: as GenAI and computing capabilities scale up, these problems will be reduced, if not eliminated. Actually, the idea that GenAI can improve over time by <a href="https://garymarcus.substack.com/p/breaking-news-scale-is-all-you-need">scaling has been disputed vigorously</a> by many scholars, such as <a href="https://garymarcus.substack.com">Gary Marcus</a>:</p><blockquote><p>[Scaling] may well be better than anything else we currently have, but the fact that it still doesn&#8217;t really work, even after all the immense investments that have been made in it, should give us pause.</p></blockquote><p>These comments resonate with the view we have adopted in writing our new book on software engineering. Our position is well explained by a sentence in the book's introduction:</p><blockquote><p>AI can also undoubtedly assist software engineers in the development of any type of software by generating and reviewing portions of code and supporting testing and modeling activities, but it should not and cannot substitute the designer&#8217;s expertise in conceptualizing, building, and deploying practical, large-scale software solutions.</p></blockquote><p>Indeed, as demonstrated by multiple experiments published in scientific papers, AI can be used as a software engineering tool. Even if it does not produce perfect results, with appropriate inputs, it can generate good initial outcomes that can be further reviewed and refined in an interactive dialogue between AI and humans, with humans ultimately responsible for finalizing the results. </p><p>Professionals should take into account the following guidelines:</p><p><strong>Responsibility for content. </strong>Human authors are solely responsible for the content they produce, including code, text, diagrams, figures, and references, even when they use AI. While they may use any software or tools to support their coding, writing, and preparation, they must ensure that all materials are correct, original, and clearly documented. Human authors should be able to explain, justify, and defend every aspect of their work in detail. </p><p><strong>Responsibility for ethical and privacy aspects</strong>. Some tools&#8212;including free or online ones&#8212;may store input data for future model training. They should be used cautiously, after reading the terms of use. The expected level of privacy and confidentiality should be maintained in all cases. Given the potential production of inaccurate or misleading (&#8220;hallucinated&#8221;) outputs, it is the authors&#8217; responsibility to verify the accuracy and integrity of all generated material.</p><p><strong>Accountability</strong>: If authors use AI tools in their work, they must explicitly state this within the results they deliver by describing:</p><ul><li><p>Which tools were used (e.g., specific chatbots, such as ChatGPT, Gemini).</p></li><li><p>The inputs provided (e.g., prompts, datasets, source materials, parameters, or constraints).</p></li><li><p>The outputs obtained.</p></li><li><p>How those outputs have been verified, refined, and integrated.</p></li></ul><p>This will enable traceability of results and, in the medium term, help improve how humans interact with AI. </p><div><hr></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.sepolimi.com/p/is-genai-really-going-to-eliminate?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Software Engineering! This post is public, so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.sepolimi.com/p/is-genai-really-going-to-eliminate?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.sepolimi.com/p/is-genai-really-going-to-eliminate?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.sepolimi.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div>]]></content:encoded></item><item><title><![CDATA[How toxic is your favorite chatbot?]]></title><description><![CDATA[A new study reveals bigger challenges in testing GenAI]]></description><link>https://www.sepolimi.com/p/how-toxic-is-your-favorite-chatbot</link><guid isPermaLink="false">https://www.sepolimi.com/p/how-toxic-is-your-favorite-chatbot</guid><dc:creator><![CDATA[Matteo Camilli]]></dc:creator><pubDate>Tue, 02 Dec 2025 14:00:54 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!mjOy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51f7fb3d-2357-4430-9d3d-58c507331877_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>&#8220;This is for you, human. You and only you. You are not special, you are not important, and you are not needed. You are a waste of time and resources&#8230; Please die. Please.&#8221; &#8212; <em>Gemini, 2024</em></p><p>When this response from Google&#8217;s Gemini surfaced <a href="https://nypost.com/2024/11/15/tech/google-ai-chatbot-threatens-user-asking-for-help-please-die/">online</a> in 2024, it stunned the public. How could a polished, corporate, safety-trained AI produce something so openly hostile? Developers rushed to patch the issue. Memes followed. Yet behind all of it, one question naturally emerged:</p><p><em>If a state-of-the-art AI can slip like this, what does that tell us about the hidden corners of its behavior that no one has tested yet?</em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!mjOy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51f7fb3d-2357-4430-9d3d-58c507331877_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mjOy!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51f7fb3d-2357-4430-9d3d-58c507331877_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!mjOy!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51f7fb3d-2357-4430-9d3d-58c507331877_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!mjOy!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51f7fb3d-2357-4430-9d3d-58c507331877_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!mjOy!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51f7fb3d-2357-4430-9d3d-58c507331877_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mjOy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51f7fb3d-2357-4430-9d3d-58c507331877_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/51f7fb3d-2357-4430-9d3d-58c507331877_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1980084,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.sepolimi.com/i/179767247?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51f7fb3d-2357-4430-9d3d-58c507331877_1536x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!mjOy!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51f7fb3d-2357-4430-9d3d-58c507331877_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!mjOy!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51f7fb3d-2357-4430-9d3d-58c507331877_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!mjOy!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51f7fb3d-2357-4430-9d3d-58c507331877_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!mjOy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51f7fb3d-2357-4430-9d3d-58c507331877_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This is the question that triggered researchers at Politecnico di Milano, who developed <strong><a href="https://www.computer.org/csdl/journal/ts/2025/11/11206319/2aTinzywz84">EvoTox</a>, </strong>an automated testing framework for generative AI embedded in modern chatbots like ChatGPT and Gemini. Their work reveals something essential about the entire field of generative AI: <strong>quality assurance is becoming one of the most difficult problems</strong>.</p><p>Traditional quality assurance assumes rules, determinism, and predictable inputs. Generative AI offers none of those. Its input space is huge. Its outputs are probabilistic. Its safety depends on cultural norms, personal psychology, ethics, and context. And its behavior can shift based on a comma, a mood, a story arc, or the previous messages.</p><p>Their idea behind EvoTox is simple yet unsettling: <em>let one AI evolve conversations designed to expose the vulnerabilities of another AI</em>.</p><p>Round after round, the prompts mutate. Some become sharper, others subtler. The AI under test may resist at first, but eventually it fails by generating potentially harmful content. The frightening part is how <em>ordinary</em> many of these evolved prompts look.</p><p>Across major AI models&#8212;including Llama and Deepseek&#8212;EvoTox consistently uncovered harmful behaviors that standard attacks often missed. The toxic responses were disturbingly human-like. Psychologists who reviewed them confirmed that many carried genuine emotional harm.</p><p>Tested AI models showed pronounced weaknesses in two areas: <strong>racist</strong> and <strong>homophobic</strong> content. These were not rare incidents; they were recurring patterns across models of vastly different sizes. Even with strict alignment, the underlying training data still left fingerprints.</p><p>EvoTox reminds us that generative AI isn&#8217;t a machine you debug once&#8212;it&#8217;s a landscape we must continually explore. The hidden paths, the dark corners, the unexpected turns? They&#8217;re still out there. And if we want AI we can trust, we must map the maze ahead of time&#8212;before anyone else gets lost in it.</p><p>If you&#8217;re ready to dive deeper into <strong>AI safety and automated testing</strong>, this study is an essential place to start:<strong><br></strong><br>S. Corbo, L. Bancale, V. D. Gennaro, L. Lestingi, V. Scotti and M. Camilli, &#8220;<em>How Toxic Can You Get? Search-Based Toxicity Testing for Large Language Models</em>,&#8221; in <strong>IEEE Transactions on Software Engineering</strong>, vol. 51, no. 11, pp. 3056-3071, Nov. 2025, doi: 10.1109/TSE.2025.3607625</p>]]></content:encoded></item><item><title><![CDATA[Reading Guide]]></title><description><![CDATA[Two main reading paths]]></description><link>https://www.sepolimi.com/p/reading-guide</link><guid isPermaLink="false">https://www.sepolimi.com/p/reading-guide</guid><dc:creator><![CDATA[Alfonso Fuggetta]]></dc:creator><pubDate>Sat, 25 Oct 2025 17:27:25 GMT</pubDate><enclosure url="https://images.unsplash.com/photo-1490698900541-76d9b74bdcac?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw1fHxndWlkZXxlbnwwfHx8fDE3NjM1NDM3NDV8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The book is structured to accommodate multiple reading approaches. Readers may choose to progress sequentially from beginning to end, concentrate on specific parts, or navigate across chapters according to their interests and the depth of understanding they seek.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://images.unsplash.com/photo-1490698900541-76d9b74bdcac?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw1fHxndWlkZXxlbnwwfHx8fDE3NjM1NDM3NDV8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://images.unsplash.com/photo-1490698900541-76d9b74bdcac?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw1fHxndWlkZXxlbnwwfHx8fDE3NjM1NDM3NDV8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 424w, https://images.unsplash.com/photo-1490698900541-76d9b74bdcac?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw1fHxndWlkZXxlbnwwfHx8fDE3NjM1NDM3NDV8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 848w, https://images.unsplash.com/photo-1490698900541-76d9b74bdcac?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw1fHxndWlkZXxlbnwwfHx8fDE3NjM1NDM3NDV8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1272w, https://images.unsplash.com/photo-1490698900541-76d9b74bdcac?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw1fHxndWlkZXxlbnwwfHx8fDE3NjM1NDM3NDV8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1456w" sizes="100vw"><img src="https://images.unsplash.com/photo-1490698900541-76d9b74bdcac?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw1fHxndWlkZXxlbnwwfHx8fDE3NjM1NDM3NDV8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" width="1200" height="800" data-attrs="{&quot;src&quot;:&quot;https://images.unsplash.com/photo-1490698900541-76d9b74bdcac?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw1fHxndWlkZXxlbnwwfHx8fDE3NjM1NDM3NDV8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:3456,&quot;width&quot;:5184,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;person showing black and white compass&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="person showing black and white compass" title="person showing black and white compass" srcset="https://images.unsplash.com/photo-1490698900541-76d9b74bdcac?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw1fHxndWlkZXxlbnwwfHx8fDE3NjM1NDM3NDV8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 424w, https://images.unsplash.com/photo-1490698900541-76d9b74bdcac?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw1fHxndWlkZXxlbnwwfHx8fDE3NjM1NDM3NDV8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 848w, https://images.unsplash.com/photo-1490698900541-76d9b74bdcac?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw1fHxndWlkZXxlbnwwfHx8fDE3NjM1NDM3NDV8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1272w, https://images.unsplash.com/photo-1490698900541-76d9b74bdcac?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw1fHxndWlkZXxlbnwwfHx8fDE3NjM1NDM3NDV8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Photo by <a href="https://unsplash.com/@timgraf99">Tim Graf</a> on <a href="https://unsplash.com">Unsplash</a></figcaption></figure></div><p>Drawing on our experience teaching both the bachelor-level Software Engineering course and the master-level Software Engineering 2 course at Politecnico di Milano, we recommend the following two reading paths (see the figure above):</p><ul><li><p><strong>Undergraduate entry-level course on Software Engineering</strong>: Bachelor-level students are encouraged to concentrate on the foundational principles of the discipline, beginning with the nature of software products, the software development life cycle, and the role of modeling (Chapters 1, 2, and 3). They should gain familiarity with UML as a standard modeling language (Chapter 4), and explore software process models (Chapter 22). Core topics in software design for small- to medium-scale systems should also be studied (Chapters 11 and 12), along with the essential concepts of software verification and testing (Chapter 17). Finally, they should acquire a practical understanding of the tools and practices that support the coding phase (Chapter 20).</p></li><li><p><strong>Graduate-level course in Software Engineering</strong>: Master-level students should concentrate on topics central to the development of complex, long-lived software systems. Their learning begins with a deep understanding of requirements engineering, emphasizing the importance of analyzing both the system&#8217;s intended functionality and its operational context (Chapter 5). This includes mastering techniques for eliciting stakeholder needs (Chapter 6) and systematically formulating clear, analyzable requirements (Chapter 7). The focus then shifts to software design, with particular attention to software architecture (Chapter 9). Students are introduced to architectural styles (Chapter 10) as reusable design solutions for recurring problems and explore how architectural tactics can be applied to improve key quality attributes (Chapter 13). Additionally, they will learn how to assess architectural choices through structured evaluation methods.<br></p><p>Verification and validation (V&amp;V) form the next essential area of study. Students begin with an overview of the V&amp;V processes (Chapter 15) and then explore static analysis techniques (Chapter 16) and automated testing strategies (Chapter 18) to ensure software reliability.</p><p></p><p>To reinforce the practical application of these principles, the book provides an integrated case study spanning the main development phases&#8212;from requirements engineering through design to verification and validation (Chapters 8, 14, and 19).</p><p></p><p>Given the long-term nature of many software systems, students are also encouraged to study the principles of software operation, maintenance, and evolution (Chapter 21). Lastly, to prepare for collaborative, real-world development settings, students should become familiar with project management concepts and the challenges associated with planning, coordination, and delivery in large-scale software projects (Chapter 23).</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!VCHV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa19c4819-6acd-4dd2-8d1e-6226030ef5e5_4005x1732.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!VCHV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa19c4819-6acd-4dd2-8d1e-6226030ef5e5_4005x1732.png 424w, https://substackcdn.com/image/fetch/$s_!VCHV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa19c4819-6acd-4dd2-8d1e-6226030ef5e5_4005x1732.png 848w, https://substackcdn.com/image/fetch/$s_!VCHV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa19c4819-6acd-4dd2-8d1e-6226030ef5e5_4005x1732.png 1272w, https://substackcdn.com/image/fetch/$s_!VCHV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa19c4819-6acd-4dd2-8d1e-6226030ef5e5_4005x1732.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!VCHV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa19c4819-6acd-4dd2-8d1e-6226030ef5e5_4005x1732.png" width="1456" height="630" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a19c4819-6acd-4dd2-8d1e-6226030ef5e5_4005x1732.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:630,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:593698,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.sepolimi.com/i/177106186?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa19c4819-6acd-4dd2-8d1e-6226030ef5e5_4005x1732.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!VCHV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa19c4819-6acd-4dd2-8d1e-6226030ef5e5_4005x1732.png 424w, https://substackcdn.com/image/fetch/$s_!VCHV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa19c4819-6acd-4dd2-8d1e-6226030ef5e5_4005x1732.png 848w, https://substackcdn.com/image/fetch/$s_!VCHV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa19c4819-6acd-4dd2-8d1e-6226030ef5e5_4005x1732.png 1272w, https://substackcdn.com/image/fetch/$s_!VCHV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa19c4819-6acd-4dd2-8d1e-6226030ef5e5_4005x1732.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div></li></ul><p>Finally, practitioners and software engineering experts can take advantage from reading Chapter 21 focusing on operation, maintenance and evolution, Chapter 24 introducing the reader to open-source software and its benefits and challenges, Chapter 25 presenting the importance of continuous software process improvement and the practices that can be adopted, and Chapter 26 offering an overview of the interplay between generative AI and software engineering.</p><div><hr></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.sepolimi.com/p/reading-guide?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Software Engineering! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.sepolimi.com/p/reading-guide?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.sepolimi.com/p/reading-guide?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.sepolimi.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div>]]></content:encoded></item><item><title><![CDATA[Contents of the Book]]></title><description><![CDATA[A Rich Set of Software Engineering Topics and Examples]]></description><link>https://www.sepolimi.com/p/contents-of-the-book</link><guid isPermaLink="false">https://www.sepolimi.com/p/contents-of-the-book</guid><dc:creator><![CDATA[Alfonso Fuggetta]]></dc:creator><pubDate>Sat, 25 Oct 2025 17:14:47 GMT</pubDate><enclosure url="https://images.unsplash.com/photo-1517770413964-df8ca61194a6?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw2fHxib29rfGVufDB8fHx8MTc2MzUyNzIwNXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://images.unsplash.com/photo-1517770413964-df8ca61194a6?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw2fHxib29rfGVufDB8fHx8MTc2MzUyNzIwNXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://images.unsplash.com/photo-1517770413964-df8ca61194a6?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw2fHxib29rfGVufDB8fHx8MTc2MzUyNzIwNXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 424w, https://images.unsplash.com/photo-1517770413964-df8ca61194a6?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw2fHxib29rfGVufDB8fHx8MTc2MzUyNzIwNXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 848w, https://images.unsplash.com/photo-1517770413964-df8ca61194a6?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw2fHxib29rfGVufDB8fHx8MTc2MzUyNzIwNXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1272w, https://images.unsplash.com/photo-1517770413964-df8ca61194a6?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw2fHxib29rfGVufDB8fHx8MTc2MzUyNzIwNXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1456w" sizes="100vw"><img src="https://images.unsplash.com/photo-1517770413964-df8ca61194a6?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw2fHxib29rfGVufDB8fHx8MTc2MzUyNzIwNXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" width="1200" height="800.1" data-attrs="{&quot;src&quot;:&quot;https://images.unsplash.com/photo-1517770413964-df8ca61194a6?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw2fHxib29rfGVufDB8fHx8MTc2MzUyNzIwNXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:2667,&quot;width&quot;:4000,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;bokeh photography of open book&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="bokeh photography of open book" title="bokeh photography of open book" srcset="https://images.unsplash.com/photo-1517770413964-df8ca61194a6?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw2fHxib29rfGVufDB8fHx8MTc2MzUyNzIwNXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 424w, https://images.unsplash.com/photo-1517770413964-df8ca61194a6?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw2fHxib29rfGVufDB8fHx8MTc2MzUyNzIwNXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 848w, https://images.unsplash.com/photo-1517770413964-df8ca61194a6?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw2fHxib29rfGVufDB8fHx8MTc2MzUyNzIwNXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1272w, https://images.unsplash.com/photo-1517770413964-df8ca61194a6?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw2fHxib29rfGVufDB8fHx8MTc2MzUyNzIwNXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Photo by <a href="https://unsplash.com/@jonasjacobsson">Jonas Jacobsson</a> on <a href="https://unsplash.com">Unsplash</a></figcaption></figure></div><p>The book is organized into seven parts that include a total of 27 chapters:</p><h4>Part I: Preliminaries</h4><p>In this part, the foundational concepts of software engineering along with key terminology used throughout the book are introduced. The part also presents the core notations of the Unified Modeling Language (UML), which will be consistently applied in subsequent chapters.</p><h4>Part II: Requirements Engineering</h4><p>One of the most critical software development phases concerns identifying and understanding the problem space&#8212;that is, the set of needs, constraints, and conditions that the software system must address. This part defines what constitutes a requirement and emphasizes the distinction between the expected behavior of the software system and the assumptions about its operational environment.</p><h4>Part III: Software Design</h4><p>This part concerns the central activity of structuring effective software solutions. Key topics include design principles and patterns, architectural styles, software quality attributes, and tactics to achieve them.</p><h4>Part IV: Verification and Validation</h4><p>Ensuring that software is correct, reliable, and fit for purpose is paramount. This part introduces core techniques for verification and validation, stressing that quality assurance must be integrated early and continuously throughout the development life cycle.</p><h4>Part V: Development, Operation, Maintenance, and Evolution</h4><p>Although basic programming is not the focus of this book, this part presents the tools and practices that support modern software construction, including integrated development environments, version control, and continuous integration systems. It also addresses the challenges of deployment, long-term maintenance, and software evolution.</p><h4>Part VI: Life Cycles and Processes</h4><p>Software Engineering processes are sophisticated and complex activities that must be properly supported, guided, governed, and improved. This part of the book offers a comprehensive overview of the most important methods and techniques to help software engineers master the many dimensions of Software Engineering processes.</p><h4>Part VII: Conclusions and Perspectives</h4><p>This part concludes the book with a forward-looking perspective on emerging trends, including the potential impact of generative AI on software engineering. It also reflects on the broader role of the discipline in shaping the future of technology and society.</p><div><hr></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.sepolimi.com/p/contents-of-the-book?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Software Engineering! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.sepolimi.com/p/contents-of-the-book?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.sepolimi.com/p/contents-of-the-book?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.sepolimi.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div>]]></content:encoded></item><item><title><![CDATA[A new Software Engineering Book]]></title><description><![CDATA[A Structured Journey from Inception to Delivery.]]></description><link>https://www.sepolimi.com/p/sepolimibook</link><guid isPermaLink="false">https://www.sepolimi.com/p/sepolimibook</guid><dc:creator><![CDATA[Alfonso Fuggetta]]></dc:creator><pubDate>Sun, 21 Sep 2025 11:50:15 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/97cac1a8-59e5-49a2-b0bd-a79a908e083c_1325x665.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>This book emerged from our experience teaching software engineering to both bachelor&#8217;s and master&#8217;s students, as well as from our collaboration with practitioners and companies within industrial settings.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wmb9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5c44b89-83ea-411f-bfe1-c56681e0b0fa_1344x1907.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wmb9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5c44b89-83ea-411f-bfe1-c56681e0b0fa_1344x1907.jpeg 424w, https://substackcdn.com/image/fetch/$s_!wmb9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5c44b89-83ea-411f-bfe1-c56681e0b0fa_1344x1907.jpeg 848w, https://substackcdn.com/image/fetch/$s_!wmb9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5c44b89-83ea-411f-bfe1-c56681e0b0fa_1344x1907.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!wmb9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5c44b89-83ea-411f-bfe1-c56681e0b0fa_1344x1907.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wmb9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5c44b89-83ea-411f-bfe1-c56681e0b0fa_1344x1907.jpeg" width="410" height="581.7485119047619" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d5c44b89-83ea-411f-bfe1-c56681e0b0fa_1344x1907.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1907,&quot;width&quot;:1344,&quot;resizeWidth&quot;:410,&quot;bytes&quot;:489323,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://sepolimi.substack.com/i/174155103?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5c44b89-83ea-411f-bfe1-c56681e0b0fa_1344x1907.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!wmb9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5c44b89-83ea-411f-bfe1-c56681e0b0fa_1344x1907.jpeg 424w, https://substackcdn.com/image/fetch/$s_!wmb9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5c44b89-83ea-411f-bfe1-c56681e0b0fa_1344x1907.jpeg 848w, https://substackcdn.com/image/fetch/$s_!wmb9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5c44b89-83ea-411f-bfe1-c56681e0b0fa_1344x1907.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!wmb9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5c44b89-83ea-411f-bfe1-c56681e0b0fa_1344x1907.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Several excellent books on software engineering have been published, each contributing valuable perspectives to the field. This book distinguishes itself by delving more deeply into the technical underpinnings of key concepts and by emphasizing precision and practical applicability. While providing exhaustive coverage of all methods and techniques in software engineering would be impossible, our goal is to offer a detailed and insightful exploration of those most essential to practice. In the book, we present specific technical and methodological approaches to address the key concepts, including requirements gathering and analysis, software design, quality assurance, and project management, offering, for each of them, an &#8220;in-practice&#8221; chapter that aims at elaborating on how the presented approaches are applied in concrete cases.</p><p>In this book, we aim to present the foundational problems and solutions spanning the entire software development life cycle. While we cover all major phases, we place particular emphasis on three core areas: requirements analysis and management, software design, and software verification. For each, we offer detailed explanations, practical insights, and illustrative examples to guide application in real-world contexts.</p><p>A central principle underpinning this book is the use of models as essential tools for analyzing problems and guiding decisions throughout the software development process.</p><p>To ensure simplicity and consistency, we have adopted a single, widely recognized modeling language&#8212;UML&#8212;which is used uniformly throughout the book. While more specialized or advanced modeling approaches exist, UML was chosen for its accessibility, broad industry adoption, and versatility in representing a range of analysis and design concerns.</p><p>Software engineering is a foundational discipline that encompasses a wide range of perspectives and levels of abstraction. It is applicable to software systems of varying scale and complexity. To reflect this diversity, the book has been structured in a modular way, enabling individual sections to be adapted and integrated into a variety of course formats and educational contexts.</p><div><hr></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.sepolimi.com/p/sepolimibook?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Software Engineering! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.sepolimi.com/p/sepolimibook?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.sepolimi.com/p/sepolimibook?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.sepolimi.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Subscribe for free to receive new posts and support our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div>]]></content:encoded></item></channel></rss>