Software Architecture
Introduction
Introduction
3 Day(s)
🎯 LEARNING OBJECTIVES
Understand the role of software architecture in translating business requirements into technical solutions.
Identify architectural components, responsibilities, interfaces, and dependencies.
Explain how architectural decisions affect scalability, security, performance, and maintainability.
Distinguish between software architecture and detailed software design.
🧠 PREREQUISITES
Basic knowledge of software engineering and the software development lifecycle (SDLC).
Familiarity with programming concepts, applications, and basic system components.
Introduction to Software architecture
Definition of components, and it's relationship that meets functional and non-functional requirements:
Functional: What needs to make business happen
Non-Functional: The quality attributes of the architecture that make one architecture better than others:
Scalability
Maintainability
Performance
Reliability & Availability
Security
Maintainability & Modularity
Cost & Resource Efficiency
Operationalization
MDA means model-driven architecture, a new approach of formulating software requirements and technical specifications in graphical representation, which leads to higher understanding and less confusion about the product to be built.
It consists of the following model types, each type is a prerequisite to the next on:
CIM, PIM, PSM, then the code is the realization for all previous models.
CIM: Computation Independent Models, focus on the business/analysis models
PIM: Platform independent Models, focus on the design models in an abstracted approach
PSM: Platform-specific Model, focus on detailed specification of design models according to the target platformractice
Reference Standard
Benefit
1. Visual Representation of Artifacts
Relationship between actors and business
Business decomposition
What deployment nodes are required
Relationship between components, nodes, and connected devices, using a deployment model
Different solution object states and related events, using a statechart diagram
Process flow, using an activity diagram
Technical solution flow for internal and external use(integration)
2. Improved Communication
3. Requirements Clarification (Analysis Models)
4.Design Documentation.
5. Design Validation and completeness
6. Design Reusability
9. Reverse Engineering with no visiting to the code
10. Project Management and estimation enabling
11. Standardization
12. 360-degree modeling
Use Case model
Unknown scope
endless end date
Activity diagram
unknown vision of the solution workflow
absence of scenario simplicity
Deployment diagram
Unclear understanding of load balancing and the way of communication between both nodes-nodes and components.
Also it clarifies the number of nodes and required hardware to run the solution per each node.
Component diagram
Define the absence of reusability throw the comparison between different models
Unclear understanding of the way of communication between nodes.
Class diagram
unknown understanding of what to develop in order to meet the customer requirements
Unclear vision of reusability within the project
unknown the communication methods between the components
State chart diagram
Absence of the relation between object states and different behaviors
Sequence diagram
Unclear communication standardization between objects, so a decrease of maintainability will be occurred
The following session presents the different types of UML models, and the flow of generating the models from each others: