@mytechtoday/augment-extensions 1.2.0 → 1.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/AGENTS.md +35 -3
  2. package/README.md +3 -3
  3. package/augment-extensions/domain-rules/software-architecture/README.md +143 -0
  4. package/augment-extensions/domain-rules/software-architecture/examples/banking-layered.md +961 -0
  5. package/augment-extensions/domain-rules/software-architecture/examples/ecommerce-microservices.md +990 -0
  6. package/augment-extensions/domain-rules/software-architecture/examples/iot-eventdriven.md +882 -0
  7. package/augment-extensions/domain-rules/software-architecture/examples/monolith-to-microservices-migration.md +703 -0
  8. package/augment-extensions/domain-rules/software-architecture/examples/serverless-imageprocessing.md +957 -0
  9. package/augment-extensions/domain-rules/software-architecture/examples/trading-eventdriven.md +747 -0
  10. package/augment-extensions/domain-rules/software-architecture/module.json +119 -0
  11. package/augment-extensions/domain-rules/software-architecture/rules/challenges-solutions.md +763 -0
  12. package/augment-extensions/domain-rules/software-architecture/rules/definitions-terminology.md +409 -0
  13. package/augment-extensions/domain-rules/software-architecture/rules/design-principles.md +684 -0
  14. package/augment-extensions/domain-rules/software-architecture/rules/evaluation-testing.md +1381 -0
  15. package/augment-extensions/domain-rules/software-architecture/rules/event-driven-architecture.md +616 -0
  16. package/augment-extensions/domain-rules/software-architecture/rules/fundamentals.md +306 -0
  17. package/augment-extensions/domain-rules/software-architecture/rules/industry-architectures.md +554 -0
  18. package/augment-extensions/domain-rules/software-architecture/rules/layered-architecture.md +776 -0
  19. package/augment-extensions/domain-rules/software-architecture/rules/microservices-architecture.md +503 -0
  20. package/augment-extensions/domain-rules/software-architecture/rules/modeling-documentation.md +1199 -0
  21. package/augment-extensions/domain-rules/software-architecture/rules/monolithic-architecture.md +351 -0
  22. package/augment-extensions/domain-rules/software-architecture/rules/principles.md +556 -0
  23. package/augment-extensions/domain-rules/software-architecture/rules/quality-attributes.md +797 -0
  24. package/augment-extensions/domain-rules/software-architecture/rules/scalability-performance.md +1345 -0
  25. package/augment-extensions/domain-rules/software-architecture/rules/security-architecture.md +1039 -0
  26. package/augment-extensions/domain-rules/software-architecture/rules/serverless-architecture.md +711 -0
  27. package/augment-extensions/domain-rules/software-architecture/rules/skills-development.md +568 -0
  28. package/augment-extensions/domain-rules/software-architecture/rules/tools-methodologies.md +961 -0
  29. package/augment-extensions/workflows/beads/examples/complete-workflow-example.md +8 -8
  30. package/augment-extensions/workflows/beads/rules/best-practices.md +2 -2
  31. package/augment-extensions/workflows/beads/rules/file-format.md +4 -4
  32. package/augment-extensions/workflows/beads/rules/manual-setup.md +4 -4
  33. package/augment-extensions/workflows/beads/rules/workflow.md +3 -3
  34. package/modules.md +40 -3
  35. package/package.json +1 -1
@@ -0,0 +1,409 @@
1
+ # Software Architecture Definitions and Terminology
2
+
3
+ ## Overview
4
+
5
+ This document defines key architectural concepts and terminology based on ISO/IEC 42010 standard, establishing a common vocabulary for architectural discussions.
6
+
7
+ ---
8
+
9
+ ## Knowledge
10
+
11
+ ### Architecture vs. Design
12
+
13
+ **Software Architecture**
14
+ - High-level structure of software system
15
+ - Fundamental organization of components and relationships
16
+ - Strategic decisions with long-term impact
17
+ - Difficult and costly to change
18
+ - Examples: microservices vs. monolithic, event-driven vs. request-response
19
+
20
+ **Software Design**
21
+ - Detailed specification of components
22
+ - Implementation-level decisions
23
+ - Tactical decisions with localized impact
24
+ - Easier to change and refactor
25
+ - Examples: class design, algorithm selection, data structures
26
+
27
+ **Key Differences**
28
+
29
+ | Aspect | Architecture | Design |
30
+ |--------|-------------|--------|
31
+ | **Scope** | System-wide | Component-level |
32
+ | **Abstraction** | High-level | Low-level |
33
+ | **Impact** | Strategic, long-term | Tactical, short-term |
34
+ | **Change Cost** | High | Low to moderate |
35
+ | **Stakeholders** | Business + technical | Primarily technical |
36
+ | **Decisions** | What and why | How |
37
+
38
+ ### Architectural Views (ISO/IEC 42010)
39
+
40
+ **Architecture View**
41
+ - Representation of system from perspective of related concerns
42
+ - Uses specific viewpoint conventions
43
+ - Addresses stakeholder concerns
44
+ - Multiple views provide complete picture
45
+
46
+ **Common Viewpoints**
47
+
48
+ **Logical View**
49
+ - Functional requirements
50
+ - Object-oriented decomposition
51
+ - Class diagrams, sequence diagrams
52
+ - Stakeholders: developers, architects
53
+
54
+ **Process View**
55
+ - Runtime behavior
56
+ - Concurrency, synchronization
57
+ - Activity diagrams, state machines
58
+ - Stakeholders: system engineers, performance analysts
59
+
60
+ **Development View**
61
+ - Code organization
62
+ - Module structure, dependencies
63
+ - Package diagrams, component diagrams
64
+ - Stakeholders: developers, build engineers
65
+
66
+ **Physical View**
67
+ - Deployment topology
68
+ - Hardware, network configuration
69
+ - Deployment diagrams
70
+ - Stakeholders: system engineers, operators
71
+
72
+ **Scenarios (Use Case View)**
73
+ - System behavior from user perspective
74
+ - Use cases, user stories
75
+ - Validates other views
76
+ - Stakeholders: end users, business analysts
77
+
78
+ ### Quality Attributes
79
+
80
+ **Definition**
81
+ - Non-functional requirements
82
+ - System properties beyond functionality
83
+ - Measurable characteristics
84
+ - Drive architectural decisions
85
+
86
+ **Categories**
87
+
88
+ **Runtime Quality Attributes**
89
+ - Performance (throughput, latency, response time)
90
+ - Scalability (horizontal, vertical)
91
+ - Availability (uptime, fault tolerance)
92
+ - Reliability (MTBF, MTTR)
93
+ - Security (confidentiality, integrity, availability)
94
+
95
+ **Design-Time Quality Attributes**
96
+ - Maintainability (ease of modification)
97
+ - Testability (ease of testing)
98
+ - Modularity (separation of concerns)
99
+ - Reusability (component reuse)
100
+ - Portability (platform independence)
101
+
102
+ **Business Quality Attributes**
103
+ - Cost (development, operational)
104
+ - Time to market
105
+ - Lifetime (expected system lifespan)
106
+ - Targeted market (user base)
107
+
108
+ ---
109
+
110
+ ## Skills
111
+
112
+ ### Distinguishing Architecture from Design
113
+
114
+ **Architectural Decisions (Strategic)**
115
+ ```
116
+ ✅ Choosing microservices vs. monolithic
117
+ ✅ Selecting database type (SQL vs. NoSQL)
118
+ ✅ Defining service boundaries
119
+ ✅ Choosing communication patterns (sync vs. async)
120
+ ✅ Selecting deployment model (cloud vs. on-premise)
121
+ ```
122
+
123
+ **Design Decisions (Tactical)**
124
+ ```
125
+ ✅ Implementing specific algorithm
126
+ ✅ Choosing data structure (list vs. set)
127
+ ✅ Designing class hierarchy
128
+ ✅ Selecting design pattern (factory, observer)
129
+ ✅ Naming conventions and code style
130
+ ```
131
+
132
+ ### Creating Architectural Views
133
+
134
+ **4+1 View Model Process**
135
+
136
+ 1. **Identify Stakeholders**: Determine who needs what information
137
+ 2. **Select Viewpoints**: Choose relevant views (logical, process, development, physical)
138
+ 3. **Create Views**: Document using appropriate notation (UML, C4)
139
+ 4. **Validate with Scenarios**: Ensure views address use cases
140
+ 5. **Maintain Consistency**: Keep views synchronized
141
+
142
+ **View Selection Criteria**
143
+ - Stakeholder concerns
144
+ - System complexity
145
+ - Project phase (design, implementation, deployment)
146
+ - Regulatory requirements
147
+
148
+ ### Defining Quality Attributes
149
+
150
+ **SMART Quality Attributes**
151
+
152
+ **Specific**: Clearly defined, unambiguous
153
+ **Measurable**: Quantifiable metrics
154
+ **Achievable**: Realistic given constraints
155
+ **Relevant**: Aligned with business goals
156
+ **Time-bound**: Defined timeframe
157
+
158
+ **Examples**
159
+
160
+ ❌ **Vague**: "System should be fast"
161
+ ✅ **SMART**: "API response time < 200ms for 95th percentile under 1000 req/s"
162
+
163
+ ❌ **Vague**: "System should be secure"
164
+ ✅ **SMART**: "Zero critical vulnerabilities in OWASP Top 10, penetration test annually"
165
+
166
+ ❌ **Vague**: "System should be available"
167
+ ✅ **SMART**: "99.9% uptime (< 8.76 hours downtime/year), measured monthly"
168
+
169
+ ---
170
+
171
+ ## Examples
172
+
173
+ ### Example 1: E-Commerce Platform Views
174
+
175
+ **Logical View**
176
+ ```
177
+ Components:
178
+ - Product Catalog
179
+ - Shopping Cart
180
+ - Order Management
181
+ - Payment Processing
182
+ - User Authentication
183
+
184
+ Relationships:
185
+ - Cart depends on Catalog
186
+ - Order depends on Cart and Payment
187
+ - All depend on Authentication
188
+ ```
189
+
190
+ **Process View**
191
+ ```
192
+ Processes:
193
+ - Web Server (stateless, multiple instances)
194
+ - Background Job Processor (order fulfillment)
195
+ - Cache Server (Redis)
196
+ - Database (master-slave replication)
197
+
198
+ Concurrency:
199
+ - Load balancer distributes requests
200
+ - Job queue for async processing
201
+ ```
202
+
203
+ **Development View**
204
+ ```
205
+ Modules:
206
+ - frontend/ (React SPA)
207
+ - backend/
208
+ - api/ (REST endpoints)
209
+ - services/ (business logic)
210
+ - models/ (data models)
211
+ - shared/ (common utilities)
212
+
213
+ Dependencies:
214
+ - Frontend → Backend API
215
+ - Services → Models
216
+ - All → Shared
217
+ ```
218
+
219
+ **Physical View**
220
+ ```
221
+ Deployment:
222
+ - CDN (static assets)
223
+ - Load Balancer (AWS ALB)
224
+ - Application Servers (EC2 Auto Scaling Group)
225
+ - Database (RDS Multi-AZ)
226
+ - Cache (ElastiCache)
227
+ - Object Storage (S3)
228
+ ```
229
+
230
+ ### Example 2: Quality Attribute Specifications
231
+
232
+ **Performance**
233
+ ```
234
+ Attribute: Response Time
235
+ Metric: 95th percentile API response time
236
+ Target: < 200ms
237
+ Measurement: Application Performance Monitoring (APM)
238
+ Validation: Load testing with 1000 concurrent users
239
+ ```
240
+
241
+ **Scalability**
242
+ ```
243
+ Attribute: Horizontal Scalability
244
+ Metric: Requests per second (RPS)
245
+ Target: Support 10,000 RPS with linear scaling
246
+ Measurement: Load testing, auto-scaling metrics
247
+ Validation: Stress testing with gradual load increase
248
+ ```
249
+
250
+ **Availability**
251
+ ```
252
+ Attribute: System Uptime
253
+ Metric: Percentage uptime
254
+ Target: 99.9% (three nines)
255
+ Measurement: Uptime monitoring, incident tracking
256
+ Validation: Monthly uptime reports, SLA compliance
257
+ ```
258
+
259
+ **Security**
260
+ ```
261
+ Attribute: Authentication Security
262
+ Metric: Zero unauthorized access incidents
263
+ Target: No breaches, OWASP Top 10 compliance
264
+ Measurement: Security audits, penetration testing
265
+ Validation: Quarterly security assessments
266
+ ```
267
+
268
+ ---
269
+
270
+ ## Understanding
271
+
272
+ ### Why Distinguish Architecture from Design?
273
+
274
+ **Communication Clarity**
275
+ - Different stakeholders care about different levels
276
+ - Business stakeholders: architecture (strategic)
277
+ - Developers: design (tactical)
278
+ - Clear separation prevents confusion
279
+
280
+ **Decision Impact**
281
+ - Architectural decisions are expensive to change
282
+ - Design decisions are easier to refactor
283
+ - Understanding impact guides decision-making process
284
+
285
+ **Skill Specialization**
286
+ - Architects focus on system-wide concerns
287
+ - Designers focus on component implementation
288
+ - Both roles require different expertise
289
+
290
+ ### The Value of Multiple Views
291
+
292
+ **No Single View is Sufficient**
293
+ - Each view addresses specific concerns
294
+ - Complete understanding requires multiple perspectives
295
+ - Views must be consistent and synchronized
296
+
297
+ **View Selection Trade-offs**
298
+ - More views = more documentation overhead
299
+ - Fewer views = incomplete understanding
300
+ - Balance: create views that add value
301
+
302
+ **View Maintenance**
303
+ - Views must evolve with system
304
+ - Outdated views are worse than no views
305
+ - Automation helps (code → diagrams)
306
+
307
+ ### Quality Attributes Drive Architecture
308
+
309
+ **Architecture is About Trade-offs**
310
+ - Cannot optimize all quality attributes simultaneously
311
+ - Performance vs. maintainability
312
+ - Security vs. usability
313
+ - Cost vs. scalability
314
+
315
+ **Quality Attribute Scenarios**
316
+ - Concrete scenarios make attributes testable
317
+ - Example: "System handles 1000 concurrent users with < 200ms response time"
318
+ - Scenarios validate architectural decisions
319
+
320
+ **Measurability is Critical**
321
+ - "Fast" is not measurable
322
+ - "< 200ms for 95th percentile" is measurable
323
+ - Metrics enable validation and improvement
324
+
325
+ ---
326
+
327
+ ## Best Practices
328
+
329
+ ### Architectural Documentation
330
+
331
+ ✅ **Use Standard Notations**: UML, C4 model, ArchiMate
332
+ ✅ **Keep Views Synchronized**: Ensure consistency across views
333
+ ✅ **Automate Where Possible**: Generate diagrams from code
334
+ ✅ **Version Control**: Track architectural changes
335
+ ✅ **Review Regularly**: Update as system evolves
336
+ ❌ **Over-Document**: Avoid excessive detail
337
+ ❌ **Stale Documentation**: Outdated docs are harmful
338
+
339
+ ### Quality Attribute Definition
340
+
341
+ ✅ **Quantify Attributes**: Use measurable metrics
342
+ ✅ **Prioritize Attributes**: Not all are equally important
343
+ ✅ **Validate Early**: Test attributes in prototypes
344
+ ✅ **Monitor Continuously**: Track metrics in production
345
+ ❌ **Vague Requirements**: "Fast", "secure", "scalable"
346
+ ❌ **Ignore Trade-offs**: Acknowledge conflicts
347
+
348
+ ### Stakeholder Communication
349
+
350
+ ✅ **Tailor Views**: Different views for different stakeholders
351
+ ✅ **Use Scenarios**: Concrete examples aid understanding
352
+ ✅ **Visualize**: Diagrams over text
353
+ ✅ **Iterate**: Refine based on feedback
354
+ ❌ **Technical Jargon**: Avoid with non-technical stakeholders
355
+ ❌ **One-Size-Fits-All**: Different audiences need different information
356
+
357
+ ---
358
+
359
+ ## Common Pitfalls
360
+
361
+ ### Architecture vs. Design Confusion
362
+
363
+ **Problem**: Treating all decisions as architectural
364
+ **Impact**: Over-engineering, analysis paralysis
365
+ **Solution**: Apply decision impact test (strategic vs. tactical)
366
+
367
+ **Problem**: Ignoring architectural decisions
368
+ **Impact**: Technical debt, costly refactoring
369
+ **Solution**: Identify and document architectural decisions (ADRs)
370
+
371
+ ### View Inconsistencies
372
+
373
+ **Problem**: Views contradict each other
374
+ **Impact**: Confusion, implementation errors
375
+ **Solution**: Regular consistency checks, automated validation
376
+
377
+ **Problem**: Views become outdated
378
+ **Impact**: Documentation doesn't match reality
379
+ **Solution**: Continuous documentation, code-to-diagram tools
380
+
381
+ ### Quality Attribute Neglect
382
+
383
+ **Problem**: Focus only on functional requirements
384
+ **Impact**: System doesn't meet performance, security, scalability needs
385
+ **Solution**: Define quality attributes early, validate continuously
386
+
387
+ **Problem**: Unmeasurable quality attributes
388
+ **Impact**: Cannot validate if requirements are met
389
+ **Solution**: Use SMART criteria for all quality attributes
390
+
391
+ ---
392
+
393
+ ## References
394
+
395
+ - **ISO/IEC 42010:2011** - Systems and software engineering — Architecture description
396
+ - **Software Architecture in Practice** (Bass, Clements, Kazman) - Quality attributes
397
+ - **Documenting Software Architectures** (Clements et al.) - Views and viewpoints
398
+ - **The 4+1 View Model** (Philippe Kruchten) - Architectural views
399
+
400
+ ---
401
+
402
+ ## Related Topics
403
+
404
+ - [Fundamentals](./fundamentals.md) - Core architectural elements
405
+ - [Principles](./principles.md) - Architectural principles
406
+ - [Quality Attributes](./quality-attributes.md) - Detailed quality attribute guidance
407
+ - [Modeling and Documentation](./modeling-documentation.md) - Documentation techniques
408
+
409
+