Software Engineering 4 - Multiple choice questions Flashcards

1
Q

1) Which of the following statements accurately reflect the SOLID principles in object-oriented design?

(a) The Single Responsibility Principle states that a class should have only one reason to change, focusing on a single functionality.

(b) The Open/Closed Principle suggests that classes should be open for extension but closed for modification.

(c) The Liskov Substitution Principle implies that subclasses should be ignored during the design of a superclass.

(d) The Interface Segregation Principle advocates for larger, multipurpose interfaces for flexibility.

(e) The Dependency Inversion Principle emphasizes that high-level modules should not depend on low-level modules but on abstractions.

A

(a), (b), (e) are correct.

(a) The Single Responsibility Principle states that a class should have only one reason to change, focusing on a single functionality.

(b) The Open/Closed Principle suggests that classes should be open for extension but closed for modification.

(e) The Dependency Inversion Principle emphasizes that high-level modules should not depend on low-level modules but on abstractions.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

2) What is the primary objective of Recovery Testing?

(a) To verify the system’s ability to withstand and successfully recover from possible failures.

(b) To check the system’s performance under peak load conditions.

(c) To ensure the system’s compatibility with different operating systems and hardware.

(d) To validate the accuracy of data input and output through the system.

A

(a) To verify the system’s ability to withstand and successfully recover from possible failures.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

3) In the context of the Model-View-Controller (MVC) architecture pattern, which of the following statements are correct?

(a) The Model component is responsible for handling the data and business logic of the application.

(b) The View component is responsible for data storage and management.

(c) The Controller component manages user input and interacts with the Model to render the final output.

(d) In MVC, the View component should directly manage and modify the application data.

(e) The Model component serves as the interface for data manipulation and is separated from the user interface

A

(a), (c), and (e) are correct.

(a) The Model component is responsible for handling the data and business logic of the application.

(c) The Controller component manages user input and interacts with the Model to render the final output.

(e) The Model component serves as the interface for data manipulation and is separated from the user interface

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

4) In the context of UML (Unified Modeling Language), which of the following statements are true about sequence diagrams?

(a) Sequence diagrams primarily focus on representing the architecture of a system.

(b) Sequence diagrams depict the interaction between objects in a time sequence

(c) Sequence diagrams are used to show the static structure of the objects in a system

(d) Sequence diagrams illustrate how objects interact with each other and in what order

(e) Sequence diagrams can be used to explore the logic of a complex operation, function, or procedure

A

(b), (d), and (e) are correct.

(b) Sequence diagrams depict the interaction between objects in a time sequence

(d) Sequence diagrams illustrate how objects interact with each other and in what order

(e) Sequence diagrams can be used to explore the logic of a complex operation, function, or procedure

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

5) When designing tests for an object class in a system that utilizes inheritance, which of the following aspects should be considered to ensure complete test coverage? Select two or three correct answers.

(a) Testing only the methods in the derived class, ignoring inherited methods.

(b) Testing all operations associated with an object, including those inherited from parent classes.

(c) Setting and interrogating all object attributes, including those inherited.

(d) Ignoring the object’s state changes during testing.

(e) Exercising the object in all possible states, considering the impact of inheritance on these state

A

(b), (c), and (e) are correct.

(b) Testing all operations associated with an object, including those inherited from parent classes.

(c) Setting and interrogating all object attributes, including those inherited.

(e) Exercising the object in all possible states, considering the impact of inheritance on these state

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

6) In UML class diagrams, what does an association relationship represent?

a. A similarity or shared traits between two classes, indicating they are part of the same hierarchy.

b. A dependency between two classes, where changes to the definition of one class may affect the other class.

c. A generalization relationship where one class is a parent class of the other, indicating inheritance.

d. A relationship between two classes that shows how instances of one class are connected to instances of the other, representing a link between them in the modeled system.

A

(d) is correct

d. A relationship between two classes that shows how instances of one class are connected to instances of the other, representing a link between them in the modeled system.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

7) What characterizes the Waterfall model of software development?

a. It is a non-linear, iterative approach that allows for phases of the project to overlap and repeat as needed.

b. It is a flexible approach that encourages frequent reassessment and adaptation of strategies throughout the development process.

c. It is a sequential design process, where progress is seen as flowing steadily downwards (like a waterfall) through the phases of conception, initiation, analysis, design, construction, testing, deployment, and maintenance.

d. It emphasizes continuous delivery and continuous integration throughout the development process, with a focus on automated testing.

A

(d) is correct

c. It is a sequential design process, where progress is seen as flowing steadily downwards (like a waterfall) through the phases of conception, initiation, analysis, design, construction, testing, deployment, and maintenance.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

8) What is the primary purpose of a Burn-down Chart in Agile project management?

a. To display the total project budget versus the actual spending over time.

b. To show the number of features or user stories added to the product backlog over time.

c. To illustrate the rate at which work is completed and how much work remains to be done within a Sprint or project.

d. To track the number of bugs or defects identified and resolved throughout the development process

A

(c) To illustrate the rate at which work is completed and how much work remains to be done within a Sprint or project.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

1-1) Identify, from among the following, the correct statement.

(a) One of the main challenges Software Engineering facing today is the requirement of most software systems to work with a multitude of homogenous systems

(b) Legacy systems are custom developed software systems for the legal domain

(c) Software does not wear-out in the traditional sense of the term, but software does tend to deteriorate as it evolves

(d) Since software is essentially intangible it is relatively easy to manage software projects

(e) With the advent of component-based software assembly, we find that only less than 20% of today’s software is still custom built.

A

The correct statement is:

(c) Software does not wear-out in the traditional sense of the term, but software does tend to deteriorate as it evolves.

This refers to software aging, where software can become harder to maintain and more prone to defects as it evolves due to factors such as accumulated changes, lack of proper documentation, and the challenge of adapting to new environments.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

1-2) What is the fundamental reason that software cannot be considered to be engineered?

(a) It is designed by humans and therefore flawed

(b) Software engineering (as opposed to other forms of engineering, such as Civil) is an art - not a science

(c) The discipline is relatively new, say in comparison to bridge building that is an activity that has millennia of practice

(d) None of these are true. Software Engineering is a truly rigorous discipline

(e) The complexity of systems and their interaction continues faster than we can understand it.

A

(e) The complexity of systems and their interaction continues faster than we can understand it.

This is the fundamental reason why software cannot always be considered to be engineered in the traditional sense. Software systems can become highly complex, and the speed at which new technologies, components, and interactions evolve often outpaces our ability to fully comprehend and predict their behavior. This rapid complexity growth makes it difficult to apply traditional engineering principles in the same way as fields like civil or mechanical engineering, where systems are generally more stable and predictable.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

1-3) Read the following paragraph and identify the correct statement.
Imagine that you were recently hired as a software engineer to a company that specializes in aircraft navigation control software. While orientating yourselves to the company’s work practices, you observe that they in fact do not conduct a few tests that they should in order to comply with the relevant safety standard. When you inquire about this from the project manager, he dismisses it saying that those tests are really unnecessary (and take an unreasonably long time to conduct, as well as being superfluous) and that they have managed with the other tests for so long, without any problems.

(a) You should immediately resign from the company and file a complaint with the relevant standard institution

(b) You should do nothing and let the matter slide.

(c) Although you are new to the company, and you hardly know anything about the internal processes and politics, you should insist on the company changing its work practices immediately; failing which you threaten to report the matter.

(d) Since you are new to the company, and you are unfamiliar with the internal processes and politics, you should first find out more about the issue and its background.

(e) None of the above statements is correct.

A

(d) Since you are new to the company, and you are unfamiliar with the internal processes and politics, you should first find out more about the issue and its background.

This approach is the most sensible because, as a new employee, you may not have enough context or information about the company’s processes, practices, or reasons behind certain decisions. It’s important to gather more information before taking any action. Understanding the background can provide clarity on whether the project manager’s view is a norm in the company or if it is an isolated instance of non-compliance. Once you have more knowledge, you can then decide how to proceed.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

1-4) Which property of the rapid prototype is not important?

(a) The speed with which it can be developed

(b) The speed with which it can be modified

(c) Its ability to determine the clients’ real needs

(d) The insights that the design team can gain from it, even if they are of the how not to do it variety

(e) Its internal structure.

A

(e) Its internal structure.

In rapid prototyping, the focus is more on quickly creating a version of the system that can be tested, iterated on, and refined based on feedback, rather than ensuring the internal structure is optimized or well-architected. The internal structure of the prototype is typically not a priority since the goal is to quickly demonstrate the concept and gather feedback, not to develop a final, robust system.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

1-5) An example of the risk involved in software development is

(a) Key personnel may resign before the product is complete

(b) The manufacturer of critical components (e.g. the hardware associated with a real-time system) may go bankrupt

(c) Technology changes may render the product obsolete

(d) Competitors may market a fully functional lower-cost equivalent package

(e) All of these are risks involved in software development.

A

(e) All of these are risks involved in software development.

Explanation: Each of the options listed represents a potential risk that can negatively impact a software development project:

(a) Key personnel resigning can cause delays or a loss of critical knowledge, affecting the project’s progress.

(b) If a critical component provider goes bankrupt, the project may lose access to necessary resources or hardware.

(c) Rapid technology changes can make the software obsolete before it is even released, especially if the software is based on outdated technology.

(d) Competitors releasing similar products at a lower cost can undermine the market position of the software being developed.
Therefore, all of these factors are valid risks in software development.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

1-6) Prototyping is appropriate for

(a) Data-oriented applications

(b) Applications with emphasis on the user interface

(c) Applications, which are highly interactive

(d) Development teams who lack domain experience

(e) All of the above

A

(e) All of the above

Explanation:

Prototyping is a development technique where an initial version of the software (prototype) is built to help understand requirements and test functionality. It is particularly useful in various scenarios:

(a) Data-oriented applications: Prototypes can help explore how data is processed and managed, making it useful for data-oriented applications.

(b) Applications with emphasis on the user interface: Prototypes help to quickly design and test user interfaces, allowing for feedback and adjustments based on user interaction.

(c) Applications that are highly interactive: Since prototyping emphasizes interaction and iterative feedback, it works well for applications that require frequent user interactions, such as web applications or mobile apps.

(d) Development teams who lack domain experience: Prototyping allows development teams to quickly build and refine systems, helping them learn and adapt as they get more familiar with the domain.

Thus, prototyping is a flexible technique that fits all of these scenarios.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

1-7) Which of the following could be a deliverable for a software system?
(a) Source Code
(b) Reference Manual
(c) Requirements Document
(d) User Guide
(e) All the Above

A

The correct answer is:

(e) All the Above

Explanation:

In software development, various deliverables are produced during the lifecycle of a project. These deliverables include:

(a) Source Code: The actual code written for the software system is one of the key deliverables.

(b) Reference Manual: A technical manual that provides detailed information on the system’s architecture, components, and how to interact with the software.

(c) Requirements Document: A document that defines what the software is supposed to do, outlining the functional and non-functional requirements.

(d) User Guide: A manual designed for end-users that explains how to use the software effectively.

All of these are essential deliverables in the context of software development, making “All of the Above” the correct answer.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

1-8) Views of quality software would not include
(a) Optimizing price and performance
(b) Minimizing the execution errors
(c) Conformance to specification
(d) Establishing valid requirements
(e) Maximizing errors.

A

(e) Maximizing errors.

Explanation:

In the context of quality software, the goal is to create software that is reliable, efficient, and meets the needs of users. Here’s why each option fits or doesn’t fit:

(a) Optimizing price and performance: This is a valid view of quality software, as it aims to provide good value for cost while maintaining performance.

(b) Minimizing the execution errors: This is a key aspect of software quality, as minimizing errors and bugs ensures reliable performance.

(c) Conformance to specification: Quality software must meet the defined requirements and specifications, making this an important view of software quality.

(d) Establishing valid requirements: Valid requirements are essential to quality software, as they ensure that the software is built to meet the correct needs of users.

(e) Maximizing errors: This is clearly not a characteristic of quality software. A quality system should aim to minimize errors, not maximize them.

Therefore, (e) Maximizing errors is the only option that does not align with views of quality software.

17
Q

1-9) In planning a software project one would

(a) Find ways to produce results using limited resources

(b) Pad the schedule to accommodate errors

(c) Overestimate the budget

(d) Structure the team to prevent administrative interference

(e) All of the above.

A

The correct answer is:

(a) Find ways to produce results using limited resources

Explanation:

In planning a software project, the goal is to effectively manage the resources (time, money, people, etc.) to deliver the required results. Here’s why each option fits or doesn’t fit:

(a) Find ways to produce results using limited resources: This is a valid and common approach in project management. Given the constraints on resources, it’s important to optimize their use to deliver the best results possible.

(b) Pad the schedule to accommodate errors: While some buffer time is often included in schedules to handle unforeseen issues, deliberately “padding” the schedule is not a best practice. It can lead to inefficiencies and unrealistic expectations.

(c) Overestimate the budget: Overestimating the budget may provide a cushion, but it is generally not considered an ideal approach. The budget should be realistic, based on actual requirements and estimations.

(d) Structure the team to prevent administrative interference: While structuring the team to avoid unnecessary interference can improve productivity, it’s more of a tactical approach rather than a core planning principle.

(e) All of the above: Since options (b), (c), and (d) are not universally recommended strategies in project planning, this is not the correct answer.

Thus, (a) is the most appropriate answer as it focuses on realistic and efficient planning within resource constraints.

18
Q

1-10) In Agile process, Planning Poker is used to estimate __________
(a) Project life cycle
(b) Product backlogs
(c) Product quality
(d) Product owner and Scrum master relationship
(e) All of the above.

A

The correct answer is:

(b) Product backlogs

Explanation:

In Agile methodology, Planning Poker is a collaborative estimation technique used by the development team to estimate the effort or complexity required to complete items in the product backlog. The process helps teams reach a consensus on how much work is involved for each backlog item.

Here’s why the other options are incorrect:

(a) Project life cycle: Planning Poker is not used to estimate the entire project’s life cycle but rather to estimate individual backlog items.

(c) Product quality: Planning Poker does not directly estimate product quality, but it focuses on effort estimation for tasks.

(d) Product owner and Scrum master relationship: Planning Poker is not about estimating the relationship between the product owner and Scrum master but about estimating tasks and work items.

(e) All of the above: Since Planning Poker specifically focuses on estimating product backlog items, not the entire project lifecycle, product quality, or relationships, this option is incorrect.

Thus, (b) Product backlogs is the correct answer.

19
Q

1-11) Which tests are designed to confront the program with abnormal situations?
(a) Recovery testing
(b) Security testing
(c) Stress testing
(d) Performance testing
(e) Usage testing.

A

(a) Recovery testing

20
Q

1-12) The state diagram

(a) Depicts relationships between data objects

(b) Depicts functions that transform the data flow

(c) Indicates how data are transformed by the system

(d) Indicates how the system reacts to internal and external events

(e) Depicts the physical design of the data.

A

The correct answer is:
(d) Indicates how the system reacts to internal and external events

21
Q

1-13) How does a software project manager need to act to minimize the risk of software failure?
(a) Double the project team size
(b) Request a large budget
(c) Form a small software team
(d) Track progress
(e) Request for more period.

A

Correct Answer: (d) Track progress

Explanation:
To minimize the risk of software failure, the software project manager must actively track progress throughout the project lifecycle. Regular progress tracking ensures:

Early detection of issues: Problems or deviations from the plan can be identified and addressed before they escalate.
Resource management: Ensures resources (time, budget, and personnel) are used efficiently.
Adherence to milestones: Keeps the team on schedule and aligned with project goals.
Improved communication: Helps in identifying and resolving blockers for the team.

22
Q

1-14) Which of the following interface design principles reduces the users’ memory load?

(I) Define intuitive shortcuts
(II) Disclose information in a progressive fashion
(III) Establish meaningful defaults
(IV) Provide an on-line tutorial

(a) Only (I) above
(b) Only (II) above
(c) Only (III) above
(d) (I), (II) and (III) above
(e) All (I), (II), (III) and (IV) above.

A

Correct Answer: (e) All (I), (II), (III), and (IV) above.

Explanation:
Each of the interface design principles listed helps to reduce the users’ memory load by simplifying the interaction and minimizing the cognitive effort required to use the system:

(I) Define intuitive shortcuts:
Shortcuts allow experienced users to perform tasks quickly without having to remember complex steps or navigate through the entire interface repeatedly. This reduces the mental load of recalling commands or menus.

(II) Disclose information in a progressive fashion:
By revealing information step-by-step, users are not overwhelmed with excessive details all at once. They can focus on one task or step at a time, reducing the need to memorize or manage large amounts of data.

(III) Establish meaningful defaults:
Meaningful defaults provide users with sensible initial values or settings. This minimizes the need to manually adjust settings, helping users save time and effort.

(IV) Provide an online tutorial:
Online tutorials guide users through the interface and functionality of the system, ensuring they don’t need to memorize how things work initially. Tutorials reduce the learning curve and help users recall processes later.

23
Q

1-15) Black box testing is also called
(a) Specification-based testing
(b) Validation testing
(c) Verification testing
(d) Unit testing
(e) Stress testing.

A

Correct Answer: (a) Specification-based testing

Explanation:
- Black Box Testing focuses on testing the functionality of a system without knowing its internal code, structure, or implementation.
- The test cases are derived from the software’s specifications, requirements, or inputs and expected outputs rather than examining the code.
- This is why Black Box Testing is also referred to as Specification-Based Testing.

24
Q

1-16) The following are metrics for good code design except
(a) Coupling
(b) Primitivensess
(c) Sufficency
(d) Testing
(e) Completeness

A

The correct answer is:

(d) Testing

Explanation:
Metrics for good code design focus on assessing the quality, structure, and characteristics of the code itself, such as:

Coupling - Measures the level of dependency between modules. Low coupling is desirable for maintainability.

Primitiveness - Refers to designing functions or modules to perform a single, well-defined task.

Sufficiency - Ensures the module has all the necessary elements to perform its responsibilities.

Completeness - Ensures the code satisfies all required functionality and design specifications.

Testing, however, is not a metric for code design. It is a process used to verify and validate the code, ensuring it works as intended. While essential for software quality, it does not directly evaluate the code’s design metrics.