Considering product implementation at a higher level first, rather than concerning oneself with implementation at a detailed level, in order to access a problem area gradually while maintaining a larger flow.
2
New cards
Acceptance test
An acceptance test performed by the customer before release.
3
New cards
Actor
A classification of stakeholders into homogeneous groups according to their roles in relation to a system.
4
New cards
Activity diagram
A diagram used to accurately understand the process of handling events in a class, or to identify additional operations of a class.
5
New cards
Adjacency List
A graphing method using a linked data structure where nodes are connected as many times as the sequence number of each vertex using a simple linked list created by connecting adjacent vertices for each vertex.
6
New cards
Adjacency matrix
A method of graphing using a sequential data structure where the presence of the edge connecting two vertices of the graph as a matrix is stored in a matrix by using a two-dimensional array for the matrix.
7
New cards
Agile methodology
A software development methodology that aims to effectively respond to rapid changes in the market environment.
8
New cards
Algorithm
A description of a series of processing procedures used to solve a given problem by stages. It is a specification that logically describes a step-wise procedure by abstracting the problem-solving method.
9
New cards
Amount of fixed space
Storage space that is needed permanently, regardless of the program size or number of input/output times, such as programs, variables, constants, etc.
10
New cards
Amount of variable space
Storage space that stores data and variables used while executing a program, and information related to function execution.
11
New cards
Angular4
A JavaScript framework developed by Google, used for single-page application programs that responds to user requests quickly by extending the HTML DOM.
12
New cards
Apache license
An open-source license applicable to all software of the Apache Software Foundation (ASF) that does not require disclosure of the source code.
13
New cards
Application Lifecycle Management (ALM)
A system that detects changed codes, manages the changes, and supports build/distribution comprehensively, often integrated with performance management tools.
14
New cards
Architecture design
The process of identifying the composition of a system and how its components interact with each other at the beginning of the design process.
15
New cards
Assembly language
A low-level language that expresses machine language in simple characters.
16
New cards
Baseline
Technical control points of each configuration item; the standard point in time that controls all changes.
17
New cards
Binary search
A search method that sets the upper limit value (F) and the lower limit value (L), finds the intermediate value (M), and searches by continuously comparing the key and the intermediate value.
18
New cards
Black box testing
Also called function or specification-based testing, it is mainly used in system testing to verify both functional and non-functional requirements based on the specification without referring to the internal structure.
19
New cards
Breadth First Search (BFS)
A graph search algorithm where adjacent nodes are searched first after visiting one starting vertex; vertices adjacent to the start vertex are visited first, and vertices situated farther away are visited later.
20
New cards
BSD (Berkeley Software Distribution) license
A representative open software license that does not require the developer to disclose the software source code.
21
New cards
Bubble sort
A sorting algorithm where the largest element is continuously moved to the last position by comparing adjacent numbers and changing positions if they are not in order.
22
New cards
Builder pattern
A creation design pattern used when the returned objects are not simple inheritance targets but are completely different user interfaces composed of different combinations of objects.
23
New cards
Burndown chart
A deliverable in the Scrum process that shows remaining work in the sprint backlog, typically indicating remaining work for each iteration as a story point.
24
New cards
C language
A programming language developed by Dennis Richie at AT&T’s Bell Lab in the 1970s, known for fast execution and efficient memory management.
25
New cards
C++ language
A programming language suitable for system programming and object-oriented programming, supporting classes, operator overloading, and virtual functions.
26
New cards
CASE tools
Computer-Aided Software Engineering tools.
27
New cards
Class
A collection of similar objects. A set of objects having the same property.
28
New cards
Class diagram
An information model in UML that shows the static information structure of a system, representing the classes required for the system and the relationships between them.
29
New cards
Class pattern
A design pattern that handles the correlation between classes and subclasses, mainly through inheritance, determined statically at compile time.
30
New cards
Client-server model
A software architecture composed of a set of servers and clients, where the client requests a service and the server provides the service.
31
New cards
Code smell
Code that is difficult to read, has duplicated logic, or is otherwise hard for developers to maintain, indicating a need for refactoring.
32
New cards
Cohesion
A measure of module maturity that indicates the strength of the correlations among the internal modules. It indicates how each of the components in the module is correlated with the others in order to achieve a common purpose.
33
New cards
Coincidental cohesion
The lowest degree of cohesion, wherein a module is composed of unrelated processing elements.
34
New cards
Command pattern
A behavioral design pattern where a request is sent to a specific object, including a request for a specific processing task, using a known public interface.
35
New cards
Common coupling
Coupling in which several modules share a common data area.
36
New cards
Communication cohesion
Cohesion where components performing different functions while using the same input and output are gathered.
37
New cards
Compilation
Converting a specific language into another language having an equivalent meaning.
38
New cards
Compiler
Translates a high-level language into a machine language (a low-level language) to make an object module, which is then linked, loaded, and executed.
39
New cards
Complete graph
A graph that has as many edges as possible by connecting all the vertices with each other on the graph.
40
New cards
Component
A reusable part that can be purchased from other fields and plugged in to speed up software development and increase productivity.
41
New cards
Configuration audit
A configuration management activity that means determining the integrity of the software baseline.
42
New cards
Configuration control
A configuration management activity that involves reviewing and approving a software configuration change request and controlling it so that it can be reflected in the defined baseline.
43
New cards
Configuration identification
A configuration management activity that involves identifying a configuration management target and numbering the management items.
44
New cards
Configuration item
The default target that is formally defined and described in the software life cycle.
45
New cards
Configuration product
The tangible and realized target of configuration management that is formally implemented in the software development life cycle.
46
New cards
Configuration recording
A configuration management activity that involves recording the various statuses and execution results of software configuration and change management, and creating reports by managing the database.
47
New cards
Context model
A model that sets the boundary between the initial requirements analysis system and the external environment, representing the system as a large process before dividing it.
48
New cards
Continuous Integration (CI)
A software development activity that frequently integrates the results of a team composed of several members, involving automated build and testing before merging code changes to a central repository.
49
New cards
Control Coupling
Coupling in which a control element (function code, switch, tag, flag) used to control a logical flow is transferred from one module to another.
50
New cards
Control flow testing
A test design technique where all possible event flow (path) structures can be tested when executed using a component or system.
51
New cards
Coupling
The complexity of correlations between modules.
52
New cards
Creation pattern
A design pattern involved in the process of object creation.
53
New cards
Daily build
The process of comprehensively compiling software products again every day and running a series of tests to verify basic operation.
54
New cards
Data abstraction
A type of abstraction focusing on data.
55
New cards
Data coupling
Coupling when the interface between modules is composed of data elements only. This is the most ideal and weakest coupling.
56
New cards
Data flow-oriented design
The process of transferring the results of structured analysis, a functional modeling technique, to structured design.
57
New cards
Data structure
A method of storing data in the memory device of a computer. It defines data systematically so that various data can be efficiently expressed and utilized, considering the characteristics and usages of data.
58
New cards
Decision table testing
A test case design technique that tests the combination of input values indicated in the decision table and the stimuli (cause).
59
New cards
Decorator pattern
A structural design pattern used to dynamically add a function to a specific object or to delete the added function.
60
New cards
Deep first search (DFS)
A graph search algorithm that starts at the root node and explores in one direction of the starting vertex as far as possible; when there are no more places to go, it backtracks to the vertex with the last forked edge and continues to explore another direction.
61
New cards
Dependency Inversion Principle (DIP)
A design principle stipulating that design should be made as flexible as possible through abstraction using an interface to minimize the possibility of changes when the interface of a used class is changed.
62
New cards
Depth First Search (DFS)
An algorithm that starts at the root node and explores in one direction of the starting vertex as far as possible.
63
New cards
Design pattern
A general, reusable solution to a recurring problem in a specific context of software design. It is a description or a sample of a problem-solving method that can be used in various situations.
64
New cards
Directed graph
A graph whose connection lines are directional, where the sequence of vertices expressed in pairs is important.
65
New cards
Divide and Conquer
A basic design principle involving continuously dividing user requirements to reduce complexity and reassembling the results into proper groups.
66
New cards
Docker
An open-source platform that automates Linux container (LXC) technology for ease of use, providing an independent and isolated space like a virtual machine.
67
New cards
Dynamic modeling
A process of finding the operations of classes by paying attention to changes to the state or operations of the objects constituting the system, or the interactions between objects.
68
New cards
Dynamic viewpoint
A modeling viewpoint that describes the state of the system and the causes of changes (event, time, etc.) in its state by focusing on the operation and control of software.
69
New cards
Encapsulation
A method of obtaining improved abstraction and independence through information hiding, and a method of protecting properties and operations together as a group.
70
New cards
Equivalence partitioning
A test case design technique where a test is performed with the representative value placed in an equally divided area.
71
New cards
Evolutionary model
A software lifecycle model useful when system development time needs to be reduced, where the development phase for the entire system is reiterated several times, and each system provides all functions to the user.
72
New cards
Exhaustive testing
Testing all possible cases of a program.
73
New cards
Express.js
A small and flexible web application framework for Node.js that provides optimal features for developing web applications.
74
New cards
External coupling
Coupling in which data (variables) declared externally by one module are referenced by another module.
75
New cards
External sorting
A method of sorting a large volume of data in an auxiliary storage device.
76
New cards
Facade pattern
A structural design pattern that enables a user to receive a desired function using a representative class when several classes have a close relationship and play a role as a whole, without external clients directly handling each class.
77
New cards
Factory Method pattern
A creation design pattern that indirectly creates an object using a proxy function, rather than directly calling the object constructor.
78
New cards
Feedback (UI)
The user interface should provide meaningful feedback when a user performs an action, correctly or incorrectly.
79
New cards
Fibonacci search
A search method that creates sub-files using Fibonacci permutations, searching by addition and subtraction only.
80
New cards
Framework
A support unit that collects knowledge, which can be reflected in architectural design repetitively, when designing a subsystem. It represents a general structure that can be extended to create a concrete subsystem.
81
New cards
Functional cohesion
The highest degree of cohesion, wherein all elements of the module perform a single function for the upper-level module.
82
New cards
Functional viewpoint
A modeling viewpoint that describes a system from the viewpoint of the functions performed by software.
83
New cards
Generalization
The process of collecting similarities between classes to define a new class (superclass).
84
New cards
Generality (software reuse)
The principle that software should be generally reusable, rather than designed for a specific area of application.
85
New cards
Git
A distributed version control system where clients copy the entire repository, allowing server restoration from client copies if issues occur.
86
New cards
GPL (GNU General Public License) 2.0
The most frequently adopted open-source software license, created by the Free Software Foundation (FSF), known for its strictness.
87
New cards
GPL (GNU General Public License) 3.0
An updated version of GPL 2.0, supplemented with matters related to DRM, software patent issues, and compatibility issues.
88
New cards
Graph
A data structure that expresses the many-to-many relationship between connected elements; a set of vertices that represent objects and the edges that connect those objects.
89
New cards
Hardware independence (software reuse)
The principle that reused software should be independent of execution hardware as much as possible.
90
New cards
Hashing
A search method that searches for data by calculating the address where they are stored using a hashing function.
91
New cards
High-level language
A programming language that is easy to write, highly readable and productive, similar to natural language, and can be converted into low-level language by a compiler or interpreter.
92
New cards
Hierarchy (software architecture)
A system composed of several layers that provide its own specific service.
93
New cards
Incoming flow
In transform flow-oriented design, a set of processes that manages input.
94
New cards
Incremental model
A software lifecycle model useful when system development time needs to be reduced, where core parts are developed first to make the system operable, and then the rest of the functions are implemented.
95
New cards
Information hiding
A design principle where the content of each module is hidden, and messages can be transmitted by the interface only, limiting access to internal information so that one module or subsystem does not affect others.
96
New cards
Information modeling
The process of identifying information that should be saved and managed inside the system, displayed as a class diagram in UML.
97
New cards
Information viewpoint
A modeling viewpoint used to understand the static information structure of software by finding information objects, their characteristics, and relationships.
98
New cards
Inheritance
A characteristic of object-oriented programming where a new class (subclass) can be created by reusing and extending the properties and operations of an existing class (superclass).
99
New cards
Input (algorithm condition)
More than one data that are needed to execute an algorithm should be entered from outside.
100
New cards
Insertion sort
A sorting method that sorts by inserting a value into the concerned position based on the assumption that data has been sorted.