Examplify
Back to home

Software Design

Review all questions and their correct answers.

Question 1
What is the term for the systematic process of defining the architecture, components, and data for a software system?
  • Software Development
  • Software Testing
  • Software Design
  • Software Deployment
Question 2
The term "software engineering" was coined during which historical period, prompted by budget overruns and poor quality projects?
  • The Dot-com boom
  • The "Software Crisis" of the 1960s
  • The rise of personal computers in the 1980s
  • The emergence of the internet in the 1990s
Question 3
Which early software design methodology is known for its linear, rigid sequence of phases where design is completed before coding begins?
  • Agile
  • Scrum
  • Waterfall Model
  • Microservices
Question 4
The rise of languages like C++ and Java in the 1980s-1990s promoted which programming paradigm?
  • Procedural Programming
  • Functional Programming
  • Object-Oriented Programming (OOP)
  • Logic Programming
Question 5
Which core design concept involves hiding complex implementation details and showing only the essential features of a system?
  • Modularity
  • Abstraction
  • Cohesion
  • Coupling
Question 6
What is the term for breaking a system into smaller, independent, and interchangeable parts?
  • Abstraction
  • Modularity
  • Encapsulation
  • Inheritance
Question 7
In good software design, what are the ideal levels for coupling and cohesion?
  • High Coupling, Low Cohesion
  • High Coupling, High Cohesion
  • Low Coupling, Low Cohesion
  • Low Coupling, High Cohesion
Question 8
Which SOLID principle states that a class should have only one reason to change?
  • Open/Closed Principle
  • Single Responsibility Principle
  • Liskov Substitution Principle
  • Dependency Inversion Principle
Question 9
The Open/Closed Principle suggests that software entities should be...
  • Open for modification, closed for extension
  • Closed for both modification and extension
  • Open for extension, closed for modification
  • Open for both modification and extension
Question 10
Which SOLID principle is concerned with ensuring that subclasses can be used in place of their parent classes without breaking the program?
  • Interface Segregation Principle
  • Dependency Inversion Principle
  • Single Responsibility Principle
  • Liskov Substitution Principle
Question 11
The idea that high-level modules should not depend on low-level modules, but both should depend on abstractions, is known as:
  • Interface Segregation Principle
  • Dependency Inversion Principle
  • Open/Closed Principle
  • Liskov Substitution Principle
Question 12
The Interface Segregation Principle states that it is better to have...
  • One large, general-purpose interface
  • No interfaces at all
  • Many small, specific interfaces
  • Interfaces that depend on concrete classes
Question 13
Which software development methodology uses time-boxed iterations called "sprints"?
  • Waterfall
  • Kanban
  • Scrum
  • Monolithic
Question 14
An architectural pattern where all components are part of a single, unified codebase is called:
  • Microservices Architecture
  • Service-Oriented Architecture
  • Monolithic Architecture
  • Agile Architecture
Question 15
What is a primary advantage of a Microservices architecture over a Monolithic one?
  • Simpler initial development
  • Easier to deploy as a single unit
  • Highly scalable and resilient
  • Less complex to manage
Question 16
In the context of SOA vs. Microservices, which architecture is typically more fine-grained and application-specific?
  • Service-Oriented Architecture (SOA)
  • Monolithic Architecture
  • Microservices
  • Waterfall Architecture
Question 17
How do services typically communicate in a Service-Oriented Architecture (SOA)?
  • Through direct, lightweight APIs
  • Through a centralized Enterprise Service Bus (ESB)
  • By sharing a common memory space
  • Through file-based integration
Question 18
Which statement is true regarding data management in a Microservices architecture?
  • All services share a single, centralized database
  • Each service has its own independent database
  • Data is managed by a central Enterprise Service Bus
  • Services do not use databases
Question 19
Design patterns are best described as:
  • High-level architectural blueprints
  • Reusable solutions to commonly occurring problems
  • Specific algorithms for sorting data
  • A set of coding syntax rules
Question 20
Which creational design pattern ensures a class has only one instance and provides a global point of access to it?
  • Factory Method
  • Singleton
  • Builder
  • Prototype
Question 21
The Factory Method pattern is used to:
  • Ensure only one object is ever created
  • Let subclasses decide which class to instantiate
  • Add new functionalities to an object dynamically
  • Allow incompatible interfaces to work together
Question 22
Which design pattern is known as a "factory of factories" and is used to create families of related objects?
  • Abstract Factory
  • Builder
  • Singleton
  • Prototype
Question 23
Which pattern separates the construction of a complex object from its representation, allowing the same process to create different variations?
  • Factory Method
  • Singleton
  • Builder
  • Adapter
Question 24
Which pattern creates new objects by copying an existing object, which is useful when object creation is expensive?
  • Prototype
  • Decorator
  • Observer
  • Strategy
Question 25
What is the purpose of the Adapter design pattern?
  • To add new functionalities to an object
  • To ensure a class has only one instance
  • To allow incompatible interfaces to work together
  • To define a family of interchangeable algorithms
Question 26
Which design pattern allows you to add new functionalities to an object dynamically without altering its structure?
  • Decorator
  • Adapter
  • Singleton
  • Factory Method
Question 27
Which behavioral pattern defines a one-to-many dependency where all dependents are notified automatically when the main object changes state?
  • Strategy
  • Observer
  • Builder
  • Adapter
Question 28
The Strategy pattern is used to:
  • Define a family of interchangeable algorithms and encapsulate each one
  • Create objects by copying a prototype
  • Ensure only one instance of a class exists
  • Make incompatible interfaces work together
Question 29
Tools like Lucidchart and StarUML are primarily used for what purpose in software design?
  • Writing and compiling code
  • Visualizing system architecture with UML diagrams
  • Tracking bugs and project tasks
  • Managing code versions
Question 30
Figma and Adobe XD are examples of which type of design tool?
  • Integrated Development Environments (IDEs)
  • Version Control Systems (VCS)
  • Wireframing & Prototyping Tools
  • UML Modeling Tools
Question 31
What is the primary function of a Version Control System (VCS) like Git?
  • To design user interfaces
  • To track tasks and bugs
  • To manage and track changes to code and documents
  • To compile and run software
Question 32
Which of the following is considered an engineering constraint related to accommodating future growth in users and data?
  • Performance
  • Security
  • Scalability
  • Maintainability
Question 33
Adhering to legal regulations like HIPAA for healthcare software falls under which engineering constraint?
  • Performance
  • Cost and Resources
  • Regulatory Compliance
  • Security
Question 34
The ISO/IEC 25010 standard is primarily concerned with:
  • Defining software development methodologies
  • Defining a set of software quality attributes
  • Specifying which programming language to use
  • Outlining project management best practices
Question 35
What is a Data Structure?
  • A specific algorithm for solving a problem
  • A way to organize and store data for efficient access and modification
  • A type of programming language
  • A software design pattern
Question 36
Integers, characters, and booleans are examples of what type of data structures?
  • Abstract Data Structures
  • Non-Primitive Data Structures
  • Complex Data Structures
  • Primitive Data Structures
Question 37
Arrays, Linked Lists, and Trees are classified as which type of data structures?
  • Primitive Data Structures
  • Fundamental Data Structures
  • Abstract (Non-Primitive) Data Structures
  • Simple Data Structures
Question 38
Which OOP principle involves bundling data and the methods that operate on that data into a single unit?
  • Inheritance
  • Polymorphism
  • Abstraction
  • Encapsulation
Question 39
The degree to which elements inside a single module belong together is called:
  • Coupling
  • Cohesion
  • Modularity
  • Abstraction
Question 40
A primary disadvantage of the Waterfall model is its:
  • Lack of documentation
  • Lack of clear stages
  • Lack of flexibility to handle changing requirements
  • Emphasis on collaboration
Question 41
A primary disadvantage of a Monolithic Architecture is that it is:
  • Difficult to develop initially
  • Difficult to scale and maintain
  • Too complex to deploy
  • Highly resilient to failures
Question 42
Which project management framework focuses on visualizing work and limiting work-in-progress?
  • Scrum
  • Waterfall
  • Kanban
  • Extreme Programming (XP)
Question 43
In SOA, services are typically enterprise-wide, while in Microservices, they are:
  • Also enterprise-wide
  • Application-specific
  • Shared across all applications
  • Managed by a central team
Question 44
Which design pattern category focuses on how objects are created?
  • Structural
  • Behavioral
  • Creational
  • Architectural
Question 45
Which design pattern category focuses on how classes and objects are composed to form larger structures?
  • Creational
  • Structural
  • Behavioral
  • Compositional
Question 46
The Observer and Strategy patterns belong to which category of design patterns?
  • Creational
  • Structural
  • Behavioral
  • Algorithmic
Question 47
What is the goal of "Information Hiding"?
  • To make a module's code intentionally difficult to read
  • To conceal a module's internal workings to reduce dependencies
  • To hide features from the user
  • To encrypt all data within a module
Question 48
Which engineering constraint is primarily concerned with protecting sensitive data through methods like encryption and authentication?
  • Performance
  • Scalability
  • Security
  • Maintainability
Question 49
A software system that is easy to update, debug, and extend over time is said to have high:
  • Performance
  • Scalability
  • Security
  • Maintainability
Question 50
What is the primary difference between an algorithm and a data structure?
  • There is no difference
  • An algorithm solves a problem, while a data structure organizes data
  • A data structure solves a problem, while an algorithm organizes data
  • An algorithm is a type of data structure
Question 51
Which OOP principle allows objects of different classes to be treated as objects of a common superclass?
  • Encapsulation
  • Inheritance
  • Polymorphism
  • Abstraction
Question 52
What is a major con of a Microservices architecture?
  • Poor scalability
  • Difficult to deploy services independently
  • A single point of failure can bring down the app
  • Increased complexity in management and deployment
Question 53
If you need to create different UI elements (buttons, checkboxes) that are compatible with different operating systems (Windows, macOS), which design pattern would be most suitable?
  • Singleton
  • Abstract Factory
  • Builder
  • Prototype
Question 54
Which Agile methodology emphasizes flexibility, customer feedback, and iterative development?
  • Waterfall Model
  • Scrum
  • V-Model
  • Monolithic Design
Question 55
The degree of interdependence between software modules is known as:
  • Cohesion
  • Coupling
  • Abstraction
  • Modularity