Solution Design Process

Introduction

The objectives of the design process are to develop a coherent, well-organized representation of the software product that meets the customer’s requirements and satisfies the predefined quality criteria.

The process comprises the architectural design that will be followed by the detailed design in the next procedure. Architectural design provides the infrastructure for this detailed design.

We are implementing the reuse engineering methodology in order to save effort and cost, and enhance reusability of previous developed solutions.

Architecture patterns

How Can We Organize Objects/Components

We can define the layered architecture as the arrangement of solution building blocks in levels, and each level is only responsible about receiving data from the previous layer, and send data to the next one.

But: Challenging point was raised, about the optimum number of layers.

It's according to the complexity of the solution.


2. EDA

How Components communicate?

Event driven architecture, is one of the best architecture models, that focus on decoupling the relation between components.

We have 2 approaches to notify the object changes:

First: periodically check the change of the object, which consume resources, and increase coupling that decrease maintainability and decrease SOLID compatibility.

Second: The changed model/object will send notification to whom interested to know these changes.

All buttons events are considered EDA, as when button click, the component respond by the code behind.

Complexity Was added to the model when moving to SOA, and micro-services architecture, that the network layers require mapped technologies to the old one:

Event publisher: Source service

Event Subscriber: Micro-services

Communication Channel: Event-Bus, Like KAFKA, RabbitMQ, and Azure Message Queue.


The Workflow:

3. SOA

Building component on the web.


4. Micro-Services Architecture

Granularity, and domain, are the main focus of microservices implementation.


5. Micro-Frontend Architecture

Moving forward to have multiple front ends, not only ecosystem front end, which can lead to different technologies implementation and utilization of resources

6. Server-less Architecture

Moving forward to host all business logic on the cloud functions.

Needs different level of maturity

 

Design patterns

Design patterns is solution for specific problem within working domain.

It has been recorded from the worldwide practitioners practices to solve these problems.

We have three types of patterns:

1: Creational

2: Structural

3: Behavioral

Cloud Design Patterns Core Areas

Key Process Roles

core procedures

This architecture model has been inherited from TOGAF, as they have developed architecture model consists of four key pillars:

1-Business Architecture

2-Data Architecture

3-Application Architecture

4-Technology Architecture

5- Security Architecture

6- Detailed Design


So our architecture model will follow the same model, in order to keep standardization within the process, and in each pillar, We will clarify the required tasks to be performed.

Procedures in Details

Sw engineering Video Sessions

Arch and design

deployment Sessions

Database Management