The process followed in order to find difficult, unknown and hidden information about a software system is called
The question asks for the name of the process used to discover information about a software system that is not readily available or known. This involves delving deep into the system's components and behavior.
Reverse Engineering is the systematic process of analyzing a software system to understand its design, architecture, components, and functionality. The primary goal is often to extract knowledge about the system, especially when the original design documentation is missing, inadequate, or unavailable. This process is crucial for:
It specifically targets the "difficult, unknown, and hidden information" mentioned in the question, making it the most fitting term.
Software Engineering is a broad discipline focused on the systematic design, development, testing, deployment, and maintenance of software systems. It's about building software effectively, not primarily about uncovering hidden details of existing, unknown systems.
Software Re-Engineering involves modifying or restructuring existing software systems to improve their performance, maintainability, or other attributes. While it requires understanding the system, its main goal is improvement and modernization, not just discovery of hidden information.
Inverse Engineering is often used interchangeably with Reverse Engineering, particularly in some technical contexts. However, "Reverse Engineering" is the more commonly accepted and widely used term specifically for dissecting software to understand its structure and function when information is hidden or unknown.
Based on the definition focused on finding difficult, unknown, and hidden information about a software system, the process is best described as Reverse Engineering.
What is the other name of Data Flow Diagram (DFD)?
| List I (Software Quality Characteristic) | List II (Description) |
| A. Reliability | I. Ability to transfer the software from one organization or hardware / software environment to another. |
| B. Efficiency | II. Capability of software to maintain its level of performance under stated conditions for a stated period of time. |
| C. Maintainability | III. Relationship between the level of performance of the software and the amount of resources used, under stated conditions. |
| D. Portability | IV. Effort needed to make modifications, including corrections, improvements or adaptation of software to changes in environment, requirements and functional specifications. |