First 50 of 200 questions. Each one lists the choices, the correct answer, and an explanation. The checker at the top of this page saves progress in this browser when it is available.
Continue in the practice tool above to load more questions, 50 at a time.
Question 1Análisis y diseño de software
In the Unified Process, which phase focuses on establishing the business case and defining the scope of the system?
- Construction
- Elaboration
- Transition
- Inception Correct answer.
Explanation
Inception establishes the vision, business case, and project scope, and produces the initial use-case model. Elaboration then addresses architecture and risk; Construction builds the product; Transition deploys it.
Question 2Análisis y diseño de software
Which UML diagram is primarily intended to show the static structure of a system in terms of classes, attributes, operations, and relationships?
- Activity diagram
- State machine diagram
- Sequence diagram
- Class diagram Correct answer.
Explanation
A class diagram models static structure: classifiers, their features, and relationships such as association, generalization, and dependency. The other diagrams listed are behavioral.
Question 3Análisis y diseño de software
Which requirement elicitation technique is most appropriate for discovering tacit knowledge held by users who perform a task daily?
- Document analysis
- Prototyping
- Observation Correct answer.
- Questionnaire
Explanation
Observation captures tacit, habitual knowledge that users may not articulate in interviews or questionnaires. Document analysis only reflects what is already written, and questionnaires cannot surface unstated practices.
Question 4Análisis y diseño de software
In a use-case model, what does the «include» relationship represent?
- Optional behavior that extends a base use case under a condition
- Mandatory behavior that is always inserted into the base use case Correct answer.
- Generalization between two actors
- A dependency in which one class uses another
Explanation
«include» denotes mandatory inclusion of the included use case's behavior within the base use case every time it executes. «extend» denotes conditional, optional behavior added at an extension point.
Question 5Análisis y diseño de software
A module hides its internal data structures and exposes only a documented interface. Which design principle does this illustrate?
- Inheritance
- Polymorphism
- Overloading
- Encapsulation Correct answer.
Explanation
Encapsulation hides internal representation behind an interface so clients depend only on the contract. Inheritance, polymorphism, and overloading are mechanisms related to type reuse or dispatch, not information hiding.
Question 6Análisis y diseño de software
Two classes are related by a composition. Which statement best describes the lifecycle implication?
- The relationship is a generalization from part to whole.
- The whole can be shared by several parts simultaneously.
- The part's lifetime is bound to the whole's lifetime. Correct answer.
- The part can outlive the whole independently.
Explanation
Composition is a strong whole-part relationship with coincident lifetime: destroying the whole destroys its parts. Aggregation, by contrast, allows parts to exist independently of the whole.
Question 7Análisis y diseño de software
Which SOLID principle states that software entities should be open for extension but closed for modification?
- Open/Closed Principle Correct answer.
- Liskov Substitution Principle
- Single Responsibility Principle
- Dependency Inversion Principle
Explanation
The Open/Closed Principle holds that modules should be extendable without altering existing source code, typically via abstraction. The other principles address responsibility cohesion, subtype substitutability, and dependency direction.
Question 8Análisis y diseño de software
In a data flow diagram, what does a process symbol represent?
- An external entity that produces or consumes data
- A communication channel between two entities
- A data store at rest
- A transformation of input data flows into output data flows Correct answer.
Explanation
A process transforms incoming data flows into outgoing data flows. Data stores hold data at rest, external entities are sources or sinks at the system boundary, and arrows represent data flows.
Question 9Análisis y diseño de software
Which architectural style organizes a system as a set of independent services that communicate over a network and are independently deployable?
- Microservices architecture Correct answer.
- Pipe-and-filter architecture
- Client-server architecture
- Layered architecture
Explanation
Microservices decompose a system into small, independently deployable services communicating over lightweight protocols. Layered and pipe-and-filter styles are structural decompositions, and client-server is a two-tier interaction model.
Question 10Análisis y diseño de software
A team must choose between two designs. Design A is simpler to build but couples the UI directly to the database. Design B adds a domain layer between them. Which benefit most directly justifies Design B?
- Reduced total lines of code
- Improved testability and insulation from database changes Correct answer.
- Faster initial delivery
- Elimination of the need for requirements analysis
Explanation
A domain layer isolates business rules from UI and persistence, improving testability and allowing database changes without rewriting business logic. It typically increases code volume and initial effort rather than reducing them.
Question 11Análisis y diseño de software
What is the primary purpose of a sequence diagram?
- To model the order of messages exchanged among objects over time Correct answer.
- To decompose system functions into data transformations
- To show the static class hierarchy of a system
- To model the states an object passes through
Explanation
Sequence diagrams depict interactions as ordered message exchanges among lifelines over time. Static hierarchy belongs to class diagrams, state changes to state machines, and data transformations to data flow diagrams.
Question 12Análisis y diseño de software
In UML, a multiplicity of 0..* on the target end of an association indicates which constraint?
- Zero or more target instances may be associated Correct answer.
- Exactly one target instance is required
- At least one target instance is required
- The target end is optional and limited to one instance
Explanation
The range 0..* means zero to unbounded instances may participate, so the association end is optional and multi-valued. A lower bound of 1 would make it mandatory.
Question 13Análisis y diseño de software
Which activity in the analysis phase best corresponds to building a conceptual model of the problem domain?
- Deployment planning
- Unit testing
- Domain modeling Correct answer.
- Configuration management
Explanation
Domain modeling captures the key concepts, attributes, and relationships of the problem domain without committing to implementation details. Deployment, testing, and configuration management concern later or supporting activities.
Question 14Análisis y diseño de software
A stakeholder states: 'The system shall respond to any search query in under two seconds.' How should this requirement be classified?
- Design constraint
- Non-functional performance requirement Correct answer.
- Functional requirement
- Business rule
Explanation
This statement specifies a quality attribute (response time), so it is a non-functional performance requirement. Functional requirements describe what the system does, not how fast or how well.
Question 15Análisis y diseño de software
Which design pattern provides a way to create objects without specifying their concrete classes, delegating instantiation to subclasses or a factory method?
- Factory Method Correct answer.
- Adapter
- Decorator
- Observer
Explanation
Factory Method defines an interface for creating an object but lets subclasses decide which concrete class to instantiate. Observer, Adapter, and Decorator are structural or behavioral patterns unrelated to deferred instantiation.
Question 16Análisis y diseño de software
A class has methods for computing payroll, sending emails, and generating PDF reports. Which design smell is most evident?
- Low cohesion Correct answer.
- Divergent change
- Feature envy
- Shotgun surgery
Explanation
Unrelated responsibilities in one class indicate low cohesion and a violation of the Single Responsibility Principle. Shotgun surgery and divergent change describe change-impact patterns rather than responsibility mixing per se.
Question 17Análisis y diseño de software
In an entity-relationship model, what does a cardinality of many-to-many between two entities typically require at the physical level?
- An associative (junction) table linking both entities Correct answer.
- A single merged table containing both entities
- No additional structure because it is directly supported
- A foreign key in one of the two entity tables
Explanation
Relational databases cannot store many-to-many relationships directly, so a junction table with foreign keys to both entities resolves it. A single foreign key only supports one-to-many.
Question 18Análisis y diseño de software
Which UML relationship indicates that a change in the supplier may affect the client but not necessarily the reverse, and is often shown with a dashed arrow?
- Association
- Dependency Correct answer.
- Generalization
- Realization
Explanation
Dependency is a directed, weaker relationship shown as a dashed arrow, meaning the client uses the supplier and changes may propagate one way. Association is structural, generalization is inheritance, and realization links a class to an interface it implements.
Question 19Análisis y diseño de software
A team adopts an iterative and incremental process. Which statement best explains why this reduces risk?
- It defers all testing to the final phase.
- It delivers working increments early, allowing feedback before large investments accumulate. Correct answer.
- It guarantees that requirements will not change.
- It eliminates the need for architecture.
Explanation
Early increments expose assumptions to real feedback, so defects and misalignments are found before large sunk costs accrue. Iterative processes do not eliminate architecture, freeze requirements, or defer testing.
Question 20Análisis y diseño de software
Which of the following best describes the purpose of a design pattern's 'context' in its documentation?
- The programming language required to implement it
- The performance benchmark the pattern must meet
- The list of classes that make up the solution
- The situation in which the pattern's problem and forces occur Correct answer.
Explanation
The context describes the recurring situation and forces under which the problem arises and the solution applies. It is not tied to a language, class list, or benchmark.
Question 21Análisis y diseño de software
Given an entity with attributes A, B, C where A determines B and B determines C, which normal form is violated?
- First normal form
- Fourth normal form
- Second normal form
- Third normal form Correct answer.
Explanation
A transitive dependency A→B→C on a non-key attribute violates Third Normal Form, which requires no non-key attribute to depend transitively on the key. First and Second Normal Form address atomicity and partial dependencies on composite keys.
Question 22Análisis y diseño de software
Which architectural tactic most directly improves availability?
- Increasing code coverage in unit tests
- Normalizing the database to third normal form
- Applying the Strategy pattern
- Introducing redundant components with failover Correct answer.
Explanation
Redundancy with failover allows the system to continue operating when a component fails, directly improving availability. Testing, patterns, and normalization improve other qualities such as correctness and maintainability.
Question 23Análisis y diseño de software
What distinguishes an actor from a system in a use-case diagram?
- Actors are internal modules that implement use cases.
- Actors are data stores accessed by the system.
- Actors interact with the system from outside its boundary to achieve a goal. Correct answer.
- Actors are always human users, while systems are software components.
Explanation
An actor is any external entity-human or another system-that interacts with the system to achieve a goal. Actors are not necessarily human and are never internal modules.
Question 24Análisis y diseño de software
A developer replaces a subclass that throws an exception in a method the superclass guarantees will not throw. Which principle is most directly violated?
- Liskov Substitution Principle Correct answer.
- Open/Closed Principle
- Interface Segregation Principle
- Single Responsibility Principle
Explanation
The Liskov Substitution Principle requires subtypes to honor the behavioral contracts of their supertypes, including postconditions and promised absence of exceptions. Weakening guarantees breaks substitutability.
Question 25Análisis y diseño de software
Which document artifact most directly bridges requirements analysis and design by describing the behavior of the system from the user's perspective?
- Use-case specification Correct answer.
- Deployment diagram
- Source code repository
- Class diagram
Explanation
A use-case specification details actors, preconditions, main and alternate flows, and postconditions, providing a behavioral contract that design must satisfy. Class and deployment diagrams are design artifacts.
Question 26Análisis y diseño de software
Which UML diagram is primarily used to model the static structure of a system by showing classes, their attributes, operations, and relationships?
- Sequence diagram
- Activity diagram
- Class diagram Correct answer.
- Use case diagram
Explanation
A class diagram is a structural UML diagram that depicts the static view of a system, including classes, interfaces, attributes, operations, and their relationships. Other diagrams like sequence and activity are behavioral and focus on dynamic aspects.
Question 27Análisis y diseño de software
In a use-case diagram, what does an actor represent?
- A role played by a user or external system interacting with the system Correct answer.
- A specific person with a name
- A sequence of actions performed by the system
- A internal component of the system
Explanation
An actor models a role that an external entity (human or system) plays when interacting with the system under design. It is not a specific individual but a set of roles, and it is always external to the system boundary.
Question 28Análisis y diseño de software
Which SOLID principle advises that high-level modules should not depend on low-level modules, but both should depend on abstractions?
- Interface Segregation Principle
- Liskov Substitution Principle
- Single Responsibility Principle
- Dependency Inversion Principle Correct answer.
Explanation
The Dependency Inversion Principle (DIP) states that high-level policy should not depend on low-level details; both should depend on abstractions. This inverts the traditional dependency direction, promoting decoupling and testability.
Question 29Análisis y diseño de software
In a data flow diagram (DFD), which symbol is used to represent a data store?
- A rectangle
- An arrow
- A circle
- Two parallel horizontal lines Correct answer.
Explanation
In many DFD notations, a data store is depicted as two parallel lines (open-ended rectangle). A rectangle typically represents an external entity, a circle represents a process, and an arrow represents a data flow.
Question 30Análisis y diseño de software
Which design pattern is creational and ensures that a class has only one instance while providing a global point of access to it?
- Adapter
- Factory Method
- Observer
- Singleton Correct answer.
Explanation
The Singleton pattern restricts instantiation of a class to one object and provides a global access point. It is a creational pattern often used for configuration managers or logging services.
Question 31Análisis y diseño de software
In an entity-relationship model, what does a cardinality ratio of 1:1 between two entities indicate?
- Each entity instance is associated with at most one instance of the other entity Correct answer.
- Each entity instance is associated with exactly two instances of the other entity
- Each entity instance may be associated with zero or more instances of the other entity
- Each entity instance must be associated with many instances of the other entity
Explanation
A 1:1 cardinality ratio means that for each instance of one entity, there is at most one associated instance of the other entity, and vice versa. It does not imply mandatory participation unless specified by modality constraints.
Question 32Análisis y diseño de software
Which of the following is a behavioral design pattern that defines a family of algorithms, encapsulates each one, and makes them interchangeable?
- Facade
- Composite
- Strategy Correct answer.
- Decorator
Explanation
The Strategy pattern encapsulates interchangeable algorithms behind a common interface, allowing the algorithm to vary independently from clients. Decorator, Facade, and Composite are structural patterns.
Question 33Análisis y diseño de software
What is the main purpose of a software architecture document?
- To describe the system's structure, components, and their relationships Correct answer.
- To detail the project schedule and budget
- To provide the complete source code
- To list all user interface screens
Explanation
A software architecture document captures the high-level structure of a system, including its components, their responsibilities, and interactions, along with architectural decisions and constraints. It serves as a communication artifact among stakeholders.
Question 34Análisis y diseño de software
In UML, which relationship is used to model a whole-part aggregation where the part can exist independently of the whole?
- Generalization
- Realization
- Aggregation Correct answer.
- Composition
Explanation
Aggregation is a whole-part relationship with a hollow diamond, indicating that parts may outlive the whole. Composition, shown with a filled diamond, implies stronger ownership and lifecycle dependency.
Question 35Análisis y diseño de software
A developer is designing a system where different types of documents (PDF, Word, Excel) must be exported. The export algorithm is similar but varies in formatting details. Which design pattern best allows adding new document types without modifying existing export code?
- Strategy Correct answer.
- Adapter
- Singleton
- Observer
Explanation
The Strategy pattern encapsulates each export algorithm behind a common interface, enabling new document types to be added as new strategy classes without altering client code. This adheres to the Open/Closed Principle.
Question 36Análisis y diseño de software
In a class diagram, a class named 'Customer' has an association with 'Order' with multiplicity 1..* on the Order end. What does this imply?
- A Customer can have zero or more Orders
- Each Order must be associated with at least one Customer
- Each Customer must be associated with at least one Order Correct answer.
- An Order can have at most one Customer
Explanation
The multiplicity 1..* on the Order end means that for each Customer, there must be at least one Order and possibly many. It does not constrain the Customer end unless specified.
Question 37Análisis y diseño de software
A class has methods to calculate tax, format a report, and send an email notification. Which design principle is most clearly violated?
- Single Responsibility Principle Correct answer.
- Dependency Inversion Principle
- Open/Closed Principle
- Liskov Substitution Principle
Explanation
The Single Responsibility Principle states that a class should have only one reason to change. The class combines tax calculation, report formatting, and email sending, which are three distinct responsibilities.
Question 38Análisis y diseño de software
In a sequence diagram, what does a lifeline represent?
- The activation of a process
- The time period during which an object exists and interacts Correct answer.
- The creation and destruction of an object
- The sequence of messages between objects
Explanation
A lifeline is drawn as a vertical dashed line that represents the existence of an object over time. Messages are shown as arrows between lifelines, and activation bars indicate when an object is executing a method.
Question 39Análisis y diseño de software
Which of the following best describes the purpose of a design pattern's 'context' section in its documentation?
- It lists the classes that participate in the pattern
- It describes the situations in which the pattern can be applied Correct answer.
- It explains the benefits and trade-offs of the pattern
- It provides sample code for the pattern
Explanation
The context (or applicability) section of a pattern description explains the circumstances and conditions under which the pattern is useful. It helps designers decide if the pattern fits their problem.
Question 40Análisis y diseño de software
In a normalized database design, a relation has attributes A, B, C, D where the primary key is (A, B). If C depends only on A, which normal form is violated?
- Boyce-Codd Normal Form
- Third Normal Form
- First Normal Form
- Second Normal Form Correct answer.
Explanation
Second Normal Form requires that all non-key attributes be fully functionally dependent on the entire primary key. A partial dependency (C depends only on A, part of the key) violates 2NF.
Question 41Análisis y diseño de software
Which architectural tactic is most directly aimed at improving system availability?
- Increasing code coverage in unit tests
- Using a layered architecture
- Applying the Model-View-Controller pattern
- Active redundancy with heartbeats Correct answer.
Explanation
Active redundancy with heartbeat monitoring allows a standby component to take over when the primary fails, directly enhancing availability. Layered architecture, MVC, and unit test coverage affect other quality attributes like modifiability or testability.
Question 42Análisis y diseño de software
A developer introduces a subclass that overrides a method to throw an exception, while the superclass method does not declare any exceptions. Which SOLID principle is most likely violated?
- Dependency Inversion Principle
- Interface Segregation Principle
- Liskov Substitution Principle Correct answer.
- Single Responsibility Principle
Explanation
The Liskov Substitution Principle requires that objects of a superclass be replaceable with objects of its subclasses without breaking the program. Throwing an unexpected exception breaks the superclass's contract.
Question 43Análisis y diseño de software
In a layered architecture, which layer typically contains the business logic and domain entities?
- Infrastructure layer
- Presentation layer
- Domain layer Correct answer.
- Application layer
Explanation
The domain layer encapsulates business rules and domain entities, independent of presentation and infrastructure. The application layer coordinates tasks, while presentation handles UI and infrastructure provides technical services.
Question 44Análisis y diseño de software
A team is designing a system where multiple components need to be notified when a subject's state changes, without tight coupling. Which design pattern is most appropriate?
- Decorator
- Factory Method
- Observer Correct answer.
- Proxy
Explanation
The Observer pattern defines a one-to-many dependency so that when one object changes state, all its dependents are notified automatically. It promotes loose coupling between subject and observers.
Question 45Análisis y diseño de software
Which UML diagram is best suited to model the internal behavior of a single object or a use case, showing states and transitions?
- Object diagram
- Communication diagram
- Component diagram
- State machine diagram Correct answer.
Explanation
A state machine diagram focuses on the states of a single object and the transitions triggered by events. It is ideal for modeling lifecycle or reactive behavior.
Question 46Análisis y diseño de software
In the context of software design, what is the main benefit of using an interface rather than a concrete class as a parameter type?
- It allows any class implementing the interface to be passed, increasing flexibility Correct answer.
- It guarantees better performance
- It simplifies the class diagram
- It enforces a specific implementation
Explanation
Programming to an interface decouples the client from concrete implementations, enabling substitution and easier testing. This is a key principle of flexible, maintainable design.
Question 47Análisis y diseño de software
A system must support multiple user roles with different access levels. Which design pattern best encapsulates varying algorithms for access control?
- Builder
- Singleton
- Template Method
- Strategy Correct answer.
Explanation
The Strategy pattern allows different access control algorithms to be encapsulated and selected at runtime, making it easy to add new roles without modifying client code.
Question 48Análisis y diseño de software
In a class diagram, a class named 'A' has a directed association to class 'B' with an arrow. What does the arrow indicate?
- B inherits from A
- A is a part of B
- A has a reference to B and can call its methods Correct answer.
- B depends on A
Explanation
A directed association (navigable association) indicates that objects of class A can navigate to objects of class B, typically by holding a reference. It does not imply inheritance or composition.
Question 49Análisis y diseño de software
A software architect is evaluating a microservices architecture. Which quality attribute is most directly improved by this style compared to a monolithic architecture?
- Simplified deployment
- Scalability of individual services Correct answer.
- Simplified data consistency
- Reduced network latency
Explanation
Microservices allow each service to be scaled independently, improving scalability. They typically complicate deployment and data consistency, and may increase network latency.
Question 50Análisis y diseño de software
In a design, a class 'Order' must be able to create different types of 'Shipping' objects (e.g., Standard, Express) without knowing the concrete class. Which pattern is most suitable?
- Observer
- Adapter
- Factory Method Correct answer.
- Facade
Explanation
The Factory Method pattern defines an interface for creating an object but lets subclasses or a factory decide which concrete class to instantiate. It decouples the client from concrete shipping classes.