In the context of Software Configuration Management (SCM), what kind of files should be committed to your source control repository? A. Code files B. Documentation files C. Output files D. Automatically generated files that are required for your system to be used Choose the correct answer from the options given below:
A and B only
Software Configuration Management (SCM) is a crucial process in software development. It involves tracking and controlling changes in the software, which includes managing various files associated with a project. A key part of SCM is using a source control repository, like Git or SVN, to store and manage these files. Deciding which files to commit to the repository is very important for maintaining a clean, efficient, and useful history of the project.
The goal of a source control repository is to store the necessary components that allow you to build or reproduce the software at any given point in its development history. This usually means storing the source files and related assets that are manually created and edited as part of the development process.
Let's consider the types of files mentioned in the options and determine their suitability for being committed to a source control repository in SCM:
Based on the analysis, the files that are fundamental manual creations and necessary inputs for building/understanding the system, and whose changes need to be tracked for collaborative development and history, are typically code files and documentation files.
Output files and automatically generated files that can be derived from the committed source should usually be excluded from the repository. Tools like `.gitignore` (for Git) are used specifically for this purpose to prevent these files from being accidentally committed.
Therefore, the types of files that should generally be committed to your source control repository are Code files (A) and Documentation files (B).
| File Type | Should Commit? | Reason |
|---|---|---|
| Code Files (A) | Yes | Source code is the core asset; manually created. |
| Documentation Files (B) | Yes | Provides context and understanding; manually created. |
| Output Files (C) | No | Generated from source; can be rebuilt. |
| Automatically Generated Files (D) | No | Typically derived from source; can be regenerated. |
Software Configuration Management is about more than just version control. It includes aspects like build management, release management, and change management. Deciding what goes into the repository is a key decision that impacts the efficiency and integrity of the entire SCM process. Excluding generated files keeps the repository focused on the source materials, making cloning, branching, merging, and history tracking faster and clearer.
Using a file called `.gitignore` (in Git) or similar mechanisms in other SCM systems is standard practice. This file lists patterns of files and directories that the SCM system should ignore, preventing them from being tracked and committed. Common entries in a `.gitignore` file include build directories, dependency directories, log files, temporary files, and editor-specific configuration files.
Software products need perfective maintenance for which of the following reasons?
Which of the following statement(s) is/are true regarding PERT chart in software project management?
I. PERT charts consists of a network of boxes and arrows.
II. In PERT chart, the boxes represent activities and the arrow represents task dependencies.
Software reliability is described with respect to
(A) Execution Time
(B) Calendar Time
(C) Clock Time
Choose the correct answer from the options given below:
Modules X and Y operate on the same input and output, then the cohesion is
Size and complexity are a part of