All Exams Test series for 1 year @ ₹349 only
Question

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

The correct answer is

(a) – (iv), (b) – (i), (c) – (ii), (d) – (iii)

Matching Software Engineering Concepts and Phases

The question asks us to match software engineering concepts from List – I with their corresponding phases or related concepts from List – II. Let's analyze each pair based on the provided correct match.

Analysis of the Matches

Product Complexity and Software Cost Estimation

Product Complexity is a significant factor in determining the effort required to develop software. More complex software systems generally require more time, resources, and skilled personnel, directly impacting the development cost. Metrics like cyclomatic complexity, function points, or lines of code (though less reliable) are used to quantify product complexity. Therefore, product complexity is closely associated with Software Cost Estimation.

  • Complexity metrics help in predicting the effort needed.
  • Higher complexity often leads to higher development and maintenance costs.
  • Cost estimation models frequently incorporate complexity as an input parameter.

Structured System Analysis and Software Requirements Definition

Structured System Analysis (SSA) is a set of techniques and graphical tools used to develop logical specifications for a new system. It focuses on what the system should do. SSA methods like data flow diagrams (DFDs), data dictionaries, and process specifications are primarily employed during the initial phase of software development to understand and document the user's needs and system requirements. This phase is known as Software Requirements Definition or Requirements Analysis.

  • SSA is a methodology for analyzing and documenting requirements.
  • It helps in creating a structured view of the system's functions and data.
  • This process is fundamental to the requirements gathering and specification phase.

Coupling and Cohesion and Software Design

Coupling and Cohesion are fundamental concepts in Software Design, particularly in modular design. Cohesion refers to the degree to which elements within a module belong together. High cohesion is desirable. Coupling refers to the degree of interdependence between software modules. Low coupling is desirable. These concepts are crucial for creating well-structured, maintainable, and understandable software architecture during the design phase.

  • High cohesion means a module performs a single, well-defined task.
  • Low coupling means modules are independent and changes in one have minimal impact on others.
  • These principles are applied when deciding how to break down the system into modules and define their interactions.

Symbolic Execution and Validation Technique

Symbolic Execution is a program analysis technique that executes a program using symbolic values for inputs, rather than concrete data. It explores multiple execution paths simultaneously. By analyzing the conditions along these paths, it can reveal potential errors, generate test cases, and verify program properties. This makes it a powerful Validation Technique used for testing, debugging, and formal verification of software.

  • Symbolic execution uses symbols instead of actual data.
  • It explores different execution paths based on symbolic conditions.
  • It is used to find bugs, generate test inputs, and formally verify correctness.

Summary of the Correct Matches

List – I (Concept) List – II (Phase/Technique)
(a) Product Complexity (iv) Software Cost Estimation
(b) Structured System Analysis (i) Software Requirements Definition
(c) Coupling and Cohesion (ii) Software Design
(d) Symbolic Execution (iii) Validation Technique

Based on the analysis, the correct matching is (a) – (iv), (b) – (i), (c) – (ii), and (d) – (iii).

Revision Table: Software Engineering Phases and Concepts

Phase/Area Key Activities/Concepts
Requirements Definition Gathering, analyzing, and documenting user needs and system requirements. Techniques like SSA are used here.
Software Design Defining the architecture, components, interfaces, and other characteristics of a system. Principles like Coupling and Cohesion are crucial.
Software Cost Estimation Predicting the resources (effort, time, cost) required for software development. Product complexity is a major influencing factor.
Validation/Testing Ensuring the software meets the specified requirements and is free of defects. Techniques include unit testing, integration testing, system testing, and advanced methods like Symbolic Execution.

Additional Information: Software Engineering Principles

Understanding the different phases of the software development lifecycle and the principles applied in each phase is key to successful software engineering.

  • Software Development Life Cycle (SDLC): A framework defining tasks performed at each step in the software development process, from initial requirements to maintenance. Common models include Waterfall, Agile, Spiral, etc.
  • Requirements Engineering: The process of defining, documenting, and maintaining requirements. This involves elicitation, analysis (where SSA fits), specification, and validation.
  • Software Design Principles: Guidelines like modularity, abstraction, information hiding, low coupling, and high cohesion help create robust and maintainable designs.
  • Software Testing: The process of evaluating and verifying that a software product or application does what it is supposed to do. Various techniques and levels of testing exist to validate the software. Symbolic Execution is an advanced testing technique.
  • Software Project Management: Includes activities like planning, organizing, staffing, directing, and controlling software development projects. Cost estimation is a vital part of project planning.
Was this answer helpful?

Important Questions from Design and Analysis

  1. Which of the following UML diagrams has a static view ?

  2. Software validation mainly checks for inconsistencies between

  3. 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:

  4. 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

  5. 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:

Need Expert Advice?

Start Your Preparation with Prepp Mobile App

Download the app from Google Play & App Store
Download the app from Google Play & App Store
Prepp Mobile App