Software Architecture Essentials Course

Description

  • The course introduces the main concepts and context of software architecture. Participants will learn about practices such as essential requirements identification, architectural design, architectural documentation, and architecture analysis.
  • It provides a clear understanding of the main aspects of being a software architect, as well as different types of architects (e.g. enterprise, solution, software, and system).
  • It reveals a structured way of collecting and documenting the business requirements with an architectural impact (i.e. non-functional requirements) to be quantifiable, measurable, and testable.
  • It includes various design techniques in light of the Quality Attributes which help to create software architecture.
  • It teaches you how to create proper and structured architectural documentation, in compliance with its purpose and beneficiaries (i.e. users).
  • Evaluating software architecture should be part of each project, hence we will discuss different techniques that might help you to mitigate the architectural risk.
  • It gives a recipe to conduct a healthy evaluation across different frameworks and libraries which might fit the project, to pick up the most suitable and appropriate based on the environmental context.
  • The course is a blend of lectures, individual and team exercises, and interactive workshops.

Agenda

Architecture Context Diagram

Software architect role and responsibilities

Essential architect’s skills

Architectural activities

  • Reference architecture
  • Architectural decision record
  • Technology radar
  • Prototype/skeleton
  • Code and review

The software architect in Agile projects

What kind of project needs an architect?

Architect/Architecture in agile environments

Stakeholders. Business Goals. Quality Attributes

  • Architecturally Significant Requirements
  • Quality Attributes vs. Functional Requirements
  • Quality Attribute Scenario

Basic tactics for designing the software architecture

  • Availability
  • Performance
  • Scalability
  • Security
  • Modifiability
  • Testability
  • Usability

Documenting the software architecture

  • Architectural Description
  • Views & Viewpoints
  • Kruchten’s 4+1 View Set
  • Rozanski & Woods Viewpoint Set
  • Simon Brown C4 Model
  • Hierarchical Documentation Model
  • Docs as Code

Technologies and frameworks from an architectural perspective

  • Evaluation matrix

Evaluating the software architecture

Duration

  • 16 hours

Target Audience

  • software developers
  • technical leaders
  • software/solution architects
  • test engineers
  • business analysts with a technical background or passionate about technology

Attendees’ Feedback

I liked the structure of the course, the fact that we applied the concepts we learned by following a methodology creating an architecture starting from the requirements.
The course helped me understand the architectural concepts and the role of an architect.
The course helped me to learn the terminology better, by doing exercises, also with book recommendations, describing architectural tactics and generic patterns.
I was clarified regarding the diagrams (views and viewpoints) and regarding the applicability of some quality attributes.
The trainer is a true professional. He explained everything in detail as best as he could.
I think that diagrams are most useful. I think that they should be implemented for every project and presented to developers when they see a project for the first time, as it is easier to imagine and understand how a project works.

People from the following companies attended my courses:

Enroll

Note: At the moment this course is available only for companies, teams, or groups of students. The individual subscription (i.e. single person) is not an option at the moment.