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
How can you transition into a Software Architect role?
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.
26
What is the best opportunity to move into a Software Architect role?
Within your current organization—express your goals to managers and seek proving opportunities.
27
What makes Software Architects highly in demand?
Broad + deep technical knowledge. Leadership + soft skills. Scarcity of qualified candidates (18,500+ job openings).
28
What educational background do employers typically require?
Degree in Computer Science/Engineering or Equivalent hands-on experience.
29
What organizational skills are needed for Software Architects?
Systematic thinking (e.g., managing UML diagrams). Prioritization (tasks, team assignments). Attention to detail (code quality, objectives).
30
Why is creative thinking important for Software Architects?
To find alternative solutions when facing obstacles in development.
31
What are the three levels of architecture?
Application Level (lowest) Solution Level (mid-level) Enterprise Level (highest)
32
What is the focus of Application Level Architecture?
Single application Detailed, low-level design Communication within one development team
33
What is the focus of Solution Level Architecture?
One or more applications fulfilling a business need Mix of high and low-level design Communication between multiple development teams
34
What is the focus of Enterprise Level Architecture?
Multiple solutions High-level, abstract design (detailed by lower-level architects) Communication across the organization
35
Which architecture level is most detailed?
Application Level (focuses on low-level design of a single application)
36
Which architecture level deals with business solutions?
Solution Level (addresses one or more applications that solve a business need)
37
Which architecture level is the most abstract?
Enterprise Level (focuses on high-level design across multiple solutions)
38
What type of communication happens at the Application Level?
Within a single development team
39
What type of communication happens at the Solution Level?
Between multiple development teams
40
What type of communication happens at the Enterprise Level?
Across the entire organization
41
Who typically handles the detailed design in Enterprise Level Architecture?
Solution or Application Architects (they break down high-level enterprise designs)
42
Which architecture level requires the broadest perspective?
Enterprise Level (must align multiple solutions with organizational goals)
43
Which architecture level is most technically focused?
Application Level (deals with implementation details of a single system)
44
What is application architecture?
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.
45
What three elements comprise application architecture decisions?
1) Structural elements 2) Their interfaces 3) Composition/interplay between them
46
What factors guide architectural decisions?
Functionality, resilience, performance, reusability, economic/technology constraints.
47
How does good architecture reduce costs?
By identifying and eliminating redundancies in components/functionalities.
48
How does architecture improve efficiency?
By identifying gaps (missing functionalities, bottlenecks) early in design phase.
49
What advantage do modular systems provide?
Independent yet interoperable components enable easier maintenance/upgrades.
50
Difference between architecture and design patterns?
Architecture: high-level system structure (e.g., microservices). Design: component-level solutions (e.g., Singleton).
51
Key characteristic of layered architecture?
Horizontal separation (presentation, business logic, data layers).
52
Main drawback of monolithic architecture?
Components are interdependent - failure in one affects whole system.
53
How does SOA(service oriented architecture) differ from microservices?
SOA shares services across applications, microservices are independently deployable.
54
When is event-driven architecture ideal?
For real-time systems where flow depends on user actions/sensor outputs.
55
Key benefit of PWAs? Progressive web app
Cross-platform compatibility with native app-like experience.
56
First consideration when choosing architecture?
Required functionality and future expansion needs.
57
Why consider performance vs. scalability?
High performance = efficient tasks, scalability = handles growing workloads.
58
Cloud vs on-premise tradeoffs?
Cloud: flexible/scalable but security concerns. On-premise: more control but costly.
59
How does team skill level affect architecture choice?
Complex architectures (e.g., microservices) require specialized skills.
60
Key features of architecture tools like CodeSee?
Interactive diagrams, real-time collaboration, code dependency visualization.
61
Why might layered architecture become problematic?
High coupling between layers makes changes difficult.
62
When would microservices be overkill?
For small, simple applications where operational overhead outweighs benefits.
63
Why document architectural decisions?
To preserve rationale for future maintenance/updates.
64
What makes architecture "well-designed"?
Balances current needs with future adaptability and team capabilities.
65
Solution Level Architecture
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
What is Solution Architecture (SA)?
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
How does SA differ from Enterprise Architecture (EA)?
EA: Big-picture strategy, lifecycle management, cost reduction. SA: Detailed planning, solves specific business problems, aligns with EA.
68
What is the primary goal of SA?
Translate business needs into practical IT solutions while managing implementation risks and ensuring alignment with enterprise goals.
69
Key responsibilities of a Solution Architect?
Design technical solutions using industry standards. Create solution diagrams/documentation. Manage project timelines/risks. Liaise between business leaders and dev teams.
70
Critical skills for a Solution Architect?
Technical expertise (systems, apps, cloud). Communication (stakeholders + devs). Project management (budget/timeline).
71
How does a Solution Architect add value?
Increases ROI by selecting cost-effective tech, ensuring on-time delivery, and aligning solutions with market trends.
72
Top 3 benefits of SA?
Reduced costs (avoids redundant solutions). Faster implementation (clear guidelines). Risk mitigation (addresses gaps early).
73
Example of Information Security Architecture in SA?
Ensuring new systems comply with security regulations (e.g., GDPR) and documenting compliance measures.
74
How does SA improve Business Architecture?
Maps solutions to business capabilities (e.g., usability, security) to directly impact outcomes.
75
What deliverables does SA produce?
Solution architecture diagrams. Risk assessments. Implementation roadmaps. Cost/resource estimates.
76
Why is SA documentation critical?
Provides a single source of truth for dev teams, ensuring alignment with business goals and reducing miscommunication.
77
How do EA, SA, and Technical Architects collaborate?
EA sets strategy → SA designs solutions → Technical Architects implement. All ensure tech investments drive business value.
78
Why can’t EA replace SA?
EA lacks granularity; SA provides the detailed blueprints needed for execution.
79
When might SA fail?
If business requirements are unclear, or if architects lack technical/communication skills.
80
How does SA handle evolving tech trends?
Continuous evaluation of new tools (e.g., cloud/AI) to recommend scalable solutions.
81
Enterprise Level Architecture
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
What are the 4 key responsibilities of an Enterprise Architect?
Align IT strategy with business goals Design/maintain enterprise architecture Develop IT standards/policies Manage architectural risks
83
What are the 3 types of requirements architects must consider?
Vision (future direction) Functional (system capabilities) Performance (quality metrics)
84
Name 4 categories of quality attributes with examples
Business: Adaptability, compliance Security: Confidentiality, integrity Performance: Scalability, throughput Data: Interoperability, durability
85
What are the two main UML categories and their purposes?
Structural: Static system design (class/component diagrams) Behavioral: Dynamic interactions (sequence/activity diagrams)
86
Match Kruchten's views to their focus
Logical: End-user functionality Process: System concurrency/flow Development: Programmer perspective Physical: Network topology +1 Scenarios: Validation use cases
87
What do these symbols represent? (Show circle, arrow, nested boxes)
Circle: Provided interface Arrow: Required interface Nested boxes: Component decomposition
88
Decode these class diagram elements: (Show +name(), -attribute, #method())
Public, - Private, # Protected Underline = Static
89
What are key drawbacks of Multi-tier Client-Server SOA Microservices
Multi-tier: Monolithic risk Client-Server: Single point of failure SOA: Management complexity Microservices: Integration overhead
90
Compare these patterns' strengths Layered MVC Microservices Event-Driven
Layered: Separation of concerns MVC: UI/data separation Microservices: Independent scaling Event-Driven: Real-time processing
91
What are the 3 key object types in DDD?
- Value objects (immutable) - Entities (identity) - Aggregate roots (ownership)
92
Compare publish-subscribe vs event streaming
- Pub/sub: Immediate forwarding - Streaming: Persistent log
93
How should architects communicate with devs Stakeholders
- Devs: Clear technical rationale - Stakeholders: Business-focused presentations
94
What tools support these tasks? Back: - UML: - Documentation: - Analysis:
- UML: Lucidchart - Documentation: ArchiMate - Analysis: SWOT frameworks
95
What factors drive architectural choices?
- Business objectives - Quality attributes - Team capabilities - Cost/risk analysis
96
When would you choose microservices over monolith?
When needing: - Independent scaling - Polyglot persistence - Team autonomy (Not for simple systems)
97
What architecture fits: - E-commerce platform - IoT sensor network - Legacy modernization
- Layered + microservices - Event-driven - Strangler pattern
98
How assess technology risks?
- Impact analysis - Vendor stability - Team skills gap - Compliance checks
99
How adapt architecture for - AI/ML - Edge computing - Quantum
- AI/ML: Data pipeline design - Edge computing: Distributed nodes - Quantum: Post-quantum crypto
100
What are the 4 main types of architects in software development?
Enterprise Architect Solution Architect Software/Application Architect Technical Architect
101
What is the primary focus of an Enterprise Architect?
Aligning end-to-end technology strategies with business goals across the entire organization.
102
What types of questions does an EA typically address?
"Should we adopt SOA-based solutions?" "What's the benefit of unifying our ERP solution?" "What are the implications of hybrid cloud?"
103
What unique perspective does an EA bring?
Views the company holistically in terms of business entities, their relationships, and technology lifecycles
104
What distinguishes a Software Architect from other types?
Hands-on technical leadership focused on a specific application/project's design and standards.
105
What responsibilities does a Software Architect typically have?
Defining development standards Establishing design patterns Setting integration standards Answering technical implementation questions
106
How does a Solution Architect bridge between EA and Technical Architects?
Designs high-level solutions for specific business requirements within EA's framework, potentially spanning multiple applications.
107
What is the Solution Architect's main concern?
Ensuring product consistency across requirements, design, implementation and maintenance.
108
What characterizes a Technical Architect's role?
Deep expertise in a specific technology (e.g., Java, .NET) and responsibility for its implementation.
109
How does a Technical Architect differ from a Software Architect?
More focused on a single technology stack rather than overall application design.
110
Compare scope of work: EA - Solution - Software - Technical
EA: Entire enterprise - Solution: Multiple applications - Software: Single application - Technical: Specific technology
111
Match the architect to their time horizon: EA Solution Software Technical
EA: Long-term (3-5 years) Solution: Medium-term (1-2 years) Software: Project lifecycle Technical: Immediate implementation
112
How do these architects typically collaborate?
EA sets strategy → Solution designs within it → Software implements design → Technical handles specific tech
113
What types of decisions does each architect make?
- EA: Strategic technology direction - Solution: Integration approaches - Software: Application architecture - Technical: Implementation patterns
114
Which architect roles are typically found in - Startups - Mid-size - Enterprises
- Startups: Software Architect - Mid-size: Solution + Software - Enterprises: All four types
115
"ARCH" Role Summary
A - Aligns (Enterprise) R - Requirements (Solution) C - Code-level (Software) H - Hands-on-tech (Technical)
116
Typical career path progression
Developer → Technical → Software → Solution → Enterprise
117
What artifacts does each produce?
- EA: Technology roadmaps - Solution: Architecture diagrams - Software: Design patterns - Technical: Implementation guides
118
Who does each architect primarily work with?
- EA: C-level executives - Solution: Business units - Software: Dev teams - Technical: Engineers
119
How are these roles evolving?
- More overlap in agile organizations - Cloud specialization emerging - Increased need for business acumen