Software Architecture: Basic Principles & System Integration
This article is a definition of terms covering architecture fundamentals and system integration – including exam questions and tags.
In a Nutshell
In practice, greenfield projects are rare: architecture must account for extension, integration, and environment migration (cloud/OS/DB) – so systems remain maintainable and extensible.
Compact Technical Description
Software architecture describes structure, components, relationships, and technologies. In integration projects, typical challenges are:
- Legacy systems (poorly documented, monolithic)
- Interfaces/data formats/protocols
- Decision: refactoring vs. reimplementation
- Environment migration (on-prem → cloud, Windows → Linux, database migration)
Technical debt, modular decomposition, layered models, and clear interfaces are key levers.
Exam-Relevant Key Points
- Architecture = structure/communication/dependencies
- Consider legacy systems (IHK-relevant)
- Interface capability as design requirement
- Refactoring instead of rebuild when core logic is stable
- Integration via REST/middleware/adapter
- Security: API security, legacy database access
- Cost-effectiveness: reuse vs. new development
- Documentation: diagrams, interface specifications, migration strategy
Core Components
- Current state analysis
- Technical debt
- Requirements reconciliation
- Interface concept
- Integration strategy (wrapper/proxy/adapter)
- Target environment
- Migration (big bang vs. incremental)
- Refactoring
- Compatibility testing
- Documentation/architectural decisions
Practical Example
Inventory management system (monolith) gets modern web UI:
- REST API as middleware
- Adapter legacy data structure → JSON
- OpenAPI/Swagger documentation
- reuse existing logic
Advantages and Disadvantages
Advantages
- Using existing systems saves time/costs
- Integration extends system lifespan
Disadvantages
- Legacy systems often poorly documented
- Interfaces difficult to add retroactively
- Environment migration poses risks
Typical Exam Questions (with Short Answer)
- What is a legacy system? An old system that continues to operate.
- How do you connect legacy systems? Interfaces, adapters/wrappers, middleware.
- When to refactor instead of rebuild? When core logic is stable.