পরীক্ষা আর্কাইভ

৪৯তম বিসিএস ⎯ তথ্য ও যোগাযোগ প্রযুক্তি [২৮১]

পরীক্ষা৪৯তম বিসিএস ⎯ তথ্য ও যোগাযোগ প্রযুক্তি [২৮১]তারিখতারিখ অনির্ধারিতসময়30 minutes
মোট প্রশ্ন৫০
সিলেবাস
Exam 15 Concepts of Software Engineering, Analysis Concepts and principles, Object Oriented software development and design, GRASP patterns with General Principles in assigning responsibilities, Software Testing, Software testing strategies, Analysis of System Maintenance and upgrading. [Source: Class-13 and relevant books]
ঘনত্ব
উত্তর
উত্তরিতবর্তমানপুনরায় দেখুনঅসম্পূর্ণ

৪৯তম বিসিএস ⎯ তথ্য ও যোগাযোগ প্রযুক্তি [২৮১]

৪৯তম বিসিএস ⎯ তথ্য ও যোগাযোগ প্রযুক্তি [২৮১] · তারিখ অনির্ধারিত · ৫০ প্রশ্ন

.
Which of the following is NOT a phase in the software development life cycle (SDLC)?
  1. Requirement analysis
  2. Design
  3. Testing
  4. Marketing
ব্যাখ্যা

The Software Development Life Cycle (SDLC) consists of phases like requirement analysis, design, development, testing, deployment, and maintenance. Marketing is not a part of SDLC; it is part of business or product management, but not directly tied to software development processes.

Example:
A typical SDLC flow might start with gathering requirements, then move to designing the software, followed by coding, testing, and deployment.

Source: Software Engineering: A Practitioner's Approach by Roger S. Pressman

.
What is a prototype model in software development?
  1. A model where software is developed and then tested by the users before release.
  2. A model where a prototype (working model) of the software is built and refined iteratively with user feedback.
  3. A model used for quick development with little to no testing.
  4. A model that uses predefined software templates for rapid deployment.
ব্যাখ্যা

The prototype model in software development involves creating an initial prototype or working model of the software. This prototype is developed quickly with just enough functionality to gather feedback from users. Based on the feedback, the prototype is refined iteratively until the final version of the software is developed.

Example:
A company developing a new customer relationship management (CRM) system might create a simple prototype, gather feedback from users on its features and usability, and then improve the prototype with additional features or changes before the final system is built.

Source: Software Engineering: A Practitioner's Approach by Roger S. Pressman

.
What does "software maintenance" involve?
  1. It involves fixing bugs and errors after the software has been deployed.
  2. It involves redesigning the software for better performance.
  3. It involves continuous documentation and project management throughout the development.
  4. It involves adding new features during the design phase.
ব্যাখ্যা

Software maintenance refers to the process of updating and improving software after it has been deployed. It includes bug fixing, updating features to keep up with changes in user needs or technology, and ensuring the software continues to meet its performance and functional requirements.

Example:
For a mobile app, software maintenance might include fixing a bug where the app crashes on certain devices or updating the app to ensure compatibility with a new operating system version.

Source: Software Engineering: A Practitioner's Approach by Roger S. Pressman

.
What is the primary purpose of software testing?
  1. To ensure the software is delivered on time.
  2. To check if the software meets the user’s requirements and works as expected.
  3. To develop new features in the software.
  4. To create marketing materials for the software.
ব্যাখ্যা

The primary goal of software testing is to ensure that the software works as intended and meets the user’s requirements. It involves identifying and fixing defects or bugs, verifying that the software performs correctly under different conditions, and ensuring it meets functional and non-functional requirements.

Example:
Testing a mobile app to ensure that all buttons are responsive, the app performs correctly on various screen sizes, and it handles edge cases such as no internet connection.

Source: Software Engineering: A Practitioner's Approach by Roger S. Pressman

.
Which of the following is a characteristic of the waterfall model of software development?
  1. It is iterative and allows revisiting previous phases.
  2. It progresses in a linear sequence from one phase to the next.
  3. It focuses primarily on user feedback and rapid prototyping.
  4. It is used for software that requires continuous updates.
ব্যাখ্যা

The waterfall model is a linear and sequential software development methodology. It progresses through clearly defined phases, such as requirement analysis, design, implementation, testing, deployment, and maintenance. Once a phase is completed, the process moves to the next phase, with little to no overlap or revisiting of previous phases.

Example:
In a waterfall model, the software requirements are defined first, followed by design and development, and then testing happens only after development is complete.

Source: Software Engineering: A Practitioner's Approach by Roger S. Pressman

.
What is a 'use case' in software engineering?
  1. A document describing the internal structure of the software system.
  2. A description of how the system will interact with its users to achieve a specific goal.
  3. A diagram showing the flow of data between system components.
  4. A testing method used to validate the performance of the software.
ব্যাখ্যা

A use case in software engineering is a detailed description of how the system interacts with external entities (users, other systems) to achieve a specific goal. Use cases are used to capture functional requirements and are often represented in use case diagrams and described in use case narratives.

Example:
A use case for an online store could describe how a user adds an item to their cart, proceeds to checkout, and completes a purchase.

Source: Software Engineering: A Practitioner's Approach by Roger S. Pressman

.
Which of the following is a commonly used software design technique?
  1. Data flow diagram
  2. Waterfall model
  3. Agile testing
  4. Dependency injection
ব্যাখ্যা

A data flow diagram (DFD) is a commonly used technique in software design to represent how data flows through the system. It shows the flow of information between processes, data stores, and external entities, helping to visualize the system's functionality.

Example:
In the design of a banking system, a DFD might show how customer data flows between processes like account creation, balance inquiry, and transaction processing.

Source: Systems Analysis and Design by Shelly Cashman

.
Which of the following software engineering paradigms emphasizes the iterative and incremental development of software?
  1. Waterfall model
  2. Agile model
  3. V-Model
  4. Spiral model
ব্যাখ্যা

The Agile model emphasizes iterative and incremental development. It focuses on delivering small, functional pieces of software at regular intervals (sprints). Agile methodologies like Scrum and Kanban are commonly used in software development for flexibility, frequent feedback, and continuous improvement.

Example:
In an Agile project, the development team might deliver a working version of the software every 1–4 weeks, allowing for user feedback and changes to be incorporated in the next sprint.

Source: Software Engineering: A Practitioner's Approach by Roger S. Pressman

.
What is a key characteristic of the V-Model in software engineering?
  1. It emphasizes parallel development of software and testing.
  2. It allows for significant changes to the software after deployment.
  3. It focuses on user feedback and iterative refinement.
  4. It follows a strict sequential process without any testing until the coding phase is complete.
ব্যাখ্যা

The V-Model is an extension of the Waterfall model, where for each development stage, there is a corresponding testing phase. The development phases on the left side of the "V" (e.g., requirements, design) correspond to the testing phases on the right side (e.g., unit testing, integration testing). This ensures that testing activities are planned and conducted in parallel with development.

Example:
In the V-Model, as the system design is completed, test cases are also developed, and during coding, unit tests are prepared, ensuring that testing begins early and continues throughout the development process.

Source: Software Engineering by Ian Sommerville.

১০.
Which of the following is an advantage of using the Spiral model over the Waterfall model?
  1. It is less costly and easier to manage.
  2. It accommodates changes more easily during development.
  3. It strictly follows a step-by-step sequential process.
  4. It eliminates the need for risk management.
ব্যাখ্যা

The Spiral model is advantageous because it allows for frequent revisions of the software as development progresses. Through iterative cycles, the Spiral model provides flexibility to accommodate changes and manage risks. Unlike the Waterfall model, where changes become more difficult after a phase is completed, the Spiral model allows for refinement and adjustment at each stage.

Example:
In a project using the Spiral model, if a risk is identified during one of the iterations, it can be addressed in the next cycle without significantly disrupting the overall project.

Source: Software Engineering: A Practitioner's Approach by Roger S. Pressman.

১১.
What does the term "incremental development" mean in software engineering?
  1. Building the software as a single monolithic application and testing it at the end.
  2. Developing the software in small, manageable portions or increments.
  3. Developing the software in parallel with hardware components.
  4. Developing the software based solely on customer specifications.
ব্যাখ্যা

Incremental development involves breaking the software development process into small, manageable pieces or increments. Each increment adds a portion of the functionality, and after each increment is completed, it is delivered to the client for feedback. This approach allows for regular updates and ensures that the software evolves in manageable steps.

Example:
In an Agile development process, each sprint represents an increment of the software, delivering a working version of the software at the end of the sprint.

Source: Software Engineering: A Practitioner's Approach by Roger S. Pressman

১২.
Which of the following best describes the main characteristic of the "Rapid Application Development" (RAD) paradigm?
  1. It emphasizes the sequential process with strict phases.
  2. It focuses on early and continuous delivery of software with user involvement.
  3. It involves a detailed upfront design and planning phase.
  4. It relies primarily on extensive documentation throughout the development process.
ব্যাখ্যা

Rapid Application Development (RAD) is a software development paradigm that emphasizes:
Speed and Iteration: 
• RAD aims to develop software quickly through iterative prototyping rather than following a strict sequential approach.
User Involvement:
• Users are actively involved in requirements gathering, feedback, and testing throughout the process.
• This ensures that the software meets actual user needs and reduces the risk of rework.
Prototyping:
• RAD relies heavily on working prototypes that are refined in successive iterations.
Minimal upfront design:
 •
Unlike Waterfall, RAD does not require extensive upfront documentation or detailed design.
• The focus is on building functional prototypes quickly and improving them based on feedback.

Example:
A RAD approach might be used for building a web application, where prototypes are developed quickly, and features are added incrementally based on ongoing user feedback.

Source: Software Engineering by Ian Sommerville

১৩.
Which of the following is a major limitation of the Waterfall model?
  1. It allows for frequent changes to the project requirements.
  2. It is difficult to incorporate changes once a phase is completed.
  3. It supports rapid prototyping and user feedback.
  4. It is more flexible than Agile development.
ব্যাখ্যা

A major limitation of the Waterfall model is that it is rigid, and once a phase (like design or coding) is completed, it becomes difficult to go back and make changes. This model assumes that all requirements can be defined upfront, which is often not the case in dynamic, real-world projects.

Example:
In a Waterfall project for a banking application, if the requirements change after the coding phase has been completed, it would be difficult and costly to go back to the design phase.

Source: Software Engineering: A Practitioner's Approach by Roger S. Pressman

১৪.
Which of the following best describes 'strategic information' in an organization?
  1. Information used for day-to-day operations.
  2. Information used for simple data entry tasks.
  3. Information used to make long-term decisions and set organizational goals.
  4. Information used only for marketing purposes.
ব্যাখ্যা

Strategic information supports decision-making that affects the long-term direction of the organization. It is often derived from aggregated data and analytics to guide policies, resource allocation, and future planning.

Example:
A company analyzing market trends to decide whether to expand into a new country is using strategic information.

Source: Management Information Systems by Kenneth C. Laudon and Jane P. Laudon

১৫.
What is 'tactical information'?
  1. Information used to execute routine operational tasks.
  2. Information that predicts future trends in the market.
  3. Information that is only used for reporting to government authorities.
  4. Information used to make medium-term decisions to achieve specific objectives.
ব্যাখ্যা

Tactical information:
i. Purpose: Helps managers and decision-makers plan and control medium-term actions to achieve specific organizational objectives.
ii. Timeframe: Typically covers weeks to months, unlike strategic information (long-term) or operational information (short-term).
iii. Use: Supports tactical planning, resource allocation, and implementation of strategies, often translating strategic goals into actionable plans.

Example:
A retail company wants to increase sales of a product in the next 3 months. Tactical information could include:
• Monthly sales reports
• Inventory levels
• Customer buying patterns
This information helps managers make medium-term decisions to achieve the sales target.

Source: Management Information Systems by Kenneth C. Laudon and Jane P. Laudon

১৬.
Which type of information is used primarily by operational managers for day-to-day activities?
  1. Strategic information
  2. Tactical information
  3. Operational information
  4. Competitive intelligence
ব্যাখ্যা

Operational information is used for daily activities and routine decision-making. It is detailed, timely, and supports short-term goals and processes.

Example:
Processing employee attendance, managing daily sales, and tracking customer orders are examples of operational information usage.

Source: Management Information Systems by Kenneth C. Laudon and Jane P. Laudon

১৭.
Which of the following is an example of 'external information' ?
  1. Sales reports generated internally by the company.
  2. Market trends and competitor data collected from the industry.
  3. Employee attendance records.
  4. Internal financial audit reports.
ব্যাখ্যা

External information comes from outside the organization and is used to understand the environment, competition, and market conditions. It supports strategic and tactical decisions.

Example:
Analyzing reports on customer preferences, industry statistics, or competitor pricing strategies is using external information.

Source: Management Information Systems by Kenneth C. Laudon and Jane P. Laudon

১৮.
Which of the following best defines qualitative information ?
  1. Information that can be measured numerically.
  2. Information that is descriptive and non-numeric.
  3. Information that is generated only by computers.
  4. Information that is derived from financial reports only.
ব্যাখ্যা

Qualitative information describes attributes, opinions, or perceptions and cannot easily be measured numerically. It is often used to understand customer satisfaction, employee morale, or market perception.

Example:
Customer feedback comments, employee performance reviews, and focus group summaries are qualitative information.

Source: Management Information Systems by Kenneth C. Laudon and Jane P. Laudon

১৯.
Which of the following statements about 'real-time information' is correct?
  1. It refers to information updated only annually.
  2. It is information delivered and processed immediately as events occur.
  3. It is information used only for internal audits.
  4. It refers to historical data stored in databases.
ব্যাখ্যা

Real-time information refers to:
i. Immediate Processing: Data is collected, processed, and made available immediately as events happen.
ii. Use: Supports quick decision-making, monitoring, and control of ongoing operations.
iii. Characteristics:
• Highly time-sensitive
• Often integrated with systems that require instant updates, like stock trading systems, airline reservation systems, or online monitoring tools.

Example:
A bank monitoring ATM transactions:
• If a withdrawal occurs, the system immediately updates the account balance.
• This ensures accurate, real-time monitoring of customer accounts.

Source: Management Information Systems by Kenneth C. Laudon and Jane P. Laudon

২০.
Which of the following types of information is critical for strategic decision-making in organizations?
  1. Operational information
  2. Tactical information
  3. Strategic information
  4. Routine information
ব্যাখ্যা

Strategic information helps top management make long-term decisions that affect the direction of the organization. It often comes from a combination of internal and external sources and is usually high-level and summarized.

Example:
Market research reports, competitive analysis, and projected financial forecasts are used as strategic information.

Source: Management Information Systems by Kenneth C. Laudon and Jane P. Laudon

২১.
Which of the following correctly pairs the type of information with its typical time frame?
  1. Operational – Long-term, Tactical – Short-term, Strategic – Medium-term
  2. Operational – Short-term, Tactical – Medium-term, Strategic – Long-term
  3. Operational – Medium-term, Tactical – Long-term, Strategic – Short-term
  4. Operational – Short-term, Tactical – Long-term, Strategic – Medium-term
ব্যাখ্যা

Operational information: It supports short-term, day-to-day activities.
Tactical information: It supports medium-term decisions for middle management.
Strategic information: It supports long-term decisions and planning for top management.

Example:
• Daily sales reports: operational
 • Quarterly inventory planning: tactical
 • Five-year market expansion strategy: strategic

Source: Management Information Systems by Kenneth C. Laudon and Jane P. Laudon

২২.
What is a Work Breakdown Structure (WBS) in project management?
  1. A hierarchical decomposition of the project into smaller, manageable tasks
  2. A schedule of project milestones
  3. A budget allocation plan
  4. A risk assessment matrix
ব্যাখ্যা

A Work Breakdown Structure (WBS) divides a large project into smaller tasks or work packages. This helps in planning, assigning responsibilities, estimating time and costs, and tracking progress.

Example:
For a website development project:
• Project: E-commerce Website
• Task 1: Requirement Analysis
• Task 2: UI/UX Design
• Task 3: Backend Development
• Task 4: Testing
• Task 5: Deployment

Source: Software Engineering by Ian Sommerville

২৩.
Which of the following is NOT considered a project constraint?
  1. Scope
  2. Time
  3. Budget
  4. Programming language choice
ব্যাখ্যা

Project constraints, also known as the triple constraint, include scope, time, and budget. The programming language is a technical decision and not considered a constraint in project management terms.

Example:
Changing the project scope or extending the timeline can impact cost, but selecting Python or Java does not define the project's constraints.

Source: Software Engineering by Ian Sommerville

২৪.
Which of the following is the main purpose of a Gantt chart?
  1. To illustrate task dependencies in a network diagram
  2. To display project tasks over time in a visual bar chart format
  3. To calculate project cost estimates
  4. To perform risk analysis
ব্যাখ্যা

A Gantt chart is used to visualize the project schedule, showing the start and finish dates of tasks, overlapping activities, and progress over time. It helps managers track the timeline and monitor task completion.

Example:
A Gantt chart for a software project might show that coding starts on 1st July and ends on 30th July, while testing overlaps from 25th July to 5th August.

Source: Software Engineering by Ian Sommerville

২৫.
What is 'scope creep' in project management?
  1. Reduction in project requirements
  2. Uncontrolled changes or continuous expansion of project scope without proper approval
  3. Efficient management of project tasks
  4. Delays caused by team members absences
ব্যাখ্যা

Scope creep occurs when additional features, requirements, or tasks are added to a project without adjusting the time, budget, or resources. It can lead to delays and increased costs.

Example:
A client requests additional functionality after the project has begun, and the team implements it without updating the project plan, causing delays and extra cost.

Source: Management Information Systems by Kenneth C. Laudon and Jane P. Laudon

২৬.
Which of the following is an example of a software project deliverable?
  1. Project timeline
  2. Completed software application
  3. Risk management plan
  4. Gantt chart
ব্যাখ্যা

A deliverable is a tangible or intangible output produced as a result of completing a project or part of a project. In software engineering, this is usually the working software, documentation, or user manuals.

Example:
Deliverables for a mobile app project could include the fully functional app, user manual, and deployment guide.

Source: Management Information Systems by Kenneth C. Laudon and Jane P. Laudon

২৭.
Which of the following is a widely used technique for identifying task dependencies in software project management?
  1. Gantt Chart
  2. Critical Path Method
  3. Scrum Board
  4. Risk Analysis Matrix
ব্যাখ্যা

The Critical Path Method (CPM) is a project management technique used to identify task dependencies and determine the longest path of dependent activities that dictates the minimum project duration. It helps managers prioritize critical tasks and allocate resources efficiently.

Example:
In software development, coding must be completed before testing can begin. CPM identifies such dependencies to optimize project scheduling.

Source: Management Information Systems by Kenneth C. Laudon and Jane P. Laudon

২৮.
Which of the following is an example of a project metric in software engineering?
  1. Number of lines of code produced per developer per week
  2. Number of meetings held per month
  3. Total electricity consumed by the office
  4. Version of the programming language used
ব্যাখ্যা

Project metrics measure project-specific parameters, such as productivity, effort, schedule adherence, and resource utilization. Lines of code (LOC) per developer per week is a common metric used to track development productivity.

Example:
If a team produces 2000 lines of code per week, project managers can estimate the remaining effort required for the project.

Source: Software Engineering by Ian Sommerville

২৯.
Which of the following is NOT a commonly used software process metric?
  1. Defect density
  2. Mean time to repair (MTTR)
  3. Cyclomatic complexity
  4. Employee satisfaction
ব্যাখ্যা

Software process metrics include measurements like defect density, mean time to repair (MTTR), and cyclomatic complexity, which evaluate software development efficiency and quality. Employee satisfaction, while important, is not a standard software process metric.

Example:
Defect density = Number of defects / Size of the code (e.g., per 1000 LOC)

Source: Software Engineering by Ian Sommerville

৩০.
Which of the following metrics measures the complexity of a program based on its control flow?
  1. Function point analysis
  2. Cyclomatic complexity
  3. Defect density
  4. Project schedule variance
ব্যাখ্যা

Cyclomatic complexity measures the number of linearly independent paths through a program’s source code, indicating its control flow complexity. It helps predict the number of test cases needed and potential maintenance difficulty.

Example:
A simple if-else statement increases cyclomatic complexity by 1, while nested loops increase it further.

Source: Software Engineering by Ian Sommerville

৩১.
What is the meaning of MTTR?
  1. Mean Time To Repair
  2. Mean Time To Respond
  3. Maximum Time To Recover
  4. Minimum Time To Repair
ব্যাখ্যা

• MTTR (Mean Time To Repair) is a reliability and maintenance metric used in software and systems engineering.
• It represents the average time required to repair a system or fix a defect once a failure has occurred.
• Formula:
MTTR= [ Total downtime due to failures ] / [ Number of failures ]

• Purpose:
i. Measures how quickly a system can be restored to normal operation after a failure.
ii. Helps evaluate system maintainability and efficiency of support teams.

Example:
Suppose a software system experiences 4 failures in a month with downtime durations of 2, 3, 1, and 4 hours.
MTTR = [ 2+3+1+4 ]/4
          = 10/4
          = 2.5 hours
On average, it takes 2.5 hours to repair the system after a failure.

Source: Software Engineering by Ian Sommerville

৩২.
Suppose a software system experiences 4 failures in a month with downtime durations of 2, 3, 4 and 5 hours. On average, how many hours does it take to repair the system after a failure?
  1. 3 hours
  2. 3.5 hours
  3. 4 hours
  4. 4.5 hours
ব্যাখ্যা

Mean Time To Repair (MTTR) is calculated as
MTTR = [ Total downtime due to failures ] / [ Number of failures ]
           = [ 2+3+4+5 ]/4
           = 14/4
           = 3.5 
 ∴ MTTR = 3.5 hours
This means, on average, it takes 3.5 hours to repair the system after each failure.

Source: Software Engineering by Ian Sommerville

৩৩.
Which metric is commonly used to estimate software size based on functionality rather than lines of code?
  1. Cyclomatic complexity
  2. Function points
  3. Defect density
  4. MTTR
ব্যাখ্যা

Function points measure the size of software based on functionality delivered to the user, including inputs, outputs, user interactions, files, and interfaces. This metric is independent of the programming language and helps estimate effort, cost and productivity.

Example:
A system with 10 user inputs, 5 outputs, and 3 user interfaces can be assigned function points for development effort estimation.

Source: Software Engineering by Ian Sommerville

৩৪.
Which of the following metrics measures the adherence of a project to its schedule?
  1. Schedule variance
  2. Cyclomatic complexity
  3. Defect density
  4. Function points
ব্যাখ্যা

Schedule variance compares the planned schedule with the actual progress. Positive variance indicates the project is ahead, negative variance indicates it is behind schedule. It is important for project monitoring and control.

Example:
If a task was planned to complete in 10 days but finishes in 12 days, schedule variance = 10 – 12 = -2 days (behind schedule).

Source: Software Engineering by Ian Sommerville

৩৫.
Which of the following is a common method for estimating software project effort?
  1. Critical Path Analysis
  2. Function Point Analysis
  3. Gantt Chart
  4. Risk Matrix
ব্যাখ্যা

Function Point Analysis (FPA) estimates software project effort by evaluating the functionality provided to users, independent of programming language. It helps in effort, cost, and schedule estimation.

Example:
A system with 10 user inputs, 5 outputs, and 3 interfaces can be assigned function points to estimate development effort.

Source: Software Engineering by Ian Sommerville

৩৬.
Which of the following is a common risk identified during software project planning?
  1. Requirement changes during development
  2. Delayed team salaries
  3. Personal conflicts among team members unrelated to project
  4. Weather conditions
ব্যাখ্যা

Software project risks include anything that may adversely affect cost, schedule, scope, or quality. Changes in requirements are a common risk, leading to potential delays and increased costs.

Example:
If a client adds new features midway, the project plan must be revised to accommodate extra work.

Source: Software Engineering by Ian Sommerville

৩৭.
Which of the following techniques is used to prioritize tasks in software project planning?
  1. Function Point Analysis
  2. MoSCoW Method
  3. Cyclomatic Complexity
  4. Defect Density
ব্যাখ্যা

The MoSCoW method is a prioritization technique where tasks are classified as Must have, Should have, Could have, and Won’t have. It helps allocate resources to the most critical activities first.

Example:
For a project:
Must have: User authentication
Should have: Search feature
Could have: Chat support
Won’t have: Dark mode (for this iteration)

Source: Software Engineering by Ian Sommerville

৩৮.
What is the main purpose of software project scheduling?
  1. To identify project risks
  2. To assign tasks, determine timelines, and ensure on-time project completion
  3. To design software architecture
  4. To manage source code versioning
ব্যাখ্যা

Project scheduling involves planning the start and end times of all project activities, assigning resources, and ensuring the project is completed within the planned timeline.

Example:
Scheduling coding for weeks 1–4, testing for weeks 3–5, and deployment in week 6 ensures proper timeline management.

Source: Management Information Systems by Kenneth C. Laudon and Jane P. Laudon

৩৯.
In object oriented design, what does 'assigning responsibilities to objects' mean?
  1. Assigning tasks to developers in the project
  2. Deciding which operations and data each object should manage
  3. Scheduling the timeline for software development
  4. Allocating hardware resources for the project
ব্যাখ্যা

Assigning responsibilities to objects involves defining what each object knows (attributes) and what each object can do (methods). Proper responsibility allocation ensures cohesion within objects and clarity in design.

Example:
In a banking system, an Account object has attributes like balance and methods like deposit() and withdraw(). These responsibilities are clearly assigned to the Account object.

Source: Applying UML and Patterns by Craig Larman

৪০.
Which of the following best describes a 'responsibility' of an object?
  1. A software testing guideline
  2. A role or task that an object is accountable for
  3. A hardware resource allocated to the object
  4. A programming language restriction
ব্যাখ্যা

A responsibility defines a task or obligation that an object must fulfill. This can include providing information, performing an action, or collaborating with other objects.

Example:
In a library system, a Book object is responsible for providing details like title, author, and availability status.

Source: Applying UML and Patterns by Craig Larman

৪১.
What is the primary benefit of assigning clear responsibilities to objects?
  1. It increases the size of the software
  2. It improves cohesion, maintainability, and clarity in design
  3. It makes the software run faster
  4. It eliminates the need for testing
ব্যাখ্যা

Clear responsibilities ensure that each object has a single, well-defined purpose, which improves cohesion, makes the design easier to understand, and simplifies maintenance and future enhancements.

Example:
Separating Account and Customer responsibilities prevents the Account object from managing personal customer details, improving cohesion and maintainability.

Source: Applying UML and Patterns by Craig Larman

৪২.
Which principle is commonly used to guide responsibility assignment in object-oriented design?
  1. SOLID principles
  2. Agile manifesto
  3. Waterfall methodology
  4. Gantt chart scheduling
ব্যাখ্যা

The SOLID principles guide object-oriented design, especially the Single Responsibility Principle, which states that an object should have one reason to change i.e. a single, well-defined responsibility.

Example:
A Payment Processor object handles payment operations only, while a Report Generator object handles reporting. They are separated to follow the Single Responsibility Principle.

Source: Applying UML and Patterns by Craig Larman

৪৩.
What is the meaning of SRP?
  1. Software Requirements Plan
  2. Standard Reporting Procedure
  3. System Recovery Process
  4. Single Responsibility Principle
ব্যাখ্যা

SRP (Single Responsibility Principle) is one of the SOLID principles in software engineering and object-oriented design.
Meaning: Every class or module should have only one reason to change, i.e., it should have only one responsibility.
Purpose:
Improves maintainability and readability of code.
• Reduces coupling between components.

Example:
 • Suppose you have a class that:
i. Manages user data (CRUD operations)
ii. Sends email notifications
 • According to SRP, this class violates SRP because it has two responsibilities.
 • Correct approach:
i. One class for user data management
ii. Another class for sending email notifications

Source: Applying UML and Patterns by Craig Larman

৪৪.
What is the meaning of GRASP?
  1. General Rules for Assigning Software Procedures
  2. General Representation and Assignment Software Processes
  3. General Responsibility Assignment Software Patterns
  4. General Responsibility Assignment Software Practices
ব্যাখ্যা

GRASP stands for General Responsibility Assignment Software Patterns, a set of nine principles used to guide the assignment of responsibilities to objects in object-oriented design. These patterns help in designing effective and maintainable software systems.
The nine GRASP patterns are:
i. Information Expert
ii. Creator
iii. Controller
iv. Low Coupling
v. High Cohesion
vi. Polymorphism
vii. Pure Fabrication
viii. Indirection
ix. Protected Variations
These patterns provide a framework for making design decisions about responsibilities and collaborations between objects.

Source: Applying UML and Patterns by Craig Larman

৪৫.
How does the Information Expert pattern contribute to low coupling in object-oriented design?
  1. It increases object dependencies to make data easily accessible.
  2. It assigns responsibilities to objects that already have the necessary data, reducing the need for other objects to access that data.
  3. It forces objects to interact more frequently, promoting better collaboration.
  4. It eliminates the need for any interaction between objects.
ব্যাখ্যা

By assigning responsibilities to the object that already contains the relevant data, the Information Expert pattern minimizes the need for other objects to access that data, reducing coupling between objects. This leads to a more modular and maintainable system.

Example:
In a Library Management System, a Book object would handle all its internal attributes (title, author, due date), avoiding the need for external objects to access or manipulate its data directly.

Source: Applying UML and Patterns by Craig Larman

৪৬.
Which of the following examples demonstrates high cohesion?
  1. A User object that handles user authentication, data validation, and email notification.
  2. A Customer object that only contains customer contact information.
  3. A Product object that includes both product details and payment processing logic.
  4. A Transaction object that includes data entry, payment verification, and printing receipts.
ব্যাখ্যা

High cohesion means that an object is focused on a specific responsibility. In this case, the Customer object has a single responsibility, which is to manage customer contact information. It is not overloaded with unrelated tasks like payment processing or authentication.

Example:
A Customer object should not handle tasks like managing payment methods, which could be the responsibility of a Payment Method object.

Source: Applying UML and Patterns by Craig Larman

৪৭.
Which design principle ensures that objects are as independent as possible from each other?
  1. High Cohesion
  2. Low Coupling
  3. Information Expert
  4. Controller Pattern
ব্যাখ্যা

Low coupling encourages minimizing the dependencies between objects. Objects should interact with each other through well-defined interfaces, and each object should be as independent as possible to reduce the impact of changes and improve system flexibility.

Example:
In a Library Management System, the Book object should not depend on the User object to perform its functions. Instead, both objects should interact through clearly defined interfaces for operations like borrowing and returning books.

Source: Applying UML and Patterns by Craig Larman

৪৮.
What is the primary goal of using function-based metrics in software engineering?
  1. To measure the performance of the software at runtime
  2. To assess the size and complexity of a software system based on the functionality it provides
  3. To track the number of lines of code in a software system
  4. To measure how many bugs are present in the software system
ব্যাখ্যা

Function-based metrics focus on assessing the functionality of a software system, independent of the technology or programming language used. It helps estimate development effort, resources, and the overall complexity of the system by evaluating the functions and features the system delivers to the user.

Example:
A Function Point Analysis (FPA) is a function-based metric that evaluates the complexity of a system by counting the number of inputs, outputs, user interactions, files, and interfaces the system handles.

Source: Software Engineering: A Practitioner's Approach by Roger S. Pressman

৪৯.
What does the term 'availability' mean in the context of software systems?
  1. The ability of the software to process large amounts of data efficiently.
  2. The number of features available in the software.
  3. The ability of the software to perform complex computations.
  4. The percentage of time the software is operational and accessible to users.
ব্যাখ্যা

Availability refers to the uptime of a system or application, meaning the percentage of time the system is fully operational and accessible for use. High availability is crucial for critical systems like banking, healthcare, and telecommunications.

Example:
An e-commerce website with 99.9% availability means that the website will be accessible for 99.9% of the time, and only 0.1% of the time it might be down for maintenance or due to failure.

Source: Software Engineering: A Practitioner's Approach by Roger S. Pressman

৫০.
Which of the following is an example of a safety-critical system?
  1. A social media platform
  2. A flight control system for airplanes
  3. An e-commerce website
  4. A photo editing application
ব্যাখ্যা

A safety-critical system is one where failure or malfunction can result in significant harm to people, property, or the environment. A flight control system in an airplane is an example of such a system because failure can lead to loss of life and aircraft damage.

Example:
In aviation, software that controls the flight path, speed, and altitude of an aircraft must be fail-safe and undergo rigorous safety testing to ensure reliability.

Source: Software Engineering: A Practitioner's Approach by Roger S. Pressman