Introduction to Software Architecture

946e30b09fe86e2a1fcd0ac4ee8e9749?s=47 Vedcraft
September 07, 2020

Introduction to Software Architecture

Understanding the basics and definition of software architecture is an important aspect of your journey to be a successful architect. The purpose of this deck is to familiarize beginner architects about the formal definition of software architecture and share a few examples to get started with.

Visit us here for more insights on software architecture:
https://vedcraft.com/

946e30b09fe86e2a1fcd0ac4ee8e9749?s=128

Vedcraft

September 07, 2020
Tweet

Transcript

  1. Software Architecture The definition and fundamentals

  2. What is Software Architecture?

  3. the set of significant decisions about the organization of a

    software system Many definitions, Multiple perspectives a coherent set of abstract patterns, or principles, guiding the design of each aspect of a large software system... A configurable skeleton of any kind of software beast on which you hang implementation An iterative framework between software components required to meet the stated objectives of the business A style that is proven scientifically & adopted by the engineering discipline
  4. Software Architecture is the blueprint of the system, its components

    & their relationships, with defined principles & constraints to comply with.
  5. Do we have a standardized definition?

  6. IEEE - Institute of Electrical and Electronics Engineers, New Jersey,

    US ISO - International Organization for Standardization, Geneva, Switzerland IEC - International Electrotechnical Commission, London, UK There are three international standards organizations, which define technical standards & specificiations for Software Architecture
  7. ISO/IEC/IEEE 42010 - Systems and software engineering An international standard

    for architecture descriptions of systems and software. Let’s understand the definition defined by 42010 standard…
  8. Software architecture is the fundamental organization of a system, embodied

    in its components, their relationships to each other and the environment, and the principles governing its design and evolution. Reference: ISO/IEC/IEEE 42010 Standard
  9. Let’s break the definition further by understanding the fundamental organization,

    which defines how the components making up a software architecture are organized
  10. F4FF81 Fundamental Organization of a System - A simple view

    to communicate the logical layers of software architecture Micro-services Application Search App Reverse Proxy Front-end driven Experience Tier Services Layer Endeca API Content API Rewards API Rewards App API Gateway Search Results My Account My Profile
  11. Another important aspect is to communicate the relationship between components

    of the software architecture
  12. F4FF81 Components & their relationships - To understand how components

    are interacting with each other Source: https://msdn.microsoft.com/en-us/library/dd409393.aspx
  13. The last part is to understand the environment or context

    in which the software architecture is being formulated
  14. Environment Business Social Technical Architecture gets created in the context

    of the environment, which comprises of business needs (meeting requirements), social needs (meeting communication requirements) and technology needs (meeting non-functional requirements).
  15. So, key part is to understand that architecture itself is

    not good or bad – need to understand the context behind creating the software architecture, before we determine the effectiveness of the architecture.
  16. Let’s look at few industry examples depicting software architecture

  17. F4FF81 Netflix - Personalization & Recommendation Architecture Source: http://techblog.netflix.com/2013/03/system-architectures-for.html

  18. Source: http://aws.amazon.com/blogs/aws/category/architecture/

  19. Before we conclude the definition and basics of software architecture,

    it is essential to understand that when you start a new project, don’t try to define all views of architecture in initial days - use incremental approach to work towards it
  20. You can start with simple view of architecture using system

    context diagram during initial phase and detail it out in future iterations
  21. Customer Relationship System Customer Identity Store Reservation System Analytics Rewards

    Backoffice Clients For hotel reservation Rewards & loyalties Customer Identity Data For searching hotel properties Travel Agents Personalization System Context Diagram – to communicate high-level view of architecture Search System Customer communicatio ns & interactions Recommendations Engine For user behavioral tracking For customized experience For product recommendations Hotel Reservation System
  22. Now, that we understand the basics of defining software architecture,

    refer to following standard to understand the depth of it ISO/IEC/IEEE 42010 - Systems and software engineering
  23. Alternatively, you can also refer to this book to understand

    all aspects of software architecture in detail (highly recommended) which is also aligned to 42010 standard Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives Book by Eoin Woods and Nick Rozanski Source: https://www.viewpoints-and-perspectives.info/
  24. Thank You