Master of Software Engineering Flashcards
7 cards from real ME or MEng Master of Engineering practice questions. Tap to flip, then mark Knew It or Still Learning — missed cards come back until you master them.
Read the first 7 Master of Software Engineering flashcards as text
In the context of distributed systems, what does the CAP theorem state?
Answer: A distributed system can provide at most two of: Consistency, Availability, and Partition tolerance
CAP theorem proves that when a network partition occurs, a distributed system must choose between consistency and availability.
Which design pattern ensures a class has only one instance and provides a global point of access to it?
Answer: Singleton
The Singleton pattern restricts instantiation of a class to a single object and provides a static accessor for that instance.
What is 'technical debt' in software engineering?
Answer: The implied cost of future rework caused by choosing an expedient but suboptimal solution now
Technical debt describes the long-term maintenance burden incurred when shortcuts or poor design decisions are made to meet short-term goals.
In OAuth 2.0, what is the role of the 'authorization code' flow's PKCE extension?
Answer: To prevent authorization code interception attacks in public clients
PKCE (Proof Key for Code Exchange) uses a code verifier/challenge pair to prevent an intercepted authorization code from being exchanged by a malicious actor.
Which software process model is most appropriate when requirements are well-understood, stable, and the project has a fixed scope?
Answer: Waterfall
Waterfall suits projects with stable, well-defined requirements where each sequential phase (requirements → design → implementation → testing) can be completed before the next.
What is the purpose of an Abstract Syntax Tree (AST) in a compiler or interpreter?
Answer: To represent the hierarchical syntactic structure of source code for analysis and transformation
An AST is a tree-shaped intermediate representation of source code's syntactic structure, used for semantic analysis, optimization, and code generation.
In formal software verification, what does 'Hoare logic' provide?
Answer: A proof system using preconditions and postconditions to reason about program correctness
Hoare logic uses triples {P} C {Q} — precondition P, command C, postcondition Q — to formally prove that a program segment behaves correctly.