4.1 out of 5
4.1
15 reviews on Udemy

Learn Software Architecture In-depth and Start Architecting

Create Software Architecture Using Effective Architecting Approaches
Instructor:
SENSEI Technologies Pvt Ltd
129 students enrolled
English
Move into a career in software architecture
Become a better architect
Appreciate the different types of architectures in your organization
Capture software architecture requirements effectively
Create effective architecture for your software system
Differentiate good architecture from an ineffective architecture
Document software architectures using 5 significant perspectives
Effectively communicate software architecture to stakeholders
Perform architecture work in agile or iterative software lifecycles
Select and apply appropriate architectural styles and architectural patterns
Apply microservices architectural style
Apply serverless computing architecture pattern
Apply containerization architecture pattern
Apply well-known architecture tactics
Differentiate between software architecture and software design
Apply the right architecture tactics for the right requirement pattern

Software architecture is a broad subject and there are various aspects to it. To be effective as a software architect you need good all-round grip on the subject. This course will help you learn software architecture comprehensively starting from the basics all the way to its science, so that you can confidently apply the techniques to create your architectures.

Learn and Master Software Architecture in this Comprehensive Course

  • Learn Significant Architecture Perspectives: Functional Architecture, Logical Architecture, Technical Architecture, Physical Architecture, Implementation Architecture

  • Differentiate Enterprise Architecture, Solution Architecture, and Software Architecture

  • Capture Architecture Attributes, Architecture Requirements, Architecture Scenarios

  • Learn Architectural Styles, Architectural Patterns, Architecture Principles, Standards

  • Learn Microservices, Containers, Serverless Computing

  • Apply Architecture Tactics

  • Differentiate Software Design and Software Architecture

       

Must-have Knowledge of Software Architecture

Well-known software systems you have come across or used, have effective software architectures underlying them. It is software architecture that primarily enables the software to achieve its expected qualities such as usability, reliability, performance, scalability, and security. Addressing software architecture holistically from concepts, methods, principles, all the way to human aspects is important to help you acquire the knowledge more effectively.

Solid knowledge of software architecture is must-have for you if you want to build your career as an architect in the IT industry. There is good demand for knowledgeable software architects, and even if you are not playing the architect role now, knowing software architecture will make it easier for you to understand the software system well to effectively work on it at various levels.

Contents and Overview

How do I become an outstanding software architect? What is the importance of architecture while working with software systems? How do I capture architecture requirements for my software system? What are the different levels of architecture that I might work with? How do I arrive at architectural decisions? How do I appreciate the software architecture of a system?

You can get answers to your above questions and more in this course. 

We have designed this comprehensive course on software architecture to be easily understood by people at all experience levels. This course contains 38 lectures and over 7 hours of content which you can follow at your own pace to master the subject of software architecture. To ensure your top-class learning, this course has been prepared and delivered by practicing architects, each with over 15 years of architecting experience in the Information Technology (IT) industry.

For your smooth convenient learning, we have logically broken this course down into 10 sections and each section closes with a quiz helping you refresh your learning. You will learn both the theory and practical aspects of software architecture.

The lectures of this course are in the voice of Sensei Technologies team member based in India and the accent of the voice is largely Indian English. However, to make it easier for you to follow the voice narration in the lectures, we have enabled captions (sub-titles) (English only) on all the lectures in this course.  To see the captions, while going through any lecture in this course, please click on the “CC” button on the bottom right of the lecture screen and select “English US“.  Captions (sub-titles) will be helpful to you – please use this feature.

In this course, you will start with learning the basic concepts of architecture.

You will then learn, using the approach of architecture scenarios involving architecture attributes, how to capture architecture requirements. You will see examples of architecture scenarios.

After that, you will learn all the significant architecture perspectives used to create and completely document software architecture. You will see examples of representations of software architecture based on these significant architecture perspectives.

You will then learn the different techniques used in coming up with the software architecture, addressing the different significant perspectives of functional architecture, logical architecture, technical architecture, physical architecture, and implementation architecture. The course will take you through architecture styles, architecture patterns, architecture principles, standards, and architecture tactics, all of which are used in arriving at your architecture. You will learn learn microservices architectural style, and serverless computing and containerization architecture patterns, explained with examples.

You will, appreciate the idea of abstraction and abstraction levels, differentiate the different architectures in your enterprise such as enterprise architecture, solution architecture, and software architecture, and also be able to link them.

After that, you will learn the full architecture process and the steps followed in it, and how to adapt the architecture process depending on the software development life-cycle processes such as agile, iterative.

And, finally, you will understand the architect role in detail with the recommended skills.

By the end of this course, you will have valuable knowledge and skills, to create effective architectures for your software systems, and to understand the architectures of existing software systems and improve those architectures in a short period of time.

Introduction to the Course

1
Introduction

You will get an idea of the broad topics that we will cover in this course and the roles this course is suitable for.

2
Quiz for Section 1

Introduction

Architecture Concepts

1
Architecture Concepts

You will learn the basics, the meaning, and the importance of software architecture.

  • Properties of good architecture
  • Forces acting on software and its architecture
2
Quiz for Section 2

Concepts

Architecture Requirements

1
Nature of Architecture Requirements

You will learn what are architecture requirements or architecturally significant requirements?

  • How they are part of software requirements?
  • Different type of software requirements
  • What are quality attributes of software? Eg. Reliability
  • What are quality attribute requirements or non-functional requirements?
  • Elements through which architecture requirements are expressed
2
Attributes and Scenarios

You will learn about business goals and architecture attributes, and how to capture architecture requirements in terms of them as architecture scenarios.

  • Why business goals are important to the architect
  • Architecture attributes explained - performance, scalability, availability, recoverability, usability, accessibility portability, interoperability, manageability, security maintainability, flexibility
  • Architecture scenarios for availability and scalability
3
Other Forces

You will learn about other forces impacting the software system architecture such as constraints, architecture principles, and standards.

  • Architecture scenarios for performance
  • Types of architecture constraints
  • Interaction of forces among architecture attributes
4
Quiz for Section 3

Requirements

Architecture Perspectives

1
Architecture Representations

This lecture initiates you into how to document software architecture. It informs you about the well-known architecture content frameworks used to represent architectures.

  • Importance of architecture perspectives
  • Overview of 4+1 view, Zachman framework, ISO RM-ODP, Bass
2
Significant Architecture Perspectives - part 1

You will learn three of the five significant perspectives used for effective software architecture creation and documentation

  • Functional architecture
  • Logical architecture
  • Technical architecture
3
Significant Architecture Perspectives - part 2

You will learn the remaining two of the five significant perspectives used for effective software architecture creation and documentation

  • Physical architecture
  • Implementation architecture
4
Levels of Architecture

This lecture helps you understand and differentiate the different levels of architecture in an enterprise, and appreciate the value of abstraction in architecture

  • Enterprise architecture
  • Solution architecture
  • Software architecture
5
Examples of Architecture Perspectives

In this lecture, you will see documented examples for the significant architecture perspectives, for a fictitious software system.

6
The Architecture Deliverable

You will learn what is the output or deliverable of the software architecture work

  • Structure of software architecture document
  • Sections documented in the architecture deliverable
7
Quiz for Section 4

Perspectives for architecture documentation

Architecture Techniques - Functional Architecture

1
Common Techniques

You will learn the common techniques you can use across the various architecture perspectives, to create software architecture

  • Architecture principles
  • Evaluating architectural decision options
  • Analysing risk
2
Current State and Problem Analysis

In this lecture, you will learn how to understand the current context and analyse it, as key steps towards coming up with the functional architecture.

  • Business context
  • Stakeholders
  • Business processes
  • Optimization tactics
3
Formulate Solution

You will learn how to arrive at high-level solution as a collection of functional components to complete the functional architecture.

  • Use-cases
  • Conceptualizing solution
4
Quiz for Section 5

Functional architecture perspective

Architecture Techniques - Logical Architecture

1
Activities

You will learn the different activities you can perform to arrive at the logical architecture.

2
Principles

This lecture will take you in detail, through the common principles used in the logical architecture.

  • “SOLID” principles
  • Principle of Loose Coupling
  • Principle of High Cohesion
  • Principle of Information Hiding
  • Separation of Concerns
  • Law of Demeter
  • Stability Principle
  • Principle of Inversion of Control (IOC)
3
Architectural Styles

You will learn what are architectural styles, how they are useful to you, and see two architectural styles in detail.

  • Architectural styles and examples
  • Domain Driven Design style
  • Platform Architecture style
4
Microservices

You will learn about the microservices architectural style in detail with an example.

5
Architectural Patterns

You will learn what are architectural patterns and how they are useful to you in creating software architecture.

6
Quiz for Section 6

Logical architecture

Architecture Techniques - Technical Architecture

1
Activities

You will learn the different activities you can perform to arrive at the technical architecture.

2
Architecture Types

This lecture will help you learn about the various architecture types used in the technical architecture.

  • Monolithic
  • Distributed
  • Multi-tier or n-tier
  • Thin client
  • Thick client
3
Integration Architecture

You will learn the well-known approaches to integration architecture - that is, how to integrate the system components with each other and/or with other systems.

  • File transfer
  • Shared database
  • Remote call or RPC
  • Messaging
  • Synchronous
  • Asynchronous
4
Requirement Patterns

In this lecture, you will learn what are requirement patterns and the commonly used architectural approaches to address them.

  • Online transactions
  • Offline transactions
  • Inquiry
  • Data Analysis
5
Frameworks

You will appreciate the use of frameworks, both third party and in-house developed, for common functionalities in technical architecture.

6
Quiz for Section 7

Technical Architecture Perspective

Architecture Techniques - Physical Architecture

1
Activities

You will learn the different activities you can perform to arrive at the physical architecture.

  • Deployment


2
Capacity (Performance and Scalability)

This lecture helps you understand the concepts related to the performance and scalability architecture attributes. You will also learn how capacity planning is done in the physical architecture.

  • Sizing
  • Queues
3
Behaviour Tactics

You will learn some of the commonly used tactics for meeting system behavioral architecture attributes such as performance, scalability, reliability, and availability, to arrive at the physical architecture.

  • Optimization
  • Caching
  • Concurrent processing
  • Resource pooling
  • Resource augmentation
  • Redundancy
  • Rescheduling
  • Workload shifting
4
Load-balancing

You will learn the load-balancing tactic for meeting system behavioral architecture attributes, to arrive at the physical architecture.

5
Partitioning

This lecture will help you learn the partitioning tactic for meeting system behavioral architecture attributes, to arrive at the physical architecture.

  • Tier partitioning
  • Application partitioning
6
Serverless Computing

You will learn about the serverless computing architectural pattern in detail with an example, to arrive at the physical architecture.

  • Different types; FaaS (Function as a Service), BaaS or MBaaS (Mobile Backend as a Service)
  • Benefits
  • Types of resources
7
Containerization

You will learn about the containerization architectural pattern in detail with an example, to arrive at the physical architecture.

  • Concept of containers
  • Example of container environment
  • Benefits
  • Support for DevOps
  • Differences between containers and virtual machines (VM)
8
Security and Manageability

You will learn some of the commonly used tactics for meeting the security and manageability architecture attributes, to arrive at the physical architecture.

  • Security measures
  • Authentication and authorisation
  • Encryption / secure channels
  • Obfuscation
  • Data sensitivity based classification
  • DMZ (demilitarized zones)
  • Logging
  • Monitoring
  • Error reporting
  • Tools for manageability
9
Quiz for Section 8

Physical Architecture perspective

Architecture Techniques - Implementation Architecture

1
Implementation Architecture

You will learn the different aspects you need to focus on to arrive at the implementation architecture.

2
Quiz for Section 9

Implementation architecture perspective

Architecture Method

1
Architecture in Software Lifecycle

This lecture broadly covers the role of architecture work in different types of software life-cycle (SDLC) processes such as waterfall, iterative, and agile.

2
Architecture Activities

You will learn the different steps in the architecture process and how the architecture process fits in the software development life-cycle SDLC.

  • Scope the architecture
  • Define the architecture
  • Implement the architecture
  • Verify the architecture
3
Software Design

This lecture helps you understand what is software design, and how it is, related to and distinct from, software architecture.

  • What does software design address?
  • Design patterns
  • Differences between software architecture and software design
4
Software Lifecycle Variants

You will learn the flavors of architecture work in different types of SDLC such as iterative, agile and also in some ad hoc occasions.

  • Architecture dependent activities in SDLC and the respective stakeholders
5
Quiz for Section 10

Process for architecture work

Architect Role

1
Architect Role

You will learn the details of the software architect role.

  • Skills desired in the architect role
  • Rules of thumb to help in your architect journey
2
Quiz for Section 11

Architect role details

You can view and review the lecture materials indefinitely, like an on-demand channel.
Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don't have an internet connection, some instructors also let their students download course lectures. That's up to the instructor though, so make sure you get on their good side!
4.1
4.1 out of 5
15 Ratings

Detailed Rating

Stars 5
3
Stars 4
6
Stars 3
4
Stars 2
1
Stars 1
2
08b494bf14a6c1b40ae3cac36f9fa4b1
30-Day Money-Back Guarantee

Includes

7 hours on-demand video
Full lifetime access
Access on mobile and TV
Certificate of Completion