ANSWERS (RATED A+)
What is a component in software architecture? - ANSWERA group of related
modules handling the same major feature or functionality.
What are architectural boundaries? - ANSWERwhere interaction or communication
happens between components
What does "separation of concerns" mean at the architectural level? -
ANSWEREnsuring each component is responsible for one primary area or function
of the system.
Front End vs. Back End
Big Ball of Mud - ANSWERNo clear structure or discipline.
Ad-hoc component interactions.
Causes:
- Broken modularity.
- Degraded functional independence
Order these from largest to smallest - ANSWERStage > Scene > Pane > Label
Stage JavaFX - ANSWERMain Window
Scene JavaFX - ANSWERcontent inside the window
Pane JavaFX - ANSWERcontainers (layout manager)
Label JavaFX - ANSWERUI element to display text
Layered Architecture - ANSWERComponents interact only with adjacent layers.
Each layer:
- Offers services to the one above.
- Sends requests to the one below.
Layers shouldn't "look up" or depend on non-adjacent layers.
Promotes functional independence.
Client Server - ANSWER2 components communicating with another.
Client runs on own device (client-side)
Server runs remotely (server-side)
peer-to-peer - ANSWER- No central server
, - Clients connect directly
Ex:
- File Sharing
- Distributed Computing
Con:
- Harder to secure and manage
Monolithic Architecture - ANSWERSingle application deployed on server(s).
Advantages:
Easier to scale and deploy.
Disadvantages:
Harder to maintain/update as the app grows.
Microservice Architecture - ANSWERApplication is split into many small services.
Each microservice:
- Offers one cohesive API/feature.
- Is deployed independently.
- Can be maintained separately.
Trade-offs:
More deployment and monitoring complexity.
Higher bandwidth/memory use
Three Layer Architecture - ANSWERThree Layer Architecture is a form of Layered
Architecture that organizes a system into:
1. Presentation Layer
2. Business Logic Layer
3. Data Layer
Data Layer - ANSWERHandles external data sources (e.g., APIs, databases).
Core purpose: isolate how data is gathered and structured.
Business Logic Layer - ANSWER- Processes and applies rules to data.
- Mediator between raw data and how it's presented.
Presentation Layer - ANSWERHandles UI and user interactions.
Can be:
GUI (JavaFX)
Command-line interface (CLUI)
Command-line arguments
Focus: How data is displayed and how users give input.
Procedural Programming - ANSWERUser inputs are determined before the program
runs.
- Once it runs, it goes from start to finish without interruption
Event-Driven Programming - ANSWER- Waits for events (button clicks) to trigger
procedures
- Allows dynamic interaction during runtime
Synchronous - ANSWERReaction to the event runs in the main thread.