... |
... |
@@ -3,6 +3,7 @@ |
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 code. Duplication across multiple functions can be resolved by creating an 'abstraction' - a separate function containing the shared code. This adheres to the DRY principle. | |
|
6 |
+| [[Agile|doc:Software Engineering.Agile.WebHome]] | See link. | |
6 |
6 |
| 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)`. | |
7 |
7 |
| Awareness | A class A is aware of class B if it contains a reference to class B in its source code. If no such reference exists, class A is unaware of class B. | |
8 |
8 |
| Behavior | Counterpart to implementation. It refers to the observable actions performed by a component. For example: A class may have the only observable method `sort(Collection: SomeCollection)`, which says what it does, but no implementation details like what concrete sorting algorithm is used. | |
... |
... |
@@ -25,10 +25,10 @@ |
25 |
25 |
| 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)`. | |
26 |
26 |
| Estimates | Intelligent guesses about the resources needed to complete a task. No binding promises as opposed to commitments. | |
27 |
27 |
| [[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. | |
28 |
|
-| Functionality | An operation that a system can perform from the user's point of view. For example, the "login" functionality on a website. | |
|
29 |
+| 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. | |
29 |
29 |
| Graphical User Interface (GUI) | A user interface that allows users to interact with the system through graphical elements like icons, buttons, windows, and menus. | |
30 |
30 |
| 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. | |
31 |
|
-| [[Iteration|doc:Software Engineering.Agile.Extreme Programming.Planning Game.WebHome]] | A short development cycle, often 2 weeks, that starts with planning, continues with implementing stories and ends a new product release and with feedback. | |
|
32 |
+| [[Iteration|doc:Software Engineering.Agile.Extreme Programming.Planning Game.WebHome]] | See link. | |
32 |
32 |
| Implementation | The counterpart to behavior. It refers to the internal code that achieves a desired behavior of a component. For example, a sorting function might be implemented with a QuickSort algorithm. | |
33 |
33 |
| Integration/Integrated | 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. | |
34 |
34 |
| [[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. | |
... |
... |
@@ -53,6 +53,7 @@ |
53 |
53 |
| Snapshot | A saved state of a system or data at a specific point in time. Can be used for rollbacks. | |
54 |
54 |
| Software Engineer | Technical expert with in-depth knowledge in many areas, including high-level topics such as software architecture and system design. | |
55 |
55 |
| 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. | |
|
57 |
+| [[Story/User Story|doc:Software Engineering.Agile.Extreme Programming.Planning Game.WebHome]] | See link. | |
56 |
56 |
| System | Entirety of software components designed to work together effectively in a production environment. | |
57 |
57 |
| Test Code | Code that tests the functionality of production code. Does not contribute to the operational aspects of an application. | |
58 |
58 |
| 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. | |
... |
... |
@@ -59,4 +59,5 @@ |
59 |
59 |
| Test Suite | The sum of all the test code used to check that a system meets its requirements. | |
60 |
60 |
| Unit | The smallest testable part of an application. This is often a single class, method or module, but can also be a small cluster of tightly coupled classes or functions that together perform a specific functionality. | |
61 |
61 |
| 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. | |
|
64 |
+| [[Waterfall|doc:Software Engineering.Agile.Problems of Waterfall.WebHome]] | See link. | |
62 |
62 |
| Wiring | The process conducted by the IoC container to create and inject dependencies, facilitating application startup. | |