<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Requirements Engineering on HJohansen.dk</title><link>https://hjohansen.dk/knowledge/requirements/</link><description>Recent content in Requirements Engineering on HJohansen.dk</description><generator>Hugo</generator><language>da-DK</language><lastBuildDate>Sun, 24 May 2026 08:30:00 +0200</lastBuildDate><atom:link href="https://hjohansen.dk/knowledge/requirements/index.xml" rel="self" type="application/rss+xml"/><item><title>Acceptance Criteria</title><link>https://hjohansen.dk/knowledge/requirements/acceptance-criteria/</link><pubDate>Sun, 24 May 2026 08:30:00 +0200</pubDate><guid>https://hjohansen.dk/knowledge/requirements/acceptance-criteria/</guid><description>&lt;p&gt;Acceptance criteria define how you prove a requirement is satisfied. They are concrete, verifiable, written in behavior terms, and often expressed as scenarios or rules.&lt;/p&gt;
&lt;h2 id="common-formats"&gt;Common Formats&lt;/h2&gt;
&lt;h3 id="rule-based"&gt;Rule-based&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Given X, system shall do Y.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="scenario-based-given--when--then"&gt;Scenario-based (Given / When / Then)&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Given a valid batch recipe,
When the user starts execution,
Then the system shall validate parameters before proceeding.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="key-properties"&gt;Key Properties&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Binary outcome&lt;/strong&gt; — pass or fail, no ambiguity&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Focus on observable behavior&lt;/strong&gt; — not implementation details&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Directly usable for testing&lt;/strong&gt; — a tester can derive test cases&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="relationship-to-requirements"&gt;Relationship to Requirements&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Requirements&lt;/th&gt;
 &lt;th&gt;Acceptance Criteria&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;What is needed&lt;/td&gt;
 &lt;td&gt;How we know it works&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;The goal&lt;/td&gt;
 &lt;td&gt;The proof&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Can be abstract&lt;/td&gt;
 &lt;td&gt;Must be concrete&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Think of acceptance criteria as the &lt;strong&gt;test contract&lt;/strong&gt; for a requirement. Every requirement should link to one or more criteria.&lt;/p&gt;</description></item><item><title>Requirements Engineering</title><link>https://hjohansen.dk/knowledge/requirements/overview/</link><pubDate>Sun, 24 May 2026 08:00:00 +0200</pubDate><guid>https://hjohansen.dk/knowledge/requirements/overview/</guid><description>&lt;p&gt;Requirements describe what the system must achieve, not how. They sit at different levels of abstraction.&lt;/p&gt;
&lt;h2 id="levels-of-requirements"&gt;Levels of Requirements&lt;/h2&gt;
&lt;h3 id="1-business-requirements"&gt;1. Business Requirements&lt;/h3&gt;
&lt;p&gt;The highest-level intent. Expresses &lt;em&gt;why&lt;/em&gt; something is needed. Usually stable over time.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;The system shall reduce manual batch configuration errors.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="2-user--functional-requirements"&gt;2. User / Functional Requirements&lt;/h3&gt;
&lt;p&gt;Describes system behavior from a user or process point of view. Focuses on &lt;em&gt;what&lt;/em&gt; the system does.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;The system shall validate all recipe parameters before execution.&amp;rdquo;&lt;/p&gt;</description></item></channel></rss>