Understand the basics Flashcards

1
Q

What is the core idea of software architecture?

A

Software architecture is about capturing decisions, not just describing structure. It’s a dynamic, evolving process driven by empirical testing of hypotheses to meet quality attributes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Why is ‘Architect’ as a formal role problematic in agile teams?

A

‘Architect’ is a skill, not a role. Agile teams embody architectural decisions collectively, focusing on quality attributes and continuous exploration.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is the key activity of architecting in software?

A

Forming hypotheses about how the system meets quality goals, testing them empirically, and iterating until goals are achieved.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Why is the building architecture metaphor flawed for software?

A

Buildings are static; software is dynamic. Software architecture requires continuous adaptation, and decisions are compromises between alternatives.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What critical skills do effective software architects need?

A

Focus on quality attributes (scalability, security, etc.).

System-wide thinking.

Lifecycle experience (development to maintenance).

Balancing trade-offs.

Leadership and experimentation.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

How should architectural decisions be documented?

A

Capture:

Why a decision was made (rationale).

Rejected alternatives.

Assumptions/constraints.

Technical debt incurred.

Links to tests proving QARs.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What’s wrong with traditional ‘Software Architect’ titles?

A

They imply architecture is a top-down role, not a shared skill. Developers make architectural decisions daily (e.g., modular design, performance fixes).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

How does technical debt relate to architecture?

A

Architectural decisions intentionally incur debt (e.g., Y2K date shortcuts). Documenting debt helps future teams manage trade-offs.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What’s the solution to improving software architecture practices?

A

Put architecture in the hands of developers, not disconnected committees. Emphasize continuous exploration, empiricism, and team ownership.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is software architecture?

A

The high-level structure of a software system and the discipline of creating it. It involves:

  • Significant decisions about system organization.
  • Selection of structural elements and their interactions.
  • Focus on external properties (not implementation details).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Why is software architecture important?

A

Handles complexity in design/development.

  • Ensures quality attributes (performance, scalability, etc.).
  • Guides collective engineering activities.
  • Provides an abstract view for stakeholder communication.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What are the key aspects of software architecture?

A
  • Abstraction: Hides unimportant details.
  • Decomposition: Separates concerns.
  • Composition: Coordinates elements.
  • Trade-offs: Balances competing quality attributes.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What is the purpose of architecture documentation?

A
  • Provides a common understanding for stakeholders.
  • Captures design decisions, components, and patterns.
  • Guides implementation and future evolution.
  • Avoids reliance on reverse engineering (which often diverges from intent).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What are architectural views? Give examples.

A

Representations of the system from different perspectives:

  • Logical view: Components and relationships.
  • Development view: Module organization.
  • Process view: Runtime behavior.
  • Physical view: Deployment.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Name common architectural styles/patterns.

A
  • Layered pattern (e.g., OSI model).
  • Pipe-and-filter (e.g., data pipelines).
  • MVC (Model-View-Controller).
  • Client-server.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What is an architecture framework? Give examples.

A

Standardized methods for describing architectures:

  • DoDAF (Department of Defense).
  • TOGAF (The Open Group).
  • Zachman Framework.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

What is enterprise architecture?

A

The architecture of an entire organization’s IT systems, aligning IT strategy with business objectives. It guides integration, standardization, and evolution.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

What are key considerations in architectural design?

A
  • Functional requirements.
  • Quality attributes (performance, security).
  • Business drivers.
  • Technology constraints.
  • Trade-offs (e.g., performance vs. security).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

How is architecture evaluated?

A
  • Metrics: Coupling, cohesion, defect density.
  • Techniques: Prototyping, simulations, expert reviews.
  • Questions: Does it meet requirements? Is it flexible?
  • Benchmarking: Compare against similar systems.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

What is Software Architect?

A

An expert developer who design software solutions from the ground up, making high-level decisions about each stage of the process including technical standards, tools, design principles, platforms to be used, etc., leading a team of engineers to create the final product.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

What are the primary responsibilities of a Software Architect?

A

Provide technical leadership & direction.

Own the full software development lifecycle (problem definition → design → release).

Balance 50% technical leadership and 50% hands-on development.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

What are the hard skills required for a Software Architect?

A

UML (Unified Modeling Language) for diagramming architectures.

Deep knowledge of programming languages (e.g., Java, Python, Go).

DevOps practices (CI/CD, automation, collaboration).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

What soft skills are critical for a Software Architect?

A

Leadership (guiding teams).

Problem-solving & conflict resolution.

Communication (clear expectations).

Negotiation (timelines, trade-offs).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Why is negotiation an undervalued skill for Software Architects?

A

They negotiate:

Timelines with developers.

Trade-offs (features vs. cost vs. deadlines) with stakeholders.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

How can you transition into a Software Architect role?

A

Expand technical skills (become a full-stack developer).

Manage projects/people (take on leadership roles).

Find a mentor (learn from experienced architects).

Pursue certifications/continuing education.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

What is the best opportunity to move into a Software Architect role?

A

Within your current organization—express your goals to managers and seek proving opportunities.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

What makes Software Architects highly in demand?

A

Broad + deep technical knowledge.

Leadership + soft skills.

Scarcity of qualified candidates (18,500+ job openings).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

What educational background do employers typically require?

A

Degree in Computer Science/Engineering or

Equivalent hands-on experience.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

What organizational skills are needed for Software Architects?

A

Systematic thinking (e.g., managing UML diagrams).

Prioritization (tasks, team assignments).

Attention to detail (code quality, objectives).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

Why is creative thinking important for Software Architects?

A

To find alternative solutions when facing obstacles in development.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

What are the three levels of architecture?

A

Application Level (lowest)
Solution Level (mid-level)
Enterprise Level (highest)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
32
Q

What is the focus of Application Level Architecture?

A

Single application
Detailed, low-level design
Communication within one development team

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
33
Q

What is the focus of Solution Level Architecture?

A

One or more applications fulfilling a business need
Mix of high and low-level design
Communication between multiple development teams

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
34
Q

What is the focus of Enterprise Level Architecture?

A

Multiple solutions
High-level, abstract design (detailed by lower-level architects)
Communication across the organization

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
35
Q

Which architecture level is most detailed?

A

Application Level (focuses on low-level design of a single application)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
36
Q

Which architecture level deals with business solutions?

A

Solution Level (addresses one or more applications that solve a business need)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
37
Q

Which architecture level is the most abstract?

A

Enterprise Level (focuses on high-level design across multiple solutions)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
38
Q

What type of communication happens at the Application Level?

A

Within a single development team

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
39
Q

What type of communication happens at the Solution Level?

A

Between multiple development teams

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
40
Q

What type of communication happens at the Enterprise Level?

A

Across the entire organization

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
41
Q

Who typically handles the detailed design in Enterprise Level Architecture?

A

Solution or Application Architects (they break down high-level enterprise designs)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
42
Q

Which architecture level requires the broadest perspective?

A

Enterprise Level (must align multiple solutions with organizational goals)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
43
Q

Which architecture level is most technically focused?

A

Application Level (deals with implementation details of a single system)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
44
Q

What is application architecture?

A

The blueprint defining a software system’s structure, components, interactions, and technical/operational requirements.
The lowest level of architecture. Focus on one single application. Very detailed, low level design. Communication is usually within one development team.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
45
Q

What three elements comprise application architecture decisions?

A

1) Structural elements
2) Their interfaces
3) Composition/interplay between them

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
46
Q

What factors guide architectural decisions?

A

Functionality, resilience, performance, reusability, economic/technology constraints.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
47
Q

How does good architecture reduce costs?

A

By identifying and eliminating redundancies in components/functionalities.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
48
Q

How does architecture improve efficiency?

A

By identifying gaps (missing functionalities, bottlenecks) early in design phase.

49
Q

What advantage do modular systems provide?

A

Independent yet interoperable components enable easier maintenance/upgrades.

50
Q

Difference between architecture and design patterns?

A

Architecture: high-level system structure (e.g., microservices). Design: component-level solutions (e.g., Singleton).

51
Q

Key characteristic of layered architecture?

A

Horizontal separation (presentation, business logic, data layers).

52
Q

Main drawback of monolithic architecture?

A

Components are interdependent - failure in one affects whole system.

53
Q

How does SOA(service oriented architecture) differ from microservices?

A

SOA shares services across applications, microservices are independently deployable.

54
Q

When is event-driven architecture ideal?

A

For real-time systems where flow depends on user actions/sensor outputs.

55
Q

Key benefit of PWAs? Progressive web app

A

Cross-platform compatibility with native app-like experience.

56
Q

First consideration when choosing architecture?

A

Required functionality and future expansion needs.

57
Q

Why consider performance vs. scalability?

A

High performance = efficient tasks, scalability = handles growing workloads.

58
Q

Cloud vs on-premise tradeoffs?

A

Cloud: flexible/scalable but security concerns. On-premise: more control but costly.

59
Q

How does team skill level affect architecture choice?

A

Complex architectures (e.g., microservices) require specialized skills.

60
Q

Key features of architecture tools like CodeSee?

A

Interactive diagrams, real-time collaboration, code dependency visualization.

61
Q

Why might layered architecture become problematic?

A

High coupling between layers makes changes difficult.

62
Q

When would microservices be overkill?

A

For small, simple applications where operational overhead outweighs benefits.

63
Q

Why document architectural decisions?

A

To preserve rationale for future maintenance/updates.

64
Q

What makes architecture “well-designed”?

A

Balances current needs with future adaptability and team capabilities.

65
Q

Solution Level Architecture

A

The mid-level of architecture. Focus on one or more applications which fulfill a business need (business solution). Some high, but mainly low-level design. Communication is between multiple development teams.

66
Q

What is Solution Architecture (SA)?

A

The process of tailoring IT solutions to specific business needs by defining functional requirements and implementation stages. Acts as a bridge between enterprise strategy and technical execution.

67
Q

How does SA differ from Enterprise Architecture (EA)?

A

EA: Big-picture strategy, lifecycle management, cost reduction.

SA: Detailed planning, solves specific business problems, aligns with EA.

68
Q

What is the primary goal of SA?

A

Translate business needs into practical IT solutions while managing implementation risks and ensuring alignment with enterprise goals.

69
Q

Key responsibilities of a Solution Architect?

A

Design technical solutions using industry standards.

Create solution diagrams/documentation.

Manage project timelines/risks.

Liaise between business leaders and dev teams.

70
Q

Critical skills for a Solution Architect?

A

Technical expertise (systems, apps, cloud).

Communication (stakeholders + devs).

Project management (budget/timeline).

71
Q

How does a Solution Architect add value?

A

Increases ROI by selecting cost-effective tech, ensuring on-time delivery, and aligning solutions with market trends.

72
Q

Top 3 benefits of SA?

A

Reduced costs (avoids redundant solutions).

Faster implementation (clear guidelines).

Risk mitigation (addresses gaps early).

73
Q

Example of Information Security Architecture in SA?

A

Ensuring new systems comply with security regulations (e.g., GDPR) and documenting compliance measures.

74
Q

How does SA improve Business Architecture?

A

Maps solutions to business capabilities (e.g., usability, security) to directly impact outcomes.

75
Q

What deliverables does SA produce?

A

Solution architecture diagrams.

Risk assessments.

Implementation roadmaps.

Cost/resource estimates.

76
Q

Why is SA documentation critical?

A

Provides a single source of truth for dev teams, ensuring alignment with business goals and reducing miscommunication.

77
Q

How do EA, SA, and Technical Architects collaborate?

A

EA sets strategy → SA designs solutions → Technical Architects implement.

All ensure tech investments drive business value.

78
Q

Why can’t EA replace SA?

A

EA lacks granularity; SA provides the detailed blueprints needed for execution.

79
Q

When might SA fail?

A

If business requirements are unclear, or if architects lack technical/communication skills.

80
Q

How does SA handle evolving tech trends?

A

Continuous evaluation of new tools (e.g., cloud/AI) to recommend scalable solutions.

81
Q

Enterprise Level Architecture

A

The highest level of architecture. Focus on multiple solutions. High level, abstract design, which needs to be detailed out by solution or application architects. Communication is across the organization.

82
Q

What are the 4 key responsibilities of an Enterprise Architect?

A

Align IT strategy with business goals

Design/maintain enterprise architecture

Develop IT standards/policies

Manage architectural risks

83
Q

What are the 3 types of requirements architects must consider?

A

Vision (future direction)

Functional (system capabilities)

Performance (quality metrics)

84
Q

Name 4 categories of quality attributes with examples

A

Business: Adaptability, compliance

Security: Confidentiality, integrity

Performance: Scalability, throughput

Data: Interoperability, durability

85
Q

What are the two main UML categories and their purposes?

A

Structural: Static system design (class/component diagrams)

Behavioral: Dynamic interactions (sequence/activity diagrams)

86
Q

Match Kruchten’s views to their focus

A

Logical: End-user functionality

Process: System concurrency/flow

Development: Programmer perspective

Physical: Network topology

+1 Scenarios: Validation use cases

87
Q

What do these symbols represent?
(Show circle, arrow, nested boxes)

A

Circle: Provided interface

Arrow: Required interface

Nested boxes: Component decomposition

88
Q

Decode these class diagram elements:
(Show +name(), -attribute, #method())

A

Public, - Private, # Protected
Underline = Static

89
Q

What are key drawbacks of
Multi-tier
Client-Server
SOA
Microservices

A

Multi-tier: Monolithic risk

Client-Server: Single point of failure

SOA: Management complexity

Microservices: Integration overhead

90
Q

Compare these patterns’ strengths

Layered

MVC

Microservices

Event-Driven

A

Layered: Separation of concerns

MVC: UI/data separation

Microservices: Independent scaling

Event-Driven: Real-time processing

91
Q

What are the 3 key object types in DDD?

A
  • Value objects (immutable)
  • Entities (identity)
  • Aggregate roots (ownership)
92
Q

Compare publish-subscribe vs event streaming

A
  • Pub/sub: Immediate forwarding
  • Streaming: Persistent log
93
Q

How should architects communicate with
devs
Stakeholders

A
  • Devs: Clear technical rationale
  • Stakeholders: Business-focused presentations
94
Q

What tools support these tasks?
Back:
- UML:
- Documentation:
- Analysis:

A
  • UML: Lucidchart
  • Documentation: ArchiMate
  • Analysis: SWOT frameworks
95
Q

What factors drive architectural choices?

A
  • Business objectives
  • Quality attributes
  • Team capabilities
  • Cost/risk analysis
96
Q

When would you choose microservices over monolith?

A

When needing:
- Independent scaling
- Polyglot persistence
- Team autonomy
(Not for simple systems)

97
Q

What architecture fits:
- E-commerce platform
- IoT sensor network
- Legacy modernization

A
  • Layered + microservices
  • Event-driven
  • Strangler pattern
98
Q

How assess technology risks?

A
  • Impact analysis
  • Vendor stability
  • Team skills gap
  • Compliance checks
99
Q

How adapt architecture for

  • AI/ML
  • Edge computing
  • Quantum
A
  • AI/ML: Data pipeline design
  • Edge computing: Distributed nodes
  • Quantum: Post-quantum crypto
100
Q

What are the 4 main types of architects in software development?

A

Enterprise Architect

Solution Architect

Software/Application Architect

Technical Architect

101
Q

What is the primary focus of an Enterprise Architect?

A

Aligning end-to-end technology strategies with business goals across the entire organization.

102
Q

What types of questions does an EA typically address?

A

“Should we adopt SOA-based solutions?”

“What’s the benefit of unifying our ERP solution?”

“What are the implications of hybrid cloud?”

103
Q

What unique perspective does an EA bring?

A

Views the company holistically in terms of business entities, their relationships, and technology lifecycles

104
Q

What distinguishes a Software Architect from other types?

A

Hands-on technical leadership focused on a specific application/project’s design and standards.

105
Q

What responsibilities does a Software Architect typically have?

A

Defining development standards

Establishing design patterns

Setting integration standards

Answering technical implementation questions

106
Q

How does a Solution Architect bridge between EA and Technical Architects?

A

Designs high-level solutions for specific business requirements within EA’s framework, potentially spanning multiple applications.

107
Q

What is the Solution Architect’s main concern?

A

Ensuring product consistency across requirements, design, implementation and maintenance.

108
Q

What characterizes a Technical Architect’s role?

A

Deep expertise in a specific technology (e.g., Java, .NET) and responsibility for its implementation.

109
Q

How does a Technical Architect differ from a Software Architect?

A

More focused on a single technology stack rather than overall application design.

110
Q

Compare scope of work:

EA
- Solution
- Software
- Technical

A

EA: Entire enterprise
- Solution: Multiple applications
- Software: Single application
- Technical: Specific technology

111
Q

Match the architect to their time horizon:

EA

Solution

Software

Technical

A

EA: Long-term (3-5 years)

Solution: Medium-term (1-2 years)

Software: Project lifecycle

Technical: Immediate implementation

112
Q

How do these architects typically collaborate?

A

EA sets strategy → Solution designs within it → Software implements design → Technical handles specific tech

113
Q

What types of decisions does each architect make?

A
  • EA: Strategic technology direction
  • Solution: Integration approaches
  • Software: Application architecture
  • Technical: Implementation patterns
114
Q

Which architect roles are typically found in

  • Startups
  • Mid-size
  • Enterprises
A
  • Startups: Software Architect
  • Mid-size: Solution + Software
  • Enterprises: All four types
115
Q

“ARCH” Role Summary

A

A - Aligns (Enterprise)
R - Requirements (Solution)
C - Code-level (Software)
H - Hands-on-tech (Technical)

116
Q

Typical career path progression

A

Developer → Technical → Software → Solution → Enterprise

117
Q

What artifacts does each produce?

A
  • EA: Technology roadmaps
  • Solution: Architecture diagrams
  • Software: Design patterns
  • Technical: Implementation guides
118
Q

Who does each architect primarily work with?

A
  • EA: C-level executives
  • Solution: Business units
  • Software: Dev teams
  • Technical: Engineers
119
Q

How are these roles evolving?

A
  • More overlap in agile organizations
  • Cloud specialization emerging
  • Increased need for business acumen