| ... | ... | @@ -1,83 +1,87 @@ | 
              
                    | 1 |  | -The explanations given here do not claim to be complete. They merely serve as a brief description to give an idea of the respective term. For more detailed information, the Internet should be consulted. Note that some of these technical terms are fuzzy, overlap with other terms, or have different meanings depending on the context or the people using them. This Glossary is an attempt to structure these terms in a concise manner. Be open to variations as you talk and work with other developers. | 
              
                    |  | 1 | +(% class="box infomessage" %) | 
              
                    |  | 2 | +((( | 
              
                    |  | 3 | +(% style="text-align: justify;" %) | 
              
                    |  | 4 | +An object is injected with the dependencies it needs, rather than constructing them itself.The explanations given here do not claim to be complete. They merely serve as a brief description to give an idea of the respective term. For more detailed information, the Internet should be consulted. Note that some of these technical terms are fuzzy, overlap with other terms, or have different meanings depending on the context or the people using them. This Glossary is an attempt to structure these terms in a concise manner. Be open to variations as you talk and work with other developers. | 
              
                    |  | 5 | +))) | 
              
                    | 2 | 2 |  | 
              
                    | 3 |  | - | -------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 
              
                    | 4 |  | -|                                                              **Term**                                                             |                                                                                                                                                                                                                                                                       **Explanation**                                                                                                                                                                                                                                                                         | | 
              
                    | 5 |  | -|                                                            Abstraction                                                            |                                                                     1) The counterpart of 'concreteness', it refers to interfaces and abstract classes that define behavior (functionsignatures) but leave the internal implementation of those functions undefined. 2) A higher-level, generalized unit of code. Duplication across multiple functions can be resolved bycreating an 'abstraction' - a separate function containing the shared code. This adheres to the DRY principle.                                                                      | | 
              
                    | 6 |  | - |                [[AcceptanceTest|doc:SoftwareEngineering.Agile.Extreme Programming.AcceptanceTests.WebHome]]      |                                                                                                                                                                                                                                                                            Seelink.                                                                                                                                                                                                                                                                            | | 
              
                    | 7 |  | - |                           [[Agile|doc:SoftwareEngineering.Agile.WebHome]]                                    |                                                                                                                                                                                                                                                                            Seelink.                                                                                                                                                                                                                                           | | 
              
                    | 8 |  | - |                                                            Assertion                                                             |                                                                                                                                                                            An assertion function, a crucial part of testing. If the input values don't satisfy a certain condition, the test containing the assertion fails. Example: `assertEquals(expectedResult, actualResult)`.                                                                                                                                                                             | | 
              
                    | 9 |  | -|                                                    Awareness                                                     |                                                                                                                                                                                                       A classAis aware of classB if it contains a referencetoclass B in itssourcecode.If no suchreference exists,class A is unaware of class B.                                                                                                                                                                                                       | | 
              
                    | 10 |  | -|                                                              Behavior                                                             |                                                                                                                                 Counterpartto implementation. It refersto theobservable actionsperformedby a component.Forexample: A classmayhavetheonlyobservablemethod`sort(Collection:SomeCollection)`,which sayswhatit does,butnoimplementationdetailslike whatconcrete sortingalgorithm is used.                                                                                                                             | | 
              
                    | 11 |  | -|                                                           Best Practices                                                          |                                                                                                                                                                                                            Widely accepted guidelinesdesignedtoenhance programming productivity andcodequality.Adherencecan preventmany potential issues.                                                                                                                                                                                                          | | 
              
                    | 12 |  | -|                                                              Business                                                             |                                                                                                                                                                                                                                           Non-technical decisionmakers in the organization developing the software.                                                                                                                                                                                                                                           | | 
              
                    | 13 |  | - |                                                  BusinessValue                                         |                                                                                                                                                                                                                                                 Theworth ofa feature in terms ofits benefit to thebusiness.                                                                                                                                                                                                                                                | | 
              
                    | 14 |  | - |                                                           Compile Time                                                           |                                                                                                                                                                                                                                          The period when the code is compiled. Often used to distinguish from runtime.                                                                                                                                                                                                                                          | | 
              
                    | 15 |  | -|                                                             Concretion                                                            |                                                                                                                                               The counterpartto 'abstraction', alsoknownas 'implementation'.In OOP, refers to non-abstract classes that implementthe methodsofinterfaces orabstractclasses.Aconcretionprovides the 'concrete'code definingtheworkings of these abstractfunctions.                                                                                                                                               | | 
              
                    | 16 |  | -|     [[Constructor Injection|doc:Software Engineering.Architecture.Dependency Injection.Types of Dependency Injection.WebHome]]    |                                                                                                                                                                                                                          A type of dependency injection in which dependencies are provided to an object through constructor arguments.                                                                                                                                                                                                                          | | 
              
                    | 17 |  | - |                                              Command-LineInterface(CLI)                                                   |                                                                                                                                                                 "[...] a means of interactingwith a computerprogramby inputtinglines of text[...]".^[[src](https://en.wikipedia.org/wiki/Command-line_interface)]^For example,tools/commands used when working with a (Linux)terminal.                                                                                                                                                                  | | 
              
                    | 18 |  | - |                                                          Commitment                                                   |                                                                                                                                                                                                                                            Bindingpromiseto completeaspecific taskwithin aset period of time.                                                                                                                                                                                                                                      | | 
              
                    | 19 |  | - |                                                            Component                                                             |                                                                                                                                         Often used to refer to a set of units, modules, or "architectural" components without a clearer specification. In software architecture, it refers to a module capable of independent operation, often compiled or packaged into an executable such as a `.jar` or `.exe` file.                                                                                                                                         | | 
              
                    | 20 |  | -|        [[ContinuousIntegration|doc:Software Engineering.Agile.ExtremeProgramming.ContinuousIntegration.WebHome]](CI)|                                                                                                                                                                                                                                                                Seelink.                                                                                                                                                                                                                                                                           | | 
              
                    | 21 |  | -|                                                            Customers                                           |                                                                                                                                                                                                                                Individualswhouse the software product,focusingonthevalueit provides tomeettheirneeds.                                                                                                                                                                                                                                | | 
              
                    | 22 |  | -|                                                               Daemon                                                             |                                                                                                                                                                                                                                       A programrunningin the backgroundof a system,often without aGUI.                                                                                                                                                                                                            | | 
              
                    | 23 |  | -|                                                           DataStructure                                                         |                                                                                                                                                                               A class primarily meant to holddata and providebasicoperations toaccessandmanipulatethatdata. May containonlypublicfields,orprivate fieldswithassociated getter andsettermethods.                                                                                                                                                                              | | 
              
                    | 24 |  | -|                 [[Definition of Done|doc:Software Engineering.Agile.Extreme Programming.Acceptance Tests.WebHome]]                |                                                                                                                                                                                                                                                                            See link.                                                                                                                                                                                                                                                                            | | 
              
                    | 25 |  | - |            Dependency                                                      |                                                                                                                                                                                                In context ofclasses,adependencyisan objectrequiredby anotherobjectto perform itsfunctions.Often,dependenciesare providedviadependencyinjection.                                                                                                                                                                                                 | | 
              
                    | 26 |  | - |                                                         Dependency Cycle                                                         |                                                                                                                                                         A situation where two or more classes depend on each other to be instantiated. This situation creates a circular dependency that makes object creation impossible. The dependency graph should be a directed acyclic graph rather than a cycle.                                                                                                                                                         | | 
              
                    | 27 |  | -|                  [[Dependency Injection|doc:Software Engineering.Architecture.Dependency Injection.WebHome]] (DI)                 |                                                                                                                                                                                                                    A technique where an object's dependencies are provided from outside, rather than being created within the object itself.                                                                                                                                                                                                                    | | 
              
                    | 28 |  | - |                                                           Developer                                                             |                                                                                                                                                                                                             Skilled programmer with advanced technical knowledge inareas such as software design,coding best practices, technical concepts, etc.                                                                                                                                                                                                              | | 
              
                    | 29 |  | - |                                                          Dirty(Code)                                                   |                                                                                                                                                                                                                                                       Codethat ismessy, unreadable,orpoorly designed.                                                                                                                                                                                                                                                      | | 
              
                    | 30 |  | - |                                                           Distribution                                                           |                                                                                                                                                                                              A version of an OS packaged with specific software and configurations, designed for specific use cases. Examples: Ubuntu, Fedora, and Arch Linux, all based on Linux.                                                                                                                                                                                              | | 
              
                    | 31 |  | - |                                                            Dynamic                                                             |                                                                                                                                                                                            Behaviors/properties determinedat runtime.Examples: dynamic dependencies can be replaced at runtime; dynamically-typed languages determine an object's type at runtime.                                                                                                                                                                                            | | 
              
                    | 32 |  | - |                                                             Entity                                                              |                                                                   1) In the OOP context, this means that two separatelyconstructed objects of the same type, even with identicalfield values, are stilldistinct entities. 2) In software architecture,refers to classesrepresentingapplicationdata models andcore business logic. A banking applicationmight have entityclasses like Account, Order, Customer, or Employee with methods like `myCustomer.executeOrder(someOrder)`.                                                                    | | 
              
                    | 33 |  | - |                                                            Estimates                                                             |                                                                                                                                                                                                                Intelligent guesses about the resources needed to complete a user story. It is not a binding promise as opposed to a commitment.                                                                                                                                                                                                                 | | 
              
                    | 34 |  | -|        [[Field Injection|doc:Software Engineering.Architecture.Dependency Injection.Types of Dependency Injection.WebHome]]       |                                                                                                                                                                                                             A type of dependency injection where a dependency is injected directly into an object's field via reflection, bypassing encapsulation.                                                                                                                                                                                                              | | 
              
                    | 35 |  | - |                                                    Functionality / Feature                                                      |                                                                                                                                                                                                               An operation that a system can perform from the user's point of view. For example, the "login"functionality/featureon a website.                                                                                                                                                                                                                | | 
              
                    | 36 |  | - |                                             Graphical UserInterface(GUI)                                              |                                                                                                                                                                                                               A userinterfacethatallows users to interactwith the system throughgraphicalelements like icons, buttons,windows,andmenus.                                                                                                                                                                                                                | | 
              
                    | 37 |  | - |                                                        Isolation/Isolated                                                        |                                                                                                  The opposite of integration. Isolation is the separation of a unit or component from the rest of the system in order to test, develop or understand it independently and ensure that it works correctly without external interference. For example, in unit testing, a single unit is usually tested independently of other units and is isolated from them.                                                                                                   | | 
              
                    | 38 |  | - |                     [[Iteration|doc:Software Engineering.Agile.Extreme Programming.PlanningGame.WebHome]]                      |                                                                                                                                                                                                                                                                            See link.                                                                                                                                                                                                                                                                           | | 
              
                    | 39 |  | - |                                                         Implementation                                                         |                                                                                                                                                                                  The counterparttobehavior.It refers tothe internal code thatachieves a desiredbehavior ofacomponent. For example, asortingfunction mightbeimplemented withaQuickSortalgorithm.                                                                                                                         | | 
              
                    | 40 |  | - |                                                      Integration/Integrated                                                      |                                         1) The opposite of isolation. Integration is the process of combining different software units or components to work together as a single, cohesive system.  For example, component testing is more integrated than unit testing because it involves multiple units working together. Integration testing tests the interaction between two components. 2) (Code) Integration, another term for merging code, usually into the main branch. See also 'Continuous Integration'.                                          | | 
              
                    | 41 |  | -|  [[Inversion of Control|doc:SoftwareEngineering.Architecture.Dependency Injection.Dependency Injection Explained.WebHome]] (IoC)|                                                                                                                                                                A designprinciple that encouragesthedelegationofapplicationunitwiringtoa computeralgorithm that facilitatesdependency injection,ratherthan thedeveloper implementing this logic manually.                                                                                                                                                                             | | 
              
                    | 42 |  | -|                                                               Module                                                              | A distinctpart ofa softwarethat encapsulates specific implementation details, suchas functions,data structures, classes, interfaces, or evenothermodules. It exposes a concise API designed to performspecific tasks.Thesemodules are typically crafted for reusabilityand improvedcode organization,therebypromoting amodular design. Manylanguages provide modularization featuressuchas [Go modules](https://go.dev/blog/using-go-modules) or[Java modules](https://www.oracle.com/corporate/features/understanding-java-9-modules.html). | | 
              
                    | 43 |  | -|                                                               Layer                                                               |                                                                                                                               Level of abstraction in a system where related functionality is grouped together. For example, in a horizontally layered architecture, there is a controller layer consisting of controllers that are technically similar because they translate HTTP requests into data structures and vice versa.                                                                                                                               | | 
              
                    | 44 |  | - |                                                             Logic                                                               |                                                                                                                                                                                                   A set of instructions that determines how a program operates based on giveninputs or conditions. Thus, basicallyany source code can be considered logic.                                                                                                                                                                                                    | | 
              
                    | 45 |  | - |                                                            Logical                                                             |                                                                                                                                        The counterpart to physical. The abstract representationof something in software.For example, deleting afile from the desktop only logically deletesit, but actuallymoves itto the Recycle Bin,whilethe file physically remains on diskuntil the Recycle Bin is emptied.                                                                                                                                       | | 
              
                    | 46 |  | - |                                                              Magic                                                               |                                                                                                                                                                                                                       Code that performs complex tasks while abstracting away the complexity, presenting a simple interface to the user.                                                                                                                                                                                                                        | | 
              
                    | 47 |  | - |                                                            Manager                                                             |                                                                                                                                                                                             Individuals responsible for planning,organizing, leading,and controlling a software project's resources, schedule, and deliverables to meet stakeholder expectations.                                                                                                                                                                                             | | 
              
                    | 48 |  | - |                                                     Operating System (OS)                                                       |                                                                                                                                                                                                                  The foundational systemsoftware that managesand coordinates all computer resources. Examples are Windows, MacOS and Linux.                                                                                                                                                                                                                   | | 
              
                    | 49 |  | - |                                                              Pain                                                               |                                                                                                                                                                                                                 An unpleasant experiencecausedby unnecessaryeffortsthat could havebeen mitigatedwithbetter design of the original code.                                                                                                                                                                                                                  | | 
              
                    | 50 |  | - |         [[Pair Programming|doc:Software Engineering.Agile.Extreme Programming.Pair Programming.WebHome]] / Pairing (up)          |                                                                                                                                                                                                                                                                            See link.                                                                                                                                                                                                                                                                            | | 
              
                    | 51 |  | - |                                                            Physical                                                             |                                                                                                                                                                                                                      Counterpart to logical. Refers to hardware. For example, physically deleting a file meansremoving it fromthe disk.                                                                                                                                                                                                                       | | 
              
                    | 52 |  | - |                                                      Points / Story Points                                                      |                                                                                                                                                                                 A unit of measureusedto estimate the effort required to complete a userstory. See also[[here|doc:Software Engineering.Agile.Extreme Programming.Planning Game.Effort Estimation.WebHome]].                                                                                                                                                                                  | | 
              
                    | 53 |  | - |                                                         Production Code                                                          |                                                                                                                                                                                                                                      Code that comprises the functioning part of an application, as opposed to test code.                                                                                                                                                                                                                                       | | 
              
                    | 54 |  | -|                                                             Programmer                                                            |                                                                                                                                                                                                                                             Someone who writes and testscode.Theknowledgelevelof a beginner.                                                                                                                                                                                                                                      | | 
              
                    | 55 |  | -|                                                           Requirement                                                    |                                                                                                                                                                                                                       Statement ofwhat a software must be capable of doing,oftenoutliningfeatures,constraints,andsuccess criteria.                                                                                                                                                                                                          | | 
              
                    | 56 |  | -|                                                             Resources                                                             |                                                                                                                                                                                                                                      Refers to the assets used inthe project, includingtime,money,staff, and effort.                                                                                                                                                                                                                          | | 
              
                    | 57 |  | -|                                                     Return of Investment(RoI)                                             |                                                                                                                                                                                                                                     Businessvalue derivedfrom implementinga story,minusthe associated effort or cost.                                                                                                                                                                                                                                      | | 
              
                    | 58 |  | -|                                                              Rollback                                                             |                                                                                                                                                                                                                                       The act of returning a system or data to a previous state, often using a snapshot.                                                                                                                                                                                                                                        | | 
              
                    | 59 |  | - |                                                          Rotting Code                                                           |                                                                                                                                                                                                             Code that is increasingly difficult to maintain due to multiple changes that accumulate technical debt by notfollowing best practices.                                                                                                                                                                                                            | | 
              
                    | 60 |  | - |                                                             Runtime                                                              |                                                                                                                                                                                                                                    The periodwhen the code isbeing executed.Often used to distinguish fromcompile time.                                                                                                                                                                                                                                     | | 
              
                    | 61 |  | - |                                                      Scope / Project Scope                                                       |                                                                                                                                                                                                                                              The extent of features that must be implemented to deliver a project.                                                                                                                                                                                                                                              | | 
              
                    | 62 |  | - |                                                           Security                                                             |                                                                                                                                                                                      Measures implemented toprotectsystemsfrom threats,unauthorized access,and vulnerabilities. This includes,but is not limitedto, authentication, authorization,and encryption.                                                                                                                                                                                       | | 
              
                    | 63 |  | - |                                                        Self-Containment                                                        |                                                                                                                                                             The abilityof software to operateindependently,without dependenceon external servicesor factors.This characteristicensuresthatitsresultsaredeterminedsolelyby its source code,whichpromotesstabilityandconsistency.                                                                                                                                                              | | 
              
                    | 64 |  | - |                                                      Separation of Concerns                                                      |                                                                                                                                                                                                       A design principle suggesting that each module or component should have a single responsibility or concern, enhancing clarity and maintainability.                                                                                                                                                                                                        | | 
              
                    | 65 |  | -|       [[Setter Injection|doc:SoftwareEngineering.Architecture.DependencyInjection.Types of DependencyInjection.WebHome]]      |                                                                                                                                                                                                                               A type of dependency injectionwherea dependencyisprovided toan objectthroughasettermethod.                                                                                                                                                                                                                              | | 
              
                    | 66 |  | -|                                                              Snapshot                                                            |                                                                                                                                                                                                                                    A savedstate ofa systemor data ataspecificpointin time. Canbeusedforrollbacks.                                                                                                                                                                                                                          | | 
              
                    | 67 |  | -|                                                         Software Engineer                                                         |                                                                                                                                                                                                              Technical expert with in-depth knowledgein many areas, including high-level topics such as software architecture and system design.                                                                                                                                                                                                               | | 
              
                    | 68 |  | - |                                                         Specification                                                           |                                                                                                                                                                                                          A detailed description of the requirements under which a user story is considered complete. Much more detailed than the originaluser story.                                                                                                                                                                                                          | | 
              
                    | 69 |  | - |                                                      Stakeholders                                                      |                                                                                                                                                                                      Individualswith an interestin thesuccess ofa software project,whichmayincludecustomers,developers,investors,externals andotherswhoareaffectedby the projectsoutcome.                                                                                                                                                                                   | | 
              
                    | 70 |  | - |                                                              Static                                                              |                                                                                                                                                                                   Behaviors/properties determined before or at compile time. Examples: static code analysis tools inspect source code; statically-typed languages determine an object's type at compile time.                                                                                                                                                                                   | | 
              
                    | 71 |  | - |                [[Story / User Story|doc:Software Engineering.Agile.Extreme Programming.PlanningGame.WebHome]]                  |                                                                                                                                                                                                                                                                            See link.                                                                                                                                                                                                                                                                           | | 
              
                    | 72 |  | - |                                                            StoryCard                                                            |                                                                                                                                                                       A physical cardcontaining a user story and otherrelevantinformation such as an effortestimateand a business value. See also [[here|doc:Software Engineering.Agile.Extreme Programming.Planning Game.WebHome]].                                                                                                                                                                       | | 
              
                    | 73 |  | - |                                                            Story Deck                                                            |                                                                                                                                                                                              A collection of story cards for capturing the requirements of a project. See also [[here|doc:Software Engineering.Agile.Extreme Programming.Planning Game.WebHome]].                                                                                                                                                                                               | | 
              
                    | 74 |  | -|                                                               System                                                              |                                                                                                                                                                                                                               Entirety of software components designed to work together effectively in a production environment.                                                                                                                                                                                                                                | | 
              
                    | 75 |  | - |                                                         Technical Debt                                                          |                                                                                                                                                                              The implicit cost of additional rework caused by choosing an easy solution now instead of using a better approach that would take longer. Oftenthe result of poor design, testing, and refactoring.                                                                                                                                                                              | | 
              
                    | 76 |  | - |                                                           TestCode                                                            |                                                                                                                                                                                                                     Code that tests thefunctionalityof production code.Doesnot contribute to the operationalaspects ofan application.                                                                                                                                                                                                                     | | 
              
                    | 77 |  | - |                                                  Test-Driven Development (TDD)                                                   |                                                                                                                                                                                                     A development approach where code is written in small increments, with tests defining functionality written at the beginning of each coding iteration.                                                                                                                                                                                                      | | 
              
                    | 78 |  | - |                                                           Test Suite                                                            |                                                                                                                                                                                                                                        The sum of all thetest codeusedto check thata systemmeetsits requirements.                                                                                                                                                                                                                                         | | 
              
                    | 79 |  | - |                                                              Unit                                                               |                                                                                                                                                                         The smallest testable part of an application.This is oftena single class, but can also be a singlemethod, or a smallclusterof tightly coupledclasses or functionsthattogetherperform aspecifictask.                                                                                                                                                                          | | 
              
                    | 80 |  | - |               [[Velocity|doc:Software Engineering.Agile.Extreme Programming.Planning Game.Agile and Data.WebHome]]               |                                                                                                                                                                                                                                                                            See link.                                                                                                                                                                                                                                                                            | | 
              
                    | 81 |  | -|                                                        VirtualMachine (VM)                                                      |                                                                                                                                                                                                                 A software emulation ofa physicalcomputer, ableto runits ownOS andapplications asifitwereaseparate physicalmachine.                                                                                                                                                                                                                 | | 
              
                    | 82 |  | -|                           [[Waterfall|doc:SoftwareEngineering.Agile.Problems ofWaterfall.WebHome]]                          |                                                                                                                                                                                                                                                                            See link.                                                                                                                                                                                                                                                                        | | 
              
                    | 83 |  | -|                                                               Wiring                                                              |                                                                                                                                                                                                                       The processconductedby the IoC container to createand inject dependencies,facilitatingapplicationstartup.                                                                                                                                                                                                                     | | 
              
                    |  | 7 | + | 
              
                    |  | 8 | +|**Term**|(% style="text-align:justify" %)**Explanation** | 
              
                    |  | 9 | +|Abstraction|(% style="text-align:justify" %)((( | 
              
                    |  | 10 | +1. The opposite of "Concretion". It refers to interfaces and abstract classes that define behavior, namely function signatures, but contain no information about the internal operation of the functions. | 
              
                    |  | 11 | +1. A generic, high-level unit. For example, a class may have two functions that contain duplicate code, which the DRY principle says should not happen. The duplication can be resolved by moving the duplicate code to a common function (the "abstraction" of that code) and calling the function where the code was previously located. The duplicated code has been "abstracted". | 
              
                    |  | 12 | +))) | 
              
                    |  | 13 | +|Assertion|(% style="text-align:justify" %)Refers to an assertion function which is an essential part of test code. If the input values do not satisfy a particular condition, the test containing the assertion will fail. Example call: "assertEquals(expectedResult, actualResult)". | 
              
                    |  | 14 | +|Aware/Unaware|(% style="text-align:justify" %)Class A contains a source code reference to class B and is therefore aware of class B. If you only read the source code of class A, you would know that there must be a class B. If there was no such reference, class A would be unaware of class B. | 
              
                    |  | 15 | +|Best Practices|(% style="text-align:justify" %)Generally accepted guidelines for increasing your programming productivity. Taking them seriously will save you a lot of pain. | 
              
                    |  | 16 | +|Concretion|(% style="text-align:justify" %)((( | 
              
                    |  | 17 | +It is the counterpart to "abstraction" and is sometimes called "implementation". In OOP it refers to non-abstract classes that could implement methods of interfaces or abstract classes. A concretion defines the internal workings of these abstract functions by providing the "concrete" code. | 
              
                    |  | 18 | +))) | 
              
                    |  | 19 | +|[[Constructor Injection>>doc:Software Architecture.Dependency Injection.Types of Dependency Injection.WebHome]]|(% style="text-align:justify" %)Dependency injection, which is performed by passing a dependency to an instance via a constructor argument. | 
              
                    |  | 20 | +|Component|((( | 
              
                    |  | 21 | +1. In Spring, this is a generic annotation for a bean that does not match any other Spring bean annotation: "@Component". | 
              
                    |  | 22 | +1. In software architecture, it is a module that can be executed independently. It is often compiled and/or compressed into an executable such as a .jar or .exe file. | 
              
                    |  | 23 | +))) | 
              
                    |  | 24 | +|Data Structure|(% style="text-align:justify" %)A very simple type of class that contains only data and no logic. For example, a class that has only public fields and no methods. Another form is a class with private fields and simple corresponding getters and setters. | 
              
                    |  | 25 | +|Dependency|(% style="text-align:justify" %)In the context of classes, a dependency is a member field of one class that must be initialized with an instance of another class in order for an instance of the first class to function properly. This initialization is often done by dependency injection. | 
              
                    |  | 26 | +|Dependency Cycle|(% style="text-align:justify" %)For example, an instance of one class requires an instance of another class to be constructed, and vice versa. So both classes need the other dependency to construct an instance. Therefore, it is impossible to construct either instance at all. Always make sure that the dependency graph looks like a directed acyclic graph. | 
              
                    |  | 27 | +|[[Dependency Injection>>doc:Software Architecture.Dependency Injection.WebHome]] (DI)|(% style="text-align:justify" %)A technique in which the dependencies an object needs are injected from the outside, rather than constructed within the class. | 
              
                    |  | 28 | +|Dirty|((( | 
              
                    |  | 29 | +~1. Messy, unreadable, or poorly designed code is referred to as "dirty code". Often associated with code written "quick-and-dirty" due to the time constraints of a software project.2. The term comes from the phrase "getting one's hands dirty" and refers to coding work that is considered monotonous, detailed, low-level, or undemanding, but necessary. The term is often used in the context of I/O operations. For example, creating a database transaction, is often done in a similar way and is not considered fun by experienced programmers who have done it many times. High-level design is more exciting because it requires more creativity from the developer and is more intellectually stimulating. | 
              
                    |  | 30 | +))) | 
              
                    |  | 31 | +|Dynamic|((( | 
              
                    |  | 32 | +(% style="text-align: justify;" %) | 
              
                    |  | 33 | +Often refers to processes that appear at run time when the code has already been executed and is "running". Examples: | 
              
                    |  | 34 | + | 
              
                    |  | 35 | +* Dynamic dependencies are dependencies that can be replaced at runtime. | 
              
                    |  | 36 | +* Dynamically typed languages determine the type of an object at runtime. | 
              
                    |  | 37 | +))) | 
              
                    |  | 38 | +|Entity|((( | 
              
                    |  | 39 | +(% style="text-align: justify;" %) | 
              
                    |  | 40 | +~1. In an object context, this means that two objects of the same type that contain exactly the same values in their fields can be considered equivalent, but are still two separate entities. | 
              
                    |  | 41 | + | 
              
                    |  | 42 | +(% style="text-align: justify;" %) | 
              
                    |  | 43 | +2. In the context of software architecture, the term refers to classes that represent the data model of the application. For example, a banking application may have entity classes such as //account//, //order//, //customer//, or //employee//. They are often built like simple data structures, but may contain additional validation logic to impose logical constraints on their fields. For example, the integer field //customer.age// must always be between 0 and 120 because this is a logical constraint on the age of people, even though the integer data range is technically much larger. | 
              
                    |  | 44 | +))) | 
              
                    |  | 45 | +|[[Field Injection>>doc:Software Architecture.Dependency Injection.Types of Dependency Injection.WebHome]]|(% style="text-align:justify" %)A type of dependency injection that is performed by forcibly injecting a dependency into an instance through the use of reflections that break even the encapsulation of private fields. This type of dependency injection should be avoided. | 
              
                    |  | 46 | +|[[Inversion of Control>>doc:Software Architecture.Dependency Injection.Dependency Injection Explained.WebHome]] (IoC)|(% style="text-align:justify" %)Shifts the responsibility for defining the logic and order of dependency injections from the developer to the computer. | 
              
                    |  | 47 | +|JavaBean|((( | 
              
                    |  | 48 | +(% style="text-align: justify;" %) | 
              
                    |  | 49 | +A design convention for data structures. Usually it means a class that has | 
              
                    |  | 50 | + | 
              
                    |  | 51 | +* a public no-argument constructor | 
              
                    |  | 52 | +* only private fields | 
              
                    |  | 53 | +* only getters and setters for each field as methods | 
              
                    |  | 54 | + | 
              
                    |  | 55 | +(% style="text-align: justify;" %) | 
              
                    |  | 56 | +Often DTOs and entities follow this convention. | 
              
                    |  | 57 | +))) | 
              
                    |  | 58 | +|Logic|(% style="text-align:justify" %)Any code with non-trivial complexity can be called "logic". In contrast, for example, getters and setters have trivial complexity. | 
              
                    |  | 59 | +|Magic|(% style="text-align:justify" %)"Code that handles complex tasks while hiding that complexity to present a simple interface."^^[[[sources]>>url:https://en.wikipedia.org/wiki/Magic_(programming)]]^^ For example, the introduction of an IoC container is often quite simple, but the logic and wiring that goes on in the background is complex. | 
              
                    |  | 60 | +|Pain|(% style="text-align:justify" %)Something causes pain when someone spends unnecessary effort on a task that could often have been avoided by better code design. | 
              
                    |  | 61 | +|Production Code|(% style="text-align:justify" %)The counterpart to the Test Code. It contains all the code needed to run the application. | 
              
                    |  | 62 | +|Runtime|((( | 
              
                    |  | 63 | +(% style="text-align: justify;" %) | 
              
                    |  | 64 | +The period of time during which the code is executed. For example: | 
              
                    |  | 65 | + | 
              
                    |  | 66 | +* An exception is thrown by the compiler that finds invalid syntax in the source code. This is called a compile-time exception. | 
              
                    |  | 67 | +* Suppose that after a successful compilation, an executable file was created, started, and an exception was thrown shortly thereafter. Since this happened at runtime, it is a runtime exception. | 
              
                    |  | 68 | +))) | 
              
                    |  | 69 | +|Separation of Concerns|(% style="text-align:justify" %)A principle that says that software should be structured modular, with each module dealing with a different aspect of the program. This is intended to give the software a clear, understandable architecture. | 
              
                    |  | 70 | +|[[Setter Injection>>doc:Software Architecture.Dependency Injection.Types of Dependency Injection.WebHome]]|(% style="text-align:justify" %)A type of dependency injection, which is performed by passing a dependency to an instance via a setter method argument. | 
              
                    |  | 71 | +|Spring Bean|((( | 
              
                    |  | 72 | +(% style="text-align: justify;" %) | 
              
                    |  | 73 | +A term used in the Spring Framework for an object that is contained in the IoC container to be injected into other beans and/or to receive dependency injections. It is one of many components/beans that are wired together via IoC to form the application when it is started. | 
              
                    |  | 74 | + | 
              
                    |  | 75 | +(% style="text-align: justify;" %) | 
              
                    |  | 76 | +It should not be confused with JavaBeans. | 
              
                    |  | 77 | +))) | 
              
                    |  | 78 | +|Static|((( | 
              
                    |  | 79 | +(% style="text-align: justify;" %) | 
              
                    |  | 80 | +Often refers to processes that depend on non-running code. Examples: | 
              
                    |  | 81 | + | 
              
                    |  | 82 | +* Static code analysis tools can examine source code files for possible improvements. | 
              
                    |  | 83 | +* Statically typed languages determine the type of an object at compile time. | 
              
                    |  | 84 | +))) | 
              
                    |  | 85 | +|Test Code|(% style="text-align:justify" %)The counterpart to the Production Code. It is code that checks that the production code works as expected. Test code has no role in the operation of an application. | 
              
                    |  | 86 | +|Test-Driven Development|(% style="text-align:justify" %)A workflow in which the developer implements code in small steps, incrementally and iteratively, defining tests at each iteration. | 
              
                    |  | 87 | +|Wiring|(% style="text-align:justify" %)The process of generating and injecting dependencies to start an application, performed by the IoC container. |