Software Archtecture (Dcs 301)
Software Archtecture (Dcs 301)
COMPUTER SCIENCE
SOFTWARE ARCHTECTURE (DCS 301) EXAMINATIONS
_______________________________________________________________________
TIME: 1HOURS 30 MINUTES MARKS: 100
INSTRUCTIONS TO CANDIDATES
1. Write your name and your Student’s ID number in the space at the top of this page.
2. This paper consists of three (3) sections, A, B and C.
3. Answer all questions in section A and B.
4. Circle the letters representing your choices for section A questions.
5. Write the correct answers for Section B questions in the spaces provided.
6. Section C has two (2) questions. Answer any one question of your choice.
7. Cell phones and programmable devices should not be brought into the examination room.
TOTAL
Page 1 of 4
DO NOT TURN THIS PAGE UNTIL YOU ARE TOLD TO DO SO.
SECTION A (10 MARKS)
1. Which of the following best describes software architecture? A. The process of coding
individual software components B. The structure and organization of software systems C.
The debugging and testing phase of software development D. The documentation of
software requirements
2. Which architectural style emphasizes the separation of concerns through layers? A.
Client-server architecture B. Microservices architecture C. Layered architecture D.
Event-driven architecture
3. What is a characteristic of the client-server architectural style? A. Peer-to-peer
communication between clients B. Centralized data storage on client devices C.
Decentralized control over shared resources D. Hierarchical structure with multiple
servers
4. Which architectural pattern is suitable for applications where components communicate
via passing messages? A. Publisher-subscriber architecture B. Pipe and filter architecture
C. Client-server architecture D. Component-based architecture
5. What is a primary benefit of using a microservices architectural style? A. Tight coupling
between components B. Simplified deployment and scalability C. Monolithic codebase
for easier maintenance D. Single point of failure in the system
6. In which architecture does each layer communicate only with adjacent layers? A.
Microservices architecture B. Client-server architecture C. Layered architecture D.
Component-based architecture
7. Which architectural style is well-suited for applications requiring high availability and
fault tolerance? A. Monolithic architecture B. Microservices architecture C. Pipe and
filter architecture D. Layered architecture
8. Which architectural pattern allows components to be easily replaced or modified without
affecting the rest of the system? A. Layered architecture B. Microservices architecture C.
Component-based architecture D. Client-server architecture
9. What does the Model-View-Controller (MVC) architectural pattern emphasize? A. Data
storage and retrieval B. User interface design and interaction C. Message passing
between components D. Peer-to-peer communication
10. Which architectural style divides an application into self-contained units that can be
developed, deployed, and scaled independently? A. Client-server architecture B.
Monolithic architecture C. Microservices architecture D. Layered architecture
11. What is a disadvantage of using a monolithic architecture? A. Improved scalability B.
Reduced complexity C. Limited technology flexibility D. Easy integration of new
components
Page 2 of 4
12. Which architectural style is characterized by its focus on event-driven communication
between loosely coupled components? A. Layered architecture B. Event-driven
architecture C. Microservices architecture D. Component-based architecture
13. What is an essential aspect of architectural patterns in software design? A. Optimization
of individual algorithms B. Integration of third-party libraries C. Addressing cross-cutting
concerns D. Implementation of design patterns
14. Which architectural pattern is most suitable for processing data through a series of
independent processing steps? A. Layered architecture B. Pipe and filter architecture C.
Microservices architecture D. Client-server architecture
15. In which architectural style are software components designed to perform specific
functions with well-defined interfaces? A. Component-based architecture B. Monolithic
architecture C. Client-server architecture D. Microservices architecture
16. What is the role of an architectural pattern in software development? A. Defining the
layout of user interfaces B. Ensuring compliance with coding standards C. Providing a
proven solution to recurring design problems D. Implementing security protocols
17. Which architectural style promotes the reuse of software components and modular
design? A. Microservices architecture B. Component-based architecture C. Event-driven
architecture D. Layered architecture
18. What does the term "scalability" refer to in the context of software architecture? A. The
ability to recover from system failures B. The capability to handle increasing workload
without significant performance degradation C. The efficiency of data storage and
retrieval operations D. The ease of integrating new features into an existing system
19. Which architectural style is best suited for applications where each user interface element
corresponds to a separate component? A. Client-server architecture B. Component-based
architecture C. Monolithic architecture D. Event-driven architecture
20. What is a common challenge in software architecture related to maintaining consistency
and coherence across different architectural views? A. Scalability issues B. Integration
complexity C. Performance bottlenecks D. Security vulnerabilities
Page 3 of 4
13. What is the opposite of "tight coupling" in software components? Answer: Loose
coupling
14. What does "DDD" stand for? Answer: Domain-Driven Design
15. What architectural style focuses on dividing an application into self-contained units?
Answer: Modular
16. What does "CDN" stand for in distributed systems? Answer: Content Delivery Network
17. What is the role of "interfaces" in component-based architecture? Answer: Contract
18. What is the primary concern in "security" architecture? Answer: Protection
19. What does "UX" stand for in software design? Answer: User Experience
20. What does "ORM" stand for in database integration? Answer: Object-Relational Mapping
Page 4 of 4