Which of the following statements is/are TRUE? P: In software engineering, defects that are discovered earlier are more expensive to fix Q: A software design is said to be a good design, if the components are strongly cohesive and weakly coupled Select the correct answer from the options given below:
Q only
Let's analyze each statement given in the question concerning key principles in software engineering.
Statement P says: "In software engineering, defects that are discovered earlier are more expensive to fix."
This statement talks about the cost of fixing defects in software engineering based on when they are discovered in the software development lifecycle. Let's think about the stages of software development, such as requirements gathering, design, coding, testing, and deployment/maintenance.
Therefore, defects discovered *later* in the software lifecycle are generally *more* expensive to fix than those found *earlier*. Statement P claims the opposite, making it FALSE.
Statement Q says: "A software design is said to be a good design, if the components are strongly cohesive and weakly coupled."
This statement addresses characteristics of a good software design, specifically focusing on two important concepts: cohesion and coupling.
Cohesion: This refers to how strongly related the internal elements of a module or component are. Strong cohesion means the elements within a component all work together towards a single, well-defined purpose or function. Think of a component designed only to handle user authentication; all its parts are focused on that one task. This makes the component easier to understand, maintain, and reuse.
Coupling: This refers to the degree of interdependence between different modules or components. Weak coupling means components are relatively independent of each other. Changes in one component have minimal impact on others. If components are tightly coupled (strongly dependent), changing one might require changes in many others, making the system harder to modify and test.
In software engineering, a widely accepted principle is that a good software design exhibits high cohesion (elements within a module are strongly related) and low coupling (modules are weakly dependent on each other). This design approach leads to systems that are easier to develop, test, maintain, and understand.
Therefore, statement Q accurately describes key attributes of a good software design, making it TRUE.
Based on our analysis:
Thus, only statement Q is true.
| Concept | Description | Ideal State in Good Design |
|---|---|---|
| Defect Cost by Stage | Cost to fix a bug depends on when it's found in the lifecycle. | Cost increases significantly as discovery moves from requirements → design → coding → testing → deployment. |
| Cohesion | Degree to which elements within a module are related and work together. | Strong Cohesion (High) |
| Coupling | Degree of interdependence between different modules. | Weak Coupling (Low) |
A good software design is crucial for the success of any software project. Adhering to principles like high cohesion and low coupling offers several benefits:
Understanding how the cost of fixing defects escalates through the software lifecycle highlights the importance of quality assurance and testing activities early and throughout the development process. Finding and fixing defects early saves significant time and money.
Which of the following UML diagrams has a static view ?
Match the following in Software Engineering:
List – I | List – II | ||
(a) | Product Complexity | (i) | Software Requirements Definition |
(b) | Structured System Analysis | (ii) | Software Design |
(c) | Coupling and Cohesion | (iii) | Validation Technique |
(d) | Symbolic Execution | (iv) | Software Cost Estimation |
Software validation mainly checks for inconsistencies between
Which of the following are the primary objectives of risk monitoring in software project tracking?
P: To assess whether predicted risks do, in fact, occur
Q: To ensure that risk aversion steps defined for the risk are being properly applied
R: To collect information that can be used for future risk analysis
To create an object-behavioral model, the analyst performs the following steps:
(A) Evaluates all use-cases
(B) Builds state transition diagram for the system.
(C) Reviews the object behaviour model to verify accuracy and consistency
(D) Identifies events that do not derive the interaction sequence.
Choose the correct answer from the options given below: