Q: 1 Architectural design defines:
Algorithm structure.
Data dictionary.
Overall structure and interaction of system components.
Test plans.
[ Option C ]
The architectural design provides a high-level view of system components and their interactions.
Q: 2 Which one of the following pairs is not correctly matched:
Co-incidental cohesion – unplanned and random cohesion.
Temporal cohesion – elements of module are processed at different points of time.
Sequential cohesion – output of one element serves as input to another.
Procedural cohesion – elements of module are grouped together, which are executed sequentially in order to perform a task.
[ Option B ]
Cohesion refers to how closely the elements within a single module of a program are related to one another. The higher the cohesion, the better the design, as the module performs a single, well-defined task. Different types of cohesion describe different levels of relationship among module elements.
| TYPE OF COHESION | DESCRIPTION |
|---|---|
| Co-incidental Cohesion | The elements inside the module are unrelated and are put together without any specific reason or purpose. Such grouping usually happens by accident or poor design decisions, making maintenance and understanding very difficult. |
| Logical Cohesion | Elements are grouped because they perform similar types of activities. However, which operation is executed depends on a control flag or parameter. |
| Temporal Cohesion | Elements of the module are grouped together because they are executed at the same time, such as during system startup, initialization, or shutdown. These operations are related by their timing rather than their function. |
| Procedural Cohesion | Elements are grouped because they are part of the same procedure or control sequence. |
| Communicational Cohesion | The elements of the module are grouped because they operate on the same data set. |
| Sequential Cohesion | This occurs when the output of one element becomes the input of the next. |
| Functional Cohesion | Every element in the module contributes to a single, well-defined purpose or function. The module performs exactly one task and nothing else, making it easy to test, reuse, and maintain. |
Co-incidental → Logical → Temporal → Procedural → Communicational → Sequential → Functional.
Q: 3 In decision table left-lower quadrant is called-
Condition Entry
Condition Stub
Action Entry
Action Stub
[ Option D ]
A Decision Table is a tabular method for representing logical relationships between conditions and actions in a system. It is widely used in software testing, system design, and decision-making.
| Quadrant | Position | Purpose |
|---|---|---|
| Condition Stub | Top-Left (Upper-Left) | Lists the conditions to be tested. |
| Condition Entry | Top-Right (Upper-Right) | Shows possible values for each condition. |
| Action Stub | Bottom-Left (Lower-Left) | Lists all possible actions. |
| Action Entry | Bottom-Right (Lower-Right) | Specifies the actions to take for each condition combination. |
Q: 4 __________ is a structured repository of data about data.
Data Flow Diagram
System Components Matrix
Data Dictionary
Decision Table
[ Option C ]
A Data Dictionary is a centralized, structured repository that contains metadata, information about the data used in a system, such as:
Q: 5 ______________, a program development tool, shows how the program has been partitioned into smaller more manageable modules, the hierarchy and organization of those modules and the communication interfaces between modules.
Structure Chart
Fourth Generation Language Tools (4GL Tools)
Object-Oriented Programming and Design Tools
Program Flow Chart
[ Option A ]
When a big program becomes too large to understand, we divide it into small manageable modules. To show how these modules are arranged and how they communicate, we use a special tool called a Structure Chart.
It looks like a Tree Diagram where the top represents the main module and the bottom branches represent submodules.
| STRUCTURE CHART | PROGRAM FLOWCHART |
|---|---|
| Shows module hierarchy. | Shows step-by-step logic of a program or process. |
| Focuses on how the program is divided into smaller modules. | Focuses on how the program flows from start to end. |
| Represents modular design. | Represents program logic or algorithm. |
| Modules are arranged in levels like parent–child relationship. | Statements are arranged in sequence, decision, and loops. |
| Used during the system design phase. | Used during program development and algorithm design. |
| Does not show internal logic of modules. | Shows the internal working of the program in detail. |
| Looks like a tree structure. | Looks like a flow diagram with symbols like oval, diamond, rectangle, parallelogram. |
Q: 6 At the architectural design level, a software architect uses an _________ to model the manner in which software interacts with entities external to its boundaries.
Architectural Activity Diagram (AAD)
Architectural Context Diagram (ACD)
Architectural State Diagram (ASD)
Architectural Design Diagram (ADD)
[ Option B ]
An ACD (Architectural Context Diagram) provides a high-level view of the system and shows how it fits into its environment. It illustrates the system boundary and depicts all external interfaces through which the system communicates with other entities.
This helps designers and stakeholders understand what lies inside and outside the system’s scope, ensuring that all necessary interactions are properly identified and managed.
Q: 7 The most desirable and least desirable forms of coupling are _____________ respectively.
Control Coupling, Data Coupling
Common Coupling, Content Coupling
Data Coupling, Content Coupling
Content Coupling, Common Coupling
[ Option C ]
Coupling refers to the degree of interdependence between modules in a system, means, coupling measures how tightly connected different modules are. Lower coupling is always preferred because it makes the system easier to maintain and modify.
Data Coupling (Most desirable):
Content Coupling (Least desirable):
Q: 8 In case of flow-oriented requirement modeling, context diagram is also known as
Level 0 DFD
Level 1 DFD
Level 2 DFD
Level 3 DFD
[ Option A ]
Data Flow Diagrams (DFDs) are used to represent how data moves through a system. A Context Diagram is the highest-level view of a DFD, which provides an overview of the entire system as a single process.
Because it gives this top-level, overall picture without showing internal details, the Context Diagram is also called a Level 0 DFD.
Lower-level DFDs such as Level 1, Level 2, and so on, break this single process into smaller sub-processes, showing more internal details of how the system functions.
Q: 9 _____________ is an indication of the relative functional strength of a module.
Aversion
Cohesion
Ripple Effect
Coupling
[ Option B ]
Cohesion refers to the degree of relatedness and functional strength of the elements within a single module. It indicates how well the parts of a module work together to achieve a specific purpose.
High cohesion means that all parts of the module are closely related and focused on a single task, which leads to more maintainable, understandable, and reliable software.
Q: 10 _____________ is a visual representation that depicts the information flow and the transformation that are applied to data as data moves from input to output.
Data Flow Diagram
System Flow Chart
Layout Form
Hierarchy Chart
[ Option A ]
A Data Flow Diagram (DFD) is a visual representation that depicts the flow of information and the transformations applied to data as it moves from input to output in a system. It graphically shows how data enters the system, the processes that act on the data, where the data is stored, and how it exits the system.
Q: 11 Which of the following best describes the Open-Closed Principle (OCP) in object-oriented component-level design?
A component should be either open or closed for both modification and extension.
A component should be open for extension and closed for modification.
A component should be open for modification and closed for extension.
A component should be neither open nor closed for both modification and extension.
[ Option B ]
The Open-Closed Principle (OCP) is one of the key object-oriented design principles. It states that a software component such as a class, module, or function should be open for extension but closed for modification. This means that the behavior of a component can be extended without altering its existing source code.
Q: 12 The number of modules that call a given module is called __________.
Fan-in
Fan-out
Cardinality
None of these
[ Option A ]
In software engineering, especially in modular design and structured programming, fan-in and fan-out are used to measure module interactions.
Q: 13 Which of the following promotes good software design?
High coupling and low cohesion.
Low coupling and high cohesion.
High coupling and high cohesion.
Low coupling and low cohesion.
[ Option B ]
The low coupling and high cohesion make modules independent and maintainable, improving overall software design quality.
Q: 14 Which diagram is used to represent system behavior in UML?
Class diagram
Sequence diagram
Use case diagram
Activity diagram
[ Option D ]
The Activity Diagrams model the dynamic behavior of a system and represent workflows of actions and activities.
Q: 15 The word which describes the importance of software design is –
Complexity
Quality
Efficiency
Accuracy
[ Option B ]
Software design plays a crucial role in ensuring the Quality of software systems. A good design makes software more understandable, maintainable, reliable, and reusable. It reduces development time and effort by providing a clear blueprint before coding begins.
Software design is the foundation of software quality. It influences not only the immediate development but also the long-term success of the system by affecting maintainability, usability, performance, reliability, scalability, and reusability.
| Quality Attribute | Description |
|---|---|
| Maintainability | The ease with which software can be modified to fix bugs, add features, or adapt to new requirements. |
| Usability | How simple and intuitive the software is for end-users to learn and operate effectively. |
| Performance (Efficiency) | The ability of the software to execute quickly and use system resources optimally. |
| Reliability | The consistency of the software in producing correct outputs and operating without failures. |
| Scalability | The capability of the software to handle growth, such as more users, data, or workload, without performance issues. |
| Reusability | The extent to which software components can be used in other systems or projects, reducing duplication of effort. |
Q: 16 For a software project, the following information about the domain characteristics are given:
| S.N. | Description | Count | Average Weight Factor |
|---|---|---|---|
| 1 | Number of user inputs | 30 | 4 |
| 2 | Number of user outputs | 60 | 5 |
| 3 | Number of user enquiries | 20 | 4 |
| 4 | Number of files | 5 | 10 |
| 5 | Number of external interfaces | 4 | 7 |
Assume that all complexity adjustment value are average having scale = 3.
The function point value for the project will be?
681.46
186.46
816.46
618.46
[ Option D ]
In Function Point Analysis (FPA), the size of a software project is estimated by first calculating the Unadjusted Function Points (UFP) and then multiplying it by the Value Adjustment Factor (VAF).
The UFP is obtained by multiplying the count of each component with its corresponding weight factor.
UFP = ∑(Count*Weight)
| Description | Count | Weight | Count * Weight |
|---|---|---|---|
| User Inputs | 30 | 4 | 120 |
| User Outputs | 60 | 5 | 300 |
| User Enquiries | 20 | 4 | 80 |
| Files | 5 | 10 | 50 |
| External Interfaces | 4 | 7 | 28 |
UFP = 120+300+80+50+28 = 578
Next, the Value Adjustment Factor (VAF) is calculated using the formula VAF=0.65+0.01×∑Fi. There are 14 general system characteristics, and since each has an average value of 3, their sum is 14*3=42.
VAF = 0.65+(0.01*42)
VAF = 0.65+0.42=1.07
Finally, the Function Point (FP) value is obtained by multiplying UFP with VAF: FP = 578*1.07 = 618.46.
Q: 17 System Design is carried out __________________.
as soon as system requirements are determined.
whenever the system analyst feels it to be urgent.
after the final system specifications are approved by the management.
whenever the management feels it to be urgent.
[ Option C ]
Before designing a system, we must clearly understand, what the system should do, what features it must have and what limitations and rules apply. These details are called System Requirements.
System Design is the phase in system development that follows requirements analysis. It begins as soon as the system requirements are clearly determined and understood. The purpose of system design is to create the blueprint or architecture of the system that will fulfill those requirements.
Why Design Starts After Final Approval?
Q: 18 Which of the following is correct definition of Coupling in Java language?
Degree to which elements of a module belong together.
The ability of a class to inherit from other classes.
Process of hiding internal details of a module.
Degree of direct knowledge one class has of other.
[ Option D ]
In object-oriented programming, coupling refers to the level of dependency between classes or modules.
High Coupling means a class depends heavily on other classes, which makes the system harder to maintain or modify.
Low Coupling means a class has little knowledge of other classes, leading to more modular and flexible code.
Q: 19 In context of software design, choose the correct option for the following Assertion and Reason:
Assertion (A) : It is desirable to have the lowest possible coupling between modules.
Reason (R) : Simple connectivity among modules results in software that is easier to understand and less prone to a "ripple effect" of errors across the system.
Both (A) and (R) are true, and (R) is the correct explanation of (A).
Both (A) and (R) are true, but (R) is not the correct explanation of (A).
(A) is true, but (R) is false.
(A) is false, but (R) is true.
[ Option A ]
In software design, Coupling refers to the degree of interdependence between software modules. Means, how closely connected or dependent one module is on another. It is desirable to have the lowest possible coupling because loosely coupled modules can function independently, are easier to Test, Maintain, and Modify without affecting other parts of the system.
Q: 20 Which part of a Decision Table comprehensively lists the comparisons or conditions?
Action Entries
Condition Entries
Condition Stub
Action Stub
[ Option C ]
A Decision Table is a tabular method for representing logical relationships between conditions and actions in a system. It is widely used in software testing, system design, and decision-making.
| Quadrant | Position | Purpose |
|---|---|---|
| Condition Stub | Top-Left (Upper-Left) | Lists the conditions to be tested. |
| Condition Entry | Top-Right (Upper-Right) | Shows possible values for each condition. |
| Action Stub | Bottom-Left (Lower-Left) | Lists all possible actions. |
| Action Entry | Bottom-Right (Lower-Right) | Specifies the actions to take for each condition combination. |
Q: 21 In the context of modular software design, which one of the following combinations is desirable?
High Cohesion and High Coupling
High Cohesion and Low Coupling
Low Cohesion and High Coupling
Low Cohesion and Low Coupling
[ Option B ]
In modular software design, the goal is to create systems that are easy to maintain, understand, and modify. For a good design, two important qualities are considered: Cohesion and Coupling.
Cohesion refers to how closely related the tasks within a single module are. When a module performs one specific task and all its components are related, it is said to have High Cohesion. This makes the module easier to understand, test, and maintain.
Coupling refers to the level of dependency between different modules. When modules depend heavily on each other, it is called High Coupling, which makes the system complex and difficult to modify. On the other hand, Low Coupling means modules are mostly independent, so changes in one module do not affect others.
So,
A good design should have:
Q: 22 Considering, X is a function defined in a software project, following statements are made
(i) Fan-in is a measure of the number of functions that call the function, X
(ii) Fan-out is the number of functions which are called by the function, X
(iii) High value of Fan-in means that X is tightly coupled to the rest of design of software
(iv) High value of Fan-out means that overall complexity of X may be high
Which of the following options is correct for the above-mentioned statements?
Only (i) and (ii) are true
Only (i) and (iii) are true
Only (ii) and (iv) are true
(i), (ii), (iii) and (iv) are true
[ Option D ]
In software engineering, FAN-IN and FAN-OUT are design metrics used to measure the coupling and complexity of functions or modules.
| STATEMENT | EXPLANATION |
|---|---|
| (i) Fan-in is a measure of the number of functions that call function X. | Correct. Fan-in counts how many modules depend on function X. |
| (ii) Fan-out is the number of functions called by function X. | Correct. It shows how many modules X depends on. |
| (iii) High Fan-in means X is tightly coupled with the rest of the software design. | Correct. Many modules depend on X, indicating strong interaction with other modules. |
| (iv) High Fan-out means overall complexity of X may be high. | Correct. If X calls many other functions, its logic and dependencies become more complex. |
Q: 23 Which of the following are tools in design phase?
I. Information Hiding
II. Refinement
III. Abstraction
I and II
I and III
II and III
I, II and III
[ Option D ]
In the software design phase, several important concepts/tools are used to structure and simplify the system design.
Q: 24 The degree of inter-dependability within the elements of a software module is called ____________.
Coupling
Concurrency
Cohesion
Modularisation
[ Option C ]
In software engineering, Cohesion refers to the degree to which the elements inside a single module are related to each other. It measures how strongly the functions, data, and responsibilities within a module belong together.
High cohesion means:
Coupling refers to the dependency between different modules, not within a module.
Q: 25 A black hole in a DFD is-
A data store with no in bound flows
A data store with only in bound flows
A data store with more than one in bound flow
None of these
[ Option B ]
In a Data Flow Diagram (DFD), a Black Hole is a process or data store that receives data but does not produce any output. In other words, information flows into it, but nothing comes out. This situation usually indicates an error or a missing component in the diagram, as every process should normally transform or pass on data through both input and output flows.
Apart from a Black Hole, there are several other common errors in Data Flow Diagrams (DFD):
| DFD Error Type | Description | Example |
|---|---|---|
| Black Hole | A process has inputs but no outputs. Data enters but nothing comes out. | A process “Calculate Salary” takes employee details but produces no salary slip. |
| Miracle | A process has outputs but no inputs. Data appears without any source. | A process “Generate Report” creates reports without receiving any input data. |
| Gray Hole | A process has inputs and outputs, but the outputs are not logically possible from the given inputs. | A process “Calculate GPA” generates a GPA without having any marks or grade data as input. |
| Data Store with No Flows | A data store has neither input nor output flows. | A database symbol in the DFD is drawn but never connected to any process. |
| Unconnected Process | A process has no data flows connected or it is isolated. | A process “Update Inventory” is shown but has no input or output arrows. |
| Data Flow Errors | Data flows directly between external entities or between data stores without a process. | An arrow directly linking two databases or two users without a process in between. |
Q: 26 The intent of __________ is to conceal the details of data structures and procedural processing behind a module interface.
Modularity
Information hiding
Coupling
Exposing
[ Option B ]
The main intent of information hiding is to protect the internal details of a module, such as data structures and algorithms.
By hiding the internal implementation, changes made inside a module do not affect other modules that depend on it. This leads to better modularity, maintainability, and security of the software.
Q: 27 The most desirable and least desirable form of cohesion are __________ respectively.
functional cohesion, coincidental cohesion
logical cohesion, sequential cohesion
procedural cohesion, functional cohesion
temporal cohesion, logical cohesion
[ Option A ]
Cohesion refers to how closely related the functions within a module are. Higher cohesion is always preferred in software design because it improves maintainability, readability, and reusability.
Functional Cohesion is the most desirable, where a module performs one well-defined task.
Coincidental Cohesion is the least desirable, where unrelated tasks are grouped together without any meaningful relationship.
Q: 28 Which of the following is not an element of interface design?
the user interface (UI)
external interfaces to other systems, devices, networks, or other producers or consumers of information
internal interfaces between various design components
Modularity
[ Option D ]
In software engineering, interface design focuses on defining how different parts of a system interact with each other and with external entities. It ensures smooth communication between components, users, and external systems. The main elements of interface design include, User Interface (UI), External Interfaces, and Internal Interfaces.
The Modularity refers to the division of a system into smaller, independent components or modules to improve maintainability, reusability, and clarity.
Q: 29 In a Data Flow Diagram (DFD), an open rectangle is used to indicate which of the following?
define source or destination of system data
identify the data flow
represents a process transformation of input data to output data
a data store — data at rest or a temporary repository of data
[ Option D ]
In a Data Flow Diagram (DFD), different shapes represent different components of a system.
An open rectangle is a standard symbol for a data store in many DFD notations such as Gane‑Sarson and SSADM (Structured Systems Analysis and Design Method).
A data store in a DFD represents data at rest, i.e., stored data such as a file, database table, or temporary buffer. It is not actively processing data, it just holds data for later use or retrieval.
Thank you so much for taking the time to read my Computer Science MCQs section carefully. Your support and interest mean a lot, and I truly appreciate you being part of this journey. Stay connected for more insights and updates! If you'd like to explore more tutorials and insights, check out my YouTube channel.
Don’t forget to subscribe and stay connected for future updates.