Changes for page Glossary

Last modified by chrisby on 2024/09/19 10:50

From version 18.31
edited by chrisby
on 2023/11/18 23:01
Change comment: There is no comment for this version
To version 18.26
edited by chrisby
on 2023/11/18 16:49
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -3,7 +3,6 @@
3 3  | -------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
4 4  | **Term** | **Explanation** |
5 5  | Abstraction | 1) The counterpart of 'concreteness', it refers to interfaces and abstract classes that define behavior (function signatures) but leave the internal implementation of those functions undefined. 2) A higher-level, generalized unit of shared code. Duplication across multiple functions can often be resolved by creating an 'abstraction' - an additional function containing the duplicated code. |
6 -| Abstraction Level | For example, with functions, the level of abstraction refers to how general or specific the function is, with higher levels of abstraction representing broader, more general functionality and lower levels of abstraction representing more detailed, specific operations closer to hardware and I/O. |
7 7  | [[Acceptance Test|doc:Software Engineering.Agile.Extreme Programming.Acceptance Tests.WebHome]] | See link. |
8 8  | [[Agile|doc:Software Engineering.Agile.WebHome]] | See link. |
9 9  | 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)`. |
... ... @@ -15,7 +15,7 @@
15 15  | Compile Time | The period when the code is compiled. Often used to distinguish from runtime. |
16 16  | Concretion | The counterpart to 'abstraction'. Concretion is also known as 'implementation'. In OOP, it refers to non-abstract classes that implement the methods of interfaces or abstract classes. A concretion provides the 'concrete' code defining the workings of these abstract functions. |
17 17  | [[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. |
18 -| Command-Line Interface (CLI) | "[...] a means of interacting with a computer program by inputting lines of text [...]".^[[src](https://en.wikipedia.org/wiki/Command-line_interface)]^ For example, tools/commands used when working with a (Linux) terminal have a CLI. |
17 +| Command-Line Interface (CLI) | "[...] a means of interacting with a computer program by inputting lines of text [...]".^[[src](https://en.wikipedia.org/wiki/Command-line_interface)]^ For example, tools/commands used when working with a (Linux) terminal. |
19 19  | Commitment | Binding promise to complete a specific task within a set period of time. |
20 20  | 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. |
21 21  | [[Continuous Integration|doc:Software Engineering.Agile.Extreme Programming.Continuous Integration.WebHome]] (CI) | See link. |
... ... @@ -29,12 +29,10 @@
29 29  | Developer | Skilled programmer with advanced technical knowledge in areas such as software design, coding best practices, technical concepts, etc. |
30 30  | Dirty (Code) | Code that is messy, unreadable, or poorly designed. |
31 31  | 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. |
32 -| Dyad | A function with two arguments. |
33 33  | Dynamic | Behaviors/properties determined at runtime. Examples: dynamic dependencies can be replaced at runtime; dynamically-typed languages determine an object's type at runtime. |
34 34  | Entity | 1) In the OOP context, this means that two separately constructed objects of the same type, even with identical field values, are still distinct entities. 2) In software architecture, refers to classes representing application data models and core business logic. A banking application might have entity classes like Account, Order, Customer, or Employee with methods like `myCustomer.executeOrder(someOrder)`. |
35 35  | Estimates | Intelligent guesses about the resources needed to complete a user story. It is not a binding promise as opposed to a commitment. |
36 36  | [[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. |
37 -| Flag Argument | A flag argument is a boolean parameter passed to a function, signaling it to perform a specific operation or change its behavior based on the flag's true or false value. |
38 38  | Functionality / Feature | An operation that a system can perform from the user's point of view. For example, the "login" functionality/feature on a website. |
39 39  | Graphical User Interface (GUI) | A user interface that allows users to interact with the system through graphical elements like icons, buttons, windows, and menus. |
40 40  | 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. |
... ... @@ -43,7 +43,6 @@
43 43  | 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'. |
44 44  | [[Inversion of Control|doc:Software Engineering.Architecture.Dependency Injection.Dependency Injection Explained.WebHome]] (IoC) | A design principle that encourages the delegation of application unit wiring to a computer algorithm that facilitates dependency injection, rather than the developer implementing this logic manually. |
45 45  | Module | A distinct part of a software that encapsulates specific implementation details, such as functions, data structures, classes, interfaces, or even other modules. It exposes a concise API designed to perform specific tasks. These modules are typically crafted for reusability and improved code organization, thereby promoting a modular design. Many languages provide modularization features such as [Go modules](https://go.dev/blog/using-go-modules) or [Java modules](https://www.oracle.com/corporate/features/understanding-java-9-modules.html). |
46 -| Monad | A function with one argument. |
47 47  | 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. |
48 48  | Logic | A set of instructions that determines how a program operates based on given inputs or conditions. Thus, basically any source code can be considered logic. |
49 49  | Logical | The counterpart to physical. The abstract representation of something in software. For example, deleting a file from the desktop only logically deletes it, but actually moves it to the Recycle Bin, while the file physically remains on disk until the Recycle Bin is emptied. |
... ... @@ -60,7 +60,7 @@
60 60  | Programmer | Someone who writes and tests code. The knowledge level of a beginner. |
61 61  | Requirement | Statement of what a software must be capable of doing, often outlining features, constraints, and success criteria. |
62 62  | Resources | Refers to the assets used in the project, including time, money, staff, and effort. |
63 -| Return of Investment (RoI) | The ratio of the business value gained from implementing a story to the effort/cost involved. A higher RoI means that something is more worth implementing than something with a low RoI. |
59 +| Return of Investment (RoI) | Business value derived from implementing a story, minus the associated effort or cost. |
64 64  | Rollback | The act of returning a system or data to a previous state, often using a snapshot. |
65 65  | Rotting Code | Code that is increasingly difficult to maintain due to multiple changes that accumulate technical debt by not following best practices. |
66 66  | Runtime | The period when the code is being executed. Often used to distinguish from compile time. |
... ... @@ -84,7 +84,6 @@
84 84  | 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. |
85 85  | Test Suite | The sum of all the test code used to check that a system meets its requirements. |
86 86  | Testability | Code is testable, or has good testability, if it is easy to write tests for. |
87 -| Triad | A function with three arguments. |
88 88  | Unit | The smallest testable part of an application. This is often a single class, but can also be a single function, or a small cluster of tightly coupled classes or functions that together perform a specific task. |
89 89  | [[Velocity|doc:Software Engineering.Agile.Extreme Programming.Planning Game.Agile and Data.WebHome]] | See link. |
90 90  | Virtual Machine (VM) | A software emulation of a physical computer, able to run its own OS and applications as if it were a separate physical machine. |