1.
List the advantages and disadvantages of software reuse
2.
In software engineering, _________ is a general reusable solution to a commonly occurring problem in software design.
Correct Answer
B. Pattern
Explanation
In software engineering, a pattern refers to a general reusable solution to a commonly occurring problem in software design. It is a proven approach that can be applied to different situations to solve similar problems. Patterns provide a way to standardize and organize software development, making it easier for developers to understand and communicate complex design concepts. By using patterns, developers can save time and effort by leveraging existing solutions rather than starting from scratch for every problem they encounter.
3.
The prototyping model of software development is ____________.
Correct Answer
B. A useful approach when a customer cannot define requirements clearly.
Explanation
The prototyping model of software development is a useful approach when a customer cannot define requirements clearly. This is because the prototyping model allows for the creation of a working prototype of the software early in the development process. This prototype can then be used to gather feedback from the customer and make necessary changes and refinements to the requirements. This iterative process helps in clarifying the requirements and ensures that the final product meets the customer's needs and expectations.
4.
Which type of relationship is suitable for arrow labeled with A?
Correct Answer
A. Uses
Explanation
The arrow labeled with A represents the "uses" relationship. In object-oriented programming, the "uses" relationship indicates that one class depends on another class to perform a specific task or provide a certain functionality. It means that the class represented by the arrow labeled with A utilizes the services or methods of the class it is connected to. This relationship is suitable when one class needs to make use of the functionality provided by another class but does not inherit from it or extend it.
5.
Which type of relationship is suitable for arrow labeled with B?
Correct Answer
A. Uses
Explanation
The arrow labeled with B represents a "uses" relationship. In software engineering, the "uses" relationship indicates that one class depends on another class to perform a specific function or use its services. This relationship is often depicted as a dotted line with an arrow pointing from the dependent class to the class being used.
6.
The open source movement has meant that there is a huge reusable code base available at
Correct Answer
B. Low cost
Explanation
The open source movement has led to the availability of a vast amount of reusable code at a low cost. Open source software is typically free to use, modify, and distribute, which means that developers can access and utilize code created by others without having to pay for it. This has significantly reduced the cost of software development, as developers can leverage existing open source code instead of building everything from scratch. Therefore, the correct answer is "low cost".
7.
COTS stands for
Correct Answer
A. Commercial Off-The-Shelf systems
Explanation
COTS stands for Commercial Off-The-Shelf systems. This term refers to software or hardware products that are readily available and can be purchased from third-party vendors. These products are not custom-made or specifically designed for a particular organization or project. Instead, they are pre-built and can be used as-is or with minimal customization. COTS systems are popular in industries where time and cost constraints are significant factors, as they offer ready-to-use solutions that can be quickly implemented.
8.
COTS product reuse means
Correct Answer
D. Systems are developed by configuring and integrating existing application systems.
Explanation
COTS product reuse refers to the practice of developing systems by configuring and integrating existing application systems. This means that instead of building a system from scratch, organizations use pre-existing software components and configure them to meet their specific needs. This approach saves time and resources as it leverages the functionality and features already available in the existing systems. It also allows for faster development and deployment of new systems by utilizing proven and tested components.
9.
Which of the following is a generic structure that is extended to create a more specific subsystem or application
Correct Answer
C. Framework
Explanation
A framework is a generic structure that provides a foundation for creating more specific subsystems or applications. It includes pre-written code and libraries that can be reused and extended to meet the specific needs of a project. Frameworks enable developers to save time and effort by providing a set of tools, guidelines, and reusable components. They promote code reuse, standardization, and modularity, making it easier to develop complex software systems. Therefore, a framework is the correct answer as it aligns with the definition and purpose described in the question.
10.
What are generic application systems that may be designed to support a particular business type, activity, or sometimes a complete enterprise?
Correct Answer
A. COTS-solution systems
Explanation
COTS-solution systems refers to Commercial Off-The-Shelf software solutions that are designed to support specific business types, activities, or entire enterprises. These systems are pre-built and readily available in the market, allowing businesses to implement them without the need for extensive customization or development. They offer a range of functionalities and features that cater to the specific needs of different industries or business domains. Therefore, COTS-solution systems are generic application systems that can be tailored to support a particular business type or activity.
11.
Which of the following is not an advantages of software reuse?
Correct Answer
C. High effectiveness
Explanation
High effectiveness is not an advantage of software reuse. Software reuse primarily focuses on reducing costs, speeding up software development, and minimizing risks. While software reuse can improve the effectiveness of software development processes, it is not specifically listed as an advantage in this context.