Software Architecture Fundamentals – System Integration & Legacy Systems
This article is a glossary entry covering software architecture fundamentals, including exam-relevant questions and key concepts.
In a Nutshell
Software architecture means structuring applications so they remain maintainable, extensible, and compatible with existing IT landscapes—particularly when integrating legacy systems and migrating between environments.
Core Definition
Software architecture defines a system’s fundamental structure: its components, their relationships, and the technologies used. In real-world practice, true greenfield development is rare. More often, you’re working with existing systems that need to be accommodated or extended. Incorporating legacy systems introduces specific challenges around interfaces, data formats, and protocols. Modern architectures frequently need to interact with monolithic or poorly maintained applications. When moving between environments (such as from on-premise to cloud), portability becomes critical. Technical debt, modular decomposition, layered patterns, and well-defined interfaces are essential considerations.
Key Exam Topics
- Architecture defines structure, communication, and dependencies
- Legacy system consideration is mandatory in extension projects
- Interface capability is a central design requirement
- Refactoring existing systems preferred over rebuilding when core logic is stable (relevant for vocational certifications)
- Common practice: integration via REST, middleware, and adapter patterns
- Security considerations: data formats, API security, access to legacy databases
- Cost-benefit analysis: reuse versus new development
- Documentation should include diagrams, interface specifications, and migration strategies
Core Components
- Analyse existing system architecture
- Identify technical debt
- Compare requirements against current state
- Design interface specifications
- Select integration strategies (wrapper, proxy, adapter)
- Define target environment (operating system, cloud platform)
- Plan migration approach (big bang versus incremental)
- Refactor legacy components
- Establish compatibility test plans
- Document architectural decisions
Practical Example
// Adding REST API to legacy inventory system for web frontend
1. Legacy system (monolithic, local database access only)
2. Goal: modern web UI → REST API as middleware layer
3. Adapter transforms legacy data structures to JSON responses
4. API documented via OpenAPI/Swagger
5. Reuse existing business logic, no duplication
Explanation: The existing logic remains intact while new clients communicate with a dedicated API layer acting as intermediary.
Advantages and Disadvantages
Advantages
- Reusing existing systems saves time and cost
- Integration extends the lifespan of legacy systems
- Architecture awareness reduces future migration expenses
Disadvantages
- Legacy systems often lack proper documentation
- Retrofitting interfaces is difficult and time-consuming
- Environment transitions can introduce security risks
Common Exam Questions (with Short Answers)
- “Considering existing systems”? New solutions must be compatible with the existing IT landscape.
- What is a legacy system? An older system still in use, often without current support or documentation.
- How do you connect legacy systems? Through interfaces, adapters, wrappers, or data replication.
- What is middleware? Software acting as an intermediary between legacy and new systems.
- Risks in environment migration? Incompatibility, data loss, and security gaps.
- How to document architecture decisions? Use component diagrams, layer diagrams, interface diagrams, and written justification.
- Refactoring versus reimplementation? Refactoring makes sense when core logic is stable but needs modernization.
- “Loose coupling” in this context? Components are independent; changes remain localized.
Essential References
- https://arc42.org/
- https://www.heise.de/thema/Legacy-Systeme
- https://refactoring.guru/de
- https://martinfowler.com/eaaCatalog/
- https://c4model.com/



