NEOCODE

Advanced Software Engineering MCQs

1. Computer-Aided Software Engineering (CASE) Tools

Q1. CASE tools are used to:

Correct Answer: A) Automate software development tasks

Explanation:
CASE tools automate various software engineering activities including analysis, design, coding, testing, and project management. They assist developers but don't replace human expertise.

Q2. Which of the following is a CASE tool?

Correct Answer: D) All of the above

Explanation:
All these tools support different aspects of software development: Rational Rose for modeling, JIRA for project management, and Selenium for automated testing, making them all CASE tools.

Q3. Upper CASE tools support:

Correct Answer: B) Analysis and design phases

Explanation:
Upper CASE tools focus on early lifecycle phases (requirements, analysis, design). Lower CASE tools support implementation and testing. Integrated CASE (I-CASE) tools cover the entire lifecycle.

2. Software Maintenance

Q4. Software maintenance includes:

Correct Answer: D) All of the above

Explanation:
Software maintenance includes: corrective (fixing defects), adaptive (adjusting to new environments), perfective (adding features/improving performance), and preventive (improving maintainability).

Q5. Which type of maintenance consumes the most effort?

Correct Answer: C) Perfective (~60% of maintenance effort)

Explanation:
Maintenance effort distribution: Perfective (60%), Adaptive (25%), Corrective (15%), Preventive (varies). Perfective maintenance is most costly as it involves adding new features and enhancements.

Q6. Legacy systems are often difficult to maintain due to:

Correct Answer: C) Both A and B

Explanation:
Legacy systems often have incomplete/missing documentation and use obsolete technologies, making maintenance challenging. Other issues include lack of original developers and complex dependencies.

3. Software Reuse

Q7. Software reuse aims to:

Correct Answer: A) Reduce development time and cost

Explanation:
Reusing tested components can significantly reduce development time (by 40-60%) and costs while improving quality, as components have already been verified in other contexts.

Q8. Which is an example of reusable software components?

Correct Answer: D) All of the above

Explanation:
All these are common forms of software reuse: libraries provide reusable functions, APIs enable service reuse, and frameworks offer reusable architectures and design patterns.

Q9. A major challenge in software reuse is:

Correct Answer: D) All of the above

Explanation:
Reuse challenges include: compatibility issues between components, restrictive licenses, lack of standardized interfaces, and difficulty finding appropriate components.

4. Component-Based Software Development (CBSD)

Q10. CBSD focuses on:

Correct Answer: A) Building systems from pre-existing components

Explanation:
CBSD emphasizes assembling systems from commercially available or in-house components rather than developing everything from scratch, similar to building with Lego blocks.

Q11. Advantages of CBSD include:

Correct Answer: D) All of the above

Explanation:
CBSD benefits: faster time-to-market (reusing vs. building), cost savings (development effort reduction), and potentially higher reliability (using proven components).

Q12. CORBA and COM/DCOM are examples of:

Correct Answer: A) Component models

Explanation:
CORBA (Common Object Request Broker Architecture) and COM/DCOM (Component Object Model) are middleware standards that enable component interoperability across different platforms and languages.

5. Advanced MCQs

Q13. Which ISO standard replaces ISO 9001 for software quality?

Correct Answer: A) ISO/IEC 25010 (Software product quality standard)

Explanation:
ISO/IEC 25010 is the software product quality standard that supersedes ISO 9126. It defines quality characteristics like functional suitability, performance efficiency, compatibility, usability, reliability, security, maintainability, and portability.

Q14. The "DMAIC" process in Six Sigma stands for:

Correct Answer: A) Define, Measure, Analyze, Improve, Control

Explanation:
DMAIC is the Six Sigma methodology for improving existing processes: Define problems, Measure key metrics, Analyze root causes, Improve the process, and Control to maintain gains.

Q15. Reverse engineering in software maintenance is used to:

Correct Answer: C) Both A and B

Explanation:
Reverse engineering helps reconstruct design documentation from source code and understand system behavior when fixing undocumented legacy systems. It's crucial for maintaining poorly documented software.