#Software_Architecture

  1. Productivity

    When there is a defined structure/plan for coordinating work between developers when implementing individual features or grounding…

  2. Software Architecture — Course Overview

    - [x] Module 1 — UML Architecture Diagrams✅ 2026-03-06 - [x] Module 2 — Architectural Styles ✅ 2026-10-13 - [x] Module 3 — Architecture in…

  3. Abstract Data Types

    An abstract data type can be represented as a class that you define to organize data attributes in a meaningful way, so that related…

  4. Activity diagram components

    Activity diagrams have a few major parts: - Start/End nodes : denoted by a labeled opaque circle where your software begins/Ends…

  5. Adding value to the client

    Adding value to the client can sometimes be something tangible like a new feature or extra functionality, but it can also be a…

  6. Aesthetic perspective

    The aesthetic here means the behind the scenes of architectures/styles, where architects keep in mind the Testability and Adaptability of…

  7. Agents of change

    The main target of architects is to make a change or a decision about the system, so some architects rarely deal with code or deep…

  8. Analyzing and Evaluating an Architecture

    In addition to designing a system, it is important to know how to evaluate the design to determine if it addresses the concerns, or the…

  9. Architectural styles

    Architecture of systems vary depending on the architectural model/style. each style has a different way to describe it's architecture, in…

  10. Architecture

    Architecture is the process of creating system level guardrails and guidelines to help engineers produce a stable, maintainable and long…

  11. Architecture in agile

    Architecture in agile is a little different, you are implementing as you figure out the desired architecture in smaller cycles. which…

  12. Architecture overview and Process

    - What is architecture. - Important factors to consider in software architecture. - Needs and advantages. - Stakeholders benefitting from…

  13. Architecture Trade-off Analysis Method

    There are a number of methods that can be used to implement scenarios in analysis and evaluation of the entire architecture.

  14. Artifacts

    A physical result of a development process, for example: in a game, artifacts include things like an executable to run the game, an…

  15. asynchronous

    An asynchronous request-response relationship is one where the client sends a request, but control returns right away, so it can continue…

  16. Availability Example

    Let us consider scenarios through an example. Imagine you are addressing the availability of a system.

  17. Central Data

    The central data facilitates data sharing by saving the desired information from the current state of the system and serving data as…

  18. Client Server n-tier

    n-Tier or multitier architectures are related to layered architectures.

  19. Communicating Architecture

    ​It is difficult to capture the complete behavior of a system with a single perspective, ​when looking at whether the software…

  20. Customer's perspective

    The Customer's perspective in the mind a software architect is of what the client needs and what they want from the business.

  21. Data Accessors

    Data accessors make queries and transaction against stored information in Central Data, and are separated from one another and communicate…

  22. Data flow architecture

    The system takes data in a certain form and process it through multiple stages, though not as described as a service based architecture…

  23. data-centric architectural style

    A data-centric architectural style has two main components: - Central Data: Used to store and serve data to all components connected to…

  24. Database

    Databases are a complex topic which would take an entire course to discuss in depth.

  25. Dataflow Systems

    Data flow systems involve a series of transformation on sets of data.

  26. Deployment Details

    When creating a deployment diagram, it is important to use the correct notation for various elements: - Artifacts: these are created as…

  27. Design Rules

    Design process guidelines include:

  28. Development View

    This view describes The Hierarchical Software Structure and considers elements such as: - Programming Languages - libraries - Toolsets It…

  29. Draw a Component Diagram

    This is my Solution:

  30. Draw a Deployment Diagram

    This is my Solution:

  31. Engineering team's perspective

    When the architect looks from the engineering team's perspective, they are looking at: - Expectations of work - The needs to achieve a…

  32. Environment

    The environment or target for development can be very specific, involving certain hardware devices, or general, involving supported…

  33. Evolution

    After identifying what parts of the system do, it is easier to add new features or fix potential failures

  34. How to represent software architecture

    At a high level Architectures are described by: - Identity Boxes: Things being done. - Lines: Interactions between the way things are…

  35. Implementing Product Lines

    The book Software Product Lines in Action (2007) discusses architectural considerations for software product lines.

  36. Implicit Invocation Systems

    In implicit invocation systems, functions are not in direct communication with each other.

  37. Instance-level diagrams

    Instance-level diagrams are much more specific, they map specific artifacts to specific deployment targets, in particular, instance level…

  38. Interpreter-based Systems

    In some software systems, users can write scripts, macros, or rules that access and compose the basic features of the system in new ways.

  39. Kruchten's 4 + 1 Model Views

    Multiple perspectives are necessary to capture the complete behavior and development of a software system.

  40. Language-based Systems

    It should be obvious that the programming language paradigm used to implement a system would affect the architectural style of that system.

  41. Layered Systems

    Many organizations in our lives work by some kind of hierarchy, a business, a government, a student society.

  42. Logical View

    t--- # Note This view focuses on the Functional requirements of the system, usually involving the objects of the system, from these object…

  43. Main Program & Subroutine

    This is an architectural style that follows the procedural programming paradigm, C is a language that follows this paradigm.

  44. Manifistation

    The Player.class file manifists the player component, the encapsulated unit that contains all the functionality of a player.

  45. Module 1 Assignments

    To access this remote database, the mobile app sends an HTTP request to the remote server that matches the remote server’s provided…

  46. Module 2 — Architectural Styles

    This module will explain important software architectures, their key characteristics, and how they are used in practice. ## Syllabus - [x]…

  47. Module 3 — Architecture in Practice

    This module will focus on how software architecture is used in practice.

  48. Nodes

    Hardware device are displayed in the same way as nodes with a device tag to differentiate it from other types of nodes.

  49. Object Oriented

    Object oriented refers to a system composed of objects, where each object is an instance of a class which means that the type of each…

  50. Object Oriented Principles

    For a quick review of object oriented principles: - Abstraction: Simplifying concepts by ignoring unimportant details. - Encapsulation…

  51. Object Oriented Style

    When you choose to develop a project using an object oriented language like Java or C++ you are not just choosing a language. ** object…

  52. Operating System

    This is the simplified view of the Operating System A kernel is the core of an operating system, one of it's main responsibilities is…

  53. Overview

    - [x] Architecture overview and Process ✅ 2026-03-06 - [x] Communicating Architecture ✅ 2026-07-13 - [x] Module 1 Assignments✅ 2026-07-13…

  54. Package Diagram Legend

    Packages are simply depicted as a tabbed folder with an empty package (with no elements) having it's name in the center.

  55. Physical View

    This view handles how elements in the logical, process, and development views must be mapped to different nodes or hardware for running…

  56. Practical Scenario (Building a Scalable E-commerce Platform)

    As a Software Development Engineer, you likely encounter the need to balance performance, maintainability, and scalability.

  57. Practical Scenario (Designing a Payment Processing System)

    As a software developer engineer, you're constantly building systems, and understanding how different architectural styles work is key to…

  58. Practical Scenario (Managing Microservices with State Transition Systems)

    As a software developer, you often deal with complex distributed systems.

  59. Practical Scenario (Wishlist feature)

    This scenario will show how the Kruchten's 4 + 1 Model Views apply on a real world project, we want to add a wishlist feature to an…

  60. Process Control Systems

    Process control is important in many processes to ensure efficient and safe operations. ## Feedback Loops A feedback loop is one of the…

  61. Process View

    This view focuses on achieving the non-functional requirements, these are the requirements that specify the desired qualities of the…

  62. Product Lines and Product Families

    As developers work, they should constantly be looking for opportunities for code re-use.

  63. Provided interface

    A provided interface is used to show that a component offers an interface for others (clients and consumers) to interact with it, a…

  64. Publish-Subscribe

    There are two important differences that differentiate the publish-subscribe architectural style from the event-based architectural style.

  65. Quality

    A well designed system provides some benefits: - Easier maintenance - Ability to be reused in the future - Adapting to future changes

  66. Quality Attributes

    Software architecture aims to combine software design patterns and principles in order to define the software’s elements, their…

  67. Reference Architecture

    Products in a product line likely have similar architectures, as they serve a similar purpose.

  68. Relational databases

    Relational databases use SQL or Structured Query Language to let you query or ask the database for information and lets you perform…

  69. Relations

    This is an example of a relationship between two nodes, or communication path, which denotes a particular communication protocol between…

  70. Relationship to Organizational Structure

    A study from the Harvard Business School showed that looser organizational structures, such as in open-source projects, led to more…

  71. relevant libraries

    Relevant libraries are all the third-party libraries and implementations along with your implementations, they must be identified and…

  72. Repository-based Systems

    Modern software systems rarely operate in isolated environments, large businesses often require different systems to communicate with each…

  73. Required interface

    A required interface shows that a component expects a certain interface provided by another component to achieve it's goals, the required…

  74. Scenarios

    Scenarios are made with a script that describes the sequence of interactions between objects and processes, this involves the: - Key…

  75. Service based perspective

    The system is viewed as a collection of interacting services/parts that achieve what you want the application to do.

  76. Software Quality Attributes from a Developer's Perspective

    Software architecture addresses these qualities by carefully structuring and coordinating design patterns in order to construct a unified…

  77. Software Quality Attributes from a User's Perspective
  78. Specification-level diagrams

    Specification-level diagrams give an overview of artifacts and deployment targets, without referencing specific details like machine names.

  79. Stakeholders

    People who are interested in the system and either use it or benefit from it.

  80. Stakeholders benefitting from architecture

    Who are the Stakeholders of Software Architecture and how they benefit from it:

  81. State Transition Systems

    We would like to take this opportunity to briefly discuss state transition systems.

  82. Swim lanes

    these are used to visualize concurrent activities happening in parallel, for example; audio playing alongside the game. that is a fork in…

  83. synchronous

    A synchronous request-response relationship is one where the client sends a request, then awaits the server’s response before continuing…

  84. System Architect life

    Architects keep a lot in their minds, so being able to operate at different levels of abstractions is a necessary skill.

  85. System Structure Rules

    Structural rules that ensure there is conceptual integrity when implementing the system include: - Having well-designed subsystems that…

  86. technological risks

    Architects ask themselves "If my system is going to run for a long time, do i risk using and/or training my developers on a technology…

  87. The need for software architecture & advantages

    We need Software architecture because it provides a solid base for developers to follow in: - What needs to be implemented. - How parts of…

  88. UML Activity Diagram

    In a video game you follow a sequence of levels to reach a goal, moving between levels with each level serving a specific purpose.

  89. UML Component Diagram

    UML component diagrams are a static view of a system depicting it's design at a specific time of it's development and/or evolution.

  90. UML Deployment Diagram

    Software releases are more than just lines of code bundled together, it involves separate parts like: - Libraries - Executables…

  91. UML Package Diagram

    In Object Oriented Software you define interacting classes and sometimes they are related, In video games you have several classes for…

Built with LogoFlowershow