Modular architecture, Extensibility, Open development, Communication – merge some chapters, remove unnecessary/redundant points. v_0
authorFrantišek Kučera <franta-hg@frantovo.cz>
Mon, 23 Sep 2019 14:51:12 +0200
branchv_0
changeset 31 43feb77ffcfb
parent 30 841bec790da8
child 32 3811f3a52f44
Modular architecture, Extensibility, Open development, Communication – merge some chapters, remove unnecessary/redundant points.
text/ssm.en.xml
--- a/text/ssm.en.xml	Sun Sep 22 01:36:35 2019 +0200
+++ b/text/ssm.en.xml	Mon Sep 23 14:51:12 2019 +0200
@@ -167,56 +167,30 @@
 	</chapter>
 	
 	<chapter>
-		<name>Modular architecture</name>
+		<name>Modular architecture and extensibility</name>
 		<id>c56e7e86-e480-4a5d-8a47-ab155dcd59b1</id>
 		<item>
 			<id>e50424e8-94f3-48aa-bf01-0ba984eb2349</id>
-			<text>larger and multi-purpose software should be divided into smaller modules</text>
+			<text>Larger and multi-purpose software must be divided into smaller modules.</text>
 		</item>
 		<item>
 			<id>e752efae-75c9-4620-aa14-65c4949a3609</id>
-			<text>modules must have defined dependencies (less = better)</text>
+			<text>The modules must have defined dependencies (less = better).</text>
+			<note>Dependencies needed to write an extension/module (i.e. header files, API classes/interfaces) should be as small as possible (do not require large codebase to write a mere plug-in).</note>
+			<note>The required dependency should contain just interfaces (method/function signatures) and data structures but no implementation (executable code).</note>
 		</item>
 		<item>
 			<id>e9988ed0-d686-41a0-9f1e-3243ac5235d5</id>
-			<text>particular modules should be compilable and executable separately</text>
-		</item>
-		<item>
-			<id>ac722cec-0734-4d80-9885-d70a97b6402b</id>
-			<text>whole system should be compilable (buildable) with only selected modules – must not require compilation or even distribution of all modules, if they are not necessary</text>
+			<text>Particular modules should be compilable and executable (installable) independently.</text>
+			<text>It should not be necessary to recompile the core and other modules if only one module is changed.</text>
+			<note>Whole system should be compilable (buildable) with only selected modules – must not require compilation or even distribution of all modules, if they are not necessary.</note>
+			<note>The goal is to reduce the complexity and the code footprint that comes into the play if the user needs only certain features.</note>
 		</item>
-	</chapter>
-	
-	<chapter>
-		<name>Extensible</name>
-		<id>d333af72-b5b5-432f-b564-a008d54a85d1</id>
 		<item>
 			<id>a7bc51ba-9832-4f75-983c-e75dc0801113</id>
-			<text>able to be extended</text>
-			<item>
-				<id>e190f58d-1c16-4198-94d6-fc1a99fa85a0</id>
-				<text>by configuration (RegExp, SQL, XSLT, XPath etc.)</text>
-			</item>
-			<item>
-				<id>fde301e5-6e75-49a4-85c8-a231f6a63036</id>
-				<text>by scripting (Guile, Bash, Python, Lua, ECMA Script etc.)</text>
-			</item>
-			<item>
-				<id>a9c63cea-b9df-4bbd-bec1-84a047514667</id>
-				<text>and/or third-party plugins/modules</text>
-				<item>
-					<id>de7270db-0410-4152-974f-4f0d74ff255b</id>
-					<text>it should be easy to create a third-party module and plug it in an existing system</text>
-				</item>
-				<item>
-					<id>fb4b07d1-6af7-44d9-8e6a-89ea63638652</id>
-					<text>dependencies needed to write an extension (i.e. header files, API classes/interfaces) should be as small as possible (do not require large codebase to write a mere plug-in); the required dependency should contain just interfaces (method/function signatures) and data structures but no implementation (executable code)</text>
-				</item>
-			</item>
-		</item>
-		<item>
-			<id>e41134a4-715c-4926-a7df-01ff3759eda1</id>
-			<text>there should be public directory of extensions/scripts</text>
+			<text>Another good ways to extend and customize the software are:</text>
+			<text>configuration (XML, INI, RegExp, SQL, XSLT, XPath etc.) and</text>
+			<text>scripting (Guile, Bash, Python, Lua, ECMA Script etc.)</text>
 		</item>
 	</chapter>
 	
@@ -558,6 +532,14 @@
 			<id>b6cf8d5f-0fc9-46f7-8e38-8342a1229037</id>
 			<text>every security incident must be clearly documented and investigated – do not obscure it</text>
 		</item>
+		<item>
+			<id>e41134a4-715c-4926-a7df-01ff3759eda1</id>
+			<text>There should be public directory of extensions/scripts.</text>
+		</item>
+		<item>
+			<id>fed07648-106a-4b7c-9026-509c82109448</id>
+			<text>Source code repository (versioning system) must be public. Do not publish just source code snapshots of released versions.</text>
+		</item>
 	</chapter>
 	
 	<chapter>
@@ -590,6 +572,7 @@
 				<id>af6a589f-d419-483f-b7b2-07b6e9da3924</id>
 				<text>to sign any political, religious or other proclamation or agree with it</text>
 			</item>
+			<note>The term „contribution“ includes not only source code (patch) but also bugreports, feature specifications, documentation, assets (graphics, music etc.) or similar artifacts.</note>
 		</item>
 		<item>
 			<id>b4319392-8d6a-4f07-8a94-7ae2ed97c787</id>
@@ -616,25 +599,4 @@
 			<text>the contributor must not loose the right to use or distribute the contributed code under any license (of his choice)</text>
 		</item>
 	</chapter>
-	
-	<chapter>
-		<name>Open development – has public:</name>
-		<id>b704bc25-d3c1-4481-98bf-54455c507f37</id>
-		<item>
-			<id>fed07648-106a-4b7c-9026-509c82109448</id>
-			<text>source code repository (versioning system), not just source code snapshots of released versions</text>
-		</item>
-		<item>
-			<id>d9934675-abbd-418f-abf6-dfeaaea6a544</id>
-			<text>description of the process of accepting external patches</text>
-		</item>
-		<item>
-			<id>e6d2175a-97ff-4fd5-9bc1-a3914c6dd719</id>
-			<text>feature/bug tracking system</text>
-		</item>
-		<item>
-			<id>ae430fee-4850-453f-9382-282d7eed27a4</id>
-			<text>plan of supported versions/branches</text>
-		</item>
-	</chapter>
 </manifesto>