Video summary
🚀 Clase 01: Arquitectura de Software | MaestrĂa UNMSM
Main summary
Key takeaways
Main ideas, concepts, and lessons
1) Course purpose and instructor framing
- The instructor introduces the “Software Architecture” course for a Master’s program (UNMSM).
- He shares personal credentials (also holds a Master’s from San Marcos) and explains that the course will integrate:
- academic architecture methods, and
- real-world industry practices drawn from students’ daily experiences across companies.
2) Student introductions (context for how the course will be received)
- Students briefly present their backgrounds and experience with different architectures, such as:
- monolith, MVC, layered/hexagonal, clean architecture, microservices.
- Common themes include:
- Architecture experience ranges from practical implementation to theoretical exposure.
- Many students have worked in banks, public sector, mining, GIS systems, and other domains.
- Several students are specifically interested in:
- microservices vs modular monolith,
- clean/hexagonal architecture,
- working with legacy systems,
- event-driven patterns and CQRS/event sourcing,
- cloud deployment and scalability.
3) Core constraint / “how you will build the project”
The instructor sets explicit project constraints for the course final demonstration:
-
Primary required methodology
- Domain-Driven Design (DDD) must be applied in the course project.
-
Event-driven requirements inside DDD
- Use domain events (important facts that occur in the domain).
- Publish/register those domain events through a message broker.
- Communication is asynchronous, so the project must handle eventual consistency (not immediate consistency).
-
Communication style (demo requirement)
- Demonstrate asynchronous communication using message passing via domain events.
- Explain/implement how systems stay consistent under eventual consistency.
-
Design choice allowed (not a restriction)
- The final architecture can be implemented as either:
- microservices, or
- modular monolith.
- The instructor emphasizes modular monolith as a trend when microservices management becomes complex at large scale.
- The final architecture can be implemented as either:
4) Patterns/topics the course will cover (as part of DDD + event-driven architecture)
The instructor previews key topics they will implement and evaluate:
-
DDD + Domain Events + Message Broker + Eventual Consistency
- Domain events trigger async communication between domains/systems.
- Event-driven architecture is central.
-
CQRS (Command Query Responsibility Segregation)
- Separate write and read responsibilities.
- Works alongside eventual consistency and event-driven design.
-
Event Sourcing (with projections)
- System state is represented via events rather than current state only.
- Reads are produced via projections generated from those events.
-
Possible hybrid consistency approach
- The course encourages asynchronous patterns for demonstrations, while conceptually allowing a mix where some parts could be immediate-consistency and others eventual.
5) Course structure and deliverables
The syllabus is organized by units and weeks, increasing emphasis on practical work:
-
Cycle 1 (fundamentals)
- Covers architecture fundamentals and the design process:
- Architectural design process and drivers
- Quality attributes
- Architectural requirements
- Architectural design method: ADD (Attribute-Driven Design)
- Covers architecture fundamentals and the design process:
-
Week 8 deliverable
- First progress report / advance of the final project.
- Students form groups (3–4 groups total; group size depends on enrollment).
-
Weeks 9–11 (practical implementation activity)
- Implement patterns and concepts in code/proofs of concept:
- event-driven architecture
- DDD concepts
- CQRS
- event sourcing
- additional engineering practices (e.g., clean code)
- Deliverable emphasis: demos should include not only architecture diagrams, but also “proofs of concept.”
- Implement patterns and concepts in code/proofs of concept:
-
Unit 3 (cloud deployment)
- Weeks roughly 12–13 (described as a two-week cloud-focused topic)
- Deploy proofs of concept to:
- Amazon AWS
- Microsoft Azure
- Google Cloud
-
Unit 4 (hybrid solutions)
- Hybrid solutions involving on-prem/cloud premises.
-
Week 15
- Presentation of final work.
-
Week 16
- Final exam.
6) How the architecture will be designed (methodology)
A major academic method is highlighted:
- ADD (Attribute-Driven Design)
- Students design architecture using architectural “drivers.”
- The method helps define:
- architectural drivers,
- quality attributes,
- scenarios for quality attribute evaluation,
- architectural diagram sketches.
- Students then apply the C4 model (for diagrams) and may use UML/other diagramming conventions.
7) Evaluation, performance, and participation (important rules)
The instructor explains grading mechanics:
-
Performance grade (participation-based)
- 15% assigned individually based on in-class participation and small tasks.
- If students are given small activities (e.g., edits to models/diagrams or small C4 changes) and don’t submit evidence, it affects their score.
-
Weighting across the course
- Week 8 partial work: 20%
- Final project (Week 15): 30%
- Final exam (Week 16): 35%
- Minimum passing grade mentioned: 14
- Absences policy: >30% absences leads to failing the course.
-
Final exam format
- Typically a virtual exam consisting of a case, where students apply course concepts to answer questions.
8) Conceptual foundations taught in the second part of the session
The instructor begins conceptual lectures about software engineering and architecture:
-
Software engineering definition (formal)
- A systematic, disciplined, quantifiable approach applied across the software lifecycle:
- requirements → development,
- operation,
- maintenance.
- A systematic, disciplined, quantifiable approach applied across the software lifecycle:
-
Why software engineering exists
- Avoids ad hoc/disordered development.
- Controls complexity via methods, standards, and metrics.
-
Key distinction: architecture vs design
- “Design” can be ambiguous, so it is treated as:
- architecture (high-level structure and integration between components/modules and quality attribute satisfaction),
- detailed design (internal component-level implementation, such as classes and methods).
- Emphasis statement:
- “All architecture is design, but not all design is architecture.”
- “Design” can be ambiguous, so it is treated as:
-
Quality attributes as architectural drivers
- Quality attributes represent non-functional requirements.
- Architecture should be judged by whether it satisfies its architectural drivers and quality attribute scenarios.
- Trade-offs are inevitable among quality attributes depending on context and constraints.
-
Architecture as structures
- Architecture is framed as a set of structures (elements, relationships, properties) used to satisfy drivers.
- Internal implementation details belong more to design than architecture.
Methodology / instructions (detailed bullet format)
A) Build the final project using required constraints
- Apply Domain-Driven Design (DDD) to the project.
- Identify and model domain events (important facts in the domain).
- Publish/store those domain events using a message broker.
- Implement behavior with asynchronous communication:
- demonstrations must show event-driven message passing.
- Handle eventual consistency:
- ensure the system remains correct over time under async updates.
- Decide (allowed option) the deployment/structure style:
- either microservices
- or modular monolith
- Demonstrate CQRS + Event Sourcing in the implementation/proof of concept:
- separate read/write paths (CQRS),
- store state as events,
- generate read models via projections (event sourcing).
B) Use architecture design approach in the course
- Design architecture using ADD (Attribute-Driven Design):
- define architectural drivers such as:
- quality attribute scenarios,
- constraints,
- concerns,
- primary functionality,
- purpose/value to the customer.
- produce architectural diagram sketches.
- define architectural drivers such as:
- Use the C4 model (and UML/other diagrams if needed) for documentation.
C) Deliverables and reporting cadence
- Create project groups (3–4 groups max, depending on enrollment).
- By Week 8:
- submit the first progress report (advance of final project).
- Weeks 9–11:
- implement proofs of concept demonstrating architectural patterns in code.
- Cloud phase:
- deploy proofs of concept to AWS/Azure/Google Cloud.
- Week 15:
- present final work.
- Week 16:
- take the final exam (case-based virtual assessment).
D) Participation tasks (performance grade)
- Participate actively in class Q&A and assigned micro-activities.
- If tasks are assigned (e.g., small edits to C4 diagrams/models):
- submit evidence (e.g., repository updates).
- If evidence is not submitted, it may impact the 15% individual performance grade.
Speakers / sources featured (identified)
Speakers / people
- Course instructor / professor (name unclear in subtitles; referred to repeatedly as “professor/EfraĂn/EfraĂn”)
- Chano HuamĂłn Landa
- Daniel Palomino
- Diego Aliaga (also shown as Diego Oiaga / Aliaga)
- Giovana Guaita
- J. Felix / Hans Christian (shown in subtitles)
- Iván Paredes
- Jimena Ruiz
- Lino Ramos
- MartĂn PĂ©rez
- Micah Quintanilla (also “Micah Titus Quintanilla”)
- Nestor Hernandez
- Orlando Vera
- Robert Vivar (also shown as “Rob Ibar”)
- Robin Ortiz
- Ronald Alexander Guillermo Navarro
- Aurelio Yoshio (also shown as Aurelio Oniku / Onuki)
- Rubén Roque
- Billy Aguiña Curagua
- Fredy Ugarte / Frediailla
- Marcelo LĂłpez (also shown as Marchelo LĂłpez)
- Victor Alexis (also shown as Victor)
- EvĂt Guapayá (also shown as Evit/Evid/“Evita”)
- Adrián Antonio / Adrian
- Franklin / Franklin Arturo
- Rodolfo Fernández Hamán
- Cruzcla Quispe (also shown as Cruz/“Cruzcla”)
- Y. Quintana Yang (mentioned as not present)
- Additional student voices: several other attendees are referenced, but names/audio presence are unclear due to subtitle errors.
Institutional / source references (books/standards/institutions)
- IEEE / SEI: Software Engineering Institute (affiliated with Carnegie Mellon University)
- IESE / Institute of Engineering of Software (referenced for ADD and ADD method)
- Carnegie Mellon University
- C4 model
- UML
- ADD (Attribute-Driven Design) method
- SWEBOK (Software Engineering Body of Knowledge) including:
- v3 (noted as free download),
- v4 (noted as draft/beta)
- Designing Software Architectures (Humberto Cervantes and Rick Kasman) — second edition (recommended/used in the course)
- Mentioned standards/history:
- ISO/IEC 12207 (software lifecycle processes)
- Agile Manifesto (2001)
Places / platforms mentioned
- Microsoft Teams (materials, syllabus location, recordings)
- Cloud providers: AWS, Azure, Google Cloud
- Message broker (specific broker name not clearly stated in the summary)