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.
Layered Architecture
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:
Initially, Identify the messaging kit, like RabbitMQ, KAFKA, and Azure Message Queue
Define Events producers and related events that should be raised to listeners
Define Events consumers, that should listen to events in order to take suitable response
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 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
Availability Patterns
Data Management PatternsÂ
Design and Implementation Patterns
 Management and Monitoring Patterns
Messaging Patterns
Security Patterns
Performance and Scalability Patterns
Resiliency Patterns
Enterprise Architecture Team
Solution Architect
Software developers
Test Automation Team
DevOps Team
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.
Enterprise Architect
Docker
Azure, Microsoft Cloud
Amazon web service